Geräte mehrfach einlesen

Wenn mehr als ein Gerät an den Raspberry angeschlossen werden sollen. Z.B. ein Regler und ein Wechselrichter oder mehrere Wechselrichter. Das Maximum sind 6 Geräte pro Raspberry Pi.

Moderator: Ulrich

Sigma1
Beiträge: 46
Registriert: Do 18. Jul 2024, 11:59
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: Geräte mehrfach einlesen

Beitrag von Sigma1 »

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

Sigma1
Beiträge: 46
Registriert: Do 18. Jul 2024, 11:59
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: Geräte mehrfach einlesen

Beitrag von Sigma1 »

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

TeamO
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

Beitrag von TeamO »

Sigma1 hat geschrieben:
Mi 24. Jul 2024, 20:39
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?
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)

Sigma1
Beiträge: 46
Registriert: Do 18. Jul 2024, 11:59
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: Geräte mehrfach einlesen

Beitrag von Sigma1 »

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

Sigma1
Beiträge: 46
Registriert: Do 18. Jul 2024, 11:59
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: Geräte mehrfach einlesen

Beitrag von Sigma1 »

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

TeamO
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

Beitrag von TeamO »

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.
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)

Sigma1
Beiträge: 46
Registriert: Do 18. Jul 2024, 11:59
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: Geräte mehrfach einlesen

Beitrag von Sigma1 »

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

Sigma1
Beiträge: 46
Registriert: Do 18. Jul 2024, 11:59
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: Geräte mehrfach einlesen

Beitrag von Sigma1 »

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

Sigma1
Beiträge: 46
Registriert: Do 18. Jul 2024, 11:59
Hat sich bedankt: 4 Mal
Danksagung erhalten: 4 Mal

Re: Geräte mehrfach einlesen

Beitrag von Sigma1 »

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

TeamO
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

Beitrag von TeamO »

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.
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)

Antworten

Zurück zu „Multi-Regler-Version [ bis zu 6 Geräten an einem Raspberry Pi ]“