2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

ersthelfer
Beiträge: 54
Registriert: 04.06.2018, 17:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von ersthelfer » 01.02.2023, 06:20

Hallo,

ich lese mit https://flows.nodered.org/node/node-red ... -modbustcp meinen Wechselrichter aus und das klappt auch gut, solang ich nur einen Registerbereich auslese.

Wenn ich nun einen zweiten Speicherbereich auslesen will klappt das nicht.

Laut Anleitung soll ich das mit einem "Multiple Input" machen:

Code: Alles auswählen

[
    {
        "name": "Reg1",
        "address": 4999,
        "quantity": 72,
        "dataType": "FC4",
        "intervall": 15000,
        "ieeeBE": true,
        "ieeeType": "off"
    },
    {
        "name": "Reg2",
        "address": 12999,
        "quantity": 78,
        "dataType": "FC4",
        "intervall": 15000,
        "ieeeBE": true,
        "ieeeType": "off"
    }
]
Aber wenn ich den Inject-Node starte, bekomme ich hunderte von Nachrichten, aber nicht die gewünschten Bereiche :(

Ich bin ein ziemlicher Neuling in Node Red. Kann mir jemand sagen, was ich falsch mache? (Flow siehe Anhang)
Ist vermutlich ein blöder Anfängerfehler.

Vielen Dank für Eure Hilfe....
Dateianhänge
ModBus Flow.txt
(8.57 KiB) 39-mal heruntergeladen

Benutzeravatar
Henke
Beiträge: 1521
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 140 Mal
Danksagung erhalten: 306 Mal

Re: 2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von Henke » 01.02.2023, 06:31

Ganz pragmatisch würde ich einfach mal 2 read nodes vor die Auswertung schalten.

/ Read 1 \
Inject - Read 2 - Auswerten

ersthelfer
Beiträge: 54
Registriert: 04.06.2018, 17:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: 2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von ersthelfer » 01.02.2023, 07:22

Das hat leider nicht geklappt!

Sobald ich einen zweiten Read Node einfüge wechseln sich beide Nodes mit "disconnect" ab.

Ich vermute, dass mit dem zweiten Node auch eine zweite ModBus Verbindung aufgebaut wird.
Der Wechselrichter akzeptiert aber nur eine Verbindung :(

Deshalb muss ich vermutlich mit dem "multiple input" arbeiten, bin aber zu doof dazu :?

wok1415
Beiträge: 118
Registriert: 16.07.2020, 15:52
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: 2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von wok1415 » 01.02.2023, 09:17

Hallo,

per Modbus angesprochene Geräte können nicht beliebig viele Daten als Antwort auf einen Read Request liefern - der Stromzähler SDM72DM kann z.B. nur maximal 30 zusammenhängende Werte auf einmal liefern. In dem Read Request werden gleich 72 bzw. 78 Werte abgefragt.

Sechs Parallel arbeitende Modbus-Read Nodes funktionieren bei mir problemlos (mit Modbus RTU) und laden gleichzeitig mehrere zu lesende Werte - die werden nicht durch einen Inject node getriggert, sondern durch die im Node eingestellte Poll Rate (alle 10 s). Ich verwende node-red 3.0.2 und nodejs 16 (mit nodejs 18 läuft es auch) - unter RedMatic laufen ältere Versionen, die vielleicht noch fehlerhaft sind.

Kompliziert wird es erst wenn asynchron gelesen und geschrieben wird.

Viele Grüße
Zuletzt geändert von wok1415 am 01.02.2023, 10:30, insgesamt 2-mal geändert.

ersthelfer
Beiträge: 54
Registriert: 04.06.2018, 17:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: 2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von ersthelfer » 01.02.2023, 09:55

Hallo,

die 72 bzw. 78 Werte sind kein Problem.

Wenn ich nur die 72 oder nur die 78 Werte Abfrage klappt das.

Nur "gleichzeitig" oder "nach einander" bekomme ich nicht hin.

Liegt bestimmt an dem Inject Node.

Benutzeravatar
Henke
Beiträge: 1521
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 140 Mal
Danksagung erhalten: 306 Mal

Re: 2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von Henke » 01.02.2023, 10:39

Screenshot 2023-02-01 103754.jpg
Versuch es mal so.
Die Werte vom Inject aufteilen auf die beiden Abfragen

ersthelfer
Beiträge: 54
Registriert: 04.06.2018, 17:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: 2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von ersthelfer » 01.02.2023, 17:33

Hat leider auch nicht geklappt. :(

Sobald ich mit dem Inject arbeite, bekomme ich mehrere (hundert?) Nachrichten.

Also entweder arbeitet node-red-contrib-modbustcp nicht vernünftig mit dem Redmatic oder ich mache immer noch was mit dem Inject falsch

So sieht mein Inject Object in einer Debug Node aus

Code: Alles auswählen

{"
_msgid":"8587ec18.9fa9",
"payload":
{
"name":"Reg2",
"address":12999,
"quantity":78,
"dataType":"FC4",
"intervall":15000,
"ieeeBE":true,
"ieeeType":"off"
},
"topic":""
}
Ist auch egal, ob ich auch noch 2 unterschiedliche topics setze :cry:

Es reicht auch schon, das ich einen einzigen Bereich als Inject setzt, damit die ich Massen an Meldungen bekomme....

wok1415
Beiträge: 118
Registriert: 16.07.2020, 15:52
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: 2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von wok1415 » 01.02.2023, 18:35

... und wie funktioniert es ohne Inject Node - mit eingestellter Poll Rate ?
Dateianhänge
Modbus-Read Node.png
Einstellung der Poll Rate im Read Node

ersthelfer
Beiträge: 54
Registriert: 04.06.2018, 17:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 3 Mal

Re: 2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von ersthelfer » 01.02.2023, 18:57

Ja, das klappt gut.

Jeder einzelne Bereich für sich ist okay, aber nicht mehrere Bereiche....

Dein Screenshot scheint aber nicht aus der node-red-contrib-modbustcp zu sein, denn die Unit-Id und das "Delay to activate" gibt es bei mir nicht.

Die Unit-Id ist in dem Server Dialog bei mir....

wok1415
Beiträge: 118
Registriert: 16.07.2020, 15:52
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 1 Mal
Danksagung erhalten: 3 Mal

Re: 2 Registerbereiche mit node-red-contrib-modbustcp auslesen

Beitrag von wok1415 » 02.02.2023, 10:43

Verwendest Du RedMatic unter RaspberryMatic oder unter der piVCCU ? Unter der aktualisierten RaspberryMatic läuft node 16, da wäre es angesagt Node-Red auf Version 3.0.2 upzudaten und auch unter "Manage Palette" die nodes upzudaten.

Falls es nach dem Update immer noch Probleme mit Deinen beiden Modbus TCP Read Nodes gibt - dann bleibt eigentlich nur noch die Read Nodes durch Flex Getter Nodes zu ersetzen und/oder eine Modbus Queue einzubauen.

Antworten

Zurück zu „RedMatic“