Hallo Thome, hallo Lukas,
ich kann derzeit aus beruflichen und privaten Gründen keine Zeit investieren für das Thema. Und das ist wohl möglich ein größerer Aufwand, weil die Bibliothek mittlerweile Fortgeschrittene Anforderungen stellt, die edomi wegen der definierten CentOS Basis nicht einfach erfüllen kann.
Kurz: ich weiß es schlicht nicht, was derzeit richtig ist und kann Euch leider auch nicht helfen, das tut mir leid, aber kann es nicht ändern.
ich hoffe, im Herbst Zeit dafür zu finden.
Ankündigung
Einklappen
Keine Ankündigung bisher.
LBS19001586 ModBus Read GENERIC
Einklappen
X
-
Hallo zusammen,
ich bin in dem ganzen Thema ein absoluter Neuling also verzeiht mir Fehler
Ich verwende Edomi 2.02 mit Cent OS 6.5 (aus der Edomi Anleitung)
Ich würde gerne meinen Wechselrichter auslesen und ein User hier hat genau meinen Typ
Wechselrichter (Sungrow SH10RT) mit deinem Baustein ausgelesen.
Ich will nun diesen FB installieren aber scheitere bereits bei der ersten Zeile deiner Installanleitung.
Wenn ich alles richtig verstehe mach ich meinen PuttY auf und verbinde mich mit meinem Edomi.
Nun gebe ich den Befehl ein:
[root@edomi ~]# yum install -y git wget php-mbstring
dann kommt diese Meldung:
loaded plugins: fastestmirror
loading mirror speeds from cached hostfile
yumrepo error: all mirror urls are not using ftp, http[s] or file
eg. invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
error: cannot find a valid baseurl for repo:base
ist das richtig soll ich einfach weitermachen oder stimmt schon was nicht?
Vielen Dank schon mal
Zuletzt geändert von Lukas 1989; 14.07.2022, 19:36.
Einen Kommentar schreiben:
-
Hallo saegefisch,
danke, der LBS läuft jetzt mit PHP7.4. Vielleicht teste ich noch mal PHP8 in der VM, aber nicht mehr am Produktivsystem
Beim Auslesen der Heizung (Nibe SMO S40) habe ich jetzt aber das Problem, dass bei der Aufteilung der Register auf mehrere Requests nur der letzte Request ausgeführt wird. Ich habe 2 Instanzen vom LBS, eine für FC03, die andere für FC04. Beide verhalten sich identisch:
Code:2022-04-23 01:48:50 236318 4862 debug LBS19001586 [v0.6]: Modus Read GENERIC EXEC Daemon start initiated (300) 2022-04-23 01:48:50 238821 4862 debug LBS19001586 [v0.6]: Modus Read GENERIC LBS ended (300) 2022-04-23 01:48:51 096020 4901 debug EXE19001586 [v0.6]: FC3 = HOLDING-Methode wird verwendet (siehe ModBus-Doku, meist für 3xxxx) (300) 2022-04-23 01:48:51 097968 4901 debug EXE19001586 [v0.6]: RegisterOffset: konstant = 0 | Typ-Automatik = (300) 2022-04-23 01:48:51 099284 4901 debug EXE19001586 [v0.6]: Daten wurden als CSV geliefert (300) 2022-04-23 01:48:51 100724 4901 debug EXE19001586 [v0.6]: data_array: (300) 2022-04-23 01:48:51 100872 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================ 2022-04-23 01:48:51 100953 4901 debug EXE19001586 [v0.6]: ["18","Gradminuten","int16","20","Gradminuten K\u00fchlung","int16","22","Reset Alarm","uint16","237","Betriebsmodus","uint16"] 2022-04-23 01:48:51 101011 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================ 2022-04-23 01:48:51 101950 4901 debug EXE19001586 [v0.6]: Register: (300) 2022-04-23 01:48:51 102045 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================ 2022-04-23 01:48:51 102109 4901 debug EXE19001586 [v0.6]: [{"address":"18","name":"Gradminuten","type":"int16 ","uri":"192.168.2.10:502","unitId":1},{"address": "20","name":"Gradminuten K\u00fchlung","type":"int16","uri":"192.168.2.10:5 02","unitId":1},{"address":"22","name":"Reset Alarm","type":"uint16","uri":"192.168.2.10:502","u nitId":1},{"address":"237","name":"Betriebsmodus", "type":"uint16","uri":"192.168.2.10:502","unitId": 1}] 2022-04-23 01:48:51 102173 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================ 2022-04-23 01:48:51 108887 4901 debug EXE19001586 [v0.6]: Anzahl Register gesamt angefragt: 4 (300) 2022-04-23 01:48:51 111057 4901 debug EXE19001586 [v0.6]: Anzahl Requests ergeben sich gesamt: 2 (300) 2022-04-23 01:48:51 112404 4901 debug EXE19001586 [v0.6]: Anzahl Requests in Chunk 1 : 2 (300) 2022-04-23 01:48:51 787609 4901 debug EXE19001586 [v0.6]: Response Fehler: (300) 2022-04-23 01:48:51 787839 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================ 2022-04-23 01:48:51 787941 4901 debug EXE19001586 [v0.6]: [{}] 2022-04-23 01:48:51 788028 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================ 2022-04-23 01:48:51 789624 4901 debug EXE19001586 [v0.6]: Folgende unerwünschte Werte ausfiltern: (300) 2022-04-23 01:48:51 789823 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================ 2022-04-23 01:48:51 789923 4901 debug EXE19001586 [v0.6]: ["-2147483648","2147483648","4026531840","4294967295"] 2022-04-23 01:48:51 790020 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================ 2022-04-23 01:48:51 791676 4901 debug EXE19001586 [v0.6]: Gewählte(r) Ersatzwert(e): (300) 2022-04-23 01:48:51 791827 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================ 2022-04-23 01:48:51 791929 4901 debug EXE19001586 [v0.6]: "0" 2022-04-23 01:48:51 792021 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================ 2022-04-23 01:48:51 796524 4901 debug EXE19001586 [v0.6]: Ergebnis JSON: {"Betriebsmodus":"0"} (300) 2022-04-23 01:48:56 802865 4901 debug EXE19001586 [v0.6]: Anzahl Requests in Chunk 1 : 2 (300) 2022-04-23 01:48:57 578221 4901 debug EXE19001586 [v0.6]: Response Fehler: (300) 2022-04-23 01:48:57 578588 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================ 2022-04-23 01:48:57 578818 4901 debug EXE19001586 [v0.6]: [{}] 2022-04-23 01:48:57 579003 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================ 2022-04-23 01:48:57 581821 4901 debug EXE19001586 [v0.6]: Folgende unerwünschte Werte ausfiltern: (300) 2022-04-23 01:48:57 582072 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================ 2022-04-23 01:48:57 582273 4901 debug EXE19001586 [v0.6]: ["-2147483648","2147483648","4026531840","4294967295"] 2022-04-23 01:48:57 582464 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================ 2022-04-23 01:48:57 585338 4901 debug EXE19001586 [v0.6]: Gewählte(r) Ersatzwert(e): (300) 2022-04-23 01:48:57 585617 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================ 2022-04-23 01:48:57 585812 4901 debug EXE19001586 [v0.6]: "0" 2022-04-23 01:48:57 586026 4901 debug EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================ 2022-04-23 01:48:57 592875 4901 debug EXE19001586 [v0.6]: Ergebnis JSON: {"Betriebsmodus":"0"} (300) 2022-04-23 01:49:02 602365 4901 debug EXE19001586 [v0.6]: Anzahl Requests in Chunk 1 : 2 (300) 2022-04-23 01:49:03 344461 4901 debug EXE19001586 [v0.6]: Response Fehler: (300)
Einen Kommentar schreiben:
-
Ich möchte in naher Zukunft eine 22kW-Wallbox installieren und die Ladegeschwindigkeit über EDOMI vorgeben. Ansteuerung erfolgt wohl über Modbus TCP? Dazu reicht dieser Baustein dann aber nicht, da nur lesend? Gibt es Alternativen?
Einen Kommentar schreiben:
-
Als ich den LBS entwickelte, war es - passend zu edomi - PHP 7.x. Ich bin selbst nicht der php-Spezialist, würde aber nicht wagen wollen, auf 8 zu erhöhen. Mit so einer Situation habe ich - sicher verwerflich - nicht gerechnet/nach gedacht.
bin dazu gerade auch erst mal ratlos (im Wortsinne) und müsste mich damit beschäftigen, habe aber gerade beruflich und privat überhaupt keine Reserven. Vielleicht Gibt es ja guten Rat hier oder zu Deiner Frage im anderen Thema und würde nur das nötigste tun wollen gerade.
zu FC03/04: das Thema Write gab es hier schon mal. Ich könnte mir gut vorstellen, das mal zu ergänzen, die Lib gäbe es wohl her. Aber nur in einer Welt, in der ich dazu Zeit hätte. Das sehe ich gerade nicht und bedarf habe ich selber keinen. die Lösung für php 8 wäre da drängender.
Einen Kommentar schreiben:
-
Hallo saegefisch ,
die aktuelle Version vom modbus-tcp-client im Repo (3.0.0) erfordert PHP8. Ist das empfehlenswert und läuft damit Edomi überhaupt noch oder sollte man lieber gezielt die 2.4.0 nehmen? Beim ersten Versuch PHP zu aktualisieren, habe ich mir natürlich erst mal CentOS zerschossen
Drum will ich das nur noch 1x machen. Also PHP8.1 mit modbus-tcp-client 3.0.0 oder PHP7.x (welchen genau? 7.4?) mit modbus-tcp-client 2.4.0. Welche Kombination läuft bestätigt stabil mit Edomi?
Und noch eine blöde Frage: Der LBS kann nur FC03 und FC04 also Read? Gibt es auch eine Lösung für Write? Es gibt nicht so viele Anwendungen, aber Datum/Uhrzeit setzen, Temperatur/CO2/VOC Messwerte an Heizung/KWL übergeben und mal die Intensivlüftung aktivieren bei vielen Gästen wäre schon ganz nett.
Einen Kommentar schreiben:
-
-
maque Oh je, habe deine Nachricht damals zwar gelesen, aber dann total vergessen. Sorry. Schaue ich mir noch an…
Einen Kommentar schreiben:
-
Es scheint mit dem JSON Interpreter noch Probleme zu geben. Mit E8klappt alles wunderbarCode:40001;"Magicbyte ? ModBus ID";uint16;40002;"ModBus-Firmware-Version";uint16;40003;"Anzahl unterstützter Register";uint16;40003;"Hersteller";string_32;40019;"Modell";string_32;40035;"Seriennummer";string_16;40051;"Firmware";string_16
Matthias
Einen Kommentar schreiben:
-
saegefisch : Einen tollen Baustein hat du uns da bereitgestellt und er funktioniert auch an einer e3dc. Vielen Dank dafür. Ich habe noch eine Frage und ein Problem: Kann ich den Baustein auch nur einmal beim Neustart aufrufen? Ich habe keine Einstellung gefunden, wie das funktionieren sollte. Ich würde das nutzen, um aus der E3DC Daten, wie Model oder Seriennummer via Modbus auszulesen.
In der Dokumentation steht40004 Hersteller: „HagerEnergy GmbH“ 16 String R
Mit E8 =Kommt im Fehlerlog des Bausteins folgenden Meldung:Code:[{ "address" : "40004", "type" : "string_16", "name" : "Hersteller" }]
Was mache ich noch falsch?Code:[TR] [TD]2022-03-16 22:50:28[/TD] [TD]728883[/TD] [TD]28020[/TD] [TD]debug [/TD] [TD]LBS19001586 [v0.6]: Modus Read GENERIC EXEC Daemon start initiated (1288)[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]754937[/TD] [TD]28020[/TD] [TD]debug [/TD] [TD]LBS19001586 [v0.6]: Modus Read GENERIC LBS ended (1288)[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]865044[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: FC3 = HOLDING-Methode wird verwendet (siehe ModBus-Doku, meist für 3xxxx) (1288)[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]866755[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: RegisterOffset: konstant = 0 | Typ-Automatik = A (1288)[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]868130[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: Daten wurden als JSON geliefert (1288)[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]869575[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: Typ Offset angewendet (string_16 = -1): 40004 -> 40003 (1288)[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]871041[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: Register: (1288)[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]871176[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: ================ ARRAY/OBJECT START ================[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]871279[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: [{"address":40003,"type":"string_16","name":"Herste ller","uri":"192.168.6.110:502","unitId":1}][/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]871403[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: ================ ARRAY/OBJECT END ================[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]875421[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: FEHLER in den Register-Paramtern! empty or unknown type for address given (1288)[/TD] [/TR] [TR] [TD]2022-03-16 22:50:28[/TD] [TD]876796[/TD] [TD]32640[/TD] [TD]debug [/TD] [TD]EXE19001586 [v0.6]: Erlaubte Typen: int16, unit16, int32, uint32, int64, uint64, string_xx (z.B. string_32), float, bit_xx, byte_true/byte_false -> siehe Doku LBS oder Library (1288)[/TD] [/TR]
Viele Grüße
Matthias
Einen Kommentar schreiben:
-
Hab's ans laufen bekommen!
Dank' an alle, die hier Vorarbeit geleistet haben!!!!
Gruß
Zuletzt geändert von Bleigiesser; 06.02.2022, 19:56.
Einen Kommentar schreiben:
-
Ok,
da ich auch eine SDM630 Modbus V2 habe, müsste es ja dann eigentlich gehen.
Bekomme aber immer den Fehler vom LBS.
Fehlt da noch was, dass ich in deinem Screenshot nicht lesen kann?
Gruß
Angehängte Dateien
Einen Kommentar schreiben:
-
Hey...Zitat von Bleigiesser Beitrag anzeigen...
Wo hast du den String in "E8" her damit ich das anpassen kann.
...
das sind die Register, die ich abfrage, in meinem Fall:
0;"Spannung [V]";float;6;"Strom [A]";float;12;"Leistung [W];float;70;"Frequenz [Hz]";float;72;"Geladen Summe [kWh]";float;74;"Entladen Summe [kWh]";float
Du findest in der Doku des SDM630 die Registerbeschreibung: hier ab Seite 55.
Die Register sind unabhängig vom IP-Umsetzer, sondern SDM-spezifisch.
Gruß
Sven
Einen Kommentar schreiben:
-
Hallo Sven,Zitat von xsven80x Beitrag anzeigenHey...
puh, das war ne schwere Geburt. Also für die Nachwelt festgehalten: Es funktioniert einwandfrei! ;-)
Ziel: Auslesen von SDM-Stromzählern (SDM230 und SDM630, vermutlich auch alle anderen SDM) über Elfin EE11-Converter.
LBS_Modbus.jpg
Danke an saegefisch für diesen LBS und die Hilfestellungen.
Mal wieder habe ich viel gelernt und kann jetzt hier weitermachen! :-)
Grüße
Sven
ich habe mir das mal so nachgebaut. Allerdings mit einem Allnet SDS102 als IP Gateway.
Bekomme aber immer den Fehler:
"vendor/autoload.php): failed to open stream: No such file or directory"
Über das EEM Meter Setting bekomme ich die Werte ausgelesen.
Wo hast du den String in "E8" her damit ich das anpassen kann.
Danke schonmal
Gruß
Angehängte Dateien
Einen Kommentar schreiben:
-
Die Usleep Befehle haben leider nichts gebracht und auch die E13 auf 20s hat keine Wirkung gezeigt. Es liegt anscheinend daran, wie du schon selbst sagst, das read und connect in einem Befehl stecken. In anderen Foren wird oft die Größe timeBetweenTransactionsMillis und reconnectAfterMillis auf mindestens 2 s gesetzt. Aber leider scheint es so das diese Befehle in dieser Lib nicht existieren. Zumindest hab ich nichts gefunden.
Einen Kommentar schreiben:


Einen Kommentar schreiben: