Hallo,
hier einmal meine Datenpunktliste:
vielleicht spart das jemandem etwas Tipparbeit
Hallo,
hier einmal meine Datenpunktliste:
vielleicht spart das jemandem etwas Tipparbeit
@shakesbier
Ist der Zähler für Einspeisemanagement an die DTU angeschlossen? Dafür stehen keine Register in der Liste.
Eventuell direkt in ioBroker einbinden?
Es sind immer 40er Datenblöcke.
deswegen ist es auch wichtig in den Allgemeinen Einstellungen die Blockgröße auf 40 Byte zu stellen.
4096 Inverter.1.SN.0
4097 Inverter.1.SN.1
4097 Inverter.1.SN.2
4098 Inverter.1.SN.3
4098 Inverter.1.SN.4
4099 Inverter.1.SN.5
4099 Inverter.1.Port
4100 Inverter.1.PV.Spannung
4101 Inverter.1.PV.Strom
4102 Inverter.1.Netz.Spannung
4103 Inverter.1.Netz.Frequenz
4104 Inverter.1.PV.Leistung
4105 Inverter.1.Energie.heute
4106 Inverter.1.Energie.gesamt
4108 Inverter.1.Temperatur
4109 Inverter.1.Status
4110 Inverter.1.Alarm.Code
4111 Inverter.1.Alarm.Count
4112 Inverter.1.Link
4136 Inverter.2.SN.0
4137 Inverter.2.SN.1
4137 Inverter.2.SN.2
4138 Inverter.2.SN.3
4138 Inverter.2.SN.4
4139 Inverter.2.SN.5
4139 Inverter.2.Port
4140 Inverter.2.PV.Spannung
4141 Inverter.2.PV.Strom
4142 Inverter.2.Netz.Spannung
4143 Inverter.2.Netz.Frequenz
4144 Inverter.2.PV.Leistung
4145 Inverter.2.Energie.heute
4146 Inverter.2.Energie.gesamt
4148 Inverter.2.Temperatur
4149 Inverter.2.Status
4150 Inverter.2.Alarm.Code
4151 Inverter.2.Alarm.Count
4152 Inverter.2.Link
4176 Inverter.3.SN.0
4177 Inverter.3.SN.1
4177 Inverter.3.SN.2
4178 Inverter.3.SN.3
4178 Inverter.3.SN.4
4179 Inverter.3.SN.5
4179 Inverter.3.Port
4180 Inverter.3.PV.Spannung
4181 Inverter.3.PV.Strom
4182 Inverter.3.Netz.Spannung
4183 Inverter.3.Netz.Frequenz
4184 Inverter.3.PV.Leistung
4185 Inverter.3.Energie.heute
4186 Inverter.3.Energie.gesamt
4188 Inverter.3.Temperatur
4189 Inverter.3.Status
4190 Inverter.3.Alarm.Code
4191 Inverter.3.Alarm.Count
4192 Inverter.3.Link
und immer so weiter je Eingang
Moin @shakesbier ,
ein Wechselrichtereingang belegt 1 Datenblock.
Ein Dualwechselrichter de entsprechen 2.
Das kann man auch an der Seriennummer erkennen.
Moin,
zum Export Management kann ich nichts sagen. Habe ich nicht weiter getestet, weil ich es nicht nutze.
Die Cloud-Anbindung funktionierte bei mir weiter (habe ich zur Plausibilitätsprüfung der Messwerte verwendet).
@sigika
Hallo,
"ILLEGAL FUNCTION" bezieht sich, soweit ich das beobachtet habe, auf den Modbus Function Code. Also um welchen registertyp es sich handelt, und ob im Block oder einzeln gelesen / geschrieben wird. Ich habe die Meldung immer bekommen, wenn (durch die unglückliche Adressberechnung der DTU) eine Adresse außerhalb des gültigen Adressbereichs heraus kam, oder nicht als Holding abgefragt habe (sie Register Liste von Hoymiles: function code 0x03.
wichtig war bei mir, dass die 1. Adresse im Block mit der offiziellen Adressliste übereinstimmt und dann die Register ab da zusammenhängend im Block gelesen werden.
Gruß
Hallo,
ich habe mich seit gestern auch einmal mit den Modbus Datenpunkten der DTU befasst und an mir selbst gezweifelt. (DTU-Pro-S mit HMS-800-2T)
Schuld ist die Adressierung, die die DTU verwendet. diese ist Byte-orientiert. Das führt dazu, dass die Adressen zwischen DTU und ioBroker (und anderen Modbus Clients) abweichen: die DTU zählt die Bytes ab der Startadresse hoch. ioBroker und andere zählen die Worte ab der Startadresse hoch. Und da die Register immer als Block (function code 0x03) gelesen werden...
Wichtig ist in den Allgemeinen Einstellungen noch die Blockgröße von 40 (oder einem Mehrfachen davon) Registern:
Hier einmal beispielhaft meine Datenpunkte für die Holding-Register:
_address name description unit type len factor offset formula role room poll wp cw isScale
4096 Inverter.1.SN.0 uint8be 1 1 0 x.toString(16) value true false false false
4097 Inverter.1.SN.1 uint8le 1 1 0 x.toString(16) value true false false false
4097 Inverter.1.SN.2 uint8be 1 1 0 x.toString(16) value true false false false
4098 Inverter.1.SN.4 uint8be 1 1 0 x.toString(16) value true false false false
4098 Inverter.1.SN.3 uint8le 1 1 0 x.toString(16) value true false false false
4099 Inverter.1.SN.5 uint8le 1 1 0 x.toString(16) value true false false false
4099 Inverter.1.Port uint8be 1 1 0 value true false false false
4100 Inverter.1.PV.Spannung V uint16be 1 0.1 0 value true false false false
4101 Inverter.1.PV.Strom A uint16be 1 0.01 0 value true false false false
4102 Inverter.1.Netz.Spannung V uint16be 1 0.1 0 value true false false false
4103 Inverter.1.Netz.Frequenz Hz uint16be 1 0.01 0 value true false false false
4104 Inverter.1.PV.Leistung W uint16be 1 0.1 0 value true false false false
4105 Inverter.1.Energie.heute Wh uint16be 1 1 0 value true false false false
4106 Inverter.1.Energie.gesamt Wh uint32be 2 1 0 value true false false false
4108 Inverter.1.Temperatur °C int16be 1 0.1 0 value.temperature true false false false
4109 Inverter.1.Status int16be 1 1 0 state true false false false
4110 Inverter.1.Alarm.Code int16be 1 1 0 state true false false false
4111 Inverter.1.Alarm.Count int16be 1 1 0 value true false false false
Ergebis:
Hallo,
hier einmal meine Datenpunktliste:
vielleicht spart das jemandem etwas Tipparbeit