NEWS
SOLARFOCUS Modbus TCP - Registerdaten abfragen mit ioBroker
-
@wilher Ja, weil Du was falsch eingestellt hast, kommt der Fehler. Poste mal bitte ein Screenshot von Deinen Adaptereinstellungen und dann von den Holding Registern. Ich empfehle erst einmal mit einem Register anzufangen. Wenn es läuft, kann man die anderen sukzessive hinzufügen. Sollte nämlich eines falsch sein, geht der Adapter wieder auf rot.
-
@joergh Hier mal Screenshots der Einstellungen
-
Nimm mal Aliases benutzen, direkte Adressen benutzen und nicht auf 16 bit ausrichten raus und dann musst Du auch den Typ im Holding Register angeben, in deinem Fall bei diesem Wert int16, sprich "unsigned 16 Bit" und die Länge fehlt auch, in diesem Fall "1"
-
@joergh welches unsigned 16 bit soll ich nahmen? Big Endian oder Little Endian? Oder ist das egal?
Die Holding Register sind die Werte mit denen ich schreiben kann auf die Anlage?
-
@wilher Achso, sorry. Ob Big oder Little Endian ist nicht egal, sondern bedeutet er nimmt entweder die ersten 8 Bit als die niedrigeren oder die zweiten 8 Bit. Da kommen also völlig falsche Werte wenn es falsch herum eingestellt ist. Stegt vermutlich in der Doku. Meist ist es Big Endian, einfach mal probieren.
Um Werte lesen bzw. schreiben zu können muss man einen Code vorweg senden, z. B. 0x03 beim Holding Register abfragen. Das macht der Adapter für Dich automatisch bei den Werten die Du unter Holding Register einstellst. Also geht es erstmal nur ums Lesen.
-
@joergh Okay bis hierhin habe ich es verstanden... und wo ist der Unterschied zwischen Input und Holdingregister?
-
@wilher Holding Register sind die Analogen Output Register, Input - wie der Name schon sagt - analoge Eingangsregister...
Anbei mal ein Link, wenn Du es genauer wissen möchtest https://ipc2u.de/artikel/wissenswertes/modbus-rtu-einfach-gemacht-mit-detaillierten-beschreibungen-und-beispielen/
oder auch etwas kürzer...https://www.wachendorff-prozesstechnik.de/fileadmin/wp/fileserver/technical_notes/TN_0302_Grundlagen_Modbus.pdf
-
@joergh Okay, vielen Dank für die Ausführungen. Scheint zu funktionieren.
Wie kann man denn dann ggf. auch Werte zurück schreiben? Also z.B. 1107 Status Heizkreis den Wert 19 = Partybetrieb.
Nun muss ich nur den Anlagenhersteller nochmal anschreiben, wieso man weniger Werte auslesen kann als es scheinbar in der eigenen APP bzw. Display gibt.
-
@wilher Wenn Du den Wert des DP überschreibst, dann müsste er ihn vermutlich schon selber senden. Wenn nicht, dann musst Du die Werte wohl noch einmal als Input Register anlegen und dann dort reinschreiben.
Ich würde nun nach und nach die Werte konfigurieren und nicht alle auf einmal, da er wie gesagt bei einem falschen Wert die Abfrage aller Folgewerte abbricht und man das dann nur im Logfile sieht, bzw. daran, dass er den Adapter dann rot werden lässt. Man kann sie also alle in der Liste eintragen, aber das Häkchen bei "Abfrage" sukzessive hinzufügen.
Sollte er die Werte nicht schreiben wollen, kannst Du auch noch einmal versuchen ob das Werte schreiben mehrerer Werte was bringt. Laut Deiner Beschreibung erwartet er FC16, also mehrere Werte schreiben auf einmal...
Welche Werte hat er denn nicht?
-
@wilher Noch eine Frage, kann man eine Art Scan auf eine IP Adresse machen um zu sehen welche Adressen vom Mod-BUS ggf verfügbar sind bzw. alle Adressen zu finden die Daten liefern?
-
@joergh Mir fehlen Werte von Pumpen, Temp. Sensoren, Paddelschalter (Durchlauf) etc.
-
@wilher Unmöglich ist es nicht. Ich habe mal gelesen, dass sich einer ein Skript gebastelt hatte, aber da die Werte ja immer auch unterschiedlich lang sein können, ist das eher schwierig denke ich. Die Doku sollte alle Werte enthalten...
-
@wilher sagte in SOLARFOCUS Modbus TCP - Registerdaten abfragen mit ioBroker:
@joergh Mir fehlen Werte von Pumpen, Temp. Sensoren, Paddelschalter (Durchlauf) etc.
Was ist mit 1106 Mischerstellung, 1105 Heizkreispumpe, 1150 Vorlauftemperatur, etc. ?
Aber generell habe ich das auch, dass meine Heizungssteuerung vieles mehr kann als die APP und die wieder einiges mehr kann als die API...Fragen kostet nix
-
@joergh Und du meinst also ich solle erstmal alle Werte nach und nach im Holdingregister anlegen ach die 1100, 1107 etc?
-
@wilher sagte in SOLARFOCUS Modbus TCP - Registerdaten abfragen mit ioBroker:
@joergh Und du meinst also ich solle erstmal alle Werte nach und nach im Holdingregister anlegen ach die 1100, 1107 etc?
Nein, da das Input Register sind, wird Dein Gerät auf den FC03 den er bei den Holding Register am Anfang sendet nichts zurückliefern. Um die abfragen zu können muss er den FC04 senden und das macht er wenn Du die bei Input Register einträgst.
Sehe gerade, dass der die Werte in den Input Registern nur lesen kann...etwas entgegen der Philosphie wie ich sie verstanden habe...
-
@joergh Ah ja okay.
Bei 2406 Kesselreinigung bekomme ich immer 65535% als Wert zurück, ist da ggf noch etwas zu korrigieren?
-
@wilher Wie könnte man den ausserdem erreichen, dass statt z.b. einer 0 im Wert der Text "Heizkreis ist ausgeschaltet" erscheint, wäre ja für die VIS ganz nett
-
@wilher sagte in SOLARFOCUS Modbus TCP - Registerdaten abfragen mit ioBroker:
@joergh Ah ja okay.
Bei 2406 Kesselreinigung bekomme ich immer 65535% als Wert zurück, ist da ggf noch etwas zu korrigieren?
2406 kann ich in der Doku nicht finden...?
-
@joergh said in SOLARFOCUS Modbus TCP - Registerdaten abfragen mit ioBroker:
2406
Seite 8 von 12
@joergh said in SOLARFOCUS Modbus TCP - Registerdaten abfragen mit ioBroker:
@wilher sagte in SOLARFOCUS Modbus TCP - Registerdaten abfragen mit ioBroker:
@joergh Ah ja okay.
Bei 2406 Kesselreinigung bekomme ich immer 65535% als Wert zurück, ist da ggf noch etwas zu korrigieren?
2406 kann ich in der Doku nicht finden...?
-
@wilher sagte in SOLARFOCUS Modbus TCP - Registerdaten abfragen mit ioBroker:
@wilher Wie könnte man den ausserdem erreichen, dass statt z.b. einer 0 im Wert der Text "Heizkreis ist ausgeschaltet" erscheint, wäre ja für die VIS ganz nett
In der vis kannst Du Werten auch Texte zuordnen wenn Du das richtige Widget auswählst, ansonsten gibt es die Möglichkeit die Werte über ein Skript auszuwerten und Text zuzuordnen. Wenn Du z.B. Telegram Messages oder Emails versenden willst bei bestimmten Zuständen würde sich das sowieso anbieten.