das mit der USB-RS232 Multisystemverbindung funktioniert soweit, sowohl auf dem Raspi als auch auf dem NUC.
Das heißt es wird mit einem USB-RS232 Adapter über einen Phocos WR auf alle weitere, vernetzte WR zugegriffen.
Bei mir sind es insgesamt 3 WR die ausgelesen werden.
Mein Ansinnen war jedoch, wie mit WatchPower möglich, über eine reine USB Kabelverbindung auf die 3 WR zuzugreifen das jedoch funktionierte nicht.
Als Ursache konnte hierfür der vom Wechselrichter ausgelesene "String" ausgemacht werden, er unterscheidet sich hier vom RS232 ausgelesenen String. Entscheidend für den Ablauf des PHP Scripts ist Erkennung wann der vollständige String übertragen wurde.
USB_RS232 - Das String-Ende wird ermittelt aus 0x28 "Klammer auf" und 0x0d "Wagenrücklauf" USB_USB_Kabelverbindung - Das String-Ende wird ermittelt aus 0x28 "Klammer auf" und 0x00 "NUL" (in C ist NUL gleich Stringende - vielleicht kommt daher der Unterschied zur RS232 Kommunikation?) Mit folgender Änderung wird das Problem behoben:
phocos_any_grid.php
Original:
Code: Alles auswählen
[157] if (substr($Antwort,-1) == "\r" and substr($Antwort,0,1) == "(") {
Code: Alles auswählen
[157] if (ord(substr($Antwort,-1)) == 0x00 and substr($Antwort,0,1) == "(") {
Damit wird der empfangene String richtig erkannt und das Script läuft ohne Abbruch durch.
Gruß
Matthias