Geräte mehrfach einlesen
Moderator: Ulrich
-
- Beiträge: 46
- Registriert: Do 18. Jul 2024, 11:59
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: Geräte mehrfach einlesen
Hallo Ulrich,
Datei wird definitiv nicht ausgeführt. Erscheint nichts im LOG. Ich habe nun die 2 Zeilen direkt in die deye_wr.php geschrieben. Nun wird der Timestamp auch geloggt.
Der Aufruf der _math Datei habe ich auskommentiert. Das war nicht schon so drin, dann wäre es ja klar.
/****************************************************************************
// User PHP Script, falls gewünscht oder nötig
****************************************************************************/
//if (file_exists("/var/www/html/deye_wr_math.php")) {
//include 'deye_wr_math.php'; // Falls etwas neu berechnet werden muss.
//}
$zentralerTimestamp = $zentralerTimestamp + $GeraeteNummer;
$funktionen->log_schreiben("Timestamp: ".$aktuelleDaten["zentralerTimestamp"], " ", 5);
Nur ist das natürlich dumm, wenn Du ein Upgrade machst, dann fliegt es wieder raus.
Fragt sich nun, warum die Datei nicht aufgerufen wird. also ich habe das x mal überprüft. Korrekt? Ist ein EInzeiler, der da in der _math Datei steht. Oder wird da noch was zusätzlich benötigt, wenn eine externe Datei aufgerufen werden soll? Wie gesagt, php ist mir unbekannt.
Das sind die beiden Dateien:
-rw-r--r-- 1 root root 148 24. Jul 20:20 deye_wr_math.php
-rw-r--r-- 1 root root 60961 24. Jul 20:29 deye_wr.php
Der Inhalt wie gesagt, 1 Zeile ohne Enter am Schluss, d.h. es gibt keine 2, leere Zeile.
Gruess
Reto
Datei wird definitiv nicht ausgeführt. Erscheint nichts im LOG. Ich habe nun die 2 Zeilen direkt in die deye_wr.php geschrieben. Nun wird der Timestamp auch geloggt.
Der Aufruf der _math Datei habe ich auskommentiert. Das war nicht schon so drin, dann wäre es ja klar.
/****************************************************************************
// User PHP Script, falls gewünscht oder nötig
****************************************************************************/
//if (file_exists("/var/www/html/deye_wr_math.php")) {
//include 'deye_wr_math.php'; // Falls etwas neu berechnet werden muss.
//}
$zentralerTimestamp = $zentralerTimestamp + $GeraeteNummer;
$funktionen->log_schreiben("Timestamp: ".$aktuelleDaten["zentralerTimestamp"], " ", 5);
Nur ist das natürlich dumm, wenn Du ein Upgrade machst, dann fliegt es wieder raus.
Fragt sich nun, warum die Datei nicht aufgerufen wird. also ich habe das x mal überprüft. Korrekt? Ist ein EInzeiler, der da in der _math Datei steht. Oder wird da noch was zusätzlich benötigt, wenn eine externe Datei aufgerufen werden soll? Wie gesagt, php ist mir unbekannt.
Das sind die beiden Dateien:
-rw-r--r-- 1 root root 148 24. Jul 20:20 deye_wr_math.php
-rw-r--r-- 1 root root 60961 24. Jul 20:29 deye_wr.php
Der Inhalt wie gesagt, 1 Zeile ohne Enter am Schluss, d.h. es gibt keine 2, leere Zeile.
Gruess
Reto
-
- Beiträge: 46
- Registriert: Do 18. Jul 2024, 11:59
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: Geräte mehrfach einlesen
Im php.log sind auch noch ein paar Ungereimtheiten drin:
[24-Jul-2024 21:01:11 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/2.user.config.php on line 603
[24-Jul-2024 21:01:21 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/3.user.config.php on line 603
[24-Jul-2024 21:01:30 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/4.user.config.php on line 603
[24-Jul-2024 21:01:52 Europe/Berlin] PHP Notice: Undefined index: Batterie in /var/www/html/seplos_bms.php on line 210
[24-Jul-2024 21:01:52 Europe/Berlin] PHP Notice: Trying to access array offset on value of type null in /var/www/html/seplos_bms.php on line 210
[24-Jul-2024 21:01:11 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/2.user.config.php on line 603
[24-Jul-2024 21:01:21 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/3.user.config.php on line 603
[24-Jul-2024 21:01:30 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/4.user.config.php on line 603
[24-Jul-2024 21:01:52 Europe/Berlin] PHP Notice: Undefined index: Batterie in /var/www/html/seplos_bms.php on line 210
[24-Jul-2024 21:01:52 Europe/Berlin] PHP Notice: Trying to access array offset on value of type null in /var/www/html/seplos_bms.php on line 210
-
- Beiträge: 1227
- Registriert: Mo 22. Jun 2020, 08:58
- Wohnort: Ulm / Neu-Ulm
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 144 Mal
Re: Geräte mehrfach einlesen
Nein, dass ist kein Einzeiler, sondern muss eine korrekte PHP-Datei sein.
Code: Alles auswählen
<?php
$funktionen->log_schreiben("Timestamp: ".$aktuelleDaten["zentralerTimestamp"], " ", 5);
?>
Gruß Timo
Auflistung Geräte/Dashboards/Anschlussart
Datenbankfelder der einzelnen Geräte
GANZ WICHTIG: Überblick der vorhandenen Anleitungen
Fertige Komplett-Systeme gibt es hier anfragen[AT]bauer-timo[.]de
Tibber Invite (100% Öko-Strom + 50€ Bonus)
Auflistung Geräte/Dashboards/Anschlussart
Datenbankfelder der einzelnen Geräte
GANZ WICHTIG: Überblick der vorhandenen Anleitungen
Fertige Komplett-Systeme gibt es hier anfragen[AT]bauer-timo[.]de
Tibber Invite (100% Öko-Strom + 50€ Bonus)
-
- Beiträge: 46
- Registriert: Do 18. Jul 2024, 11:59
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: Geräte mehrfach einlesen
Hallo Timo,
Besten Dank. Das war es. Als PHP Banause habe ich das nicht bemerkt. Wieder mal was gelernt. Naja, muss mich wohl auch mal in PHP eindenken, bis jetzt sah ich keinen Grund, aber schaden könnte es nicht.
Jetzt wird die DAtei auf alle Fälle verarbeitet!
Gruss
Reto
Besten Dank. Das war es. Als PHP Banause habe ich das nicht bemerkt. Wieder mal was gelernt. Naja, muss mich wohl auch mal in PHP eindenken, bis jetzt sah ich keinen Grund, aber schaden könnte es nicht.
Jetzt wird die DAtei auf alle Fälle verarbeitet!
Gruss
Reto
-
- Beiträge: 46
- Registriert: Do 18. Jul 2024, 11:59
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: Geräte mehrfach einlesen
Jetzt habe ich nur noch folgendes Problem, es wurde oben auch schon erwähnt:
Wenn ich folgende Reihenfolge einstelle funktioniert es:
1. Deye1
2. Deye2
3. Deye1
4. Deye2
5. Seplos
6. Seplos
Folgende Reihenfolge funktionier nicht:
1. Deye1 ->läuft durch
2. Deye2 ->läuft durch
3. Seplos ->läuft durch
4. Deye1 ->läuft nicht, ergibt Fehler -Lesefehler > [ ] Register: 0
5. Deye2 ->läuft nicht, ergibt Fehler -Lesefehler > [ ] Register: 0
6. Seplos ->läuft durch
Hier nochmals den LOG Ausschnitt mit den Fehlern:
22.07. 17:57:29 -Verarbeitung von: '4.user.config.php' Regler: 93
22.07. 17:57:29 |------------------------- Start deye_wr.php ----- Regler 93 ---
22.07. 17:57:29 -Hardware Version: Raspberry Pi 5 Model B Rev 1.0
22.07. 17:57:29 + -WR_ID: 01 USB: /dev/Geraet1
22.07. 17:57:32 -Lesefehler > [ ] Register: 0
22.07. 17:57:32 -Der Wechselrichter sendet keine Daten. Register 0
22.07. 17:57:32 |------------------------- Stop deye_wr.php ---------------------
22.07. 17:57:32 -Verarbeitung von: '5.user.config.php' Regler: 93
22.07. 17:57:32 |------------------------- Start deye_wr.php ----- Regler 93 ---
22.07. 17:57:32 -Hardware Version: Raspberry Pi 5 Model B Rev 1.0
22.07. 17:57:32 + -WR_ID: 02 USB: /dev/Geraet2
22.07. 17:57:35 -Lesefehler > [ ] Register: 0
22.07. 17:57:35 -Der Wechselrichter sendet keine Daten. Register 0
22.07. 17:57:35 |------------------------- Stop deye_wr.php ---------------------
Hat hier jemand eine Idee, warum das Script im Fall 2 nicht durchläuft?
Gruss
Reto
Wenn ich folgende Reihenfolge einstelle funktioniert es:
1. Deye1
2. Deye2
3. Deye1
4. Deye2
5. Seplos
6. Seplos
Folgende Reihenfolge funktionier nicht:
1. Deye1 ->läuft durch
2. Deye2 ->läuft durch
3. Seplos ->läuft durch
4. Deye1 ->läuft nicht, ergibt Fehler -Lesefehler > [ ] Register: 0
5. Deye2 ->läuft nicht, ergibt Fehler -Lesefehler > [ ] Register: 0
6. Seplos ->läuft durch
Hier nochmals den LOG Ausschnitt mit den Fehlern:
22.07. 17:57:29 -Verarbeitung von: '4.user.config.php' Regler: 93
22.07. 17:57:29 |------------------------- Start deye_wr.php ----- Regler 93 ---
22.07. 17:57:29 -Hardware Version: Raspberry Pi 5 Model B Rev 1.0
22.07. 17:57:29 + -WR_ID: 01 USB: /dev/Geraet1
22.07. 17:57:32 -Lesefehler > [ ] Register: 0
22.07. 17:57:32 -Der Wechselrichter sendet keine Daten. Register 0
22.07. 17:57:32 |------------------------- Stop deye_wr.php ---------------------
22.07. 17:57:32 -Verarbeitung von: '5.user.config.php' Regler: 93
22.07. 17:57:32 |------------------------- Start deye_wr.php ----- Regler 93 ---
22.07. 17:57:32 -Hardware Version: Raspberry Pi 5 Model B Rev 1.0
22.07. 17:57:32 + -WR_ID: 02 USB: /dev/Geraet2
22.07. 17:57:35 -Lesefehler > [ ] Register: 0
22.07. 17:57:35 -Der Wechselrichter sendet keine Daten. Register 0
22.07. 17:57:35 |------------------------- Stop deye_wr.php ---------------------
Hat hier jemand eine Idee, warum das Script im Fall 2 nicht durchläuft?
Gruss
Reto
-
- Beiträge: 1227
- Registriert: Mo 22. Jun 2020, 08:58
- Wohnort: Ulm / Neu-Ulm
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 144 Mal
Re: Geräte mehrfach einlesen
Könnte an diesem Problem liegen
viewtopic.php?p=21249&hilit=ttyUSB#p21249
Sprich: Benenne Deine anschlüsse um in ttyUSBXXXX etc. bzw. nutz nur die Bezeichnungen ttyUSB0, ttyUSB1 und ordne den Geräte hier die feste Bezeichnung zu.
viewtopic.php?p=21249&hilit=ttyUSB#p21249
Sprich: Benenne Deine anschlüsse um in ttyUSBXXXX etc. bzw. nutz nur die Bezeichnungen ttyUSB0, ttyUSB1 und ordne den Geräte hier die feste Bezeichnung zu.
Gruß Timo
Auflistung Geräte/Dashboards/Anschlussart
Datenbankfelder der einzelnen Geräte
GANZ WICHTIG: Überblick der vorhandenen Anleitungen
Fertige Komplett-Systeme gibt es hier anfragen[AT]bauer-timo[.]de
Tibber Invite (100% Öko-Strom + 50€ Bonus)
Auflistung Geräte/Dashboards/Anschlussart
Datenbankfelder der einzelnen Geräte
GANZ WICHTIG: Überblick der vorhandenen Anleitungen
Fertige Komplett-Systeme gibt es hier anfragen[AT]bauer-timo[.]de
Tibber Invite (100% Öko-Strom + 50€ Bonus)
-
- Beiträge: 46
- Registriert: Do 18. Jul 2024, 11:59
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: Geräte mehrfach einlesen
Hallo Timo,
Also Du meinst statt Geraet1, Geraet2, Geraet3 soll ich ttyUSB1, ttyUSB2, ttyUSB3
verwenden? Also ich kann fast nicht glauben dass es daran liegt. Aber ich kann es mal probieren.
Das mit Geraet1 etc... habe ich ja gemacht, weil der Raspi offenbar beliebig die USB Schnittstellen umbenennt und dann plötzlich der Deye1 auf einer anderen liegt als vorher was das Auslesen mit solaranzeig dann etwas chaotisch macht.
Ich stelle auch fest, dass er oft mal die IP Adresse wechselt, obwohl unser DHCP eine Leasetime von 7 Tagen hat. Und die MAC Adresse weir er ka kaum ändern
Aber fast nach jedem Restart, also nicht nach jedem, aber immer mal wieder hat er eine andere Adresse. stört zwar nicht, da ich über Hostname auflöse, aber ist doch einigermassen interessant. Ev. eine Spezialität des Raspi.
Gruss
Reto
Also Du meinst statt Geraet1, Geraet2, Geraet3 soll ich ttyUSB1, ttyUSB2, ttyUSB3
verwenden? Also ich kann fast nicht glauben dass es daran liegt. Aber ich kann es mal probieren.
Das mit Geraet1 etc... habe ich ja gemacht, weil der Raspi offenbar beliebig die USB Schnittstellen umbenennt und dann plötzlich der Deye1 auf einer anderen liegt als vorher was das Auslesen mit solaranzeig dann etwas chaotisch macht.
Ich stelle auch fest, dass er oft mal die IP Adresse wechselt, obwohl unser DHCP eine Leasetime von 7 Tagen hat. Und die MAC Adresse weir er ka kaum ändern
Aber fast nach jedem Restart, also nicht nach jedem, aber immer mal wieder hat er eine andere Adresse. stört zwar nicht, da ich über Hostname auflöse, aber ist doch einigermassen interessant. Ev. eine Spezialität des Raspi.
Gruss
Reto
-
- Beiträge: 46
- Registriert: Do 18. Jul 2024, 11:59
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: Geräte mehrfach einlesen
Also das habe ich nun gemacht.
Die fixe USB ZUweiseungen lauten nun:
ttyUSB0
ttyUSB1
ttyUSB2
Das hat leider nichts gebracht. Habe noch anderes ausprobiert mit einer zusätzlichen Variable in xuser.config.php und diese dann in der _math Datei adiert, damit ich die Gerätenummer anders setzen konnte. Auch das brachte nichts.
Ich vermute:
Es muss am Seplos Script liegen. Denn sobald dieses abgelaufen ist, kann kein Deye während dieser MInute eingelesen werden.
D.h. ich setze das Seplos in die 1.user.config.php dann geht kein Deye mehr.
D.h. das Seplos Scipt setzt irgendwas, was dann das Deye Script daran hindert dass die WR ausgelesen werden. Wenn die Minute um ist, dann gehen die ersten Deye Scripts bis das Seplos abgelaufen ist.
Gruss
Reto
Die fixe USB ZUweiseungen lauten nun:
ttyUSB0
ttyUSB1
ttyUSB2
Das hat leider nichts gebracht. Habe noch anderes ausprobiert mit einer zusätzlichen Variable in xuser.config.php und diese dann in der _math Datei adiert, damit ich die Gerätenummer anders setzen konnte. Auch das brachte nichts.
Ich vermute:
Es muss am Seplos Script liegen. Denn sobald dieses abgelaufen ist, kann kein Deye während dieser MInute eingelesen werden.
D.h. ich setze das Seplos in die 1.user.config.php dann geht kein Deye mehr.
D.h. das Seplos Scipt setzt irgendwas, was dann das Deye Script daran hindert dass die WR ausgelesen werden. Wenn die Minute um ist, dann gehen die ersten Deye Scripts bis das Seplos abgelaufen ist.
Gruss
Reto
-
- Beiträge: 46
- Registriert: Do 18. Jul 2024, 11:59
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 4 Mal
Re: Geräte mehrfach einlesen
Also ich glaube das seplos_bms.php ist nicht ganz sauber und verursacht das Problem. Als nicht PHP Kenner geht es mir zuweit, am FIle selbst herumzuprogrammieren oder gar einen Fehler zu finden. ich habe mal reingeschaut, aber eben, wenn man nicht php kann ist das ziemlich kompliziert. Ich denke einfach dass die Zeilen im php.log vieleicht einen Hinweis geben:
[26-Jul-2024 01:29:11 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/2.user.config.php on line 604
[26-Jul-2024 01:29:20 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/3.user.config.php on line 604
[26-Jul-2024 01:29:30 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/4.user.config.php on line 603
[26-Jul-2024 01:29:51 Europe/Berlin] PHP Notice: Undefined index: Batterie in /var/www/html/seplos_bms.php on line 210
[26-Jul-2024 01:29:51 Europe/Berlin] PHP Notice: Trying to access array offset on value of type null in /var/www/html/seplos_bms.php on line 210
[26-Jul-2024 01:30:10 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/2.user.config.php on line 604
[26-Jul-2024 01:30:19 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/3.user.config.php on line 604
[26-Jul-2024 01:30:28 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/4.user.config.php on line 603
- Undefinde index...
- Trying to access....
Linie 210, seplos_bms.php:
$aktuelleDaten["Batterie"]["Leistung"] = $aktuelleDaten["Batterie"]["Leistung"] + round(($aktuelleDaten["Pack" . $n]["Spannung"] * $aktuelleDaten["Pack" . $n]["Strom"]), 1);
Array to String conversion. Diese "Notice" gibts nur für user.config.php 2, 3, 4. Warum nicht für 1 und 5?
Hat was mit MQTT zu tun, was ich in der Solaranzeige bis jetzt noch nicht nutze.
Gruss
Reto
[26-Jul-2024 01:29:11 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/2.user.config.php on line 604
[26-Jul-2024 01:29:20 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/3.user.config.php on line 604
[26-Jul-2024 01:29:30 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/4.user.config.php on line 603
[26-Jul-2024 01:29:51 Europe/Berlin] PHP Notice: Undefined index: Batterie in /var/www/html/seplos_bms.php on line 210
[26-Jul-2024 01:29:51 Europe/Berlin] PHP Notice: Trying to access array offset on value of type null in /var/www/html/seplos_bms.php on line 210
[26-Jul-2024 01:30:10 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/2.user.config.php on line 604
[26-Jul-2024 01:30:19 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/3.user.config.php on line 604
[26-Jul-2024 01:30:28 Europe/Berlin] PHP Notice: Array to string conversion in /var/www/html/4.user.config.php on line 603
- Undefinde index...
- Trying to access....
Linie 210, seplos_bms.php:
$aktuelleDaten["Batterie"]["Leistung"] = $aktuelleDaten["Batterie"]["Leistung"] + round(($aktuelleDaten["Pack" . $n]["Spannung"] * $aktuelleDaten["Pack" . $n]["Strom"]), 1);
Array to String conversion. Diese "Notice" gibts nur für user.config.php 2, 3, 4. Warum nicht für 1 und 5?
Hat was mit MQTT zu tun, was ich in der Solaranzeige bis jetzt noch nicht nutze.
Gruss
Reto
-
- Beiträge: 1227
- Registriert: Mo 22. Jun 2020, 08:58
- Wohnort: Ulm / Neu-Ulm
- Hat sich bedankt: 17 Mal
- Danksagung erhalten: 144 Mal
Re: Geräte mehrfach einlesen
Also, Du kannst/sollst schon fixe USB-Zuweisungen machen, aber die Namen sollen trotzdem ttyUSB1 etc. lauten und nicht Geraet1 etc.
Dann hast Du Fehler in den 2-4.user.config.php. Da musst Du beim anpassen irgendwas gemacht/gelöscht/verändert haben, sonst würden die Fehler nicht kommen.
Dann hast Du Fehler in den 2-4.user.config.php. Da musst Du beim anpassen irgendwas gemacht/gelöscht/verändert haben, sonst würden die Fehler nicht kommen.
Gruß Timo
Auflistung Geräte/Dashboards/Anschlussart
Datenbankfelder der einzelnen Geräte
GANZ WICHTIG: Überblick der vorhandenen Anleitungen
Fertige Komplett-Systeme gibt es hier anfragen[AT]bauer-timo[.]de
Tibber Invite (100% Öko-Strom + 50€ Bonus)
Auflistung Geräte/Dashboards/Anschlussart
Datenbankfelder der einzelnen Geräte
GANZ WICHTIG: Überblick der vorhandenen Anleitungen
Fertige Komplett-Systeme gibt es hier anfragen[AT]bauer-timo[.]de
Tibber Invite (100% Öko-Strom + 50€ Bonus)