Seite 1 von 1

Redmatic Modbus TCP Solaredge

Verfasst: 29.03.2024, 12:36
von agollin
Hallo, ich habe eine RedMatic und bin neu darin.

Ich habe die Palletten "node-red-contrib-modbus-tcp-ip" und "node-red-contrib-re-modbus-tcp-ip" Installiert.

Nun wollte ich die Werte vom WR (SE8K HomeHub) abholen. Mit EdgeMon habe ich den Modbus schon geprüft und sehe die Werte des WR.
Könntet Ihr mir etwas helfen?

Was muss man in die Inject Note eintragen?

Was kommt in die Modbus Node?

Wie stellt man dann das Register da?

Ich suche:

* den SOC der Batterie

* AC Einspeisung/Bezug des BUI

* die gesamt DC Leistung der Anlage (aller WR)

Ziel ist es für mich einzelne Aktoren in meiner HomeMatic bei zu viel Überschuss zu starten.

Re: Redmatic Modbus TCP Solaredge

Verfasst: 30.03.2024, 10:19
von agollin
mein Inject:
msg.payload = {}
{
"unitid": 1,
"functioncode": 3,
"address": 40083,
"quantity": 2,
"modbus_ip": "192.168.2.125",
"modbus_port": 1502,
"timeout": 1000,
"retries": 0,
"retry": 100,
"logerror": true
}
Die Adresse 40083 sollte die AC Leistung in der AC Leistungsfaktor sein.

Mein Modbus Modul kommt aus der Palette:
node-red-contrib-re-modbus-tcp-ip

Meine Node:
modbus get
{
"name": modbus get,
"IP": 192.168.2.125,
"port": 1502,
"connection timeout": 100,
"number of retries": 0,
"retry after": 100,
"log": true
}

Mein Wechselrichter antwortet, ich leite die Antwort in einen debug Node.

{"payload":{"unitid":1,"functioncode":3,"address":40083,"quantity":2,"modbus_ip":"192.168.2.125","modbus_port":1502,"timeout":1000,"retries":0,"retry":100,"logerror":true},"_msgid":"2b43062.17bc3fa","ip":"192.168.2.125","address":40083,"quantity":2,"unitid":1,"port":1502,"timeout":100,"retries":0,"retry":100,"logerror":true,"responseBuffer":{"buffer":[116,9,255,255]}}


Leider habe ich nun Probleme mit meiner "buffer parser" node:
Error: data is not an array or a buffer
NodeRed_buffer-parser_error.png
Kann Mir hier vielleicht jemand einen Tipp geben?

Re: Redmatic Modbus TCP Solaredge

Verfasst: 30.03.2024, 16:06
von Henke
Den einzigen Buffer, den du in der Antwort hast, steht unter "responseBuffer.buffer" und nicht unter "payload".
Ändere mal die Property.

Re: Redmatic Modbus TCP Solaredge

Verfasst: 30.03.2024, 17:39
von agollin
Vielen Dank. Wie schon geschrieben, ich bin ein absoluter Anfänger.

Re: Redmatic Modbus TCP Solaredge

Verfasst: 12.04.2024, 17:11
von agollin
Und wieder habe ich ein Problem.
NodeRedBufferFloat01.png
Mein Batteriestand ist zu diesem Zeitpunkt 100%, sprich 100.
In einem Konverter im Netz habe ich die 100 zu FLOAT konvertiert. Es kam [42,C8,00,00] raus.
Vom Bus bekomme ich aber [00,00,42,C8] Das bedeutet ich muss die 16Bit vertauschen. Kann der buffer-parser das?

Re: Redmatic Modbus TCP Solaredg

Verfasst: 15.04.2024, 11:02
von Zodiac
Hallo,

Ich hatte bis gestern auch ein paar Automatisierungen laufen, bis ich mir durch ein Systemupdate alles zerschossen habe.

Das meist habe ich wie zum laufen bekommen, außer den Modbus bei meiner Redmatic Anwendung.
Ich bekomme das Modbus, Modul einfach nicht mehr installiert, die Installation bricht immer ab.
Ich hatte vor her eine Version 4.1.3 auf dem System, wenn aber jetzt versuche das Modbusmodul zu installieren, dann wir dieses Version gewählt: node-red-contrib-modbus 5.30.0 die sich aber nicht installieren lässt.

Folgende Fehlermeldung:
IMG_0561.jpeg
Also was muss ich updated oder wie kann ich eine ältere Version des Modbus Moduls installieren?

Gruß Stefan

Re: Redmatic Modbus TCP Solaredge

Verfasst: 15.04.2024, 11:09
von Henke
Update auf RasberryMatic und dann Update von RedMatic, siehe Signatur.

Re: Redmatic Modbus TCP Solaredge

Verfasst: 15.04.2024, 17:19
von Zodiac
Die ganze Aktion hat nur 20 Minuten gedauert und "ALLES" läuft wieder :-)

Allerbesten Dank!
Stefan

Re: Redmatic Modbus TCP Solaredge

Verfasst: 19.04.2024, 19:53
von drose28357
agollin hat geschrieben:
12.04.2024, 17:11
Mein Batteriestand ist zu diesem Zeitpunkt 100%, sprich 100.
In einem Konverter im Netz habe ich die 100 zu FLOAT konvertiert. Es kam [42,C8,00,00] raus.
Vom Bus bekomme ich aber [00,00,42,C8] Das bedeutet ich muss die 16Bit vertauschen. Kann der buffer-parser das?
Stell mal im BufferParser von Float (Be) auf Float(Le) um. Das ändert die Reihenfolge der beiden 16 Bit-Blöcke vor der Umwandlung in Float.