NEWS
MODBUS - wie CSV importieren
-
@leonundjulie Du wirst doch nicht so schnell aufgeben?!
Die Adressen hast du im Reiter Holding Register eingetragen? Das ist der Funktionscode den du beim Qmod eintragen musstest. Das hast du leider bei deinen Screenshots immer abgeschnitten.Wenn du auf RTU umstellst, dann ein wenig warten. Es dauert schon einige Sekunden bis dann Daten kommen, falls dies die richtige Einstellung sein sollte.
-
@radi ich habe nicht aufgegeben und es läuft.
Der erste Fehler: ich hatte beim Importieren der Register "ALLIAS AKTIV" gesetzt. Daduch waren die Register Adressen zwar 4xxxx da, aber nicht so richtig. Also "ALIAS AKYTIV" auf nicht aktiv gesetzt, den Import nochmals neu gemacht und POLL respektive ABFRAGE gesetzt ....
Der zweite Fehler: bei den Registern, die SMARTFOX als RW definiert, darf man keine Abfrage machen.
Damit spiele ich dann später mal weiter
DANKE der Unterstützung aus dem Forum.
Ps: hier noch die von Smartfox zur Verfügung gestellte Registerliste (https://smartfox.de/wp-content/uploads/2022/12/Modbus-Register-SMARTFOX-Pro-SMARTFOX-Pro-2-v22e-00.01.03.10.xlsx) zu 100% ins TSV übersetzt (noch Poll/Abfrage -> muss jeder für sich entsprechend seine Hardware-Konfiguration anpassen).
Und die abschließende Erkenntnis: man muss die von SMARTFOX vorgegebenen Nummern der Register in der Nummerierung um "1" kleiner angeben (verstehe ich zwar nicht, habe ich durch Zufall im Photovoltaik Forum gefunden, nachdem die ausgelesenen Werte alle falsch waren). Hier die angepaaste Bersicht: Smartfox_MODBUS.txt
-
@leonundjulie sagte in MODBUS - wie CSV importieren:
"ALLIAS AKTIV" gesetzt.
dazu:
@radi sagte in MODBUS - wie CSV importieren:
@leonundjulie Die Aliase sind aus?
@leonundjulie sagte in MODBUS - wie CSV importieren:
ABFRAGE gesetzt
bei Holdingregister (40xxx) die eigentlich zum Scheiben gedacht sind ist das notwendig.
@leonundjulie sagte in MODBUS - wie CSV importieren:
bei den Registern, die SMARTFOX als RW definiert, darf mein keine Abfrage machen.
das passt dann nicht!
RW steht doch für ReadWrite, oder? -
-
list item“ALLIAS benutzen” darf nicht gesetzt sein
-
ich denke, das RW = READ-WRITE bedeutet, und zum Steuern der Relais und/oder Modi steht …. Aber soweit bin ich noch nicht.
Ich fürchte im Moment, dass die Registerliste nicht korrekt ist, weil ich anteilig Wertre lese, die nicht stimmen können. Benutzt Ihr die SMARTFOX-Liste 1:1 und operiert Ihr mit Offset von Minus 1?
-
-
@leonundjulie Hallo, wie bereits erwähnt lese ich andere Geräte als den Smartfox per Modbus aus. Bei welchen Registern hast du denn Probleme? Die Register für Spannung, Strom und Leistung sollten als erste Fingerübung herhalten.
Dies sind bei dir alles Holding-register. Also Registernummer(in der .xlsx die Startadresse), Zahlenformat und den Faktor eingestellt und es sollten die ersten plausiblen Werte kommen. -
@radi Hallo. Ich bin jetzt so weit, dass ich die Werte meines SMARTFOX via MODBUS in den iOBroker einlesen kann. Letztlich habe ich im Photovoltaik Forum den Tip gefunden, dass die von SMARTFOX im Downloadbereich zur Verfügung gestellten Nummern der Holdingregister um eins kleiner gewählt werden müssen. Warum … gute Frage, aber schade, dass man diesbezüglich erst lange im Internet suchen muss - gut, dass es auch das Forum gibt.
Aber ein Thema ist noch offen: wie steure ich die Register, mit denen man zum Beispiel ein RELAY aktiviert/deaktiviert?
-
@leonundjulie sagte in MODBUS - wie CSV importieren:
wie steure ich die Register, mit denen man zum Beispiel ein RELAY aktiviert/deaktiviert?
indem du den Wert des Registers entsprechend änderst!?
-
@homoran der Jahreswechsel ist durch und ich habe wieder Zeit zum Spielen . Den Wert eines Registers einfach durch senden eines Wertes zu ändern bedard wohl noch eines Kniffs.
Denn man muss wohl bei den beteroffenden Registern auch noch die Kreuzchen in der richtigen Spalte machen
Denn laut https://github.com/ioBroker/ioBroker.modbus kann ich wählen zwischen
Leider habe ich das erst gerade gesehen, denn auf meinem iPAD wird mir die Spalte WP gar nicht angezeigt (zu kleiner Screen) und deshalb habe ich es gestern Abend bis dato nur mit CW mehr oder minder erfolglos probiert. Soll heißen, dass ich manchmal einen Status ändern könnte ... Betonung liegt auf manchmal - bestenfalls liegt es am Unterschied zwischen CW und WP.
Und es scheint auch noch so zu sein, dass man folgendes setzen muss
denn der Smartfox gibt zum Schreiben vor, dass man beim Schreiben den Function Code HEX 10/DEC16 verwenden soll (ist aber auch noch Spekulation):
Schwere Geburt. Hat jemand Erfahrungen, die er mit in den Ring werfen kann. Irgendwie muss man dem Smartfox aus einer iOBroker VIS (mein Ziel) doch sagen köennen was er zu machen hat
-
@leonundjulie sagte in MODBUS - wie CSV importieren:
Den Wert eines Registers einfach durch senden eines Wertes zu ändern beardf wohl noch eines Kniffs.
nöö!
wie kommst du darauf?Bevor ich auf die restlichen "Spekulationen" eingehe, sag bitte was denn nicht so klappt, wie du es willst.
Was passiert statt dessen? -
@homoran , gern. Ich greife aus den verschiedenen Registern mit Read/write Option mal eines heraus.
Laut Smartfox ist definiert:
Ich habe dieses Register als 41607 übernommen.
Die Web.Oberfläche der Smartfox Software sieht so aus
Es gibt also nicht nur die beiden von Smartfox definierten Statis, sondern auch die an anderer Stelle schon definierten:
- Aus: 3
- A: 0
- A+: 2
- M: 1
Wenn ich den Status via Smartfox-Web-Oberfläche ändere, dann erhalte ich diese Information (0 ... 3) auch im iObroker.
Das wechseln des Status möchte ich aber auch vom iOBroker aus machen, dem Regsiter also den Wert 0 oder 1 oder 2 oder 3 zuweisen. Und genau das funktioniert nicht. Wenn ich den Wert im iOBroker setzte, dann blinkt die gewählte Ziffer 2 oder 3 mal auf und wechselt abschließendn wieder zum vorherigen Stand, im Smartfox passiert gar nichts.
Spontane Spekulation (weil ich ja nicht weis was der MODBUS-Adapter so macht und ich auch noch keine Erklärung dafür gefunden habe, dass man die Register endgegen der Vorgabe von Smartfox alle um -1 kleiner wählen muss): kann es sein, dass ich zum Lesen de Regsiters car charge 1 charge mode das Holdig-Register 41607 und zum Schreiben das Holding-Register 41608 (das von Smartfox defineirte) verwenden muss?
-
@leonundjulie sagte in MODBUS - wie CSV importieren:
Laut Smartfox ist definiert:
Ich habe dieses Register als 41607 übernommen.
Die Web.Oberfläche der Smartfox Software sieht so ausDanke für diese Aufstellung!
leider fehlt die Konfiguration dieses Registers in der Modbus Instanz
-
@leonundjulie sagte in MODBUS - wie CSV importieren:
noch keine Erklärung dafür gefunden habe, dass man die Register endgegen der Vorgabe von Smartfox alle um -1 kleiner wählen muss)
das sollte in der Registerbeschreibung des Gerätsstehen, mit welchem Offset die da arbeiten.
40000 oder 40001 (möglich wäre auch 39999)@leonundjulie sagte in MODBUS - wie CSV importieren:
kann es sein, dass ich zum Lesen de Regsiters car charge 1 charge mode das Holdig-Register 41607 und zum Schreiben das Holding-Register 41608 (das von Smartfox defineirte) verwenden muss?
Das müsste ebenfalls in der Registerbeschreibung stehen.
üblicherweise sind RO Register Inputregister (30xxx) und nur beschreibbare Register Holdingregister (40xxx).
Leider wird das auch nicht immer eingehalten. -
@homoran , ich gehe hier auf Deine beiden Kommentare ein.
Was ein Hersteller sollte und nicht tut ..... any way, der Hersteller hat das veröffentlicht https://smartfox.de/wp-content/uploads/2022/12/Modbus-Register-SMARTFOX-Pro-SMARTFOX-Pro-2-v22e-00.01.03.10.xlsx
Dort ist kein Offset definiert. Das man die Nummern der Register um minus 1 kleiner angeben muss, habe ich nur durch sehr viel Recherche herausgefunden .... demmentsprchend bekomme ich plausieble Werte.
Gruß
Andreas -
@leonundjulie sagte in MODBUS - wie CSV importieren:
Hersteller hat das veröffentlicht
ok!
kann ich leider am Dandy nichts mit anfangen.kannst du bitte die relevanten Teile (allgemeines zu den Modbus Parametern, Angaben zu diesem Beispielregister als Text in code-tags posten?
@leonundjulie sagte in MODBUS - wie CSV importieren:
Dort ist kein Offset definiert.
So wie das in den bisherigen Screenshots zu sehen war, werden anscheinend Hex-Werte angegeben.
Wenn du diese in Dec umrechnest, kommt dann eine 40xxx raus oder eher 1606?Da müsstest du dann entweder ohne Alias arbeiten und genau diese Zahl eintragen oder den offset von 39999-40001 hinzufügen (je nach Gusto des Herstellers) .
könntest du bitte noch
@homoran sagte in MODBUS - wie CSV importieren:
die Konfiguration dieses Registers in der Modbus Instanz
für 41607 nachreichen
-
@homoran manchmal muss man ur drüber reden ... hatte wie zig andere Tomaten auf den Augen In der vom Hersteller bereitgestellen MODBUS-Definition (Excel-Liste) gibt es einen zweiten Reiter. Und auf dem wurden wohl von allen die ersten beiden Zeilen überlesen.
.... es gibt also einen Offset. Zumindest das wäre geklärt.Somit ist meine CSV aus meiner Sicht (eigentlich) richtig - hatte bis dato nur keine Erklärung warum es MINUS 1 sein muss
Gerne nochmals hier die Definition für das Register (Foto von der Originaldatei)
Und das, was ich daraus machte
Ich wiederhole gern: lesen kann man, nur schreiben funktioniert nicht. Und da komme ich wieder auf den Offset zurück. Kann man den pauschal im Adapter angeben (ich habe bis dato nichts gefunden)?
Edit: wenn man den Expertenmode anmacht, dann taucht eine Offsetspalte auf. Ich importiere also nochmals die Porignal CSV respektive TSV und setzt dann in der Spalte bei jedem Register -1?
-
@leonundjulie sagte in MODBUS - wie CSV importieren:
es gibt also einen Offset
@leonundjulie sagte in MODBUS - wie CSV importieren:
die Definition für das Register
oh, doch in Dezimal!
und da steht doch auch, dass nur die Werte 0 und 1 unterstützt werden.
@leonundjulie sagte in MODBUS - wie CSV importieren:
dann taucht eine Offsetspalte auf.
brauchst du nicht.
Du hast doch schon alle Register um 1 erniedrigt -
@homoran Fazit: es geht … Zusammenfassung
-
MODBUS-Adapter (Reiter Allgemeines, Bereich Verbindungsparamter) mit IP-Adresse und Port des SmartFox-Energymanager einrichten (iOBroker als Master)
-
MODBUS-Adapter (Reiter Allgemeines, Bereich Allgemeines): Kreuz bei Nur „Write multiple registers) setzen
-
Im Reiter HOLDING Registers die zuvor bei SMARTFOX heruntergeladenen Register-Konfiguration (Adressen minus 1) eintragen (Import ist weiter oben beschrieben); in der Spalte ABFRAGE Kreuze bei den Registern setzen, die man auslesen möchte
(alle möglichen Fotos sind schon in diesem Thread weiter oben gesendet )
Mehr muss man nicht machen!
Warum es bei mir so stolperte? Keine Ahnung. Jetzt lese ich Werte aus und setze vom iOBroker aus die Modi für die RW-Register des SMARTFOXES, wie es beliebt … alles kommt im SMARTFOX an und wird auch in dessen APP angezeigt.
Danke für die allgemeine Unterstützung!
-
-
@leonundjulie sagte in MODBUS - wie CSV importieren:
Fazit: es geht … Zusammenfassung
und mode 2 und 3 vom Register 41607 wird von Haus aus nicht unterstützt!
(anscheinend aber trotzdem gelesen)