FHEM Forum

FHEM => Sonstiges => Thema gestartet von: BenMarloe am 09 Dezember 2017, 00:14:24

Titel: ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: BenMarloe am 09 Dezember 2017, 00:14:24
Aus meinem Wechselrichter konnte ich ein paar Mal mehrere Daten auslesen. Nach dem Hinzufügen weiterer Readings ging nur noch das erste Reading. Danach Disconnect, dann Reconnect und erneut wieder nur das erste Reading. Das Löschen von Readings hat die Lage nicht verbessert. Nur das erste Reading wird ausgelesen. In diesem Falle also "AC-Volt-A".
Hat jemand eine Idee? Was mache ich falsch? Hänge schon mehrere Tage an diesem Problem und habe die spärlichen Beiträge im Forum dazu auch schon gelesen.
Bitte helft mir.
Internals:
   BUSY       0
   DEF        1 30 192.168.178.36 TCP
   DEST       192.168.178.36:502
   DeviceName 192.168.178.36:502
   INTERVAL   10
   IODev      KeSolarEdge
   LASTOPEN   1512773143.95136
   MODBUSID   1
   ModuleVersion 3.7.0 - 20.8.2017
   NAME       KeSolarEdge
   NEXT_OPEN  1512773158.82976
   NOTIFYDEV  global
   NR         367
   NTFY_ORDER 50-SOE
   PARTIAL
   PROTOCOL   TCP
   REQUESTHEX 00520000000601039c8f0001
   STATE      disconnected
   TRIGGERTIME 1512773148.62715
   TRIGGERTIME_FMT 2017-12-08 23:45:48
   TYPE       ModbusAttr
   devioLoglevel 3
   nextOpenDelay 60
   READINGS:
     2017-12-08 23:19:57   AC-Energy-All   44923
     2017-12-08 23:44:58   AC-Volt-A       228.6
     2017-12-08 23:44:58   state           disconnected
   defptr:
     1:
   gotReadings:
     AC-Volt-A  228.6
   helper:
     buffer
     lid        1
     lrecv      1512773098.75291
     lsend      1512773098.61972
   lastRead:
     h40079     1512773098.75712
     h40083     1512687323.82429
     h40093     1512687269.79689
     h40094     1512771597.51639
     h40101     1512685219.2463
Attributes:
   dev-h-defPoll 1
   dev-h-defShowGet 1
   enableControlSet 1
   maxTimeoutsToReconnect 3
   obj-h40079-expr $val / 10
   obj-h40079-reading AC-Volt-A
   obj-h40094-poll 1
   obj-h40094-reading AC-Energy-All

Sehen kann man immer einen Disconnect:
2017.12.09 08:45:31 3: 192.168.178.36:502 disconnected, waiting to reappear (KeSolarEdge)
2017.12.09 08:45:31 3: 192.168.178.36:502 reappeared (KeSolarEdge)
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: Marie am 09 Dezember 2017, 14:27:57
Moin,


Ja dieses Verhalten beobachte ich bei mir im Wohnmobil auch...etwas Abhilfe schafft ein


DEV-h-defpoll 1




Oder aber den poll des readings auf 1 setzen. Aber so richtig....
Ich denke mal da haben wir ein Verständnis Problem....oder einen bug, keine Ahnung


Gruß


Marie
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 09 Dezember 2017, 17:13:40
Hallo Marie,
danke für Deine Antwort. Ich fühle mich schon etwas besser.
Allerdings nehme ich an Du meintest
   dev-h-defPoll 1
da Perl ja case sensitive ist.
bei
   DEV-h-defpoll 1
bekomme ich nur wilde Fehlermeldungen.
Aber vielleicht liest das ja jemand der uns helfen kann.
In der Zwischenzeit habe ich das pollen sein lassen und ein at Object geschrieben, dass mit "get" die Daten ausliest. Geht zwar, ist aber wohl kaum im Sinne des Erfinders.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 10 Dezember 2017, 18:36:58
Klingt für mich eher nach Timing-Problemen.
Wenn Ihr einen Log-Auszug bei verbose 5 postet
(für sowohl das logische als auch das physische Device), kann ich vielleicht genaueres erkennen.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 13 Dezember 2017, 16:03:08
Hallo Stefan,

ich weiß nicht was ein logisches oder ein physisches Device ist, freue mich aber sehr über das Angebot.
Ich habe mein ModbusAttr-Device also auf Verbose 5 gesetzt und das ist List und das Logfile. Wenn ich weiteres zur Aufhellung beitragen kann, gerne.
List des Devices:
Internals:
   BUSY       0
   DEF        1 30 192.168.178.36 TCP
   DEST       192.168.178.36:502
   DeviceName 192.168.178.36:502
   FD         5
   INTERVAL   900
   IODev      KeSolarEdge
   LASTOPEN   1513176936.40306
   MODBUSID   1
   ModuleVersion 3.7.0 - 20.8.2017
   NAME       KeSolarEdge
   NOTIFYDEV  global
   NR         366
   NTFY_ORDER 50-KeSolarEdge
   PARTIAL
   PROTOCOL   TCP
   REQUESTHEX 00d10000000601039c8f0001
   STATE      opened
   TRIGGERTIME 1513177931.46057
   TRIGGERTIME_FMT 2017-12-13 16:12:11
   TYPE       ModbusAttr
   devioLoglevel 3
   nextOpenDelay 60
   QUEUE:
   READINGS:
     2017-12-13 15:57:12   AC-Energy       66152
     2017-12-13 15:57:12   AC-Energy-Scale 0
     2017-12-13 15:57:11   AC-Power        27000
     2017-12-13 15:57:12   AC-Power-Scale  -2
     2017-12-13 15:57:12   AC-Volt-A       226.8
     2017-12-13 15:57:11   AC-Volt-Scale   -1
     2017-12-13 15:57:11   DC-Current      4070
     2017-12-13 15:57:11   DC-Current-Scale -5
     2017-12-13 15:57:12   DC-Power        3045
     2017-12-13 15:57:12   DC-Power-Scale  -3
     2017-12-13 15:57:12   DC-Voltage      7480
     2017-12-13 15:57:11   DC-Voltage-Scale -1
     2017-12-13 15:57:12   HeatSinkTemp    3093
     2017-12-13 15:57:12   Status          4
     2017-12-13 15:55:36   state           opened
   defptr:
     1:
   gotReadings:
     AC-Volt-A  226.8
   helper:
     buffer
     lid        1
     lrecv      1513177032.97203
     lsend      1513177032.96865
   lastRead:
     h40079     1513177032.97623
     h40082     1513177031.51114
     h40083     1513177031.9495
     h40084     1513177032.27729
     h40093     1513177032.38921
     h40094     1512894752.78521
     h40095     1513177032.16916
     h40096     1513177031.73266
     h40097     1513177031.62077
     h40098     1513177032.8675
     h40099     1513177031.8428
     h40100     1513177032.7219
     h40101     1513177032.50292
     h40103     1513177032.61126
     h40107     1513177032.0621
     h40108     1512911704.47342
Attributes:
   dev-h-defPoll 1
   dev-h-defShowGet 1
   enableControlSet 1
   maxTimeoutsToReconnect 3
   obj-h40079-expr $val / 10
   obj-h40079-reading AC-Volt-A
   obj-h40082-reading AC-Volt-Scale
   obj-h40082-unpack s>
   obj-h40083-reading AC-Power
   obj-h40084-reading AC-Power-Scale
   obj-h40084-unpack s>
   obj-h40093-len 2
   obj-h40093-reading AC-Energy
   obj-h40093-unpack l>
   obj-h40095-reading AC-Energy-Scale
   obj-h40096-reading DC-Current
   obj-h40097-reading DC-Current-Scale
   obj-h40097-unpack s>
   obj-h40098-reading DC-Voltage
   obj-h40099-reading DC-Voltage-Scale
   obj-h40099-unpack s>
   obj-h40100-reading DC-Power
   obj-h40101-reading DC-Power-Scale
   obj-h40101-unpack s>
   obj-h40103-reading HeatSinkTemp
   obj-h40107-reading Status
   room       Keller
   userattr   dev-h-defPoll dev-h-defShowGet enableControlSet maxTimeoutsToReconnect obj-h40079-expr obj-h40079-reading obj-h40082-reading obj-h40082-unpack obj-h40083-reading obj-h40084-expr obj-h40084-reading obj-h40084-unpack obj-h40093-len obj-h40093-reading obj-h40093-unpack obj-h40094-poll obj-h40094-reading obj-h40095-reading obj-h40096-reading obj-h40097-reading obj-h40097-unpack obj-h40098-reading obj-h40099-reading obj-h40099-unpack obj-h40100-reading obj-h40101-reading obj-h40101-unpack obj-h40103-reading obj-h40107-reading obj-h40108-reading silentReconnect verbose
   verbose    5

Auszug des Logfiles des Devices:
2017-12-13_15:53:33 KeSolarEdge DISCONNECTED
2017-12-13_15:53:33 KeSolarEdge CONNECTED
2017-12-13_15:53:35 KeSolarEdge AC-Energy: 66150
2017-12-13_15:53:35 KeSolarEdge AC-Energy-Scale: 0
2017-12-13_15:53:36 KeSolarEdge AC-Power: 24000
2017-12-13_15:53:36 KeSolarEdge AC-Power-Scale: -3
2017-12-13_15:53:36 KeSolarEdge DC-Power: 24365
2017-12-13_15:53:36 KeSolarEdge DC-Power-Scale: -3
2017-12-13_15:53:36 KeSolarEdge DC-Voltage: 7482
2017-12-13_15:53:36 KeSolarEdge DC-Voltage-Scale: -1
2017-12-13_15:53:36 KeSolarEdge Status: 4
2017-12-13_15:55:36 KeSolarEdge DISCONNECTED
2017-12-13_15:55:36 KeSolarEdge CONNECTED
2017-12-13_15:56:36 KeSolarEdge AC-Energy: 66151
2017-12-13_15:56:36 KeSolarEdge AC-Energy-Scale: 0
2017-12-13_15:56:36 KeSolarEdge AC-Power: 3100
2017-12-13_15:56:36 KeSolarEdge AC-Power-Scale: -2
2017-12-13_15:56:36 KeSolarEdge DC-Power: 28426
2017-12-13_15:56:36 KeSolarEdge DC-Power-Scale: -3
2017-12-13_15:56:36 KeSolarEdge DC-Voltage: 7480
2017-12-13_15:56:36 KeSolarEdge DC-Voltage-Scale: -1
2017-12-13_15:56:36 KeSolarEdge Status: 4
2017-12-13_15:57:11 KeSolarEdge AC-Volt-Scale: -1
2017-12-13_15:57:11 KeSolarEdge DC-Current-Scale: -5
2017-12-13_15:57:11 KeSolarEdge DC-Current: 4070
2017-12-13_15:57:11 KeSolarEdge DC-Voltage-Scale: -1
2017-12-13_15:57:11 KeSolarEdge AC-Power: 27000
2017-12-13_15:57:12 KeSolarEdge Status: 4
2017-12-13_15:57:12 KeSolarEdge AC-Energy-Scale: 0
2017-12-13_15:57:12 KeSolarEdge AC-Power-Scale: -2
2017-12-13_15:57:12 KeSolarEdge AC-Energy: 66152
2017-12-13_15:57:12 KeSolarEdge DC-Power-Scale: -3
2017-12-13_15:57:12 KeSolarEdge HeatSinkTemp: 3093
2017-12-13_15:57:12 KeSolarEdge DC-Power: 3045
2017-12-13_15:57:12 KeSolarEdge DC-Voltage: 7480
2017-12-13_15:57:12 KeSolarEdge AC-Volt-A: 226.8
2017-12-13_15:58:36 KeSolarEdge AC-Energy: 66152
2017-12-13_15:58:37 KeSolarEdge AC-Energy-Scale: 0
2017-12-13_15:58:37 KeSolarEdge AC-Power: 22000
2017-12-13_15:58:37 KeSolarEdge AC-Power-Scale: -3
2017-12-13_15:58:37 KeSolarEdge DC-Power: 22335
2017-12-13_15:58:37 KeSolarEdge DC-Power-Scale: -3
2017-12-13_15:58:37 KeSolarEdge DC-Voltage: 7478
2017-12-13_15:58:37 KeSolarEdge DC-Voltage-Scale: -1
2017-12-13_15:58:37 KeSolarEdge Status: 4
2017-12-13_16:00:37 KeSolarEdge DISCONNECTED
2017-12-13_16:00:37 KeSolarEdge CONNECTED
2017-12-13_16:00:39 KeSolarEdge AC-Energy: 66153
2017-12-13_16:00:39 KeSolarEdge AC-Energy-Scale: 0
2017-12-13_16:00:39 KeSolarEdge AC-Power: 14000
2017-12-13_16:00:39 KeSolarEdge AC-Power-Scale: -3
2017-12-13_16:00:39 KeSolarEdge DC-Power: 14213
2017-12-13_16:00:39 KeSolarEdge DC-Power-Scale: -3
2017-12-13_16:00:39 KeSolarEdge DC-Voltage: 7483
2017-12-13_16:00:39 KeSolarEdge DC-Voltage-Scale: -1
2017-12-13_16:00:39 KeSolarEdge Status: 4

..ist in diesem Zusammenhang eventuell noch interessant, dass ich ähnliche Probleme mit HMLAN habe (Homematic über Ethernet)?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 13 Dezember 2017, 17:36:16
Hallo BenMarloe,

bei Modbus RTU wäre Dein ModbusAttr-Device das logische Device und Dein Modbus-Device für den seriellen Adapter das physische. Für beide sollte verbose 5 gesetzt werden wenn man Fehler sucht.
Bei Modbus TCP ist beides in einem Device.

Mit Logfile meinte ich das Fhem-Logfile. Dort landen bei verbose 5 die Debug-Meldungen.

dev-h-defPoll 1 ist nötig damit das Modul die Werte auch abfragt. Andernfalls werden nur die Werte automatisch abgefragt, die explizit ein -poll Attribut gesetzt haben. Das ist kein Bug sondern so gewollt:

Zitat
obj-[cdih][1-9][0-9]*-poll
   if set to 1 then this obeject is included in the cyclic update request as specified in the define command. If not set, then the object can manually be requested with a get command,
   but it is not automatically updated each interval. Note that this setting can also be specified as default for all objects with the dev- atributes described later.
bzw.
Zitat
dev-([cdih]-)*defPoll
    if set to 1 then all objects of this type will be included in the cyclic update by default.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 13 Dezember 2017, 20:01:26
Hallo Stefan,

vielen Dank für die schnelle Antwort.
Hier das fhem-2017-12.log vom gleichen Zeitraum. Ein physikalisches Device habe dann also nicht, da ich ja TCP verwende.

2017.12.13 15:53:16 1: prg_brenner temp: temperature: 55.7
2017.12.13 15:53:33 3: 192.168.178.36:502 disconnected, waiting to reappear (KeSolarEdge)
2017.12.13 15:53:33 5: HttpUtils url=http://192.168.178.36:502/
2017.12.13 15:53:33 3: 192.168.178.36:502 reappeared (KeSolarEdge)
2017.12.13 15:53:34 5: KeSolarEdge: Get: Called with AC-Energy (h40093)
2017.12.13 15:53:34 4: KeSolarEdge: Send called with h40093, objLen 2 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:53:34 4: KeSolarEdge: Send adds fc 3 to 1, tid 196, for h40093 (AC-Energy), reqLen 2 at beginning of queue for immediate sending
2017.12.13 15:53:34 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -119.937731981277
2017.12.13 15:53:34 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -119.940572023392
2017.12.13 15:53:34 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:53:34 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 196 for AC-Energy (h40093), len 2, device KeSolarEdge (TCP), pdu 039c9d0002, V 3.7.0 - 20.8.2017
2017.12.13 15:53:34 5: SW: 00c40000000601039c9d0002
2017.12.13 15:53:34 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99962902069092 requested reading is AC-Energy
2017.12.13 15:53:35 5: KeSolarEdge: ReadAnswer got: 00c40000000701030400010266
2017.12.13 15:53:35 5: KeSolarEdge: ParseFrames got: 00c40000000701030400010266
2017.12.13 15:53:35 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 196, values 00010266HeaderLen 4, ActualLen 4, request was for h40093 (AC-Energy), len 2 for module KeSolarEdge
2017.12.13 15:53:35 5: KeSolarEdge: ParseObj called with 00010266 and start 40093, op read
2017.12.13 15:53:35 5: KeSolarEdge: ParseObj ObjInfo for h40093: reading=AC-Energy, unpack=l>, expr=, format=, map=
2017.12.13 15:53:35 5: KeSolarEdge: ParseObj unpacked 00010266 with l> to hex 3636313530 (66150)
2017.12.13 15:53:35 4: KeSolarEdge: ParseObj for AC-Energy assigns 66150
2017.12.13 15:53:35 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:53:35 5: KeSolarEdge: ReadAnswer done, reading is AC-Energy, value: 66150
2017.12.13 15:53:35 3: get KeSolarEdge AC-Energy : 66150
2017.12.13 15:53:35 5: KeSolarEdge: Get: Called with AC-Energy-Scale (h40095)
2017.12.13 15:53:35 4: KeSolarEdge: Send called with h40095, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:53:35 4: KeSolarEdge: Send adds fc 3 to 1, tid 216, for h40095 (AC-Energy-Scale), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:53:35 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0676119327545166
2017.12.13 15:53:35 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0676119327545166 forced
2017.12.13 15:53:35 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -1.83849501609802
2017.12.13 15:53:35 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:53:35 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 216 for AC-Energy-Scale (h40095), len 1, device KeSolarEdge (TCP), pdu 039c9f0001, V 3.7.0 - 20.8.2017
2017.12.13 15:53:35 5: SW: 00d80000000601039c9f0001
2017.12.13 15:53:35 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99963212013245 requested reading is AC-Energy-Scale
2017.12.13 15:53:35 5: KeSolarEdge: ReadAnswer got: 00d8000000050103020000
2017.12.13 15:53:35 5: KeSolarEdge: ParseFrames got: 00d8000000050103020000
2017.12.13 15:53:35 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 216, values 0000HeaderLen 2, ActualLen 2, request was for h40095 (AC-Energy-Scale), len 1 for module KeSolarEdge
2017.12.13 15:53:35 5: KeSolarEdge: ParseObj called with 0000 and start 40095, op read
2017.12.13 15:53:35 5: KeSolarEdge: ParseObj ObjInfo for h40095: reading=AC-Energy-Scale, unpack=n, expr=, format=, map=
2017.12.13 15:53:35 5: KeSolarEdge: ParseObj unpacked 0000 with n to hex 30 (0)
2017.12.13 15:53:35 4: KeSolarEdge: ParseObj for AC-Energy-Scale assigns 0
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer done, reading is AC-Energy-Scale, value: 0
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with AC-Power (h40083)
2017.12.13 15:53:36 4: KeSolarEdge: Send called with h40083, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:53:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 231, for h40083 (AC-Power), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0445868968963623
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0445868968963623 forced
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0293118953704834
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0293118953704834 forced
2017.12.13 15:53:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 231 for AC-Power (h40083), len 1, device KeSolarEdge (TCP), pdu 039c930001, V 3.7.0 - 20.8.2017
2017.12.13 15:53:36 5: SW: 00e70000000601039c930001
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99950289726257 requested reading is AC-Power
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer got: 00e7000000050103025dc0
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got: 00e7000000050103025dc0
2017.12.13 15:53:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 231, values 5dc0HeaderLen 2, ActualLen 2, request was for h40083 (AC-Power), len 1 for module KeSolarEdge
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj called with 5dc0 and start 40083, op read
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj ObjInfo for h40083: reading=AC-Power, unpack=n, expr=, format=, map=
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj unpacked 5dc0 with n to hex 3234303030 (24000)
2017.12.13 15:53:36 4: KeSolarEdge: ParseObj for AC-Power assigns 24000
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer done, reading is AC-Power, value: 24000
2017.12.13 15:53:36 3: get KeSolarEdge AC-Power : 24000
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with AC-Power-Scale (h40084)
2017.12.13 15:53:36 4: KeSolarEdge: Send called with h40084, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:53:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 168, for h40084 (AC-Power-Scale), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0678648948669434
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0678648948669434 forced
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0635199546813965
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0635199546813965 forced
2017.12.13 15:53:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 168 for AC-Power-Scale (h40084), len 1, device KeSolarEdge (TCP), pdu 039c940001, V 3.7.0 - 20.8.2017
2017.12.13 15:53:36 5: SW: 00a80000000601039c940001
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99963593482971 requested reading is AC-Power-Scale
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer got: 00a800000005010302fffd
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got: 00a800000005010302fffd
2017.12.13 15:53:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 168, values fffdHeaderLen 2, ActualLen 2, request was for h40084 (AC-Power-Scale), len 1 for module KeSolarEdge
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj called with fffd and start 40084, op read
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj ObjInfo for h40084: reading=AC-Power-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj unpacked fffd with s> to hex 2d33 (-3)
2017.12.13 15:53:36 4: KeSolarEdge: ParseObj for AC-Power-Scale assigns -3
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer done, reading is AC-Power-Scale, value: -3
2017.12.13 15:53:36 3: get KeSolarEdge AC-Power-Scale : -3
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with DC-Power (h40100)
2017.12.13 15:53:36 4: KeSolarEdge: Send called with h40100, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:53:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 124, for h40100 (DC-Power), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0471358299255371
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0471358299255371 forced
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0420279502868652
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0420279502868652 forced
2017.12.13 15:53:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 124 for DC-Power (h40100), len 1, device KeSolarEdge (TCP), pdu 039ca40001, V 3.7.0 - 20.8.2017
2017.12.13 15:53:36 5: SW: 007c0000000601039ca40001
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99956893920898 requested reading is DC-Power
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer got: 007c000000050103025f2d
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got: 007c000000050103025f2d
2017.12.13 15:53:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 124, values 5f2dHeaderLen 2, ActualLen 2, request was for h40100 (DC-Power), len 1 for module KeSolarEdge
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj called with 5f2d and start 40100, op read
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj ObjInfo for h40100: reading=DC-Power, unpack=n, expr=, format=, map=
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj unpacked 5f2d with n to hex 3234333635 (24365)
2017.12.13 15:53:36 4: KeSolarEdge: ParseObj for DC-Power assigns 24365
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer done, reading is DC-Power, value: 24365
2017.12.13 15:53:36 3: get KeSolarEdge DC-Power : 24365
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with DC-Power-Scale (h40101)
2017.12.13 15:53:36 4: KeSolarEdge: Send called with h40101, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:53:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 212, for h40101 (DC-Power-Scale), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0678768157958984
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0678768157958984 forced
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0573928356170654
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0573928356170654 forced
2017.12.13 15:53:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 212 for DC-Power-Scale (h40101), len 1, device KeSolarEdge (TCP), pdu 039ca50001, V 3.7.0 - 20.8.2017
2017.12.13 15:53:36 5: SW: 00d40000000601039ca50001
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99959897994995 requested reading is DC-Power-Scale
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer got: 00d400000005010302fffd
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got: 00d400000005010302fffd
2017.12.13 15:53:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 212, values fffdHeaderLen 2, ActualLen 2, request was for h40101 (DC-Power-Scale), len 1 for module KeSolarEdge
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj called with fffd and start 40101, op read
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj ObjInfo for h40101: reading=DC-Power-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj unpacked fffd with s> to hex 2d33 (-3)
2017.12.13 15:53:36 4: KeSolarEdge: ParseObj for DC-Power-Scale assigns -3
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer done, reading is DC-Power-Scale, value: -3
2017.12.13 15:53:36 3: get KeSolarEdge DC-Power-Scale : -3
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with DC-Voltage (h40098)
2017.12.13 15:53:36 4: KeSolarEdge: Send called with h40098, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:53:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 157, for h40098 (DC-Voltage), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0467789173126221
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0467789173126221 forced
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0305407047271729
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0305407047271729 forced
2017.12.13 15:53:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 157 for DC-Voltage (h40098), len 1, device KeSolarEdge (TCP), pdu 039ca20001, V 3.7.0 - 20.8.2017
2017.12.13 15:53:36 5: SW: 009d0000000601039ca20001
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99949216842651 requested reading is DC-Voltage
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer got: 009d000000050103021d3a
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got: 009d000000050103021d3a
2017.12.13 15:53:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 157, values 1d3aHeaderLen 2, ActualLen 2, request was for h40098 (DC-Voltage), len 1 for module KeSolarEdge
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj called with 1d3a and start 40098, op read
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj ObjInfo for h40098: reading=DC-Voltage, unpack=n, expr=, format=, map=
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj unpacked 1d3a with n to hex 37343832 (7482)
2017.12.13 15:53:36 4: KeSolarEdge: ParseObj for DC-Voltage assigns 7482
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer done, reading is DC-Voltage, value: 7482
2017.12.13 15:53:36 3: get KeSolarEdge DC-Voltage : 7482
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with DC-Voltage-Scale (h40099)
2017.12.13 15:53:36 4: KeSolarEdge: Send called with h40099, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:53:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 15, for h40099 (DC-Voltage-Scale), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0675590038299561
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0675590038299561 forced
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0603690147399902
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0603690147399902 forced
2017.12.13 15:53:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 15 for DC-Voltage-Scale (h40099), len 1, device KeSolarEdge (TCP), pdu 039ca30001, V 3.7.0 - 20.8.2017
2017.12.13 15:53:36 5: SW: 000f0000000601039ca30001
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99963402748108 requested reading is DC-Voltage-Scale
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer got: 000f00000005010302ffff
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got: 000f00000005010302ffff
2017.12.13 15:53:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 15, values ffffHeaderLen 2, ActualLen 2, request was for h40099 (DC-Voltage-Scale), len 1 for module KeSolarEdge
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj called with ffff and start 40099, op read
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj ObjInfo for h40099: reading=DC-Voltage-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj unpacked ffff with s> to hex 2d31 (-1)
2017.12.13 15:53:36 4: KeSolarEdge: ParseObj for DC-Voltage-Scale assigns -1
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer done, reading is DC-Voltage-Scale, value: -1
2017.12.13 15:53:36 3: get KeSolarEdge DC-Voltage-Scale : -1
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with Status (h40107)
2017.12.13 15:53:36 4: KeSolarEdge: Send called with h40107, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:53:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 36, for h40107 (Status), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0472097396850586
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0472097396850586 forced
2017.12.13 15:53:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0430431365966797
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0430431365966797 forced
2017.12.13 15:53:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:53:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 36 for Status (h40107), len 1, device KeSolarEdge (TCP), pdu 039cab0001, V 3.7.0 - 20.8.2017
2017.12.13 15:53:36 5: SW: 00240000000601039cab0001
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99961113929749 requested reading is Status
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer got: 0024000000050103020004
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got: 0024000000050103020004
2017.12.13 15:53:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 36, values 0004HeaderLen 2, ActualLen 2, request was for h40107 (Status), len 1 for module KeSolarEdge
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj called with 0004 and start 40107, op read
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj ObjInfo for h40107: reading=Status, unpack=n, expr=, format=, map=
2017.12.13 15:53:36 5: KeSolarEdge: ParseObj unpacked 0004 with n to hex 34 (4)
2017.12.13 15:53:36 4: KeSolarEdge: ParseObj for Status assigns 4
2017.12.13 15:53:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:53:36 5: KeSolarEdge: ReadAnswer done, reading is Status, value: 4
2017.12.13 15:53:36 3: get KeSolarEdge Status : 4
2017.12.13 15:55:36 3: 192.168.178.36:502 disconnected, waiting to reappear (KeSolarEdge)
2017.12.13 15:55:36 5: HttpUtils url=http://192.168.178.36:502/
2017.12.13 15:55:36 1: disconnected
2017.12.13 15:55:36 3: 192.168.178.36:502 reappeared (KeSolarEdge)
2017.12.13 15:56:02 1: prg_brenner temp: temperature: 54.6
2017.12.13 15:56:36 5: KeSolarEdge: Get: Called with AC-Energy (h40093)
2017.12.13 15:56:36 4: KeSolarEdge: Send called with h40093, objLen 2 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:56:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 218, for h40093 (AC-Energy), reqLen 2 at beginning of queue for immediate sending
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -179.941762208939
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -179.949740886688
2017.12.13 15:56:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 218 for AC-Energy (h40093), len 2, device KeSolarEdge (TCP), pdu 039c9d0002, V 3.7.0 - 20.8.2017
2017.12.13 15:56:36 5: SW: 00da0000000601039c9d0002
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99959397315979 requested reading is AC-Energy
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer got: 00da0000000701030400010267
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got: 00da0000000701030400010267
2017.12.13 15:56:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 218, values 00010267HeaderLen 4, ActualLen 4, request was for h40093 (AC-Energy), len 2 for module KeSolarEdge
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj called with 00010267 and start 40093, op read
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj ObjInfo for h40093: reading=AC-Energy, unpack=l>, expr=, format=, map=
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj unpacked 00010267 with l> to hex 3636313531 (66151)
2017.12.13 15:56:36 4: KeSolarEdge: ParseObj for AC-Energy assigns 66151
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer done, reading is AC-Energy, value: 66151
2017.12.13 15:56:36 3: get KeSolarEdge AC-Energy : 66151
2017.12.13 15:56:36 5: KeSolarEdge: Get: Called with AC-Energy-Scale (h40095)
2017.12.13 15:56:36 4: KeSolarEdge: Send called with h40095, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:56:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 155, for h40095 (AC-Energy-Scale), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.066267728805542
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.066267728805542 forced
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0619838237762451
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0619838237762451 forced
2017.12.13 15:56:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 155 for AC-Energy-Scale (h40095), len 1, device KeSolarEdge (TCP), pdu 039c9f0001, V 3.7.0 - 20.8.2017
2017.12.13 15:56:36 5: SW: 009b0000000601039c9f0001
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99952793121338 requested reading is AC-Energy-Scale
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer got: 009b000000050103020000
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got: 009b000000050103020000
2017.12.13 15:56:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 155, values 0000HeaderLen 2, ActualLen 2, request was for h40095 (AC-Energy-Scale), len 1 for module KeSolarEdge
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj called with 0000 and start 40095, op read
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj ObjInfo for h40095: reading=AC-Energy-Scale, unpack=n, expr=, format=, map=
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj unpacked 0000 with n to hex 30 (0)
2017.12.13 15:56:36 4: KeSolarEdge: ParseObj for AC-Energy-Scale assigns 0
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer done, reading is AC-Energy-Scale, value: 0
2017.12.13 15:56:36 5: KeSolarEdge: Get: Called with AC-Power (h40083)
2017.12.13 15:56:36 4: KeSolarEdge: Send called with h40083, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:56:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 41, for h40083 (AC-Power), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.045637845993042
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.045637845993042 forced
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0423038005828857
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0423038005828857 forced
2017.12.13 15:56:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 41 for AC-Power (h40083), len 1, device KeSolarEdge (TCP), pdu 039c930001, V 3.7.0 - 20.8.2017
2017.12.13 15:56:36 5: SW: 00290000000601039c930001
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99960780143738 requested reading is AC-Power
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer got: 0029000000050103020c1c
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got: 0029000000050103020c1c
2017.12.13 15:56:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 41, values 0c1cHeaderLen 2, ActualLen 2, request was for h40083 (AC-Power), len 1 for module KeSolarEdge
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj called with 0c1c and start 40083, op read
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj ObjInfo for h40083: reading=AC-Power, unpack=n, expr=, format=, map=
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj unpacked 0c1c with n to hex 33313030 (3100)
2017.12.13 15:56:36 4: KeSolarEdge: ParseObj for AC-Power assigns 3100
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer done, reading is AC-Power, value: 3100
2017.12.13 15:56:36 3: get KeSolarEdge AC-Power : 3100
2017.12.13 15:56:36 5: KeSolarEdge: Get: Called with AC-Power-Scale (h40084)
2017.12.13 15:56:36 4: KeSolarEdge: Send called with h40084, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:56:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 240, for h40084 (AC-Power-Scale), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0674428939819336
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0674428939819336 forced
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.06036376953125
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.06036376953125 forced
2017.12.13 15:56:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 240 for AC-Power-Scale (h40084), len 1, device KeSolarEdge (TCP), pdu 039c940001, V 3.7.0 - 20.8.2017
2017.12.13 15:56:36 5: SW: 00f00000000601039c940001
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.9996018409729 requested reading is AC-Power-Scale
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer got: 00f000000005010302fffe
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got: 00f000000005010302fffe
2017.12.13 15:56:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 240, values fffeHeaderLen 2, ActualLen 2, request was for h40084 (AC-Power-Scale), len 1 for module KeSolarEdge
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj called with fffe and start 40084, op read
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj ObjInfo for h40084: reading=AC-Power-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj unpacked fffe with s> to hex 2d32 (-2)
2017.12.13 15:56:36 4: KeSolarEdge: ParseObj for AC-Power-Scale assigns -2
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer done, reading is AC-Power-Scale, value: -2
2017.12.13 15:56:36 3: get KeSolarEdge AC-Power-Scale : -2
2017.12.13 15:56:36 5: KeSolarEdge: Get: Called with DC-Power (h40100)
2017.12.13 15:56:36 4: KeSolarEdge: Send called with h40100, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:56:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 24, for h40100 (DC-Power), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0473949909210205
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0473949909210205 forced
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0428109169006348
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0428109169006348 forced
2017.12.13 15:56:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 24 for DC-Power (h40100), len 1, device KeSolarEdge (TCP), pdu 039ca40001, V 3.7.0 - 20.8.2017
2017.12.13 15:56:36 5: SW: 00180000000601039ca40001
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99958896636963 requested reading is DC-Power
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer got: 0018000000050103026f0a
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got: 0018000000050103026f0a
2017.12.13 15:56:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 24, values 6f0aHeaderLen 2, ActualLen 2, request was for h40100 (DC-Power), len 1 for module KeSolarEdge
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj called with 6f0a and start 40100, op read
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj ObjInfo for h40100: reading=DC-Power, unpack=n, expr=, format=, map=
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj unpacked 6f0a with n to hex 3238343236 (28426)
2017.12.13 15:56:36 4: KeSolarEdge: ParseObj for DC-Power assigns 28426
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer done, reading is DC-Power, value: 28426
2017.12.13 15:56:36 3: get KeSolarEdge DC-Power : 28426
2017.12.13 15:56:36 5: KeSolarEdge: Get: Called with DC-Power-Scale (h40101)
2017.12.13 15:56:36 4: KeSolarEdge: Send called with h40101, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:56:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 109, for h40101 (DC-Power-Scale), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0524137020111084
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0524137020111084 forced
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.00745582580566406
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.00745582580566406 forced
2017.12.13 15:56:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 109 for DC-Power-Scale (h40101), len 1, device KeSolarEdge (TCP), pdu 039ca50001, V 3.7.0 - 20.8.2017
2017.12.13 15:56:36 5: SW: 006d0000000601039ca50001
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99940896034241 requested reading is DC-Power-Scale
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer got: 006d00000005010302fffd
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got: 006d00000005010302fffd
2017.12.13 15:56:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 109, values fffdHeaderLen 2, ActualLen 2, request was for h40101 (DC-Power-Scale), len 1 for module KeSolarEdge
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj called with fffd and start 40101, op read
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj ObjInfo for h40101: reading=DC-Power-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj unpacked fffd with s> to hex 2d33 (-3)
2017.12.13 15:56:36 4: KeSolarEdge: ParseObj for DC-Power-Scale assigns -3
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer done, reading is DC-Power-Scale, value: -3
2017.12.13 15:56:36 3: get KeSolarEdge DC-Power-Scale : -3
2017.12.13 15:56:36 5: KeSolarEdge: Get: Called with DC-Voltage (h40098)
2017.12.13 15:56:36 4: KeSolarEdge: Send called with h40098, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:56:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 71, for h40098 (DC-Voltage), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0320219993591309
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0320219993591309 forced
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0281867980957031
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0281867980957031 forced
2017.12.13 15:56:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 71 for DC-Voltage (h40098), len 1, device KeSolarEdge (TCP), pdu 039ca20001, V 3.7.0 - 20.8.2017
2017.12.13 15:56:36 5: SW: 00470000000601039ca20001
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99961686134338 requested reading is DC-Voltage
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer got: 0047000000050103021d38
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got: 0047000000050103021d38
2017.12.13 15:56:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 71, values 1d38HeaderLen 2, ActualLen 2, request was for h40098 (DC-Voltage), len 1 for module KeSolarEdge
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj called with 1d38 and start 40098, op read
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj ObjInfo for h40098: reading=DC-Voltage, unpack=n, expr=, format=, map=
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj unpacked 1d38 with n to hex 37343830 (7480)
2017.12.13 15:56:36 4: KeSolarEdge: ParseObj for DC-Voltage assigns 7480
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer done, reading is DC-Voltage, value: 7480
2017.12.13 15:56:36 3: get KeSolarEdge DC-Voltage : 7480
2017.12.13 15:56:36 5: KeSolarEdge: Get: Called with DC-Voltage-Scale (h40099)
2017.12.13 15:56:36 4: KeSolarEdge: Send called with h40099, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:56:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 211, for h40099 (DC-Voltage-Scale), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0678548812866211
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0678548812866211 forced
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0644629001617432
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0644629001617432 forced
2017.12.13 15:56:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 211 for DC-Voltage-Scale (h40099), len 1, device KeSolarEdge (TCP), pdu 039ca30001, V 3.7.0 - 20.8.2017
2017.12.13 15:56:36 5: SW: 00d30000000601039ca30001
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99955105781555 requested reading is DC-Voltage-Scale
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer got: 00d300000005010302ffff
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got: 00d300000005010302ffff
2017.12.13 15:56:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 211, values ffffHeaderLen 2, ActualLen 2, request was for h40099 (DC-Voltage-Scale), len 1 for module KeSolarEdge
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj called with ffff and start 40099, op read
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj ObjInfo for h40099: reading=DC-Voltage-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj unpacked ffff with s> to hex 2d31 (-1)
2017.12.13 15:56:36 4: KeSolarEdge: ParseObj for DC-Voltage-Scale assigns -1
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer done, reading is DC-Voltage-Scale, value: -1
2017.12.13 15:56:36 3: get KeSolarEdge DC-Voltage-Scale : -1
2017.12.13 15:56:36 5: KeSolarEdge: Get: Called with Status (h40107)
2017.12.13 15:56:36 4: KeSolarEdge: Send called with h40107, objLen 1 / reqLen - to id 1, op read, qlen 0
2017.12.13 15:56:36 4: KeSolarEdge: Send adds fc 3 to 1, tid 107, for h40107 (Status), reqLen 1 at beginning of queue for immediate sending
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0471670627593994
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, sleep 0.0471670627593994 forced
2017.12.13 15:56:36 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest 0.0390989780426025
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue / CheckDelay sendDelay (0.1) for KeSolarEdge not over, sleep 0.0390989780426025 forced
2017.12.13 15:56:36 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:56:36 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 107 for Status (h40107), len 1, device KeSolarEdge (TCP), pdu 039cab0001, V 3.7.0 - 20.8.2017
2017.12.13 15:56:36 5: SW: 006b0000000601039cab0001
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99943900108337 requested reading is Status
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer got: 006b000000050103020004
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got: 006b000000050103020004
2017.12.13 15:56:36 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 107, values 0004HeaderLen 2, ActualLen 2, request was for h40107 (Status), len 1 for module KeSolarEdge
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj called with 0004 and start 40107, op read
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj ObjInfo for h40107: reading=Status, unpack=n, expr=, format=, map=
2017.12.13 15:56:36 5: KeSolarEdge: ParseObj unpacked 0004 with n to hex 34 (4)
2017.12.13 15:56:36 4: KeSolarEdge: ParseObj for Status assigns 4
2017.12.13 15:56:36 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:56:36 5: KeSolarEdge: ReadAnswer done, reading is Status, value: 4
2017.12.13 15:56:36 3: get KeSolarEdge Status : 4
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate called
2017.12.13 15:57:11 4: KeSolarEdge: update timer modified: will call GetUpdate in 900.0 seconds at 2017-12-13 16:12:11 - Interval 900
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate objects from attributes: h40103 h40098 h40101 h40084 h40096 h40107 h40095 h40097 h40099 h40083 h40100 h40082 h40079 h40093
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate full object list: h40079 h40082 h40083 h40084 h40093 h40095 h40096 h40097 h40098 h40099 h40100 h40101 h40103 h40107
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40079 => AC-Volt-A, poll = 1, last = 1513176132.92639
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request AC-Volt-A
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40082 => AC-Volt-Scale, poll = 1, last = 1513176131.50495
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request AC-Volt-Scale
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40083 => AC-Power, poll = 1, last = 1513176996.52662
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request AC-Power
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40084 => AC-Power-Scale, poll = 1, last = 1513176996.56613
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request AC-Power-Scale
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40093 => AC-Energy, poll = 1, last = 1513176996.42373
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request AC-Energy
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40095 => AC-Energy-Scale, poll = 1, last = 1513176996.46258
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request AC-Energy-Scale
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40096 => DC-Current, poll = 1, last = 1513176131.71948
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request DC-Current
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40097 => DC-Current-Scale, poll = 1, last = 1513176131.61059
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request DC-Current-Scale
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40098 => DC-Voltage, poll = 1, last = 1513176996.79503
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request DC-Voltage
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40099 => DC-Voltage-Scale, poll = 1, last = 1513176996.83781
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request DC-Voltage-Scale
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40100 => DC-Power, poll = 1, last = 1513176996.66803
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request DC-Power
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40101 => DC-Power-Scale, poll = 1, last = 1513176996.72279
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request DC-Power-Scale
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40103 => HeatSinkTemp, poll = 1, last = 1513176132.59902
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request HeatSinkTemp
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate check h40107 => Status, poll = 1, last = 1513176996.89762
2017.12.13 15:57:11 4: KeSolarEdge: GetUpdate will request Status
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate tries to combine read commands
2017.12.13 15:57:11 5: KeSolarEdge: No Combine AC-Volt-A / h40079 with AC-Volt-Scale / h40082, span 4 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine AC-Volt-Scale / h40082 with AC-Power / h40083, span 2 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine AC-Power / h40083 with AC-Power-Scale / h40084, span 2 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine AC-Power-Scale / h40084 with AC-Energy / h40093, span 11 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine AC-Energy / h40093 with AC-Energy-Scale / h40095, span 3 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine AC-Energy-Scale / h40095 with DC-Current / h40096, span 2 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine DC-Current / h40096 with DC-Current-Scale / h40097, span 2 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine DC-Current-Scale / h40097 with DC-Voltage / h40098, span 2 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine DC-Voltage / h40098 with DC-Voltage-Scale / h40099, span 2 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine DC-Voltage-Scale / h40099 with DC-Power / h40100, span 2 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine DC-Power / h40100 with DC-Power-Scale / h40101, span 2 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine DC-Power-Scale / h40101 with HeatSinkTemp / h40103, span 3 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: No Combine HeatSinkTemp / h40103 with Status / h40107, span 5 > max 1
2017.12.13 15:57:11 5: KeSolarEdge: don't sort objList before sending requests
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40082, objLen 1 / reqLen 1 to id 1, op read, qlen 0
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 199, for h40082 (AC-Volt-Scale), reqLen 1
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -34.4885032176971
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -34.4925169944763
2017.12.13 15:57:11 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 199 for AC-Volt-Scale (h40082), len 1, device KeSolarEdge (TCP), pdu 039c920001, V 3.7.0 - 20.8.2017
2017.12.13 15:57:11 5: SW: 00c70000000601039c920001
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40097, objLen 1 / reqLen 1 to id 1, op read, qlen 0
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 9, for h40097 (DC-Current-Scale), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40096, objLen 1 / reqLen 1 to id 1, op read, qlen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 226, for h40096 (DC-Current), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40099, objLen 1 / reqLen 1 to id 1, op read, qlen 2
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 4, for h40099 (DC-Voltage-Scale), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40083, objLen 1 / reqLen 1 to id 1, op read, qlen 3
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 192, for h40083 (AC-Power), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40107, objLen 1 / reqLen 1 to id 1, op read, qlen 4
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 212, for h40107 (Status), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40095, objLen 1 / reqLen 1 to id 1, op read, qlen 5
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 45, for h40095 (AC-Energy-Scale), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40084, objLen 1 / reqLen 1 to id 1, op read, qlen 6
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 125, for h40084 (AC-Power-Scale), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40093, objLen 2 / reqLen 2 to id 1, op read, qlen 7
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 121, for h40093 (AC-Energy), reqLen 2
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40101, objLen 1 / reqLen 1 to id 1, op read, qlen 8
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 92, for h40101 (DC-Power-Scale), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40103, objLen 1 / reqLen 1 to id 1, op read, qlen 9
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 189, for h40103 (HeatSinkTemp), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40100, objLen 1 / reqLen 1 to id 1, op read, qlen 10
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 114, for h40100 (DC-Power), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40098, objLen 1 / reqLen 1 to id 1, op read, qlen 11
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 81, for h40098 (DC-Voltage), reqLen 1
2017.12.13 15:57:11 4: KeSolarEdge: Send called with h40079, objLen 1 / reqLen 1 to id 1, op read, qlen 12
2017.12.13 15:57:11 4: KeSolarEdge: Send queues fc 3 to 1, tid 209, for h40079 (AC-Volt-A), reqLen 1
2017.12.13 15:57:11 5: KeSolarEdge: raw read: 00c700000005010302ffff
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got: 00c700000005010302ffff
2017.12.13 15:57:11 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 199, values ffffHeaderLen 2, ActualLen 2, request was for h40082 (AC-Volt-Scale), len 1 for module KeSolarEdge
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj called with ffff and start 40082, op read
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj ObjInfo for h40082: reading=AC-Volt-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj unpacked ffff with s> to hex 2d31 (-1)
2017.12.13 15:57:11 4: KeSolarEdge: ParseObj for AC-Volt-Scale assigns -1
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0708389282226562
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0708389282226562
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00173425674438477
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0245509147644043
2017.12.13 15:57:11 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 9 for DC-Current-Scale (h40097), len 1, device KeSolarEdge (TCP), pdu 039ca10001, V 3.7.0 - 20.8.2017
2017.12.13 15:57:11 5: SW: 00090000000601039ca10001
2017.12.13 15:57:11 5: KeSolarEdge: raw read: 000900000005010302fffb
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got: 000900000005010302fffb
2017.12.13 15:57:11 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 9, values fffbHeaderLen 2, ActualLen 2, request was for h40097 (DC-Current-Scale), len 1 for module KeSolarEdge
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj called with fffb and start 40097, op read
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj ObjInfo for h40097: reading=DC-Current-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj unpacked fffb with s> to hex 2d35 (-5)
2017.12.13 15:57:11 4: KeSolarEdge: ParseObj for DC-Current-Scale assigns -5
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0707628726959229
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0707628726959229
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00237607955932617
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00801301002502441
2017.12.13 15:57:11 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 226 for DC-Current (h40096), len 1, device KeSolarEdge (TCP), pdu 039ca00001, V 3.7.0 - 20.8.2017
2017.12.13 15:57:11 5: SW: 00e20000000601039ca00001
2017.12.13 15:57:11 5: KeSolarEdge: raw read: 00e2000000050103020fe6
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got: 00e2000000050103020fe6
2017.12.13 15:57:11 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 226, values 0fe6HeaderLen 2, ActualLen 2, request was for h40096 (DC-Current), len 1 for module KeSolarEdge
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj called with 0fe6 and start 40096, op read
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj ObjInfo for h40096: reading=DC-Current, unpack=n, expr=, format=, map=
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj unpacked 0fe6 with n to hex 34303730 (4070)
2017.12.13 15:57:11 4: KeSolarEdge: ParseObj for DC-Current assigns 4070
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0562348365783691
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0562348365783691
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.0024261474609375
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00670814514160156
2017.12.13 15:57:11 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 4 for DC-Voltage-Scale (h40099), len 1, device KeSolarEdge (TCP), pdu 039ca30001, V 3.7.0 - 20.8.2017
2017.12.13 15:57:11 5: SW: 00040000000601039ca30001
2017.12.13 15:57:11 5: KeSolarEdge: raw read: 000400000005010302ffff
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got: 000400000005010302ffff
2017.12.13 15:57:11 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 4, values ffffHeaderLen 2, ActualLen 2, request was for h40099 (DC-Voltage-Scale), len 1 for module KeSolarEdge
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj called with ffff and start 40099, op read
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj ObjInfo for h40099: reading=DC-Voltage-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj unpacked ffff with s> to hex 2d31 (-1)
2017.12.13 15:57:11 4: KeSolarEdge: ParseObj for DC-Voltage-Scale assigns -1
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0618929862976074
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0618929862976074
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00171709060668945
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0062410831451416
2017.12.13 15:57:11 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 192 for AC-Power (h40083), len 1, device KeSolarEdge (TCP), pdu 039c930001, V 3.7.0 - 20.8.2017
2017.12.13 15:57:11 5: SW: 00c00000000601039c930001
2017.12.13 15:57:11 5: KeSolarEdge: raw read: 00c0000000050103026978
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got: 00c0000000050103026978
2017.12.13 15:57:11 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 192, values 6978HeaderLen 2, ActualLen 2, request was for h40083 (AC-Power), len 1 for module KeSolarEdge
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj called with 6978 and start 40083, op read
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj ObjInfo for h40083: reading=AC-Power, unpack=n, expr=, format=, map=
2017.12.13 15:57:11 5: KeSolarEdge: ParseObj unpacked 6978 with n to hex 3237303030 (27000)
2017.12.13 15:57:11 4: KeSolarEdge: ParseObj for AC-Power assigns 27000
2017.12.13 15:57:11 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:57:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0634677410125732
2017.12.13 15:57:11 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0634677410125732
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00258421897888184
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0070033073425293
2017.12.13 15:57:12 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:12 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 212 for Status (h40107), len 1, device KeSolarEdge (TCP), pdu 039cab0001, V 3.7.0 - 20.8.2017
2017.12.13 15:57:12 5: SW: 00d40000000601039cab0001
2017.12.13 15:57:12 5: KeSolarEdge: raw read: 00d4000000050103020004
2017.12.13 15:57:12 5: KeSolarEdge: ParseFrames got: 00d4000000050103020004
2017.12.13 15:57:12 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 212, values 0004HeaderLen 2, ActualLen 2, request was for h40107 (Status), len 1 for module KeSolarEdge
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj called with 0004 and start 40107, op read
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj ObjInfo for h40107: reading=Status, unpack=n, expr=, format=, map=
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj unpacked 0004 with n to hex 34 (4)
2017.12.13 15:57:12 4: KeSolarEdge: ParseObj for Status assigns 4
2017.12.13 15:57:12 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0562198162078857
2017.12.13 15:57:12 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0562198162078857
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.0022730827331543
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00712800025939941
2017.12.13 15:57:12 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:12 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 45 for AC-Energy-Scale (h40095), len 1, device KeSolarEdge (TCP), pdu 039c9f0001, V 3.7.0 - 20.8.2017
2017.12.13 15:57:12 5: SW: 002d0000000601039c9f0001
2017.12.13 15:57:12 5: KeSolarEdge: raw read: 002d000000050103020000
2017.12.13 15:57:12 5: KeSolarEdge: ParseFrames got: 002d000000050103020000
2017.12.13 15:57:12 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 45, values 0000HeaderLen 2, ActualLen 2, request was for h40095 (AC-Energy-Scale), len 1 for module KeSolarEdge
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj called with 0000 and start 40095, op read
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj ObjInfo for h40095: reading=AC-Energy-Scale, unpack=n, expr=, format=, map=
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj unpacked 0000 with n to hex 30 (0)
2017.12.13 15:57:12 4: KeSolarEdge: ParseObj for AC-Energy-Scale assigns 0
2017.12.13 15:57:12 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0704658031463623
2017.12.13 15:57:12 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0704658031463623
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00171422958374023
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0050661563873291
2017.12.13 15:57:12 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:12 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 125 for AC-Power-Scale (h40084), len 1, device KeSolarEdge (TCP), pdu 039c940001, V 3.7.0 - 20.8.2017
2017.12.13 15:57:12 5: SW: 007d0000000601039c940001
2017.12.13 15:57:12 5: KeSolarEdge: raw read: 007d00000005010302fffe
2017.12.13 15:57:12 5: KeSolarEdge: ParseFrames got: 007d00000005010302fffe
2017.12.13 15:57:12 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 125, values fffeHeaderLen 2, ActualLen 2, request was for h40084 (AC-Power-Scale), len 1 for module KeSolarEdge
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj called with fffe and start 40084, op read
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj ObjInfo for h40084: reading=AC-Power-Scale, unpack=s>, expr=, format=, map=
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj unpacked fffe with s> to hex 2d32 (-2)
2017.12.13 15:57:12 4: KeSolarEdge: ParseObj for AC-Power-Scale assigns -2
2017.12.13 15:57:12 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0694448947906494
2017.12.13 15:57:12 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0694448947906494
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00162005424499512
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00555109977722168
2017.12.13 15:57:12 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:12 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 121 for AC-Energy (h40093), len 2, device KeSolarEdge (TCP), pdu 039c9d0002, V 3.7.0 - 20.8.2017
2017.12.13 15:57:12 5: SW: 00790000000601039c9d0002
2017.12.13 15:57:12 5: KeSolarEdge: raw read: 00790000000701030400010268
2017.12.13 15:57:12 5: KeSolarEdge: ParseFrames got: 00790000000701030400010268
2017.12.13 15:57:12 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 121, values 00010268HeaderLen 4, ActualLen 4, request was for h40093 (AC-Energy), len 2 for module KeSolarEdge
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj called with 00010268 and start 40093, op read
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj ObjInfo for h40093: reading=AC-Energy, unpack=l>, expr=, format=, map=
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj unpacked 00010268 with l> to hex 3636313532 (66152)
2017.12.13 15:57:12 4: KeSolarEdge: ParseObj for AC-Energy assigns 66152
2017.12.13 15:57:12 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.070537805557251
2017.12.13 15:57:12 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.070537805557251
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00167107582092285
2017.12.13 15:57:12 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00990128517150879
2017.12.13 15:57:12 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2017.12.13 15:57:12 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 92 for DC-Power-Scale (h40101), len 1, device KeSolarEdge (TCP), pdu 039ca50001, V 3.7.0 - 20.8.2017
2017.12.13 15:57:12 5: SW: 005c0000000601039ca50001
2017.12.13 15:57:12 5: KeSolarEdge: raw read: 005c00000005010302fffd
2017.12.13 15:57:12 5: KeSolarEdge: ParseFrames got: 005c00000005010302fffd
2017.12.13 15:57:12 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 92, values fffdHeaderLen 2, ActualLen 2, request was for h40101 (DC-Power-Scale), len 1 for module KeSolarEdge
2017.12.13 15:57:12 5: KeSolarEdge: ParseObj called with fffd and start 40101, op read
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 14 Dezember 2017, 10:56:24
.. aber in diesem Zusammenhang könnte es interessant sein, dass ich zeitweise auch solche Probleme mit HMLAN, dem Ethernet-Modul von Homematic habe.
Verlange ich einfach zuviel von meinem Raspi?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 14 Dezember 2017, 20:58:49
Hallo BenMarloe,

Beim durchsehen des Logs fallen mehrere Sachen auf:

1) Du fragst die Readings zusätzlich zum automatischen Zyklus manuell mit get ab:
Zitat
2017.12.13 15:53:34 5: KeSolarEdge: Get: Called with AC-Energy (h40093)
2017.12.13 15:53:35 5: KeSolarEdge: Get: Called with AC-Energy-Scale (h40095)
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with AC-Power (h40083)
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with AC-Power-Scale (h40084)
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with DC-Power (h40100)
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with DC-Power-Scale (h40101)
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with DC-Voltage (h40098)
2017.12.13 15:53:36 5: KeSolarEdge: Get: Called with DC-Voltage-Scale (h40099)
...
es wird aber jedes mal auch ein Wert zurückgeliefert. Fehlende Readings oder Fehler beim Empfang kann ich nicht erkennen.

2) Dann kommt der automatische Abfrage-Zyklus (das beim Define angegebene Intervall).
Der passt aber nicht zu Deiner oben geposteten Konfiguration, denn das tatsächliche Intervall ist auf 900 Sekunden eingestellt und nicht auf 30. Vermutlich hast Du inzwischen eine andere Konfiguration oder?:
Zitat
2017.12.13 15:57:11 5: KeSolarEdge: GetUpdate called
2017.12.13 15:57:11 4: KeSolarEdge: update timer modified: will call GetUpdate in 900.0 seconds at 2017-12-13 16:12:11 - Interval 900

während des GetUpdate Zyklus werden aber auch alle Readings erfolgreich abgefragt:
Zitat
2017.12.13 15:57:11 4: KeSolarEdge: ParseObj for AC-Volt-Scale assigns -1
2017.12.13 15:57:11 4: KeSolarEdge: ParseObj for DC-Current-Scale assigns -5
2017.12.13 15:57:11 4: KeSolarEdge: ParseObj for DC-Current assigns 4070
...
Fehlende Readings oder Fehler beim Empfang kann ich auch hier nicht erkennen.

3) Zwischendurch beendet Dein SolarEdge zwei mal die Verbindung und Fhem baut sie danach wieder auf.
Zitat
2017.12.13 15:53:33 3: 192.168.178.36:502 disconnected, waiting to reappear (KeSolarEdge)
2017.12.13 15:53:33 5: HttpUtils url=http://192.168.178.36:502/
2017.12.13 15:53:33 3: 192.168.178.36:502 reappeared (KeSolarEdge)
...
2017.12.13 15:55:36 3: 192.168.178.36:502 disconnected, waiting to reappear (KeSolarEdge)
2017.12.13 15:55:36 5: HttpUtils url=http://192.168.178.36:502/
2017.12.13 15:55:36 1: disconnected
2017.12.13 15:55:36 3: 192.168.178.36:502 reappeared (KeSolarEdge)
Das ist nicht weiter schlimm. Viele Modbus-TCP-Geräte machen das und ein Modbus-Master muss die Verbindung dann eben wieder aufbauen. Das ändert nichts an der Funktion.
Wenn die Meldungen stören, kann man diese mit dem Attribut silentReconnect unterdrücken.


Wo fehlen denn Readings?

Hast Du eventuell in der aktuellen Konfiguration ein event-on-change-reading mit event-min-intervall, so dass Readings, die sich nicht ändern, keinen Event auslösen? Dadurch könnte ja der Eindruck entstehen, dass die Readings nicht aktualisiert werden ...

Warum fragst Du die Readings sowohl über das eingebaute Intervall als auch nochmals explizit über get ab?

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 14 Dezember 2017, 21:36:47
Hallo Stefan,

Danke für die Hilfestellung.
zu 1) Ich frage die Daten über Get ab, weil ich zeitweise nur auf den ersten Wert ein Update bekommen habe. Seit ich das Get habe ist der Effekt allerdings weg. Außerdem ist meine Get-Abfrage in der Zwischenzeit dynamisch, d.h. ich frage den Wechselrichter minütlich ab solage er an ist und im Nachtmodus nur noch alle 20 Minuten.

zu 2) Deine Beobachtung ist natürlich korrekt. Ich habe das Update auf 900s runtergestellt um nicht alles vollzumüllen. So Sachen wie Heatsink-Temp will ich trotzdem mitgeloggt haben, falls ich es mal brauche. Ich hätte das sagen sollen.

zu 3)Das prinzipielle Fehlen habe ich nicht mehr. Aber ich bekomme auf meine Get häufig falsche Antworten (0 oder "No FD"), die aber in der Zwischenzeit (bis auf DC-Power) durch Plausibiltätsprüfungen abfangen kann. Aber in der Summe wirkt das auch mich, als wäre da noch ein Fehler.

Beispiel: der Wert "0" um 15:45:53 ist falsch. Die Spannung an einem Wechselrichter sinkt nicht so schnell
2017-12-14_15:41:52 dum_pvdcvolt 747.8
2017-12-14_15:43:52 dum_pvenergy 76897
2017-12-14_15:43:52 dum_pvpower 19
2017-12-14_15:43:52 dum_pvloss 0.3
2017-12-14_15:43:52 dum_pvdcvolt 748.1
2017-12-14_15:45:53 dum_pvdcvolt 0
2017-12-14_15:47:55 dum_pvenergy 76898
2017-12-14_15:47:55 dum_pvpower 6
2017-12-14_15:47:55 dum_pvloss 0.1
2017-12-14_15:47:55 dum_pvdcvolt 748.1

das GET, das ich dazu geschrieben habe sieht so aus.
+*00:20:00 {
  if (Value("KeSolarEdge") eq "opened") {
    my $ACEnergy = fhem ("get KeSolarEdge AC-Energy");
    my $ACEnergyScale = fhem ("get KeSolarEdge AC-Energy-Scale");
    my $ACE = $ACEnergy * (10 ** $ACEnergyScale);
   if ($ACE > 0) {
      fhem ("set dum_pvenergy " . $ACE);
   }
    #Log 1, "at_Solaredge: PV-Energy " . $ACE . "\n";
    my $ACPower = fhem ("get KeSolarEdge AC-Power");
    my $ACPowerScale = fhem ("get KeSolarEdge AC-Power-Scale");
   my $ACP = 0;
    if (($ACPower ne "No FD") and ($ACPowerScale ne "No FD")) {
      $ACP = $ACPower * (10 ** $ACPowerScale);
      if ($ACP != 0) {
        fhem ("set dum_pvpower " . $ACP);
        #Log 1, "at_Solaredge: PV-Power " . $ACP . "\n";
      }
    }
    my $DCPower = fhem ("get KeSolarEdge DC-Power");
    my $DCPowerScale = fhem ("get KeSolarEdge DC-Power-Scale");
   my $DCP = 0;
    if (($DCPower ne "no FD") and ($DCPowerScale ne "no FD")) {
     $DCP = $DCPower * (10 ** $DCPowerScale);
     if ($DCP != 0) {
        fhem ("set dum_pvloss " . sprintf("%.1f", ($DCP - $ACP)));
     }
   }
    my $DCVoltage = fhem ("get KeSolarEdge DC-Voltage");
    my $DCVoltageScale = fhem ("get KeSolarEdge DC-Voltage-Scale");
   my $DCV = 0;
    if (($DCVoltage ne "no FD") and ($DCVoltageScale ne "no FD")) {
      $DCV = $DCVoltage * (10 ** $DCVoltageScale);
      fhem ("set dum_pvdcvolt " . $DCV);
   }
   my $Status = fhem ("get KeSolarEdge Status");
   if ($Status == 2) {
     fhem ("modify at_solaredge +*00:20:00");
   }
   else {
     fhem ("modify at_solaredge +*00:01:00");
   }
  }
  else {
    Log 1, Value("KeSolarEdge");
  }
}

und der Fehler (zumindest der Teil, den ich nich abgefangen habe, nähmlich AC-Energy) ist natürlich auch im Logfile zu finden:
2017.12.14 15:43:53 3: get KeSolarEdge Status : 4
2017.12.14 15:45:53 3: get KeSolarEdge AC-Energy : No data
2017.12.14 15:45:53 3: get KeSolarEdge AC-Energy-Scale : No FD
2017.12.14 15:45:53 1: PERL WARNING: Argument "No FD" isn't numeric in exponentiation (**) at (eval 380452) line 5.

sowei also alles logisch - nur warum???
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 16 Dezember 2017, 10:35:36
Falls mir jemand helfen kann das zum laufen zu bringen würde ich die Erkenntnisse auch im Wiki als neue unterstützte Hardware "SolarEdge Se10k" veröffentlichen. In dem Zustand traue ich mich das aber nicht.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: Butzel am 13 Februar 2018, 22:55:58
ich beziehe mich auf https://wiki.fhem.de/wiki/SolarEdge_SE10k

Mein SolarEdge ist unter ModbusAttr opened, die Attribute alle gesetzt, indem ich sie in die FHEM.cfg eingebunden habe.
Allerdings streikt mein Verstand bei den Dummys. Das erste Beispiel define pv_energyday_log dummy ist zwar drin, die darunter stehenden aber nicht.
Muss ich die erweitern um "dummy" ??
Wer kann die Anleitung im WIKI erhellen und eventuell für Dummys erläutern ?

Danke sehr
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: Butzel am 13 Februar 2018, 22:58:10
der Link bei "Mehr Daten sind im Sunspec Protokoll zu finden " funktioniert leider nicht
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 18 Februar 2018, 09:17:48
Hallo BenMarloe,

Könntest Du das Problem inzwischen lösen?
Falls Du noch Hilfe brauchst, wäre ein langer Auszug aus dem Log, in dem man die disconnects / reconnects sehen kann, sowie die vollständige Konfiguration hilfreich.
NoFD etc. verweisen auf eine verlorene Verbindung.
Eigentlich sollte das Modbus–Modul selbständig Verbindungen wieder aufbauen.
Auch der Umweg über die get–Befehle sollte nicht nötig sein. Wenn Du das Abfrage-Intervall ändern möchtest, kannst Du das mit set interval machen.
Wenn nicht alle Werte als Antwort kommen, kann das am Timing oder an der Kombination von Abfragen liegen. Beides kann man mit Attributen konfigurieren.
Wenn es dennoch falsche Werte gibt, kann man die mit -ignoreExpr ausfiltern ...

Gruß
    Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: KOBIL am 18 Februar 2018, 19:03:45
Ich habe den Solar Edge SE7K gem. der Beschreibung SE10K aus dem FhemWiki fast erfolgreich eingebunden. Allerdings bekomme ich im LOGFILE die Fehlermeldung:
2018.02.18 17:46:55.020 1: PERL WARNING: Argument "???" isn't numeric in subtraction (-) at (eval 464278) line 16.
2018.02.18 17:46:55.021 3: eval: { if (Value("SolarEdge") eq "opened") {
    my $ACEnergy = fhem ("get SolarEdge AC-Energy");
    my $ACEnergyScale = fhem ("get SolarEdge AC-Energy-Scale");
    my $ACE = 0;
   my $day = Value("dum_pv_energyday_read");
   my $week = Value("dum_pv_energyweek_read");
   my $month = Value("dum_pv_energymonth_read");
   my $year = Value("dum_pv_energyyear_read");
    if (($ACEnergy ne "No Data") and ($ACEnergyScale ne "No FD")) {
      my $ACE = $ACEnergy * (10 ** $ACEnergyScale);
     if ($ACE > 0) {
        fhem ("set dum_pvenergy " . $ACE);
        fhem ("set dum_pv_energytoday " . ($ACE - $day));
        fhem ("set dum_pv_energytoweek " . ($ACE - $week));
        fhem ("set dum_pv_energytomonth " . ($ACE - $month));
        fhem ("set dum_pv_energytoyear " . ($ACE - $year));
     }
    }
Natürlich geht die at Def noch weiter...  Wie kann ich den Fehler finden?

Mit dem Dummy bin ich nicht wirklich zurechtgekommen (vielleicht ist hier auch der Fehler):
Im FhemWiki steht:
define pv_energyday_log dummy
dum_pv_energyday_log /r dum_pv_energyday_read
dum_pv_energymonth_log

Was ist "/r", bei mir sieht die fhem.cfg so aus:
define dum_pv_energyday_log dummy
define dum_pv_energyday_read dummy
define dum_pv_energymonth_log dummy
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 18 Februar 2018, 19:58:42
Hallo,

ich würde davon abraten, die Daten wie im Wiki beschrieben mit get und dummys abzuholen.
Die Probleme, die BenMarloe beschrieben hat, sollten sich durch richtige Konfiguration lösen lassen.
Soweit ich die Fehlerbeschreibung verstanden habe, liefert das SolarEdge nicht immer eine Antwort und beendet die TCP-Verbindung zwischendurch. Mit den get-Aufrufen und dummys kann man das natürlich abfangen, das hat aber Nebenwirkungen und es sollte deutlich eleganter gehen.
Durch den get muss beispielsweise die Abfrage synchron durchgeführt werden und Fhem blockiert dabei. Jegliche Optimierung / Kombination von Abfragen in einen gemeinsamen Modbus-Request werden so auch verhindert.
Wie oben geschrieben gibt es für solche Fälle auch Features innerhalb des Modbus-Moduls. Dann kann auch alles asynchron und ohne Blockaden gemacht werden.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 18 Februar 2018, 20:04:34
@Butzel:
ja, Du musst das um "define" und "dummy" an beiden Enden erweitern.
Das Sunspec suche ich naher mal

@StefanStrobel:
Danke für das Angebot. Ich nehme es gerne an. Da ich in der Zwischenzeit aber eine Menge neuer Versuche mit UserReadings gemacht habe, brauche ich eine paar Tage um da wieder hin zu kommen ohne Dich mit anderen Fehlern zu belästigen.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 18 Februar 2018, 20:36:15
Kein Problem, ich komme auch nicht ständig dazu ins Forum zu schauen.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 18 Februar 2018, 20:50:40
@StefanStrobel

vielleicht kannst Du mir helfen eine elegante Lösung zu finden.
Im Augenblick versuche ich die Werte im ModbusAttr zu berechnen (wie Du es auch vorgeschlagen hast). Da aber der Wert und der Skalierungsfaktor in verschiedenen Readings sind kommen die ab und an durcheinander. Daher habe ich ein UserReadings geschrieben, das das beheben soll. Es scheint aber der Plan in einem UserReadings ein Reading erneut auszulesen scheitert.

Hier das ModbusAttr
Internals:
   BUSY       0
   DEF        1 30 192.168.178.36 TCP
   DEST       192.168.178.36:502
   DeviceName 192.168.178.36:502
   FD         5
   INTERVAL   60
   IODev      KeSolarEdge
   LASTOPEN   1518979743.92579
   MODBUSID   1
   ModuleVersion 3.7.3 - 22.12.2017
   NAME       KeSolarEdge
   NOTIFYDEV  global
   NR         363
   NTFY_ORDER 50-KeSolarEdge
   PARTIAL   
   PROTOCOL   TCP
   REQUESTHEX 002c0000000601039c8f0001
   STATE      opened
   TRIGGERTIME 1518982148.23738
   TRIGGERTIME_FMT 2018-02-18 20:29:08
   TYPE       ModbusAttr
   devioLoglevel 3
   nextOpenDelay 60
   QUEUE:
   READINGS:
     2018-02-18 20:27:11   AC-Energy       502.548
     2018-02-18 20:27:11   AC-Energy-Scale 0
     2018-02-18 20:27:11   AC-Energy-Val   502548
     2018-02-18 20:27:10   AC-Power        0
     2018-02-18 20:27:11   AC-Power-Scale  0
     2018-02-18 20:27:08   AC-Power-Val    0
     2018-02-18 20:27:14   AC-Volt-A       232
     2018-02-18 20:27:08   AC-Volt-Scale   -1
     2018-02-18 20:27:08   DC-Current      0
     2018-02-18 20:27:08   DC-Current-Scale -32768
     2018-02-18 20:27:08   DC-Current-Val  65535
     2018-02-18 20:27:11   DC-Power        0
     2018-02-18 20:27:11   DC-Power-Scale  0
     2018-02-18 20:27:11   DC-Power-Val    0
     2018-02-18 20:27:13   DC-Voltage      0
     2018-02-18 20:27:13   DC-Voltage-Scale -1
     2018-02-18 20:27:11   DC-Voltage-Val  0
     2018-02-18 20:27:11   HeatSinkTemp    0
     2018-02-18 20:27:10   Status          2
     2018-02-18 19:49:03   state           opened
   defptr:
     1:
   gotReadings:
     AC-Volt-A  232
   helper:
     buffer     
     lid        1
     lrecv      1518982034.08556
     lsend      1518982034.03397
   lastRead:
     h40079     1518982034.08912
     h40082     1518982028.0878
     h40083     1518982028.75169
     h40084     1518982031.16065
     h40093     1518982031.3014
     h40095     1518982031.05454
     h40096     1518982028.53803
     h40097     1518982028.40507
     h40098     1518982031.90755
     h40099     1518982033.91931
     h40100     1518982031.80175
     h40101     1518982031.40754
     h40103     1518982031.67835
     h40107     1518982030.92108
Attributes:
   dev-h-defPoll 1
   dev-h-defShowGet 1
   enableControlSet 1
   maxTimeoutsToReconnect 3
   obj-h40079-expr $val / 10
   obj-h40079-reading AC-Volt-A
   obj-h40082-reading AC-Volt-Scale
   obj-h40082-unpack s>
   obj-h40083-reading AC-Power-Val
   obj-h40084-reading AC-Power-Scale
   obj-h40084-unpack s>
   obj-h40093-len 2
   obj-h40093-reading AC-Energy-Val
   obj-h40093-unpack l>
   obj-h40095-reading AC-Energy-Scale
   obj-h40096-reading DC-Current-Val
   obj-h40097-reading DC-Current-Scale
   obj-h40097-unpack s>
   obj-h40098-reading DC-Voltage-Val
   obj-h40099-reading DC-Voltage-Scale
   obj-h40099-unpack s>
   obj-h40100-reading DC-Power-Val
   obj-h40101-reading DC-Power-Scale
   obj-h40101-unpack s>
   obj-h40103-reading HeatSinkTemp
   obj-h40103-unpack s>
   obj-h40107-reading Status
   room       Solar
   userReadings AC-Energy:(AC-Energy-Val.*) {
  my $scale;
  if ((time_str2num(ReadingsTimestamp("KeSolarEdge","AC-Energy-Val",0)) - time_str2num(ReadingsTimestamp("KeSolarEdge","AC-Energy-Scale",0))) < 1) {
    $scale = ReadingsVal ("KeSolarEdge","AC-Energy-Scale",0);
  }
  else {
    $scale = fhem ("get KeSolarEdge AC-Energy-Scale");
  }
  return (ReadingsVal ("KeSolarEdge","AC-Energy-Val",0) * ( 10 ** $scale) / 1000);;},
 
AC-Power:(AC-Power-Val.*) {
 my $scale;
  if ((time_str2num(ReadingsTimestamp("KeSolarEdge","AC-Power-Val",0)) - time_str2num(ReadingsTimestamp("KeSolarEdge","AC-Power-Scale",0))) < 1) {
    $scale = ReadingsVal ("KeSolarEdge","AC-Power-Scale",0);
  }
  else {
    $scale = fhem ("get KeSolarEdge AC-Power-Scale");
  }
  return (ReadingsVal ("KeSolarEdge","AC-Power-Val",0) * ( 10 ** $scale) / 1000);;},

DC-Power:(DC-Power-Val.*) {
 my $scale;
  if ((time_str2num(ReadingsTimestamp("KeSolarEdge","DC-Power-Val",0)) - time_str2num(ReadingsTimestamp("KeSolarEdge","DC-Power-Scale",0))) < 1) {
    $scale = ReadingsVal ("KeSolarEdge","DC-Power-Scale",0);
  }
  else {
    $scale = fhem ("get KeSolarEdge DC-Power-Scale");
  }
  return (ReadingsVal ("KeSolarEdge","DC-Power-Val",0) * ( 10 ** $scale) / 1000);;},
 
DC-Current:(DC-Current-Val.*) {
 my $scale;
  if ((time_str2num(ReadingsTimestamp("KeSolarEdge","DC-Current-Val",0)) - time_str2num(ReadingsTimestamp("KeSolarEdge","DC-Current-Scale",0))) < 1) {
    $scale = ReadingsVal ("KeSolarEdge","DC-Current-Scale",0);
  }
  else {
    $scale = fhem ("get KeSolarEdge DC-Current-Scale");
  }
  return (ReadingsVal ("KeSolarEdge","DC-Current-Val",0) * ( 10 ** $scale) / 1000);;},
 
DC-Voltage:(DC-Voltage-Val.*) {
 my $scale;
  if ((time_str2num(ReadingsTimestamp("KeSolarEdge","DC-Voltage-Val",0)) - time_str2num(ReadingsTimestamp("KeSolarEdge","DC-Voltage-Scale",0))) < 1) {
    $scale = ReadingsVal ("KeSolarEdge","DC-Voltage-Scale",0);
  }
  else {
    $scale = fhem ("get KeSolarEdge DC-Voltage-Scale");
  }
  return (ReadingsVal ("KeSolarEdge","DC-Voltage-Val",0) * ( 10 ** $scale) / 1000);;}
   userattr   dev-h-defPoll dev-h-defShowGet enableControlSet maxTimeoutsToReconnect obj-h40079-expr obj-h40079-reading obj-h40082-reading obj-h40082-unpack obj-h40083-reading obj-h40084-expr obj-h40084-reading obj-h40084-unpack obj-h40093-len obj-h40093-reading obj-h40093-unpack obj-h40094-poll obj-h40094-reading obj-h40095-reading obj-h40096-reading obj-h40097-reading obj-h40097-unpack obj-h40098-reading obj-h40099-reading obj-h40099-unpack obj-h40100-reading obj-h40101-reading obj-h40101-unpack obj-h40103-reading obj-h40103-unpack obj-h40107-reading obj-h40108-reading silentReconnect userReadings verbose
   verbose    5

und hier das log:
2018.02.18 20:40:10 1: opened
2018.02.18 20:40:10 3: KeSolarEdge: timer interval changed to 60 seconds
2018.02.18 20:40:10 4: KeSolarEdge: update timer modified: will call GetUpdate in 60.0 seconds at 2018-02-18 20:41:10 - Interval 60
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate called
2018.02.18 20:41:10 4: KeSolarEdge: update timer modified: will call GetUpdate in 60.0 seconds at 2018-02-18 20:42:10 - Interval 60
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate objects from attributes: h40103 h40098 h40084 h40097 h40099 h40083 h40100 h40093 h40101 h40096 h40107 h40095 h40079 h40082
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate full object list: h40079 h40082 h40083 h40084 h40093 h40095 h40096 h40097 h40098 h40099 h40100 h40101 h40103 h40107
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40079 => AC-Volt-A, poll = 1, last = 1518982756.19274
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request AC-Volt-A
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40082 => AC-Volt-Scale, poll = 1, last = 1518982750.50473
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request AC-Volt-Scale
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40083 => AC-Power-Val, poll = 1, last = 1518982750.96171
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request AC-Power-Val
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40084 => AC-Power-Scale, poll = 1, last = 1518982753.36003
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request AC-Power-Scale
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40093 => AC-Energy-Val, poll = 1, last = 1518982753.47444
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request AC-Energy-Val
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40095 => AC-Energy-Scale, poll = 1, last = 1518982753.23631
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request AC-Energy-Scale
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40096 => DC-Current-Val, poll = 1, last = 1518982750.73297
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request DC-Current-Val
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40097 => DC-Current-Scale, poll = 1, last = 1518982750.6206
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request DC-Current-Scale
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40098 => DC-Voltage-Val, poll = 1, last = 1518982754.02033
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request DC-Voltage-Val
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40099 => DC-Voltage-Scale, poll = 1, last = 1518982756.04443
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request DC-Voltage-Scale
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40100 => DC-Power-Val, poll = 1, last = 1518982753.91049
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request DC-Power-Val
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40101 => DC-Power-Scale, poll = 1, last = 1518982753.616
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request DC-Power-Scale
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40103 => HeatSinkTemp, poll = 1, last = 1518982753.73013
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request HeatSinkTemp
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate check h40107 => Status, poll = 1, last = 1518982753.12422
2018.02.18 20:41:10 4: KeSolarEdge: GetUpdate will request Status
2018.02.18 20:41:10 5: KeSolarEdge: GetUpdate tries to combine read commands
2018.02.18 20:41:10 5: KeSolarEdge: No Combine AC-Volt-A / h40079 with AC-Volt-Scale / h40082, span 4 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine AC-Volt-Scale / h40082 with AC-Power-Val / h40083, span 2 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine AC-Power-Val / h40083 with AC-Power-Scale / h40084, span 2 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine AC-Power-Scale / h40084 with AC-Energy-Val / h40093, span 11 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine AC-Energy-Val / h40093 with AC-Energy-Scale / h40095, span 3 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine AC-Energy-Scale / h40095 with DC-Current-Val / h40096, span 2 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine DC-Current-Val / h40096 with DC-Current-Scale / h40097, span 2 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine DC-Current-Scale / h40097 with DC-Voltage-Val / h40098, span 2 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine DC-Voltage-Val / h40098 with DC-Voltage-Scale / h40099, span 2 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine DC-Voltage-Scale / h40099 with DC-Power-Val / h40100, span 2 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine DC-Power-Val / h40100 with DC-Power-Scale / h40101, span 2 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine DC-Power-Scale / h40101 with HeatSinkTemp / h40103, span 3 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: No Combine HeatSinkTemp / h40103 with Status / h40107, span 5 > max 1
2018.02.18 20:41:10 5: KeSolarEdge: don't sort objList before sending requests
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40082, objLen 1 / reqLen 1 to id 1, op read, qlen 0
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 187, for h40082 (AC-Volt-Scale), reqLen 1
2018.02.18 20:41:10 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -114.34584903717
2018.02.18 20:41:10 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -114.351452112198
2018.02.18 20:41:10 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:10 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 187 for AC-Volt-Scale (h40082), len 1, device KeSolarEdge (TCP), pdu 039c920001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:10 5: SW: 00bb0000000601039c920001
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40097, objLen 1 / reqLen 1 to id 1, op read, qlen 0
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 31, for h40097 (DC-Current-Scale), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40096, objLen 1 / reqLen 1 to id 1, op read, qlen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 48, for h40096 (DC-Current-Val), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40099, objLen 1 / reqLen 1 to id 1, op read, qlen 2
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 23, for h40099 (DC-Voltage-Scale), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40083, objLen 1 / reqLen 1 to id 1, op read, qlen 3
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 111, for h40083 (AC-Power-Val), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40107, objLen 1 / reqLen 1 to id 1, op read, qlen 4
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 198, for h40107 (Status), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40095, objLen 1 / reqLen 1 to id 1, op read, qlen 5
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 221, for h40095 (AC-Energy-Scale), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40084, objLen 1 / reqLen 1 to id 1, op read, qlen 6
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 118, for h40084 (AC-Power-Scale), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40093, objLen 2 / reqLen 2 to id 1, op read, qlen 7
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 40, for h40093 (AC-Energy-Val), reqLen 2
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40101, objLen 1 / reqLen 1 to id 1, op read, qlen 8
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 152, for h40101 (DC-Power-Scale), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40103, objLen 1 / reqLen 1 to id 1, op read, qlen 9
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 43, for h40103 (HeatSinkTemp), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40100, objLen 1 / reqLen 1 to id 1, op read, qlen 10
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 116, for h40100 (DC-Power-Val), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40098, objLen 1 / reqLen 1 to id 1, op read, qlen 11
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 36, for h40098 (DC-Voltage-Val), reqLen 1
2018.02.18 20:41:10 4: KeSolarEdge: Send called with h40079, objLen 1 / reqLen 1 to id 1, op read, qlen 12
2018.02.18 20:41:10 4: KeSolarEdge: Send queues fc 3 to 1, tid 82, for h40079 (AC-Volt-A), reqLen 1
2018.02.18 20:41:10 5: KeSolarEdge: raw read: 00bb00000005010302ffff
2018.02.18 20:41:10 5: KeSolarEdge: ParseFrames got: 00bb00000005010302ffff
2018.02.18 20:41:10 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 187, values ffffHeaderLen 2, ActualLen 2, request was for h40082 (AC-Volt-Scale), len 1 for module KeSolarEdge
2018.02.18 20:41:10 5: KeSolarEdge: ParseObj called with ffff and start 40082, op read
2018.02.18 20:41:10 5: KeSolarEdge: ParseObj ObjInfo for h40082: reading=AC-Volt-Scale, unpack=s>, expr=, format=, map=
2018.02.18 20:41:10 5: KeSolarEdge: ParseObj unpacked ffff with s> to hex 2d31 (-1)
2018.02.18 20:41:10 4: KeSolarEdge: ParseObj for AC-Volt-Scale assigns -1
2018.02.18 20:41:10 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:10 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0583937168121338
2018.02.18 20:41:10 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0583937168121338
2018.02.18 20:41:10 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00193524360656738
2018.02.18 20:41:10 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0510880947113037
2018.02.18 20:41:10 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:10 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 31 for DC-Current-Scale (h40097), len 1, device KeSolarEdge (TCP), pdu 039ca10001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:10 5: SW: 001f0000000601039ca10001
2018.02.18 20:41:10 5: KeSolarEdge: raw read: 001f000000050103028000
2018.02.18 20:41:10 5: KeSolarEdge: ParseFrames got: 001f000000050103028000
2018.02.18 20:41:10 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 31, values 8000HeaderLen 2, ActualLen 2, request was for h40097 (DC-Current-Scale), len 1 for module KeSolarEdge
2018.02.18 20:41:10 5: KeSolarEdge: ParseObj called with 8000 and start 40097, op read
2018.02.18 20:41:10 5: KeSolarEdge: ParseObj ObjInfo for h40097: reading=DC-Current-Scale, unpack=s>, expr=, format=, map=
2018.02.18 20:41:10 5: KeSolarEdge: ParseObj unpacked 8000 with s> to hex 2d3332373638 (-32768)
2018.02.18 20:41:10 4: KeSolarEdge: ParseObj for DC-Current-Scale assigns -32768
2018.02.18 20:41:10 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:10 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.058297872543335
2018.02.18 20:41:10 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.058297872543335
2018.02.18 20:41:10 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00185203552246094
2018.02.18 20:41:10 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00827193260192871
2018.02.18 20:41:10 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:10 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 48 for DC-Current-Val (h40096), len 1, device KeSolarEdge (TCP), pdu 039ca00001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:10 5: SW: 00300000000601039ca00001
2018.02.18 20:41:10 5: KeSolarEdge: raw read: 003000000005010302ffff
2018.02.18 20:41:10 5: KeSolarEdge: ParseFrames got: 003000000005010302ffff
2018.02.18 20:41:10 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 48, values ffffHeaderLen 2, ActualLen 2, request was for h40096 (DC-Current-Val), len 1 for module KeSolarEdge
2018.02.18 20:41:10 5: KeSolarEdge: ParseObj called with ffff and start 40096, op read
2018.02.18 20:41:10 5: KeSolarEdge: ParseObj ObjInfo for h40096: reading=DC-Current-Val, unpack=n, expr=, format=, map=
2018.02.18 20:41:10 5: KeSolarEdge: ParseObj unpacked ffff with n to hex 3635353335 (65535)
2018.02.18 20:41:10 4: KeSolarEdge: ParseObj for DC-Current-Val assigns 65535
2018.02.18 20:41:10 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:10 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0472698211669922
2018.02.18 20:41:10 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0472698211669922
2018.02.18 20:41:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00162911415100098
2018.02.18 20:41:11 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0106191635131836
2018.02.18 20:41:11 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:11 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 23 for DC-Voltage-Scale (h40099), len 1, device KeSolarEdge (TCP), pdu 039ca30001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:11 5: SW: 00170000000601039ca30001
2018.02.18 20:41:11 5: KeSolarEdge: raw read: 001700000005010302ffff
2018.02.18 20:41:11 5: KeSolarEdge: ParseFrames got: 001700000005010302ffff
2018.02.18 20:41:11 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 23, values ffffHeaderLen 2, ActualLen 2, request was for h40099 (DC-Voltage-Scale), len 1 for module KeSolarEdge
2018.02.18 20:41:11 5: KeSolarEdge: ParseObj called with ffff and start 40099, op read
2018.02.18 20:41:11 5: KeSolarEdge: ParseObj ObjInfo for h40099: reading=DC-Voltage-Scale, unpack=s>, expr=, format=, map=
2018.02.18 20:41:11 5: KeSolarEdge: ParseObj unpacked ffff with s> to hex 2d31 (-1)
2018.02.18 20:41:11 4: KeSolarEdge: ParseObj for DC-Voltage-Scale assigns -1
2018.02.18 20:41:11 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0583548545837402
2018.02.18 20:41:11 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0583548545837402
2018.02.18 20:41:11 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00166416168212891
2018.02.18 20:41:11 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00785589218139648
2018.02.18 20:41:11 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:11 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 111 for AC-Power-Val (h40083), len 1, device KeSolarEdge (TCP), pdu 039c930001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:11 5: SW: 006f0000000601039c930001
2018.02.18 20:41:11 5: KeSolarEdge: raw read: 006f000000050103020000
2018.02.18 20:41:11 5: KeSolarEdge: ParseFrames got: 006f000000050103020000
2018.02.18 20:41:11 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 111, values 0000HeaderLen 2, ActualLen 2, request was for h40083 (AC-Power-Val), len 1 for module KeSolarEdge
2018.02.18 20:41:11 5: KeSolarEdge: ParseObj called with 0000 and start 40083, op read
2018.02.18 20:41:11 5: KeSolarEdge: ParseObj ObjInfo for h40083: reading=AC-Power-Val, unpack=n, expr=, format=, map=
2018.02.18 20:41:11 5: KeSolarEdge: ParseObj unpacked 0000 with n to hex 30 (0)
2018.02.18 20:41:11 4: KeSolarEdge: ParseObj for AC-Power-Val assigns 0
2018.02.18 20:41:11 5: KeSolarEdge: Get: Called with AC-Power-Scale (h40084)
2018.02.18 20:41:11 5: KeSolarEdge: Get: Queue is stil busy - taking over the read with ReadAnswer
2018.02.18 20:41:11 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.97947597503662
2018.02.18 20:41:13 3: KeSolarEdge: Timeout2 in ReadAnswer
2018.02.18 20:41:13 4: KeSolarEdge: Send called with h40084, objLen 1 / reqLen - to id 1, op read, qlen 9
2018.02.18 20:41:13 4: KeSolarEdge: Send adds fc 3 to 1, tid 253, for h40084 (AC-Power-Scale), reqLen 1 at beginning of queue for immediate sending
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -1.89980792999268
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -1.91000914573669
2018.02.18 20:41:13 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 253 for AC-Power-Scale (h40084), len 1, device KeSolarEdge (TCP), pdu 039c940001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:13 5: SW: 00fd0000000601039c940001
2018.02.18 20:41:13 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99929404258728 requested reading is AC-Power-Scale
2018.02.18 20:41:13 5: KeSolarEdge: ReadAnswer got: 00fd000000050103020000
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got: 00fd000000050103020000
2018.02.18 20:41:13 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 253, values 0000HeaderLen 2, ActualLen 2, request was for h40084 (AC-Power-Scale), len 1 for module KeSolarEdge
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj called with 0000 and start 40084, op read
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj ObjInfo for h40084: reading=AC-Power-Scale, unpack=s>, expr=, format=, map=
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj unpacked 0000 with s> to hex 30 (0)
2018.02.18 20:41:13 4: KeSolarEdge: ParseObj for AC-Power-Scale assigns 0
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:13 5: KeSolarEdge: ReadAnswer done, reading is AC-Power-Scale, value: 0
2018.02.18 20:41:13 1: readingsUpdate(KeSolarEdge,AC-Power,0) missed to call readingsBeginUpdate first.
2018.02.18 20:41:13 1: stacktrace:
2018.02.18 20:41:13 1:     main::readingsBulkUpdate            called by fhem.pl (4400)
2018.02.18 20:41:13 1:     main::readingsEndUpdate             called by ./FHEM/98_Modbus.pm (666)
2018.02.18 20:41:13 1:     main::Modbus_ParseObj               called by ./FHEM/98_Modbus.pm (963)
2018.02.18 20:41:13 1:     main::Modbus_ParseFrames            called by ./FHEM/98_Modbus.pm (1012)
2018.02.18 20:41:13 1:     main::Modbus_Read                   called by fhem.pl (3510)
2018.02.18 20:41:13 1:     main::CallFn                        called by fhem.pl (689)
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0292308330535889
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0292308330535889
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.219043254852295
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.22862720489502
2018.02.18 20:41:13 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 198 for Status (h40107), len 1, device KeSolarEdge (TCP), pdu 039cab0001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:13 5: SW: 00c60000000601039cab0001
2018.02.18 20:41:13 5: KeSolarEdge: raw read: 00c6000000050103020002
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got: 00c6000000050103020002
2018.02.18 20:41:13 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 198, values 0002HeaderLen 2, ActualLen 2, request was for h40107 (Status), len 1 for module KeSolarEdge
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj called with 0002 and start 40107, op read
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj ObjInfo for h40107: reading=Status, unpack=n, expr=, format=, map=
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj unpacked 0002 with n to hex 32 (2)
2018.02.18 20:41:13 4: KeSolarEdge: ParseObj for Status assigns 2
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0571830272674561
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0571830272674561
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.0709049701690674
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0795319080352783
2018.02.18 20:41:13 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 221 for AC-Energy-Scale (h40095), len 1, device KeSolarEdge (TCP), pdu 039c9f0001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:13 5: SW: 00dd0000000601039c9f0001
2018.02.18 20:41:13 5: KeSolarEdge: raw read: 00dd000000050103020000
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got: 00dd000000050103020000
2018.02.18 20:41:13 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 221, values 0000HeaderLen 2, ActualLen 2, request was for h40095 (AC-Energy-Scale), len 1 for module KeSolarEdge
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj called with 0000 and start 40095, op read
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj ObjInfo for h40095: reading=AC-Energy-Scale, unpack=n, expr=, format=, map=
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj unpacked 0000 with n to hex 30 (0)
2018.02.18 20:41:13 4: KeSolarEdge: ParseObj for AC-Energy-Scale assigns 0
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0579907894134521
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0579907894134521
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00177311897277832
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00716304779052734
2018.02.18 20:41:13 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 118 for AC-Power-Scale (h40084), len 1, device KeSolarEdge (TCP), pdu 039c940001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:13 5: SW: 00760000000601039c940001
2018.02.18 20:41:13 5: KeSolarEdge: raw read: 0076000000050103020000
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got: 0076000000050103020000
2018.02.18 20:41:13 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 118, values 0000HeaderLen 2, ActualLen 2, request was for h40084 (AC-Power-Scale), len 1 for module KeSolarEdge
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj called with 0000 and start 40084, op read
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj ObjInfo for h40084: reading=AC-Power-Scale, unpack=s>, expr=, format=, map=
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj unpacked 0000 with s> to hex 30 (0)
2018.02.18 20:41:13 4: KeSolarEdge: ParseObj for AC-Power-Scale assigns 0
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0597178936004639
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0597178936004639
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00194787979125977
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00683927536010742
2018.02.18 20:41:13 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 40 for AC-Energy-Val (h40093), len 2, device KeSolarEdge (TCP), pdu 039c9d0002, V 3.7.3 - 22.12.2017
2018.02.18 20:41:13 5: SW: 00280000000601039c9d0002
2018.02.18 20:41:13 5: KeSolarEdge: raw read: 0028000000070103040007ab14
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got: 0028000000070103040007ab14
2018.02.18 20:41:13 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 40, values 0007ab14HeaderLen 4, ActualLen 4, request was for h40093 (AC-Energy-Val), len 2 for module KeSolarEdge
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj called with 0007ab14 and start 40093, op read
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj ObjInfo for h40093: reading=AC-Energy-Val, unpack=l>, expr=, format=, map=
2018.02.18 20:41:13 5: KeSolarEdge: ParseObj unpacked 0007ab14 with l> to hex 353032353438 (502548)
2018.02.18 20:41:13 4: KeSolarEdge: ParseObj for AC-Energy-Val assigns 502548
2018.02.18 20:41:13 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0485069751739502
2018.02.18 20:41:13 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0485069751739502
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00170207023620605
2018.02.18 20:41:13 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0117151737213135
2018.02.18 20:41:14 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:14 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 152 for DC-Power-Scale (h40101), len 1, device KeSolarEdge (TCP), pdu 039ca50001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:14 5: SW: 00980000000601039ca50001
2018.02.18 20:41:14 5: KeSolarEdge: raw read: 0098000000050103020000
2018.02.18 20:41:14 5: KeSolarEdge: ParseFrames got: 0098000000050103020000
2018.02.18 20:41:14 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 152, values 0000HeaderLen 2, ActualLen 2, request was for h40101 (DC-Power-Scale), len 1 for module KeSolarEdge
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj called with 0000 and start 40101, op read
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj ObjInfo for h40101: reading=DC-Power-Scale, unpack=s>, expr=, format=, map=
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj unpacked 0000 with s> to hex 30 (0)
2018.02.18 20:41:14 4: KeSolarEdge: ParseObj for DC-Power-Scale assigns 0
2018.02.18 20:41:14 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:14 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0594909191131592
2018.02.18 20:41:14 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0594909191131592
2018.02.18 20:41:14 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00170707702636719
2018.02.18 20:41:14 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.00838208198547363
2018.02.18 20:41:14 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:14 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 43 for HeatSinkTemp (h40103), len 1, device KeSolarEdge (TCP), pdu 039ca70001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:14 5: SW: 002b0000000601039ca70001
2018.02.18 20:41:14 5: KeSolarEdge: raw read: 002b000000050103020000
2018.02.18 20:41:14 5: KeSolarEdge: ParseFrames got: 002b000000050103020000
2018.02.18 20:41:14 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 43, values 0000HeaderLen 2, ActualLen 2, request was for h40103 (HeatSinkTemp), len 1 for module KeSolarEdge
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj called with 0000 and start 40103, op read
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj ObjInfo for h40103: reading=HeatSinkTemp, unpack=s>, expr=, format=, map=
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj unpacked 0000 with s> to hex 30 (0)
2018.02.18 20:41:14 4: KeSolarEdge: ParseObj for HeatSinkTemp assigns 0
2018.02.18 20:41:14 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:14 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0591778755187988
2018.02.18 20:41:14 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0591778755187988
2018.02.18 20:41:14 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.00171399116516113
2018.02.18 20:41:14 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0105290412902832
2018.02.18 20:41:14 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:14 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 116 for DC-Power-Val (h40100), len 1, device KeSolarEdge (TCP), pdu 039ca40001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:14 5: SW: 00740000000601039ca40001
2018.02.18 20:41:14 5: KeSolarEdge: raw read: 0074000000050103020000
2018.02.18 20:41:14 5: KeSolarEdge: ParseFrames got: 0074000000050103020000
2018.02.18 20:41:14 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 116, values 0000HeaderLen 2, ActualLen 2, request was for h40100 (DC-Power-Val), len 1 for module KeSolarEdge
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj called with 0000 and start 40100, op read
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj ObjInfo for h40100: reading=DC-Power-Val, unpack=n, expr=, format=, map=
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj unpacked 0000 with n to hex 30 (0)
2018.02.18 20:41:14 4: KeSolarEdge: ParseObj for DC-Power-Val assigns 0
2018.02.18 20:41:14 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:14 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0483968257904053
2018.02.18 20:41:14 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0483968257904053
2018.02.18 20:41:14 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.0018310546875
2018.02.18 20:41:14 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.0109779834747314
2018.02.18 20:41:14 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:14 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 36 for DC-Voltage-Val (h40098), len 1, device KeSolarEdge (TCP), pdu 039ca20001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:14 5: SW: 00240000000601039ca20001
2018.02.18 20:41:14 5: KeSolarEdge: raw read: 0024000000050103020000
2018.02.18 20:41:14 5: KeSolarEdge: ParseFrames got: 0024000000050103020000
2018.02.18 20:41:14 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 36, values 0000HeaderLen 2, ActualLen 2, request was for h40098 (DC-Voltage-Val), len 1 for module KeSolarEdge
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj called with 0000 and start 40098, op read
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj ObjInfo for h40098: reading=DC-Voltage-Val, unpack=n, expr=, format=, map=
2018.02.18 20:41:14 5: KeSolarEdge: ParseObj unpacked 0000 with n to hex 30 (0)
2018.02.18 20:41:14 4: KeSolarEdge: ParseObj for DC-Voltage-Val assigns 0
2018.02.18 20:41:14 5: KeSolarEdge: Get: Called with DC-Voltage-Scale (h40099)
2018.02.18 20:41:14 5: KeSolarEdge: Get: Queue is stil busy - taking over the read with ReadAnswer
2018.02.18 20:41:14 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.96346211433411
2018.02.18 20:41:16 3: KeSolarEdge: Timeout2 in ReadAnswer
2018.02.18 20:41:16 4: KeSolarEdge: Send called with h40099, objLen 1 / reqLen - to id 1, op read, qlen 1
2018.02.18 20:41:16 4: KeSolarEdge: Send adds fc 3 to 1, tid 54, for h40099 (DC-Voltage-Scale), reqLen 1 at beginning of queue for immediate sending
2018.02.18 20:41:16 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -1.88453221321106
2018.02.18 20:41:16 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -1.91278004646301
2018.02.18 20:41:16 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:16 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 54 for DC-Voltage-Scale (h40099), len 1, device KeSolarEdge (TCP), pdu 039ca30001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:16 5: SW: 00360000000601039ca30001
2018.02.18 20:41:16 5: KeSolarEdge: ReadAnswer called and remaining timeout is 1.99891805648804 requested reading is DC-Voltage-Scale
2018.02.18 20:41:16 5: KeSolarEdge: ReadAnswer got: 003600000005010302ffff
2018.02.18 20:41:16 5: KeSolarEdge: ParseFrames got: 003600000005010302ffff
2018.02.18 20:41:16 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 54, values ffffHeaderLen 2, ActualLen 2, request was for h40099 (DC-Voltage-Scale), len 1 for module KeSolarEdge
2018.02.18 20:41:16 5: KeSolarEdge: ParseObj called with ffff and start 40099, op read
2018.02.18 20:41:16 5: KeSolarEdge: ParseObj ObjInfo for h40099: reading=DC-Voltage-Scale, unpack=s>, expr=, format=, map=
2018.02.18 20:41:16 5: KeSolarEdge: ParseObj unpacked ffff with s> to hex 2d31 (-1)
2018.02.18 20:41:16 4: KeSolarEdge: ParseObj for DC-Voltage-Scale assigns -1
2018.02.18 20:41:16 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:16 5: KeSolarEdge: ReadAnswer done, reading is DC-Voltage-Scale, value: -1
2018.02.18 20:41:16 3: get KeSolarEdge DC-Voltage-Scale : -1
2018.02.18 20:41:16 1: readingsUpdate(KeSolarEdge,DC-Voltage,0) missed to call readingsBeginUpdate first.
2018.02.18 20:41:16 1: stacktrace:
2018.02.18 20:41:16 1:     main::readingsBulkUpdate            called by fhem.pl (4400)
2018.02.18 20:41:16 1:     main::readingsEndUpdate             called by ./FHEM/98_Modbus.pm (666)
2018.02.18 20:41:16 1:     main::Modbus_ParseObj               called by ./FHEM/98_Modbus.pm (963)
2018.02.18 20:41:16 1:     main::Modbus_ParseFrames            called by ./FHEM/98_Modbus.pm (1012)
2018.02.18 20:41:16 1:     main::Modbus_Read                   called by fhem.pl (3510)
2018.02.18 20:41:16 1:     main::CallFn                        called by fhem.pl (689)
2018.02.18 20:41:16 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj
2018.02.18 20:41:16 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest 0.0242378711700439
2018.02.18 20:41:16 4: KeSolarEdge: HandleSendQueue / CheckDelay commDelay (0.1) for KeSolarEdge not over, try again in 0.0242378711700439
2018.02.18 20:41:16 5: KeSolarEdge: handle queue check commDelay (0.1) for KeSolarEdge: rest -0.377182245254517
2018.02.18 20:41:16 5: KeSolarEdge: handle queue check sendDelay (0.1) for KeSolarEdge: rest -0.392017126083374
2018.02.18 20:41:16 5: KeSolarEdge: HandleSendQueue: finished delay checking, proceed with sending
2018.02.18 20:41:16 4: KeSolarEdge: HandleSendQueue sends fc 3 to id 1, tid 82 for AC-Volt-A (h40079), len 1, device KeSolarEdge (TCP), pdu 039c8f0001, V 3.7.3 - 22.12.2017
2018.02.18 20:41:16 5: SW: 00520000000601039c8f0001
2018.02.18 20:41:16 5: KeSolarEdge: raw read: 00520000000501030208f0
2018.02.18 20:41:16 5: KeSolarEdge: ParseFrames got: 00520000000501030208f0
2018.02.18 20:41:16 4: KeSolarEdge: ParseFrames got fcode 3 from 1, tid 82, values 08f0HeaderLen 2, ActualLen 2, request was for h40079 (AC-Volt-A), len 1 for module KeSolarEdge
2018.02.18 20:41:16 5: KeSolarEdge: ParseObj called with 08f0 and start 40079, op read
2018.02.18 20:41:16 5: KeSolarEdge: ParseObj ObjInfo for h40079: reading=AC-Volt-A, unpack=n, expr=$val / 10, format=, map=
2018.02.18 20:41:16 5: KeSolarEdge: ParseObj unpacked 08f0 with n to hex 32323838 (2288)
2018.02.18 20:41:16 5: KeSolarEdge: ParseObj evaluates expr for AC-Volt-A, val=2288, expr $val / 10
2018.02.18 20:41:16 5: KeSolarEdge: ParseObj eval result is 228.8
2018.02.18 20:41:16 4: KeSolarEdge: ParseObj for AC-Volt-A assigns 228.8
2018.02.18 20:41:16 5: KeSolarEdge: ParseFrames got 1 readings from ParseObj

ich bitte mir vor allem mit den Meldungen vom Typ:
2018.02.18 20:41:13 1: readingsUpdate(KeSolarEdge,AC-Power,0) missed to call readingsBeginUpdate firstzu helfen
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 18 Februar 2018, 21:36:47
Hallo BenMarloe,

Ich vermute das liegt am get im Userreading.
Du rufst innerhalb eines userReadings Fhem selbst mit einem get auf.
Das führt zu einem weiteren synchronen Modbus-Request, der gesendet wird, dann wird auf die Antwort gewartet, das Ergebnis geparsed und dann im Modul das Reading gesetzt. Das alles in einer Funktion, die gerade dabei ist Readings zu setzen. Mal abgesehen vom Timing und davon dass Fhem blockiert, bringt das vermutlich den internen Readings-Update-Mechanismus durcheinander. Statt dessen kannst Du mit ReadingsVal aber den aktuellen Wert eines Readings lesen.

Das Problem mit dem Wert und der Skalierung in getrennten Readings kenne ich.
Ich würde es ganz ohne userReadings über die Attribute von ModbusAttr machen.
Wenn Du z.B. Volt als Volt-RAW liest und per sortUpdate dafür sorgst, dass Volt-Scale immer danach gelesen wird, dann kannst Du in der expr für Volt-Scale nochmal prüfen, ob die beiden Werte auch gelesen wurden (readingsTimestamp) und dann innerhalb der expr readingsBulkUpdate aufrufen und ein neues Reading z.B. mit Namen Volt-Real erzeugen.
Das ganze läuft dann komplett asynchron und kann am Ende mit set saveAsModule als eigenes Fhem-Modul gespeichert werden. Dann kann man es ganz ohne zusätzliche Attribute und Code etc. verwenden.

Gruß
   Stefan

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 18 Februar 2018, 22:07:42
Hallo Stefan,

Das mit dem UserReading ist sicher richtig, mir ist nur bisher nichts besseres eingefallen.

Dein Vorschlag klingt insgesamt sehr gut. Allerdings brauche ich noch etwas Starthilfe.
* Wie bestimme ich die Reihenfolge in der die Queue aufgebaut wird, damit sortUpdate sie dann sortiert? Ist das Evtl. die Adresse der Register? Es scheint so.
* In der CommandRef finde ich "readingsBulkUpdate" nicht. Wie wird das verwendet? Wo lese ich das nach?
* Beschädigt "saveAsModule" möglicherweise mein anderes ModbusAttr? In der CommandRef steht was von
 "experimental"! Weißt Du da mehr?
*Wie erzeuge ich ein neues Reading in einer expr?

Gruß
BenMarloe
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: Butzel am 19 Februar 2018, 18:03:42
@Butzel:
ja, Du musst das um "define" und "dummy" an beiden Enden erweitern.
Das Sunspec suche ich naher mal
...
Danke für den Hinweis und die Bestätigung. Wenn der Wechselrichter seinen endgültigen Platz hat und endlich fest verdrahtet ist, werde ich das noch mal prüfen und weiter machen.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 19 Februar 2018, 20:58:12
Hallo BenMarloe,

* Wie bestimme ich die Reihenfolge in der die Queue aufgebaut wird, damit sortUpdate sie dann sortiert? Ist das Evtl. die Adresse der Register? Es scheint so.
so ist es.
Zitat
* In der CommandRef finde ich "readingsBulkUpdate" nicht. Wie wird das verwendet? Wo lese ich das nach?
https://wiki.fhem.de/wiki/DevelopmentModuleIntro#Readings
Zitat
* Beschädigt "saveAsModule" möglicherweise mein anderes ModbusAttr? In der CommandRef steht was von
 "experimental"! Weißt Du da mehr?
Es sollte nichts kaputt machen sondern ein neues File als /tmp/98_ModbusGen<name>.pm speichern.
Bisher haben es nur wenige Leute getestet bzw. ich habe kaum Feedback dazu bekommen. Deshalb ist der Zusatz "experimental" noch drin.
Probier es einfach mal ;-)
Zitat
*Wie erzeuge ich ein neues Reading in einer expr?
Durch Aufruf von readingsBulkUpdate. Im Wiki (die oben genannte URL) steht einiges mehr dazu.
Das readingBeginUpdate ist vom Modul vor Auswerten der expr schon gemacht und auch das readingsEndUpdate wird im Modul später selbst gemacht. In der Expr reicht deshalb das readingsBulkUpdate.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: flipkill am 19 Februar 2018, 22:01:02
Hallo zusammen,

ich habe auch einen Solaredge Wechselrichter. Modus über TCP ist aktiviert am Wechselrichter. Der Port ist offen hab ich per telnet gecheckt. Leider funktioniert aber etwas nicht ...

Was mache ich falsch? Das steht im Log:

2018.02.19 21:58:41 5: SolarEdgeModBus: GetUpdate called
2018.02.19 21:58:41 4: SolarEdgeModBus: update timer modified: will call GetUpdate in 30.0 seconds at 2018-02-19 21:59:11 - Interval 30
2018.02.19 21:58:41 5: SolarEdgeModBus: GetUpdate objects from attributes:
2018.02.19 21:58:41 5: SolarEdgeModBus: GetUpdate full object list:
2018.02.19 21:58:41 5: SolarEdgeModBus: GetUpdate tries to combine read commands
2018.02.19 21:58:41 5: SolarEdgeModBus: don't sort objList before sending requests
2018.02.19 21:59:04 3: 192.168.178.156:502 disconnected, waiting to reappear (SolarEdgeModBus)
2018.02.19 21:59:04 5: HttpUtils url=http://192.168.178.156:502/
2018.02.19 21:59:04 5: SolarEdgeModBus: Open callback: 192.168.178.156: Connection refused
2018.02.19 21:59:11 5: SolarEdgeModBus: GetUpdate called
2018.02.19 21:59:11 4: SolarEdgeModBus: update timer modified: will call GetUpdate in 30.0 seconds at 2018-02-19 21:59:41 - Interval 30
2018.02.19 21:59:11 5: SolarEdgeModBus: GetUpdate called, but device is disconnected

Gruß Jan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 19 Februar 2018, 22:44:49
Versuche den Solaredge Port 503 erneut zu aktivieren und die Verbindung innerhalb von 10 Minuten herzustellen. Ich habe sowas in irgendeiner Anleitung gelesen, aber nicht verifiziert. Sag Bitte Bescheid, falls das hilft oder trage es im Wiki ein.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 21 Februar 2018, 23:03:42
Hallo Stefan,

es scheint die Reihenfolge festzulegen hat das Problem gelöst. Ich habe (bisher) keine Ausfälle mehr auf dem Solaredge.
Leider spinnt jetzt der Zweirichtungszähler (aber das wäre Off-Topic)..

Danke für Deine Hilfe. Nächste Woche versuche ich vielleicht mal ein Modul zu machen. Wenn sich das einen Monat bewährt kommt es in Wiki.

Gruß
Ben
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 22 Februar 2018, 20:13:43
Hallo Ben,

das freut mich.
Wenn Du es noch weiter optimieren möchtest, dann kannst Du mit dev-h-combine die Anzahl der nötigen Requests reduzieren. Die meisten Geräte können recht viele Register mit einem Request gleichzeitig auslesen. Wie viele das sind steht entweder im Datenblatt des Geräts oder man muss es einfach ausprobieren.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 25 Februar 2018, 20:55:31
Hallo Stefan,

meine disconnects sind wieder da :-\ .

Device (wie es jetzt ist (Status geht leider noch nicht).
Save config ?
CUL_HM
DG
EG
EG_AZ
EG_Bad
EG_DZ
EG_Flur
EG_SZ
EG_WC
EG_WZ
EnOcean
Garten
Heizung
Keller
Lüften
Rolladen
Solar
SolarPV
SolarReport
Test
Unsorted
Z-System
icoEverything Everything
Logfile
Commandref
Remote doc
Edit files
Select style
Event monitor

Internals:
   BUSY       0
   DEF        1 30 192.168.178.36 TCP
   DEST       192.168.178.36:502
   DeviceName 192.168.178.36:502
   FD         5
   INTERVAL   1200
   IODev      KeSolarEdge
   LASTOPEN   1519586043.78641
   MODBUSID   1
   ModuleVersion 3.7.3 - 22.12.2017
   NAME       KeSolarEdge
   NOTIFYDEV  global
   NR         363
   NTFY_ORDER 50-KeSolarEdge
   PARTIAL   
   PROTOCOL   TCP
   REQUESTHEX 00450000000601039cab0001
   STATE      opened
   TRIGGERTIME 1519587119.6096
   TRIGGERTIME_FMT 2018-02-25 20:31:59
   TYPE       ModbusAttr
   devioLoglevel 3
   nextOpenDelay 60
   QUEUE:
   READINGS:
     2018-02-25 18:51:59   AC-Energy       708.877
     2018-02-25 19:51:59   AC-Energy-Scale 0
     2018-02-25 19:51:59   AC-Energy-Val   708877
     2018-02-25 18:51:59   AC-Power        0
     2018-02-25 19:51:59   AC-Power-Scale  0
     2018-02-25 19:51:59   AC-Power-Val    0
     2018-02-25 18:51:59   DC-Current      0
     2018-02-25 20:12:03   DC-Current-Scale -32768
     2018-02-25 19:51:59   DC-Current-Val  0
     2018-02-25 18:52:00   DC-Power        0
     2018-02-25 20:12:03   DC-Power-Scale  0
     2018-02-25 20:12:03   DC-Power-Val    0
     2018-02-25 18:51:59   DC-Voltage      0
     2018-02-25 20:12:03   DC-Voltage-Scale -1
     2018-02-25 20:12:03   DC-Voltage-Val  0
     2018-02-25 20:12:03   HeatSinkTemp    0
     2018-02-25 20:12:03   Status          2
     2018-02-25 20:14:03   state           opened
   defptr:
     1:
   gotReadings:
     Status     2
   helper:
     buffer     
     lid        1
     lrecv      1519585923.72258
     lsend      1519585923.71833
   lastRead:
     h40083     1519584719.63526
     h40084     1519584719.63797
     h40093     1519584719.74737
     h40095     1519584719.75008
     h40096     1519584719.75274
     h40097     1519585923.51158
     h40098     1519585923.51431
     h40099     1519585923.51698
     h40100     1519585923.51968
     h40101     1519585923.61828
     h40103     1519585923.62106
     h40107     1519585923.72636
Attributes:
   dev-h-combine 4
   dev-h-defPoll 1
   dev-h-defShowGet 1
   enableControlSet 1
   event-on-change-reading AC-Energy, AC-Power,DC-Current,DC-Power,DC-Voltage,HeatSinkTemp,Status,state
   event-on-update-reading AC-Energy,AC-Power
   maxTimeoutsToReconnect 3
   obj-h40083-reading AC-Power-Val
   obj-h40084-reading AC-Power-Scale
   obj-h40084-unpack s>
   obj-h40093-len 2
   obj-h40093-reading AC-Energy-Val
   obj-h40093-unpack l>
   obj-h40095-reading AC-Energy-Scale
   obj-h40096-reading DC-Current-Val
   obj-h40097-reading DC-Current-Scale
   obj-h40097-unpack s>
   obj-h40098-reading DC-Voltage-Val
   obj-h40099-reading DC-Voltage-Scale
   obj-h40099-unpack s>
   obj-h40100-reading DC-Power-Val
   obj-h40101-reading DC-Power-Scale
   obj-h40101-unpack s>
   obj-h40103-reading HeatSinkTemp
   obj-h40103-unpack s>
   obj-h40107-reading Status
   room       Solar,SolarPV,SolarReport
   sortUpdate 1
   stateFormat {sprintf("%.0f W; %.0f kWh",ReadingsVal("KeSolarEdge","AC-Power",0),ReadingsVal("KeSolarEdge","AC-Energy",0))}
   userReadings AC-Energy:(AC-Energy-Scale.*) {
  my $scale = ReadingsVal ("KeSolarEdge","AC-Energy-Scale",0);
  return (ReadingsVal ("KeSolarEdge","AC-Energy-Val",0) * ( 10 ** $scale) / 1000);;},
 
AC-Power:(AC-Power-Scale.*) {
 my $scale = ReadingsVal ("KeSolarEdge","AC-Power-Scale",0);
 return (ReadingsVal ("KeSolarEdge","AC-Power-Val",0) * ( 10 ** $scale));;},

DC-Power:(DC-Power-Scale.*) {
 my $scale = ReadingsVal ("KeSolarEdge","DC-Power-Scale",0);
 return (ReadingsVal ("KeSolarEdge","DC-Power-Val",0) * ( 10 ** $scale));;},
 
DC-Current:(DC-Current-Scale.*) {
 my $scale = ReadingsVal ("KeSolarEdge","DC-Current-Scale",0);
 return (ReadingsVal ("KeSolarEdge","DC-Current-Val",0) * ( 10 ** $scale));;},
 
DC-Voltage:(DC-Voltage-Scale.*) {
 my $scale = ReadingsVal ("KeSolarEdge","DC-Voltage-Scale",0);
 return (ReadingsVal ("KeSolarEdge","DC-Voltage-Val",0) * ( 10 ** $scale));;},
 
Zustand: (Status.*) {
   my $Zus = ReadingsVal("KeSolarEdge","Status",0);
   my $ret = ReadingsVal("KeSolarEdge","Zustand",0);
   if (($Zus == 2) and (InternalVal("KeSolarEdge","INTERVAL","") != 600)) {
     fhem("set KeSolarEdge interval 600");
     $ret = "Nachtmodus";
   }
   elseif  (InternalVal("KeSolarEdge","INTERVAL","") != 60) {
     fhem("set KeSolarEdge interval 60");
     $ret = "Tagmodus";
   }
   return ($ret);;
 }
   userattr   dev-h-combine dev-h-defPoll dev-h-defShowGet enableControlSet event-on-change-reading event-on-update-reading maxTimeoutsToReconnect obj-h40079-expr obj-h40079-reading obj-h40082-reading obj-h40082-unpack obj-h40083-reading obj-h40084-expr obj-h40084-reading obj-h40084-unpack obj-h40093-len obj-h40093-reading obj-h40093-unpack obj-h40094-poll obj-h40094-reading obj-h40095-reading obj-h40096-reading obj-h40097-reading obj-h40097-unpack obj-h40098-reading obj-h40099-reading obj-h40099-unpack obj-h40100-reading obj-h40101-reading obj-h40101-unpack obj-h40103-reading obj-h40103-unpack obj-h40107-reading obj-h40108-reading silentReconnect sortUpdate stateFormat userReadings verbose webCmdLabel
   verbose    1
   webCmdLabel {sprintf("AC-Energy %.3f",ReadingsVal("Solaredge","AC-Energy",0));;}

Disconnects in LogFile KeSolarEdge
2018-02-25_19:00:00 KeSolarEdge DISCONNECTED
2018-02-25_19:00:00 KeSolarEdge CONNECTED
2018-02-25_19:11:59 KeSolarEdge interval 1200
2018-02-25_19:13:53 KeSolarEdge DISCONNECTED
2018-02-25_19:13:53 KeSolarEdge CONNECTED
2018-02-25_19:15:53 KeSolarEdge DISCONNECTED
2018-02-25_19:15:53 KeSolarEdge CONNECTED
2018-02-25_19:17:53 KeSolarEdge DISCONNECTED
2018-02-25_19:17:53 KeSolarEdge CONNECTED
2018-02-25_19:19:53 KeSolarEdge DISCONNECTED
2018-02-25_19:19:53 KeSolarEdge CONNECTED
2018-02-25_19:21:53 KeSolarEdge DISCONNECTED
2018-02-25_19:21:53 KeSolarEdge CONNECTED
2018-02-25_19:23:53 KeSolarEdge DISCONNECTED
2018-02-25_19:23:53 KeSolarEdge CONNECTED
2018-02-25_19:25:53 KeSolarEdge DISCONNECTED
2018-02-25_19:25:53 KeSolarEdge CONNECTED
2018-02-25_19:27:53 KeSolarEdge DISCONNECTED
2018-02-25_19:27:53 KeSolarEdge CONNECTED
2018-02-25_19:29:53 KeSolarEdge DISCONNECTED
2018-02-25_19:29:53 KeSolarEdge CONNECTED
2018-02-25_19:31:53 KeSolarEdge DISCONNECTED
2018-02-25_19:31:53 KeSolarEdge CONNECTED
2018-02-25_19:34:00 KeSolarEdge DISCONNECTED
2018-02-25_19:34:00 KeSolarEdge CONNECTED
2018-02-25_19:36:00 KeSolarEdge DISCONNECTED
2018-02-25_19:36:00 KeSolarEdge CONNECTED
2018-02-25_19:38:00 KeSolarEdge DISCONNECTED
2018-02-25_19:38:00 KeSolarEdge CONNECTED
2018-02-25_19:40:00 KeSolarEdge DISCONNECTED
2018-02-25_19:40:00 KeSolarEdge CONNECTED
2018-02-25_19:42:00 KeSolarEdge DISCONNECTED
2018-02-25_19:42:00 KeSolarEdge CONNECTED
2018-02-25_19:44:00 KeSolarEdge DISCONNECTED
2018-02-25_19:44:00 KeSolarEdge CONNECTED
2018-02-25_19:46:00 KeSolarEdge DISCONNECTED
2018-02-25_19:46:00 KeSolarEdge CONNECTED
2018-02-25_19:48:00 KeSolarEdge DISCONNECTED
2018-02-25_19:48:00 KeSolarEdge CONNECTED
2018-02-25_19:50:00 KeSolarEdge DISCONNECTED
2018-02-25_19:50:00 KeSolarEdge CONNECTED
2018-02-25_19:54:00 KeSolarEdge DISCONNECTED
2018-02-25_19:54:00 KeSolarEdge CONNECTED
2018-02-25_19:56:00 KeSolarEdge DISCONNECTED
2018-02-25_19:56:00 KeSolarEdge CONNECTED
2018-02-25_19:58:00 KeSolarEdge DISCONNECTED
2018-02-25_19:58:00 KeSolarEdge CONNECTED
2018-02-25_20:11:59 KeSolarEdge DISCONNECTED
2018-02-25_20:11:59 KeSolarEdge CONNECTED
2018-02-25_20:12:01 KeSolarEdge DISCONNECTED
2018-02-25_20:12:01 KeSolarEdge CONNECTED
2018-02-25_20:14:03 KeSolarEdge DISCONNECTED
2018-02-25_20:14:03 KeSolarEdge CONNECTED
2018-02-25_20:16:03 KeSolarEdge DISCONNECTED
2018-02-25_20:16:03 KeSolarEdge CONNECTED
2018-02-25_20:18:03 KeSolarEdge DISCONNECTED
2018-02-25_20:18:03 KeSolarEdge CONNECTED
2018-02-25_20:20:03 KeSolarEdge DISCONNECTED
2018-02-25_20:20:03 KeSolarEdge CONNECTED
2018-02-25_20:22:03 KeSolarEdge DISCONNECTED
2018-02-25_20:22:03 KeSolarEdge CONNECTED
2018-02-25_20:24:03 KeSolarEdge DISCONNECTED
2018-02-25_20:24:03 KeSolarEdge CONNECTED
2018-02-25_20:26:03 KeSolarEdge DISCONNECTED
2018-02-25_20:26:04 KeSolarEdge CONNECTED
2018-02-25_20:28:04 KeSolarEdge DISCONNECTED
2018-02-25_20:28:04 KeSolarEdge CONNECTED
2018-02-25_18:54:00 KeSolarEdge DISCONNECTED
2018-02-25_18:54:00 KeSolarEdge CONNECTED
2018-02-25_18:56:00 KeSolarEdge DISCONNECTED
2018-02-25_18:56:00 KeSolarEdge CONNECTED
2018-02-25_18:58:00 KeSolarEdge DISCONNECTED
2018-02-25_18:58:00 KeSolarEdge CONNECTED
2018-02-25_18:59:52 KeSolarEdge interval 30
2018-02-25_19:00:00 KeSolarEdge DISCONNECTED
2018-02-25_19:00:00 KeSolarEdge CONNECTED
2018-02-25_19:11:59 KeSolarEdge interval 1200
2018-02-25_19:13:53 KeSolarEdge DISCONNECTED
2018-02-25_19:13:53 KeSolarEdge CONNECTED
2018-02-25_19:15:53 KeSolarEdge DISCONNECTED
2018-02-25_19:15:53 KeSolarEdge CONNECTED
2018-02-25_19:17:53 KeSolarEdge DISCONNECTED
2018-02-25_19:17:53 KeSolarEdge CONNECTED
2018-02-25_19:19:53 KeSolarEdge DISCONNECTED
2018-02-25_19:19:53 KeSolarEdge CONNECTED
2018-02-25_19:21:53 KeSolarEdge DISCONNECTED
2018-02-25_19:21:53 KeSolarEdge CONNECTED
2018-02-25_19:23:53 KeSolarEdge DISCONNECTED
2018-02-25_19:23:53 KeSolarEdge CONNECTED
2018-02-25_19:25:53 KeSolarEdge DISCONNECTED
2018-02-25_19:25:53 KeSolarEdge CONNECTED
2018-02-25_19:27:53 KeSolarEdge DISCONNECTED
2018-02-25_19:27:53 KeSolarEdge CONNECTED
2018-02-25_19:29:53 KeSolarEdge DISCONNECTED
2018-02-25_19:29:53 KeSolarEdge CONNECTED
2018-02-25_19:31:53 KeSolarEdge DISCONNECTED
2018-02-25_19:31:53 KeSolarEdge CONNECTED
2018-02-25_19:34:00 KeSolarEdge DISCONNECTED
2018-02-25_19:34:00 KeSolarEdge CONNECTED
2018-02-25_19:36:00 KeSolarEdge DISCONNECTED
2018-02-25_19:36:00 KeSolarEdge CONNECTED
2018-02-25_19:38:00 KeSolarEdge DISCONNECTED
2018-02-25_19:38:00 KeSolarEdge CONNECTED
2018-02-25_19:40:00 KeSolarEdge DISCONNECTED
2018-02-25_19:40:00 KeSolarEdge CONNECTED
2018-02-25_19:42:00 KeSolarEdge DISCONNECTED
2018-02-25_19:42:00 KeSolarEdge CONNECTED
2018-02-25_19:44:00 KeSolarEdge DISCONNECTED
2018-02-25_19:44:00 KeSolarEdge CONNECTED
2018-02-25_19:46:00 KeSolarEdge DISCONNECTED
2018-02-25_19:46:00 KeSolarEdge CONNECTED
2018-02-25_19:48:00 KeSolarEdge DISCONNECTED
2018-02-25_19:48:00 KeSolarEdge CONNECTED
2018-02-25_19:50:00 KeSolarEdge DISCONNECTED
2018-02-25_19:50:00 KeSolarEdge CONNECTED
2018-02-25_19:54:00 KeSolarEdge DISCONNECTED
2018-02-25_19:54:00 KeSolarEdge CONNECTED
2018-02-25_19:56:00 KeSolarEdge DISCONNECTED
2018-02-25_19:56:00 KeSolarEdge CONNECTED
2018-02-25_19:58:00 KeSolarEdge DISCONNECTED
2018-02-25_19:58:00 KeSolarEdge CONNECTED
2018-02-25_20:11:59 KeSolarEdge DISCONNECTED
2018-02-25_20:11:59 KeSolarEdge CONNECTED
2018-02-25_20:12:01 KeSolarEdge DISCONNECTED
2018-02-25_20:12:01 KeSolarEdge CONNECTED
2018-02-25_20:14:03 KeSolarEdge DISCONNECTED
2018-02-25_20:14:03 KeSolarEdge CONNECTED
2018-02-25_20:16:03 KeSolarEdge DISCONNECTED
2018-02-25_20:16:03 KeSolarEdge CONNECTED
2018-02-25_20:18:03 KeSolarEdge DISCONNECTED
2018-02-25_20:18:03 KeSolarEdge CONNECTED
2018-02-25_20:20:03 KeSolarEdge DISCONNECTED
2018-02-25_20:20:03 KeSolarEdge CONNECTED
2018-02-25_20:22:03 KeSolarEdge DISCONNECTED
2018-02-25_20:22:03 KeSolarEdge CONNECTED
2018-02-25_20:24:03 KeSolarEdge DISCONNECTED
2018-02-25_20:24:03 KeSolarEdge CONNECTED
2018-02-25_20:26:03 KeSolarEdge DISCONNECTED
2018-02-25_20:26:04 KeSolarEdge CONNECTED
2018-02-25_20:28:04 KeSolarEdge DISCONNECTED
2018-02-25_20:28:04 KeSolarEdge CONNECTED

Dazu was in fhem-log passiert
2018.02.25 19:40:00 3: 192.168.178.36:502 disconnected, waiting to reappear (KeSolarEdge)
2018.02.25 19:40:00 5: HttpUtils url=http://192.168.178.36:502/
2018.02.25 19:40:00 3: 192.168.178.36:502 reappeared (KeSolarEdge)
2018.02.25 19:42:00 3: 192.168.178.36:502 disconnected, waiting to reappear (KeSolarEdge)
2018.02.25 19:42:00 5: HttpUtils url=http://192.168.178.36:502/
2018.02.25 19:42:00 3: 192.168.178.36:502 reappeared (KeSolarEdge)
2018.02.25 19:44:00 3: 192.168.178.36:502 disconnected, waiting to reappear (KeSolarEdge)
2018.02.25 19:44:00 5: HttpUtils url=http://192.168.178.36:502/

Ich fürchte nur das hat garnichts mit dem SolarEdge zu tun, sondern ist ein anderes Problem.

Hilfe wird sehr begrüßt!

Gruß
Ben
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: StefanStrobel am 26 Februar 2018, 14:44:24
Hallo Ben,

Im Fhem-Log sieht das doch so aus, als ob ca alle 2 Minuten die Verbindung abbricht und sofort wieder aufgebaut wird.
Sofern das keine negativen Auswirkungen auf die Kommunikation hat, würde mich das nicht beunruhigen. Ich habe bei vielen Geräte gesehen, dass eine Modbus-TCP Verbindung automatisch nach x Sekunden beendet wird. Das ist eher normal. Fhem muss dann eben die Verbindung wieder aufbauen, was ja auch klappt. Um solche Meldungen aus dem Fhem-Log herauszuhalten gibt es das Attribut silentReconnect.
Falls aber die Werte nicht mehr abgefragt werden können, ist das ein weiteres Problem. Dann bräuchte ich allerdings einen Auszug aus dem Fhem Log bei dem die Modbus-Geräte auf verbose 5 stehen, damit man sieht was genau passiert.

Gruß
    Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: BenMarloe am 26 Februar 2018, 18:56:11
Hallo Stefan,

danke!
Das erklärt es für mich. Solange ich die Abfragen alle Minute mache tritt es nicht auf.

Kannst Du mir noch sagen, warum mein UserReading "Zustand" nicht geht? Es wird nie aufgerufen.

Gruß
Markus
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: BenMarloe am 06 April 2018, 23:02:59
Liebe Gemeinde,

geht jetzt so weit alles. Wer es nachbauen mag:
Internals:
   BUSY       0
   DEF        1 30 192.168.178.36 TCP
   DEST       192.168.178.36:502
   DeviceName 192.168.178.36:502
   FD         91
   INTERVAL   600
   IODev      KeSolarEdge
   LASTOPEN   1523044866.65275
   MODBUSID   1
   ModuleVersion 3.7.3 - 22.12.2017
   NAME       KeSolarEdge
   NOTIFYDEV  global
   NR         354
   NTFY_ORDER 50-KeSolarEdge
   PARTIAL   
   PROTOCOL   TCP
   REQUESTHEX 00270000000601039c940001
   STATE      0 W; 1718 kWh
   TRIGGERTIME 1523048587.13296
   TRIGGERTIME_FMT 2018-04-06 23:03:07
   TYPE       ModbusAttr
   devioLoglevel 4
   nextOpenDelay 60
   QUEUE:
   READINGS:
     2018-04-06 22:53:07   AC-Energy       1717.665
     2018-04-06 22:53:07   AC-Energy-Scale 0
     2018-04-06 22:53:07   AC-Energy-Val   1717665
     2018-04-06 22:58:10   AC-Power        0
     2018-04-06 22:58:10   AC-Power-Scale  0
     2018-04-06 22:58:10   AC-Power-Val    0
     2018-04-06 22:53:07   DC-Current      0
     2018-04-06 22:53:07   DC-Current-Scale -32768
     2018-04-06 22:53:07   DC-Current-Val  65535
     2018-04-06 22:53:07   DC-Power        0
     2018-04-06 22:53:07   DC-Power-Scale  0
     2018-04-06 22:53:07   DC-Power-Val    0
     2018-04-06 22:53:07   DC-Voltage      0
     2018-04-06 22:53:07   DC-Voltage-Scale -1
     2018-04-06 22:53:07   DC-Voltage-Val  0
     2018-04-06 22:53:07   HeatSinkTemp    0
     2018-04-06 22:53:07   Status          2
     2018-04-06 22:53:07   Zustand         Nachtmodus
     2018-04-06 22:01:06   state           opened
   defptr:
     1:
   gotReadings:
     AC-Power-Scale 0
   helper:
     buffer     
     lid        1
     lrecv      1523048290.49688
     lsend      1523048290.48976
   lastRead:
     h40083     1523048290.48193
     h40084     1523048290.50143
     h40093     1523047987.08669
     h40095     1523047987.09043
     h40096     1523047987.09428
     h40097     1523047987.09784
     h40098     1523047987.10153
     h40099     1523047987.10505
     h40100     1523047987.10867
     h40101     1523047987.11226
     h40103     1523047987.1158
     h40107     1523047987.11994
Attributes:
   dev-h-combine 200
   dev-h-defPoll 1
   dev-h-defShowGet 1
   enableControlSet 1
   event-on-change-reading .*
   event-on-update-reading AC-Energy,AC-Energy-Scale,AC-Power-Scale,DC-Voltage-Scale,DC-Current-Scale,DC-Power-Scale,Status
   maxTimeoutsToReconnect 3
   obj-h40083-reading AC-Power-Val
   obj-h40084-reading AC-Power-Scale
   obj-h40084-unpack s>
   obj-h40093-len 2
   obj-h40093-reading AC-Energy-Val
   obj-h40093-unpack l>
   obj-h40095-reading AC-Energy-Scale
   obj-h40096-reading DC-Current-Val
   obj-h40097-reading DC-Current-Scale
   obj-h40097-unpack s>
   obj-h40098-reading DC-Voltage-Val
   obj-h40099-reading DC-Voltage-Scale
   obj-h40099-unpack s>
   obj-h40100-reading DC-Power-Val
   obj-h40101-reading DC-Power-Scale
   obj-h40101-unpack s>
   obj-h40103-reading HeatSinkTemp
   obj-h40103-unpack s>
   obj-h40107-reading Status
   room       Solar,SolarPV,SolarReport
   silentReconnect 1
   sortUpdate 1
   stateFormat {sprintf("%.0f W; %.0f kWh",ReadingsVal("KeSolarEdge","AC-Power",0),ReadingsVal("KeSolarEdge","AC-Energy",0))}
   userReadings AC-Energy:(AC-Energy-Scale.*) {
  my $scale = ReadingsVal ("KeSolarEdge","AC-Energy-Scale",0);
  return (ReadingsVal ("KeSolarEdge","AC-Energy-Val",0) * ( 10 ** $scale) / 1000);;},
 
AC-Power:(AC-Power-Scale.*) {
 my $scale = ReadingsVal ("KeSolarEdge","AC-Power-Scale",0);
 return (ReadingsVal ("KeSolarEdge","AC-Power-Val",0) * ( 10 ** $scale));;},

DC-Power:(DC-Power-Scale.*) {
 my $scale = ReadingsVal ("KeSolarEdge","DC-Power-Scale",0);
 return (ReadingsVal ("KeSolarEdge","DC-Power-Val",0) * ( 10 ** $scale));;},
 
DC-Current:(DC-Current-Scale.*) {
 my $scale = ReadingsVal ("KeSolarEdge","DC-Current-Scale",0);
 return (ReadingsVal ("KeSolarEdge","DC-Current-Val",0) * ( 10 ** $scale));;},
 
DC-Voltage:(DC-Voltage-Scale.*) {
 my $scale = ReadingsVal ("KeSolarEdge","DC-Voltage-Scale",0);
 return (ReadingsVal ("KeSolarEdge","DC-Voltage-Val",0) * ( 10 ** $scale));;},
 
Zustand:(Status.*) {
   my $Zus = ReadingsVal("KeSolarEdge","Status",0);
   my $rueck = ReadingsVal("KeSolarEdge","Zustand",0);
   if (($Zus == 2) and (InternalVal("KeSolarEdge","INTERVAL","") != 600)) {
     fhem("set KeSolarEdge interval 600");
     $rueck = "Nachtmodus";
   }
   elsif  (InternalVal("KeSolarEdge","INTERVAL","") != 60) {
     fhem("set KeSolarEdge interval 60");
     $rueck = "Tagmodus";
   }
   return ($rueck);;
 }
   webCmdLabel {sprintf("AC-Energy %.3f",ReadingsVal("Solaredge","AC-Energy",0));;}
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
Beitrag von: Butzel am 09 Mai 2018, 14:51:30
Versuche den Solaredge Port 503 erneut zu aktivieren und die Verbindung innerhalb von 10 Minuten herzustellen....

Bei meinem SE5K ist es Port 502
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: BenMarloe am 21 Mai 2018, 22:29:05
stimmt natürlich. Danke
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 17 Juli 2018, 16:19:47
Hallo,

das ist jetzt vielleicht ein dumme Frage, aber funktioniert das ganze auch für andere Modelle (SE5000H) analog?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 03 September 2018, 17:00:40
Nachdem auch ich inzwischen meinen SE10K habe, musste der natürlich auch in FHEM eingebunden werden.

Allerdings war mir die Umsetzung von BenMarloe, die mir einen guten Startpunkt geliefert hat, etwas zu unvollständig und auch nicht nah genug an der SolarEdge-Dokumentation (die ihrerseits auch nicht ganz fehlerfrei zu sein scheint   ;D ).

Im Folgenden also die entsprechenden ModbusAttr-Attribute, wie ich sie umgesetzt habe:

attr <DEVICE-NAME> obj-h40000-len 4
attr <DEVICE-NAME> obj-h40000-reading C_SunSpec_ID
attr <DEVICE-NAME> obj-h40000-unpack (a4)
attr <DEVICE-NAME> obj-h40004-len 16
attr <DEVICE-NAME> obj-h40004-reading C_Manufacturer
attr <DEVICE-NAME> obj-h40004-unpack (a16)
attr <DEVICE-NAME> obj-h40020-len 16
attr <DEVICE-NAME> obj-h40020-reading C_Model
attr <DEVICE-NAME> obj-h40020-unpack (a16)
attr <DEVICE-NAME> obj-h40044-len 8
attr <DEVICE-NAME> obj-h40044-reading C_Version
attr <DEVICE-NAME> obj-h40044-unpack (a8)
attr <DEVICE-NAME> obj-h40052-len 16
attr <DEVICE-NAME> obj-h40052-reading C_SerialNumber
attr <DEVICE-NAME> obj-h40052-unpack (a16)
attr <DEVICE-NAME> obj-h40068-reading C_DeviceAddress
attr <DEVICE-NAME> obj-h40069-reading C_PhaseDesign
attr <DEVICE-NAME> obj-h40070-reading C_SunSpec_Length
attr <DEVICE-NAME> obj-h40071-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Current_SF',0))
attr <DEVICE-NAME> obj-h40071-reading I_AC_Current
attr <DEVICE-NAME> obj-h40072-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Current_SF',0))
attr <DEVICE-NAME> obj-h40072-reading I_AC_CurrentA
attr <DEVICE-NAME> obj-h40073-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Current_SF',0))
attr <DEVICE-NAME> obj-h40073-reading I_AC_CurrentB
attr <DEVICE-NAME> obj-h40074-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Current_SF',0))
attr <DEVICE-NAME> obj-h40074-reading I_AC_CurrentC
attr <DEVICE-NAME> obj-h40075-reading I_AC_Current_SF
attr <DEVICE-NAME> obj-h40075-unpack s>
attr <DEVICE-NAME> obj-h40076-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Voltage_SF',0))
attr <DEVICE-NAME> obj-h40076-reading I_AC_VoltageAB
attr <DEVICE-NAME> obj-h40077-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Voltage_SF',0))
attr <DEVICE-NAME> obj-h40077-reading I_AC_VoltageBC
attr <DEVICE-NAME> obj-h40078-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Voltage_SF',0))
attr <DEVICE-NAME> obj-h40078-reading I_AC_VoltageCA
attr <DEVICE-NAME> obj-h40079-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Voltage_SF',0))
attr <DEVICE-NAME> obj-h40079-reading I_AC_VoltageAN
attr <DEVICE-NAME> obj-h40080-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Voltage_SF',0))
attr <DEVICE-NAME> obj-h40080-reading I_AC_VoltageBN
attr <DEVICE-NAME> obj-h40081-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Voltage_SF',0))
attr <DEVICE-NAME> obj-h40081-reading I_AC_VoltageCN
attr <DEVICE-NAME> obj-h40082-reading I_AC_Voltage_SF
attr <DEVICE-NAME> obj-h40082-unpack s>
attr <DEVICE-NAME> obj-h40083-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Power_SF',0))
attr <DEVICE-NAME> obj-h40083-reading I_AC_Power
attr <DEVICE-NAME> obj-h40083-unpack s>
attr <DEVICE-NAME> obj-h40084-reading I_AC_Power_SF
attr <DEVICE-NAME> obj-h40084-unpack s>
attr <DEVICE-NAME> obj-h40085-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Frequency_SF',0))
attr <DEVICE-NAME> obj-h40085-reading I_AC_Frequency
attr <DEVICE-NAME> obj-h40086-reading I_AC_Frequency_SF
attr <DEVICE-NAME> obj-h40086-unpack s>
attr <DEVICE-NAME> obj-h40087-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_VA_SF',0))
attr <DEVICE-NAME> obj-h40087-reading I_AC_VA
attr <DEVICE-NAME> obj-h40087-unpack s>
attr <DEVICE-NAME> obj-h40088-reading I_AC_VA_SF
attr <DEVICE-NAME> obj-h40088-unpack s>
attr <DEVICE-NAME> obj-h40089-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_VAR_SF',0))
attr <DEVICE-NAME> obj-h40089-reading I_AC_VAR
attr <DEVICE-NAME> obj-h40089-unpack s>
attr <DEVICE-NAME> obj-h40090-reading I_AC_VAR_SF
attr <DEVICE-NAME> obj-h40090-unpack s>
attr <DEVICE-NAME> obj-h40091-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_PF_SF',0))
attr <DEVICE-NAME> obj-h40091-reading I_AC_PF
attr <DEVICE-NAME> obj-h40091-unpack s>
attr <DEVICE-NAME> obj-h40092-reading I_AC_PF_SF
attr <DEVICE-NAME> obj-h40092-unpack s>
attr <DEVICE-NAME> obj-h40093-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Energy_WH_SF',0))
attr <DEVICE-NAME> obj-h40093-len 2
attr <DEVICE-NAME> obj-h40093-reading I_AC_Energy_WH
attr <DEVICE-NAME> obj-h40093-unpack I>
attr <DEVICE-NAME> obj-h40095-reading I_AC_Energy_WH_SF
attr <DEVICE-NAME> obj-h40096-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_DC_Current_SF',0))
attr <DEVICE-NAME> obj-h40096-reading I_DC_Current
attr <DEVICE-NAME> obj-h40097-reading I_DC_Current_SF
attr <DEVICE-NAME> obj-h40097-unpack s>
attr <DEVICE-NAME> obj-h40098-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_DC_Voltage_SF',0))
attr <DEVICE-NAME> obj-h40098-reading I_DC_Voltage
attr <DEVICE-NAME> obj-h40099-reading I_DC_Voltage_SF
attr <DEVICE-NAME> obj-h40099-unpack s>
attr <DEVICE-NAME> obj-h40100-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_DC_Power_SF',0))
attr <DEVICE-NAME> obj-h40100-reading I_DC_Power
attr <DEVICE-NAME> obj-h40100-unpack s>
attr <DEVICE-NAME> obj-h40101-reading I_DC_Power_SF
attr <DEVICE-NAME> obj-h40101-unpack s>
attr <DEVICE-NAME> obj-h40103-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_Temp_SF',0))
attr <DEVICE-NAME> obj-h40103-reading I_Temp_Sink
attr <DEVICE-NAME> obj-h40103-unpack s>
attr <DEVICE-NAME> obj-h40106-reading I_Temp_SF
attr <DEVICE-NAME> obj-h40106-unpack s>
attr <DEVICE-NAME> obj-h40107-reading I_Status
attr <DEVICE-NAME> obj-h40108-reading I_Status_Vendor

Zusätzlich habe ich noch 2 userReadings definiert, die eine textliche Umsetzung für I_Status und C_PhaseDesign vornehmen. Ja, das hätte man natürlich auch direkt als mapping im ModbusAttr machen können. Aber vielleicht eignen sich die originalen Werte an anderer Stelle besser für irgendwelche Auswertungen.  ;)

Im Anhang außerdem noch die angepasste Registerbeschreibung als PDF-Dokument, analog zur SolarEdge-Doku.

Das ganze habe ich außerdem auch soim entsprechenden Wiki-Artikel (https://wiki.fhem.de/wiki/SolarEdge_SE10k#SunSpec_.28SolarEdge.29) eingetragen.

Enjoy!  :D

gb#
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: BenMarloe am 05 September 2018, 20:25:56
Hallo Benni,
freut mich, wenn meine Vorarbeit nützlich war. Danke dass Du Deine Erkenntnisse veröffentlichst.Wie hast Du das Problem gelöst, dass Wert und Skalierung auf zwei verschienden Registern kommen und gelegentlich nicht gleichzeitig geändert werden, obwohl das nötig wäre?
GrußBenMarloe
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 05 September 2018, 20:32:00
Wie hast Du das Problem gelöst, dass Wert und Skalierung auf zwei verschienden Registern kommen und gelegentlich nicht gleichzeitig geändert werden, obwohl das nötig wäre?

Hmm, das habe ich eigentlich noch gar nicht als Problem betrachtet.  :-[
Ich bin bisher davon ausgegangen, dass der Skalierungsfaktor im wesentlichen konstant ist.
Muss auch zugeben, dass mein Beobachtungszeitraum jetzt noch nicht so lange ist :)

Ansonsten fällt mir da auf anhieb auch erst mal gar keine Lösung dazu ein. Wenn die geänderten Werte nicht zeitgleich mit passender Änderung über die Schnittstelle geliefert werden hat man eigentlich keine Chance.

gb#
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: maci am 14 September 2018, 10:13:52
Bei ist seit kurzem auch ein SolarEdge Wechselrichter im Einsatz.
Er ist allerdings noch nicht in vollständigen Betrieb, da ein SolarEdge Leistungsoptimierer defekt ist.

Der Wechselrichter ist eingeschaltet. Ich habe mir diesen auch bereits in FHEM mit ModBus über Port 502 eingerichtet.
Das Device meldet auch opened.
Allerdings bekomme ich keine Readings geliefert.
Könnte es daran liegen, weil der Wechselrichter noch nicht wirklich arbeitet?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 14 September 2018, 12:05:33
Könnte es daran liegen, weil der Wechselrichter noch nicht wirklich arbeitet?

Nein, das sollte trotzdem gehen.
Poste doch mal bitte noch ein list des devices.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: maci am 14 September 2018, 13:16:08
Hier mein Device List:
Internals:
   BUSY       0
   DEF        1 30 10.0.0.211 TCP
   DEST       10.0.0.211:502
   DeviceName 10.0.0.211:502
   FD         5
   INTERVAL   30
   IODev      SolarEdge
   LASTOPEN   1536923580.83647
   MODBUSID   1
   ModuleVersion 3.7.3 - 22.12.2017
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         297
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TRIGGERTIME 1536923702.67301
   TRIGGERTIME_FMT 2018-09-14 13:15:02
   TYPE       ModbusAttr
   devioLoglevel 3
   nextOpenDelay 60
   READINGS:
     2018-09-14 13:13:00   state           opened
   defptr:
     1:
   helper:
     buffer     
Attributes:
   DbLogExclude .*
   room       3.02_PV-Anlage
   userattr   DbLogExclude
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 14 September 2018, 16:49:37
Hier mein Device List:

Da fehlen ja doch die ganzen Attribute!
(siehe weiter oben (https://forum.fhem.de/index.php/topic,80767.msg832938.html#msg832938), bzw. im Wiki (https://wiki.fhem.de/wiki/SolarEdge_SE10k#SunSpec_.28SolarEdge.29))

ohne die gibt's natürlich keine Readings
(siehe dazu die Commandref zum ModbusAttr-Modul (https://fhem.de/commandref.html#ModbusAttr) unter "Configuration of the module")

gb#
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: maci am 14 September 2018, 18:56:51
Danke, war ich wieder mal zu eilig.

Jetzt kommen Werte.

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: maci am 23 September 2018, 20:54:58
Meine Kleine Anlage (Balkongeländer) mit dem SolarEdge Wechselrichter ist nun in Betrieb.
Seit ein paar Tagen sammle ich Erfahrungswerte in FHEM damit.

Was mir aber auffällt ist immer am Schluß des Tages, ein sprunghaftes Ansteigen der Tageswerte.
zB heute (Regentag) ein Logauszug:
2018-09-23 17:49:36 dum_pv_energytoday DUMMY state: 1.47 state 1.47
2018-09-23 17:50:37 dum_pv_energytoday DUMMY state: 1.47 state 1.47
2018-09-23 17:51:38 dum_pv_energytoday DUMMY state: 1.47 state 1.47
2018-09-23 17:52:39 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 17:53:39 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 17:54:40 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 17:55:41 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 17:56:42 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 17:57:43 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 17:58:44 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 17:59:45 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 18:00:46 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 18:01:47 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 18:02:47 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 18:03:48 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 18:04:49 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 18:05:51 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 18:06:52 dum_pv_energytoday DUMMY state: 1.48 state 1.48
2018-09-23 18:07:52 dum_pv_energytoday DUMMY state: 2.02 state 2.02
2018-09-23 18:08:53 dum_pv_energytoday DUMMY state: 2.02 state 2.02
2018-09-23 18:09:54 dum_pv_energytoday DUMMY state: 2.02 state 2.02
2018-09-23 18:10:55 dum_pv_energytoday DUMMY state: 2.02 state 2.02
Man beachte die letzten Einträge.

Dies ist auch in den vorherigen Tagen so.

Ich habe leider noch keinen Webzugang zu meinen Wechselrichter bekommen (muß vom Solarteur kommen).
Hier könnte ich die Werte überprüfen.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 03 Oktober 2018, 16:21:38
Ich habe meinen SolarEdge Wechselrichter nun auch eingerichtet und kann viele Werte auslesen. Die Bedeutung der Werte ist mir aber noch nicht ganz klar.

I_AC_Power: Aktuelle Produktion der Solaranlage
I_AC_Energy_WH: Gesamtproduktion der Solaranlage

Was genau ist DC_Power? Handelt es sich um die von AC umgewandelte Leistung für den Verbrauch im Haus?

Am Wechelrichter selbst kann ich außerdem den gesamten Verbrauch sowie die Einspeisung bzw. die zusätzlich aus dem Netz bezogene Energie sehen. Kann ich das auch per Modbus irgendwie auslesen oder berechnen?

Außerdem kann ich am Wechselrichter auch die Produktion für den aktuellen Tag/Monat/Jahr sehen. Kann ich das auch auslesen oder muss ich die Werte dazu selbst mitloggen von I_AC_Energy_WH ausgehend?



Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 03 Oktober 2018, 20:56:00
Was genau ist DC_Power? Handelt es sich um die von AC umgewandelte Leistung für den Verbrauch im Haus?

Die DC-Werte sind die Gleichstromwerte, als alles was vor der Umwandlung ist, sprich das was von der Photovoltaikanlage geliefert wird (Die Solar-Panels liefern Gleichstrom).

Am Wechelrichter selbst kann ich außerdem den gesamten Verbrauch sowie die Einspeisung bzw. die zusätzlich aus dem Netz bezogene Energie sehen. Kann ich das auch per Modbus irgendwie auslesen oder berechnen?

Leider nein!
Ich habe bei mir zusätzlich noch eine Sonnenbatterie im Einsatz. Von der bekomme ich aber die Werte zu Einspeisung und Verbrauch.


Außerdem kann ich am Wechselrichter auch die Produktion für den aktuellen Tag/Monat/Jahr sehen. Kann ich das auch auslesen oder muss ich die Werte dazu selbst mitloggen von I_AC_Energy_WH ausgehend?

Auch diese Werte kommen nicht über Modbus. Evtl. lassen sich die aber über das SolarEdge-Portal auslesen. Damit habe ich mich aber noch nicht beschäftigt.
Ansonsten ja: Selbst loggen und berechnen.

gb#
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 03 Oktober 2018, 21:14:11
Die DC-Werte sind die Gleichstromwerte, als alles was vor der Umwandlung ist, sprich das was von der Photovoltaikanlage geliefert wird (Die Solar-Panels liefern Gleichstrom).

Danke, da hatte ich meinem Post beide Werte verwechselt. Macht so natürlich mehr Sinn.

Leider nein!
Ich habe bei mir zusätzlich noch eine Sonnenbatterie im Einsatz. Von der bekomme ich aber die Werte zu Einspeisung und Verbrauch.

Auch diese Werte kommen nicht über Modbus. Evtl. lassen sich die aber über das SolarEdge-Portal auslesen. Damit habe ich mich aber noch nicht beschäftigt.
Ansonsten ja: Selbst loggen und berechnen.

gb#

Ok die kumulierten Werte werde ich mir dann selbst mitloggen. Dass die Einspeisung etc. nicht sichtbar ist finde ich sehr schade, davon war ich eigentlich ausgegangen. Den Weg übers SolarEdge Portal wollte ich vermeiden, um die Werte schneller und zuverlässiger direkt vom Wechselrichter auslesen zu können.

Eine Batterie habe ich aktuell nicht, ich werde mal schauen ob ich aus dem Stromzähler diese Werte auslesen kann und sonst doch übers SolarEdge Webportal gehen.

Vielen Dank Für die Hinweise sowie die ausführliche Beschreibung!
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: maci am 04 Oktober 2018, 06:19:21
Dass die Einspeisung etc. nicht sichtbar ist finde ich sehr schade, davon war ich eigentlich ausgegangen.

Die Einspeisung kannst du am Wechselrichter nicht sehen, denn nach dem Wechselrichter ist ja noch dein Hausnetz.
Wieviel du einspeist kannst am Stromzähler ablesen. Nur da bekommst du den richtigen Wert.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 04 Oktober 2018, 06:22:43
Wenn ich das richtig gesehen habe (bin aktuell nicht vor Ort) ist der Stromzähler mit dem Wechselrichter verbunden und auf dem Display wird angezeigt, wie viel Strom vom Haus verbraucht wird sowie die Einspeisung.

Ich werde demnächst versuchen, diese Werte aus dem Stromzähler direkt auszulesen, da bin ich ja direkt an der Quelle.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 04 Oktober 2018, 08:12:11
Wenn ich das richtig gesehen habe (bin aktuell nicht vor Ort) ist der Stromzähler mit dem Wechselrichter verbunden und auf dem Display wird angezeigt, wie viel Strom vom Haus verbraucht wird sowie die Einspeisung.

Normalerweise müsste der Wechselrichter seine Informationen über ein Leistungsmessgerät bekommen, das ebenfalls im Schaltschrank verbaut ist, nicht vom Stromzähler direkt.
Allerdings stellt der WR die Werte nicht per Modbus zur Verfügung.
Bei mir erhalte ich die Werte vom LMG über das API der Sonnenbatterie zur Auswertung. Die wiederum sind aber leider nicht hundertprozentig mit den Ist-Daten des Stromzählers synchron, deshalb bin ich bei mir gerade auch daran, den Zweirichtungszähler direkt auswerten zu wollen. Dafür kannst du dir ja mal das Volkszähler-Projekt (http://xn--volkszhler-v5a.org/) anschauen.
Oder falls dein Stromzähler kompatibel ist, die Homematic-Lösung (https://www.elv.de/homematic-energie-sensor-fuer-smart-meter-es-iec-komplettbausatz.html). Die HM-Variante  war bei meinem Zähler leider nicht kompatibel, daher hätte ich sogar sowohl den ES-IEC, als auch die zugehörigen HM-Zählersensor Sendeeinheit (https://www.elv.de/homematic-zaehlersensor-strom-gas-bausatz.html) abzugeben.

gb#
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 06 Oktober 2018, 16:24:56
Hallo Benni,
freut mich, wenn meine Vorarbeit nützlich war. Danke dass Du Deine Erkenntnisse veröffentlichst.Wie hast Du das Problem gelöst, dass Wert und Skalierung auf zwei verschienden Registern kommen und gelegentlich nicht gleichzeitig geändert werden, obwohl das nötig wäre?
GrußBenMarloe

Ich hatte das gleiche Problem (mit Bennis Definition), dass der Scaling Factor erst 1-2s nach dem eigentlichen Wert aktualisiert wurde. Bis zum nächsten Update war der Wert also um den Faktor 10 zu hoch oder zu niedrig, was vor allem in den Fraphen auffällt.

Ich habe es nun so gelöst, dass ich die Berechnung von I_AC_Power ausschließlich durch ein Update des Readings I_AC_Power_SF triggere. Dann ist der eigentliche Wert bereits aktualisiert worden.

So ähnlich hattest du es auch gemacht oder?

Kann man die Reihenfolge, in welcher die Readings per Modbus gelesen warden, selbst festlegen? Dann könnte man ja einfach vorgeben, dass die Scaling Factors zuerst gelesen werden sollen.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 06 Oktober 2018, 17:39:03
Hallo,

mit dem Attribut sortUpdate kann man erreichen, dass die Register in aufsteigender Reihenfolge abgefragt werden.
In Eurem Fall müsste aber der Scale-Wert zuerst gelesen werden und der kommt ja so wie ich es verstanden habe nach dem eigentlichen Wert.
Wenn man es genau nimmt, müsste man sogar beide Register zusammen auslesen, sonst könnte sich die Skalierung genau zwischen dem Lesen der Skalierung und des Wertes ändern...

Ein ganz anderer Lösungsansatz wäre dass man nicht mehr ein Reading für h40083 (Power) und eines für h40084(Scale) verwendet, sondern h40083 mit len 2 ausliest und in der h40083-expr selbst die beiden Werte auseinanderpflückt (mit unpack) und dann daraus den korrekten Wert berechnet.
Dann wird beides immer korrekt zusammen gelesen und die Umrechnung findet über die Perl-Expression direkt beim Lesen statt.

Gruss
   Stefan


Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 13 Oktober 2018, 21:13:10
Hallo,

um Euch das mit dem Scale/Wert zu erleichtern, habe ich in der neuen Version des Modbus-Moduls eine Kleinigkeit geändert:
in den expr-Attributen steht künftig der Wert nach dem unpack nicht nur als $val sondern auch als @val zu Verfügung.
In diesem Array stehen mehrere Werte, wenn der unpack mehrere Werte erzeugt.

Beispiel:
attr MBETest obj-h801-reading test1
attr MBETest obj-h801-len 2
attr MBETest obj-h801-unpack s>s>
attr MBETest obj-h801-expr "$val[0] $val[1]"

Durch len 2 werden zwei Register gleichzeitig (im Beispiel 801 und 802) gelesen.
Der unpack-Code s>s> erzeugt zwei Werte im Array @val. 801 steht dann in $val[0] und 802 in $val[1].
In der Expr werden die Werte dann zusammengebaut (hier nur mit einem Space verkettet, in Eurem Fall vermutlich irgendwie mit Zehnerpotenzen multimpliziert).

Die neue Version ist in diesem Thread:
https://forum.fhem.de/index.php/topic,75638.135.html

Gruss
  Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 15 Oktober 2018, 09:46:02
Hallo Stefan,

das klingt ja gut!
Mal sehen, ob ich heute noch dazu komme ...

Vielen Dank!

gb#
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 15 Oktober 2018, 23:38:33
Hallo,

ich habe mal die Modbus-Register vom SolarEdge in ein Modul gepackt. Hatte ich schon lange vor. Ich habe einen SolarEdge SE5K .
Die Ports sind etwas anders, weil die RS485 Schnittstelle über einen USR-TCP232-T24 (https://www.usriot.com/download/T24/USR-TCP232-T24-EN%20V3.2.5.pdf) angebunden ist. Mein SE5K hat noch nicht ModBus TCP.

2 Sachen passen beim neuen Modul noch nicht.

I_AC_Energie_WH 67633426.000000 Wh  ist falsch, finde den Fehler nicht. richtig ist 17957.90 kWh

C_SunSpec_ID nSSu  ist falsch herrum  -> SunS ist richtig

Hier mal 2 Logs zum vergleichen ist ein SolarEdge WS nur über 2 weg ausgelsen.

1. hier der Log vom über "defmod PWP ModbusAttr 3 60 192.168.2.7:20108 RTU" angelegten SolarEdge (I_AC_Energie_WH = 17957.90 kWh):
2018.10.15 23:31:59.094 4: PWP: ParseObj for I_AC_Strom_SF assigns 65534
2018.10.15 23:31:59.095 5: PWP: ParseObj moves to next object, skip 1 to h76
2018.10.15 23:31:59.095 5: PWP: ParseObj has no information about parsing h76
2018.10.15 23:31:59.095 5: PWP: ParseObj moves to next object, skip 1 to h77
2018.10.15 23:31:59.095 5: PWP: ParseObj has no information about parsing h77
2018.10.15 23:31:59.096 5: PWP: ParseObj moves to next object, skip 1 to h78
2018.10.15 23:31:59.096 5: PWP: ParseObj has no information about parsing h78
2018.10.15 23:31:59.096 5: PWP: ParseObj moves to next object, skip 1 to h79
2018.10.15 23:31:59.096 5: PWP: ParseObj has no information about parsing h79
2018.10.15 23:31:59.097 5: PWP: ParseObj moves to next object, skip 1 to h80
2018.10.15 23:31:59.097 5: PWP: ParseObj has no information about parsing h80
2018.10.15 23:31:59.097 5: PWP: ParseObj moves to next object, skip 1 to h81
2018.10.15 23:31:59.097 5: PWP: ParseObj has no information about parsing h81
2018.10.15 23:31:59.098 5: PWP: ParseObj moves to next object, skip 1 to h82
2018.10.15 23:31:59.098 5: PWP: ParseObj has no information about parsing h82
2018.10.15 23:31:59.098 5: PWP: ParseObj moves to next object, skip 1 to h83
2018.10.15 23:31:59.100 5: PWP: ParseObj ObjInfo for h83: reading=I_AC_Leistung_W, unpack=n, expr=, format=, map=
2018.10.15 23:31:59.100 5: PWP: ParseObj unpacked 00000000138bfffe000000000000000000000000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.101 4: PWP: ParseObj for I_AC_Leistung_W assigns 0
2018.10.15 23:31:59.101 5: PWP: ParseObj moves to next object, skip 1 to h84
2018.10.15 23:31:59.103 5: PWP: ParseObj ObjInfo for h84: reading=I_AC_Leistung_SF, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.103 5: PWP: ParseObj unpacked 0000138bfffe000000000000000000000000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.103 5: PWP: ParseObj evaluates expr for I_AC_Leistung_SF, val=0, expr $val
2018.10.15 23:31:59.104 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.104 4: PWP: ParseObj for I_AC_Leistung_SF assigns 0
2018.10.15 23:31:59.105 5: PWP: ParseObj moves to next object, skip 1 to h85
2018.10.15 23:31:59.106 5: PWP: ParseObj ObjInfo for h85: reading=I_AC_Frequenz_Hz, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.107 5: PWP: ParseObj unpacked 138bfffe000000000000000000000000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 35303033 (5003)
2018.10.15 23:31:59.107 5: PWP: ParseObj evaluates expr for I_AC_Frequenz_Hz, val=5003, expr $val
2018.10.15 23:31:59.107 5: PWP: ParseObj eval result is 5003
2018.10.15 23:31:59.108 4: PWP: ParseObj for I_AC_Frequenz_Hz assigns 5003
2018.10.15 23:31:59.108 5: PWP: ParseObj moves to next object, skip 1 to h86
2018.10.15 23:31:59.110 5: PWP: ParseObj ObjInfo for h86: reading=I_AC_Frequenz_SF, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.110 5: PWP: ParseObj unpacked fffe000000000000000000000000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 3635353334 (65534)
2018.10.15 23:31:59.110 5: PWP: ParseObj evaluates expr for I_AC_Frequenz_SF, val=65534, expr $val
2018.10.15 23:31:59.111 5: PWP: ParseObj eval result is 65534
2018.10.15 23:31:59.111 4: PWP: ParseObj for I_AC_Frequenz_SF assigns 65534
2018.10.15 23:31:59.111 5: PWP: ParseObj moves to next object, skip 1 to h87
2018.10.15 23:31:59.113 5: PWP: ParseObj ObjInfo for h87: reading=I_AC_VA, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.113 5: PWP: ParseObj unpacked 000000000000000000000000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.114 5: PWP: ParseObj evaluates expr for I_AC_VA, val=0, expr $val
2018.10.15 23:31:59.114 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.114 4: PWP: ParseObj for I_AC_VA assigns 0
2018.10.15 23:31:59.115 5: PWP: ParseObj moves to next object, skip 1 to h88
2018.10.15 23:31:59.116 5: PWP: ParseObj ObjInfo for h88: reading=I_AC_VA_SF, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.117 5: PWP: ParseObj unpacked 00000000000000000000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.117 5: PWP: ParseObj evaluates expr for I_AC_VA_SF, val=0, expr $val
2018.10.15 23:31:59.117 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.118 4: PWP: ParseObj for I_AC_VA_SF assigns 0
2018.10.15 23:31:59.118 5: PWP: ParseObj moves to next object, skip 1 to h89
2018.10.15 23:31:59.120 5: PWP: ParseObj ObjInfo for h89: reading=I_AC_VAR, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.120 5: PWP: ParseObj unpacked 0000000000000000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.120 5: PWP: ParseObj evaluates expr for I_AC_VAR, val=0, expr $val
2018.10.15 23:31:59.121 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.121 4: PWP: ParseObj for I_AC_VAR assigns 0
2018.10.15 23:31:59.121 5: PWP: ParseObj moves to next object, skip 1 to h90
2018.10.15 23:31:59.123 5: PWP: ParseObj ObjInfo for h90: reading=I_AC_VAR_SF, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.124 5: PWP: ParseObj unpacked 000000000000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.124 5: PWP: ParseObj evaluates expr for I_AC_VAR_SF, val=0, expr $val
2018.10.15 23:31:59.124 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.124 4: PWP: ParseObj for I_AC_VAR_SF assigns 0
2018.10.15 23:31:59.125 5: PWP: ParseObj moves to next object, skip 1 to h91
2018.10.15 23:31:59.127 5: PWP: ParseObj ObjInfo for h91: reading=I_AC_PF_Prozent, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.127 5: PWP: ParseObj unpacked 00000000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.127 5: PWP: ParseObj evaluates expr for I_AC_PF_Prozent, val=0, expr $val
2018.10.15 23:31:59.128 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.128 4: PWP: ParseObj for I_AC_PF_Prozent assigns 0
2018.10.15 23:31:59.128 5: PWP: ParseObj moves to next object, skip 1 to h92
2018.10.15 23:31:59.130 5: PWP: ParseObj ObjInfo for h92: reading=I_AC_PF_SF, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.130 5: PWP: ParseObj unpacked 0000011204080000ffff800000000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.131 5: PWP: ParseObj evaluates expr for I_AC_PF_SF, val=0, expr $val
2018.10.15 23:31:59.131 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.131 4: PWP: ParseObj for I_AC_PF_SF assigns 0
2018.10.15 23:31:59.132 5: PWP: ParseObj moves to next object, skip 1 to h93
2018.10.15 23:31:59.133 5: PWP: ParseObj ObjInfo for h93: reading=I_AC_Energie_WH_kWh, unpack=l>, expr=$val / 1000, format=%.2f, map=
2018.10.15 23:31:59.134 5: PWP: ParseObj unpacked 011204080000ffff800000000000000000008000000080008000fffe0002 with l> to hex 3137393537383936 (17957896)
2018.10.15 23:31:59.134 5: PWP: ParseObj evaluates expr for I_AC_Energie_WH_kWh, val=17957896, expr $val / 1000
2018.10.15 23:31:59.134 5: PWP: ParseObj eval result is 17957.896
2018.10.15 23:31:59.135 5: PWP: ParseObj for I_AC_Energie_WH_kWh does sprintf with format %.2f value is 17957.896
2018.10.15 23:31:59.135 5: PWP: ParseObj for I_AC_Energie_WH_kWh sprintf result is 17957.90
2018.10.15 23:31:59.135 4: PWP: ParseObj for I_AC_Energie_WH_kWh assigns 17957.90
2018.10.15 23:31:59.136 5: PWP: ParseObj moves to next object, skip 2 to h95
2018.10.15 23:31:59.137 5: PWP: ParseObj ObjInfo for h95: reading=I_AC_Energie_WH_SF, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.138 5: PWP: ParseObj unpacked 0000ffff800000000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.138 5: PWP: ParseObj evaluates expr for I_AC_Energie_WH_SF, val=0, expr $val
2018.10.15 23:31:59.138 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.138 4: PWP: ParseObj for I_AC_Energie_WH_SF assigns 0
2018.10.15 23:31:59.139 5: PWP: ParseObj moves to next object, skip 1 to h96
2018.10.15 23:31:59.141 5: PWP: ParseObj ObjInfo for h96: reading=I_DC_Strom_A, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.141 5: PWP: ParseObj unpacked ffff800000000000000000008000000080008000fffe0002 with n to hex 3635353335 (65535)
2018.10.15 23:31:59.141 5: PWP: ParseObj evaluates expr for I_DC_Strom_A, val=65535, expr $val
2018.10.15 23:31:59.142 5: PWP: ParseObj eval result is 65535
2018.10.15 23:31:59.142 4: PWP: ParseObj for I_DC_Strom_A assigns 65535
2018.10.15 23:31:59.142 5: PWP: ParseObj moves to next object, skip 1 to h97
2018.10.15 23:31:59.144 5: PWP: ParseObj ObjInfo for h97: reading=I_DC_Strom_SF, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.144 5: PWP: ParseObj unpacked 800000000000000000008000000080008000fffe0002 with n to hex 3332373638 (32768)
2018.10.15 23:31:59.145 5: PWP: ParseObj evaluates expr for I_DC_Strom_SF, val=32768, expr $val
2018.10.15 23:31:59.145 5: PWP: ParseObj eval result is 32768
2018.10.15 23:31:59.145 4: PWP: ParseObj for I_DC_Strom_SF assigns 32768
2018.10.15 23:31:59.146 5: PWP: ParseObj moves to next object, skip 1 to h98
2018.10.15 23:31:59.147 5: PWP: ParseObj ObjInfo for h98: reading=I_DC_Spannung_V, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.148 5: PWP: ParseObj unpacked 00000000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.148 5: PWP: ParseObj evaluates expr for I_DC_Spannung_V, val=0, expr $val
2018.10.15 23:31:59.148 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.149 4: PWP: ParseObj for I_DC_Spannung_V assigns 0
2018.10.15 23:31:59.149 5: PWP: ParseObj moves to next object, skip 1 to h99
2018.10.15 23:31:59.151 5: PWP: ParseObj ObjInfo for h99: reading=I_DC_Spannung_SF, unpack=n, expr=$val, format=, map=
2018.10.15 23:31:59.151 5: PWP: ParseObj unpacked 0000000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.151 5: PWP: ParseObj evaluates expr for I_DC_Spannung_SF, val=0, expr $val
2018.10.15 23:31:59.152 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.152 4: PWP: ParseObj for I_DC_Spannung_SF assigns 0
2018.10.15 23:31:59.152 5: PWP: ParseObj moves to next object, skip 1 to h100
2018.10.15 23:31:59.154 5: PWP: ParseObj ObjInfo for h100: reading=I_DC_Leistung_W, unpack=n, expr=, format=, map=
2018.10.15 23:31:59.155 5: PWP: ParseObj unpacked 000000008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.155 4: PWP: ParseObj for I_DC_Leistung_W assigns 0
2018.10.15 23:31:59.155 5: PWP: ParseObj moves to next object, skip 1 to h101
2018.10.15 23:31:59.157 5: PWP: ParseObj ObjInfo for h101: reading=I_DC_Leistung_SF, unpack=n, expr=, format=, map=
2018.10.15 23:31:59.157 5: PWP: ParseObj unpacked 00008000000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.158 4: PWP: ParseObj for I_DC_Leistung_SF assigns 0
2018.10.15 23:31:59.158 5: PWP: ParseObj moves to next object, skip 1 to h102
2018.10.15 23:31:59.158 5: PWP: ParseObj has no information about parsing h102
2018.10.15 23:31:59.159 5: PWP: ParseObj moves to next object, skip 1 to h103
2018.10.15 23:31:59.160 5: PWP: ParseObj ObjInfo for h103: reading=Temp_Kuehler_C, unpack=n, expr=$val / 100, format=%.f, map=
2018.10.15 23:31:59.161 5: PWP: ParseObj unpacked 000080008000fffe0002 with n to hex 30 (0)
2018.10.15 23:31:59.161 5: PWP: ParseObj evaluates expr for Temp_Kuehler_C, val=0, expr $val / 100
2018.10.15 23:31:59.161 5: PWP: ParseObj eval result is 0
2018.10.15 23:31:59.162 5: PWP: ParseObj for Temp_Kuehler_C does sprintf with format %.f value is 0
2018.10.15 23:31:59.162 5: PWP: ParseObj for Temp_Kuehler_C sprintf result is 0
2018.10.15 23:31:59.162 4: PWP: ParseObj for Temp_Kuehler_C assigns 0
2018.10.15 23:31:59.162 5: PWP: ParseObj moves to next object, skip 1 to h104
2018.10.15 23:31:59.163 5: PWP: ParseObj has no information about parsing h104
2018.10.15 23:31:59.163 5: PWP: ParseObj moves to next object, skip 1 to h105
2018.10.15 23:31:59.163 5: PWP: ParseObj has no information about parsing h105
2018.10.15 23:31:59.164 5: PWP: ParseObj moves to next object, skip 1 to h106
2018.10.15 23:31:59.164 5: PWP: ParseObj has no information about parsing h106
2018.10.15 23:31:59.164 5: PWP: ParseObj moves to next object, skip 1 to h107
2018.10.15 23:31:59.166 5: PWP: ParseObj ObjInfo for h107: reading=C_Status, unpack=n, expr=, format=, map=1:Aus, 2:Nachtmodus, 4:WR_An
2018.10.15 23:31:59.166 5: PWP: ParseObj unpacked 0002 with n to hex 32 (2)
2018.10.15 23:31:59.166 5: PWP: ParseObj for C_Status maps value to 2 with 1:Aus, 2:Nachtmodus, 4:WR_An
2018.10.15 23:31:59.167 4: PWP: ParseObj for C_Status assigns Nachtmodus
2018.10.15 23:31:59.326 5: PWP: ParseFrames got 28 readings from ParseObj
2018.10.15 23:32:08.278 5: CUL/RAW: /V 1.20.04 a-culfw Build: 180 (2016-01-28_21-57-20) CUBe (F-Band: 868MHz)

2018.10.15 23:32:08.278 4: CUL_Parse: CUL_NET V 1.20.04 a-culfw Build: 180 (2016-01-28_21-57-20) CUBe (F-Band: 868MHz)
2018.10.15 23:32:17.482 2: LuftdatenInfo2 (NPLuft) - error while request: 192.168.2.118: Keine Route zum Zielrechner
2018.10.15 23:32:38.455 5: CUL/RAW: /V 1.20.04 a-culfw Build: 180 (2016-01-28_21-57-20) CUBe (F-Band: 868MHz)

2018.10.15 23:32:38.456 4: CUL_Parse: CUL_NET V 1.20.04 a-culfw Build: 180 (2016-01-28_21-57-20) CUBe (F-Band: 868MHz)
2018.10.15 23:32:40.225 5: PWP: raw read: 03034853756e5300010041536f6c61724564676520000000000000000000000000000000000000000000005345354b00000000000000000000000000000000000000000000000000000000c5f8
2018.10.15 23:32:40.225 5: PWP: ParseFrames returned error: got data but did not send a request - ignoring
2018.10.15 23:32:40.388 5: PWP: raw read: 030356303030322e313035330000000000000037453138323045410000000000000000000000000000000000000000000000000003006700320000000000000000fffe00000000000000eb00ed00ed000000000000138bfffed146
2018.10.15 23:32:40.389 5: PWP: ParseFrames returned error: got data but did not send a request - ignoring
2018.10.15 23:32:40.572 5: PWP: raw read: 03031e011204080000ffff800000000000000000008000000080008000fffe00024286
2018.10.15 23:32:40.572 5: PWP: ParseFrames returned error: got data but did not send a request - ignoring
2018.10.15 23:32:47.482 2: LuftdatenInfo2 (NPLuft) - error while request: 192.168.2.118: Keine Route zum Zielrechner

2. hier der Log vom Modul 98_SolarEdge.pm:
2018.10.15 23:29:40 4: SEdge: ProcessRequestQueue (V4.0.12 - 13.10.2018) sending, request: id 3, fCode 3, type h, adr 40093, len 15 for device SEdge reading I_AC_Energie_WH, read buffer empty
2018.10.15 23:29:40 5: SW: 03039c9d000fbb92
2018.10.15 23:29:40 5: SEdge: read buffer: 03031e011204080000ffff800000000000000000008000000080008000fffe00024286
2018.10.15 23:29:40 5: SEdge: ParseFrameStart (RTU) extracted id 3, fCode 3 and data 1e011204080000ffff800000000000000000008000000080008000fffe0002
2018.10.15 23:29:40 5: SEdge: HandleResponse called from Read
2018.10.15 23:29:40 5: SEdge: ParseResponse called from HandleResponse
2018.10.15 23:29:40 5: SEdge: CheckChecksum (called from HandleResponse): 4286 is valid
2018.10.15 23:29:40 5: SEdge: HandleResponse now passing to logical device SEdge for parsing data
2018.10.15 23:29:40 5: SEdge: ParseObj called with data 011204080000ffff800000000000000000008000000080008000fffe0002, type h, adr 40093, valuesLen 15, op read
2018.10.15 23:29:40 5: SEdge: RevRegs is reversing order of up to 2 registers
2018.10.15 23:29:40 5: SEdge: RevRegs string before is 011204080000ffff800000000000000000008000000080008000fffe0002
2018.10.15 23:29:40 5: SEdge: RevRegs string after  is 040801120000ffff800000000000000000008000000080008000fffe0002
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40093: reading=I_AC_Energie_WH, unpack=I>, expr=$val, format=%f Wh, map=
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked 040801120000ffff800000000000000000008000000080008000fffe0002 with I> to 67633426 hex 3637363333343236
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_AC_Energie_WH, val=67633426, expr=$val
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is 67633426
2018.10.15 23:29:40 5: SEdge: ParseObj for I_AC_Energie_WH does sprintf with format %f Wh, value is 67633426
2018.10.15 23:29:40 5: SEdge: ParseObj for I_AC_Energie_WH sprintf result is 67633426.000000 Wh
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value 67633426.000000 Wh to I_AC_Energie_WH
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 2 to h40095
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40095: reading=I_AC_Energie_WH_SF, unpack=s>, expr=$val, format=, map=
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked 0000ffff800000000000000000008000000080008000fffe0002 with s> to 0 hex 30
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_AC_Energie_WH_SF, val=0, expr=$val
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is 0
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value 0 to I_AC_Energie_WH_SF
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40096
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40096: reading=I_DC_Current, unpack=s>, expr=$val, format=%.2f A, map=
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked ffff800000000000000000008000000080008000fffe0002 with s> to -1 hex 2d31
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_DC_Current, val=-1, expr=$val
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is -1
2018.10.15 23:29:40 5: SEdge: ParseObj for I_DC_Current does sprintf with format %.2f A, value is -1
2018.10.15 23:29:40 5: SEdge: ParseObj for I_DC_Current sprintf result is -1.00 A
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value -1.00 A to I_DC_Current
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40097
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40097: reading=I_DC_Current_SF, unpack=s>, expr=$val, format=, map=
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked 800000000000000000008000000080008000fffe0002 with s> to -32768 hex 2d3332373638
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_DC_Current_SF, val=-32768, expr=$val
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is -32768
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value -32768 to I_DC_Current_SF
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40098
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40098: reading=I_DC_Voltage, unpack=s>, expr=$val, format=%.2f V, map=
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked 00000000000000008000000080008000fffe0002 with s> to 0 hex 30
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_DC_Voltage, val=0, expr=$val
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is 0
2018.10.15 23:29:40 5: SEdge: ParseObj for I_DC_Voltage does sprintf with format %.2f V, value is 0
2018.10.15 23:29:40 5: SEdge: ParseObj for I_DC_Voltage sprintf result is 0.00 V
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value 0.00 V to I_DC_Voltage
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40099
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40099: reading=I_DC_Voltage_SF, unpack=s>, expr=$val, format=, map=
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked 0000000000008000000080008000fffe0002 with s> to 0 hex 30
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_DC_Voltage_SF, val=0, expr=$val
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is 0
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value 0 to I_DC_Voltage_SF
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40100
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40100: reading=I_DC_Power, unpack=s>, expr=$val, format=%.2f V, map=
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked 000000008000000080008000fffe0002 with s> to 0 hex 30
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_DC_Power, val=0, expr=$val
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is 0
2018.10.15 23:29:40 5: SEdge: ParseObj for I_DC_Power does sprintf with format %.2f V, value is 0
2018.10.15 23:29:40 5: SEdge: ParseObj for I_DC_Power sprintf result is 0.00 V
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value 0.00 V to I_DC_Power
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40101
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40101: reading=I_DC_Power_SF, unpack=s>, expr=$val, format=, map=
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked 00008000000080008000fffe0002 with s> to 0 hex 30
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_DC_Power_SF, val=0, expr=$val
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is 0
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value 0 to I_DC_Power_SF
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40102
2018.10.15 23:29:40 5: SEdge: ParseObj has no information about parsing h40102
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40103
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40103: reading=I_Temp_Kuehler, unpack=s>, expr=$val/100, format=%.f, map=
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked 000080008000fffe0002 with s> to 0 hex 30
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_Temp_Kuehler, val=0, expr=$val/100
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is 0
2018.10.15 23:29:40 5: SEdge: ParseObj for I_Temp_Kuehler does sprintf with format %.f, value is 0
2018.10.15 23:29:40 5: SEdge: ParseObj for I_Temp_Kuehler sprintf result is 0
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value 0 to I_Temp_Kuehler
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40104
2018.10.15 23:29:40 5: SEdge: ParseObj has no information about parsing h40104
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40105
2018.10.15 23:29:40 5: SEdge: ParseObj has no information about parsing h40105
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40106
2018.10.15 23:29:40 5: SEdge: ParseObj has no information about parsing h40106
2018.10.15 23:29:40 5: SEdge: ParseObj moves to next object, skip 1 to h40107
2018.10.15 23:29:40 5: SEdge: ParseObj ObjInfo for h40107: reading=I_Status, unpack=s>, expr=$val, format=, map=1:Aus, 2:Nachtmodus, 4:WR_An
2018.10.15 23:29:40 5: SEdge: ParseObj unpacked 0002 with s> to 2 hex 32
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_Status, val=2, expr=$val
2018.10.15 23:29:40 5: SEdge: CheckEval for ModbusLD_ParseObj result is 2
2018.10.15 23:29:40 5: SEdge: MapConvert called from ModbusLD_ParseObj converted 2 to Nachtmodus with map 1:Aus, 2:Nachtmodus, 4:WR_An
2018.10.15 23:29:40 5: SEdge: ParseObj for I_Status maps value 2 to Nachtmodus with 1:Aus, 2:Nachtmodus, 4:WR_An
2018.10.15 23:29:40 4: SEdge: ParseObj assigns value Nachtmodus to I_Status
2018.10.15 23:29:40 5: SEdge: HandleResponse got 10 readings from ParseObj for SEdge
2018.10.15 23:29:40 4: SEdge: ResponseDone, request: id 3, fCode 3, type h, adr 40093, len 15 for device SEdge reading I_AC_Energie_WH, Current read buffer: 03031e011204080000ffff800000000000000000008000000080008000fffe00024286, Id 3, fCode 3, response: id 3, fCode 3, type h, adr 40093, len 15, value 011204080000ffff800000000000000000008000000080008000fffe0002
2018.10.15 23:29:40 5: SEdge: DropFrame - drop 03031e011204080000ffff800000000000000000008000000080008000fffe00024286
2018.10.15 23:29:59 5: SEdge: read buffer: 0303500003006700320000000000000000fffe00000000000000ec00ec00ed000000000000138cfffe000000000000000000000000011204080000ffff800000000000000000008000000080008000fffe00020169
2018.10.15 23:29:59 5: SEdge: ParseFrameStart (RTU) extracted id 3, fCode 3 and data 500003006700320000000000000000fffe00000000000000ec00ec00ed000000000000138cfffe000000000000000000000000011204080000ffff800000000000000000008000000080008000fffe0002
2018.10.15 23:29:59 3: SEdge: read got new data while idle, drop buffer 0303500003006700320000000000000000fffe00000000000000ec00ec00ed000000000000138cfffe000000000000000000000000011204080000ffff800000000000000000008000000080008000fffe00020169

Vieleicht findet ihr ja den Fehler.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 17 Oktober 2018, 16:00:33
Hallo pejonp,

du verwendest z.B. unterschiedliche Unpack-Codes. l> vs. I>.
Sieht ähnlich aus, ist aber ein anderer Buchstabe...
Wenn Du bei ModbusAttr einfach set saveAsModule verwendest, kann so was nicht passieren ;-)

Gruß
    Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 21 Oktober 2018, 12:38:39
Hallo Benni,

noch ein Hinweis:
bei den Registern 40071 bis 40075 hast Du ja 5 Register, die gemeinsam gelesen werden müssen und 4 Readings, die daraus erzeugt werden müssen.

Aus Eurem Wiki-Eintrag:
attr <DEVICE-NAME> obj-h40071-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Current_SF',0))
attr <DEVICE-NAME> obj-h40071-reading I_AC_Current
attr <DEVICE-NAME> obj-h40072-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Current_SF',0))
attr <DEVICE-NAME> obj-h40072-reading I_AC_CurrentA
attr <DEVICE-NAME> obj-h40073-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Current_SF',0))
attr <DEVICE-NAME> obj-h40073-reading I_AC_CurrentB
attr <DEVICE-NAME> obj-h40074-expr $val * (10 ** ReadingsNum ('<DEVICE-NAME>' ,'I_AC_Current_SF',0))
attr <DEVICE-NAME> obj-h40074-reading I_AC_CurrentC
attr <DEVICE-NAME> obj-h40075-reading I_AC_Current_SF
attr <DEVICE-NAME> obj-h40075-unpack s>

um das mit einem Request zu machen würde ich folgendes definieren:

attr <DEVICE-NAME> obj-h40071-reading CurrentBlock
attr <DEVICE-NAME> obj-h40071-len 5
attr <DEVICE-NAME> obj-h40071-unpack nnnns>
attr <DEVICE-NAME> obj-h40071-expr readingsBulkUpdate($hash, 'Current', $val[0] * 10 ** $val[4]); readingsBulkUpdate($hash, 'CurrentA', $val[1] * 10 ** $val[4]); readingsBulkUpdate($hash, 'CurrentB', $val[2] * 10 ** $val[4]); readingsBulkUpdate($hash, 'CurrentC', $val[3] * 10 ** $val[4]); "$val[0] $val[1] $val[2] $val[3] $val[4]"

ich kann leider nicht selbst testen, da ich keine SolarEdge-Anlage habe, aber das Feintuning bekommt Ihr bestimmt hin ;-)

Die Grundidee ist dass man ein Block-Reading definiert, das die 5 Register in einem gemeinsamen Request abfragt, über den Unpack-Code in 5 Werte zerlegt und dann in der expr die Readings berechnet / setzt.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 21 Oktober 2018, 13:03:19
Hallo Stefan,

danke für deine Bemühungen und deine Unterstützung! Top!
Werde heute Abend mal updaten und dann umstellen.

Melde mich dann wieder...

gb#
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 21 Oktober 2018, 13:10:32
Hallo Stefan,

Vielen Dank für dein Update. Werde es vermutlich heute Abend testen können.

Ist die neue Version schon regulär über die fhem Update Funktion verfügbar oder muss ich manuell die verlinkte Datei draufspielen?

Sent from my Pure 2 using Tapatalk

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 21 Oktober 2018, 14:03:10
Ist noch nicht eingecheckt.
Bisher muss man sie manuell einspielen.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 22 Oktober 2018, 15:21:22
Hallo,

um Euch das mit dem Scale/Wert zu erleichtern, habe ich in der neuen Version des Modbus-Moduls eine Kleinigkeit geändert:
in den expr-Attributen steht künftig der Wert nach dem unpack nicht nur als $val sondern auch als @val zu Verfügung.
In diesem Array stehen mehrere Werte, wenn der unpack mehrere Werte erzeugt.

Beispiel:
attr MBETest obj-h801-reading test1
attr MBETest obj-h801-len 2
attr MBETest obj-h801-unpack s>s>
attr MBETest obj-h801-expr "$val[0] $val[1]"

Durch len 2 werden zwei Register gleichzeitig (im Beispiel 801 und 802) gelesen.
Der unpack-Code s>s> erzeugt zwei Werte im Array @val. 801 steht dann in $val[0] und 802 in $val[1].
In der Expr werden die Werte dann zusammengebaut (hier nur mit einem Space verkettet, in Eurem Fall vermutlich irgendwie mit Zehnerpotenzen multimpliziert).

Die neue Version ist in diesem Thread:
https://forum.fhem.de/index.php/topic,75638.135.html

Gruss
  Stefan

Hallo Stefan,

in deinem Beispiel liest du mit den 4 Zeilen ja 801 und 802 aus. Wird dann bei den weiteren attributen 802 einfach übersprungen und ich mache mit 803 weiter oder muss/kann ich auch noch reading, unpack, expr etc. in weiteren attributen für 802 angeben?

Gruß,
Philipp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 22 Oktober 2018, 20:01:01
bei den Registern 40071 bis 40075 hast Du ja 5 Register, die gemeinsam gelesen werden müssen und 4 Readings, die daraus erzeugt werden müssen.

...

um das mit einem Request zu machen würde ich folgendes definieren:

attr <DEVICE-NAME> obj-h40071-reading CurrentBlock
attr <DEVICE-NAME> obj-h40071-len 5
attr <DEVICE-NAME> obj-h40071-unpack nnnns>
attr <DEVICE-NAME> obj-h40071-expr readingsBulkUpdate($hash, 'Current', $val[0] * 10 ** $val[4]); readingsBulkUpdate($hash, 'CurrentA', $val[1] * 10 ** $val[4]); readingsBulkUpdate($hash, 'CurrentB', $val[2] * 10 ** $val[4]); readingsBulkUpdate($hash, 'CurrentC', $val[3] * 10 ** $val[4]); "$val[0] $val[1] $val[2] $val[3] $val[4]"

ich kann leider nicht selbst testen, da ich keine SolarEdge-Anlage habe, aber das Feintuning bekommt Ihr bestimmt hin ;-)

Also, soweit ich testen konnte, scheint das zu funktionieren. ( :-[ äh nö! Siehe Udate unten)
Muss ich aber mal noch unter Tags testen, da ich im Nachtmodus aktuell keine Werte an dieser Stelle bekomme.

Ich musste die Expression dazu aber wie folgt abändern:

attr <DEVICE-NAME> obj-h40071-expr readingsBeginUpdate($hash);;readingsBulkUpdate($hash,'I_AC_Current',$val[0]*10**$val[4]);;readingsBulkUpdate($hash,'I_AC_CurrentA',$val[1]*10**$val[4]);;readingsBulkUpdate($hash,'I_AC_CurrentB',$val[2]*10**$val[4]);;readingsBulkUpdate($hash,'I_AC_CurrentC',$val[3]*10**$val[4]);;"$val[0]$val[1]$val[2]$val[3]$val[4]";;readingsEndUpdate($hash,1);;

Also doppelte Semikolons für die Definition und das Begin- und End-Update für das aktualisieren der Readings.

Update:

Irgendwas passt da doch noch nicht ganz. Habe eben im Log noch folgende Einträge entdeckt:

Zitat
2018.10.22 19:53:17 1: readingsUpdate(tstInverter,I_Status_Vendor,0) missed to call readingsBeginUpdate first.
2018.10.22 19:53:17 1: stacktrace:
2018.10.22 19:53:17 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.22 19:53:17 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.22 19:53:17 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.22 19:53:17 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.22 19:53:17 1:     main::CallFn                        called by fhem.pl (726)

Da muss ich mit dem Fine-Tuning wohl nochmal ran (Werde mir die expression wohl mal in die 99_myUtils.pm packen).   ???
Aber heute nicht mehr ;D

gb#
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 23 Oktober 2018, 11:10:25
Hallo Benni,

Ein Aufruf von readingsBeginUpdate bzw. readingsEndUpdate sollte in die Expression nicht rein.
Die Auswertung der Expressions erfolgt in einem Kontext, in dem vorher readingsBeginUpdate aufgerufen wurde und nach Abarbeitung aller Readings readingsEndUpdate.

Die Fehlermeldung kommt beim Starten von Fhem von der Attr-Funktion, die die Gültigkeit einer Expr. prüfen möchte. Um das zu umgehen, sollte die Expr noch auf $inCheckEval prüfen. In der Attr-Funktion ist $inCheckEval nicht gesetzt. Später beim Verarbeiten der Readings enthält die Variable den Wert 1.

Die „leisere“ Variante wäre also so etwas wie
attr <DEVICE-NAME> obj-h40071-expr if ($inCheckEval) {readingsBulkUpdate($hash, 'Current', $val[0] * 10 ** $val[4]); readingsBulkUpdate($hash, 'CurrentA', $val[1] * 10 ** $val[4]); readingsBulkUpdate($hash, 'CurrentB', $val[2] * 10 ** $val[4]); readingsBulkUpdate($hash, 'CurrentC', $val[3] * 10 ** $val[4]); "$val[0] $val[1] $val[2] $val[3] $val[4]}"

Bei den Semikolons kommt es darauf an, wo man das Attribut eingibt.
In der Fhem.cfg müssen Semikolons verdoppelt werden.

Gruß
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 23 Oktober 2018, 11:21:06
Hallo Philipp,

Wenn man ein Objekt mit Start-Adresse 801 und Länge 2 definiert, dann werden beim Parsen die Register-Werte von 801 und 802 „verbraucht“. Der Unpack-Code, expression etc. werden auf die 32-Bit (aus Verkettung der beiden 16-Bit Register 801 und 802) angewendet.
Zusätzliche Attribute für 802 würden ignoriert.

Deshalb kann in der Expr für h801 entweder ein einziger Wert für ein einziges Reading zurückgegeben werden oder man müsste in der Expression selbst readingsBeginUpdate aufrufen um weitere Readings zu setzen. Das habe ich ja in meinem Beispiel für h40071 gepostet.

Gruß
   Stefan

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 23 Oktober 2018, 12:05:48
Die Auswertung der Expressions erfolgt in einem Kontext, in dem vorher readingsBeginUpdate aufgerufen wurde und nach Abarbeitung aller Readings readingsEndUpdate.

So hatte ich das eigentlich auch verstanden, dennoch hat er mir genau das readingsBulkUpdate angemeckert, deshalb habe ich die eingefügt.

Eventuell habe ich doch nicht die aktuellste Modbus-Variante bei mir installiert. Ich hatte die letzte aus dem anderen Thread genommen (Stand war glaube ich 13.10.)

Ich komme aber frühestens heute Abend zuhause dann nochmal testen.

Danke und Gruß Benni.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 25 Oktober 2018, 12:07:29
Hallo Stefan,

vielen Dank für die Erklärungen. Seit einigen Tagen habe ich das neue Modbus Modul (Modbus 4.0.12 - 13.10.2018) jetzt installiert. Bei den attributes habe ich ein paar Änderungen vorgenommen, insgesamt sieht es nun so aus:

Internals:
   DEF        1 60 192.168.10.99 TCP
   DeviceName 192.168.10.99:502
   EXPECT     idle
   FD         105
   INTERVAL   60
   IODev      SolarEdgeWR
   LASTOPEN   1540457772.99154
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.0.12 - 13.10.2018
   NAME       SolarEdgeWR
   NOTIFYDEV  global
   NR         518
   NTFY_ORDER 50-SolarEdgeWR
   PARTIAL   
   PROTOCOL   TCP
   STATE      454 W; 392274 Wh; 34 °C
   TCPConn    1
   TRIGGERTIME 1540461349.19701
   TRIGGERTIME_FMT 2018-10-25 11:55:49
   TYPE       ModbusAttr
   devioLoglevel 3
   nextOpenDelay 60
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2018-10-25 11:54:50   C_DeviceAddress 1
     2018-10-25 11:54:49   C_Manufacturer  SolarEdge
     2018-10-25 11:54:49   C_Model         SE5000
     2018-10-25 11:54:50   C_PhaseDesign   101
     2018-10-25 11:54:49   C_SunSpec_ID    SunS
     2018-10-25 11:54:50   C_SunSpec_Length 50
     2018-10-25 11:54:49   C_Version       0003.230
     2018-10-25 11:54:50   I_AC_Current    2.16
     2018-10-25 11:54:50   I_AC_CurrentA   2.16
     2018-10-25 11:54:50   I_AC_CurrentB   655.35
     2018-10-25 11:54:51   I_AC_CurrentC   655.35
     2018-10-25 11:54:51   I_AC_Current_SF -2
     2018-10-25 11:54:53   I_AC_Energy_WH  392674
     2018-10-25 11:54:54   I_AC_Energy_WH_SF 0
     2018-10-25 11:54:52   I_AC_Frequency  49.997
     2018-10-25 11:54:52   I_AC_PF         92.35
     2018-10-25 11:54:52   I_AC_Power      454.1
     2018-10-25 11:54:52   I_AC_VA         498.5
     2018-10-25 11:54:52   I_AC_VAR        204.62
     2018-10-25 11:54:51   I_AC_VoltageAB  229.5
     2018-10-25 11:54:51   I_AC_VoltageAN  6553.5
     2018-10-25 11:54:51   I_AC_VoltageBC  6553.5
     2018-10-25 11:54:51   I_AC_VoltageBN  6553.5
     2018-10-25 11:54:51   I_AC_VoltageCA  6553.5
     2018-10-25 11:54:51   I_AC_VoltageCN  6553.5
     2018-10-25 11:54:52   I_AC_Voltage_SF -1
     2018-10-25 11:54:54   I_DC_Current    1.2486
     2018-10-25 11:54:54   I_DC_Power      462.5
     2018-10-25 11:54:54   I_DC_Voltage    370
     2018-10-25 11:54:54   I_Status        4
     2018-10-25 11:54:55   I_Status_Vendor 0
     2018-10-25 11:54:54   I_Temp_SF       -2
     2018-10-25 11:54:54   I_Temp_Sink     34.45
     2018-10-25 10:56:13   state           opened
     2018-10-25 11:54:50   uC_PhaseDesign  single
     2018-10-25 11:54:55   uI_Status       day
   REMEMBER:
     lid        1
     lrecv      1540461295.00753
     lsend      1540461294.99997
   defptr:
     SolarEdgeWR 1
   gotReadings:
     I_Status_Vendor 0
   lastRead:
     h40000     1540461289.52141
     h40004     1540461289.64267
     h40020     1540461289.76407
     h40044     1540461289.88645
     h40068     1540461290.1367
     h40069     1540461290.25361
     h40070     1540461290.46295
     h40071     1540461290.75543
     h40072     1540461290.88314
     h40073     1540461291.00141
     h40074     1540461291.12025
     h40075     1540461291.23439
     h40076     1540461291.36766
     h40077     1540461291.48446
     h40078     1540461291.60853
     h40079     1540461291.72611
     h40080     1540461291.84568
     h40081     1540461291.9717
     h40082     1540461292.10625
     h40083     1540461292.26155
     h40085     1540461292.60431
     h40087     1540461292.72388
     h40089     1540461292.86829
     h40091     1540461292.99165
     h40093     1540461293.19306
     h40095     1540461294.03027
     h40096     1540461294.19401
     h40098     1540461294.39386
     h40100     1540461294.51783
     h40103     1540461294.64282
     h40106     1540461294.76572
     h40107     1540461294.89944
     h40108     1540461295.02613
Attributes:
   alias      SolarEdge SE5000H
   dev-h-defPoll 1
   icon       measure_power_meter
   obj-h40000-len 4
   obj-h40000-reading C_SunSpec_ID
   obj-h40000-unpack (a4)
   obj-h40004-len 16
   obj-h40004-reading C_Manufacturer
   obj-h40004-unpack (a16)
   obj-h40020-len 16
   obj-h40020-reading C_Model
   obj-h40020-unpack (a16)
   obj-h40044-len 8
   obj-h40044-reading C_Version
   obj-h40044-unpack (a8)
   obj-h40052-len 16
   obj-h40052-reading C_SerialNumber
   obj-h40052-unpack (a16)
   obj-h40068-reading C_DeviceAddress
   obj-h40069-reading C_PhaseDesign
   obj-h40070-reading C_SunSpec_Length
   obj-h40071-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Current_SF',0))
   obj-h40071-reading I_AC_Current
   obj-h40072-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Current_SF',0))
   obj-h40072-reading I_AC_CurrentA
   obj-h40073-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Current_SF',0))
   obj-h40073-reading I_AC_CurrentB
   obj-h40074-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Current_SF',0))
   obj-h40074-reading I_AC_CurrentC
   obj-h40075-reading I_AC_Current_SF
   obj-h40075-unpack s>
   obj-h40076-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Voltage_SF',0))
   obj-h40076-reading I_AC_VoltageAB
   obj-h40077-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Voltage_SF',0))
   obj-h40077-reading I_AC_VoltageBC
   obj-h40078-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Voltage_SF',0))
   obj-h40078-reading I_AC_VoltageCA
   obj-h40079-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Voltage_SF',0))
   obj-h40079-reading I_AC_VoltageAN
   obj-h40080-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Voltage_SF',0))
   obj-h40080-reading I_AC_VoltageBN
   obj-h40081-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Voltage_SF',0))
   obj-h40081-reading I_AC_VoltageCN
   obj-h40082-reading I_AC_Voltage_SF
   obj-h40082-unpack s>
   obj-h40083-expr $val[0] * (10 ** $val[1])
   obj-h40083-len 2
   obj-h40083-reading I_AC_Power
   obj-h40083-unpack s>s>
   obj-h40085-expr $val[0] * (10 ** $val[1])
   obj-h40085-len 2
   obj-h40085-reading I_AC_Frequency
   obj-h40085-unpack ns>
   obj-h40087-expr $val[0] * (10 ** $val[1])
   obj-h40087-len 2
   obj-h40087-reading I_AC_VA
   obj-h40087-unpack s>s>
   obj-h40089-expr $val[0] * (10 ** $val[1])
   obj-h40089-len 2
   obj-h40089-reading I_AC_VAR
   obj-h40089-unpack s>s>
   obj-h40091-expr $val[0] * (10 ** $val[1])
   obj-h40091-len 2
   obj-h40091-reading I_AC_PF
   obj-h40091-unpack s>s>
   obj-h40093-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_AC_Energy_WH_SF',0))
   obj-h40093-len 2
   obj-h40093-reading I_AC_Energy_WH
   obj-h40093-unpack I>
   obj-h40095-reading I_AC_Energy_WH_SF
   obj-h40096-expr $val[0] * (10 ** $val[1])
   obj-h40096-len 2
   obj-h40096-reading I_DC_Current
   obj-h40096-unpack ns>
   obj-h40098-expr $val[0] * (10 ** $val[1])
   obj-h40098-len 2
   obj-h40098-reading I_DC_Voltage
   obj-h40098-unpack ns>
   obj-h40100-expr $val[0] * (10 ** $val[1])
   obj-h40100-len 2
   obj-h40100-reading I_DC_Power
   obj-h40100-unpack s>s>
   obj-h40103-expr $val * (10 ** ReadingsNum ('SolarEdgeWR' ,'I_Temp_SF',0))
   obj-h40103-reading I_Temp_Sink
   obj-h40103-unpack s>
   obj-h40106-reading I_Temp_SF
   obj-h40106-unpack s>
   obj-h40107-reading I_Status
   obj-h40108-reading I_Status_Vendor
   room       Solar
   sortUpdate 1
   stateFormat {sprintf("%.0f W; %.0f Wh; %.0f °C ",ReadingsVal($name,"I_AC_Power",0),ReadingsVal($name,"uI_AC_Energy_WHSinceInstall",0),ReadingsVal($name,"I_Temp_Sink",0))}
   userReadings uI_Status:I_Status.* {my $om=ReadingsNum($name,'I_Status',-1);($om==2?'night':($om==4?'day':'off'))},
uC_PhaseDesign:C_PhaseDesign.* {my $pd=ReadingsVal($name,'C_PhaseDesign','000');($pd eq '101'?'single':($pd eq '102'?'split':($pd eq '103'?'3-phase':'unknown')))}

Die Auswertung klappt an sich auch ganz gut (Wert und SF werden passen zueinander), allerdings bricht jetzt gelegentlich die Verbindung ab. Der state wechselt dann auf "opened" und die Werte aktualisieren sich nicht mehr.

Im Logfile finde ich dann folgende Einträge:

2018.10.25 06:04:38 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 06:04:38 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 134, type h, adr 40000, len 4 for device SolarEdgeWR reading C_SunSpec_ID, read buffer empty

2018.10.25 06:04:41 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 06:04:41 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 117, type h, adr 40004, len 16 for device SolarEdgeWR reading C_Manufacturer, read buffer empty
2018.10.25 06:04:43 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 06:04:43 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 47, type h, adr 40020, len 16 for device SolarEdgeWR reading C_Model, read buffer empty
2018.10.25 06:04:45 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 06:04:45 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 123, type h, adr 40044, len 8 for device SolarEdgeWR reading C_Version, read buffer empty
2018.10.25 06:04:47 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 06:04:47 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 103, type h, adr 40052, len 16 for device SolarEdgeWR reading C_SerialNumber, read buffer empty
2018.10.25 06:04:49 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 06:04:49 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 56, type h, adr 40068, len 1 for device SolarEdgeWR reading C_DeviceAddress, read buffer empty
2018.10.25 06:04:51 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 06:04:51 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 3, type h, adr 40069, len 1 for device SolarEdgeWR reading C_PhaseDesign, read buffer empty
2018.10.25 06:04:51 3: 192.168.10.99:502 disconnected, waiting to reappear (SolarEdgeWR)
2018.10.25 06:04:53 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 06:04:53 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 187, type h, adr 40070, len 1 for device SolarEdgeWR reading C_SunSpec_Length, read buffer empty
2018.10.25 06:05:37 3: Opening SolarEdgeWR device 192.168.10.99:502
2018.10.25 06:05:37 3: SolarEdgeWR device opened
...
2018.10.25 06:07:42 3: 192.168.10.99:502 disconnected, waiting to reappear (SolarEdgeWR)
2018.10.25 06:07:43 3: 192.168.10.99:502 reappeared (SolarEdgeWR)
...
2018.10.25 10:46:46 3: 192.168.10.99:502 disconnected, waiting to reappear (SolarEdgeWR)
2018.10.25 10:46:48 3: 192.168.10.99:502 reappeared (SolarEdgeWR)
...
2018.10.25 10:48:46 3: 192.168.10.99:502 disconnected, waiting to reappear (SolarEdgeWR)
2018.10.25 10:48:47 3: 192.168.10.99:502 reappeared (SolarEdgeWR)
...
2018.10.25 10:50:46 3: 192.168.10.99:502 disconnected, waiting to reappear (SolarEdgeWR)
2018.10.25 10:50:51 3: 192.168.10.99:502 reappeared (SolarEdgeWR)
...
2018.10.25 10:52:46 3: 192.168.10.99:502 disconnected, waiting to reappear (SolarEdgeWR)
2018.10.25 10:52:47 3: 192.168.10.99:502 reappeared (SolarEdgeWR)
...
2018.10.25 10:56:12 3: 192.168.10.99:502 disconnected, waiting to reappear (SolarEdgeWR)
2018.10.25 10:56:13 3: 192.168.10.99:502 reappeared (SolarEdgeWR)

Durch den set-Befehl "reread" (ggfs. mehrfach) kann ich das Problem meist beheben und die Werte werden wieder gelesen. Weißt du woran das liegen könnte oder wie man das Problem behebt? Am Netzwerk habe ich in der Zeit eigentlich nichts verändert und vorher hatte ich diese Probleme (dass die Werte nicht mehr geladen werden) nicht.

Grüße,
Philipp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 25 Oktober 2018, 16:14:09
Hallo Philipp,

zu den Verbindungsabbrüchen:
es ist normal wenn der Modbus-Slave (der ja der TCP-Server ist und Port 502 anbietet) nach einem Timeout die Verbindungen schließt. 2 Minuten sind dabei nicht selten. In einer älteren Version des Moduls hatte ich das mit Loglevel 4 oder 5 protokolliert. Ohne verbose 4 oder 5 hat man das nicht bemerkt. In neueren Versionen wird disconnected und reappeared protokolliert, es sei denn man setzt silentReconnect auf 1.
Das sollte jedoch keine Auswirkungen auf die Abfragen haben. Das Modul sollte bei Bedarf automatisch eine neue Verbindung öffnen. Falls das nicht funktioniert, wäre ein Log mit verbose 5 hilfreich, in dem man sieht, was beim Beginn der Abfragen passiert.

Zu den Attributen für die Objekte:
Solange sich die Scale-Faktoren selten ändern wird alles gut funktionieren. Es kann aber bei Deiner Konfiguration passieren, dass Du zuerst einen Wert abfragst, dann ändert sich der Scale-Fator bevor er gelesen wird und dann passt der gelesene Scale-Faktor nicht zum eigentlichen Wert.
Deshalb habe ich hier ein alternatives Verfahren empfohlen, bei dem die Register mit den Werten und dem Scale-Faktur gleichzeitig gelesen werden.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 25 Oktober 2018, 16:23:34
Danke für die Antwort, dann werde ich das nochmal weiter beobachten.

Ich habe noch nicht alles umgestellt, aber folgende Werte werden doch gleichzeitig (Wert und Scale Factor) gelesen oder?:

   obj-h40083-expr $val[0] * (10 ** $val[1])
   obj-h40083-len 2
   obj-h40083-reading I_AC_Power
   obj-h40083-unpack s>s>
   obj-h40085-expr $val[0] * (10 ** $val[1])
   obj-h40085-len 2
   obj-h40085-reading I_AC_Frequency
   obj-h40085-unpack ns>
   obj-h40087-expr $val[0] * (10 ** $val[1])
   obj-h40087-len 2
   obj-h40087-reading I_AC_VA
   obj-h40087-unpack s>s>
   obj-h40089-expr $val[0] * (10 ** $val[1])
   obj-h40089-len 2
   obj-h40089-reading I_AC_VAR
   obj-h40089-unpack s>s>
   obj-h40091-expr $val[0] * (10 ** $val[1])
   obj-h40091-len 2
   obj-h40091-reading I_AC_PF
   obj-h40091-unpack s>s>
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 25 Oktober 2018, 17:16:16
Hallo Philipp,

Jedes Objekt wird mit einem eigenen Request abgefragt, es sei denn Du hast dem Modul erlaubt, mehrere Requests zu kombinieren (dev-h-combine). Aber selbst dann werden die Gelesenen Daten nacheinander geparsed. Da die Werte vor dem Scale-Faktor stehen, wird in der Perl-Expression zur Berechnung des tatsächlichen Wertes der Scale-Faktor aus der letzten Lese-Runde verwendet. Erst danach wird der neu gelesene Scale-Faktor in sein Reading geschrieben.

Deshalb habe ich empfohlen, ein Objekt mit größerer Länge zu definieren, so dass die Register für die Werte und den zugehörigen Scale-Faktor tatsächlich mit einem einzigen Request gelesen werden.

Gruß
    Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 25 Oktober 2018, 17:24:18
Hallo Stefan,

also prinzipiell ist es für mich ja ok, wenn verschiedene, unabhängige Werte nicht gleichzeitig abgefragt werden. Ich wollte vor allem Werte mit Scaling Factor gleichzeitig abfragen. In der Vergangenheit hatte ich oft das Problem, dass nur einer der beiden Werte sich geändert hatte und ich dann von z.B. 3 kW auf 30kW oder 300 Watt gesprungen bin.

obj-h40083-expr $val[0] * (10 ** $val[1])
obj-h40083-len 2
obj-h40083-reading I_AC_Power
obj-h40083-unpack s>s>

Mit diesen Attributen mache ich doch genau dies (ein request liest beide Werte aus) oder?

Ich weiß, dass ich das noch nicht für alle Werte umgestellt habe weil ich es erstmal mit den einfachen probieren wollte.

Gruß,
Philipp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 25 Oktober 2018, 20:56:51
Genau.

so wird holding register 40083 zusammen mit 40084 gelesen.
Wenn das bei Dir schon funktioniert, musst Du es nur noch bei den anderen Werten entsprechend umbauen :-)

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 25 Oktober 2018, 23:34:17
Danke! Da ich vor allem I_AC_Power auswerte, war es mir da besonders wichtig da die richtigen Werte zu kriegen.

Seit 3 Tagen habe ich jetzt immer gegen 20:00 (± 2 min) Uhr das Problem, dass der state zu "opened" wechselt und die readings sich nicht mehr aktualisieren.

Folgendes stand im Log:

2018.10.25 19:57:49 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 19:57:49 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 82, type h, adr 40000, len 4 for device SolarEdgeWR reading C_SunSpec_ID, read buffer empty
2018.10.25 19:57:51 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 19:57:51 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 151, type h, adr 40004, len 16 for device SolarEdgeWR reading C_Manufacturer, read buffer empty
2018.10.25 19:57:53 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 19:57:53 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 206, type h, adr 40020, len 16 for device SolarEdgeWR reading C_Model, read buffer empty
2018.10.25 19:57:55 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 19:57:55 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 237, type h, adr 40044, len 8 for device SolarEdgeWR reading C_Version, read buffer empty
2018.10.25 19:57:57 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 19:57:57 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 223, type h, adr 40052, len 16 for device SolarEdgeWR reading C_SerialNumber, read buffer empty
2018.10.25 19:57:59 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 19:57:59 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, type h, adr 40068, len 1 for device SolarEdgeWR reading C_DeviceAddress, read buffer empty
2018.10.25 19:58:01 3: 192.168.10.99:502 disconnected, waiting to reappear (SolarEdgeWR)
2018.10.25 19:58:01 3: SolarEdgeWR: ResponseTimeout called, devhash=HASH(0x3f06560), name of devhash=SolarEdgeWR
2018.10.25 19:58:01 3: SolarEdgeWR: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 101, type h, adr 40069, len 1 for device SolarEdgeWR reading C_PhaseDesign, read buffer empty
2018.10.25 19:58:47 3: Opening SolarEdgeWR device 192.168.10.99:502
2018.10.25 19:58:48 3: SolarEdgeWR device opened
...
2018.10.25 20:00:53 3: 192.168.10.99:502 disconnected, waiting to reappear (SolarEdgeWR)
2018.10.25 20:00:55 3: 192.168.10.99:502 reappeared (SolarEdgeWR)
(wird alle paar Minuten wiederholt)

Ist anhand der Daten eine Erklärung möglich? Ich stelle jetzt einmal verbose auf 5 und kann dann morgen hoffentlich mehr sehen.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 26 Oktober 2018, 07:46:00
Hallo  Philipp,

jetzt wäre es sehr spannend zu sehen, was kurz vor den ersten Fehlermeldungen im Log steht.
Kannst Du mal mit verbose 5 den Ausschnitt zwischen dem letzten Erfolgreichen Abruf und der ersten Fehlermeldung posten?

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 26 Oktober 2018, 13:01:20
Hallo Philipp,

vermutlich ist Dein Problem ein Bug gewesen, der jetzt behoben sein sollte.
Ich habe gerade eine neue Version gepostet.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 26 Oktober 2018, 22:37:34
Hallo Stefan,

ich wollte die Funktionen gerne in einem Modul haben. siehe Anlage. Das auslesen der Werte funktioniert. Nur das schreiben/setzen der Readings nicht. Ich habe im Modul eine extra Funktion geschrieben die die Readings setzen soll. Es kommen Fehler, die Reading werden gesetzt, aber es werden dann keine weiteren Register mehr ausgelesen.

MODULEVERSION Modbus 4.0.13 - 26.10.2018

2018.10.26 22:15:20 3: lg868 device opened
2018.10.26 22:15:22 1: readingsUpdate(SEdge,CurrentBlock2,5 0 0 0 0 -2) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VoltageAB,0.00 V) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VoltageBC,0.00 V) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VoltageCA,0.00 V) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VoltageAN,237.00 V) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VoltageBN,237.00 V) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VoltageCN,237.00 V) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_Voltage_SF,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_Power,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_Power_SF,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_Frequency,50 Hz) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_Frequency_SF,65534) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VA,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VA_SF,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VAR,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_VAR_SF,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_PF,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_PF_SF,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_Energie_WH_kWh,18029.26 kWh) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_AC_Energy_WH_SF,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_DC_Current,65535.00 A) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_DC_Current_SF,32768) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_DC_Voltage,0.00 V) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)
2018.10.26 22:15:22 1: readingsUpdate(SEdge,I_DC_Voltage_SF,0) missed to call readingsBeginUpdate first.
2018.10.26 22:15:22 1: stacktrace:
2018.10.26 22:15:22 1:     main::readingsBulkUpdate            called by ./FHEM/98_Modbus.pm (2426)
2018.10.26 22:15:22 1:     main::ModbusLD_ParseObj             called by ./FHEM/98_Modbus.pm (2116)
2018.10.26 22:15:22 1:     main::Modbus_HandleResponse         called by ./FHEM/98_Modbus.pm (1796)
2018.10.26 22:15:22 1:     main::Modbus_Read                   called by fhem.pl (3599)
2018.10.26 22:15:22 1:     main::CallFn                        called by fhem.pl (726)

Was mache ich falsch ? Was muss geändert werden ? Wenn ich diese Abfrage nicht ins Modul lege sondern als Konfig ins fhem.cfg geht es.

attr SEdge userattr obj-h40087-expr obj-h40087-len obj-h40087-reading obj-h40087-unpack verbose
attr SEdge obj-h40087-expr readingsBulkUpdate($hash, 'AC_VA', $val[0] * 10 ** $val[1])
attr SEdge obj-h40087-len 2
attr SEdge obj-h40087-reading VABlock
attr SEdge obj-h40087-unpack ns>

Es kommt auch ein Fehler beim Start von FHEM, aber die Readings werden gesetzt und danach geht es ohne Fehler weiter.

2018.10.26 22:28:22 3: SEdge: defined with id 3, interval 60, protocol RTU, mode master, connection to 192.168.2.7:20108
2018.10.26 22:28:22 1: readingsUpdate(SEdge,AC_VA,0) missed to call readingsBeginUpdate first.
2018.10.26 22:28:22 1: stacktrace:
2018.10.26 22:28:22 1:     main::readingsBulkUpdate            called by (eval 73) (1)
2018.10.26 22:28:22 1:     (eval)                              called by ./FHEM/98_Modbus.pm (741)
2018.10.26 22:28:22 1:     main::ModbusLD_Attr                 called by fhem.pl (3599)
2018.10.26 22:28:22 1:     main::CallFn                        called by fhem.pl (2871)
2018.10.26 22:28:22 1:     main::CommandAttr                   called by fhem.pl (1216)
2018.10.26 22:28:22 1:     main::AnalyzeCommand                called by fhem.pl (1062)
2018.10.26 22:28:22 1:     main::AnalyzeCommandChain           called by fhem.pl (1357)
2018.10.26 22:28:22 1:     main::CommandInclude                called by fhem.pl (580)
sh: 1: [0]: not found
....
2018.10.26 22:32:25 4: SEdge: ProcessRequestQueue got pdu from PackRequest: 039c6c001a
2018.10.26 22:32:25 5: SEdge: PackFrame called from ProcessRequestQueue id 3, pdu 039c6c001a
2018.10.26 22:32:25 4: SEdge: ProcessRequestQueue (V4.0.13 - 26.10.2018) sending, request: id 3, fCode 3, type h, adr 40044, len 26 for device SEdge reading C_Version, read buffer empty
2018.10.26 22:32:25 5: SW: 03039c6c001a2bae
2018.10.26 22:32:25 5: SEdge: read buffer: 030334303030322e31303533000000000000003745313832304541000000000000000000000000000000000000000000000000000300670bad
2018.10.26 22:32:25 5: SEdge: ParseFrameStart (RTU) extracted id 3, fCode 3 and data 34303030322e3130353300000000000000374531383230454100000000000000000000000000000000000000000000000000030067
2018.10.26 22:32:25 5: SEdge: HandleResponse called from Read
2018.10.26 22:32:25 5: SEdge: ParseResponse called from HandleResponse
2018.10.26 22:32:25 5: SEdge: CheckChecksum (called from HandleResponse): 0bad is valid
2018.10.26 22:32:25 5: SEdge: HandleResponse now passing to logical device SEdge for parsing data
2018.10.26 22:32:25 5: SEdge: ParseObj called with data 303030322e3130353300000000000000374531383230454100000000000000000000000000000000000000000000000000030067, type h, adr 40044, valuesLen 26, op read
2018.10.26 22:32:25 5: SEdge: ParseObj ObjInfo for h40044: reading=C_Version, unpack=a8, expr=$val =~ s/[\00]+//gr, format=, map=
2018.10.26 22:32:25 5: SEdge: ParseObj unpacked 303030322e3130353300000000000000374531383230454100000000000000000000000000000000000000000000000000030067 with a8 to 0002.105 hex 303030322e313035
2018.10.26 22:32:25 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for C_Version, val=0002.105, expr=$val =~ s/[\00]+//gr
2018.10.26 22:32:25 5: SEdge: CheckEval for ModbusLD_ParseObj result is 0002.105
2018.10.26 22:32:25 4: SEdge: ParseObj assigns value 0002.105 to C_Version
2018.10.26 22:32:25 5: SEdge: ParseObj moves to next object, skip 4 to h40048
2018.10.26 22:32:25 5: SEdge: ParseObj has no information about parsing h40048
2018.10.26 22:32:25 5: SEdge: ParseObj moves to next object, skip 1 to h40049
2018.10.26 22:32:25 5: SEdge: ParseObj has no information about parsing h40049
2018.10.26 22:32:25 5: SEdge: ParseObj moves to next object, skip 1 to h40050
2018.10.26 22:32:25 5: SEdge: ParseObj has no information about parsing h40050
2018.10.26 22:32:25 5: SEdge: ParseObj moves to next object, skip 1 to h40051
2018.10.26 22:32:26 5: SEdge: ParseObj has no information about parsing h40051
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40052
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40052: reading=C_SerialNumber, unpack=a16, expr=$val =~ s/[\00]+//gr, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 374531383230454100000000000000000000000000000000000000000000000000030067 with a16 to 7E1820EA hex 37453138323045410000000000000000
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for C_SerialNumber, val=7E1820EA, expr=$val =~ s/[\00]+//gr
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj result is 7E1820EA
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 7E1820EA to C_SerialNumber
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 8 to h40060
2018.10.26 22:32:26 5: SEdge: ParseObj has no information about parsing h40060
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40061
2018.10.26 22:32:26 5: SEdge: ParseObj has no information about parsing h40061
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40062
2018.10.26 22:32:26 5: SEdge: ParseObj has no information about parsing h40062
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40063
2018.10.26 22:32:26 5: SEdge: ParseObj has no information about parsing h40063
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40064
2018.10.26 22:32:26 5: SEdge: ParseObj has no information about parsing h40064
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40065
2018.10.26 22:32:26 5: SEdge: ParseObj has no information about parsing h40065
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40066
2018.10.26 22:32:26 5: SEdge: ParseObj has no information about parsing h40066
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40067
2018.10.26 22:32:26 5: SEdge: ParseObj has no information about parsing h40067
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40068
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40068: reading=C_DeviceAddress, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 00030067 with n to 3 hex 33
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 3 to C_DeviceAddress
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40069
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40069: reading=C_SunSpec_DID, unpack=n, expr=, format=, map=101:Einphasig, 102:Spaltphase1, 103:Dreiphasig
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 0067 with n to 103 hex 313033
2018.10.26 22:32:26 5: SEdge: MapConvert called from ModbusLD_ParseObj converted 103 to Dreiphasig with map 101:Einphasig, 102:Spaltphase1, 103:Dreiphasig
2018.10.26 22:32:26 5: SEdge: ParseObj for C_SunSpec_DID maps value 103 to Dreiphasig with 101:Einphasig, 102:Spaltphase1, 103:Dreiphasig
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value Dreiphasig to C_SunSpec_DID
2018.10.26 22:32:26 5: SEdge: HandleResponse got 4 readings from ParseObj for SEdge
2018.10.26 22:32:26 4: SEdge: ResponseDone, request: id 3, fCode 3, type h, adr 40044, len 26 for device SEdge reading C_Version, Current read buffer: 030334303030322e31303533000000000000003745313832304541000000000000000000000000000000000000000000000000000300670bad, Id 3, fCode 3, response: id 3, fCode 3, type h, adr 40044, len 26, value 303030322e3130353300000000000000374531383230454100000000000000000000000000000000000000000000000000030067
2018.10.26 22:32:26 5: SEdge: DropFrame - drop 030334303030322e31303533000000000000003745313832304541000000000000000000000000000000000000000000000000000300670bad
2018.10.26 22:32:26 5: SEdge: StartQueueTimer called form Read sets internal timer to call Modbus_ProcessRequestQueue in 0.000 seconds
2018.10.26 22:32:26 5: SEdge: ProcessRequestQueue called from HandleTimeout as queue:SEdge
2018.10.26 22:32:26 5: SEdge: StopQueueTimer called from ProcessRequestQueue removes internal timer to call Modbus_ProcessRequestQueue
2018.10.26 22:32:26 5: SEdge: CheckDelay called from ProcessRequestQueue commDelay (0.1s since 22:32:25.966) for SEdge, delay over
2018.10.26 22:32:26 5: SEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 22:32:25.939) for SEdge, delay over
2018.10.26 22:32:26 5: SEdge: PackRequest called from ProcessRequestQueue
2018.10.26 22:32:26 4: SEdge: ProcessRequestQueue got pdu from PackRequest: 039c87001d
2018.10.26 22:32:26 5: SEdge: PackFrame called from ProcessRequestQueue id 3, pdu 039c87001d
2018.10.26 22:32:26 4: SEdge: ProcessRequestQueue (V4.0.13 - 26.10.2018) sending, request: id 3, fCode 3, type h, adr 40071, len 29 for device SEdge reading CurrentBlock2, read buffer empty
2018.10.26 22:32:26 5: SW: 03039c87001d1a58
2018.10.26 22:32:26 5: SEdge: read buffer: 03033a0000000000000000fffe0199019a019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000a861
2018.10.26 22:32:26 5: SEdge: ParseFrameStart (RTU) extracted id 3, fCode 3 and data 3a0000000000000000fffe0199019a019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000
2018.10.26 22:32:26 5: SEdge: HandleResponse called from Read
2018.10.26 22:32:26 5: SEdge: ParseResponse called from HandleResponse
2018.10.26 22:32:26 5: SEdge: CheckChecksum (called from HandleResponse): a861 is valid
2018.10.26 22:32:26 5: SEdge: HandleResponse now passing to logical device SEdge for parsing data
2018.10.26 22:32:26 5: SEdge: ParseObj called with data 0000000000000000fffe0199019a019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000, type h, adr 40071, valuesLen 29, op read
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40071: reading=CurrentBlock2, unpack=nnnns>, expr=@val." ".$val[0]." ".$val[1]." ".$val[2]." ".$val[3]." ".$val[4], format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 0000000000000000fffe0199019a019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000 with nnnns> to 0 hex 30, 0 hex 30, 0 hex 30, 0 hex 30, -2 hex 2d32
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for CurrentBlock2, val=0 0 0 0 -2, expr=@val." ".$val[0]." ".$val[1]." ".$val[2]." ".$val[3]." ".$val[4]
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj result is 5 0 0 0 0 -2
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 5 0 0 0 0 -2 to CurrentBlock2
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 5 to h40076
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40076: reading=I_AC_VoltageAB, unpack=n, expr=, format=%.2f V, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 0199019a019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 409 hex 343039
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageAB does sprintf with format %.2f V, value is 409
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageAB sprintf result is 409.00 V
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 409.00 V to I_AC_VoltageAB
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40077
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40077: reading=I_AC_VoltageBC, unpack=n, expr=, format=%.2f V, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 019a019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 410 hex 343130
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageBC does sprintf with format %.2f V, value is 410
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageBC sprintf result is 410.00 V
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 410.00 V to I_AC_VoltageBC
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40078
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40078: reading=I_AC_VoltageCA, unpack=n, expr=, format=%.2f V, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 411 hex 343131
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageCA does sprintf with format %.2f V, value is 411
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageCA sprintf result is 411.00 V
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 411.00 V to I_AC_VoltageCA
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40079
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40079: reading=I_AC_VoltageAN, unpack=n, expr=, format=%.2f V, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 236 hex 323336
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageAN does sprintf with format %.2f V, value is 236
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageAN sprintf result is 236.00 V
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 236.00 V to I_AC_VoltageAN
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40080
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40080: reading=I_AC_VoltageBN, unpack=n, expr=, format=%.2f V, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 237 hex 323337
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageBN does sprintf with format %.2f V, value is 237
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageBN sprintf result is 237.00 V
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 237.00 V to I_AC_VoltageBN
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40081
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40081: reading=I_AC_VoltageCN, unpack=n, expr=, format=%.2f V, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 236 hex 323336
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageCN does sprintf with format %.2f V, value is 236
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_VoltageCN sprintf result is 236.00 V
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 236.00 V to I_AC_VoltageCN
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40082
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40082: reading=I_AC_Voltage_SF, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 0 hex 30
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0 to I_AC_Voltage_SF
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40083
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40083: reading=I_AC_Power, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 000000001385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 0 hex 30
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0 to I_AC_Power
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40084
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40084: reading=I_AC_Power_SF, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 00001385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 0 hex 30
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0 to I_AC_Power_SF
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40085
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40085: reading=I_AC_Frequency, unpack=n, expr=$val/100, format=%.f Hz, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 1385fffe00000000000000000000000001131aca0000ffff800000000000 with n to 4997 hex 34393937
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_AC_Frequency, val=4997, expr=$val/100
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj result is 49.97
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_Frequency does sprintf with format %.f Hz, value is 49.97
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_Frequency sprintf result is 50 Hz
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 50 Hz to I_AC_Frequency
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40086
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40086: reading=I_AC_Frequency_SF, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked fffe00000000000000000000000001131aca0000ffff800000000000 with n to 65534 hex 3635353334
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 65534 to I_AC_Frequency_SF
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40087
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40087: reading=VABlock, unpack=ns>, expr=readingsBulkUpdate($hash, 'AC_VA', $val[0] * 10 ** $val[1]), format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 00000000000000000000000001131aca0000ffff800000000000 with ns> to 0 hex 30, 0 hex 30
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for VABlock, val=0 0, expr=readingsBulkUpdate($hash, 'AC_VA', $val[0] * 10 ** $val[1])
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj result is AC_VA: 0
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value AC_VA: 0 to VABlock
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 2 to h40089
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40089: reading=I_AC_VAR, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 000000000000000001131aca0000ffff800000000000 with n to 0 hex 30
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0 to I_AC_VAR
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40090
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40090: reading=I_AC_VAR_SF, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 00000000000001131aca0000ffff800000000000 with n to 0 hex 30
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0 to I_AC_VAR_SF
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40091
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40091: reading=I_AC_PF, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 0000000001131aca0000ffff800000000000 with n to 0 hex 30
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0 to I_AC_PF
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40092
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40092: reading=I_AC_PF_SF, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 000001131aca0000ffff800000000000 with n to 0 hex 30
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0 to I_AC_PF_SF
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40093
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40093: reading=I_AC_Energie_WH_kWh, unpack=l>, expr=$val / 1000, format=%.2f kWh, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 01131aca0000ffff800000000000 with l> to 18029258 hex 3138303239323538
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj evaluates expr for I_AC_Energie_WH_kWh, val=18029258, expr=$val / 1000
2018.10.26 22:32:26 5: SEdge: CheckEval for ModbusLD_ParseObj result is 18029.258
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_Energie_WH_kWh does sprintf with format %.2f kWh, value is 18029.258
2018.10.26 22:32:26 5: SEdge: ParseObj for I_AC_Energie_WH_kWh sprintf result is 18029.26 kWh
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 18029.26 kWh to I_AC_Energie_WH_kWh
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 2 to h40095
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40095: reading=I_AC_Energy_WH_SF, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 0000ffff800000000000 with n to 0 hex 30
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0 to I_AC_Energy_WH_SF
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40096
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40096: reading=I_DC_Current, unpack=n, expr=, format=%.2f A, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked ffff800000000000 with n to 65535 hex 3635353335
2018.10.26 22:32:26 5: SEdge: ParseObj for I_DC_Current does sprintf with format %.2f A, value is 65535
2018.10.26 22:32:26 5: SEdge: ParseObj for I_DC_Current sprintf result is 65535.00 A
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 65535.00 A to I_DC_Current
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40097
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40097: reading=I_DC_Current_SF, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 800000000000 with n to 32768 hex 3332373638
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 32768 to I_DC_Current_SF
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40098
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40098: reading=I_DC_Voltage, unpack=n, expr=, format=%.2f V, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 00000000 with n to 0 hex 30
2018.10.26 22:32:26 5: SEdge: ParseObj for I_DC_Voltage does sprintf with format %.2f V, value is 0
2018.10.26 22:32:26 5: SEdge: ParseObj for I_DC_Voltage sprintf result is 0.00 V
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0.00 V to I_DC_Voltage
2018.10.26 22:32:26 5: SEdge: ParseObj moves to next object, skip 1 to h40099
2018.10.26 22:32:26 5: SEdge: ParseObj ObjInfo for h40099: reading=I_DC_Voltage_SF, unpack=n, expr=, format=, map=
2018.10.26 22:32:26 5: SEdge: ParseObj unpacked 0000 with n to 0 hex 30
2018.10.26 22:32:26 4: SEdge: ParseObj assigns value 0 to I_DC_Voltage_SF
2018.10.26 22:32:26 5: SEdge: HandleResponse got 23 readings from ParseObj for SEdge
2018.10.26 22:32:26 4: SEdge: ResponseDone, request: id 3, fCode 3, type h, adr 40071, len 29 for device SEdge reading CurrentBlock2, Current read buffer: 03033a0000000000000000fffe0199019a019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000a861, Id 3, fCode 3, response: id 3, fCode 3, type h, adr 40071, len 29, value 0000000000000000fffe0199019a019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000
2018.10.26 22:32:26 5: SEdge: DropFrame - drop 03033a0000000000000000fffe0199019a019b00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff800000000000a861
2018.10.26 22:32:59 5: SEdge: read buffer: 03031400000000000000008000000080008000fffe0002ffe5
2018.10.26 22:32:59 5: SEdge: ParseFrameStart (RTU) extracted id 3, fCode 3 and data 1400000000000000008000000080008000fffe0002
2018.10.26 22:32:59 3: SEdge: read got new data while idle, drop buffer 03031400000000000000008000000080008000fffe0002ffe5
2018.10.26 22:32:59 5: SEdge: read buffer: 03033c0003006700320000000000000000fffe0199019a019a00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff8000a8ee
2018.10.26 22:32:59 5: SEdge: ParseFrameStart (RTU) extracted id 3, fCode 3 and data 3c0003006700320000000000000000fffe0199019a019a00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff8000
2018.10.26 22:32:59 3: SEdge: read got new data while idle, drop buffer 03033c0003006700320000000000000000fffe0199019a019a00ec00ed00ec0000000000001385fffe00000000000000000000000001131aca0000ffff8000a8ee

Tschüß Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Benni am 26 Oktober 2018, 22:47:29
Das auslesen der Werte funktioniert. Nur das schreiben/setzen der Readings nicht. Ich habe im Modul eine extra Funktion geschrieben die die Readings setzen soll. Es kommen Fehler, die Reading werden gesetzt, aber es werden dann keine weiteren Register mehr ausgelesen.

Ah! Das sind die gleichen Meldungen, die ich bekommen hatte. Das war dann auch der Grund, weshalb ich das readingsBeginUpdate und das readingsEndUpdate direkt in meine expression eingebaut hatte:

https://forum.fhem.de/index.php/topic,80767.msg848823.html#msg848823

gb#
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 27 Oktober 2018, 22:02:08
Hallo Jörg / Benni,

der Fehler beim Starten von Fhem ist klar, das liegt wie schon geschrieben daran, dass beim Starten der attr-Befehl ausgewertet wird, der will die Expression testen und davor ist natürlich noch kein readingsBeginUpdate aufgerufen worden. Um das zu umgehen kann man $inCheckEval abfragen. Das ist nur gesetzt, wenn tatsächlich ein Reading gesetzt werden soll bzw. wenn ParseObj CheckEval aufruft. Nicht aber wenn die attr-Funktion die Expression testet.

Was die Funktion im Modul angeht, so rufst Du darin ja selbst readingsBeginUpdate und danach auch ReadingEndUpdate auf. Das führt dann zu dem Problemen dass der spätere Aufruf von readingsBulkUpdate in ParseObj selbst nach Deinem Aufruf von readingsEndUpdate kommt. Das crasht dann.

Lösung: readingsBeginUpdate und readingsEndUpdate müssen aus Deiner Funktion und aus den Expressions raus. Zusätzlich idealerweise $inCheckEval abfragen.

Ein Blick in die Funktion ModbusLD_ParseObj im Modul sollte es erklären :-)

Gruss
   Stefan

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 28 Oktober 2018, 19:02:31
Hallo Stefan / Benni,

habe das Modul angepasst. Bei mir läuft es jetzt. Ich hänge es mal an. Wer möchte kann ja mal testen.

Stefan vielen Dank für deine Hilfe.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 03 November 2018, 17:32:21
Hallo zusammen,

ich habe hier mal eine Frage: Wie bekomme ich die aktuelle Version vom 98_Modbus.pm? Ein Update sagt bei mir das nichts zu tun wäre. Der Versionscheck auf Modbus.pm sagt mir allerdings dass ich diese Version habe:
98_Modbus.pm 15871 2018-01-13
So wie eure Diskussion hier aber verstanden habe ist die aktuelle Version vom 18.10.2018  :-\
Gibts da einen Trick?

Vielen Dank und Grüße
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 03 November 2018, 19:27:30
Hallo,

die aktuelle Version steht im Post 152 dieses Threads:
https://forum.fhem.de/index.php/topic,75638.150.html

In der neuen Version hat sich sehr viel geändert, deshalb habe ich sie auch noch nicht eingecheckt und hoffe auf weitere Testberichte ;-)

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 03 November 2018, 20:48:10
Vielen Dank Stefan! Dann schau mer mal  :D
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 04 November 2018, 15:26:07
Hallo zusammen,

jetzt hätte ich nochmal eine Frage: Wie habt ihr die Sache mit der Skalierung in den Griff bekommen? Ich habe immer wieder Ausreißer noch oben und unten. Da schaut im Plot besonders hübsch aus. Ich habe die aktuelle Leistung bei mir so definiert:
obj-h40083-expr $val * (10 ** ReadingsNum ('SolarEdge' ,'I_AC_Power_SF',0))
obj-h40083-len 2
obj-h40083-reading I_AC_Power
obj-h40083-unpack s>

Ich dachte dass dieser len 2 der Schlüssel zum Erfolg ist, leider nicht :(

Grüße
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 04 November 2018, 15:29:20
obj-h40083-reading I_AC_Power
obj-h40083-len 2
obj-h40083-unpack s>s>
obj-h40083-expr $val[0] * (10 ** $val[1])

Damit liest du beide Werte aus und berechnest den Wert direkt (nicht über Zugriff auf eine andere, evtl. davor/danach ausgelesene Variable). Mit $val[0,1,2,..] stehen alle gleichzeitig ausgelesenen Werte zur Verfügung.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 04 November 2018, 15:29:59
Hallo Chris_XXX,


versuche mal die im Post (https://forum.fhem.de/index.php/topic,80767.msg850976.html#msg850976) angehangen Datei. Da wird alles berechnet. Einfach ins FHEM legen, Rechte anpassen, fhem neu starten.

def:  defmod SEdge SolarEdge ID 60 IP:PORT RTU oder TCP

pejonp

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 04 November 2018, 19:34:25
Herzlichen Dank an euch beide.
Ich habe das Modul von Jörg jetzt am laufen.
Folgendes ist mir dabei aufgefallen:
Bei den Spannungen zwischen Phase und N ist ein Kommafehler:

I_AC_VoltageAN 2279.00 V
I_AC_VoltageBN 2270.00 V
I_AC_VoltageCN 2271.00 V

Abgesehen von diesem kleinen Schönheitsfehler ist das Modul aber super. Ich bin voll begeistert.

Gibt es auch eigentlich auch eine Möglichkeit die erzeugte Tagesleistung vom WR auszulesen?

Grüße
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 04 November 2018, 21:28:39
@Chris_XXX

Versuche mal ein Update. Ich habe das Modul auf github zu liegen. https://github.com/pejonp/FHEM---SolarEdge

update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt

Dort habe ich noch ein Paar Änderungen vorgenommen.
in den Readings: pv_energy pv_energytoday pv_energytoweek pv_energytomont ... wird die erzeugte Energie gespeichert. Ist aber noch nicht fertig, daher erst mal testen.

pejonp

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 07 November 2018, 09:47:57
Hallo pejonp, ich habe das Modul getestet und bin begeistert.
Der einizge Fehler den ich bisher feststellen konnte ereignete sich bei der Installation:
2018.11.05 07:16:38 1 : New entries in the CHANGED file:
2018.11.05 07:16:38 1 : 4.11.2018
2018.11.05 07:16:38 1 : Readings: pv_energy pv_energytoday pv_energytoweek pv_energytomont ...
2018.11.05 07:16:38 1 : Calling /usr/bin/perl ./contrib/commandref_join.pl -noWarnings, this may take a while
2018.11.05 07:16:55 3 : SolarEdge: MapConvert called from ModbusLD_ParseObj did not find 3 in map 1:Aus, 2:Nachtmodus, 4:WR_An
2018.11.05 07:17:56 3 : SolarEdge: MapConvert called from ModbusLD_ParseObj did not find 3 in map 1:Aus, 2:Nachtmodus, 4:WR_An
2018.11.05 07:18:55 3 : SolarEdge: MapConvert called from ModbusLD_ParseObj did not find 3 in map 1:Aus, 2:Nachtmodus, 4:WR_An
2018.11.05 07:19:55 3 : SolarEdge: MapConvert called from ModbusLD_ParseObj did not find 3 in map 1:Aus, 2:Nachtmodus, 4:WR_An
2018.11.05 07:20:55 3 : SolarEdge: MapConvert called from ModbusLD_ParseObj did not find 3 in map 1:Aus, 2:Nachtmodus, 4:WR_An
2018.11.05 07:23:55 3 : SolarEdge: MapConvert called from ModbusLD_ParseObj did not find 3 in map 1:Aus, 2:Nachtmodus, 4:WR_An

Tut der Sache aber keinen Abbruch, funktioniert trotzdem.

Jetzt bin ich aber bei einem neuen Problem das meine Horizont übersteigt.
Ich möchte, sobald meine PV Anlage einen gewissen Wert an Leistung liefert, eine Aktion auslösen. Aktuell verschicke ich eine EMail, nachher soll eine Steckdose geschaltet werden. Damit die Steckdose im Falle von abfallender Leistung an der PV Anlage aber nicht sofort ausgeht, sondern eine Mindestlaufzeit hat, habe ich einen Sleep eingebaut.
Dazu habe ich ein Notify angelegt das so aussieht:

SolarEdge:I_AC_Power.* {if ($EVTPART1 < 300 ) {
 fhem{exmail('Darthvader@Deathstar.galaxy', 'myHome: Strom weg', "Die aktuelle Leistung betraegt $EVTPART1 Watt")};
}else {
 if ($EVTPART1 > 1500 ) {
 fhem{exmail('Darthvader@Deathstar.galaxy', 'myHome: Strom da', "Die aktuelle Leistung betraegt $EVTPART1 Watt"), sleep 120};
  }
  }
 }

Theoretisch und in Trockenübungen hat das auch funktioniert. Im praktischen Einsatz gefällt das dem FHEM aber gar nicht, er bleibt für ca. 2 minuten hängen bis er wieder im reagiert. Im Log sehe ich folgendes:

2018.11.07 09:31:55 3: HASH(0x3991c78) : Unknown command HASH(0x3991c78), try help.
2018.11.07 09:31:55 3: nt.PV.Energie.da return value: Unknown command HASH(0x3991c78), try help.
2018.11.07 09:31:55 3: 192.168.99.14:502 disconnected, waiting to reappear (SolarEdge)
2018.11.07 09:31:55 3: 192.168.99.14:502 reappeared (SolarEdge)
2018.11.07 09:31:57 3: SolarEdge: ResponseTimeout called, devhash=HASH(0x2e41d80), name of devhash=SolarEdge
2018.11.07 09:31:57 3: SolarEdge: Timeout waiting for a modbus response, request: id 1, fCode 3, tid 123, type h, adr 40100, len 8 for device SolarEdge reading Block_DC_Power, read buffer empty

Hat jemand eine Idee was hier falsch läuft?

Danke und Grüße
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 07 November 2018, 10:06:26
Hallo Christian,

Ich würde das sleep 120 rausnehmen und das wiederholte abfragen anders einstellen. Müsste ich mir erst einmal leif ansehen.

Das mit der map Funktion und dem Fehler sehe ich mir mal. Dauert aber ein bisschen.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 07 November 2018, 10:08:38
Hallo Jörg,

kein Thema, ich wollte dir nur eine Rückmeldung geben nachdem du dir schon soviel Mühe gemacht hast.
Dann muss ich wohl mal ein bischen Hirnen wie ich das anders hinbekomme.... kommt Zeit kommt Rat ;)

Grüße
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 07 November 2018, 10:12:47
Hallo Christian,

Versuche beim notify  mal

disabledAfterTrigger someSeconds
disable the execution for someSeconds after it triggered

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 07 November 2018, 21:09:00
Mit DOIF kann man solche bedingten Reaktionen mit diversen Verzögerungen auch schön realisieren.

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 08 November 2018, 18:16:25
Vielen Dank Stefan für den Tip mit DOIF. Echt nützlich!

Grüße
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 10 November 2018, 21:08:28
Ich bin ja immer noch begeistert von diesem Modul. Stefan und Jörg, packt ihr eure beiden Module auch in das offizelle Repository?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefanStrobel am 11 November 2018, 15:11:23
Hallo,

die neue Version von 98_Modbus.pm checke ich ein, sowie sie stabil scheint :-)

Gruss
   Stefan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 16 November 2018, 12:08:03
Hallo Jörg,

noch eine Frage zu deinem Modul. Wann sollte pv_energytoweek wieder bei Null anfangen? Bei mir bleibt pv_energytoweek = pv_energymonth?

Grüße
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: kingmathers am 16 November 2018, 12:14:45
Hallo,

nur als Alternative: Wenn man die Stromkosten zählen/berechnen will mit ElectricityCalculator, dann zählt dieses Modul automatisch die kWh für den Tag/Monat/Jahr und liefert diese als Readings. Ich habe das auch erst später entdeckt und hatte mir das ebenfalls selbst mit subs und dummys zusammengebstaltet, aber warum kompliziert wenn es auch einfach geht :)

Grüße,
Philipp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 16 November 2018, 13:35:13
Hallo Christian,

Leider habe ich beim wochenzähler nicht weitergemacht weil mir zum auswerten des wochtages nichts eingefallen. Entweder ignorieren oder ich versuche mich nochmal daran. Kann aber noch nicht sagen wann.
Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 19 November 2018, 17:07:30
Hallo Philipp und Jörg,

erstmal danke für den Tip mit dem Zähler. Das klappt ganz gut. Und falls Jörg noch einen Tester sucht, ich melde mich gerne freiwillig :)

Danke und Gruß
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: schachti am 27 Mai 2019, 16:26:18
Ich möchte in Kürze ebenfalls einen SolarEdge-Wechselrichter auslesen, einen SE 5000 HD. Sollte das auch mit dem hier vorgestellten Modul klappen? Letzter Stand im Thread (November) war ja, dass sowohl das neuere Modbus-Modul als auch das SolarEdge-Modul noch nicht offiziell verfügbar sind...
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 27 Mai 2019, 16:57:27
@schachti

Was meinst du damit ? Gibt es für die se 5000 kein modbus Adapter vom Hersteller?
Pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Butzel am 27 Mai 2019, 17:17:01
...SolarEdge-Wechselrichter auslesen, einen SE 5000 HD. ...

auslesen klappt per ModBus. Sieht ein wenig seltsam aus, weil noch nicht zuende konfiguriert.


AC-Energy 5997.742 2019-05-27 17:10:51
AC-Power 0.00 2019-05-27 17:10:50
AC-Volt-A 0.00 2019-05-27 17:10:51 
DC-Current hex=6586, string=e., s=-31131, s>=25990, S=34405, S>=25990 2019-05-27 17:10:51
DC-Power 0.00 2019-05-27 17:10:52
DC-Voltage 0 2019-05-27 17:10:52
HeatSinkTemp 42.04 2019-05-27 17:10:52
Status 4 2018-05-27 20:34:36
scan-h000016 hex=0000, string=.., s=0, s>=0, S=0, S>=0 2019-05-27 17:10:50
scan-h000017 hex=0000, string=.., s=0, s>=0, S=0, S>=0 2019-05-27 17:10:52
scan-h000018 hex=0000, string=.., s=0, s>=0, S=0, S>=0 2019-05-27 17:10:51
scan-h000019 hex=0000, string=.., s=0, s>=0, S=0, S>=0 2019-05-27 17:10:50
scan-h000020 hex=5345, string=SE, s=17747, s>=21317, S=17747, S>=21317 2019-05-27 17:10:51
scan-h000032 hex=0000, string=.., s=0, s>=0, S=0, S>=0 2019-05-27 17:10:51
scan-h000035 hex=0000, string=.., s=0, s>=0, S=0, S>=0 2019-05-27 17:10:51
scan-h000036 hex=0000, string=.., s=0, s>=0, S=0, S>=0 2019-05-27 17:10:51
scan-h000094 hex=84ae, string=.., s=-20860, s>=-31570, S=44676, S>=33966 2019-05-27 17:10:51
state disconnected 2019-05-27 17:10:52

weiter verfolgt habe ich das nicht, weil ich jetzt mit Solarview auslese. Der neue Zähler muss auch noch eingebaut werden, damit den Eigenverbrauch im Portal erkennen kann.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 27 Mai 2019, 22:41:37
@Butzel

Als Anlage die Beschreibung der Modbus-Register. Muss im Modul noch erweitert werden.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Butzel am 27 Mai 2019, 23:19:25
Danke für die Doku. Ich habe die glaube ich auch, sogar in deutsch, wenn Bedarf besteht.
Habe schon Stunden damit verbracht. Irgendwie fehlt mir manchmal der Durchblick und die Ruhe dazu. Vielleicht willl sich schachti damit näher befassen ? Oder wir arbeiten beide daran parallel ?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: schachti am 28 Mai 2019, 10:54:08
Bin auf jeden Fall bereit alles was ich kann beizutragen, habe aber bisher noch nie etwas in Richtung FHEM entwickelt und wüsste nun gar nicht, was zu tun. Wie kann ich helfen? Device habe ich angelegt
define PV SolarEdge 1 60 192.168.178.XX RTU
Leider habe ich keinerlei Readings und bin etwas überfordert mit den Attributen, die ich setzen könnte.

Die folgenden INTERNALS werden mir angezeigt:
CFGFN
DEF 1 60 192.168.178.XX RTU
DeviceName 192.168.178.XX:502
EXPECT idle
FD 27
FUUID 5cecef65-f33f-d5fc-dee5-2ee8c0118e19b3d6
INTERVAL 60
IODev PV
LASTOPEN 1559032854.21293
MODBUSID 1
MODE master
MODULEVERSION Modbus 4.1.2 - 17.4.2019
NAME PV
NOTIFYDEV global
NR 690
NTFY_ORDER 50-PV
PARTIAL
PROTOCOL RTU
STATE opened
TCPConn 1
TIMEOUTS 36
TRIGGERTIME 1559033395.16476
TRIGGERTIME_FMT 2019-05-28 10:49:55
TRIGGERTIME_SAVED
TYPE SolarEdge
devioLoglevel 3
lastUpdate 1559033335.16476
nextOpenDelay 60
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Butzel am 28 Mai 2019, 10:57:33
warum hast Du RTU genommen und nicht TCP ?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: schachti am 28 Mai 2019, 11:02:42
Ich Depp, blind das falsche abgetippt.  :-[   Schon sieht's viiiel besser aus.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Butzel am 28 Mai 2019, 14:33:22
Dann kann es jetzt weiter gehen.
Ich muss erst mal schauen, warum meine Produktion als deckungsgleicher Eigenverbrauch angezeigt wird (nicht mehr grün, sondern blau). Das ist so seit einem Switch-Ausfall und der Installation von SolarView. Vielleicht liefert die SV auch ein Ergebnis an den Eigenverbrauch.....
Ich kann das kurzfristig ändern (wieder in grün), indem ich in der Portal-Admin den Eigenverbrauchszähler deaktiviere. Der kommt aber nach einer kurzen Zeit wieder.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: schachti am 29 Mai 2019, 18:11:23
Eine Sache ist mir aufgefallen: das Mapping der Statuswerte (I_Status) ist unvollständig - gemappt werden nur 1 (Aus), 2 (Sleep) und 4 (An), laut https://www.solaredge.com/sites/default/files/sunspec-implementation-technical-note.pdf (https://www.solaredge.com/sites/default/files/sunspec-implementation-technical-note.pdf) gehen aber die möglichen Werte von 1 bis 8.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 29 Mai 2019, 18:17:33
@schachti

beim SE5K für den ich das Modul geschrieben habe, gibt es nur diese Werte. Für andere WR muss es angepaßt werden und auch noch andere Werte. Bin aber noch nicht dazu gekommen und ist ja auch die Frage welche Werte werden benötigt oder sind sinnvoll.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: CaptainHook am 10 Juni 2019, 16:34:56
Hi,

ich habe mir das Module mal geforkt und ein paar kleine Anpassungen gemacht; das Repro liegt unter https://github.com/CaptainRoot/FHEM---SolarEdge.

Was habe ich geändert.
- Erweiterung um einen externen Zähler (Modbuszähler)
- "Englische" Readings
- Phasen werden wie in der Spec mit A,B,C bezeichnet
- Wie von schachti angemerkt die Status angepasst (in der englischen Spec gibt es mehr als in der deutschen Übersetzung)

Wenn gewünscht erstelle ich gerne ein pull-Request

Grüße,
Stephan
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: panzi am 20 Juni 2019, 16:03:20
Hallo,
hab seit einiger zeit meinen SE wr in fhem hier super integriert.
Ich habe allerdings auch einen s0 Zähler eingebaut und kann im solaredge monitoring (website und app) hier den aktuellen verbrauch und die einspeisung/bezug anzeigen.
Kann man das auch irgendwie nach fhem bekommen?
danke
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: CaptainHook am 20 Juni 2019, 16:10:31
Hi,

Sicher das es ein S0 zähler ist? An den solarEdge Wechselrichter kommt eigentlich ein RS485 / Modbus Zähler.

Wenn du möchtest kannst mal das "Modul" von meinem GitHub testen, da ist der Meter 1 (über RS485/Mobus am WR) mit drin.
Da sind (fast) alle Werte mit drin die auch an das Monitoring von SolarEdge gehen drin (Import/ Export usw)

Das Modul erweitere ich derzeit fast täglich. Kannst es dir ja mal aschauen und falls dir was auffällt bzw du wünsche hast sag Bescheid

Grüße,
Stephan

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: panzi am 20 Juni 2019, 18:16:42
ja - ist ein s0 Zähler der über ein adapterkabel beim wr angeschlossen ist
KEIN modbus zähler
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Metalomaniac am 07 Juli 2019, 09:32:28
Hallo zusammen,
bin neu hier und seit kurzem mit SE Wechselrichter (mit SE Modbus Zähler) am Start.
Hab ihn mit SolarEdgeAPI erfolgreich eingebunden, hätte aber gerne mehr als alle paar Minuten einen Wert.

Was ich bis jetzt mit der API mache: 
aus den Produktions-/Verbrauchsdaten Regeln um Steckdosen (in Zukunft irgendwann einen go-echarger Auto-Lader) zu schalten.
 
An ModBusAttr (nach wiki-Eintrag) und Captains Modul scheitere ich aber bis jetzt.
Wo muss ich weiterlesen, damit ich FHEM gut genug verstehe um das hinzubekommen?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 07 Juli 2019, 10:51:42
@Metalomaniac

SOLAREDGE API ist aber nicht modbus..

Versuche es mal mit diesem Modul (Modbus) https://forum.fhem.de/index.php/topic,80767.msg853967.html#msg853967

Hast du alle erforderlichen Module installiert (Perl,fhem,...).

Mach mal ein list von deiner Modbus Definition.
Wie hast du den WR angebunden : Modbus IP oder rs485 .

Pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Metalomaniac am 07 Juli 2019, 18:26:49
Ich versuch mich heute abend mal an deinem Modulvorschlag.
Das API nicht Modbus ist, sondern über das SE Monitoring Web funktioniert ist mir klar.

"Angeschlossen" hab ich meinen WR über Modbus IP.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Metalomaniac am 07 Juli 2019, 22:49:56
Habe das Modul gestartet und meinen WR definiert.
Ergebnis:

Internals:
   CFGFN     
   DEF        1 60 192.168.178.79:502 TCP
   DeviceName 192.168.178.79:502
   EXPECT     idle
   FD         16
   FUUID      5d22590b-f33f-ee07-0ce3-bf3eb697079f769e
   INTERVAL   60
   IODev      SEdge
   LASTOPEN   1562532107.96569
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.1.2 - 17.4.2019
   NAME       SEdge
   NOTIFYDEV  global
   NR         600
   NTFY_ORDER 50-SEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TIMEOUTS   20
   TRIGGERTIME 1562532410.02683
   TRIGGERTIME_FMT 2019-07-07 22:46:50
   TYPE       SolarEdge
   devioLoglevel 3
   lastUpdate 1562532350.02683
   nextOpenDelay 60
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2019-07-07 22:41:47   state           opened
   REMEMBER:
     lid        1
     lname      SEdge
     lsend      1562532356.05969
   defptr:
     SEdge      1
   lastRead:
Attributes:
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 08 Juli 2019, 00:45:37
@Metalomaniac

verbose = 5 und log anhängen. Ansonsten muss ich meine Glaskugel befragen. Etwas mehr Angaben währe hilfreich.
Stimmt die ID,Port,... ?

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Metalomaniac am 08 Juli 2019, 23:34:58
Hallo, ich habe momentan Captains Modul eingebunden, aber ich denke, dass ist deinem recht ähnlich...
ID sollte mit "1" bei TCP stimmen, denke ich.
Ports habe ich schon 1502 und 502 ausprobiert (an WR und FHEM umgestellt)

FHEM und mein WR reden irgendwie nicht miteinander.

auf jeden Fall sieht es so aus:

Internals:
   CFGFN     
   DEF        1 60 192.168.178.79:1502 TCP
   DeviceName 192.168.178.79:1502
   EXPECT     idle
   FD         7
   FUUID      5d239ebc-f33f-ee07-b9c8-b46a58ee3a4f3a3a
   INTERVAL   60
   IODev      TestEdge
   LASTOPEN   1562619750.40032
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.1.2 - 17.4.2019
   NAME       TestEdge
   NOTIFYDEV  global
   NR         122
   NTFY_ORDER 50-TestEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TIMEOUTS   225
   TRIGGERTIME 1562621258.61608
   TRIGGERTIME_FMT 2019-07-08 23:27:38
   TRIGGERTIME_SAVED
   TYPE       SolarEdge
   devioLoglevel 3
   lastUpdate 1562621198.61608
   nextOpenDelay 60
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2019-07-08 23:02:30   state           opened
   REMEMBER:
     lid        1
     lname      TestEdge
     lsend      1562621214.71512
   defptr:
     TestEdge   1
   lastRead:
Attributes:
   room       Photovoltaik
   verbose    5

2019.07.08 23:29:38 5: TestEdge: GetUpdate called from HandleTimeout
2019.07.08 23:29:38 5: TestEdge: SetartUpdateTimer called from GetUpdate updated timer, will call GetUpdate in 60.0 sec at 2019-07-08 23:30:38, interval 60
2019.07.08 23:29:38 5: TestEdge: GetUpdate objects from attributes:
2019.07.08 23:29:38 5: TestEdge: GetUpdate full object list: h40000 h40004 h40020 h40044 h40052 h40068 h40069 h40071 h40076 h40077 h40078 h40079 h40080 h40081 h40082 h40083 h40085 h40087 h40089 h40091 h40093 h40096 h40098 h40100 h40103 h40107 h40123 h40139 h40155 h40163 h40171 h40187 h40188 h40190 h40195 h40196 h40197 h40198 h40199 h40204 h40206 h40211 h40216 h40221 h40226 h40243
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40000 => C_SunSpec_ID, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request C_SunSpec_ID
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40004 => C_Manufacturer, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request C_Manufacturer
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40020 => Block_C_Model, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_C_Model
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40044 => C_Version, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request C_Version
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40052 => C_SerialNumber, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request C_SerialNumber
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40068 => C_DeviceAddress, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request C_DeviceAddress
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40069 => C_SunSpec_DID, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request C_SunSpec_DID
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40071 => Block_AC_Current, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_AC_Current
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40076 => I_AC_VoltageAB, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request I_AC_VoltageAB
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40077 => I_AC_VoltageBC, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request I_AC_VoltageBC
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40078 => I_AC_VoltageCA, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request I_AC_VoltageCA
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40079 => I_AC_VoltageAN, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request I_AC_VoltageAN
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40080 => I_AC_VoltageBN, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request I_AC_VoltageBN
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40081 => I_AC_VoltageCN, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request I_AC_VoltageCN
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40082 => I_AC_Voltage_SF, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request I_AC_Voltage_SF
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40083 => Block_AC_Power, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_AC_Power
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40085 => Block_AC_Frequency, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_AC_Frequency
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40087 => Block_AC_VA, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_AC_VA
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40089 => Block_AC_VAR, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_AC_VAR
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40091 => Block_AC_PF, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_AC_PF
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40093 => Block_AC_Energy_WH, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_AC_Energy_WH
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40096 => Block_DC_Current, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_DC_Current
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40098 => Block_DC_Voltage, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_DC_Voltage
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40100 => Block_DC_Power, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request Block_DC_Power
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40103 => I_Temp_HeatSink, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request I_Temp_HeatSink
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40107 => I_Status, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request I_Status
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40123 => X_Meter_1_C_Manufacturer, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_C_Manufacturer
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40139 => X_Meter_1_Block_C_Model, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_C_Model
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40155 => X_Meter_1_C_Option, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_C_Option
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40163 => X_Meter_1_C_Version, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_C_Version
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40171 => X_Meter_1_C_SerialNumber, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_C_SerialNumber
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40187 => X_Meter_1_C_DeviceAddress, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_C_DeviceAddress
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40188 => X_Meter_1_C_SunSpec_DID, poll = once, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_C_SunSpec_DID
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40190 => X_Meter_1_Block_AC_Current, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_AC_Current
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40195 => X_Meter_1_M_AC_Voltage_LN, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_M_AC_Voltage_LN
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40196 => X_Meter_1_M_AC_Voltage_AN, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_M_AC_Voltage_AN
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40197 => X_Meter_1_M_AC_Voltage_BN, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_M_AC_Voltage_BN
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40198 => X_Meter_1_M_AC_Voltage_CN, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_M_AC_Voltage_CN
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40199 => X_Meter_1_Block_AC_Voltage_LL, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_AC_Voltage_LL
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40204 => X_Meter_1_Block_AC_Frequency, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_AC_Frequency
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40206 => X_Meter_1_Block_AC_Power, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_AC_Power
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40211 => X_Meter_1_Block_AC_VA, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_AC_VA
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40216 => X_Meter_1_Block_AC_VAR, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_AC_VAR
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40221 => X_Meter_1_Block_AC_PF, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_AC_PF
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40226 => X_Meter_1_Block_Energy_W, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_Energy_W
2019.07.08 23:29:38 5: TestEdge: GetUpdate check h40243 => X_Meter_1_Block_Energy_VA, poll = 1, last = 0
2019.07.08 23:29:38 4: TestEdge: GetUpdate will request X_Meter_1_Block_Energy_VA
2019.07.08 23:29:38 5: TestEdge: GetUpdate tries to combine read commands
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for C_SunSpec_ID (h40000) with C_Manufacturer (h40004), span=12, max=30, drop read for h40004
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for C_SunSpec_ID (h40000) with Block_C_Model (h40020), span=28, max=30, drop read for h40020
2019.07.08 23:29:38 5: TestEdge: GetUpdate cant combine request for C_SunSpec_ID / h40000 with C_Version / h40044, span 52 > max 30
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for C_Version (h40044) with C_SerialNumber (h40052), span=16, max=30, drop read for h40052
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for C_Version (h40044) with C_DeviceAddress (h40068), span=25, max=30, drop read for h40068
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for C_Version (h40044) with C_SunSpec_DID (h40069), span=26, max=30, drop read for h40069
2019.07.08 23:29:38 5: TestEdge: GetUpdate cant combine request for C_Version / h40044 with Block_AC_Current / h40071, span 32 > max 30
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with I_AC_VoltageAB (h40076), span=6, max=30, drop read for h40076
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with I_AC_VoltageBC (h40077), span=7, max=30, drop read for h40077
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with I_AC_VoltageCA (h40078), span=8, max=30, drop read for h40078
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with I_AC_VoltageAN (h40079), span=9, max=30, drop read for h40079
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with I_AC_VoltageBN (h40080), span=10, max=30, drop read for h40080
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with I_AC_VoltageCN (h40081), span=11, max=30, drop read for h40081
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with I_AC_Voltage_SF (h40082), span=12, max=30, drop read for h40082
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with Block_AC_Power (h40083), span=14, max=30, drop read for h40083
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with Block_AC_Frequency (h40085), span=16, max=30, drop read for h40085
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with Block_AC_VA (h40087), span=18, max=30, drop read for h40087
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with Block_AC_VAR (h40089), span=20, max=30, drop read for h40089
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with Block_AC_PF (h40091), span=22, max=30, drop read for h40091
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with Block_AC_Energy_WH (h40093), span=25, max=30, drop read for h40093
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with Block_DC_Current (h40096), span=27, max=30, drop read for h40096
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_AC_Current (h40071) with Block_DC_Voltage (h40098), span=29, max=30, drop read for h40098
2019.07.08 23:29:38 5: TestEdge: GetUpdate cant combine request for Block_AC_Current / h40071 with Block_DC_Power / h40100, span 31 > max 30
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_DC_Power (h40100) with I_Temp_HeatSink (h40103), span=4, max=30, drop read for h40103
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for Block_DC_Power (h40100) with I_Status (h40107), span=8, max=30, drop read for h40107
2019.07.08 23:29:38 5: TestEdge: GetUpdate cant combine request for Block_DC_Power / h40100 with X_Meter_1_C_Manufacturer / h40123, span 31 > max 30
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_Manufacturer (h40123) with X_Meter_1_Block_C_Model (h40139), span=24, max=30, drop read for h40139
2019.07.08 23:29:38 5: TestEdge: GetUpdate cant combine request for X_Meter_1_C_Manufacturer / h40123 with X_Meter_1_C_Option / h40155, span 40 > max 30
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_Option (h40155) with X_Meter_1_C_Version (h40163), span=16, max=30, drop read for h40163
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_Option (h40155) with X_Meter_1_C_SerialNumber (h40171), span=24, max=30, drop read for h40171
2019.07.08 23:29:38 5: TestEdge: GetUpdate cant combine request for X_Meter_1_C_Option / h40155 with X_Meter_1_C_DeviceAddress / h40187, span 33 > max 30
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_C_SunSpec_DID (h40188), span=2, max=30, drop read for h40188
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_Block_AC_Current (h40190), span=8, max=30, drop read for h40190
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_M_AC_Voltage_LN (h40195), span=9, max=30, drop read for h40195
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_M_AC_Voltage_AN (h40196), span=10, max=30, drop read for h40196
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_M_AC_Voltage_BN (h40197), span=11, max=30, drop read for h40197
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_M_AC_Voltage_CN (h40198), span=12, max=30, drop read for h40198
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_Block_AC_Voltage_LL (h40199), span=17, max=30, drop read for h40199
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_Block_AC_Frequency (h40204), span=19, max=30, drop read for h40204
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_Block_AC_Power (h40206), span=24, max=30, drop read for h40206
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_C_DeviceAddress (h40187) with X_Meter_1_Block_AC_VA (h40211), span=29, max=30, drop read for h40211
2019.07.08 23:29:38 5: TestEdge: GetUpdate cant combine request for X_Meter_1_C_DeviceAddress / h40187 with X_Meter_1_Block_AC_VAR / h40216, span 34 > max 30
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_Block_AC_VAR (h40216) with X_Meter_1_Block_AC_PF (h40221), span=10, max=30, drop read for h40221
2019.07.08 23:29:38 5: TestEdge: GetUpdate combines request for X_Meter_1_Block_AC_VAR (h40216) with X_Meter_1_Block_Energy_W (h40226), span=27, max=30, drop read for h40226
2019.07.08 23:29:38 5: TestEdge: GetUpdate cant combine request for X_Meter_1_Block_AC_VAR / h40216 with X_Meter_1_Block_Energy_VA / h40243, span 44 > max 30
2019.07.08 23:29:38 5: TestEdge: GetUpdate doesn't sort objList before sending requests
2019.07.08 23:29:38 4: TestEdge: DoRequest called from GetUpdate created request: id 1, fCode 3, tid 176, type h, adr 40216, len 27 for device TestEdge reading X_Meter_1_Block_AC_VAR (getUpdate), read buffer empty
2019.07.08 23:29:38 5: TestEdge: QueueRequest called from DoRequest (TestEdge) with h40216, qlen 0
2019.07.08 23:29:38 4: TestEdge: ProcessRequestQueue called from QueueRequest, qlen 1, next entry to id 1 (TestEdge), last send to this device was 44.008 secs ago, last read never, last read on bus never from id 1 (TestEdge)
2019.07.08 23:29:38 5: TestEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 23:28:54.789) for TestEdge, delay 43.908secs over
2019.07.08 23:29:38 4: TestEdge: ProcessRequestQueue (V4.1.2 - 17.4.2019) qlen 1, sending 00b00000000601039d18001b request: id 1, fCode 3, tid 176, type h, adr 40216, len 27 for device TestEdge reading X_Meter_1_Block_AC_VAR (getUpdate), queued 0.00 secs ago, read buffer empty
2019.07.08 23:29:38 5: SW: 00b00000000601039d18001b
2019.07.08 23:29:38 5: TestEdge: StartQueueTimer called from ProcessRequestQueue removes internal timer because it is not needed now
2019.07.08 23:29:38 4: TestEdge: DoRequest called from GetUpdate created request: id 1, fCode 3, tid 173, type h, adr 40044, len 26 for device TestEdge reading C_Version (getUpdate), read buffer empty
2019.07.08 23:29:38 5: TestEdge: QueueRequest called from DoRequest (TestEdge) with h40044, qlen 0
2019.07.08 23:29:38 5: TestEdge: StartQueueTimer called form QueueRequest sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:38 4: TestEdge: DoRequest called from GetUpdate created request: id 1, fCode 3, tid 10, type h, adr 40155, len 24 for device TestEdge reading X_Meter_1_C_Option (getUpdate), read buffer empty
2019.07.08 23:29:38 5: TestEdge: QueueRequest called from DoRequest (TestEdge) with h40155, qlen 1
2019.07.08 23:29:38 4: TestEdge: DoRequest called from GetUpdate created request: id 1, fCode 3, tid 7, type h, adr 40100, len 8 for device TestEdge reading Block_DC_Power (getUpdate), read buffer empty
2019.07.08 23:29:38 5: TestEdge: QueueRequest called from DoRequest (TestEdge) with h40100, qlen 2
2019.07.08 23:29:38 4: TestEdge: DoRequest called from GetUpdate created request: id 1, fCode 3, tid 180, type h, adr 40187, len 29 for device TestEdge reading X_Meter_1_C_DeviceAddress (getUpdate), read buffer empty
2019.07.08 23:29:38 5: TestEdge: QueueRequest called from DoRequest (TestEdge) with h40187, qlen 3
2019.07.08 23:29:38 4: TestEdge: DoRequest called from GetUpdate created request: id 1, fCode 3, tid 99, type h, adr 40071, len 29 for device TestEdge reading Block_AC_Current (getUpdate), read buffer empty
2019.07.08 23:29:38 5: TestEdge: QueueRequest called from DoRequest (TestEdge) with h40071, qlen 4
2019.07.08 23:29:38 4: TestEdge: DoRequest called from GetUpdate created request: id 1, fCode 3, tid 121, type h, adr 40000, len 28 for device TestEdge reading C_SunSpec_ID (getUpdate), read buffer empty
2019.07.08 23:29:38 5: TestEdge: QueueRequest called from DoRequest (TestEdge) with h40000, qlen 5
2019.07.08 23:29:38 4: TestEdge: DoRequest called from GetUpdate created request: id 1, fCode 3, tid 52, type h, adr 40123, len 24 for device TestEdge reading X_Meter_1_C_Manufacturer (getUpdate), read buffer empty
2019.07.08 23:29:38 5: TestEdge: QueueRequest called from DoRequest (TestEdge) with h40123, qlen 6
2019.07.08 23:29:38 4: TestEdge: DoRequest called from GetUpdate created request: id 1, fCode 3, tid 8, type h, adr 40243, len 17 for device TestEdge reading X_Meter_1_Block_Energy_VA (getUpdate), read buffer empty
2019.07.08 23:29:38 5: TestEdge: QueueRequest called from DoRequest (TestEdge) with h40243, qlen 7
2019.07.08 23:29:39 5: TestEdge: ProcessRequestQueue called from HandleTimeout returns, Fhem is still waiting for response, request: id 1, fCode 3, tid 176, type h, adr 40216, len 27 for device TestEdge reading X_Meter_1_Block_AC_VAR (getUpdate), queued 1.01 secs ago, sent 1.01 secs ago, read buffer empty, qlen 8, try again in 1 seconds
2019.07.08 23:29:39 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:40 3: TestEdge: Timeout waiting for a modbus response request: id 1, fCode 3, tid 176, type h, adr 40216, len 27 for device TestEdge reading X_Meter_1_Block_AC_VAR (getUpdate), queued 2.00 secs ago, sent 2.00 secs ago, read buffer empty
2019.07.08 23:29:40 5: TestEdge: DropFrame - drop
2019.07.08 23:29:40 5: TestEdge: StartQueueTimer called form ResponseTimeout sets internal timer to call Modbus_ProcessRequestQueue in 0.000 seconds
2019.07.08 23:29:40 4: TestEdge: ProcessRequestQueue called from HandleTimeout, qlen 8, next entry to id 1 (TestEdge), last send to this device was 2.001 secs ago, last read never, last read on bus never from id 1 (TestEdge)
2019.07.08 23:29:40 5: TestEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 23:29:38.800) for TestEdge, delay 1.901secs over
2019.07.08 23:29:40 4: TestEdge: ProcessRequestQueue (V4.1.2 - 17.4.2019) qlen 8, sending 00ad0000000601039c6c001a request: id 1, fCode 3, tid 173, type h, adr 40044, len 26 for device TestEdge reading C_Version (getUpdate), queued 2.00 secs ago, read buffer empty
2019.07.08 23:29:40 5: SW: 00ad0000000601039c6c001a
2019.07.08 23:29:40 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:41 5: TestEdge: ProcessRequestQueue called from HandleTimeout returns, Fhem is still waiting for response, request: id 1, fCode 3, tid 173, type h, adr 40044, len 26 for device TestEdge reading C_Version (getUpdate), queued 3.00 secs ago, sent 1.01 secs ago, read buffer empty, qlen 7, try again in 1 seconds
2019.07.08 23:29:41 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:42 3: TestEdge: Timeout waiting for a modbus response request: id 1, fCode 3, tid 173, type h, adr 40044, len 26 for device TestEdge reading C_Version (getUpdate), queued 4.00 secs ago, sent 2.00 secs ago, read buffer empty
2019.07.08 23:29:42 5: TestEdge: DropFrame - drop
2019.07.08 23:29:42 5: TestEdge: StartQueueTimer called form ResponseTimeout sets internal timer to call Modbus_ProcessRequestQueue in 0.000 seconds
2019.07.08 23:29:42 4: TestEdge: ProcessRequestQueue called from HandleTimeout, qlen 7, next entry to id 1 (TestEdge), last send to this device was 2.000 secs ago, last read never, last read on bus never from id 1 (TestEdge)
2019.07.08 23:29:42 5: TestEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 23:29:40.804) for TestEdge, delay 1.901secs over
2019.07.08 23:29:42 4: TestEdge: ProcessRequestQueue (V4.1.2 - 17.4.2019) qlen 7, sending 000a0000000601039cdb0018 request: id 1, fCode 3, tid 10, type h, adr 40155, len 24 for device TestEdge reading X_Meter_1_C_Option (getUpdate), queued 4.00 secs ago, read buffer empty
2019.07.08 23:29:42 5: SW: 000a0000000601039cdb0018
2019.07.08 23:29:42 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:43 5: TestEdge: ProcessRequestQueue called from HandleTimeout returns, Fhem is still waiting for response, request: id 1, fCode 3, tid 10, type h, adr 40155, len 24 for device TestEdge reading X_Meter_1_C_Option (getUpdate), queued 5.00 secs ago, sent 1.01 secs ago, read buffer empty, qlen 6, try again in 1 seconds
2019.07.08 23:29:43 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:44 3: TestEdge: Timeout waiting for a modbus response request: id 1, fCode 3, tid 10, type h, adr 40155, len 24 for device TestEdge reading X_Meter_1_C_Option (getUpdate), queued 6.00 secs ago, sent 2.00 secs ago, read buffer empty
2019.07.08 23:29:44 5: TestEdge: DropFrame - drop
2019.07.08 23:29:44 5: TestEdge: StartQueueTimer called form ResponseTimeout sets internal timer to call Modbus_ProcessRequestQueue in 0.000 seconds
2019.07.08 23:29:44 4: TestEdge: ProcessRequestQueue called from HandleTimeout, qlen 6, next entry to id 1 (TestEdge), last send to this device was 2.000 secs ago, last read never, last read on bus never from id 1 (TestEdge)
2019.07.08 23:29:44 5: TestEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 23:29:42.807) for TestEdge, delay 1.901secs over
2019.07.08 23:29:44 4: TestEdge: ProcessRequestQueue (V4.1.2 - 17.4.2019) qlen 6, sending 00070000000601039ca40008 request: id 1, fCode 3, tid 7, type h, adr 40100, len 8 for device TestEdge reading Block_DC_Power (getUpdate), queued 6.00 secs ago, read buffer empty
2019.07.08 23:29:44 5: SW: 00070000000601039ca40008
2019.07.08 23:29:44 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:45 5: TestEdge: ProcessRequestQueue called from HandleTimeout returns, Fhem is still waiting for response, request: id 1, fCode 3, tid 7, type h, adr 40100, len 8 for device TestEdge reading Block_DC_Power (getUpdate), queued 7.01 secs ago, sent 1.01 secs ago, read buffer empty, qlen 5, try again in 1 seconds
2019.07.08 23:29:45 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:46 3: TestEdge: Timeout waiting for a modbus response request: id 1, fCode 3, tid 7, type h, adr 40100, len 8 for device TestEdge reading Block_DC_Power (getUpdate), queued 8.00 secs ago, sent 2.00 secs ago, read buffer empty
2019.07.08 23:29:46 5: TestEdge: DropFrame - drop
2019.07.08 23:29:46 5: TestEdge: StartQueueTimer called form ResponseTimeout sets internal timer to call Modbus_ProcessRequestQueue in 0.000 seconds
2019.07.08 23:29:46 4: TestEdge: ProcessRequestQueue called from HandleTimeout, qlen 5, next entry to id 1 (TestEdge), last send to this device was 2.000 secs ago, last read never, last read on bus never from id 1 (TestEdge)
2019.07.08 23:29:46 5: TestEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 23:29:44.811) for TestEdge, delay 1.901secs over
2019.07.08 23:29:46 4: TestEdge: ProcessRequestQueue (V4.1.2 - 17.4.2019) qlen 5, sending 00b40000000601039cfb001d request: id 1, fCode 3, tid 180, type h, adr 40187, len 29 for device TestEdge reading X_Meter_1_C_DeviceAddress (getUpdate), queued 8.01 secs ago, read buffer empty
2019.07.08 23:29:46 5: SW: 00b40000000601039cfb001d
2019.07.08 23:29:46 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:47 5: TestEdge: ProcessRequestQueue called from HandleTimeout returns, Fhem is still waiting for response, request: id 1, fCode 3, tid 180, type h, adr 40187, len 29 for device TestEdge reading X_Meter_1_C_DeviceAddress (getUpdate), queued 9.01 secs ago, sent 1.01 secs ago, read buffer empty, qlen 4, try again in 1 seconds
2019.07.08 23:29:47 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:48 3: TestEdge: Timeout waiting for a modbus response request: id 1, fCode 3, tid 180, type h, adr 40187, len 29 for device TestEdge reading X_Meter_1_C_DeviceAddress (getUpdate), queued 10.01 secs ago, sent 2.00 secs ago, read buffer empty
2019.07.08 23:29:48 5: TestEdge: DropFrame - drop
2019.07.08 23:29:48 5: TestEdge: StartQueueTimer called form ResponseTimeout sets internal timer to call Modbus_ProcessRequestQueue in 0.000 seconds
2019.07.08 23:29:48 4: TestEdge: ProcessRequestQueue called from HandleTimeout, qlen 4, next entry to id 1 (TestEdge), last send to this device was 2.003 secs ago, last read never, last read on bus never from id 1 (TestEdge)
2019.07.08 23:29:48 5: TestEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 23:29:46.815) for TestEdge, delay 1.904secs over
2019.07.08 23:29:48 4: TestEdge: ProcessRequestQueue (V4.1.2 - 17.4.2019) qlen 4, sending 00630000000601039c87001d request: id 1, fCode 3, tid 99, type h, adr 40071, len 29 for device TestEdge reading Block_AC_Current (getUpdate), queued 10.01 secs ago, read buffer empty
2019.07.08 23:29:48 5: SW: 00630000000601039c87001d
2019.07.08 23:29:48 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:49 5: TestEdge: ProcessRequestQueue called from HandleTimeout returns, Fhem is still waiting for response, request: id 1, fCode 3, tid 99, type h, adr 40071, len 29 for device TestEdge reading Block_AC_Current (getUpdate), queued 11.01 secs ago, sent 1.01 secs ago, read buffer empty, qlen 3, try again in 1 seconds
2019.07.08 23:29:49 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:50 3: TestEdge: Timeout waiting for a modbus response request: id 1, fCode 3, tid 99, type h, adr 40071, len 29 for device TestEdge reading Block_AC_Current (getUpdate), queued 12.01 secs ago, sent 2.00 secs ago, read buffer empty
2019.07.08 23:29:50 5: TestEdge: DropFrame - drop
2019.07.08 23:29:50 5: TestEdge: StartQueueTimer called form ResponseTimeout sets internal timer to call Modbus_ProcessRequestQueue in 0.000 seconds
2019.07.08 23:29:50 4: TestEdge: ProcessRequestQueue called from HandleTimeout, qlen 3, next entry to id 1 (TestEdge), last send to this device was 2.000 secs ago, last read never, last read on bus never from id 1 (TestEdge)
2019.07.08 23:29:50 5: TestEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 23:29:48.821) for TestEdge, delay 1.901secs over
2019.07.08 23:29:50 4: TestEdge: ProcessRequestQueue (V4.1.2 - 17.4.2019) qlen 3, sending 00790000000601039c40001c request: id 1, fCode 3, tid 121, type h, adr 40000, len 28 for device TestEdge reading C_SunSpec_ID (getUpdate), queued 12.01 secs ago, read buffer empty
2019.07.08 23:29:50 5: SW: 00790000000601039c40001c
2019.07.08 23:29:50 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:51 5: TestEdge: ProcessRequestQueue called from HandleTimeout returns, Fhem is still waiting for response, request: id 1, fCode 3, tid 121, type h, adr 40000, len 28 for device TestEdge reading C_SunSpec_ID (getUpdate), queued 13.02 secs ago, sent 1.01 secs ago, read buffer empty, qlen 2, try again in 1 seconds
2019.07.08 23:29:51 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:52 3: TestEdge: Timeout waiting for a modbus response request: id 1, fCode 3, tid 121, type h, adr 40000, len 28 for device TestEdge reading C_SunSpec_ID (getUpdate), queued 14.01 secs ago, sent 2.00 secs ago, read buffer empty
2019.07.08 23:29:52 5: TestEdge: DropFrame - drop
2019.07.08 23:29:52 5: TestEdge: StartQueueTimer called form ResponseTimeout sets internal timer to call Modbus_ProcessRequestQueue in 0.000 seconds
2019.07.08 23:29:52 4: TestEdge: ProcessRequestQueue called from HandleTimeout, qlen 2, next entry to id 1 (TestEdge), last send to this device was 2.000 secs ago, last read never, last read on bus never from id 1 (TestEdge)
2019.07.08 23:29:52 5: TestEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 23:29:50.825) for TestEdge, delay 1.901secs over
2019.07.08 23:29:52 4: TestEdge: ProcessRequestQueue (V4.1.2 - 17.4.2019) qlen 2, sending 00340000000601039cbb0018 request: id 1, fCode 3, tid 52, type h, adr 40123, len 24 for device TestEdge reading X_Meter_1_C_Manufacturer (getUpdate), queued 14.01 secs ago, read buffer empty
2019.07.08 23:29:52 5: SW: 00340000000601039cbb0018
2019.07.08 23:29:52 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:53 5: TestEdge: ProcessRequestQueue called from HandleTimeout returns, Fhem is still waiting for response, request: id 1, fCode 3, tid 52, type h, adr 40123, len 24 for device TestEdge reading X_Meter_1_C_Manufacturer (getUpdate), queued 15.02 secs ago, sent 1.01 secs ago, read buffer empty, qlen 1, try again in 1 seconds
2019.07.08 23:29:53 5: TestEdge: StartQueueTimer called form ProcessRequestQueue sets internal timer to call Modbus_ProcessRequestQueue in 1.000 seconds
2019.07.08 23:29:54 3: TestEdge: Timeout waiting for a modbus response request: id 1, fCode 3, tid 52, type h, adr 40123, len 24 for device TestEdge reading X_Meter_1_C_Manufacturer (getUpdate), queued 16.01 secs ago, sent 2.00 secs ago, read buffer empty
2019.07.08 23:29:54 5: TestEdge: DropFrame - drop
2019.07.08 23:29:54 5: TestEdge: StartQueueTimer called form ResponseTimeout sets internal timer to call Modbus_ProcessRequestQueue in 0.000 seconds
2019.07.08 23:29:54 4: TestEdge: ProcessRequestQueue called from HandleTimeout, qlen 1, next entry to id 1 (TestEdge), last send to this device was 1.999 secs ago, last read never, last read on bus never from id 1 (TestEdge)
2019.07.08 23:29:54 5: TestEdge: CheckDelay called from ProcessRequestQueue sendDelay (0.1s since 23:29:52.828) for TestEdge, delay 1.900secs over
2019.07.08 23:29:54 4: TestEdge: ProcessRequestQueue (V4.1.2 - 17.4.2019) qlen 1, sending 00080000000601039d330011 request: id 1, fCode 3, tid 8, type h, adr 40243, len 17 for device TestEdge reading X_Meter_1_Block_Energy_VA (getUpdate), queued 16.02 secs ago, read buffer empty
2019.07.08 23:29:54 5: SW: 00080000000601039d330011
2019.07.08 23:29:54 5: TestEdge: StartQueueTimer called from ProcessRequestQueue removes internal timer because it is not needed now
2019.07.08 23:29:56 3: TestEdge: Timeout waiting for a modbus response request: id 1, fCode 3, tid 8, type h, adr 40243, len 17 for device TestEdge reading X_Meter_1_Block_Energy_VA (getUpdate), queued 18.02 secs ago, sent 2.00 secs ago, read buffer empty
2019.07.08 23:29:56 5: TestEdge: DropFrame - drop
2019.07.08 23:29:56 5: TestEdge: StartQueueTimer called from ResponseTimeout removes internal timer because it is not needed now
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Metalomaniac am 10 Juli 2019, 20:31:31
Ich bin mal die ganzen Tipps nochmal durchgegangen und hab einfach alles nochmal probiert...
Ich bin mir eigentlich sicher, dass ich Modbus ID "2" auch schon getestet habe - und es nicht funktioniert hat...... jetzt hat es geklappt. Lag bestimmt an mir, Tippfehler oder so.

Danke allen Helfern!
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: TomS85 am 09 Oktober 2019, 11:19:09
Versuche mal ein Update. Ich habe das Modul auf github zu liegen. https://github.com/pejonp/FHEM---SolarEdge

update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt

@pejonp
Blöde Frage - ich habe gestern erst mit FHEM begonnen und möchte das Modul einbinden. Ich habe zwar schon begonnen, nach der Anleitung in der Wiki die Werte meine SE25k auszulesen, was auch soweit funktioniert. Aber ich möchte nun doch gerne dein Modul installieren, da ich mich derzeit schwer tue, über die Attribute und Dummys hinaus den Perl Code einzubinden (scheint bei mir irgendwie nicht zu funktionieren). Daher hatte ich mal deine Module von github heruntergeladen und ins FHEM Verzeichnis geladen. Aber nun weiß ich nicht, wie ich die einbinden kann. Kannst du vielleicht weiterhelfen?

Danke und Gruß,
Tom
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 09 Oktober 2019, 11:43:02
@TomS85

define PV SolarEdge 1 60 ip RTU

Die 1 steht für die Modbus-ID des WR. 60 ist der abfrageinterval.
pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: TomS85 am 09 Oktober 2019, 11:56:25
Super, danke dir für die schnelle Rückmeldung!

Ich würde Modbus TCP verwenden, dann müsste ich statt RTU auch TCP angeben, vermute ich?
Muss ich für das neu erstelle Device "PV" dann noch die Attribute und Dummys gemäß der Wiki anlegen, oder muss ich darüber hinaus noch was anlegen?

Gruß,
Tom
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 09 Oktober 2019, 12:22:40
...
Ich würde Modbus TCP verwenden, dann müsste ich statt RTU auch TCP angeben, vermute ich?
Muss ich für das neu erstelle Device "PV" dann noch die Attribute und Dummys gemäß der Wiki anlegen, oder muss ich darüber hinaus noch was anlegen?
...

Was für ein Wiki meinst du ?

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: TomS85 am 09 Oktober 2019, 12:49:16
Was für ein Wiki meinst du ?

pejonp

Diese Wiki: https://wiki.fhem.de/wiki/SolarEdge_SE10k

Aber ich habe meinen WR nun mit deinem Modul einbinden können, sodass er mal Werte liefert. Jetzt mal schauen, was ich damit anfangen kann bzw. wie ich eigene Logs erstellen kann.

Danke schon mal für die Hilfe!

Edit: Gerade gesehen, dass die Spannungswerte bei mir noch nicht ganz passen:
I_AC_VoltageAB
3931
2019-10-09 12:53:41
I_AC_VoltageAN
2261
2019-10-09 12:53:41
I_AC_VoltageBC
3925
2019-10-09 12:53:41
I_AC_VoltageBN
2249
2019-10-09 12:53:41
I_AC_VoltageCA
3930
2019-10-09 12:53:41
I_AC_VoltageCN
2269
2019-10-09 12:53:41
I_AC_Voltage_SF
65535

Vermutlich ein Kommafehler? 226,x V bzw 393,x V würden ja passen
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: The Spirit am 19 Februar 2020, 19:59:27
Bei mir läuft es jetzt auch super mit dem modul.
Da ich aber noch ein Energy Meter von SolarEdge habe, gibt es bei mir auch noch ein paar mehr werte.

Diese wäre:

M_Imported
M_AC_Power
M_AC_Power_SF
M_Exported
M_Energy_W_SF

Könnte die jemand in das modul einbauen?
Danke
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 08 März 2020, 18:16:35
Bei mir läuft es jetzt auch super mit dem modul.
Da ich aber noch ein Energy Meter von SolarEdge habe, gibt es bei mir auch noch ein paar mehr werte.
Diese wäre:

M_Imported
M_AC_Power
M_AC_Power_SF
M_Exported
M_Energy_W_SF

....

@The Spirit

ich habe ein Paar Änderungen eingepflegt. Probiere mal aus ob Daten kommen. Mein SolarEdge hat diese Funktion noch nicht und deshalb kann ich nichts testen.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: aikawa24 am 09 August 2020, 05:48:43
Hallo,
nach ersten Erfolgen mit dem Modul hab ich doch kleinere Probleme festgestellt die ich vielleicht mit Eurer Hilfe Lösen kann.

die Ersten Versionen des Moduls von pejonp liefen super, doch nach dem letzten Update wurden einige readings falsch berechnet und unlesbar dargestellt,
ich bin jetzt auf das Modul von CaptainRoot gewechselt und dort wird alles wieder normal dargestellt.

ein anderes Problem was ich habe ist, ab 15000 W Produktion fällt das reading I_AC_Power auf 0, I_DC_Voltage geht dann manchmal auf über 750V und der I_Status zeigt 5 (Begrenzung) an
wenn ich mir die anderen Werte zu der gleichen Zeit anschaue, wird aber unvermindert eingespeist und im SolarEdge Portal sehe ich diesen Einbruch der Produktion garnicht.

ich hab dann mal in das Modul geschaut (ich hab keine Ahnung von Programmierung) und habe dort folgenden Abschnitt in CaptainRoots Modul gefunden

elsif ( $ReadingName eq "I_AC_Power" || $ReadingName eq "I_DC_Power" )
    {
        my $POWER = ( $vval[0] * 10**$vval[1] );
        Log3 $hash, 4, "SolarEdge I_Power_0 : " . $vval[0] . " POWER :" . $POWER;

        if ( $POWER < 0 || $POWER > 15000 )
        {
            $POWER = 0;
        }

was bedeutet das und kann ich den Wert einfach auf 20000 hoch setzten?

ich verwende einen SE16k Wechselrichter

Vielen Dank
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 09 August 2020, 10:42:55
@aikawa24

Ja die 15000 kannst du anpassen, ich habe das eingebaut weil ab und an eigenartige Werte ausgelesen wurden. Ich habe einen SE5k. Da hat der Wert ausgereicht ?
Vielleicht baue ich noch einen Parameter dafür ein.

Und was passt bei den anderen werten nicht, wenn du das Modul von github  nimmst ?

Pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: aikawa24 am 09 August 2020, 18:12:08
Hi pejonp,

selbst wenn ich ein neues System aufsetzte und dein Modul per Update einspiele bekomme ich diese readings komisch angezeigt

X_Meter_1_M_AC_Current 5.5e-26 2020-08-09 18:01:55
X_Meter_1_M_AC_Current_SF -27 2020-08-09 18:01:55
X_Meter_1_M_AC_Frequency 50.07 2020-08-09 18:01:55
X_Meter_1_M_AC_Frequency_SF -2 2020-08-09 18:01:55
X_Meter_1_M_AC_PF 0 2020-08-09 18:01:55
X_Meter_1_M_AC_PF_SF -9659 2020-08-09 18:01:55
X_Meter_1_M_AC_Power -Inf 2020-08-09 18:01:55
X_Meter_1_M_AC_Power_SF 492 2020-08-09 18:01:55
X_Meter_1_M_AC_VA Inf 2020-08-09 18:01:55
X_Meter_1_M_AC_VAR 1e-97 2020-08-09 18:01:55
X_Meter_1_M_AC_VAR_SF -98 2020-08-09 18:01:55
X_Meter_1_M_AC_VA_SF 501 2020-08-09 18:01:55
X_Meter_1_M_AC_Voltage Inf 2020-08-09 18:01:55
X_Meter_1_M_Energy_VA 0 2020-08-09 18:01:55
X_Meter_1_M_Energy_VA_SF 0 2020-08-09 18:01:55
X_Meter_1_M_Energy_W Inf 2020-08-09 18:01:55
X_Meter_1_M_Energy_W_SF 1178223 2020-08-09 18:01:55

und ich hab auch eigenartige Werte bekommen als ich mit dem Modbusattr Modul das H400084 ausgelesen hab
das war den Tag über ok bis abends die Leistung runter ging da gabs dann werte über 25000
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 11 August 2020, 20:30:21
@aikawa24

was stand in den beiden Registern H400083 & H400084.

Wenn im H400083 = 0 steht und im H400084 = 25000 wird 25000 angezeigt, weil nicht geprüft wird wie der I_Status ist. WR ggf. shon off ....
zufällige Werte. Kannst du das mal prüfen.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: aikawa24 am 23 August 2020, 00:29:54
leider hab ich grade die 84 nicht im Log speichern lassen ;(
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 04 Oktober 2020, 02:02:37
Ich bin mit diesem Modul hier bislang bereits bei der Verbindung zum SE (8k mit aktueller Software) gescheitert.

Mein Elektriker sagt Modbus TCP wäre aktiviert - ist damit klar, ob ich als Master oder Slave verbinden muss? (Ich habe beides versucht - Connection an Port 502 refused) - Wenn ich den SE auf SLAVE stellen und FHEM auf Master - kommen die Daten dann noch zu SolarEdge? Das wäre mir wichtig.

Muss man vor dem Verbinden z.B. den 1/0 Schalter im Wechselrichter kurz auf P drücken? Wenn ja, wie lange hat man Zeit zu verbinden?

Danke vorab für Eure Hilfe!
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Romoker am 04 Oktober 2020, 17:55:46
@beejayf
Mein SE WR ist mit ModbusAttr als Master über TCP 502 angebunden.
Der P-Schalter hat nichts mit der Modbusverbindung zu tun und ist nur für den direkten WLAN-Verbindungsaufbau zwischen WR und der SE-App notwendig.

Sonst mal prüfen:
- stimmt die IP-Adresse des WR?
- ist ev. ein anderer Port konfiguriert (kann nur der Solateur beantworten)?

Viele Grüße
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 05 Oktober 2020, 11:56:00
@beejayf

Ist im Menue SunSpec als Modbus-Protokoll eingestellt oder etwas anders ?

Richtige Modbus-ID eingestellt.

Hat der WE SE8k einen extra RS-485 Anschluss oder geht Modbus über IP ?

Bei meinem SE5K geht Modbus über IP noch nicht, ich habe ein extra RS-485  Modul angeschlossen.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 08 Oktober 2020, 15:12:40
IP sollte stimmen - zumindest die letzten beiden Stellen der WiFi MAC stimmen mit der MAC überein, mit der ich ein neues Gerät im Netz finde (Anschluss über LAN-Kabel) - steht die LAN MAC im Innern des Gerätes oder irgendwo auf der Monitoring-Plattform?
Der Port ist auf 502 eingestellt sagt mein Elektriker - Protokoll frage ich gerade nach.

Gibt es einen "Schnelltest" - z.B. sollte http://<IP>:502 im Browser etwas anzeigen?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Shadow3561 am 08 Oktober 2020, 17:28:30
Moin,
bei meine SE3500H SetApp ist die ModbusID standardmässig auf 1502 eingestellt gewesen.
Falls dein Elektriker diese also nicht geändert hat, versuche mal diese.
des Weiteren schaltet sich der Modbus automatisch ab falls etwa 2 Minuten nach dem einschalten keine Verbindung besteht.

Mit freundlichen Grüßen
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 09 Oktober 2020, 10:00:49
Danke - der 1502 funktioniert leider auch nicht.

Eine Frage zur automatischen Abschaltung des Modbus nach kurzer Zeit: Gilt das nur für die erste Verbindung, oder ist das generell so? Ich hoffe auf Ersteres. Kann ich den Modbus neu starten, oder muss das auch der Elektriker machen?

Gibt es irgendwo eine erschöpfende Dokumentation zum Modbus TCP von SE?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 09 Oktober 2020, 11:08:07
Bei meinem SE7k ist die ID (erster Parameter des DEF) auf 2 eingestellt, also
2 60 <IP>:1502 TCP
Vielleicht löst das das Verbindungsproblem. Und ich habe mit verschiedenen Devices experimentiert und dadurch festgestellt, dass nur 1 Device eine Modbus-Verbindung zum SolarEdge-Wechselrichter öffnen kann. Die anderen haben den Status disconnected.

Dokumentationen findest Du im fhem Wiki: https://wiki.fhem.de/wiki/SolarEdge_SE10k (https://wiki.fhem.de/wiki/SolarEdge_SE10k).

Verbindungsabbrüche habe ich bei mir noch nicht festgestellt. Das Problem tritt also vermutlich nur bei der ersten Verbindung auf.

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 09 Oktober 2020, 23:25:17
Danke matkoh!

habe meine Parameter auf 2 30 <myIP>:1502 TCP geändert (2. Modbus also?) und die Verbindung hat sich von "initialized" auf "opened" geändert! Daten sehe ich zwar noch keine, aber ich hoffe ich komm von hier aus weiter.

2020.10.09 23:22:31 3: SolarEdge device opened
2020.10.09 23:24:32 3: 192.168.40.1:1502 disconnected, waiting to reappear (SolarEdge)
2020.10.09 23:25:32 3: 192.168.40.1:1502 reappeared (SolarEdge)
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 11 Oktober 2020, 12:48:19
Komme nicht so recht weiter:

Das ist der Output von "list"

Internals:
   DEF        2 30  192.168.40.1:1502 TCP
   DeviceName 192.168.40.1:1502
   EXPECT     response
   FD         4
   FUUID      5f74732b-f33f-c404-f11b-d7758d06eb221a26
   INTERVAL   31
   IODev      SolarEdge
   LASTOPEN   1602412811.68875
   MODBUSID   2
   MODE       master
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         32
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TIMEOUTS   144
   TRIGGERTIME 1602413157.54169
   TRIGGERTIME_FMT 2020-10-11 12:45:57
   TYPE       ModbusAttr
   devioLoglevel 3
   lastUpdate 1602413126.54169
   nextOpenDelay 60
   nextQueueRun 1602413150.95139
   nextTimeout 1602413150.94789
   scanOAdr   290
   scanOEnd   16384
   scanOLen   1
   scanOStart 1
   scanOType  h
   FRAME:
   QUEUE:
     HASH(0x2681620)
     HASH(0x2516978)
     HASH(0x274ac30)
     HASH(0x274cd00)
     HASH(0x191cc60)
     HASH(0x2751458)
     HASH(0x2746a18)
     HASH(0x2749388)
     HASH(0x24b2ba8)
     HASH(0x274acf0)
     HASH(0x27474e0)
     HASH(0x274fa80)
     HASH(0x236ac50)
     HASH(0x267e650)
     HASH(0x191bd90)
     HASH(0x191bf70)
     HASH(0x191b638)
     HASH(0x27517d0)
     HASH(0x2749160)
     HASH(0x191bd00)
   READ:
     BUFFER     
   READINGS:
     2020-10-11 12:40:19   state           opened
   REMEMBER:
     lid        2
     lname      SolarEdge
     lsend      1602413148.95018
   REQUEST:
     ADR        270
     DBGINFO    scan
     FCODE      3
     FRAME      >
     LEN        1
     MODBUSID   2
     OPERATION  scanobj
     READING   
     SENT       1602413148.94789
     TID        62
     TIMESTAMP  1602413129.91759
     TYPE       h
     VALUES     0
     DEVHASH:
   defptr:
     SolarEdge  2
Attributes:
   disable    0
   icon       weather_sun

damit bekomme ich aber jede Menge TimeOuts:

2020.10.11 12:40:19 3: SolarEdge device opened
2020.10.11 12:40:59 3: SolarEdge: set scan h from 1 to 16384 len 1
2020.10.11 12:41:02 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 145, type h, adr 1, len 1 for device SolarEdge (scan), queued 2.00 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:04 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 212, type h, adr 2, len 1 for device SolarEdge (scan), queued 3.00 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:06 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 103, type h, adr 3, len 1 for device SolarEdge (scan), queued 4.01 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:08 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 99, type h, adr 4, len 1 for device SolarEdge (scan), queued 5.01 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:10 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 105, type h, adr 5, len 1 for device SolarEdge (scan), queued 6.01 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:12 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 8, type h, adr 6, len 1 for device SolarEdge (scan), queued 7.01 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:14 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 42, type h, adr 7, len 1 for device SolarEdge (scan), queued 8.01 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:16 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 224, type h, adr 8, len 1 for device SolarEdge (scan), queued 9.01 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:18 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 118, type h, adr 9, len 1 for device SolarEdge (scan), queued 10.02 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:20 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 18, type h, adr 10, len 1 for device SolarEdge (scan), queued 11.02 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:22 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 132, type h, adr 11, len 1 for device SolarEdge (scan), queued 12.02 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:24 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 189, type h, adr 12, len 1 for device SolarEdge (scan), queued 13.02 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:26 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 216, type h, adr 13, len 1 for device SolarEdge (scan), queued 14.02 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:28 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 222, type h, adr 14, len 1 for device SolarEdge (scan), queued 15.02 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:30 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 2, type h, adr 15, len 1 for device SolarEdge (scan), queued 16.02 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:32 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 164, type h, adr 16, len 1 for device SolarEdge (scan), queued 17.02 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:34 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 158, type h, adr 17, len 1 for device SolarEdge (scan), queued 18.02 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:36 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 177, type h, adr 18, len 1 for device SolarEdge (scan), queued 19.03 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:37 3: SolarEdge: set interval changed interval to 31 seconds
2020.10.11 12:41:38 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 247, type h, adr 19, len 1 for device SolarEdge (scan), queued 20.03 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:40 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 236, type h, adr 20, len 1 for device SolarEdge (scan), queued 21.03 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:42 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 133, type h, adr 22, len 1 for device SolarEdge (scan), queued 21.03 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:44 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 201, type h, adr 24, len 1 for device SolarEdge (scan), queued 21.03 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:46 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 254, type h, adr 26, len 1 for device SolarEdge (scan), queued 21.03 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:48 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 241, type h, adr 28, len 1 for device SolarEdge (scan), queued 21.03 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:50 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 17, type h, adr 30, len 1 for device SolarEdge (scan), queued 21.03 secs ago, sent 2.00 secs ago, read buffer empty
2020.10.11 12:41:52 3: SolarEdge: Timeout waiting for a modbus response request: id 2, fCode 3, tid 39, type h, adr 32, len 1 for device SolarEdge (scan), queued 21.03 secs ago, sent 2.00 secs ago, read buffer empty

Was mach ich falsch?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 11 Oktober 2020, 18:32:09
@beejayf

Was nimmst du für ein Modul ? Das von hier: https://github.com/pejonp/FHEM---SolarEdge


DEF        2 30  192.168.40.1:1502 TCP

dein WR hat auch die IP 192.168.40.1 nicht dein Router oder Gateway.

Und stell die Zeit erst mal auf 60 ein.

Was wird im Statusdisplay vom WR angezeigt (IP,Port,.....) siehe Bild ?

pejonp




Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 11 Oktober 2020, 22:02:03
@pejonp Ja 192.168.40.1 ist der Wechselrichter.

Wo kommt denn das Bild in deinem Post her? Ist das vom Solaredge Portal oder kann das nur der Elektriker?

Das MOdul hatte ich (glaube ich) von dort - aber in einer früheren Version - jetzt habe ich die aktuelle verwendet.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 11 Oktober 2020, 22:07:08
@beejayf

Mein SE5K hat eine Taste (grün) unterhalb des WR damit kann ich im laufenden Betrieb mir alle Infos vom WR (Power, Lüfter, Temp, Spannung,IP-Adresse, ModBus usw.) anzeigen lassen.

Wie heist den dein WR genau ?

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 12 Oktober 2020, 18:59:00
Hallo pejonp,

ich habe den SE8K-RWS48BNN4 - der hat unten den 1 / 0 / P Schalter mit dem man mit der SetApp verbinden kann - sonst hat er kein Display o.Ä. nur eine Ampel-LED, die ich glaube Rot/Grün/Blau anzeigt - wobei Blau leuchtet, wenn man mit der SetApp oder LAN verbunden ist.

Blau leuchtet bei mir - die Daten kommen vom WR in die SE-Cloud.

Aktuell kann ich die Daten mit der SolarEdgeAPI abholen - aber eben nur 300 mal am Tag - deswegen wäre die direkte Abfrage am WR richtig klasse.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 12 Oktober 2020, 20:44:35
@beejayf

der WR wird doch über ene App programmiert. Was wird den dort angezeigt ? So wie ich es in der Beschreibung gelesen habe hat er 2x RS-485 Schnittstellen. Eine wird für den Energiezähler (RS485-1) genutzt. Dieser belegt auch per DIP-Schalter einstellbar die ID 1 oder 2. Unter Kommunikationsstatus in der App (Seite 57) sollte es angezeigt werden.

Ich habe jetzt für diesen WR keine Einstellung RS485 über TCP/IP gefunden. Man kann am RS485-2 einen RS-485 Modul anschalten und darüber die Daten auslesen.

Mal kontrollieren welche ID der WR hat, ich würde diese auf >2 setzen. Weil laut Beschreibung (so wie ich es verstehe) die 1 und 2 per DIP-Schalter bei den Energiezählern eingestellt werden.

Für die RS-485 Abfrage nutze ich ein K1 RS-485. Das ist einer der Nachfolger USR-TCP232-410s  (https://www.pusr.com/download/M4/USR-TCP232-410s-User-Manual-V1.1.1.02.pdf)

Ich bin aber auch nicht der Experte. Vielleicht mal beim Installateur oder SolarEdge nachfragen. Vielleicht konnte ich ja etwas helfen.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 12 Oktober 2020, 21:27:54
@pejonp - mehr als nur ein bisschen!!

Nach all dem Probieren und Drehen habe ich die beiden SE Module entfernt und frisch installiert - danach systematisch Modbus # und Ports durchgetackert:

1 30 192.168.40.1:1502 TCP hat gegriffen (seltsam, die Kombination hatte ich bereits mit dem "alten" SolarEdge Modul probiert)

Nochmals Danke für Deine Hilfe - sonst würde ich sicher noch immer im Wald stehen!

Cheers,

BeeJayF
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 13 Oktober 2020, 20:10:31
@beejayf

Versuch mal bitte ein Update:

update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt

Ich habe einige Anpassungen gemacht (siehe hier: https://forum.fhem.de/index.php/topic,113998.msg1092239.html#msg1092239)

Wenn alles funktioniert bitte auch mal ein

fheminfo send

  durchführen

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 14 Oktober 2020, 23:47:12
@beejayf

Mach mal bitte nocheinmal ein update. Habe einige Änderungen gemacht. siehe hier (https://forum.fhem.de/index.php/topic,113998.msg1092552.html#msg1092552).

und dann auch ein

fheminfo send
pejonp

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 16 Oktober 2020, 07:56:38
@pejonp, als Fortsetzung des Posts https://forum.fhem.de/index.php/topic,113998.0.html (https://forum.fhem.de/index.php/topic,113998.0.html):

Nach dem Update ist mein Device SE7k verschwunden. Im Log wird protokolliert, dass das Modul nicht mehr geladen werden kann:
2020.10.16 07:39:15 1: reload: Error:Modul 98_SolarEdge deactivated:
 Can't locate Math/Round.pm in @INC (you may need to install the Math::Round module) (@INC contains: fhem.p/lib fhem.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base) at ./FHEM/98_SolarEdge.pm line 61.
BEGIN failed--compilation aborted at ./FHEM/98_SolarEdge.pm line 61.

Ich habe das fehlende Perl-Modul installiert mit
sudo apt install libmath-round-perlund FHEM neu gestartet. Danach ist das Device wieder vorhanden - mit einer schicken Tabelle von Werten als State! Danke dafür.

Leider sind die Power-Readings immer noch bei 65000, daran hat sich nichts geändert. Ich hänge ein aktuelles Listing an:
Internals:
   .getList   
   .setList   interval reread:noArg reconnect:noArg stop:noArg start:noArg close:noArg saveAsModule scanStop:noArg scanModbusObjects
   .updateSetGet 0
   DEF        2 60 xxxx:1502 TCP
   DeviceName xxxx:1502
   EXPECT     idle
   FD         123
   FUUID      5f4e3050-f33f-dbcf-ef4f-76d92e40d0816b55
   INTERVAL   60
   IODev      SE7k
   LASTOPEN   1602827295.37488
   MODBUSID   2
   MODE       master
   MODEL      SE7K-RWS48BNN4
   MODEL_METER SE-MTR-3Y-400V-A
   MODEL_WR   SE7K-RWS48BNN4
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       SE7k
   NOTIFYDEV  global
   NR         557
   NTFY_ORDER 50-SE7k
   PARTIAL   
   PROTOCOL   TCP
   STATE      <h1>Gesamtenergie 451.99 kWh </h1><table border frame=box><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>0 W</td><td>0 W</td><td>0 V-</td><td>0 A~</td></tr></table>
   TCPConn    1
   TRIGGERTIME 1602827665.88704
   TRIGGERTIME_FMT 2020-10-16 07:54:25
   TYPE       SolarEdge
   devioLoglevel 3
   lastUpdate 1602827605.88704
   nextOpenDelay 60
   .attraggr:
   .attrminint:
   .userReadings:
     HASH(0x840fa40)
     HASH(0x882b958)
     HASH(0x882bb38)
     HASH(0x882baa8)
     HASH(0x882bbb0)
     HASH(0x882bcb8)
     HASH(0x882bde0)
     HASH(0x882bd50)
     HASH(0x882be58)
     HASH(0x882bf60)
     HASH(0x882c068)
     HASH(0x882bfd8)
     HASH(0x882c0e0)
     HASH(0x882c1e8)
     HASH(0x882c2f0)
     HASH(0x882c260)
     HASH(0x882c368)
     HASH(0x882c098)
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2020-10-16 07:53:26   Block_AC_Current 5 0 0 0 0 -2
     2020-10-16 07:53:26   Block_AC_Energy_WH 5 451990 0 0 0 0
     2020-10-16 07:53:26   Block_AC_Frequency 5 4998 -2 0 0 0
     2020-10-16 07:53:26   Block_AC_PF     5 0 0 0 0 0
     2020-10-16 07:53:26   Block_AC_Power  5 0 0 0 0 0
     2020-10-16 07:53:26   Block_AC_VA     5 0 0 0 0 0
     2020-10-16 07:53:26   Block_AC_VAR    5 0 0 0 0 0
     2020-10-16 07:48:29   Block_C_Model   5 SE7K-RWS48BNN4 0 0 0 0
     2020-10-16 07:53:26   Block_DC_Current 5 65535 -32768 0 0 0
     2020-10-16 07:53:25   Block_DC_Power  5 0 0 0 0 0
     2020-10-16 07:53:26   Block_DC_Voltage 5 0 -1 0 0 0
     2020-10-16 07:48:29   C_DeviceAddress 2
     2020-10-16 07:48:29   C_Manufacturer  SolarEdge
     2020-10-16 07:48:29   C_Model         SE7K-RWS48BNN4
     2020-10-16 07:48:29   C_SerialNumber  xxx
     2020-10-16 07:48:29   C_SunSpec_DID   three phase
     2020-10-16 07:48:29   C_SunSpec_ID    SunS
     2020-10-16 07:48:29   C_Version       0004.0011.0018
     2020-10-16 07:53:26   I_AC_Current    0
     2020-10-16 07:53:26   I_AC_Current_A  0
     2020-10-16 07:53:26   I_AC_Current_B  0
     2020-10-16 07:53:26   I_AC_Current_C  0
     2020-10-16 07:53:26   I_AC_Current_SF -2
     2020-10-16 07:53:26   I_AC_Energy_WH  451990
     2020-10-16 07:53:26   I_AC_Energy_WH_SF 0
     2020-10-16 07:53:26   I_AC_Frequency  49.98
     2020-10-16 07:53:26   I_AC_Frequency_SF -2
     2020-10-16 07:53:26   I_AC_PF         0
     2020-10-16 07:53:26   I_AC_PF_SF      0
     2020-10-16 07:53:26   I_AC_Power      0
     2020-10-16 07:53:26   I_AC_Power_SF   0
     2020-10-16 07:53:26   I_AC_VA         0
     2020-10-16 07:53:26   I_AC_VAR        0
     2020-10-16 07:53:26   I_AC_VAR_SF     0
     2020-10-16 07:53:26   I_AC_VA_SF      0
     2020-10-16 07:53:26   I_AC_VoltageAB  3975
     2020-10-16 07:53:26   I_AC_VoltageAN  2289
     2020-10-16 07:53:26   I_AC_VoltageBC  3963
     2020-10-16 07:53:26   I_AC_VoltageBN  2279
     2020-10-16 07:53:26   I_AC_VoltageCA  3966
     2020-10-16 07:53:26   I_AC_VoltageCN  2302
     2020-10-16 07:53:26   I_AC_Voltage_SF 65535
     2020-10-16 07:53:26   I_DC_Current    0
     2020-10-16 07:53:26   I_DC_Current_SF -32768
     2020-10-16 07:53:25   I_DC_Power      0
     2020-10-16 07:53:25   I_DC_Power_SF   0
     2020-10-16 07:53:26   I_DC_Voltage    0
     2020-10-16 07:53:26   I_DC_Voltage_SF -1
     2020-10-16 07:53:25   I_Status        Sleeping Night mode
     2020-10-16 07:53:25   I_Temp_HeatSink 0 °C
     2020-10-16 07:53:26   M_AC-Power      65263
     2020-10-16 07:53:26   M_AC_Power1     65263
     2020-10-16 07:53:26   M_AC_Power2     65396
     2020-10-16 07:53:26   M_AC_Power3     65531
     2020-10-16 07:53:26   M_AC_Power4     65409
     2020-10-16 07:53:26   X_M_ConsumptionToday 25
     2020-10-16 07:53:26   X_M_ExportedToday 0
     2020-10-16 07:53:26   X_M_ImportedToday 25
     2020-10-16 07:53:26   X_Meter_1_Block_AC_Current 9 22 8 3 9 -1 0 0 0 0
     2020-10-16 07:53:26   X_Meter_1_Block_AC_Frequency 9 4997 -2 0 0 0 0 0 0 0
     2020-10-16 07:53:26   X_Meter_1_Block_AC_Power 9 65263 65396 65531 65409 0 0 0 0 0
     2020-10-16 07:53:26   X_Meter_1_Block_AC_Voltage 9 22882 22882 22836 23022 0 0 0 0 -2
     2020-10-16 07:48:28   X_Meter_1_Block_C_Model 9 SE-MTR-3Y-400V-A 0 0 0 0 0 0 0 0
     2020-10-16 07:53:26   X_Meter_1_Block_Energy_W 9 170017 79763 105658 71071 310355 216659 93990 86181 0
     2020-10-16 07:48:29   X_Meter_1_C_DeviceAddress 2
     2020-10-16 07:48:28   X_Meter_1_C_Manufacturer SolarEdge
     2020-10-16 07:48:28   X_Meter_1_C_Model SE-MTR-3Y-400V-A
     2020-10-16 07:48:28   X_Meter_1_C_Option Export+Import
     2020-10-16 07:48:28   X_Meter_1_C_SerialNumber 606457198
     2020-10-16 07:48:29   X_Meter_1_C_SunSpec_DID wye-connect three phase
     2020-10-16 07:53:25   X_Meter_1_C_SunSpec_DID_0 ASolarEdge
     2020-10-16 07:48:28   X_Meter_1_C_Version 74
     2020-10-16 07:53:26   X_Meter_1_M_AC_Current 2.2
     2020-10-16 07:53:26   X_Meter_1_M_AC_Current_A 0.8
     2020-10-16 07:53:26   X_Meter_1_M_AC_Current_B 0.3
     2020-10-16 07:53:26   X_Meter_1_M_AC_Current_C 0.9
     2020-10-16 07:53:26   X_Meter_1_M_AC_Current_SF -1
     2020-10-16 07:53:26   X_Meter_1_M_AC_Frequency 49.97
     2020-10-16 07:53:26   X_Meter_1_M_AC_Frequency_SF -2
     2020-10-16 07:53:26   X_Meter_1_M_AC_Power 65263
     2020-10-16 07:53:26   X_Meter_1_M_AC_Power_A 65396
     2020-10-16 07:53:26   X_Meter_1_M_AC_Power_B 65531
     2020-10-16 07:53:26   X_Meter_1_M_AC_Power_C 65409
     2020-10-16 07:53:26   X_Meter_1_M_AC_Power_SF 0
     2020-10-16 07:53:26   X_Meter_1_M_AC_Voltage_AB 0
     2020-10-16 07:53:26   X_Meter_1_M_AC_Voltage_AN 228.82
     2020-10-16 07:53:26   X_Meter_1_M_AC_Voltage_BC 0
     2020-10-16 07:53:26   X_Meter_1_M_AC_Voltage_BN 228.36
     2020-10-16 07:53:26   X_Meter_1_M_AC_Voltage_CA 0
     2020-10-16 07:53:26   X_Meter_1_M_AC_Voltage_CN 230.22
     2020-10-16 07:53:26   X_Meter_1_M_AC_Voltage_LL 0
     2020-10-16 07:53:26   X_Meter_1_M_AC_Voltage_LN 228.82
     2020-10-16 07:53:26   X_Meter_1_M_AC_Voltage_SF -2
     2020-10-16 07:53:26   X_Meter_1_M_Energy_W_SF 0
     2020-10-16 07:53:26   X_Meter_1_M_Exported 170017
     2020-10-16 07:53:26   X_Meter_1_M_Exported_A 79763
     2020-10-16 07:53:26   X_Meter_1_M_Exported_B 105658
     2020-10-16 07:53:26   X_Meter_1_M_Exported_C 71071
     2020-10-16 07:53:26   X_Meter_1_M_Imported 310355
     2020-10-16 07:53:26   X_Meter_1_M_Imported_A 216659
     2020-10-16 07:53:26   X_Meter_1_M_Imported_B 93990
     2020-10-16 07:53:26   X_Meter_1_M_Imported_C 86181
     2020-10-16 07:53:26   X_PV_Energy     451990
     2020-10-16 07:53:26   X_PV_EnergyToday 0
     2020-10-16 07:53:26   state           <h1>Gesamtenergie 451.99 kWh </h1><table border frame=box><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>0 W</td><td>0 W</td><td>0 V-</td><td>0 A~</td></tr></table>
   REMEMBER:
     lid        2
     lname      SE7k
     lrecv      1602827606.32776
     lsend      1602827606.30219
   defptr:
     SE7k       2
   gotReadings:
     X_Meter_1_Block_Energy_W 9 170017 79763 105658 71071 310355 216659 93990 86181 0
   lastRead:
     h40000     1602827309.37554
     h40004     1602827309.37761
     h40020     1602827309.38028
     h40044     1602827309.69709
     h40052     1602827309.69838
     h40068     1602827309.69944
     h40069     1602827309.70037
     h40071     1602827606.07521
     h40076     1602827606.076
     h40077     1602827606.07674
     h40078     1602827606.07747
     h40079     1602827606.0782
     h40080     1602827606.07892
     h40081     1602827606.07966
     h40082     1602827606.08039
     h40083     1602827606.08159
     h40085     1602827606.08273
     h40087     1602827606.08393
     h40089     1602827606.08502
     h40091     1602827606.08608
     h40093     1602827606.08763
     h40096     1602827606.08883
     h40098     1602827606.08994
     h40100     1602827605.95217
     h40103     1602827605.95382
     h40107     1602827605.95609
     h40121     1602827605.95888
     h40123     1602827308.58399
     h40139     1602827308.58635
     h40155     1602827308.18305
     h40163     1602827308.18456
     h40171     1602827308.18594
     h40187     1602827309.50895
     h40188     1602827309.5107
     h40190     1602827606.20093
     h40195     1602827606.20269
     h40204     1602827606.20416
     h40206     1602827606.20561
     h40226     1602827606.33048
Attributes:
   room       Keller,Solar
   userReadings M_AC_VAR1:X_Meter_1_Block_AC_VAR.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VAR", 0) );
  return ($val[1]);;},
 
M_AC_VAR2:X_Meter_1_Block_AC_VAR.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VAR", 0) );
  return ($val[2]);;},
 
M_AC_VAR3:X_Meter_1_Block_AC_VAR.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VAR", 0) );
  return ($val[3]);;},
 
M_AC_VAR4:X_Meter_1_Block_AC_VAR.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VAR", 0) );
  return ($val[4]);;},
 
M_AC_VA1:X_Meter_1_Block_AC_VA.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VA", 0) );
  return ($val[1]);;},
 
M_AC_VA2:X_Meter_1_Block_AC_VA.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VA", 0) );
  return ($val[2]);;},
 
M_AC_VA3:X_Meter_1_Block_AC_VA.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VA", 0) );
  return ($val[3]);;},
 
M_AC_VA4:X_Meter_1_Block_AC_VA.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VA", 0) );
  return ($val[4]);;},
 
M_AC_Power1:X_Meter_1_Block_AC_Power.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_Power", 0) );
  return ($val[1]);;},
 
M_AC_Power2:X_Meter_1_Block_AC_Power.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_Power", 0) );
  return ($val[2]);;},
 
M_AC_Power3:X_Meter_1_Block_AC_Power.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_Power", 0) );
  return ($val[3]);;},
 
M_AC_Power4:X_Meter_1_Block_AC_Power.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_Power", 0) );
  return ($val[4]);;},
 
M_AC_PF1:X_Meter_1_Block_AC_PF.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_PF", 0) );
  return ($val[1]);;},
 
M_AC_PF2:X_Meter_1_Block_AC_PF.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_PF", 0) );
  return ($val[2]);;},
 
M_AC_PF3:X_Meter_1_Block_AC_PF.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_PF", 0) );
  return ($val[3]);;},
 
M_AC_PF4:X_Meter_1_Block_AC_PF.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_PF", 0) );
  return ($val[4]);;},
 
M_AC_PF:X_Meter_1_M_AC_PF_SF.* {
  my $scale = ReadingsVal ("SE7k","X_Meter_1_M_AC_PF_SF",0);
  return (ReadingsVal ("SE7k","X_Meter_1_M_AC_PF",0) * ( 10 ** $scale) / 1000);;},
 
M_AC-Power:X_Meter_1_M_AC_Power_SF.* {
 my $scale = ReadingsVal ("SE7k","X_Meter_1_M_AC_Power_SF",0);
 return (ReadingsVal ("SE7k","X_Meter_1_M_AC_Power",0) * ( 10 ** $scale));;}

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 16 Oktober 2020, 10:25:13
Hier zum Vergleich ein aktuelles Listing, nachdem die Produktion den Verbrauch knapp überschritten hat:
Internals:
   .getList   
   .setList   interval reread:noArg reconnect:noArg stop:noArg start:noArg close:noArg saveAsModule scanStop:noArg scanModbusObjects
   .updateSetGet 0
   DEF        2 60 xxxx:1502 TCP
   DeviceName xxxx:1502
   EXPECT     idle
   FD         123
   FUUID      5f4e3050-f33f-dbcf-ef4f-76d92e40d0816b55
   INTERVAL   60
   IODev      SE7k
   LASTOPEN   1602827295.37488
   MODBUSID   2
   MODE       master
   MODEL      SE7K-RWS48BNN4
   MODEL_METER SE-MTR-3Y-400V-A
   MODEL_WR   SE7K-RWS48BNN4
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       SE7k
   NOTIFYDEV  global
   NR         557
   NTFY_ORDER 50-SE7k
   PARTIAL   
   PROTOCOL   TCP
   STATE      <h1>Gesamtenergie 452.26 kWh </h1><table border frame=box><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>382.7 W</td><td>379 W</td><td>747.3 V-</td><td>2.43 A~</td></tr></table>
   TCPConn    1
   TRIGGERTIME 1602836578.41614
   TRIGGERTIME_FMT 2020-10-16 10:22:58
   TYPE       SolarEdge
   devioLoglevel 3
   lastUpdate 1602836518.41614
   nextOpenDelay 60
   .attraggr:
   .attrminint:
   .userReadings:
     HASH(0x840fa40)
     HASH(0x882b958)
     HASH(0x882bb38)
     HASH(0x882baa8)
     HASH(0x882bbb0)
     HASH(0x882bcb8)
     HASH(0x882bde0)
     HASH(0x882bd50)
     HASH(0x882be58)
     HASH(0x882bf60)
     HASH(0x882c068)
     HASH(0x882bfd8)
     HASH(0x882c0e0)
     HASH(0x882c1e8)
     HASH(0x882c2f0)
     HASH(0x882c260)
     HASH(0x882c368)
     HASH(0x882c098)
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2020-10-16 10:21:58   Block_AC_Current 5 243 75 89 78 -2
     2020-10-16 10:21:58   Block_AC_Energy_WH 5 452262 0 0 0 0
     2020-10-16 10:21:58   Block_AC_Frequency 5 5000 -2 0 0 0
     2020-10-16 10:21:58   Block_AC_PF     5 58728 -2 0 0 0
     2020-10-16 10:21:58   Block_AC_Power  5 3790 -1 0 0 0
     2020-10-16 10:21:58   Block_AC_VA     5 5546 -1 0 0 0
     2020-10-16 10:21:58   Block_AC_VAR    5 61486 -1 0 0 0
     2020-10-16 07:48:29   Block_C_Model   5 SE7K-RWS48BNN4 0 0 0 0
     2020-10-16 10:21:58   Block_DC_Current 5 5148 -4 0 0 0
     2020-10-16 10:21:58   Block_DC_Power  5 3827 -1 0 0 0
     2020-10-16 10:21:58   Block_DC_Voltage 5 7472 -1 0 0 0
     2020-10-16 07:48:29   C_DeviceAddress 2
     2020-10-16 07:48:29   C_Manufacturer  SolarEdge
     2020-10-16 07:48:29   C_Model         SE7K-RWS48BNN4
     2020-10-16 07:48:29   C_SerialNumber  xxx
     2020-10-16 07:48:29   C_SunSpec_DID   three phase
     2020-10-16 07:48:29   C_SunSpec_ID    SunS
     2020-10-16 07:48:29   C_Version       0004.0011.0018
     2020-10-16 10:21:58   I_AC_Current    2.43
     2020-10-16 10:21:58   I_AC_Current_A  0.75
     2020-10-16 10:21:58   I_AC_Current_B  0.89
     2020-10-16 10:21:58   I_AC_Current_C  0.78
     2020-10-16 10:21:58   I_AC_Current_SF -2
     2020-10-16 10:21:58   I_AC_Energy_WH  452262
     2020-10-16 10:21:58   I_AC_Energy_WH_SF 0
     2020-10-16 10:21:58   I_AC_Frequency  50
     2020-10-16 10:21:58   I_AC_Frequency_SF -2
     2020-10-16 10:21:58   I_AC_PF         587.28
     2020-10-16 10:21:58   I_AC_PF_SF      -2
     2020-10-16 10:21:58   I_AC_Power      379
     2020-10-16 10:21:58   I_AC_Power_SF   -1
     2020-10-16 10:21:58   I_AC_VA         554.6
     2020-10-16 10:21:58   I_AC_VAR        6148.6
     2020-10-16 10:21:58   I_AC_VAR_SF     -1
     2020-10-16 10:21:58   I_AC_VA_SF      -1
     2020-10-16 10:21:58   I_AC_VoltageAB  3966
     2020-10-16 10:21:58   I_AC_VoltageAN  2279
     2020-10-16 10:21:58   I_AC_VoltageBC  3965
     2020-10-16 10:21:58   I_AC_VoltageBN  2297
     2020-10-16 10:21:58   I_AC_VoltageCA  3947
     2020-10-16 10:21:58   I_AC_VoltageCN  2282
     2020-10-16 10:21:58   I_AC_Voltage_SF 65535
     2020-10-16 10:21:58   I_DC_Current    0.5148
     2020-10-16 10:21:58   I_DC_Current_SF -4
     2020-10-16 10:21:58   I_DC_Power      382.7
     2020-10-16 10:21:58   I_DC_Power_SF   -1
     2020-10-16 10:21:58   I_DC_Voltage    747.2
     2020-10-16 10:21:58   I_DC_Voltage_SF -1
     2020-10-16 10:21:58   I_Status        Inverter is ON and producing power
     2020-10-16 10:21:58   I_Temp_HeatSink 35 °C
     2020-10-16 10:21:58   M_AC-Power      1
     2020-10-16 10:21:58   M_AC_Power1     1
     2020-10-16 10:21:58   M_AC_Power2     16
     2020-10-16 10:21:58   M_AC_Power3     68
     2020-10-16 10:21:58   M_AC_Power4     65453
     2020-10-16 10:21:58   X_M_ConsumptionToday 830
     2020-10-16 10:21:58   X_M_ExportedToday 0
     2020-10-16 10:21:58   X_M_ImportedToday 564
     2020-10-16 10:21:58   X_Meter_1_Block_AC_Current 9 30 9 9 11 -1 0 0 0 0
     2020-10-16 10:21:58   X_Meter_1_Block_AC_Frequency 9 4999 -2 0 0 0 0 0 0 0
     2020-10-16 10:21:58   X_Meter_1_Block_AC_Power 9 1 16 68 65453 0 0 0 0 0
     2020-10-16 10:21:58   X_Meter_1_Block_AC_Voltage 9 22827 22827 22828 22793 0 0 0 0 -2
     2020-10-16 07:48:28   X_Meter_1_Block_C_Model 9 SE-MTR-3Y-400V-A 0 0 0 0 0 0 0 0
     2020-10-16 10:21:58   X_Meter_1_Block_Energy_W 9 170017 79763 105722 71071 310894 216892 94027 86515 0
     2020-10-16 07:48:29   X_Meter_1_C_DeviceAddress 2
     2020-10-16 07:48:28   X_Meter_1_C_Manufacturer SolarEdge
     2020-10-16 07:48:28   X_Meter_1_C_Model SE-MTR-3Y-400V-A
     2020-10-16 07:48:28   X_Meter_1_C_Option Export+Import
     2020-10-16 07:48:28   X_Meter_1_C_SerialNumber xxx
     2020-10-16 07:48:29   X_Meter_1_C_SunSpec_DID wye-connect three phase
     2020-10-16 10:21:58   X_Meter_1_C_SunSpec_DID_0 ASolarEdge
     2020-10-16 07:48:28   X_Meter_1_C_Version 74
     2020-10-16 10:21:58   X_Meter_1_M_AC_Current 3
     2020-10-16 10:21:58   X_Meter_1_M_AC_Current_A 0.9
     2020-10-16 10:21:58   X_Meter_1_M_AC_Current_B 0.9
     2020-10-16 10:21:58   X_Meter_1_M_AC_Current_C 1.1
     2020-10-16 10:21:58   X_Meter_1_M_AC_Current_SF -1
     2020-10-16 10:21:58   X_Meter_1_M_AC_Frequency 49.99
     2020-10-16 10:21:58   X_Meter_1_M_AC_Frequency_SF -2
     2020-10-16 10:21:58   X_Meter_1_M_AC_Power 1
     2020-10-16 10:21:58   X_Meter_1_M_AC_Power_A 16
     2020-10-16 10:21:58   X_Meter_1_M_AC_Power_B 68
     2020-10-16 10:21:58   X_Meter_1_M_AC_Power_C 65453
     2020-10-16 10:21:58   X_Meter_1_M_AC_Power_SF 0
     2020-10-16 10:21:58   X_Meter_1_M_AC_Voltage_AB 0
     2020-10-16 10:21:58   X_Meter_1_M_AC_Voltage_AN 228.27
     2020-10-16 10:21:58   X_Meter_1_M_AC_Voltage_BC 0
     2020-10-16 10:21:58   X_Meter_1_M_AC_Voltage_BN 228.28
     2020-10-16 10:21:58   X_Meter_1_M_AC_Voltage_CA 0
     2020-10-16 10:21:58   X_Meter_1_M_AC_Voltage_CN 227.93
     2020-10-16 10:21:58   X_Meter_1_M_AC_Voltage_LL 0
     2020-10-16 10:21:58   X_Meter_1_M_AC_Voltage_LN 228.27
     2020-10-16 10:21:58   X_Meter_1_M_AC_Voltage_SF -2
     2020-10-16 10:21:58   X_Meter_1_M_Energy_W_SF 0
     2020-10-16 10:21:58   X_Meter_1_M_Exported 170017
     2020-10-16 10:21:58   X_Meter_1_M_Exported_A 79763
     2020-10-16 10:21:58   X_Meter_1_M_Exported_B 105722
     2020-10-16 10:21:58   X_Meter_1_M_Exported_C 71071
     2020-10-16 10:21:58   X_Meter_1_M_Imported 310894
     2020-10-16 10:21:58   X_Meter_1_M_Imported_A 216892
     2020-10-16 10:21:58   X_Meter_1_M_Imported_B 94027
     2020-10-16 10:21:58   X_Meter_1_M_Imported_C 86515
     2020-10-16 10:21:58   X_PV_Energy     452262
     2020-10-16 10:21:58   X_PV_EnergyToday 272
     2020-10-16 10:21:58   state           <h1>Gesamtenergie 452.26 kWh </h1><table border frame=box><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>382.7 W</td><td>379 W</td><td>747.3 V-</td><td>2.43 A~</td></tr></table>
   REMEMBER:
     lid        2
     lname      SE7k
     lrecv      1602836518.88385
     lsend      1602836518.8284
   defptr:
     SE7k       2
   gotReadings:
     Block_AC_Current 5 243 75 89 78 -2
     Block_AC_Energy_WH 5 452262 0 0 0 0
     Block_AC_Frequency 5 5000 -2 0 0 0
     Block_AC_PF 5 58728 -2 0 0 0
     Block_AC_Power 5 3790 -1 0 0 0
     Block_AC_VA 5 5546 -1 0 0 0
     Block_AC_VAR 5 61486 -1 0 0 0
     Block_DC_Current 5 5148 -4 0 0 0
     Block_DC_Voltage 5 7472 -1 0 0 0
     I_AC_VoltageAB 3966
     I_AC_VoltageAN 2279
     I_AC_VoltageBC 3965
     I_AC_VoltageBN 2297
     I_AC_VoltageCA 3947
     I_AC_VoltageCN 2282
     I_AC_Voltage_SF 65535
   lastRead:
     h40000     1602827309.37554
     h40004     1602827309.37761
     h40020     1602827309.38028
     h40044     1602827309.69709
     h40052     1602827309.69838
     h40068     1602827309.69944
     h40069     1602827309.70037
     h40071     1602836518.88582
     h40076     1602836518.88661
     h40077     1602836518.88734
     h40078     1602836518.88807
     h40079     1602836518.88879
     h40080     1602836518.88952
     h40081     1602836518.89025
     h40082     1602836518.89098
     h40083     1602836518.89217
     h40085     1602836518.89337
     h40087     1602836518.89452
     h40089     1602836518.89563
     h40091     1602836518.89673
     h40093     1602836518.89823
     h40096     1602836518.89938
     h40098     1602836518.90054
     h40100     1602836518.72688
     h40103     1602836518.72787
     h40107     1602836518.72919
     h40121     1602836518.7309
     h40123     1602827308.58399
     h40139     1602827308.58635
     h40155     1602827308.18305
     h40163     1602827308.18456
     h40171     1602827308.18594
     h40187     1602827309.50895
     h40188     1602827309.5107
     h40190     1602836518.47935
     h40195     1602836518.48104
     h40204     1602836518.48226
     h40206     1602836518.48372
     h40226     1602836518.60619
Attributes:
   room       Keller,Solar
   userReadings M_AC_VAR1:X_Meter_1_Block_AC_VAR.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VAR", 0) );
  return ($val[1]);;},
 
M_AC_VAR2:X_Meter_1_Block_AC_VAR.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VAR", 0) );
  return ($val[2]);;},
 
M_AC_VAR3:X_Meter_1_Block_AC_VAR.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VAR", 0) );
  return ($val[3]);;},
 
M_AC_VAR4:X_Meter_1_Block_AC_VAR.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VAR", 0) );
  return ($val[4]);;},
 
M_AC_VA1:X_Meter_1_Block_AC_VA.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VA", 0) );
  return ($val[1]);;},
 
M_AC_VA2:X_Meter_1_Block_AC_VA.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VA", 0) );
  return ($val[2]);;},
 
M_AC_VA3:X_Meter_1_Block_AC_VA.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VA", 0) );
  return ($val[3]);;},
 
M_AC_VA4:X_Meter_1_Block_AC_VA.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_VA", 0) );
  return ($val[4]);;},
 
M_AC_Power1:X_Meter_1_Block_AC_Power.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_Power", 0) );
  return ($val[1]);;},
 
M_AC_Power2:X_Meter_1_Block_AC_Power.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_Power", 0) );
  return ($val[2]);;},
 
M_AC_Power3:X_Meter_1_Block_AC_Power.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_Power", 0) );
  return ($val[3]);;},
 
M_AC_Power4:X_Meter_1_Block_AC_Power.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_Power", 0) );
  return ($val[4]);;},
 
M_AC_PF1:X_Meter_1_Block_AC_PF.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_PF", 0) );
  return ($val[1]);;},
 
M_AC_PF2:X_Meter_1_Block_AC_PF.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_PF", 0) );
  return ($val[2]);;},
 
M_AC_PF3:X_Meter_1_Block_AC_PF.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_PF", 0) );
  return ($val[3]);;},
 
M_AC_PF4:X_Meter_1_Block_AC_PF.* {
  my @val = split(/ /, ReadingsVal("SE7k", "X_Meter_1_Block_AC_PF", 0) );
  return ($val[4]);;},
 
M_AC_PF:X_Meter_1_M_AC_PF_SF.* {
  my $scale = ReadingsVal ("SE7k","X_Meter_1_M_AC_PF_SF",0);
  return (ReadingsVal ("SE7k","X_Meter_1_M_AC_PF",0) * ( 10 ** $scale) / 1000);;},
 
M_AC-Power:X_Meter_1_M_AC_Power_SF.* {
 my $scale = ReadingsVal ("SE7k","X_Meter_1_M_AC_Power_SF",0);
 return (ReadingsVal ("SE7k","X_Meter_1_M_AC_Power",0) * ( 10 ** $scale));;}
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 16 Oktober 2020, 10:40:56
@beejayf

Mach mal bitte nocheinmal ein update. Deine Werte sind noch fehlerhaft.

Es muss jetzt das  Math::Round module installiert sein.

sudo apt install libmath-round-perl

@matkoh
Hi Matthias,

ich habe noch etwas beim X_Meter_1_Block_AC_Power angepasst. Schau mal ob das passt. Wenn nicht müssen wir weiter suchen.

Beide mal bitte überprüfen ob die angezeigten Werte stimmen. Danke.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 16 Oktober 2020, 11:57:53
Hallo Jörg,

ich habe aktuell keine 65000-Werte mehr. Allerdings wird aktuell auch noch mehr produziert als verbraucht. Hier nur die relevanten Readings:
2020-10-16 11:40:01   X_Meter_1_Block_AC_Power 9 131 -10 136 5 0 0 0 0 0
2020-10-16 11:40:01   X_Meter_1_M_AC_Power 131
     2020-10-16 11:40:01   X_Meter_1_M_AC_Power_A -10
     2020-10-16 11:40:01   X_Meter_1_M_AC_Power_B 136
     2020-10-16 11:40:01   X_Meter_1_M_AC_Power_C 5
     2020-10-16 11:40:01   X_Meter_1_M_AC_Power_SF 0
Ich gehe davon aus, dass ..AC_Power_A, ..AC_Power_B und ..AC_Power_C analog der Current-Readings die Werte der Phasen (A-C) und ..AC_Power dann die Summe darstellen? Das passt aktuell auch zu den Angaben aus dem Portal. Mal sehen, ob die Werte auch noch korrekt sind, wenn die Produktion unter den Verbrauch sinkt und dann Minus-Werte angezeigt werden müssten.

Gibt es auch eine Möglichkeit, den eigenen Verbrauch als Reading darzustellen? Im Monitoring-Portal sehe ich die Produktion (= I_AC_Power? stimmt aber nicht genau), den Verbrauch und den Bezug bzw. Einspeisung (= X_Meter_1_M_AC_Power).

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 16 Oktober 2020, 14:05:28
Hallo Matthias,

I_AC_Power oder X_Meter_1_M_AC_Power ist ja nur die Leistung die gerade erzeugt wird. Was verbraucht oder eingespeist wird muss ich über andere Zähler ermitteln.

Was eingespeist wird, kannst du an deinem 2-Richtungs-Stromzähler auslesen.
Mein WR zeigt mir nur die gerade erzeugt Leistung (W) oder die erzeugte Energie (kWh) an. siehe Bild.

Ich habe diese Komponenten: SolarEdge SE5K(TCP 24 RS485) + Sonnen! eco8 (10kWh) + TD3511 (2-Richtungs-Stromzähler) Stadtwerke + DRT710M(RS485) Hausunterzähler

Kannst du mir mal ein Bild schicken oder anhängen was bei dir wie angezeigt wird ?

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 16 Oktober 2020, 22:02:08
Hallo Jörg,

ich habe einen Screenshot aus dem aktuellen SolarEdge Monitoring-Portal angehangen. Dort siehst Du, in der Mitte links die Produktion der PV-Anlage, die aktuell natürlich 0 ist, in der Mitte den Verbrauch und rechts den Bezug vom Netzbetreiber (Pfeil zeigt nach links) oder die Einspeisung (Pfeil zeigt nach rechts).

Ich habe parallel zu Deinem Modul, das Werte über ModBus abfragt, auch das Modul SolarEdgeAPI im Einsatz, das über die SolarEdge API-Schnittstelle die Daten aus dem Monitoring Portal abruft. Dazu füge ich auch ein Listing des aktuellen Zustands ein:
Internals:
   APIKEY     xxxx
   DEF        xxxx xxx
   DEFAULT_DAY_TIME_INTERVAL 215
   DEFAULT_DAY_TIME_START_HOUR 6
   DEFAULT_NIGHT_TIME_INTERVAL 1200
   DEFAULT_NIGHT_TIME_START_HOUR 22
   FUUID      5f3e0a08-f33f-dbcf-0b9c-052d8004a48e9efe
   NAME       SolarEdgeAPI
   NOTIFYDEV  global
   NR         552
   NUMBER_OF_ERROR_1 0
   NUMBER_OF_ERROR_2 0
   NUMBER_OF_ERROR_3 0
   NUMBER_OF_GOOD_RESPONSES 519
   NUMBER_OF_JSON_ERRORS 0
   NUMBER_OF_REQUESTS 519
   NUMBER_OF_REQUESTS_PER_DAY 0
   PORT       80
   SITEID     xxx
   STATE      active
   TYPE       SolarEdgeAPI
   VERSION    2.2.0
   .attraggr:
   .attrminint:
   PATHS:
     aggregates energyDetails.json
     dailyAggregates energyDetails.json
     dailyDetails details.json
     dailyOverview overview.json
     dailyStorage storageData.json
     overview   overview.json
     status     currentPowerFlow.json
     storage    storageData.json
   READINGS:
     2020-10-16 21:52:54   aggregates-Consumption-cumToday 8313
     2020-10-16 21:52:54   aggregates-Consumption-recent15min 55
     2020-10-16 21:52:54   aggregates-FeedIn-cumToday 565
     2020-10-16 21:52:54   aggregates-FeedIn-recent15min 0
     2020-10-16 21:52:54   aggregates-Production-cumToday 3790
     2020-10-16 21:52:54   aggregates-Production-recent15min 0
     2020-10-16 21:52:54   aggregates-Purchased-cumToday 5088
     2020-10-16 21:52:54   aggregates-Purchased-recent15min 55
     2020-10-16 21:52:54   aggregates-SelfConsumption-cumToday 3225
     2020-10-16 21:52:54   aggregates-SelfConsumption-recent15min 0
     2020-10-15 23:59:00   dailyAggregates-Consumption-cumDay 10064
     2020-10-15 23:59:00   dailyAggregates-Consumption-cumMonth 84.965
     2020-09-30 23:59:01   dailyAggregates-Consumption-cumMonthOnce 287.709
     2020-10-15 23:59:00   dailyAggregates-Consumption-cumYear 460.696
     2020-10-15 23:59:00   dailyAggregates-FeedIn-cumDay 1017
     2020-10-15 23:59:00   dailyAggregates-FeedIn-cumMonth 44.625
     2020-09-30 23:59:01   dailyAggregates-FeedIn-cumMonthOnce 56.508
     2020-10-15 23:59:00   dailyAggregates-FeedIn-cumYear 108.482
     2020-10-15 23:59:00   dailyAggregates-Production-cumDay 4479
     2020-10-15 23:59:00   dailyAggregates-Production-cumMonth 67.855
     2020-09-30 23:59:01   dailyAggregates-Production-cumMonthOnce 248.768
     2020-10-15 23:59:00   dailyAggregates-Production-cumYear 449.95
     2020-10-15 23:59:00   dailyAggregates-Purchased-cumDay 6602
     2020-10-15 23:59:00   dailyAggregates-Purchased-cumMonth 55.366
     2020-09-30 23:59:01   dailyAggregates-Purchased-cumMonthOnce 95.252
     2020-10-15 23:59:00   dailyAggregates-Purchased-cumYear 163.082
     2020-10-15 23:59:00   dailyAggregates-SelfConsumption-cumDay 3462
     2020-10-15 23:59:00   dailyAggregates-SelfConsumption-cumMonth 32.736
     2020-09-30 23:59:01   dailyAggregates-SelfConsumption-cumMonthOnce 194.095
     2020-10-15 23:59:00   dailyAggregates-SelfConsumption-cumYear 302.389
     2020-10-15 23:59:00   dailyDetails-peakPower 5.28
     2020-10-15 23:59:00   dailyDetails-status Active
     2020-10-15 23:59:00   dailyOverview-energyDay 4479
     2020-10-15 23:59:00   dailyOverview-energyLifetime 0.451377
     2020-10-15 23:59:00   dailyOverview-energyMonth 67.855
     2020-09-30 23:59:01   dailyOverview-energyMonthOnce 248.768
     2020-10-15 23:59:00   dailyOverview-energyYear 449.95
     2020-10-16 21:52:53   overview-energyDay 3776
     2020-10-16 21:52:53   overview-energyLifetime 0.455153
     2020-10-16 21:52:53   overview-energyMonth 71.631
     2020-09-30 23:51:45   overview-energyMonthOnce 248.768
     2020-10-16 21:52:53   overview-energyYear 453.726
     2020-10-16 21:52:53   overview-power  0
     2020-10-16 21:52:54   state           active
     2020-10-16 21:52:53   status-grid_power 0.32
     2020-10-16 21:52:53   status-grid_status Active
     2020-10-16 21:52:53   status-load_power 0.32
     2020-10-16 21:52:53   status-load_status Active
     2020-10-16 21:52:53   status-pv_power 0
     2020-10-16 21:52:53   status-pv_status Idle
     2020-10-16 21:52:53   status-storage_status -
     2020-10-16 21:52:53   status-unit     kW
     2020-10-16 21:52:53   status-updateRefreshRate 3
   actionQueue:
Attributes:
   enableAggregatesReadings 1
   enableDailyAggregatesReadings 1
   enableDailyDetailsReadings 1
   enableDailyOverviewReadings 1
   enableOverviewReadings 1
   enableStatusReadings 1
   room       Keller,Solar

Die für den Energiezähler relevanten Readings sind die status_xxx Readings.

Auf Dauer würde ich gerne alle Daten über das ModBus-Modul abfragen, da diese Daten direkt vom Wechselrichter kommen. Den Wechselrichter würde ich dann vom Internet trennen, so dass keine Daten mehr an das Monitoring-Portal übertragen werden.

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 16 Oktober 2020, 23:01:40
Hallo Matthias,

wie sehen den jetzt die Daten vom ModBUS aus.
Kannst du den jetzt Daten vom Portal deinem WR zuordnen. z.B. deine jetzt bezogene Energie von 0,33 kW (Bild).
Oder ganz unten Produktion und Verbrauch. Sind die jetzt angezeigen Daten mit dem vom WR ungefähr stimmig bzw. findets du sie. Ist ja immer ein Verzug von ca. x sec/min drin.
Denke ich.

Ich würde den WR nicht vom Internet nehmen, da werden die Daten immer schön gesammelt. Und wenn ich Verbrauchszahlen benötige für irgendwelche Abrechnungen (Steuer)  oder auch Übersichten, sind diese dort sehr gut. Man kann auch csv-Dateien runterladen. Und die Jahresübersicht würde ich nicht so hinbekommen.
Und was sehr gut ist, man kann sich jede Solarplatte ansehen (Auslegung) und kann sehen wenn etwas nicht so hinhaut. Ich denke du hast auch SolarEdge Optimierer im Einsatz ?
Die Daten der Optimierer werden über einen anderen Weg übertragen.
Schau mal hier (https://forum.fhem.de/index.php/topic,109748.msg1039039.html#msg1039039)

Aber das ist meine Meinung.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 17 Oktober 2020, 16:03:37
Hallo Jörg,

ja, die Werte sehen gut aus. Ich habe mal aktuell ein Listing des Modbus-Moduls und des SolarEdgeAPI-Moduls erstellt und die entsprechenden Werte verglichen:
Produktion:
Modbus:
2020-10-17 15:48:20   I_AC_Power      532
API:
2020-10-17 15:45:16   overview-power  573
2020-10-17 15:45:16   status-pv_power 0.58

Power (Bezug / Einspeisung):
Modbus:
2020-10-17 15:47:18   M_AC-Power      -1150
API:
2020-10-17 15:45:16   status-grid_power 1.11

Verbrauch:
Modbus:
?
API:
2020-10-17 15:45:16   status-load_power 1.69

Wie Du schon erwähnst, gibt es immer ein Zeitdifferenz zwischen den Werten der API-Schnittstelle und der Modbus-Schnittstelle. Daher stimmen die Werte nicht exakt überein - vor allem wenn der Verbrauch und / oder Produktion schwankt.

Mir fehlt nur noch ein Reading im Modbus-Modul, das den Verbrauch anzeigt. Wenn das aus den Modbus-Registern nicht ausgelesen werden kann, könnte es auch aus Produktion und Bezug/Einspeisung errechnet werden.

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 18 Oktober 2020, 15:07:49
Hallo Matthias,

mach mal einen Vorschlag welche Register von welchen abgezogen oder dazuaddiert werden sollen.

Wie liest du den deinen Hauszähler aus ?

status-grid_power = was wird dort angezeigt ?

Ich hänge mal eine Beschreibung der Register an.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 18 Oktober 2020, 16:20:33
@pejonp Danke - das hat funktioniert! Jetzt passt z.B. die I_AC_Power zu meinem aktuellen Verbrauch.

Danke Dir!!
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 18 Oktober 2020, 16:42:50
Hallo Jörg,

danke für die Beschreibung der Register. Ich hatte bisher nur eine Version ohne die Meter-Register.

Ich finde in den Meter-Registern allerdings auch keines, das den tatsächlichen Verbrauch anzeigen würde. Vielleicht wird der im Portal ja auch nur errechnet?

Jedenfalls ergibt I_AC_Power (= Produktion) - X_Meter_1_M_AC_Power (= Bezug/Einspeisung) den tatsächlichen Verbrauch, so wie er auch im Portal angezeigt wird - mit den kleineren Abweichungen durch unterschiedliche Zeitstempel.

Als UserReading sieht das so aus:

X_M_Verbrauch:X_Meter_1_M_AC_Power.* {
  return (ReadingsVal("SE7k", "I_AC_Power", 0) - ReadingsVal("SE7k", "X_Meter_1_M_AC_Power", 0));;}

Meinen Hauszähler lese ich aktuell noch nicht aus. Den habe ich erst seit kurzem, es ist ein eBZ Zweirichtungszähler DD3. Ich bin noch nicht dazu gekommen, nach Möglichkeiten für die Auslesung dieses Zählers zu suchen. Hast Du eine Empfehlung?

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 18 Oktober 2020, 20:23:10
Hallo Matthias,

habe das zu deinem Zähler gefunden (https://www.stw-riesa.de/fileadmin/user_upload/Dokumente/Netz_Strom/Betriebsanleitung_mME.pdf).

Hier gibt es ein Modul, ob dein Zähler dabei ist weiss ich nicht (https://forum.fhem.de/index.php/topic,51948.msg436911.html#msg436911).

Ich habe von hier den Lesekopft (Optische Schnittstelle) genommen (https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-usb-ausgang)
oder hier  (http://adl517.at/index.php/seitenmenue/25-zaehler-lesekopf).

Neben dem Zähler läuft ein Raspi2  dieser ließt vom Zähler die Daten aus und schickt sie gleich in die FHEM DB.

Ich konnte aber nicht das OBIS-Modul nehmen, da mein Zähler aktiv abgefragt werden muss. Begonnen wird mit 300baud und dann wird auf 19200baud umgeschalten. Sonst dauert das auslesen einfach zu lange.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 19 Oktober 2020, 13:20:12
Hallo Jörg,

Wo würde ich denn nach der Leistung, die aus der Batterie kommt suchen? Bisher finde ich Summe von PV und Batteries aber nicht getrennt.

Grüße, BJ
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 19 Oktober 2020, 20:17:36
@beejayf

kannst du mir mal noch die Bezeichnung von deinem Meter und der Batterie mitteilen.
Meine Batterie hat eine extra Überwachung (sonnen! eco8) und hat einen extra WR. Von da bekomme ich die Daten.
SolarEdge ist ja ein SE8K-RWS48BNN4 ?

Schau mal hier auf Seite 69 da steht etwas zu den Daten !?

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 21 Oktober 2020, 09:14:49
Hallo @pejonp

ich habe
den SE8K-RWS Wechselrichter
SE-MTR-3Y-400V-A Zähler
RESU10 Batterie von LG

Wenn ich das richtig verstanden habe hat die Batterie keinen eigenen Wechselrichter, sondern liefert DC an den SE8K

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 21 Oktober 2020, 12:59:36
Hallo @beejayf,

so wie es aussieht kann man da noch nicht mehr auslesen. Zwischen WR und BAT wird der CAN-Bus genutzt ?!

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 21 Oktober 2020, 20:00:01
@pejonp

Kann ich leider nicht sehen, wie die Batterie mit dem WR kommuniziert. Allerdings bekomme ich über SolarEdgeAPI die Batterie-Ladung in % und PV Power / Batt Power getrennt - aber ob SE sich das aus dem Sunspec Protokoll ausliest, oder was eigenes, nicht offenes verwendet weiß ich nicht.

Würde aber gern mithelfen, das herauszubekommen, wenn es eine Möglichkeit gibt, sich alle Register mit Zeitstempel loggen zu lassen - dann könnte ich (wenn das nicht zu blauäugig ist) das mit den Real-Life Daten vergleichen. Vielleicht finde wir so etwas.

Grüße,

BJ
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 21 Oktober 2020, 21:48:46
Hallo @beejayf,

mal mal bitte ein Update. Vielleicht klappt es mit den Batterie ModBus Registern. Kann noch sein, das die Umrechnung nicht stimmt.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 22 Oktober 2020, 10:03:53
Hallo @pejonp

bin beeindruckt! Batterie Status, Typ, Seriennummer - alles klappt!

Wie Du schon vermutet hast ist die Umrechnung noch nicht richtig - ich bekomme aktuell für 1.1kW Ladestrom den Wert 1.11293398131286e-314 angezeigt.

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 22 Oktober 2020, 10:36:00
Hallo @beejayf,

kannst du mal die Werte hier anhängen. Dann schau ich mal weiter.

Zitat
..ich bekomme aktuell für 1.1kW Ladestrom den Wert 1.11293398131286e-314 angezeigt.

Hier meinst du bestimmt die Leistung (W)?  Wie sieht es bei der Spannung (V) und dem Strom (A) aus ?

Mach mal bitte ein Update. Ich habe noch  Register eingefügt. Vielleicht bringen die noch was.
Ich brauche aber mal die Anzeige und auch ob diese Werte so stimmen könnten, vorrausgesetzt du findest diese irgndwo im Portal ;-).


Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 22 Oktober 2020, 11:11:04
Hi @pejonp,

ja - ich meine Battery_1_Instantaneous_Power

meine Werte jetzt:

Battery_1_DeviceID
112
2020-10-22 11:09:33
Battery_1_Firmware
48V DCDC 2.2.80
2020-10-22 09:54:02
Battery_1_Instantaneous_Current
4.83594081989999e+25
2020-10-22 11:09:33
Battery_1_Instantaneous_Power
5.74145987513088e-315
2020-10-22 11:09:33
Battery_1_Instantaneous_Voltage
4.66467695225809e+167
2020-10-22 11:09:33
Battery_1_Manufacturer_Name
48V_LG
2020-10-22 09:54:02
Battery_1_Model
LGC RESU 10
2020-10-22 09:54:02
Battery_1_SerialNumber
>gelöscht<
2020-10-22 09:54:02
Battery_1_Status
Laden

Noch etwas: I_AC_Power sollte doch die komplette PV Leistung anzeigen - da bekomme ich einen fast konstanten Wert um den Wert meines Eigenverbrauches angezeigt auch wenn der PV Leistungs-Wert auf der Cloud z.B. 2kW mehr anzeigt. Oder schau ich auf den falschen Wert?

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 22 Oktober 2020, 13:02:37
@beejayf

häng mal ein list von deinem device an. Serien-Nr kannst du ja rausnehmen. Werden diese richtig angezeigt ?

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 22 Oktober 2020, 13:25:49
@pejonp

Internals:
   DEF        1 30 192.168.40.1:1502 TCP
   DeviceName 192.168.40.1:1502
   EXPECT     idle
   FD         4
   FUUID      gelöscht
   INTERVAL   30
   IODev      SolarEdge
   LASTOPEN   1603353231.70757
   MODBUSID   1
   MODE       master
   MODEL      SE8K-RWS48BNN4
   MODEL_METER SE-MTR-3Y-400V-A
   MODEL_WR   SE8K-RWS48BNN4
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         15
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      <table border=0 bordercolor='green' cellspacing=0 align='center'><tr><th><h1>Gesamtenergie 766.57 kWh </h1> </td></tr></table><table border=4 bordercolor='green' cellspacing=5 align='center'><tr><th>Status</th><th>Temperatur</th><tr><td>Inverter is ON and producing power</td><td>47 °C</td></tr><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>1259.8 W</td><td>1241 W</td><td>817.5 V-</td><td>5.35 A~</td></tr></table>
   TCPConn    1
   TRIGGERTIME 1603365796.84674
   TRIGGERTIME_FMT 2020-10-22 13:23:16
   TYPE       SolarEdge
   devioLoglevel 3
   lastUpdate 1603365766.84674
   nextOpenDelay 60
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2020-10-22 13:22:46   Battery_1_DeviceID 112
     2020-10-22 09:54:02   Battery_1_Firmware 48V DCDC 2.2.80
     2020-10-22 13:22:46   Battery_1_Instantaneous_Current 40.0019639428166
     2020-10-22 13:22:46   Battery_1_Instantaneous_Power 5.32700757220797e-315
     2020-10-22 13:22:46   Battery_1_Instantaneous_Voltage 1.34666375578608e+129
     2020-10-22 09:54:02   Battery_1_Manufacturer_Name 48V_LG
     2020-10-22 09:54:02   Battery_1_Model LGC RESU 10
     2020-10-22 09:54:02   Battery_1_SerialNumber gelöscht
     2020-10-22 13:22:46   Battery_1_Status Laden
     2020-10-22 13:22:47   Block_AC_Current 5 535 179 176 178 -2
     2020-10-22 13:22:47   Block_AC_Energy_WH 5 766574 0 0 0 0
     2020-10-22 13:22:47   Block_AC_Frequency 5 4998 -2 0 0 0
     2020-10-22 13:22:47   Block_AC_PF     5 55781 -2 0 0 0
     2020-10-22 13:22:47   Block_AC_Power  5 12410 -1 0 0 0
     2020-10-22 13:22:47   Block_AC_VA     5 12717 -1 0 0 0
     2020-10-22 13:22:47   Block_AC_VAR    5 37736 -2 0 0 0
     2020-10-22 09:54:02   Block_C_Model   5 SE8K-RWS48BNN4 0 0 0 0
     2020-10-22 13:22:47   Block_DC_Current 5 15410 -4 0 0 0
     2020-10-22 13:22:47   Block_DC_Power  5 12598 -1 0 0 0
     2020-10-22 13:22:47   Block_DC_Voltage 5 8175 -1 0 0 0
     2020-10-22 09:54:02   C_DeviceAddress 1
     2020-10-22 09:54:02   C_Manufacturer  SolarEdge
     2020-10-22 09:54:02   C_Model         SE8K-RWS48BNN4
     2020-10-22 09:54:02   C_SerialNumber  gelöscht
     2020-10-22 09:54:02   C_SunSpec_DID   three phase
     2020-10-22 09:54:02   C_SunSpec_ID    SunS
     2020-10-22 09:54:02   C_Version       0004.0009.0033
     2020-10-22 13:22:47   I_AC_Current    5.35
     2020-10-22 13:22:47   I_AC_Current_A  1.79
     2020-10-22 13:22:47   I_AC_Current_B  1.76
     2020-10-22 13:22:47   I_AC_Current_C  1.78
     2020-10-22 13:22:47   I_AC_Current_SF -2
     2020-10-22 13:22:47   I_AC_Energy_WH  766574
     2020-10-22 13:22:47   I_AC_Energy_WH_SF 0
     2020-10-22 13:22:47   I_AC_Frequency  49.98
     2020-10-22 13:22:47   I_AC_Frequency_SF -2
     2020-10-22 13:22:47   I_AC_PF         557.81
     2020-10-22 13:22:47   I_AC_PF_SF      -2
     2020-10-22 13:22:47   I_AC_Power      1241
     2020-10-22 13:22:47   I_AC_Power_SF   -1
     2020-10-22 13:22:47   I_AC_VA         1271.7
     2020-10-22 13:22:47   I_AC_VAR        377.36
     2020-10-22 13:22:47   I_AC_VAR_SF     -2
     2020-10-22 13:22:47   I_AC_VA_SF      -1
     2020-10-22 13:22:47   I_AC_VoltageAB  4113
     2020-10-22 13:22:47   I_AC_VoltageAN  2363
     2020-10-22 13:22:47   I_AC_VoltageBC  4114
     2020-10-22 13:22:47   I_AC_VoltageBN  2381
     2020-10-22 13:22:47   I_AC_VoltageCA  4084
     2020-10-22 13:22:47   I_AC_VoltageCN  2365
     2020-10-22 13:22:47   I_AC_Voltage_SF 65535
     2020-10-22 13:22:47   I_DC_Current    1.541
     2020-10-22 13:22:47   I_DC_Current_SF -4
     2020-10-22 13:22:47   I_DC_Power      1259.8
     2020-10-22 13:22:47   I_DC_Power_SF   -1
     2020-10-22 13:22:47   I_DC_Voltage    817.5
     2020-10-22 13:22:47   I_DC_Voltage_SF -1
     2020-10-22 13:22:47   I_Status        Inverter is ON and producing power
     2020-10-22 13:22:47   I_Temp_HeatSink 47 °C
     2020-10-22 13:22:47   X_M_ConsumptionToday 6759
     2020-10-22 00:00:23   X_M_ExportedCurrentMonth 2023
     2020-10-22 00:00:23   X_M_ExportedCurrentWeek 2023
     2020-10-22 13:22:47   X_M_ExportedToday 46
     2020-10-22 00:00:23   X_M_ImportedCurrentMonth 20079
     2020-10-22 00:00:23   X_M_ImportedCurrentWeek 20079
     2020-10-22 13:22:47   X_M_ImportedToday 3331
     2020-10-22 13:22:47   X_Meter_1_Block_AC_Current 9 50 10 28 11 -1 0 0 0 0
     2020-10-22 13:22:47   X_Meter_1_Block_AC_Frequency 9 4997 -2 0 0 0 0 0 0 0
     2020-10-18 16:05:44   X_Meter_1_Block_AC_PF 5 0 60503 55866 4410 -9840
     2020-10-22 13:22:47   X_Meter_1_Block_AC_Power 9 14 193 -430 251 0 0 0 0 0
     2020-10-18 16:05:44   X_Meter_1_Block_AC_VA 5 0 426 234 518 247
     2020-10-18 16:05:44   X_Meter_1_Block_AC_VAR 5 0 65112 65458 65238 -47
     2020-10-22 13:22:47   X_Meter_1_Block_AC_Voltage 9 23632 23632 23785 23706 0 0 0 0 -2
     2020-10-18 16:05:44   X_Meter_1_Block_AC_Voltage_LL 5 23348 0 0 0 0
     2020-10-22 09:54:01   X_Meter_1_Block_C_Model 9 SE-MTR-3Y-400V-A 0 0 0 0 0 0 0 0
     2020-10-18 16:05:44   X_Meter_1_Block_Energy_VA 5 0 0 0 0 0
     2020-10-22 13:22:47   X_Meter_1_Block_Energy_W 9 179721 85985 57286 123029 240154 69659 201345 55728 0
     2020-10-22 09:54:01   X_Meter_1_C_DeviceAddress 2
     2020-10-22 09:55:01   X_Meter_1_C_Manufacturer SolarEdge
     2020-10-22 09:54:01   X_Meter_1_C_Model SE-MTR-3Y-400V-A
     2020-10-16 07:43:04   X_Meter_1_C_Model_SF 0
     2020-10-22 09:54:01   X_Meter_1_C_Option Export+Import
     2020-10-22 09:54:01   X_Meter_1_C_SerialNumber gelöscht
     2020-10-22 09:54:01   X_Meter_1_C_SunSpec_DID wye-connect three phase
     2020-10-18 16:05:44   X_Meter_1_C_SunSpec_DID0 ASolarEdge
     2020-10-22 09:54:01   X_Meter_1_C_SunSpec_DID_0 ASolarEdge
     2020-10-22 09:54:32   X_Meter_1_C_SunSpec_Length ASolarEdge
     2020-10-22 09:54:01   X_Meter_1_C_Version 73
     2020-10-22 13:22:47   X_Meter_1_M_AC_Current 5
     2020-10-22 13:22:47   X_Meter_1_M_AC_Current_A 1
     2020-10-22 13:22:47   X_Meter_1_M_AC_Current_B 2.8
     2020-10-22 13:22:47   X_Meter_1_M_AC_Current_C 1.1
     2020-10-22 13:22:47   X_Meter_1_M_AC_Current_SF -1
     2020-10-22 13:22:47   X_Meter_1_M_AC_Frequency 49.97
     2020-10-22 13:22:47   X_Meter_1_M_AC_Frequency_SF -2
     2020-10-18 16:05:44   X_Meter_1_M_AC_PF NaN
     2020-10-18 16:05:44   X_Meter_1_M_AC_PF_SF 60503
     2020-10-22 13:22:47   X_Meter_1_M_AC_Power 14
     2020-10-22 13:22:47   X_Meter_1_M_AC_Power_A 193
     2020-10-22 13:22:47   X_Meter_1_M_AC_Power_B -430
     2020-10-22 13:22:47   X_Meter_1_M_AC_Power_C 251
     2020-10-22 13:22:47   X_Meter_1_M_AC_Power_SF 0
     2020-10-18 16:05:44   X_Meter_1_M_AC_VA NaN
     2020-10-18 16:05:44   X_Meter_1_M_AC_VAR NaN
     2020-10-18 16:05:44   X_Meter_1_M_AC_VAR_SF 65112
     2020-10-18 16:05:44   X_Meter_1_M_AC_VA_SF 426
     2020-10-18 16:05:44   X_Meter_1_M_AC_Voltage 23348
     2020-10-22 13:22:47   X_Meter_1_M_AC_Voltage_AB 0
     2020-10-22 13:22:47   X_Meter_1_M_AC_Voltage_AN 236.32
     2020-10-22 13:22:47   X_Meter_1_M_AC_Voltage_BC 0
     2020-10-22 13:22:47   X_Meter_1_M_AC_Voltage_BN 237.85
     2020-10-22 13:22:47   X_Meter_1_M_AC_Voltage_CA 0
     2020-10-22 13:22:47   X_Meter_1_M_AC_Voltage_CN 237.06
     2020-10-22 13:22:47   X_Meter_1_M_AC_Voltage_LL 0
     2020-10-22 13:22:47   X_Meter_1_M_AC_Voltage_LN 236.32
     2020-10-22 13:22:47   X_Meter_1_M_AC_Voltage_SF -2
     2020-10-18 16:05:44   X_Meter_1_M_Energy_VA 0
     2020-10-18 16:05:44   X_Meter_1_M_Energy_VA_SF 0
     2020-10-18 16:05:44   X_Meter_1_M_Energy_W Inf
     2020-10-22 13:22:47   X_Meter_1_M_Energy_W_SF 0
     2020-10-22 13:22:47   X_Meter_1_M_Exported 179721
     2020-10-22 13:22:47   X_Meter_1_M_Exported_A 85985
     2020-10-22 13:22:47   X_Meter_1_M_Exported_B 57286
     2020-10-22 13:22:47   X_Meter_1_M_Exported_C 123029
     2020-10-22 13:22:47   X_Meter_1_M_Imported 240154
     2020-10-22 13:22:47   X_Meter_1_M_Imported_A 69659
     2020-10-22 13:22:47   X_Meter_1_M_Imported_B 201345
     2020-10-22 13:22:47   X_Meter_1_M_Imported_C 55728
     2020-10-22 13:22:47   X_PV_Energy     766574
     2020-10-22 00:00:23   X_PV_EnergyCurrentMonth 102732
     2020-10-22 00:00:23   X_PV_EnergyCurrentWeek 102732
     2020-10-22 13:22:47   X_PV_EnergyToday 3485
     2020-10-22 13:22:47   state           <table border=0 bordercolor='green' cellspacing=0 align='center'><tr><th><h1>Gesamtenergie 766.57 kWh </h1> </td></tr></table><table border=4 bordercolor='green' cellspacing=5 align='center'><tr><th>Status</th><th>Temperatur</th><tr><td>Inverter is ON and producing power</td><td>47 °C</td></tr><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>1259.8 W</td><td>1241 W</td><td>817.5 V-</td><td>5.35 A~</td></tr></table>
   REMEMBER:
     lid        1
     lname      SolarEdge
     lrecv      1603365767.36193
     lsend      1603365767.34514
   defptr:
     SolarEdge  1
   gotReadings:
     X_Meter_1_Block_AC_Current 9 50 10 28 11 -1 0 0 0 0
     X_Meter_1_Block_AC_Frequency 9 4997 -2 0 0 0 0 0 0 0
     X_Meter_1_Block_AC_Power 9 14 193 -430 251 0 0 0 0 0
     X_Meter_1_Block_AC_Voltage 9 23632 23632 23785 23706 0 0 0 0 -2
   lastRead:
     h40000     1603353242.71257
     h40004     1603353242.71545
     h40020     1603353242.7191
     h40044     1603353242.59281
     h40052     1603353242.59533
     h40068     1603353242.59757
     h40069     1603353242.5996
     h40071     1603365767.24472
     h40076     1603365767.24557
     h40077     1603365767.24637
     h40078     1603365767.24717
     h40079     1603365767.24797
     h40080     1603365767.24877
     h40081     1603365767.24958
     h40082     1603365767.25038
     h40083     1603365767.25186
     h40085     1603365767.25327
     h40087     1603365767.2546
     h40089     1603365767.25593
     h40091     1603365767.25726
     h40093     1603365767.25897
     h40096     1603365767.26037
     h40098     1603365767.26182
     h40100     1603365767.2632
     h40103     1603365767.26421
     h40107     1603365767.26549
     h40121     1603353242.00274
     h40122     1603353272.39808
     h40123     1603353301.71792
     h40139     1603353242.00676
     h40155     1603353241.90311
     h40163     1603353241.90581
     h40171     1603353241.90817
     h40187     1603353241.91039
     h40188     1603353241.91248
     h40190     1603365767.364
     h40195     1603365767.36574
     h40204     1603365767.36697
     h40206     1603365767.36833
     h40226     1603365767.11536
     h57600     1603353242.26338
     h57616     1603353242.26657
     h57632     1603353242.26952
     h57648     1603353242.1427
     h57664     1603365766.99317
     h57712     1603365766.87223
     h57714     1603365766.87302
     h57716     1603365766.87384
     h57734     1603365766.87564
Attributes:
   disable    0

das ist das komplette Listing
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 22 Oktober 2020, 16:42:03
@matkoh

Hallo Matthias,

Danke für die Rückmeldung. Ein Paar Daten kommen ja. Hast du die aktuelle Version von Modbus ?

Zitat
98_Modbus.pm           20182 2019-09-17 12:53:40Z StefanStrobel
98_ModbusAttr.pm       19133 2019-04-06 18:40:30Z StefanStrobel

Eigentlich sollten dann keine Werte angezeigt werden, oder es ist schon etwas vorbereitet ?!

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 22 Oktober 2020, 16:52:40
@beejayf

Hast du die aktuelle Version (32) im Einsatz ?
Könnten bei  Battery_1_Instantaneous_Current 40.0019639428166         40.00 A stimmen ?


Mach mal bitte ein Update und FHEM auch neu starten ? Danke.
Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 22 Oktober 2020, 17:32:53
Hallo @pejonp

die Version 32 habe ich. 40A wären bei 48V ~2kW - zu der Zeit wurden - wenn I_DC_Power die Summe aus Batterie und PV Leistung ist 1.2kW abgegeben - 40A wirkt zu hoch.

z.Z. habe ich diese Werte:

2020-10-22 17:19:32   Battery_1_DeviceID 112
2020-10-22 09:54:02   Battery_1_Firmware 48V DCDC 2.2.80
2020-10-22 17:19:32   Battery_1_Instantaneous_Current 1.70343394483434e-107
2020-10-22 17:19:32   Battery_1_Instantaneous_Power 2.71618923216396e-310
2020-10-22 17:19:32   Battery_1_Instantaneous_Voltage 3.33286383878718e+184
2020-10-22 09:54:02   Battery_1_Manufacturer_Name 48V_LG
[...]
2020-10-22 17:19:32   I_AC_Power      767
[...]
2020-10-22 17:19:32   I_DC_Power      778.6

von der PV kommen gerade noch 30W (laut API-Werten)

Cheers,

Björn
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 22 Oktober 2020, 18:08:12
Hi Björn,

eigentlich müste jetzt sowas bei dir stehen

Battery_1_Instantaneous_Current_A

Battery_1_Instantaneous_Power_W

Ich habe noch die Maßeinheit mit angehangen.
Scheint nicht zu funktionieren. Kanst du mal deinen FHEM Server und das Betriebssystem (Linux) neu starten ?! Vielleicht hängt da noch was !?

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 22 Oktober 2020, 18:23:33
Hallo Jörg,

habe meinen FHEM Server (Raspbian Stretch aktuell nur für FHEM da - load 0.21)  neu gestartet. die Bezeichner sind noch immer ohne Einheiten.

Ich habe bemerkt, dass das System seit dem Update auf v32 "hakt" also immer wieder im Browser oben "Connection lost, trying to reconnect every 5 seconds" angezeigt wird und die Werte der Battery_1_Instantaneous_Power noch von vor dem Update sind.

Aus dem Block Batterie erneuern sich nur
Battery_1_Firmware
Battery_1_Manufacturer_Name
Battery_1_Model
Battery_1_Status

der Rest bleibt auf den alten Werten.

Gruß,

Björn
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 22 Oktober 2020, 20:05:01
Hallo Jörg,

ich bekomme kein Update für das Modbus-Modul angeboten. Ich gehe also davon aus, dass ich die aktuelle Version habe:
98_Modbus.pm               20182 2019-09-17 12:53:40Z StefanStrobel
98_ModbusAttr.pm           19133 2019-04-06 18:40:30Z StefanStrobel

Meine PV-Anlage incl. Wechselrichter wurde erst vor ein paar Wochen installiert und eigentlich sollte der Speicher schon montiert sein. Daher kann es gut sein, dass der Installateur schon Vorbereitungen für den Speicher getroffen hat und deshalb Werte angezeigt werden.

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 22 Oktober 2020, 20:52:21
Hallo Jörg,

habe gerade nochmal von Github verschiedene Versionen Deines Moduls installiert:

- v33 - fhem läuft mit Problemen - System-load von 0.21 auf meinem Raspberry 3
- v32 - fhem läuft mit Problemen - load von 0.21
- v31 - fhem läuft normal - load von 0.07

Hoffe das hilft bei der Problemsuche.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 23 Oktober 2020, 08:35:32
Hi Björn,

In welchem interval fragst du ab 60sec oder weniger. Wenn weniger stell mal bitte auf 60.
Bei einer Abfrage ließt er 40 Register aus.

Ab Version v32 werden mehr Register abgefragt.( Und die Umrechnung passt auch noch nicht so richtig.)

- v33 - fhem läuft mit Problemen - System-load von 0.21 auf meinem Raspberry 3
- v32 - fhem läuft mit Problemen - load von 0.21

Kannst du mal alle deine Readings löschen um mal zu sehen was dann angelegt wird ?


deletereading Devicename  X_M.*

Gruß Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 23 Oktober 2020, 09:02:53
Hallo Jörg,

okay - habe zur Sicherheit das Modbus Modul aktualisiert, weil ich gesehen habe, dass Du das im Deinem Modul mitverwendest. Nach dem Neustart eben und dem erneuten Updaten auf Deine Version 33 ist der load wieder normal und es kommen folgende Daten rein:

Internals:
   DEF        1 30 192.168.40.1:1502 TCP
   DeviceName 192.168.40.1:1502
   EXPECT     idle
   FD         28
   FUUID      5f84a0b3-f33f-9747-04a0-c3004f1518bd7eb8
   INTERVAL   30
   IODev      SolarEdge
   LASTOPEN   1603412324.64701
   MODBUSID   1
   MODE       master
   MODEL      SE8K-RWS48BNN4
   MODEL_METER SE-MTR-3Y-400V-A
   MODEL_WR   SE8K-RWS48BNN4
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         15
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      <table border=0 bordercolor='green' cellspacing=0 align='center'><tr><th><h1>Gesamtenergie 775.64 kWh </h1> </td></tr></table><table border=4 bordercolor='green' cellspacing=5 align='center'><tr><th>Status</th><th>Temperatur</th><tr><td>Inverter is ON and producing power</td><td>43 °C</td></tr><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>187.81 W</td><td>185 W</td><td>818.5 V-</td><td>2.26 A~</td></tr></table>
   TCPConn    1
   TRIGGERTIME 1603436306.04974
   TRIGGERTIME_FMT 2020-10-23 08:58:26
   TYPE       SolarEdge
   devioLoglevel 3
   lastUpdate 1603436276.04974
   nextOpenDelay 60
   OLDREADINGS:
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2020-10-23 08:57:56   Battery_1_DeviceID 112
     2020-10-22 20:45:27   Battery_1_Firmware 48V DCDC 2.2.80
     2020-10-23 08:57:56   Battery_1_Instantaneous_Current 1.39037376166323e-314
     2020-10-23 08:57:56   Battery_1_Instantaneous_Power 1.08646184497422e-311
     2020-10-23 08:57:56   Battery_1_Instantaneous_Voltage -2.8242560236401e-117
     2020-10-22 20:45:27   Battery_1_Manufacturer_Name 48V_LG
     2020-10-22 20:45:27   Battery_1_Model LGC RESU 10
     2020-10-22 20:45:28   Battery_1_SerialNumber del
     2020-10-23 08:57:56   Battery_1_Status Erhaltungsladen
     2020-10-23 08:57:56   Block_AC_Current 5 226 68 78 78 -2
     2020-10-23 08:57:56   Block_AC_Energy_WH 5 775637 0 0 0 0
     2020-10-23 08:57:56   Block_AC_Frequency 5 4998 -2 0 0 0
     2020-10-23 08:57:56   Block_AC_PF     5 62064 -2 0 0 0
     2020-10-23 08:57:56   Block_AC_Power  5 18500 -2 0 0 0
     2020-10-23 08:57:56   Block_AC_VA     5 5293 -1 0 0 0
     2020-10-23 08:57:56   Block_AC_VAR    5 60576 -1 0 0 0
     2020-10-22 20:45:28   Block_C_Model   5 SE8K-RWS48BNN4 0 0 0 0
     2020-10-23 08:57:56   Block_DC_Current 5 22945 -5 0 0 0
     2020-10-23 08:57:56   Block_DC_Power  5 18781 -2 0 0 0
     2020-10-23 08:57:56   Block_DC_Voltage 5 8185 -1 0 0 0
     2020-10-22 20:45:28   C_DeviceAddress 1
     2020-10-22 20:45:28   C_Manufacturer  SolarEdge
     2020-10-22 20:45:28   C_Model         SE8K-RWS48BNN4
     2020-10-22 20:45:28   C_SerialNumber  del
     2020-10-22 20:45:28   C_SunSpec_DID   three phase
     2020-10-22 20:45:28   C_SunSpec_ID    SunS
     2020-10-22 20:45:28   C_Version       0004.0009.0033
     2020-10-23 08:57:56   I_AC_Current    2.26
     2020-10-23 08:57:56   I_AC_Current_A  0.68
     2020-10-23 08:57:56   I_AC_Current_B  0.78
     2020-10-23 08:57:56   I_AC_Current_C  0.78
     2020-10-23 08:57:56   I_AC_Current_SF -2
     2020-10-23 08:57:56   I_AC_Energy_WH  775637
     2020-10-23 08:57:56   I_AC_Energy_WH_SF 0
     2020-10-23 08:57:56   I_AC_Frequency  49.98
     2020-10-23 08:57:56   I_AC_Frequency_SF -2
     2020-10-23 08:57:56   I_AC_PF         620.64
     2020-10-23 08:57:56   I_AC_PF_SF      -2
     2020-10-23 08:57:56   I_AC_Power      185
     2020-10-23 08:57:56   I_AC_Power_SF   -2
     2020-10-23 08:57:56   I_AC_VA         529.3
     2020-10-23 08:57:56   I_AC_VAR        6057.6
     2020-10-23 08:57:56   I_AC_VAR_SF     -1
     2020-10-23 08:57:56   I_AC_VA_SF      -1
     2020-10-23 08:57:56   I_AC_VoltageAB  4077
     2020-10-23 08:57:56   I_AC_VoltageAN  2337
     2020-10-23 08:57:56   I_AC_VoltageBC  4074
     2020-10-23 08:57:56   I_AC_VoltageBN  2370
     2020-10-23 08:57:56   I_AC_VoltageCA  4055
     2020-10-23 08:57:56   I_AC_VoltageCN  2339
     2020-10-23 08:57:56   I_AC_Voltage_SF 65535
     2020-10-23 08:57:56   I_DC_Current    0.22945
     2020-10-23 08:57:56   I_DC_Current_SF -5
     2020-10-23 08:57:56   I_DC_Power      187.81
     2020-10-23 08:57:56   I_DC_Power_SF   -2
     2020-10-23 08:57:56   I_DC_Voltage    818.5
     2020-10-23 08:57:56   I_DC_Voltage_SF -1
     2020-10-23 08:57:56   I_Status        Inverter is ON and producing power
     2020-10-23 08:57:56   I_Temp_HeatSink 43 °C
     2020-10-23 08:57:56   X_M_ConsumptionToday 82
     2020-10-23 08:57:56   X_M_ExportedToday 0
     2020-10-23 08:57:56   X_M_ImportedToday 4
     2020-10-23 08:57:56   X_Meter_1_Block_AC_Current 9 46 14 24 7 -1 0 0 0 0
     2020-10-23 08:57:56   X_Meter_1_Block_AC_Frequency 9 4999 -2 0 0 0 0 0 0 0
     2020-10-23 08:57:56   X_Meter_1_Block_AC_Power 9 -478 -217 -291 30 0 0 0 0 0
     2020-10-23 08:57:56   X_Meter_1_Block_AC_Voltage 9 23430 23430 23682 23447 0 0 0 0 -2
     2020-10-23 08:57:56   X_Meter_1_Block_Energy_W 9 179979 87157 57376 124211 246160 71199 206955 56771 0
     2020-10-23 08:57:56   X_Meter_1_M_AC_Current 4.6
     2020-10-23 08:57:56   X_Meter_1_M_AC_Current_A 1.4
     2020-10-23 08:57:56   X_Meter_1_M_AC_Current_B 2.4
     2020-10-23 08:57:56   X_Meter_1_M_AC_Current_C 0.7
     2020-10-23 08:57:56   X_Meter_1_M_AC_Current_SF -1
     2020-10-23 08:57:56   X_Meter_1_M_AC_Frequency 49.99
     2020-10-23 08:57:56   X_Meter_1_M_AC_Frequency_SF -2
     2020-10-23 08:57:56   X_Meter_1_M_AC_Power -478
     2020-10-23 08:57:56   X_Meter_1_M_AC_Power_A -217
     2020-10-23 08:57:56   X_Meter_1_M_AC_Power_B -291
     2020-10-23 08:57:56   X_Meter_1_M_AC_Power_C 30
     2020-10-23 08:57:56   X_Meter_1_M_AC_Power_SF 0
     2020-10-23 08:57:56   X_Meter_1_M_AC_Voltage_AB 0
     2020-10-23 08:57:56   X_Meter_1_M_AC_Voltage_AN 234.3
     2020-10-23 08:57:56   X_Meter_1_M_AC_Voltage_BC 0
     2020-10-23 08:57:56   X_Meter_1_M_AC_Voltage_BN 236.82
     2020-10-23 08:57:56   X_Meter_1_M_AC_Voltage_CA 0
     2020-10-23 08:57:56   X_Meter_1_M_AC_Voltage_CN 234.47
     2020-10-23 08:57:56   X_Meter_1_M_AC_Voltage_LL 0
     2020-10-23 08:57:56   X_Meter_1_M_AC_Voltage_LN 234.3
     2020-10-23 08:57:56   X_Meter_1_M_AC_Voltage_SF -2
     2020-10-23 08:57:56   X_Meter_1_M_Energy_W_SF 0
     2020-10-23 08:57:56   X_Meter_1_M_Exported 179979
     2020-10-23 08:57:56   X_Meter_1_M_Exported_A 87157
     2020-10-23 08:57:56   X_Meter_1_M_Exported_B 57376
     2020-10-23 08:57:56   X_Meter_1_M_Exported_C 124211
     2020-10-23 08:57:56   X_Meter_1_M_Imported 246160
     2020-10-23 08:57:56   X_Meter_1_M_Imported_A 71199
     2020-10-23 08:57:56   X_Meter_1_M_Imported_B 206955
     2020-10-23 08:57:56   X_Meter_1_M_Imported_C 56771
     2020-10-23 08:57:56   X_PV_Energy     775637
     2020-10-23 00:00:19   X_PV_EnergyCurrentMonth 115202
     2020-10-23 00:00:19   X_PV_EnergyCurrentWeek 115202
     2020-10-23 08:57:56   X_PV_EnergyToday 78
     2020-10-23 08:57:56   state           <table border=0 bordercolor='green' cellspacing=0 align='center'><tr><th><h1>Gesamtenergie 775.64 kWh </h1> </td></tr></table><table border=4 bordercolor='green' cellspacing=5 align='center'><tr><th>Status</th><th>Temperatur</th><tr><td>Inverter is ON and producing power</td><td>43 °C</td></tr><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>187.81 W</td><td>185 W</td><td>818.5 V-</td><td>2.26 A~</td></tr></table>
   REMEMBER:
     lid        1
     lname      SolarEdge
     lrecv      1603436276.63702
     lsend      1603436276.61923
   defptr:
     SolarEdge  1
   gotReadings:
     Battery_1_DeviceID 112
   lastRead:
     h40000     1603392328.5726
     h40004     1603392328.57411
     h40020     1603392328.57623
     h40044     1603392328.00376
     h40052     1603392328.00623
     h40068     1603392328.00851
     h40069     1603392328.01037
     h40071     1603436276.16167
     h40076     1603436276.16363
     h40077     1603436276.16535
     h40078     1603436276.16698
     h40079     1603436276.16862
     h40080     1603436276.17026
     h40081     1603436276.17189
     h40082     1603436276.17362
     h40083     1603436276.17649
     h40085     1603436276.17914
     h40087     1603436276.18182
     h40089     1603436276.18468
     h40091     1603436276.18737
     h40093     1603436276.19046
     h40096     1603436276.19317
     h40098     1603436276.19579
     h40100     1603436276.19853
     h40103     1603436276.20054
     h40107     1603436276.20317
     h40121     1603392327.6128
     h40122     1603392357.65249
     h40123     1603392387.87544
     h40139     1603392327.6168
     h40155     1603392327.5039
     h40163     1603392327.50649
     h40171     1603392327.50886
     h40187     1603392327.51115
     h40188     1603392327.51365
     h40190     1603436276.51857
     h40195     1603436276.52029
     h40204     1603436276.52152
     h40206     1603436276.52301
     h40226     1603436276.3992
     h57600     1603392327.85835
     h57616     1603392327.86142
     h57632     1603392327.86482
     h57648     1603392328.25179
     h57664     1603436276.63829
     h57712     1603436276.27826
     h57714     1603436276.27909
     h57716     1603436276.27989
     h57734     1603436276.2817

Zu der Zeit hatte ich zwischen 0,15 und 0,2 kW von der PV und 9% in der Batterie - daher ist die Batterie auf Idle
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 23 Oktober 2020, 10:49:25
Hallo Jörg,

nur als Hinweis, ich habe eben Dein Modul aktualisiert mit
update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txtund anschließend ein Update von FHEM vorgenommen. Als Ergebnis ist FHEM nicht mehr gestartet mit folgender Fehlermeldung:
Invalid type 'D' in unpack at ./FHEM/98_Modbus.pm line 2398
In /opt/fhem/FHEM war das Modul 98_Modbus.pm immer noch vom 24.09.19. Ein Update auf die aktuelle Version ist bei mir nicht automatisch erfolgt.
Ich habe dann aus dem Post https://forum.fhem.de/index.php/topic,75638.525.html (https://forum.fhem.de/index.php/topic,75638.525.html) die aktuellen Versionen der Module 98_Modbus.pm und 98ModbusAttr.pm nach /opt/fhem/FHEM kopiert und die Datei modTemplate nach /opt/fhem/lib/FHEM/Modbus, wobei dieses Verzeichnis noch nicht vorhanden war.

Danach startet FHEM wieder normal. Ich weiß nicht, ob das Problem nur bei mir auftritt oder ein allgemeines Problem ist. Falls jemand das auch hat, kann er es durch manuelles Kopieren lösen wie beschrieben.

Allerdings gibt es noch einen Fehler mit Deinem Modul nach dem Neustart:
Undefined subroutine &FHEM::SolarEdge::ModbusLD_Initialize called at ./FHEM/98_SolarEdge.pm line 629
Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 23 Oktober 2020, 18:40:18
Hi @pejonp

ich bin verwirrt und mache vielleicht einen totalen Anfängerfehler:

In Deinem Modul finde ich die Bezeichnung "Battery_1_Instantaneous_Power_W" in Zeile 599 - und nur dort. "Battery_1_Instantaneous_Power" ohne _W finde ich gar nicht. Trotzdem wird in FHEM bei mir nur "Battery_1_Instantaneous_Power" angezeigt. (Du hattest das schon vor einiger Zeit geschrieben, dass Du _W angehängt hast).

Kann es sein, dass das Modul, obwohl es bei mir im fhem/FHEM/ Verzeichnis liegt nicht richtig eingebunden ist - also in einer Vorgängerversion? Oder wird alles, was in diesem Verzeichnis liegt automatisch verwendet? Wie kann ich das prüfen, oder "vo Hand" zurücksetzen. Ich hoffe ich drücke das richtig aus.

Weiter habe ich den EIntrag in mein FHEM komplett gelöscht und versucht diesen neu anzulegen. Das hat nicht geklappt:
Ich geben oben folgendes ein: "define SolarEdgeWR SolarEdge 1 60 192.168.40.1:1502 TCP"
darauf hin sehe ich die typische Anzeige (Tabelle mit den Daten - sieht alles gut aus) aber nichts wird gespeichert - also wenn ich danach auf "Unsorted" klicke taucht SolarEdgeWR einfach nicht auf.

Irgendwie ist bei mir der Wurm drin...


Beste Grüße,

BJ

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 23 Oktober 2020, 18:54:18
@matkoh

Hi Matthias,

beim Fehler muss ich noch ran und Ihn beheben. Um Ihn wegzubekommen bitte einmal ein Update machen, dann werden die ModBus Module geholt die funktionieren.

Zitat
Undefined subroutine &FHEM::SolarEdge::ModbusLD_Initialize called at ./FHEM/98_SolarEdge.pm line 629

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 23 Oktober 2020, 18:59:12
@beejayf

...
In Deinem Modul finde ich die Bezeichnung "Battery_1_Instantaneous_Power_W" in Zeile 599 - und nur dort. "Battery_1_Instantaneous_Power" ohne _W finde ich gar nicht. Trotzdem wird in FHEM bei mir nur "Battery_1_Instantaneous_Power" angezeigt. (Du hattest das schon vor einiger Zeit geschrieben, dass Du _W angehängt hast).

....

Hi Björn,

genau das hatte ich gemeint. Ich habe etwas geändert aber es wurde bei dir nicht angezeigt. Ich kann es bei mir nicht prüfen da ich keine Kombination SolarEdge + LG Batterie habe.
Setze mal verbose = 3 und hänge den Log mal hier an. Vielleich sieht man etwas.

Jörg


PS: Schau mal bitte in dein Verzeichnis /opt/fhem/FHEM unter linux, ob die Zugriffsrechte richtig gesetzt sind.

Zitat
user:fhem  group:dialout
rw-r--r--


Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 23 Oktober 2020, 19:56:13
In der zwischenzeit habe ich den Eintrag in mein FHEM komplett gelöscht und versucht diesen neu anzulegen. Das hat nicht geklappt:
Ich geben oben folgendes ein: "define SolarEdgeWR SolarEdge 1 60 192.168.40.1:1502 TCP"
darauf hin sehe ich die typische Anzeige (Tabelle mit den Daten - sieht alles gut aus) aber nichts wird gespeichert - also wenn ich danach auf "Unsorted" klicke taucht SolarEdgeWR einfach nicht auf.

Irgendwie ist bei mir der Wurm drin...

ach ja - Berechtigungen waren i.O.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 23 Oktober 2020, 20:08:41
@beejayf

Schreibrechte in log-Verzeichnis okay ?

oder Festplatte/Speicher voll ?

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 23 Oktober 2020, 20:47:12
drwxr-xr-x  2 fhem dialout   4096 Oct 23 19:30 log

Plate ist zu 6% voll

Alles I. O.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 23 Oktober 2020, 21:18:32
Hallo Jörg,

auch nach dem Update kommt der gleiche Fehler, das Modul kann nicht geladen werden:
2020.10.23 21:12:50 0: Undefined subroutine &FHEM::SolarEdge::ModbusLD_Initialize called at ./FHEM/98_SolarEdge.pm line 629.

2020.10.23 21:12:51 1: Messages collected while initializing FHEM:configDB: Cannot load module SolarEdge

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 24 Oktober 2020, 00:19:44
Hi @pejonp

hab mir gerade den Spass gemacht und auf einer zweiten SD Karte Raspbian buster frisch zu installieren und einfach nur FHEM und libmath-round-perl zu installieren.

Dort habe ich dann direkt
"update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt" hinzugefügt und mit
"define SolarEdgeWR SolarEdge 1 60 192.168.40.1:1502 TCP" das Modul eingerichtet.

Selbes Resultat, wie auf meiner ersten Installation:
Tabelle mit Infos geht auf - das rote Fragezeichen neben "Save config" erscheint - jedoch ist der Hinweis beim Klick auf das Fragezeichen "no structural changes" und das Modul wird nicht eingerichtet.

Andere defines funktionieren aber ohne Probleme.

Kann es sein, dass die aktuelle Version 33 ein Problem hat?

Beste Grüße,

BJ
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 24 Oktober 2020, 09:31:25
@beejayf, @matkoh

Hallo,

macht mal bitte nochmal ein update. Ich habe an den unpack-Einstellungen noch etwas geändert. Jetzt hoffe ich das es ohne Fehler läuft.
Die Anzeige der Werte muss damit aber noch nicht stimmen.
Bitte mal ein list oder auch log anhängen. Danke.

Bitte einen Neustart von FHEM machen.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 24 Oktober 2020, 11:31:03
Hallo @pejonp

leider noch immer ein Fehler beim Anlegen wie gehabt.

Wenn ich auf Deine Version vom 16.10. downgrade funktioniert alles super - die aktuelle Version erzeugt beim Anlegen folgenden Fehler:

SolarEdgeWR: defined with id 1, interval 60, protocol TCP, mode master, connection to 192.168.40.1:1502
2020.10.24 10:02:04 3: Opening SolarEdgeWR device 192.168.40.1:1502
2020.10.24 10:02:04 3: SolarEdgeWR device opened
'>' allowed only after types sSiIlLqQjJfFdDpP( in unpack at ./FHEM/98_Modbus.pm line 2398.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 24 Oktober 2020, 13:34:52
@beejayf, @matkoh

Hallo,

macht mal bitte nochmal ein update.
Bitte mal ein list oder auch log anhängen. Danke.

Bitte einen Neustart von FHEM machen.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 24 Oktober 2020, 14:46:14
Super - definition läuft jetzt sauber durch

Internals:
   DEF        1 60 192.168.40.1:1502 TCP
   DeviceName 192.168.40.1:1502
   EXPECT     idle
   FD         4
   FUUID      5f93f268-f33f-9747-8ea8-b315f5ee4948ce63
   INTERVAL   60
   IODev      SolarEdgeWR
   LASTOPEN   1603542902.87412
   MODBUSID   1
   MODE       master
   MODEL      SE8K-RWS48BNN4 : SE-MTR-3Y-400V-A
   MODEL_METER SE-MTR-3Y-400V-A
   MODEL_WR   SE8K-RWS48BNN4
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       SolarEdgeWR
   NOTIFYDEV  global
   NR         62
   NTFY_ORDER 50-SolarEdgeWR
   PARTIAL   
   PROTOCOL   TCP
   STATE      <table border=0 bordercolor='green' cellspacing=0 align='center'><tr><th><h1>Gesamtenergie 794.8 kWh </h1> </td></tr></table><table border=4 bordercolor='green' cellspacing=5 align='center'><tr><th>Status</th><th>Temperatur</th><tr><td>Inverter is ON and producing power</td><td>51 °C</td></tr><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>4634 W</td><td>4565 W</td><td>817.8 V-</td><td>19.85 A~</td></tr></table>
   TCPConn    1
   TRIGGERTIME 1603543031.63193
   TRIGGERTIME_FMT 2020-10-24 13:37:11
   TYPE       SolarEdge
   devioLoglevel 3
   lastUpdate 1603542971.63193
   nextOpenDelay 60
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2020-10-24 13:35:13   Battery_1_DeviceID p F@E£@E£
     2020-10-24 13:35:12   Battery_1_Firmware 48V DCDC 2.2.80
     2020-10-24 13:36:12   Battery_1_Instantaneous_Current_A 4208
     2020-10-24 13:36:12   Battery_1_Instantaneous_Power_W 0
     2020-10-24 13:36:12   Battery_1_Instantaneous_Voltage_V 9801
     2020-10-24 13:35:12   Battery_1_Manufacturer_Name 48V_LG
     2020-10-24 13:36:11   Battery_1_Max_Charge_Continues_Power_W 1073759644
     2020-10-24 13:36:11   Battery_1_Max_Charge_Peak_Power_W 0
     2020-10-24 13:36:11   Battery_1_Max_Discharge_Continues_Power_W 1073759644
     2020-10-24 13:36:11   Battery_1_Max_Discharge_Peak_Power_W 1073759644
     2020-10-24 13:35:12   Battery_1_Model LGC RESU 10
     2020-10-24 13:36:11   Battery_1_Rated_Energy_WH 536888857
     2020-10-24 13:35:13   Battery_1_SerialNumber del
     2020-10-24 13:36:12   Battery_1_Status Erhaltungsladen
     2020-10-24 13:36:12   Block_AC_Current 5 1985 661 661 662 -2
     2020-10-24 13:36:12   Block_AC_Energy_WH 5 794798 0 0 0 0
     2020-10-24 13:36:12   Block_AC_Frequency 5 5000 -2 0 0 0
     2020-10-24 13:36:12   Block_AC_PF     5 55924 -2 0 0 0
     2020-10-24 13:36:12   Block_AC_Power  5 4565 0 0 0 0
     2020-10-24 13:36:12   Block_AC_VA     5 4748 0 0 0 0
     2020-10-24 13:36:12   Block_AC_VAR    5 52466 -1 0 0 0
     2020-10-24 13:35:13   Block_C_Model   5 SE8K-RWS48BNN4 0 0 0 0
     2020-10-24 13:36:12   Block_DC_Current 5 5666 -3 0 0 0
     2020-10-24 13:36:12   Block_DC_Power  5 4634 0 0 0 0
     2020-10-24 13:36:12   Block_DC_Voltage 5 8178 -1 0 0 0
     2020-10-24 13:35:12   C_DeviceAddress 1
     2020-10-24 13:35:13   C_Manufacturer  SolarEdge
     2020-10-24 13:35:13   C_Model         SE8K-RWS48BNN4
     2020-10-24 13:35:12   C_SerialNumber  del
     2020-10-24 13:35:12   C_SunSpec_DID   three phase
     2020-10-24 13:35:13   C_SunSpec_ID    SunS
     2020-10-24 13:35:12   C_Version       0004.0009.0033
     2020-10-24 13:36:12   I_AC_Current    19.85
     2020-10-24 13:36:12   I_AC_Current_A  6.61
     2020-10-24 13:36:12   I_AC_Current_B  6.61
     2020-10-24 13:36:12   I_AC_Current_C  6.62
     2020-10-24 13:36:12   I_AC_Current_SF -2
     2020-10-24 13:36:12   I_AC_Energy_WH  794798
     2020-10-24 13:36:12   I_AC_Energy_WH_SF 0
     2020-10-24 13:36:12   I_AC_Frequency  50
     2020-10-24 13:36:12   I_AC_Frequency_SF -2
     2020-10-24 13:36:12   I_AC_PF         559.24
     2020-10-24 13:36:12   I_AC_PF_SF      -2
     2020-10-24 13:36:12   I_AC_Power      4565
     2020-10-24 13:36:12   I_AC_Power_SF   0
     2020-10-24 13:36:12   I_AC_VA         4748
     2020-10-24 13:36:12   I_AC_VAR        5246.6
     2020-10-24 13:36:12   I_AC_VAR_SF     -1
     2020-10-24 13:36:12   I_AC_VA_SF      0
     2020-10-24 13:36:12   I_AC_VoltageAB  4132
     2020-10-24 13:36:12   I_AC_VoltageAN  2376
     2020-10-24 13:36:12   I_AC_VoltageBC  4139
     2020-10-24 13:36:12   I_AC_VoltageBN  2391
     2020-10-24 13:36:12   I_AC_VoltageCA  4115
     2020-10-24 13:36:12   I_AC_VoltageCN  2385
     2020-10-24 13:36:12   I_AC_Voltage_SF 65535
     2020-10-24 13:36:12   I_DC_Current    5.666
     2020-10-24 13:36:12   I_DC_Current_SF -3
     2020-10-24 13:36:12   I_DC_Power      4634
     2020-10-24 13:36:12   I_DC_Power_SF   0
     2020-10-24 13:36:12   I_DC_Voltage    817.8
     2020-10-24 13:36:12   I_DC_Voltage_SF -1
     2020-10-24 13:36:12   I_Status        Inverter is ON and producing power
     2020-10-24 13:36:12   I_Temp_HeatSink 51 °C
     2020-10-24 13:36:12   X_M_ConsumptionToday 6333
     2020-10-24 13:36:12   X_M_ExportedToday 3889
     2020-10-24 13:36:12   X_M_ImportedToday 131
     2020-10-24 13:36:11   X_Meter_1_Block_AC_Current 9 124 35 44 44 -1 0 0 0 0
     2020-10-24 13:36:11   X_Meter_1_Block_AC_Frequency 9 5000 -2 0 0 0 0 0 0 0
     2020-10-24 13:36:11   X_Meter_1_Block_AC_PF 9 -3170 -9210 9369 -9670 -2 0 0 0 0
     2020-10-24 13:36:11   X_Meter_1_Block_AC_Power 9 804 771 -1002 1036 0 0 0 0 0
     2020-10-24 13:36:11   X_Meter_1_Block_AC_VA 9 1000 829 1003 1067 0 0 0 0 0
     2020-10-24 13:36:11   X_Meter_1_Block_AC_VAR 9 594 304 32 256 0 0 0 0 0
     2020-10-24 13:36:11   X_Meter_1_Block_AC_Voltage 9 23685 23685 23874 23775 0 0 0 0 -2
     2020-10-24 13:35:13   X_Meter_1_Block_C_Model 9 SE-MTR-3Y-400V-A 0 0 0 0 0 0 0 0
     2020-10-24 13:36:12   X_Meter_1_Block_Energy_VA 9 0 0 0 0 0 0 0 0 -32768
     2020-10-24 13:36:12   X_Meter_1_Block_Energy_W 9 184226 89009 58741 127483 256294 73667 215452 58181 0
     2020-10-24 13:35:13   X_Meter_1_C_DeviceAddress 2
     2020-10-24 10:24:50   X_Meter_1_C_Manufacturer SolarEdge
     2020-10-24 13:35:13   X_Meter_1_C_Model SE-MTR-3Y-400V-A
     2020-10-24 13:35:13   X_Meter_1_C_Option Export+Import
     2020-10-24 13:35:13   X_Meter_1_C_SerialNumber del
     2020-10-24 13:35:13   X_Meter_1_C_SunSpec_DID wye-connect three phase
     2020-10-24 13:35:13   X_Meter_1_C_SunSpec_DID_0 ASolarEdge
     2020-10-24 13:36:11   X_Meter_1_C_SunSpec_Length ASolarEdge
     2020-10-24 13:35:13   X_Meter_1_C_Version 73
     2020-10-24 13:36:11   X_Meter_1_M_AC_Current 12.4
     2020-10-24 13:36:11   X_Meter_1_M_AC_Current_A 3.5
     2020-10-24 13:36:11   X_Meter_1_M_AC_Current_B 4.4
     2020-10-24 13:36:11   X_Meter_1_M_AC_Current_C 4.4
     2020-10-24 13:36:11   X_Meter_1_M_AC_Current_SF -1
     2020-10-24 13:36:11   X_Meter_1_M_AC_Frequency 50
     2020-10-24 13:36:11   X_Meter_1_M_AC_Frequency_SF -2
     2020-10-24 13:36:11   X_Meter_1_M_AC_PF -31.7
     2020-10-24 13:36:11   X_Meter_1_M_AC_PF_A -92.1
     2020-10-24 13:36:11   X_Meter_1_M_AC_PF_B 93.69
     2020-10-24 13:36:11   X_Meter_1_M_AC_PF_C -96.7
     2020-10-24 13:36:11   X_Meter_1_M_AC_PF_SF -2
     2020-10-24 13:36:11   X_Meter_1_M_AC_Power 804
     2020-10-24 13:36:11   X_Meter_1_M_AC_Power_A 771
     2020-10-24 13:36:11   X_Meter_1_M_AC_Power_B -1002
     2020-10-24 13:36:11   X_Meter_1_M_AC_Power_C 1036
     2020-10-24 13:36:11   X_Meter_1_M_AC_Power_SF 0
     2020-10-24 13:36:11   X_Meter_1_M_AC_VA 1000
     2020-10-24 13:36:11   X_Meter_1_M_AC_VAR 594
     2020-10-24 13:36:11   X_Meter_1_M_AC_VAR_A 304
     2020-10-24 13:36:11   X_Meter_1_M_AC_VAR_B 32
     2020-10-24 13:36:11   X_Meter_1_M_AC_VAR_C 256
     2020-10-24 13:36:11   X_Meter_1_M_AC_VAR_SF 0
     2020-10-24 13:36:11   X_Meter_1_M_AC_VA_A 829
     2020-10-24 13:36:11   X_Meter_1_M_AC_VA_B 1003
     2020-10-24 13:36:11   X_Meter_1_M_AC_VA_C 1067
     2020-10-24 13:36:11   X_Meter_1_M_AC_VA_SF 0
     2020-10-24 13:36:11   X_Meter_1_M_AC_Voltage_AB 0
     2020-10-24 13:36:11   X_Meter_1_M_AC_Voltage_AN 236.85
     2020-10-24 13:36:11   X_Meter_1_M_AC_Voltage_BC 0
     2020-10-24 13:36:11   X_Meter_1_M_AC_Voltage_BN 238.74
     2020-10-24 13:36:11   X_Meter_1_M_AC_Voltage_CA 0
     2020-10-24 13:36:11   X_Meter_1_M_AC_Voltage_CN 237.75
     2020-10-24 13:36:11   X_Meter_1_M_AC_Voltage_LL 0
     2020-10-24 13:36:11   X_Meter_1_M_AC_Voltage_LN 236.85
     2020-10-24 13:36:11   X_Meter_1_M_AC_Voltage_SF -2
     2020-10-24 13:36:12   X_Meter_1_M_Energy_VA_SF -32768
     2020-10-24 13:36:12   X_Meter_1_M_Energy_W_SF 0
     2020-10-24 13:36:12   X_Meter_1_M_Exported 184226
     2020-10-24 13:36:12   X_Meter_1_M_Exported_A 89009
     2020-10-24 13:36:12   X_Meter_1_M_Exported_B 58741
     2020-10-24 13:36:12   X_Meter_1_M_Exported_C 127483
     2020-10-24 13:36:12   X_Meter_1_M_Exported_VA 0
     2020-10-24 13:36:12   X_Meter_1_M_Exported_VA_A 0
     2020-10-24 13:36:12   X_Meter_1_M_Exported_VA_B 0
     2020-10-24 13:36:12   X_Meter_1_M_Exported_VA_C 0
     2020-10-24 13:36:12   X_Meter_1_M_Imported 256294
     2020-10-24 13:36:12   X_Meter_1_M_Imported_A 73667
     2020-10-24 13:36:12   X_Meter_1_M_Imported_B 215452
     2020-10-24 13:36:12   X_Meter_1_M_Imported_C 58181
     2020-10-24 13:36:12   X_Meter_1_M_Imported_VA 0
     2020-10-24 13:36:12   X_Meter_1_M_Imported_VA_A 0
     2020-10-24 13:36:12   X_Meter_1_M_Imported_VA_B 0
     2020-10-24 13:36:12   X_Meter_1_M_Imported_VA_C 0
     2020-10-24 13:36:12   X_PV_Energy     794798
     2020-10-24 13:36:12   X_PV_EnergyToday 10091
     2020-10-24 13:36:12   state           <table border=0 bordercolor='green' cellspacing=0 align='center'><tr><th><h1>Gesamtenergie 794.8 kWh </h1> </td></tr></table><table border=4 bordercolor='green' cellspacing=5 align='center'><tr><th>Status</th><th>Temperatur</th><tr><td>Inverter is ON and producing power</td><td>51 °C</td></tr><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>4634 W</td><td>4565 W</td><td>817.8 V-</td><td>19.85 A~</td></tr></table>
   REMEMBER:
     lid        1
     lname      SolarEdgeWR
     lrecv      1603542972.38623
     lsend      1603542972.28792
   defptr:
     SolarEdgeWR 1
   gotReadings:
     X_Meter_1_Block_Energy_VA 9 0 0 0 0 0 0 0 0 -32768
     X_Meter_1_Block_Energy_W 9 184226 89009 58741 127483 256294 73667 215452 58181 0
   lastRead:
     h40000     1603542913.21705
     h40004     1603542913.21965
     h40020     1603542913.22327
     h40044     1603542912.97868
     h40052     1603542912.98102
     h40068     1603542912.9831
     h40069     1603542912.98479
     h40071     1603542972.04786
     h40076     1603542972.04864
     h40077     1603542972.04936
     h40078     1603542972.05009
     h40079     1603542972.05081
     h40080     1603542972.05161
     h40081     1603542972.05233
     h40082     1603542972.05305
     h40083     1603542972.05438
     h40085     1603542972.0558
     h40087     1603542972.05706
     h40089     1603542972.0583
     h40091     1603542972.05954
     h40093     1603542972.06109
     h40096     1603542972.06244
     h40098     1603542972.06376
     h40100     1603542972.06501
     h40103     1603542972.06594
     h40107     1603542972.06714
     h40121     1603542913.33942
     h40122     1603542971.66597
     h40139     1603542913.34319
     h40155     1603542913.46479
     h40163     1603542913.46703
     h40171     1603542913.46918
     h40187     1603542913.47134
     h40188     1603542913.47311
     h40190     1603542971.92744
     h40195     1603542971.92905
     h40204     1603542971.93021
     h40206     1603542971.93159
     h40211     1603542971.93288
     h40216     1603542971.93414
     h40221     1603542971.93552
     h40226     1603542972.39101
     h40243     1603542972.39412
     h57600     1603542912.49618
     h57616     1603542912.49921
     h57632     1603542912.50208
     h57648     1603542913.61014
     h57664     1603542913.61319
     h57666     1603542971.79497
     h57668     1603542971.79566
     h57670     1603542971.79634
     h57672     1603542971.79701
     h57674     1603542971.79768
     h57712     1603542972.18606
     h57714     1603542972.18675
     h57716     1603542972.18742
     h57734     1603542972.18911

Hinweis der bei der Skalierung helfen kann:
Battery_1_Max_Discharge_Continues_Power_W sollte laut Datenblatt 5kW sein.

Log ist fehlerfrei:

2020.10.24 13:35:11 3: SolarEdgeWR device opened
2020.10.24 13:39:12 3: SolarEdgeWR: _UnDef is closing SolarEdgeWR
2020.10.24 13:39:26 3: SolarEdgeWR: defined with id 1, interval 60, protocol TCP, mode master, connection to 192.168.40.1:1502
2020.10.24 13:39:26 3: Opening SolarEdgeWR device 192.168.40.1:1502
2020.10.24 13:39:26 3: SolarEdgeWR device opened
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 24 Oktober 2020, 15:38:44
@beejayf

leider stimmt das jetzt hier nicht

2020-10-24 13:35:13   Battery_1_DeviceID p F@E£@E£
schau ich mal.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 24 Oktober 2020, 23:32:09
Hallo Jörg,

bei mir lädt leider immer noch nicht das Modul, auch nach den letzten Updates:
2020.10.24 23:14:32 0: Undefined subroutine &FHEM::SolarEdge::ModbusLD_Initialize called at ./FHEM/98_SolarEdge.pm line 630.

2020.10.24 23:14:34 1: Messages collected while initializing FHEM:configDB: Cannot load module SolarEdge

Hier sind die Versionen der betroffenen Module:
98_Modbus.pm               14234 2017-05-09 19:11:34Z StefanStrobel
98_ModbusAttr.pm           13878 2017-04-02 09:12:12Z StefanStrobel
98_SolarEdge.pm               37 2020-24-10 17:54:00Z pejonp

Ich habe dann auch noch ein Update von FHEM durchgeführt. Dabei wurde
lib/FHEM/HTTPMOD/Utils.pm
updated, aber keines der Modbus-Module.

Ich vermute mal, ich habe die falschen Modbus-Module. Vor der ganzen Update-Aktion hatte ich Modbus-Module von 2019. Aber ich weiß nicht, woher die kommen oder wie ich die richtigen Versionen bekommen kann. Hast Du einen Rat für mich, wie ich das Problem lösen kann?

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 Oktober 2020, 00:12:24
Hi Matthias versuche mal bitte nocheinmal ein update.
Und starte auch fhem neu. Eigentlich sollte es gehen wenn nicht hänge mal einen log mit verbose=4 an
Danke
Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 25 Oktober 2020, 00:27:56
@matkoh

Wenn du die Möglichkeit hast FHEM irgendwo frisch zu installieren, könntest du (wenn die neue Installation funktioniert) einzelne Module deiner Original-Installation ersetzen (nach einem vollen Backup)
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: matkoh am 25 Oktober 2020, 10:52:18
Hallo Jörg, hallo beejayf,

alle Updates helfen nicht, es bleibt bei dem Fehler, dass das Modul nicht geladen werden kann.

Ich mache allerdings täglich ein Backup von FHEM und ich habe nun aus dem Backup vom 22.10. die Module
98_Modbus.pm
98_ModbusAttr.pm
in die produktive FHEM-Installation kopiert und FHEM neu gestartet. Das hat geholfen, nun wird das SolarEdge-Modul wieder geladen und mein Device ist normal vorhanden und sogar in der letzten Version. Derzeit also alles wieder gut.

Danke für Eure Hilfe

Matthias
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 Oktober 2020, 11:44:09
Hallo Björn,

ich habe diese hier. Ich hänge sie mal an.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 25 Oktober 2020, 14:41:45
Bin die absolute Perl Null also wenn ich falsch liege nicht böse sein

Das Register ist ja dezimal angegeben. Steht das 'h' davor nicht für Hex?
In der Doku steht dass ein float abgelegt wird. Dein Unpack steht doch für long integer

Ich probier mal durch, ob es daran liegt

Grüße,

Björn
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 Oktober 2020, 14:57:42
Hi Björn,

ich habe ja schon verschieden Sachen probiert. Du kannst es gerne versuchen. Da du ja eine Batterie hast bekomst du auch gleich eine Rückmeldung.

Zitat
Das Register ist ja dezimal angegeben. Steht das 'h' davor nicht für Hex?
Stimmt wo du es schreibst, sehe ich es auch.

Ich bau mal die richtigen Register ein und hänge das dann hier an. Wird aber bischen dauern.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 25 Oktober 2020, 17:29:56
Wobei - die ganzen Strings wie z.B. Battery_1_Firmware werden bei mir richtig ausgelesen.

Es muss also im unpack liegen

Ich schaue mir dabei gerade den Wert Battery 1 Max Discharge Continues Power an - in der Doku steht:

E146 (F546) 2 R Battery 1 Max Discharge Continues Power Float32 W

Meine Batterie sollte 5000W (ggf. auch 7000W) dort eingetragen haben. Warum so ein Wert als Float32 gespeichert sein soll weiß ich nicht - aber sei's drum.

Habe diverse Kombinationen durchprobiert - aber leider ohne Erfolg.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 27 Oktober 2020, 14:02:22
Hallo @pejonp,

Hab ein wenig im Netz herumgesucht / gefragt und eine Antwort bekommen, dass der Wert für z.B. Battery_1_Max_Discharge_Peak_Power_W, der laut meiner Doku 5000 sein sollte aus den abgelegten Daten nicht mit einem einzigen unpack herausgelesen werden kann, da die Daten offenbar byteweise verdreht abgelegt sind. Folgende Operation soll wohl zum Ziel führen, und wann es stimmt, dann sollte das für alle FLOAT32 Werte funktionieren

unpack "f<", pack "vv", unpack "nn", $s
Wobei ich glaube, dass $s ledliglich die Zielvariable ist - aber ich habe keine Ahnung, wie man das in Dein Modul packen muss.

Grüße,

BJ
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: cocojambo am 05 November 2020, 17:45:11
@pejonp

ich möchte mich auch mal hier melden. Ich habe eine 10kw Sunpower Solaranlage, zwei Sunpower/Fronius Wechselrichter, einen SE5000 Inverter, eine Store Edge Schnittstelle, eine 10kw LG Batterie und ein Solarlog 1000 im Einsatz.
Bei mir werden jedoch durch Stromsensoren die Leitungsströme gemessen und im Se5000 mir Store Edge Schnittstelle ausgewertet und damit die Lade- Eigenverbrauch-, Einspeise- und Entladeströme gesteuert.
Ich habe mich seit längeren schon mit dem ModbusAttr Modul beschäftigt und auch alle Werte die mich interessieren aus der Batterie ausgelesen und tabellarisch und grafisch dargestellt.
Jetzt habe ich mit den Inverter Werten angefangen und gibt es einige Werte die ich nicht auslesen kann, deuten bzw. verstehen kann, da der SE5000 ja nur einphasig betrieben, als wechselseitiger AC/DC Wandler mit einer SESTI StorEdge Schnittstelle betrieben wird und an den beiden Modbus Zählern hängt.
Jetzt wollte ich gerne die neuste Version deines 98_SolarEdge Moduls mal zum Vergleich betreiben um die Daten mal zu vergleichen. Dazu habe ich das Modbus Attr Modul auf disable=1 gesetzt um dein SolarEdge Modul zu laden.
Leider bekomme ich immer die Meldung "cannot load SolarEdge......" obwohl ich "define SE SolarEdge 1 60 192.168.115.3:502 TCP" richtig definiert habe und das Modbus Attr Modul ja auch mit dieser Definition läuft.

Ist da sonst noch was zu beachten?

Gruß aus Köln
Norbert
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 05 November 2020, 18:28:04
@cocojambo

was steht den im log ? Hast du alle notwendigen perl Module geladen ??
So ohne irgend welche Daten kann ich da wenig machen ?

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: cocojambo am 06 November 2020, 16:06:14
Du hattest recht es fehlte ein notwendiges Perl Modul. Nachdem ich es geladen hatte wurden auch alle Readings angezeigt.
Was mich nur wundert, die Batterie Werte entsprechen nicht den tatsächlichen, es sei denn sie müßen noch umgerechnet werden. Die statischen Werte (Typ,Nr,Software,usw) stimmen, aber fast alles andere liegt mit den angezeigten Werte weit daneben. z.b.Batt-Spannung=Battery_1_Instantaneous_Voltage_V=1932739533, Batt-Leistung=Battery_1_Instantaneous_Power_W=2147533740 oder Batt-Strom=Battery_1_Instantaneous_Current_A=4049387350.
Die Batt-Spannung liegt normalerweise zwischen 400-430 Volt, aber da habe ich auch kein Bezug zu den tatsächlichen Werten gefunden. Wie sollen diese umgerechnet werden?

Mit den Inverterwerten habe ich mich noch nicht beschäftigt.

Gruß aus Köln
Norbert
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 09 November 2020, 14:39:04
Hallo @cocojambo, hallo @pejonp,

bei mir das Gleiche. Die Werte sind auch nicht linear abhängig vom zu erwartenden Wert - offenbar sind die Werte in einer eher unüblichen Form im Register gespeichert.

Geholfen hat mir der Wert "Battery 1 Max Discharge Continues Power", der bei meiner Batterie 5000 W sein muss - daraus ergibt sich foldendes:

abgelegt ist 40.00.45.9C
5000 als BE float ist 45.9C.40.00
5000 als LE float ist 00.40.9C.45

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 19 November 2020, 16:54:48
@pejonp - ich hab's! Alle Batterie-Werte passen! Wie bekommen wir das in Dein Modul?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 19 November 2020, 23:54:58
@beejayf

häng doch mal bitte deinen Programmcode an. Ich schaumal wie wir es einbinden könnten.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 20 November 2020, 18:22:33
Hallo Jörg @pejonp,

ich habe die unpacks der Float32 für die Batterie angepasst und die HTML Tabelle umgemodelt, da sie z.B. auf dem Telefon u.U. nur zur Hälfte angezeigt wurde. Den Rest habe ich vollkommen in Frieden gelassen. Den Register-Output am Ende (details) hattest Du vielleicht nur zum Debuggen reingenommen - hab ihn aber trotzdem drin gelassen. Wenn Du den löschen möchtest, wäre das cool.

Sonst kannst Du den Code hier aus meiner SIcht 1:1 übernehmen. Gruß und Danke!!

Code ist zu lang für einen Post -

Teil 1v2

##############################################
# $Id: 98_SolarEdge.pm 0037 2020-24-10 17:54:00Z pejonp $
#
# fhem Modul für Wechselrichter SolarEdge SE5K
# verwendet Modbus.pm als Basismodul für die eigentliche Implementation des Protokolls.
#
# This file is part of fhem.
#
# Fhem is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 2 of the License, or
# (at your option) any later version.
#
# Fhem is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with fhem.  If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# Changelog:
# 2015-04-16 Vorlage 98_ModbusSDM220M.pm / 98_Pluggit.pm
# 2018-10-15  weiter ... pejonp
# 2018-10-29  X_PV_Energy X_PV_EnergyToday X_PV_EnergyCurrentWeek pv_energytomont ...
# 2020-03-08  Anpassungen von CaptainRoot (https://github.com/CaptainRoot/FHEM---SolarEdge) FHEM-Forum (https://forum.fhem.de/index.php/topic,80767.msg947778.html#msg947778) übernommen
# 2020-04-20  PBP  :pejonp
# 2020-05-03  Undefined subroutine &SolarEdge::ExprMppt (PBP) :pejonp
# 2020-11-10  Anpassung X-Meter
# 2020-13-10  Auslesen X_Meter_C_Model usw.  Fehlerbehebung
# 2020-15-10  kleine Anpassungen
# 2020-21-10  ModBus-Register für Batterie eingetragen
# 2020-22-10  Bat Register hinzugefügt
# 2020-22-10  Apparent Power, Reactive Power, Power Factor, Reg Apparent Energy wieder mit aufgenommen
# 2020-24-10  unpack angepasst
# 2020-20-11  unpack Batterie repariert, Tabelle angepasst (mobile Ansicht verbessert) - beejayf


use strict;
use warnings;

sub ExprMppt {
    my ( $hash, $DevName, $ReadingName, $vval_0 , $vval_1 , $vval_2 , $vval_3 , $vval_4 ) = @_;
    return SolarEdge_ExprMppt( $hash, $DevName, $ReadingName, $vval_0 , $vval_1 , $vval_2 , $vval_3 , $vval_4 );
}

sub ExprMeter {
    my ( $hash, $DevName, $ReadingName, $vval_0 , $vval_1 , $vval_2 , $vval_3 , $vval_4 , $vval_5 , $vval_6 , $vval_7 , $vval_8 ) = @_;
    return SolarEdge_ExprMeter( $hash, $DevName, $ReadingName, $vval_0 , $vval_1 , $vval_2 , $vval_3 , $vval_4, $vval_5 , $vval_6 , $vval_7 , $vval_8 );
}

package FHEM::SolarEdge;


no if $] >= 5.017011, warnings => 'experimental::smartmatch';
#no warnings 'portable';    # Support for 64-bit ints required
use Time::Local;
use Time::HiRes qw(gettimeofday usleep);
use Device::SerialPort;
use GPUtils qw(GP_Import GP_Export);
use Scalar::Util qw(looks_like_number);
use feature qw/say switch/;
use SetExtensions;
use Math::Round qw/nearest/;

use FHEM::Meta;
main::LoadModule( 'Modbus');
main::LoadModule( 'ModbusAttr');



## Import der FHEM Funktionen
#-- Run before package compilation
BEGIN {

    # Import from main context
    GP_Import(
        qw(
          readingsBulkUpdate
          readingsBeginUpdate
          readingsEndUpdate
          defs
          modules
          Log3
          attr
          readingFnAttributes
          AttrVal
          ReadingsVal
          Value
          FmtDateTime
          strftime
          GetTimeSpec
          InternalTimer
          AssignIoPort
          DevIo_CloseDev
          DevIo_OpenDev
          DevIo_SimpleWrite
          DevIo_SimpleRead
          RemoveInternalTimer
          getUniqueId
          getKeyValue
          TimeNow
          Dispatch
          Initialize
          ModbusLD_Initialize
          InitializeLD
          ReadingsTimestamp
           )
    );
}

#-- Export to main context with different name
GP_Export(
    qw(
      Initialize
      ExprMppt
      ExprMeter
      )
);


my $SolarEdge_Version = '0023 - 08.03.2020';

my %SolarEdgedeviceInfo = (
    "h" => {
        'combine' => '40',
        'defPoll' => '1',
    },
    "type-VT_String" => {
        'decode'  => 'cp850',
        'encode'  => 'utf8',
        'expr'    => '$val =~ s/[\00]+//gr',
        'len'     => '8',
        'revRegs' => '0',
        'unpack'  => 'a16',
        'poll'    => 'once',                   # only poll once after define (or after a set)
    },
    "type-VT_String4" => {
        'decode'  => 'cp850',
        'encode'  => 'utf8',
        'expr'    => '$val =~ s/[\00]+//gr',
        'len'     => '5',
        'revRegs' => '0',
        'unpack'  => 'a8',
    },
   
);

my %SolarEdgeparseInfo = (
###############################################################################################################
    # Holding Register
###############################################################################################################
    "h40000" => {    # 40001 2 C_SunSpec_ID uint32 Wert = "SunS" (0x53756e53). Identifiziert dies eindeutig als eine SunSpec Modbus-Karte
        'len'     => '2',
        'reading' => 'C_SunSpec_ID',
        'revRegs' => '0',
        'unpack'  => 'a4',
        'poll'    => 'once',
    },
    "h40004" => {    # 40005 16 C_Hersteller String(32) Bei SunSpec eingetragener Wert = " SolarEdge "
        'reading' => 'C_Manufacturer',
        'type'    => 'VT_String',
    },
    "h40020" => {
        'reading' => 'Block_C_Model',
        'type'    => 'VT_String',
        'expr'    => 'ExprMppt($hash,$name,"C_Model",$val[0],0,0,0,0)',     # Model wird gesetzt
    },
    "h40044" => {
        'reading' => 'C_Version',
        'type'    => 'VT_String',
    },
    "h40052" => {
        'reading' => 'C_SerialNumber',
        'type'    => 'VT_String',
    },
    "h40068" => {                                                          # MODBUS Unit ID
        'reading' => 'C_DeviceAddress',
        'defPoll' => '0',
        'poll'    => 'once',
    },
    "h40069" => {    # 40070 1 C_SunSpec_DID uint16 101 = Einphasig 102 = Spaltphase1 103 = Dreiphasig
        'reading' => 'C_SunSpec_DID',                                        # name of the reading for this value
        'len'     => '1',
        'map'     => '101:single phase, 102:split phase, 103:three phase',
        'poll'    => 'once',
    },

    #  "h40071" => { # 40072 1 I_AC_Strom uint16 Ampere AC-Gesamtstromwert
    # 'reading' => 'I_AC_Current', # name of the reading for this value
    #         'format' => '%.2f A',
    #        },
    #  "h40072" => { # 40073 1 I_AC_StromA uint16 Ampere AC-Phase A (L1) Stromwert
    # 'reading' => 'I_AC_CurrentL1', # name of the reading for this value
    #        'format' => '%.2f A',
    #        },
    #  "h40073" => { # 40074 1 I_AC_StromB uint16 Ampere AC-Phase B (L2) Stromwert
    # 'reading' => 'I_AC_CurrentL2', # name of the reading for this value
    #        'format' => '%.2f A',
    #        },
    #  "h40074" => { # 40075 1 I_AC_StromC uint16 Ampere AC-Phase C (L3) Stromwert
    # 'reading' => 'I_AC_CurrentL3', # name of the reading for this value
    #        'format' => '%.2f A',
    #        },
    #  "h40075" => { # 40076 1 I_AC_Strom_SF uint16 AC-Strom Skalierungsfaktor
    # 'reading' => 'I_AC_Current_SF', # name of the reading for this value
    #        },

    "h40071" => {    # 40072 (Len 5) 40072 to 40076
        'len'     => '5',                  #I_AC_Current, I_AC_CurrentA, I_AC_CurrentB, I_AC_CurrentC, I_AC_Current_SF
        'reading' => 'Block_AC_Current',
        'unpack'  => 'nnnns>',
        'expr' => 'ExprMppt($hash,$name,"I_AC_Current",$val[0],$val[1],$val[2],$val[3],$val[4])',    # conversion of raw value to visible value
    },
    "h40076" => {                                                                                    #AC Voltage Phase AB value
        'reading' => 'I_AC_VoltageAB',
    },
    "h40077" => {                                                                                    #AC Voltage Phase BC value
        'reading' => 'I_AC_VoltageBC',
    },
    "h40078" => {                                                                                    #AC Voltage Phase CA value
        'reading' => 'I_AC_VoltageCA',
    },
    "h40079" => {                                                                                    #AC Voltage Phase AN value
        'reading' => 'I_AC_VoltageAN',
    },
    "h40080" => {                                                                                    #AC Voltage Phase BN value
        'reading' => 'I_AC_VoltageBN',
    },
    "h40081" => {                                                                                    #AC Voltage Phase CN value
        'reading' => 'I_AC_VoltageCN',
    },
    "h40082" => {                                                                                    #
        'reading' => 'I_AC_Voltage_SF',
       # 'unpack'  => 's>',
    },

    #  "h40083" => { # 40084 1 I_AC_Leistung int16 Watt AC-Leistungswert
    # 'reading' => 'I_AC_Power',
    #        },
    #  "h40084" => { #
    # 'reading' => 'I_AC_Power_SF',
    #       },

    "h40083" => {    # 40084 (Len 2) 40084 to 40085 AC Power
        'len'     => '2',                                                           #  I_AC_Power, I_AC_Power_SF
        'reading' => 'Block_AC_Power',
        'unpack'  => 'ns>',
        'expr'    => 'ExprMppt($hash,$name,"I_AC_Power",$val[0],$val[1],0,0,0)',    # conversion of raw value to visible value
    },

    #    "h40085" => { # 40086 1 I_AC_Frequenz uint16 Hertz Frequenzwert
    # 'reading' => 'I_AC_Frequency',
    #          'format' => '%.f Hz', # format string for sprintf
    # 'expr' => '$val/100',
    #          'setexpr' => '$val',
    # },
    #     "h40086" => { # 40086 1 I_AC_Frequency_SF uint16 Frequenz Skalierungsfaktor
    # 'reading' => 'I_AC_Frequency_SF',
    # },

    "h40085" => {    # 40086 (Len 2) 40086 to 40087 AC Frequency
        'len'     => '2',                                                               # I_AC_Frequency, I_AC_Frequency_SF
        'reading' => 'Block_AC_Frequency',
        'unpack'  => 'ns>',
        'expr'    => 'ExprMppt($hash,$name,"I_AC_Frequency",$val[0],$val[1],0,0,0)',    # conversion of raw value to visible value
    },

    #     "h40087" => { #
    # 'reading' => 'I_AC_VA',
    # },
    #    "h40088" => { #
    # 'reading' => 'I_AC_VA_SF',
    # },

    "h40087" => {    # 40088 (Len 2) 40088 to 40089 Apparent Power (Scheinleistung)
        'len'     => '2',                                                        # I_AC_VA,  I_AC_VA_SF
        'reading' => 'Block_AC_VA',
        'unpack'  => 'ns>',
        'expr'    => 'ExprMppt($hash,$name,"I_AC_VA",$val[0],$val[1],0,0,0)',    # conversion of raw value to visible value
    },

    #     "h40089" => { #
    # 'reading' => 'I_AC_VAR',
    # },
    #     "h40090" => { #
    # 'reading' => 'I_AC_VAR_SF',
    # },

    "h40089" => {    # 40090 (Len 2) 40090 to 40091 Reactive Power (Blindleistung)
        'len'     => '2',                                                         # I_AC_VAR, I_AC_VAR_SF
        'reading' => 'Block_AC_VAR',
        'unpack'  => 'ns>',
        'expr'    => 'ExprMppt($hash,$name,"I_AC_VAR",$val[0],$val[1],0,0,0)',    # conversion of raw value to visible value
    },

    #     "h40091" => { #
    # 'reading' => 'I_AC_PF',
    # },
    #    "h40092" => { #
    # 'reading' => 'I_AC_PF_SF',
    # },

    "h40091" => {    # 40090 (Len 2) 40090 to 40091 Power Factor (Leistungsfaktor)
        'len'     => '2',                                                        #I_AC_PF, I_AC_PF_SF
        'reading' => 'Block_AC_PF',
        'unpack'  => 'ns>',
        'expr'    => 'ExprMppt($hash,$name,"I_AC_PF",$val[0],$val[1],0,0,0)',    # conversion of raw value to visible value
    },

    #    "h40093" =>  {
    #               'expr' => '$val / 1000',
    #             'format' => '%.2f kWh',
    #                'len' => '2',
    #            'reading' => 'I_AC_Energie_WH_kWh',
    #             'unpack' => 'l>',
    #                },
    #    "h40095" => { #
    # 'reading' => 'I_AC_Energy_WH_SF',
    # },

    "h40093" => {    # 40094 (Len 3) 40094 to 40096 AC Lifetime Energy production
        'len'     => '3',                                                               #I_AC_Energy_WH (2), I_AC_Energy_WH_SF
        'reading' => 'Block_AC_Energy_WH',
        'unpack'  => 'l>s>',
        'expr'    => 'ExprMppt($hash,$name,"I_AC_Energy_WH",$val[0],$val[1],0,0,0)',    # conversion of raw value to visible value
    },

    #     "h40096" => { #
    # 'reading' => 'I_DC_Current',
    #          'format' => '%.2f A',
    # },
    #     "h40097" => { #
    # 'reading' => 'I_DC_Current_SF',
    # },

    "h40096" => {    # 40097 (Len 2) 40097 to 40098 DC Current
        'len'     => '2',                                                             # I_DC_Current, I_DC_Current_SF
        'reading' => 'Block_DC_Current',
        'unpack'  => 'ns>',
        'expr'    => 'ExprMppt($hash,$name,"I_DC_Current",$val[0],$val[1],0,0,0)',    # conversion of raw value to visible value
    },

    #     "h40098" => { #
    # 'reading' => 'I_DC_Voltage',
    #          'format' => '%.2f V',
    # },
    #     "h40099" => { #
    # 'reading' => 'I_DC_Voltage_SF',
    # },

    "h40098" => {    # 40099(Len 2) 40099 to 40100 DC Voltage
        'len'     => '2',                                                             # I_DC_Voltage, I_DC_Voltage_SF
        'reading' => 'Block_DC_Voltage',
        'unpack'  => 'ns>',
        'expr'    => 'ExprMppt($hash,$name,"I_DC_Voltage",$val[0],$val[1],0,0,0)',    # conversion of raw value to visible value
    },

    #     "h100" => { #
    # 'reading' => 'I_DC_Power',
    #          'format' => '%.2f W',
    # },
    #     "h40101" => { #
    # 'reading' => 'I_DC_Power_SF',
    # },

    "h40100" => {    # 400101(Len 2) 400101 to 40102 DC Power
        'len'     => '2',                                                           # I_DC_Power, I_DC_Power_SF
        'reading' => 'Block_DC_Power',
        'unpack'  => 'ns>',
        'expr'    => 'ExprMppt($hash,$name,"I_DC_Power",$val[0],$val[1],0,0,0)',    # conversion of raw value to visible value
    },
    "h40103" => {                                                                   # 40104 1 I_Temp_Sink int16 Grad Celsius Kühlkörpertemperatur
        'reading' => 'I_Temp_HeatSink',                                             # name of the reading for this value
        'format'  => '%.f °C',                                                     # format string for sprintf
        'expr'    => '$val/100',
        'setexpr' => '$val',
    },
    "h40107" => {                                                                   # 40108 1 I_Status uint16 Betriebszustand
        'reading' => 'I_Status',                                                    # name of the reading for this value
        'expr'    => '$val',
        'map' =>
'1:Off, 2:Sleeping Night mode, 3:Grid Monitoring, 4:Inverter is ON and producing power, 5:Production(curtailed), 6:Shutting down, 7:Fault, 8:Maintenance',
        'setexpr' => '$val',
    },

    # Ende parseInfo
);

my %SolarEdgeMeter1parseInfo = (
###############################################################################################################
    # Holding Register
###############################################################################################################
    #C_SunSpec_ID ignored
    "h40121" => {    # 40121 Value = 0x0001. Uniquely identifies this as a SunSpec Common Model Block
        'reading' => 'X_Meter_1_C_SunSpec_DID_0',
        'type'    => 'VT_String',
    },
    "h40122" => {    # 40122 65 = Length of block in 16-bit registers
        'reading' => 'X_Meter_1_C_SunSpec_Length',
        'type'    => 'VT_String',
    },
    "h40123" => {    # 40123 16 C_Manufacturer String(32) Meter manufacturer
        'reading' => 'X_Meter_1_C_Manufacturer',
        'type'    => 'VT_String',
    },
    "h40139" => {    # 40139 16 C_Model String(32) Meter model
        'reading' => 'X_Meter_1_Block_C_Model',
        'type'    => 'VT_String',
        'expr'    => 'ExprMeter($hash,$name,"X_Meter_1_C_Model",$val[0],0,0,0,0,0,0,0,0)',    # conversion of raw value to visible value
    },
    "h40155" => {    # 40155 16 C_Option String(16) Meter Option  Export + Import, Production, consumption,
        'reading' => 'X_Meter_1_C_Option',
        'type'    => 'VT_String',
    },
    "h40163" => {    # 40163 16 C_Version String(16) Meter version
        'reading' => 'X_Meter_1_C_Version',
        'type'    => 'VT_String',
    },
    "h40171" => {    # 40171 16 C_Version String(16) Meter SN
        'reading' => 'X_Meter_1_C_SerialNumber',
        'type'    => 'VT_String',
    },
    "h40187" => {    # 40187 16 C_Version String(16) Inverter Modbus ID ?
        'reading' => 'X_Meter_1_C_DeviceAddress',
        'defPoll' => '0',
        'poll'    => 'once',
    },
    "h40188" => {    # 40188 1 C_SunSpec_DID uint16 SunSpecMODBUS
                     # Map:
                     #  Single Phase (AN or AB) Meter (201)
                     #  Split Single Phase (ABN) Meter (202)
                     #  Wye-Connect Three Phase (ABCN) Meter (203)
                     #  Delta-Connect Three Phase (ABC) Meter(204)
        'reading' => 'X_Meter_1_C_SunSpec_DID',    # name of the reading for this value
        'len'     => '1',
        'map'  => '201:single phase, 202:split single phase, 203:wye-connect three phase, 204:delta-connect three phase meter',
        'poll' => 'once',
    },
    "h40190" => {                                  # 40190 (Len 5) 40190 to 40194
        'len'     => '5',                            #M_AC_Current, M_AC_Current_A(L1), M_AC_Current_B(L2), M_AC_Current_C(L3), M_AC_Current_SF
        'reading' => 'X_Meter_1_Block_AC_Current',
        'unpack'  => 'nnnns>', # 's>s>s>s>n!', # 's>s>s>s>s>'
        'expr' => 'ExprMeter($hash,$name,"X_Meter_1_M_AC_Current",$val[0],$val[1],$val[2],$val[3],$val[4],0,0,0,0)'
        ,                                            # conversion of raw value to visible value
    },
   
     "h40195" => {    #  #Line to Neutral AC Voltage (average of activephases) 40195 to 40203
        'len' => '9',    #M_AC_Voltage_LN, M_AC_Voltage_AN, M_AC_Voltage_BN, M_AC_Voltage_CN, M_AC_Voltage_LL, M_AC_Voltage_AB, M_AC_Voltage_BC, M_AC_Voltage_CA, M_AC_Voltage_SF 
        'reading' => 'X_Meter_1_Block_AC_Voltage',
        'unpack'  => 'nnnnnnnns>', # 'NNNNNNNNs>',
        'expr'    => 'ExprMeter($hash,$name,"X_Meter_1_M_AC_Voltage",$val[0],$val[1],$val[2],$val[3],$val[4],$val[5],$val[6],$val[7],$val[8])'
        ,                 # conversion of raw value to visible value
    },
   
    #"h40195" => {                                    #Line to Neutral AC Voltage (average of activephases)
    #    'reading' => 'X_Meter_1_M_AC_Voltage_LN',
    #    'expr'    => '$val/100',
    #    'setexpr' => '$val',
    #},
    #"h40196" => {                                    #Phase A to Neutral AC Voltage
    #    'reading' => 'X_Meter_1_M_AC_Voltage_AN',
    #    'expr'    => '$val/100',
    #    'setexpr' => '$val',
    #},
    #"h40197" => {                                    #Phase B to Neutral AC Voltage
    #    'reading' => 'X_Meter_1_M_AC_Voltage_BN',
    #    'expr'    => '$val/100',
    #    'setexpr' => '$val',
    #},
    #"h40198" => {                                    #Phase C to Neutral AC Voltage
    #    'reading' => 'X_Meter_1_M_AC_Voltage_CN',
    #    'expr'    => '$val/100',
    #    'setexpr' => '$val',
    #},
    #"h40199" => {                                    # 40199 (Len 5) 40199 to 40202
    #    'len'     => '5',                               #M_AC_Voltage_LL, M_AC_Voltage_AB, M_AC_Voltage_BC, M_AC_Voltage_CA, M_AC_Voltage_SF,
    #    'reading' => 'X_Meter_1_Block_AC_Voltage_LL',
    #    'unpack'  => 'nnnns>',
    #    'expr' => 'ExprMeter($hash,$name,"X_Meter_1_M_AC_Voltage",$val[0],$val[1],$val[2],$val[3],$val[4],0,0,0,0)'
    #    ,                                               # conversion of raw value to visible value
    #},
   
    "h40204" => {                                       # 40086 (Len 2) 40086 to 40087 AC Frequency
        'len'     => '2',                                                                                  # M_AC_Freq, M_AC_Freq_SF
        'reading' => 'X_Meter_1_Block_AC_Frequency',
        'unpack'  => 'ns>',
        'expr'    => 'ExprMeter($hash,$name,"X_Meter_1_M_AC_Frequency",$val[0],$val[1],0,0,0,0,0,0,0)',    # conversion of raw value to visible value
    },

    "h40206" => {                                                                                          #Real Power 40206 (Len 5) 40206 to 40210
        'len'     => '5',                          #M_AC_Power, M_AC_Power_A, M_AC_Power_B, M_AC_Power_C, M_AC_Power_SF,
        'reading' => 'X_Meter_1_Block_AC_Power',
        'unpack'  => 's>s>s>s>n!', # 'nnnns>', #'s>s>s>s>n!',  # 's>s>s>s>s>'
        'expr' =>
          'ExprMeter($hash,$name,"X_Meter_1_M_AC_Power",$val[0],$val[1],$val[2],$val[3],$val[4],0,0,0,0)',  # conversion of raw value to visible value
    },

    "h40211" => {    #Apparent Power 40211 (Len 5) 40211 to 40215
        'len'     => '5',                       #M_AC_VA, M_AC_VA_A, M_AC_VA_B, M_AC_VA_C, M_AC_VA_SF,
        'reading' => 'X_Meter_1_Block_AC_VA',
        'unpack'  => 's>s>s>s>n!',
        'expr' =>
          'ExprMeter($hash,$name,"X_Meter_1_M_AC_VA",$val[0],$val[1],$val[2],$val[3],$val[4],0,0,0,0)',    # conversion of raw value to visible value
    },
    "h40216" => {    #Reactive Power 40216 (Len 5) 40215 to 40220
        'len'     => '5',                        #M_AC_VAR, M_AC_VAR_A, M_AC_VAR_B, M_AC_VAR_C, M_AC_VAR_SF,
        'reading' => 'X_Meter_1_Block_AC_VAR',
        'unpack'  => 's>s>s>s>n!',
        'expr' =>
          'ExprMeter($hash,$name,"X_Meter_1_M_AC_VAR",$val[0],$val[1],$val[2],$val[3],$val[4],0,0,0,0)',    # conversion of raw value to visible value
    },
    "h40221" => {    # Power Factor h40221 (Len 5)   40221 to 40225
        'len'     => '5',                       #M_AC_PF, M_AC_PF_A, M_AC_PF_B, M_AC_PF_C, M_AC_PF_SF,
        'reading' => 'X_Meter_1_Block_AC_PF',
        'unpack'  =>  's>s>s>s>n!',
        'expr' =>
          'ExprMeter($hash,$name,"X_Meter_1_M_AC_PF",$val[0],$val[1],$val[2],$val[3],$val[4],0,0,0,0)',    # conversion of raw value to visible value
    },

    "h40226" => {    #Accumulated Energy Real Energy 40226 to 40242
        'len' => '17',    #M_Exported, M_Exported_A, M_Exported_B, M_Exported_C, M_Imported, M_Imported_A, M_Imported_B, M_Imported_C, M_Energy_W_SF
        'reading' => 'X_Meter_1_Block_Energy_W',
        'unpack'  => 'L>L>L>L>L>L>L>L>s>', # 'l>l>l>l>l>l>l>l>s>' 
        'expr'    => 'ExprMeter($hash,$name,"X_Meter_1_M_Energy_W",$val[0],$val[1],$val[2],$val[3],$val[4],$val[5],$val[6],$val[7],$val[8])'
        ,               
    },

   "h40243" => {         #Apparent Energy Real Energy 40243 to 40259
       'len' => '17',    #M_Exported, M_Exported_A, M_Exported_B, M_Exported_C, M_Imported, M_Imported_A, M_Imported_B, M_Imported_C, M_Energy_W_SF
       'reading' => 'X_Meter_1_Block_Energy_VA',
       'unpack'  => 'L>L>L>L>L>L>L>L>s>',
       'expr'    => 'ExprMeter($hash,$name,"X_Meter_1_M_Energy_VA",$val[0],$val[1],$val[2],$val[3],$val[4],$val[5],$val[6],$val[7],$val[8])'
        ,               
    },
);
#####################################
my %SolarEdgeBat1parseInfo = (
###############################################################################################################
    # Holding Register
###############################################################################################################
    "h57600" => {    # E100(F500) 16R Battery 1 Manufacturer Name String[32]
        'reading' => 'Battery_1_Manufacturer_Name',
        'type'    => 'VT_String',
    },
    "h57616" => {    # E110(F510) 16R Battery 1 Model String[32]
        'reading' => 'Battery_1_Model',
        'type'    => 'VT_String',
    },
    "h57632" => {     # E120(F520) 16R Battery 1 Firmware Version String[32]
        'reading' => 'Battery_1_Firmware',
        'type'    => 'VT_String',
    },
    "h57648" => {     # E130(F530) 16R Battery 1 SerialNumber String[32]
        'reading' => 'Battery_1_SerialNumber',
        'type'    => 'VT_String',
    },
    "h57664" => {    # E140(F540) 1R Battery 1 DeviceID Uint16
        'len'     => '1',                                                           
        'reading' => 'Battery_1_DeviceID',
    },
    "h57666" => {    # E142 (F542) 2R Battery 1 Rated Energy Float32 W*H
'len'     => '2',
        'reading' => 'Battery_1_Rated_Energy_WH',
    'unpack'  => 'aaaa',
    'expr' => 'unpack("f>", $val[2].$val[3].$val[0].$val[1])',
    },
    "h57668" => {    # E144 (F544) 2R Battery 1 Max Charge Continues Power Float32 W
'len'     => '4',
        'reading' => 'Battery_1_Max_Charge_Continues_Power_W',
    'unpack'  => 'aaaa',
    'expr' => 'unpack("f>", $val[2].$val[3].$val[0].$val[1])',
    },
    "h57670" => {    # E146 (F546) 2R Battery 1 Max Discharge Continues Power Float32 W
'len'     => '2',
        'reading' => 'Battery_1_Max_Discharge_Continues_Power_W',
'unpack'  => 'aaaa',
'expr' => 'unpack("f>", $val[2].$val[3].$val[0].$val[1])',
    },
    "h57672" => {    # E148 (F548) 2R Battery 1 Max Charge Peak Power Float32 W
'len'     => '2',
        'reading' => 'Battery_1_Max_Charge_Peak_Power_W',
    'unpack'  => 'aaaa',
    'expr' => 'unpack("f>", $val[2].$val[3].$val[0].$val[1])',
    },
    "h57674" => {    # E14A (F54A) 2R Battery 1 Max Discharge Peak Power Float32 W
'len'     => '2',
        'reading' => 'Battery_1_Max_Discharge_Peak_Power_W',
    'unpack'  => 'aaaa',
    'expr' => 'unpack("f>", $val[2].$val[3].$val[0].$val[1])',
    },
    "h57712" => {     # E170(F570) 2R Battery 1 Instantaneous Voltage Float32 V
'len'     => '2',
        'reading' => 'Battery_1_Instantaneous_Voltage_V',
    'unpack'  => 'aaaa',
    'expr' => 'unpack("f>", $val[2].$val[3].$val[0].$val[1])',
    },
    "h57714" => {     # E172(F572) 2R Battery 1 Instantaneous Current Float32 A
'len'     => '2',
        'reading' => 'Battery_1_Instantaneous_Current_A',
    'unpack'  => 'aaaa',
    'expr' => 'unpack("f>", $val[2].$val[3].$val[0].$val[1])',
    },
    "h57716" => {     # E174(F574) 2R Battery 1 Instantaneous Power Float32  W
'len'     => '2',
        'reading' => 'Battery_1_Instantaneous_Power_W',
    'unpack'  => 'aaaa',
    'expr' => 'unpack("f>", $val[2].$val[3].$val[0].$val[1])',
    },
    "h57734" => {     # E186(F586) 2R Battery 1 Status Uint32 0-7
        'len'     => '2', 
        'reading' => 'Battery_1_Status',
        'expr'    => '$val',
        'map'     => '1:Aus, 3:Laden, 4:Entladen, 6:Erhaltungsladen',   # 1: Aus 3: Laden 4: Entladen 6: Erhaltungsladen
        'setexpr' => '$val',
    },
);
#####################################



#####################################
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 20 November 2020, 18:25:53
Teil 2v2

sub Initialize()
{
    my $hash = shift;

    my %SolarEdgeparseInfoAll = ( %SolarEdgeparseInfo, %SolarEdgeMeter1parseInfo, %SolarEdgeBat1parseInfo );

    #require "$attr{global}{modpath}/FHEM/98_Modbus.pm";
    #require "$attr{global}{modpath}/FHEM/DevIo.pm";
   
   
    #$hash->{DefFn} = \&Define;
    #$hash->{AttrFn}     = \&Attr;
    $hash->{parseInfo}  = \%SolarEdgeparseInfoAll;    # defines registers for this Modbus Defive
    $hash->{deviceInfo} = \%SolarEdgedeviceInfo;      # defines properties of the device like
    ModbusLD_Initialize($hash);        # Generic function of the Modbus module does the rest
    #Modbus::InitializeLD($hash);                      # Generic function of the Modbus module does the rest

    $hash->{AttrList} =
        $hash->{AttrList}
      . "X_PV_Energy X_PV_EnergyToday X_PV_EnergyCurrentWeek X_PV_EnergyCurrentMonth X_Calculated_Consumption X_M_ExportedToday X_M_ExportedCurrentWeek X_M_ExportedCurrentMonth X_M_ImportedToday X_M_ImportedCurrentWeek X_M_ImportedCurrentMonth"
      . "$readingFnAttributes" . " "
      .                                               # Standard Attributes like IODEv etc
      $hash->{ObjAttrList} . " " .                    # Attributes to add or overwrite parseInfo definitions
      $hash->{DevAttrList} . " " .                    # Attributes to add or overwrite devInfo definitions
      "poll-.*" . " " .                               # overwrite poll with poll-ReadingName
      "polldelay-.*" . " " .                          # overwrite polldelay with polldelay-ReadingName
      "errorHandlingOf" . " ";                        # overwrite polldelay with polldelay-ReadingName

      return;
}
###################################
sub ExprMppt()
{                                                     # Berechnung Wert mit ScaleFactor unter Beachtung Operating_State

    # Expr, conversion of raw value to visible value
    my @vval;
    my $hash        = shift;                          # Übergabe Geräte-Hash
    my $DevName     = shift;                          # Übergabe Geräte-Name
    my $ReadingName = shift;
    $vval[0] = shift;
    $vval[1] = shift;
    $vval[2] = shift;
    $vval[3] = shift;
    $vval[4] = shift;

    # Register
    my @SolarEdge_readings =
      ( "I_AC_Current", "I_AC_Power", "I_AC_VA", "I_AC_VAR", "I_AC_PF", "I_AC_Energy_WH", "I_DC_Current", "I_DC_Voltage", "I_DC_Power" );
    my ( $Psec, $Pmin, $Phour, $Pmday, $Pmonth, $Pyear, $Pwday, $Pyday, $Pisdst ) = localtime( time() + 61 );
    my $Pyear2 = $Pyear + 1900;

    Log3 $hash, 4, "SolarEdge $DevName : " . $vval[0] . " Reg :" . $ReadingName;
   
     my $WertNeu =
        @vval . " "
      . $vval[0] . " "
      . $vval[1] . " "
      . $vval[2] . " "
      . $vval[3] . " "
      . $vval[4] ;
   
        if ( $ReadingName eq "C_Model" )
    {
        Log3 $hash, 4, "SolarEdge $DevName Model : " . $vval[0] . ":" . $vval[1] . ":" . $vval[2] . ":" . $vval[3] . ":" . $vval[4];
        $hash->{MODEL_WR} = $vval[0];
        $hash->{MODEL} = $vval[0];
        readingsBulkUpdate( $hash, $ReadingName, $vval[0] );
    }
    elsif ( $ReadingName eq "I_AC_Current" )
    {
        readingsBulkUpdate( $hash, $ReadingName,         $vval[0] * 10**$vval[4] );
        readingsBulkUpdate( $hash, $ReadingName . "_A",  $vval[1] * 10**$vval[4] );
        readingsBulkUpdate( $hash, $ReadingName . "_B",  $vval[2] * 10**$vval[4] );
        readingsBulkUpdate( $hash, $ReadingName . "_C",  $vval[3] * 10**$vval[4] );
        readingsBulkUpdate( $hash, $ReadingName . "_SF", $vval[4] );
    }
    elsif ( $ReadingName eq "I_AC_Power" || $ReadingName eq "I_DC_Power" )
    {
        my $POWER = ( $vval[0] * 10**$vval[1] );
        Log3 $hash, 4, "SolarEdge I_Power_0 : " . $vval[0] . " POWER :" . $POWER;

        if ( $POWER < 0 || $POWER > 18000 )
        {
            $POWER = 0;
        }

        Log3 $hash, 4, "SolarEdge I_Power_1 : " . $vval[0] . " POWER :" . $POWER;
        readingsBulkUpdate( $hash, $ReadingName,         $POWER );
        readingsBulkUpdate( $hash, $ReadingName . "_SF", $vval[1] );

    }
    elsif ( $ReadingName eq "I_AC_Energy_WH" )
    {
        # Anfang I_AC_Energy_WH (Today, Week,...)
        my $energy_pv   = ReadingsVal( $DevName, "X_PV_Energy", -1 );
        my $energy_time = $vval[0] * 10**$vval[1];

        if ( $energy_pv <= 0 )
        {

            readingsBulkUpdate( $hash, "X_PV_EnergyToday", "0" );
        }
        else
        {
            my $ts_energy_today = ReadingsTimestamp( $DevName, "X_PV_EnergyToday", 0 );
            my $energy_today    = ReadingsVal( $DevName, "X_PV_EnergyToday", 0 );

            my $time_now = TimeNow();
            my $date_now = substr( $time_now, 0, 10 );

            my $reading_month = substr( $ts_energy_today, 5, 2 );
            my $reading_date  = substr( $ts_energy_today, 0, 10 );

            Log3 $hash, 4, "SolarEdge TimeStamp PV-Energie: $ts_energy_today : D1: $reading_date : $time_now :  $date_now ";
            Log3 $hash, 4, "SolarEdge Jahr Monat PV-Energie: $reading_month : " . "PV_" . ($Pyear2) . "_" . ( $Pmonth + 1 ) . " ----";

            if ( $date_now eq $reading_date )
            {
                # Prüfung gleicher Tag
                #Same Day
                readingsBulkUpdate( $hash, "X_PV_EnergyToday", $energy_today + ( $energy_time - $energy_pv ) );
            }
            else
            {
                #Next Day
                my $energy_week = ReadingsVal( $DevName, "X_PV_EnergyCurrentWeek", 0 );

                readingsBulkUpdate( $hash, "X_PV_EnergyCurrentWeek", $energy_week + $energy_today );

                if ( ( $Pmonth + 1 ) eq $reading_month )
                {
                    # Prüfung gleicher Monat
                    #Same Month
                    my $energy_month = ReadingsVal( $DevName, "X_PV_EnergyCurrentMonth", 0 );

                    readingsBulkUpdate( $hash, "X_PV_EnergyCurrentMonth", $energy_month + $energy_today );
                }
                else
                {
                    # Next Month
                    my $energy_month = ReadingsVal( $DevName, "X_PV_EnergyCurrentMonth", 0 );

                    readingsBulkUpdate( $hash, "PV_" . ($Pyear2) . "_" . ($Pmonth), $energy_month );
                    readingsBulkUpdate( $hash, "X_PV_EnergyCurrentMonth",           "0" );
                }

                # New Day start at 0 again
                readingsBulkUpdate( $hash, "X_PV_EnergyToday", "0" );

                Log3 $hash, 4, "SolarEdge PV-Energie: $energy_today :  $energy_time : $energy_pv  ";
            }
        }

        readingsBulkUpdate( $hash, $ReadingName,         $vval[0] * 10**$vval[1]  );
        readingsBulkUpdate( $hash, "X_PV_Energy",        $vval[0] * 10**$vval[1]  );
        readingsBulkUpdate( $hash, $ReadingName . "_SF", $vval[1] );

       
       
       
        # Ende  I_AC_Energy_WH(Today, Week,...
    }
    else
    {
        readingsBulkUpdate( $hash, $ReadingName,         $vval[0] * 10**$vval[1] );
        readingsBulkUpdate( $hash, $ReadingName . "_SF", $vval[1] );
    }

     ############## Tabelle in STATE aufbauen ################
        my $wr_status = ReadingsVal( $DevName, "I_Status", 0 );
        my $temp = ReadingsVal( $DevName, "I_Temp_HeatSink", 0 );
        my $a_power = ReadingsVal( $DevName, "I_AC_Power", 0 );
        my $d_power = ReadingsVal( $DevName, "I_DC_Power", 0 );
        my $s_dc_voltage = ReadingsVal( $DevName, "I_DC_Voltage", 0 );
        my $s_ac_current = ReadingsVal( $DevName, "I_AC_Current", 0 );
        my $s_ac_energy = ReadingsVal( $DevName, "I_AC_Energy_WH", 0 );
        my $einheit_e = "Wh";
       
        if  ($s_ac_energy > 1000000)
        {
          $einheit_e = "MWh";
          $s_ac_energy = nearest('0.01',$s_ac_energy / 1000000);   
        } elsif ( $s_ac_energy > 1000) {
          $einheit_e = "kWh";
          $s_ac_energy = nearest('0.01',$s_ac_energy / 1000);
        }
        my $energie = $s_ac_energy." ".$einheit_e;
        my $s_teil_1 = "<table border=0 bordercolor='green' cellspacing=0 align='center'><tr><th><h1>Gesamtenergie ".$energie." </h1> </td></tr></table>";
        my $s_teil_2 = "<table border=3 bordercolor='green' cellspacing=0 align='center'><tr><th>Status</th><td>".$wr_status."</td></tr><tr><th>Temperatur</th><td align='right'>".$temp."</td></tr>";
        my $s_teil_3 = "<tr><th>Leistung DC</th><td align='right'>".$d_power." W</td></tr><tr><th>Leistung AC</th><td align='right'>".$a_power." W</td></tr><tr><th>Spannung DC</th><td align='right'>".$s_dc_voltage." V-</td></tr><tr><th>Strom AC</th><td align='right'>". $s_ac_current." A~</td></tr></table><br>";
# my $state ="<h1>Gesamtenergie ".$energie." </h1><table border=4 bordercolor='green' cellspacing=5 frame=box><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>".$d_power." W</td><td>".$a_power." W</td><td>".$s_dc_voltage." V-</td><td>". $s_ac_current." A~</td></tr></table>";
    #   my $state = "<h1>Gesamtenergie ".$energie." </h1><table border=1 bordercolor='green' cellspacing=1><tr><th>Status: ".$wr_status." </th><th>Temperatur: ".$temp." </th></tr><table><tr><th></th></tr><table border=4 bordercolor='green' cellspacing=5 frame=box><tr><th>Leistung DC</th><th>Leistung AC</th><th>Spannung DC</th><th>Strom AC</th></tr><tr><td>".$d_power." W</td><td>".$a_power." W</td><td>".$s_dc_voltage." V-</td><td>". $s_ac_current." A~</td></tr></table>";
        my $state = $s_teil_1.$s_teil_2.$s_teil_3 ;
readingsBulkUpdate($hash, "state", $state);
       ###############################################


    #if ( $ReadingName eq "I_AC_Power" )
    #{
    #    HelperConsumption( $hash, $DevName );
    #}

    Log3 $hash, 4, "SolarEdge $DevName : " . $WertNeu;
    return $WertNeu;
}

###################################
sub ExprMeter()
{    # Berechnung Wert mit ScaleFactor unter Beachtung Operating_State

    # Expr, conversion of raw value to visible value
    my @vval;
    my $hash        = shift;    # Übergabe Geräte-Hash
    my $DevName     = shift;    # Übergabe Geräte-Name
    my $ReadingName = shift;
    $vval[0] = shift;
    $vval[1] = shift;
    $vval[2] = shift;
    $vval[3] = shift;
    $vval[4] = shift;
    $vval[5] = shift;
    $vval[6] = shift;
    $vval[7] = shift;
    $vval[8] = shift;

    # Register
    my ( $Psec, $Pmin, $Phour, $Pmday, $Pmonth, $Pyear, $Pwday, $Pyday, $Pisdst ) = localtime( time() + 61 );
    my $Pyear2 = $Pyear + 1900;

    #my ($Psec,$Pmin,$Phour,$Pmday,$Pmonth,$Pyear,$Pwday,$Pyday,$Pisdst) = localtime(TimeNow());
    my $time_now = TimeNow();
    my $date_now = substr( $time_now, 0, 10 );

    Log3 $hash, 4, "SolarEdge $DevName : " . $vval[0] . " Reg :" . $ReadingName;
    my $WertNeu =
        @vval . " "
      . $vval[0] . " "
      . $vval[1] . " "
      . $vval[2] . " "
      . $vval[3] . " "
      . $vval[4] . " "
      . $vval[5] . " "
      . $vval[6] . " "
      . $vval[7] . " "
      . $vval[8];

    if ( $ReadingName eq "X_Meter_1_C_Model" )
    {
        Log3 $hash, 4, "SolarEdge $DevName X_Meter_1_C_Model : " . $vval[0] . ":" . $vval[1];
       
        if (length($vval[0]) > 4 ) {
            my $model_wr =  ReadingsVal( $DevName, "C_Model", 0 );
            $hash->{MODEL_METER} = $vval[0];
           # $hash->{MODEL_WR} = $model_wr;
            $hash->{MODEL} = $model_wr." : ".$vval[0];                  # MODEL      SE7K-RWS48BNN4 : SE-MTR-3Y-400V-A
            readingsBulkUpdate( $hash, $ReadingName, $vval[0] );
        }       
       
    }
    elsif ($ReadingName eq "X_Meter_1_M_AC_Current"
        || $ReadingName eq "X_Meter_1_M_AC_Power"
        || $ReadingName eq "X_Meter_1_M_AC_VA"
        || $ReadingName eq "X_Meter_1_M_AC_VAR"
        || $ReadingName eq "X_Meter_1_M_AC_PF" )
    {
        readingsBulkUpdate( $hash, $ReadingName,         $vval[0] * 10**$vval[4] );
        readingsBulkUpdate( $hash, $ReadingName . "_A",  $vval[1] * 10**$vval[4] );
        readingsBulkUpdate( $hash, $ReadingName . "_B",  $vval[2] * 10**$vval[4] );
        readingsBulkUpdate( $hash, $ReadingName . "_C",  $vval[3] * 10**$vval[4] );
        readingsBulkUpdate( $hash, $ReadingName . "_SF", $vval[4] );
    }
    elsif ( $ReadingName eq "X_Meter_1_M_AC_Voltage" )    #M_AC_Voltage_LN, M_AC_Voltage_AN, M_AC_Voltage_BN, M_AC_Voltage_CN, M_AC_Voltage_LL, M_AC_Voltage_AB, M_AC_Voltage_BC, M_AC_Voltage_CA, M_AC_Voltage_SF 
    {
        readingsBulkUpdate( $hash, $ReadingName . "_LN", $vval[0] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_AN", $vval[1] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_BN", $vval[2] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_CN", $vval[3] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_LL", $vval[4] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_AB", $vval[5] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_BC", $vval[6] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_CA", $vval[7] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_SF", $vval[8] );
    }
    elsif ( $ReadingName eq "X_Meter_1_M_Energy_W" )
    {
        # Anfang EXPORTED
        my $energy_exported   = ReadingsVal( $DevName, "X_Meter_1_M_Exported", -1 );
        my $exported_time       = $vval[0] * 10**$vval[8]; ## New Value X_Meter_1_M_Exported

        if ( $energy_exported <= 0 )
        {
            readingsBulkUpdate( $hash, "X_M_ExportedToday", "0" );
        }
        else
        {
            my $ts_exported_today = ReadingsTimestamp( $DevName, "X_M_ExportedToday", 0 );
            my $exported_today    = ReadingsVal( $DevName, "X_M_ExportedToday", 0 );

            my $time_now = TimeNow();
            my $date_now = substr( $time_now, 0, 10 );

            my $reading_month = substr( $ts_exported_today, 5, 2 );
            my $reading_date  = substr( $ts_exported_today, 0, 10 );

            Log3 $hash, 4, "SolarEdge TimeStamp PV-Exported: $ts_exported_today : D1: $reading_date : $time_now :  $date_now ";
            Log3 $hash, 4, "SolarEdge Jahr Monat PV-Exported: $reading_month : " . "PV_" . ($Pyear2) . "_" . ( $Pmonth + 1 ) . " ----";

            if ( $date_now eq $reading_date )
            {
                # Prüfung gleicher Tag
                #Same Day
                readingsBulkUpdate( $hash, "X_M_ExportedToday", $exported_today + ( $exported_time - $energy_exported ) );
            }
            else
            {
                #Next Day
                my $exported_week = ReadingsVal( $DevName, "X_M_ExportedCurrentWeek", 0 );

                readingsBulkUpdate( $hash, "X_M_ExportedCurrentWeek", $exported_week + $exported_today );

                if ( ( $Pmonth + 1 ) eq $reading_month )
                {
                    # Prüfung gleicher Monat
                    #Same Month
                    my $exported_month = ReadingsVal( $DevName, "X_M_ExportedCurrentMonth", 0 );

                    readingsBulkUpdate( $hash, "X_M_ExportedCurrentMonth", $exported_month + $exported_today );
                }
                else
                {
                    # Next Month
                    my $exported_month = ReadingsVal( $DevName, "X_M_ExportedCurrentMonth", 0 );

                    readingsBulkUpdate( $hash, "X_M_Exported_" . ($Pyear2) . "_" . ($Pmonth), $exported_month );
                    readingsBulkUpdate( $hash, "X_M_ExportedCurrentMonth",           "0" );
                }

                # New Day start at 0 again
                readingsBulkUpdate( $hash, "X_M_ExportedToday", "0" );

                Log3 $hash, 4, "SolarEdge PV-Exported: $exported_today :  $exported_time : $energy_exported  ";
            }
        }
        # Ende EXPORTED

        # Anfang IMPORTED
        my $energy_imported   = ReadingsVal( $DevName, "X_Meter_1_M_Imported", -1 );
        my $imported_time     = $vval[4] * 10**$vval[8]; ## New Value X_Meter_1_M_Imported

        if ( $energy_imported <= 0 )
        {
            readingsBulkUpdate( $hash, "X_M_ImportedToday", "0" );
        }
        else
        {
            my $ts_imported_today = ReadingsTimestamp( $DevName, "X_M_ImportedToday", 0 );
            my $imported_today    = ReadingsVal( $DevName, "X_M_ImportedToday", 0 );

            my $time_now = TimeNow();
            my $date_now = substr( $time_now, 0, 10 );

            my $reading_month = substr( $ts_imported_today, 5, 2 );
            my $reading_date  = substr( $ts_imported_today, 0, 10 );

            Log3 $hash, 4, "SolarEdge TimeStamp PV-Imported: $ts_imported_today : D1: $reading_date : $time_now :  $date_now ";
            Log3 $hash, 4, "SolarEdge Jahr Monat PV-Imported: $reading_month : " . "PV_" . ($Pyear2) . "_" . ( $Pmonth + 1 ) . " ----";

            if ( $date_now eq $reading_date )
            {
                # Prüfung gleicher Tag
                #Same Day
                readingsBulkUpdate( $hash, "X_M_ImportedToday", $imported_today + ( $imported_time - $energy_imported ) );
            }
            else
            {
                #Next Day
                my $imported_week = ReadingsVal( $DevName, "X_M_ImportedCurrentWeek", 0 );

                readingsBulkUpdate( $hash, "X_M_ImportedCurrentWeek", $imported_week + $imported_today );

                if ( ( $Pmonth + 1 ) eq $reading_month )
                {
                    # Prüfung gleicher Monat
                    #Same Month
                    my $imported_month = ReadingsVal( $DevName, "X_M_ImportedCurrentMonth", 0 );

                    readingsBulkUpdate( $hash, "X_M_ImportedCurrentMonth", $imported_month + $imported_today );
                }
                else
                {
                    # Next Month
                    my $imported_month = ReadingsVal( $DevName, "X_M_ImportedCurrentMonth", 0 );

                    readingsBulkUpdate( $hash, "X_M_Imported_" . ($Pyear2) . "_" . ($Pmonth), $imported_month );
                    readingsBulkUpdate( $hash, "X_M_ImportedCurrentMonth",           "0" );
                }

                # New Day start at 0 again
                readingsBulkUpdate( $hash, "X_M_ImportedToday", "0" );

                Log3 $hash, 4, "SolarEdge PV-Imported: $imported_today :  $imported_time : $energy_imported  ";
            }
        }
        # Ende IMPORTED
        # Energy Consumption kwh

        #my $energy_pv = ReadingsVal( $DevName, "I_AC_Energy_WH", -1 );
        #All Time Consumption
        #my $consumption_time = ($energy_pv - $energy_exported) + $energy_imported;

        my $imported_today = ReadingsVal( $DevName, "X_M_ImportedToday", 0 );
        my $exported_today = ReadingsVal( $DevName, "X_M_ExportedToday", 0 );
        my $pv_today       = ReadingsVal( $DevName, "X_PV_EnergyToday",  0 );

        #Consumption Today
        my $consumption_today = ($pv_today - $exported_today) +  $imported_today;

        #readingsBulkUpdate( $hash, "X_Calculated_Consumption_kWh", $consumption_time / 1000 );
        readingsBulkUpdate( $hash, "X_M_ConsumptionToday", $consumption_today );

        #Calc First then Update
        readingsBulkUpdate( $hash, "X_Meter_1_M_Exported",   $vval[0] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Exported_A", $vval[1] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Exported_B", $vval[2] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Exported_C", $vval[3] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Imported",   $vval[4] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Imported_A", $vval[5] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Imported_B", $vval[6] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Imported_C", $vval[7] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_SF",     $vval[8] );
    }
    elsif ( $ReadingName eq "X_Meter_1_M_Energy_VA" )
    {
        readingsBulkUpdate( $hash, "X_Meter_1_M_Exported_VA",   $vval[0] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Exported_VA_A", $vval[1] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Exported_VA_B", $vval[2] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Exported_VA_C", $vval[3] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Imported_VA",   $vval[4] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Imported_VA_A", $vval[5] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Imported_VA_B", $vval[6] * 10**$vval[8] );
        readingsBulkUpdate( $hash, "X_Meter_1_M_Imported_VA_C", $vval[7] * 10**$vval[8] );
        readingsBulkUpdate( $hash, $ReadingName . "_SF",        $vval[8] );
    }
    else
    {
        readingsBulkUpdate( $hash, $ReadingName,         $vval[0] * 10**$vval[1] );
        readingsBulkUpdate( $hash, $ReadingName . "_SF", $vval[1] );
    }

    #if ( $ReadingName eq "X_Meter_1_M_AC_Power" )
    #{
    #     HelperConsumption( $hash, $DevName );
    #}

    Log3 $hash, 4, "SolarEdge $DevName : " . $WertNeu;
    return $WertNeu;
}

sub HelperConsumption()
{
    my $hash    = shift;    # Übergabe Geräte-Hash
    my $DevName = shift;    # Übergabe Geräte-Name

    my $powerInverter = ReadingsVal( $DevName, "I_AC_Power",           -1 );
    my $powerGrid     = ReadingsVal( $DevName, "X_Meter_1_M_AC_Power", -1 );
    my $consumption   = $powerGrid + $powerInverter;

    # Power from grid is negativ (1 - (-1) ) = 2
    $consumption = $powerInverter - $powerGrid;

    readingsBulkUpdate( $hash, "X_Calculated_Consumption", $consumption );
    return;

}

1;

=pod
=begin html

<a name="SolarEdge"></a>
<h3>SolarEdge</h3>
<ul>
    SolarEdge uses the low level Modbus module to provide a way to communicate with SolarEdge inverter.
It defines the modbus input and holding registers and reads them in a defined interval.
  Modbusversion => Modbus 4.1.5 - 17.9.2019

  you may need to install the Math::Round module
 
  sudo apt install libmath-round-perl

<br>
    <b>Prerequisites</b>
    <ul>
        <li>
          This module requires the basic Modbus module which itsef requires Device::SerialPort or Win32::SerialPort module.
        </li>
    </ul>
    <br>

    <a name="SolarEdgeDefine"></a>
    <b>Define</b>
    <ul>
        <code>define &lt;name&gt; SolarEdge &lt;Id&gt; &lt;Interval&gt; &lt;IP&gt; &lt;Mode&gt; </code>
        <br><br>
        The module connects to the smart electrical meter with Modbus Id &lt;Id&gt; through an already defined modbus device and actively requests data from the
        smart electrical meter every &lt;Interval&gt; seconds <br>
        <br>
        Example:<br>
        <br>
        <ul><code>define SEdge SolarEdge 1 60</code></ul>
        <ul><code>define SEdge SolarEdge 3 60 192.168.0.23:502 RTU</code></ul>
    </ul>
    <br>

    <a name="SolarEdgeConfiguration"></a>
    <b>Configuration of the module</b><br><br>
    <ul>
    apart from the modbus id and the interval which both are specified in the define command there is nothing that needs to be defined.
However there are some attributes that can optionally be used to modify the behavior of the module. <br><br>
    The attributes that control which messages are sent / which data is requested every &lt;Interval&gt; seconds are:
    if the attribute is set to 1, the corresponding data is requested every &lt;Interval&gt; seconds. If it is set to 0, then the data is not requested.
   </ul>

    <a name="SolarEdgeSet"></a>
    <b>Set-Commands</b><br>
    <ul>
        The following set options are available:  none
    </ul>
<br>
    <a name="SolarEdgeGet"></a>
    <b>Get-Commands</b><br>
    <ul>
        All readings are also available as Get commands. Internally a Get command triggers the corresponding
        request to the device and then interprets the data and returns the right field value.
    </ul>
<br>
    <a name="SolarEdgeattr"></a>
    <b>Attributes</b><br><br>
    <ul>
    <li><a href="#do_not_notify">do_not_notify</a></li>
      <li><a href="#readingFnAttributes">readingFnAttributes</a></li>
        <br>
  <li><b>X_PV_Energy</b></li>
  <li><b>X_PV_EnergyToday</b></li>
      <li><b>X_PV_EnergyCurrentWeek</b></li>
  <li><b>pv_energytomonth</b></li>
      <li><b>X_Calculated_Consumption</b> current power consumption (photovoltaik and / or grid)</li>
    </ul>
    <br>
</ul>

=end html
=cut
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 20 November 2020, 18:50:19
@beejayf

Hallo Björn,

du kannst auch deine angepasste Datei anhängen, dann geht nichts verloren. Und ich kann ein Diff von beiden Dateien machen und das dann übernehmen.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 20 November 2020, 22:38:26
Ah! Ein Ausflug in die erweiterten Optionen eröffnet ungeahnte Möglichkeiten :)
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: cocojambo am 24 November 2020, 16:20:44
Hallo Jörg,
Hallo Björn,

ich melde mich auch noch mal. Ich habe inzwischen alle Werte die ich brauche direkt über das Modbus Modul ausgelesen und einzeln als Attribute definiert.
Damit habe ich die Batteriewerte, Inverterwerte und die Werte der beiden Modbuszähler erfassen können, wenn das auch über die Attributlösung verhältsmäßig umständlich ist.
Was mir noch ein Rätsel aufgibt sind die DC-Inverterwerte.

40096 1 I_DC_Current uint16 Amps DC Current value
40098 1 I_DC_Voltage uint16 Volts DC Voltage value
40100 1 I_DC_Power int16 Watts DC Power value

Ich habe es mit allen Kombinationen in den Attributen probiert, aber es kommen meistens die richtigen Zahlenwerte raus aber mit den falschen Stellenwerten, bzw wenn Lade-und Entladestatus wechselt (+/-) sind auch die Werte falsch.

attr obj-h40096-expr sprintf "%.1f",$val/10000
attr obj-h40096-len 4
attr obj-h40096-reading Inv_DC_Stromattr
attr obj-h40098-expr sprintf "%.1f",$val/10
attr obj-h40098-reading Inv_DC_Spannung
attr obj-h40100-expr sprintf "%.1f",$val/10
attr obj-h40100-len 1
attr obj-h40100-reading Inv_DC_Leistung
attr obj-h40100-revRegs 0
attr obj-h40100-unpack s>

Vielleicht weiß jemand von Euch welche Attribute zum Auslesen der DC-Inverterwerte nötig sind.
Die Werte aus der SolarEdge.pm funktionieren garnicht und sind ebenfalls falsch.

Gruß aus Köln
Norbert
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 24 November 2020, 19:23:58
@cocojambo

bei diesen Registern I_DC_Current,.... usw. gibt es immer noch ein Register was für die Kommastelle und Vorzeichen ( _SF ) verantwortlich ist.
Und da das Register fürs Vorzeichen leider nach dem eigentlichen Register mit dem Wert kommt, werden in meinem Modul beide Register gleichzeitig ausgelesen und dann wird daraus der richtige Wert berechnet.

#     "h40096" => { #
    # 'reading' => 'I_DC_Current',
    #          'format' => '%.2f A',
    # },
    #     "h40097" => { #
    # 'reading' => 'I_DC_Current_SF',
    # },


Was hast du den für einen Wechselrichter ? Bei 4 oder 5 Leuten passen aber die Werte und werden mit diesem Modul ausgelesen.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: cocojambo am 03 Dezember 2020, 17:36:42
Hallo Jörg,

Hat wunderbar funktioniert. Ich habe mir einige Attribute aus deinem Modul "klauen" müßen aber fast alles wird einwandfrei gelesen.
Es gibt nur zwei Werte die nach Abschalten der Batterie seltsame Werte rausgeben.

Und zwar Batt.Voltage h57712 und Batt.Current h57714

Batt_Spannung     -340282346638528859811704183484516925440.0
Batt_Status        10
Batt_Strom        -340282346638528859811704183484516925440.0

Diese Werte erscheinen aber nur wenn die Batterie softwaremäßig komplett aus ist (nachts) und der Status 10 erscheint, den ich auch nicht kenne, im Betrieb sind die Werte OK.

Hast du dafür eine Erklärung oder Lösung?

2.Frage:

Ich habe inzwischen auch mal dein Modul in Augenschein genommen und ausprobiert. Die Werte scheinen jetzt alle in Ordnung zu sein. Zumindest im Vergleich mit meinen. Ich würde dein Modul auch sehr gerne verwenden, aber ich habe zwei Modbuszähler in Betrieb, wobei der Zweite nur die Einspeisung der Solaranlage zählt. Also dort braucht man nur Spannung/Strom/Leistungsangaben. Das Auslesen der Werte zwischen den einzelnen Phasen ist da nicht nötig.

Ich habe dann gedacht, man könne in deinem Modul einfach die Adressen des Modbuszählers durch die des Zweiten ersetzen, aber so einfach scheint das nicht zu gehen. Da ich davon nur ein wenig verstehe bis hin zu Garnichts, wäre meine Frage an Dich:
Ist es mit großem Aufwand verbunden, wenn du die paar Auslesewerte des 2.Zählers in deinem Modul integrierst?

Dann brauche ich nicht mehr an meiner Lösung rumzudoktern, sondern könnte dein Modul voll verwenden, was mir natürlich lieber wäre..........

Kurze Anmerkung zu deinem Modul: In der Auswertung der Inverter_AC Werte ist noch ein Fehler. Ich habe einen 1-phasen Inverter und da kann es nur eine Spannung zwischen Phase und Null geben (ca.230V an AN oder BN oder CN) und nicht zwischen AB.

Nach Neustart des Moduls kommen im LOG ...Too many arguments....
Kann das vielleicht damit zusammenhängen....Battery_1_Instantaneous.....



Gruß aus Köln
Norbert

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 07 Dezember 2020, 22:21:49
@cocojambo

Hallo Norbert,

Wenn du mein Modul im Einsatz hast kannst du mal bitte ein Update machen, ich habe da jetzt noch etwas angepaßt. Vorher deine fhem.cfg sichern.

update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt

..... dev-h-combine 40 <---- in meinem Modul


Jörg

@beejayf

Hallo Böjrn,

ich habe mal die Anpassungen für die Batterie eingepflegt. Kannst du mal testen.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: cocojambo am 09 Dezember 2020, 22:09:19
Hallo Jörg,

ich habe probiert dein Modul mal zu testen. Leider hat das nicht funktioniert, weil bei mir noch das ModbusAttr Modul läuft.
Wenn ich dann dein Modul lade kommen sich beide in die "Quere" weil auch dein Modul das Modbus- und ModbusAttr Modul läd.
Ich habe keine Möglichkeit gefunden mein aktives Programm das mit ModbusAttr läuft zeitweise zu deaktivieren.
Disable und stop helfen nicht und deinstalieren des Programms welches das ModbusAttr Modul nutzt, möchte ich ja logischerweise nicht.

Wenn du eine Idee hast, wie ich beides laufen lassen kann oder mein Programm zeitweise "stilllegen" kann, teste ich dein Programm sehr gerne.

Gruß
Norbert
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 09 Dezember 2020, 22:18:31
@pejonp

Hallo Jörg,

Version 39 funktioniert super! Danke Dir und frohe Weihnachten!

Cheers,

Björn

PS.: ich möchte mir noch den Batteriestand in % ansehen - vielleicht kann man das über die Spannung machen - aktuell frag ich noch den Wert aus der Solaredge Cloud ab - ist ja nicht so zeitkritisch und 2-3 Minunten Lag fallen kaum auf.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 10 Dezember 2020, 08:54:56
@cocojambo

Hallo Norbert,

Versuch mal eine nicht vorhandene ip adresse oder port einzutragen. Dann wird nichts mehr gefunden.
Wenn beide Module abfragen behindern sie sich.
Oder du veränderst die abfragezeit auf 5min, so das das andere Modul  die Daten lesen kann.

Jörg
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: cocojambo am 10 Dezember 2020, 11:14:05
Hallo Björn,

Die Batterie Ladung ist in in der Version von pejonp eigentlich schon drin.
Sie steht unter der Adresse h57732 und sieht bei mir so aus:

attr SE_Inverter obj-h57732-expr unpack("f>", $val[2].$val[3].$val[0].$val[1])
attr SE_Inverter obj-h57732-format %.1f%
attr SE_Inverter obj-h57732-len 2
attr SE_Inverter obj-h57732-reading Batt_Ladung
attr SE_Inverter obj-h57732-unpack aaaa

SE_Inverter muß du dir natürlich ersetzt denken und bei format das %-Zeichen dranhängen.

Gruß
Norbert
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: cocojambo am 13 Dezember 2020, 17:36:06
@pejonp

Hallo Jörg,

ich habe die IP-Adresse geändert und das andere Modul geht dann auf disconnect.
Dann habe ich versucht dein Update zu laden.
update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txtFunktioniert nicht. Es wird das übliche Backup gemacht und dann steht im Im Log "Nothing to do..."
Ich habe darauf hin die 98_SolarEdge.pm unter FHEM/ gelöscht und noch mal probiert das Modul herunter zu laden.
Das gleiche "Nothing to do..."
Das Modul ist auch nicht im Verzeichniss vorhanden.

Warum geht das nicht?

Gruß
Norbert
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 13 Dezember 2020, 19:33:36
@cocojambo

Hallo Norbert,

lösche mal bitte auch die
controls_SolarEdge.txt

Wenn das dann auch nicht geht, einfach die 98_SolarEdge.pm vom github einkopieren. Aber danach die Rechte/Eigentümer "fhem/dialout" anpassen.
Einen Restart von FHEM nicht vergessen.

@beejayf

Hallo Börn,

ich habe die beiden Register für den Ladezustand der Batterie mit aufgenommen. Bitte einmal testen.

Jörg

Schönen 3. Advent
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 21 Dezember 2020, 20:10:22
@pejonp

Hallo Jörg,

ja sieht gut aus - eben das Update gemacht und im Wert Battery_1_SOE steht die 10 (%), was sich mit dem Wert in der Cloud deckt. Wenn morgen die Sonne scheint checke ich das nochmal.

Hohoho,

Björn
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 28 Dezember 2020, 14:14:31
Hallo zusammen,

ich habe das Modul von ~10.2018 im Einsatz. Seitdem habe ich es nicht mehr geändert. Jetzt habe ich meine Anlage um ein Smartmeter erweitert. Die Werte bekomme ich am WR angezeigt. Diese möchte ich nun auch in FHEM sehen. Ich habe dazu die neueste Version des Moduls installiert. Danach hat leider nicht mehr viel funktioniert:
2020.12.28 12:26:13 1: Messages collected while initializing FHEM:configfile: Cannot load module SolarEdge
Please define SolarEdge 5c481c13-f33f-4f30-f3a1-7526220148935a5d first
Muss ich das Device neu anlegen oder hat jemand einen Tip für mich?
Die Modbus Module habe ich auch mit upgedated. Ebenfalls libmath-round-perl installiert.

Viele Grüße
Christian

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 28 Dezember 2020, 14:24:53
@Chris_XXX

Hallo Christian,

hast du FHEm neu gestartet ? Was wird im Log beim laden des SolarEdge-Modules angezeigt ?
Im Modul verbose auf 4 oder 5 setzten.

ist dein FHEM aktuell ?

Ich habe jetzt gerade eine Anpassung gemacht. Mach mal bitte eien Update vom SolarEdge-Modul. Bitte die neuen ModBus-Module ( https://forum.fhem.de/index.php/topic,75638.msg1114110.html#msg1114110 ) einspielen. Dann ein Neustart von FHEM.


pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 28 Dezember 2020, 16:01:08
Hallo Pejonp,

ich habe nochmals ein update von fhem und dem Modbus Modulen durchgeführt. Hat leider nix gebracht.
Im log finde ich dann folgendes:
2020.12.28 15:44:43 1: reload: Error:Modul 98_SolarEdge deactivated:
 Excessively long <> operator at ./FHEM/98_SolarEdge.pm line 21, <$fh> line 177.

2020.12.28 15:44:43 0: Excessively long <> operator at ./FHEM/98_SolarEdge.pm line 21, <$fh> line 177.

Was immer er mir damit sagen will?!

Viele Grüße
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 28 Dezember 2020, 17:56:03
@Chris_XXX

Hallo,

leider zu wenig Infos ;-(

Welche Version setzt du ein ? Modbus-module musst du aus dem Forum nehmen, also erst nach dem Update einspielen.

FHEM neu starten. Mal etwas mehr vom Log anhängen.

was ergibt: Version Solar --> das muss rauskommen.

98_SolarEdge.pm    41 2020-28-12 17:54:00Z pejonp

Ist Linux und Perl aktuell ?!

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 28 Dezember 2020, 19:15:13
Hallo pejonp,

hui, habe mir gerade mal meine ganze fhem.cfg zerschossen..... So ein Backup ist doch Gold wert ;)

Also die Modbus Module habe ich von hier:
https://forum.fhem.de/index.php/topic,75638.msg1114110.html#msg1114110
Die Version deines Moduls sollte aktuell sein:
98_SolarEdge.pm    41 2020-28-12 17:54:00Z pejonp

Linux habe ich auch nochmal auf den aktuellen stand gebracht. Ich verwende Raspbian Buster
Perl verrät mir das:
perl -version

This is perl 5, version 28, subversion 1 (v5.28.1) built for arm-linux-gnueabihf-thread-multi-64int
(with 61 registered patches, see perl -V for more detail)

Was mich stutzig macht sind diese Fehler im FHEM.log:
2020.12.28 19:10:20 1: PERL WARNING: Argument "" isn't numeric in addition (+) at (eval 2845) line 1.
Vorher ist mir dieser Fehler noch nicht aufgefallen.
Zum Solaredge Modul sagt er leider nur dass er es nicht mehr lädt.

Kannst du damit etwas anfangen?

Viele Grüße
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 28 Dezember 2020, 19:43:06
Noch ein Nachtrag zu Perl:
apt show libjson-perl
Package: libjson-perl
Version: 4.02000-1
Priority: optional
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 29 Dezember 2020, 00:15:26
@Chris_XXX

leider zu wenig Infos. Kannst du deinen log als Datei anhängen ?
Am besten einmal FHEM stopen, log wegsichern oder löschen, FHEM starten. Log wegsichern und hier anhängen, als Datei.

Zitat
Zum Solaredge Modul sagt er leider nur dass er es nicht mehr lädt.

Da steht dann aber auch aus welchem Grund !  Perl-Lib fehlt, Funktion stimmt nicht, Zugriffsrechte richtig gesetzt, usw. ....

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 29 Dezember 2020, 06:24:56
Guten Morgen pejonp,

sorry ich stehe auf dem Schlauch:
Zugriffsrechte der Module stehen alle auf 644 fhem:dialout
Oder meinst du die rechte von anderen Files?
Weißt du wie das Paket für die Perl lib heißt? Derzeit habe ich laut dpkg -i ~160 Pakete installiert die Perl im Namen tragen.
Das Log erstelle ich später. Soll ich dazu in den global einstellungen das Verbose level auf 5 setzen?

VG
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 29 Dezember 2020, 08:59:42
@Chris_XXX

Erst mal nichts verändern. Einfach das log anhängen.

Und ein list vom solaredge device.

Pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 29 Dezember 2020, 09:13:01
Anbei das Logfile.
Und hier das List (allerdings mit dem lauffähigen Modul von dir aus 2018)
Internals:
   DEF        1 15 192.168.99.14:502 TCP
   DeviceName 192.168.99.14:502
   EXPECT     idle
   FD         30
   FUUID      5c481c13-f33f-4f30-f3a1-7526220148935a5d
   IODev      SolarEdge
   Interval   15
   LASTOPEN   1609229421.90018
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.3.8 - 25.12.2020
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         44
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TYPE       SolarEdge
   devioLoglevel 3
   nextOpenDelay 60
   Helper:
     DBLOG:
       C_Version:
         DBLogging:
           TIME       1609229425.1225
           VALUE      0003.2251
       I_AC_Energy_WH_kWh:
         DBLogging:
           TIME       1609229425.4207
           VALUE      19672.952
       I_AC_Power:
         DBLogging:
           TIME       1609229425.4207
           VALUE      85
       I_Status:
         DBLogging:
           TIME       1609229425.82887
           VALUE      WR_An
       I_Temp_Kuehler:
         DBLogging:
           TIME       1609229425.82887
           VALUE      30 °C
       pv_energytoday:
         DBLogging:
           TIME       1609229425.4207
           VALUE      0
       state:
         DBLogging:
           TIME       1609229422.99129
           VALUE      CONNECTED
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2020-12-29 09:10:25   Block_AC_Current 5 225 66 82 77 -2
     2020-12-29 09:10:25   Block_AC_Energy_WH 5 19672952 0 0 0 0
     2020-12-29 09:10:25   Block_AC_Frequency 5 5002 -2 0 0 0
     2020-12-29 09:10:25   Block_AC_PF     5 49287 -3 0 0 0
     2020-12-29 09:10:25   Block_AC_Power  5 8500 -2 0 0 0
     2020-12-29 09:10:25   Block_AC_VA     5 5170 -1 0 0 0
     2020-12-29 09:10:25   Block_AC_VAR    5 60436 -1 0 0 0
     2020-12-29 09:10:25   Block_DC_Current 5 11531 -5 0 0 0
     2020-12-29 09:10:25   Block_DC_Power  5 8324 -2 0 0 0
     2020-12-29 09:10:25   Block_DC_Voltage 5 7483 -1 0 0 0
     2020-12-29 09:10:25   C_DeviceAddress 1
     2020-12-29 09:10:24   C_Manufacturer  SolarEdge
     2020-12-29 09:10:24   C_Model         SE9K
     2020-12-29 09:10:25   C_SerialNumber  7E1483A0
     2020-12-29 09:10:25   C_SunSpec_DID   Dreiphasig
     2020-12-29 09:10:24   C_SunSpec_ID    SunS
     2020-12-29 09:10:25   C_Version       0003.2251
     2020-12-29 09:10:25   I_AC_Current    2.25
     2020-12-29 09:10:25   I_AC_CurrentL1  0.66
     2020-12-29 09:10:25   I_AC_CurrentL2  0.82
     2020-12-29 09:10:25   I_AC_CurrentL3  0.77
     2020-12-29 09:10:25   I_AC_Current_SF -2
     2020-12-29 09:10:25   I_AC_Energy_WH_kWh 19672.952
     2020-12-29 09:10:25   I_AC_Energy_WH_kWh_SF 0
     2020-12-29 09:10:25   I_AC_Frequency  50.02
     2020-12-29 09:10:25   I_AC_Frequency_SF -2
     2020-12-29 09:10:25   I_AC_PF         49.287
     2020-12-29 09:10:25   I_AC_PF_SF      -3
     2020-12-29 09:10:25   I_AC_Power      85
     2020-12-29 09:10:25   I_AC_Power_SF   -2
     2020-12-29 09:10:25   I_AC_VA         517
     2020-12-29 09:10:25   I_AC_VAR        6043.6
     2020-12-29 09:10:25   I_AC_VAR_SF     -1
     2020-12-29 09:10:25   I_AC_VA_SF      -1
     2020-12-29 09:10:25   I_AC_VoltageAB  4015
     2020-12-29 09:10:25   I_AC_VoltageAN  2306
     2020-12-29 09:10:25   I_AC_VoltageBC  4008
     2020-12-29 09:10:25   I_AC_VoltageBN  2310
     2020-12-29 09:10:25   I_AC_VoltageCA  3997
     2020-12-29 09:10:25   I_AC_VoltageCN  2306
     2020-12-29 09:10:25   I_AC_Voltage_SF 65535
     2020-12-29 09:10:25   I_DC_Current    0.11531
     2020-12-29 09:10:25   I_DC_Current_SF -5
     2020-12-29 09:10:25   I_DC_Power      83.24
     2020-12-29 09:10:25   I_DC_Power_SF   -2
     2020-12-29 09:10:25   I_DC_Voltage    748.3
     2020-12-29 09:10:25   I_DC_Voltage_SF -1
     2020-12-29 09:10:25   I_Status        WR_An
     2020-12-29 09:10:25   I_Temp_Kuehler  30 °C
     2020-12-29 09:10:25   pv_energytoday  0
     2020-12-29 09:10:22   state           opened
   REMEMBER:
     lid        1
     lname      SolarEdge
     lrecv      1609229425.80142
     lsend      1609229425.75415
   defptr:
     SolarEdge  1
   gotReadings:
     Block_DC_Power 5 8324 -2 0 0 0
     I_Status   WR_An
     I_Temp_Kuehler 30 °C
   lastRead:
     h40000     1609229424.65211
     h40004     1609229424.6704
     h40020     1609229424.67594
     h40044     1609229425.10421
     h40052     1609229425.10985
     h40068     1609229425.11371
     h40069     1609229425.1186
     h40071     1609229425.22942
     h40076     1609229425.23399
     h40077     1609229425.23816
     h40078     1609229425.24143
     h40079     1609229425.24493
     h40080     1609229425.24877
     h40081     1609229425.25245
     h40082     1609229425.2562
     h40083     1609229425.26697
     h40085     1609229425.27575
     h40087     1609229425.28588
     h40089     1609229425.2957
     h40091     1609229425.308
     h40093     1609229425.3251
     h40096     1609229425.33654
     h40098     1609229425.34465
     h40100     1609229425.8116
     h40103     1609229425.81864
     h40107     1609229425.8249
Attributes:
   DbLogExclude .*
   DbLogInclude .*
   event-min-interval .*:86400
   event-on-change-reading I_AC_Energy_WH_kWh:1,I_AC_Power:50,I_Temp_Kuehler:3,I_Status
   event-on-update-reading pv_energymonth,pv_energytoday,C_Version
   icon       measure_photovoltaic_inst
   room       PV
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 29 Dezember 2020, 23:14:46
@Chris_XXX

Hier ist schonmal ein Fehler. Diese Routine (SolarEdge_Initialize) gibt es nicht mehr in meinem Modul.

2020.12.29 09:02:10 0: Undefined subroutine &main::SolarEdge_Initialize called at fhem.pl line 2660, <$fh> line 177.

Am besten FHEM stoppen.
Datei löschen.
FHEM starten

Modul neu installieren
update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt

shutdown restart

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 30 Dezember 2020, 14:44:43
Hi Pejonp,

das hat wunderbar funktioniert  ;D  ;D
vielen Dank.

Ich habe eine kleine Abweichung bei X_PV_EnergyToday und dem was ich auf dem WR ablesen kann. Ist das normal bzw. gibt es dafür einen Grund?
Was gar nicht passt ist X_M_ConsumptionToday (ich denke das ist der EV), X_M_ExportedToday, X_M_ImportedToday.
Sorry für die vielen Fragen.

LG
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 30 Dezember 2020, 15:23:34
Sorry, ich korrigiere,  X_M_ExportedToday passt
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Chris_XXX am 01 Januar 2021, 10:52:38
Hallo pejonp,

nach einem Tag hat sich alles eingependelt. Passt Wunderbar. Vielen Dank für die Gute Unterstützung und die Klasse Arbeit. Tip Top

Gsunds Neues an alle
Christian
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: EinEinfach am 06 Januar 2021, 08:40:26
Hallo zusammen,

ich versuche verzweifelt meinen SolarEdge WR per Modbus TCP ins FHEM einzubinden. Leider bekomme ich keinen einzigen Reading zu sehen. Was habe ich gemacht:
- 98_Modbus.pm, 98_ModbusAttr.pm und Utils.pm von hier:
https://forum.fhem.de/index.php/topic,75638.615.html (https://forum.fhem.de/index.php/topic,75638.615.html)
in meine Instanz übernommen.
- 98_Solaredge von hier:
https://github.com/pejonp/FHEM---SolarEdge (https://github.com/pejonp/FHEM---SolarEdge)
in meine Fhem Instanz übernommen.

Das Gerät habe ich wie folgt definiert:
define SolarEdge SolarEdge 1 60 192.168.2.10:1502 TCP
aber es kommen keine Werte. List vom device sieht wie folgt aus:
Internals:
   CFGFN     
   DEF        1 60 192.168.2.10:1502 TCP
   DeviceName 192.168.2.10:1502
   EXPECT     response
   FD         28
   FUUID      5ff56592-f33f-c57e-98c1-b6495f4ba7460596
   IODev      SolarEdge
   Interval   60
   LASTOPEN   1609918607.79155
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.3.10 - 29.12.2020
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         259
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TIMEOUTS   4
   TYPE       SolarEdge
   devioLoglevel 3
   nextOpenDelay 60
   nextQueueRun 1609918617.82975
   nextTimeout 1609918617.82683
   FRAME:
   QUEUE:
     HASH(0x558e910dab78)
     HASH(0x558e911bb7a0)
     HASH(0x558e91504fa0)
     HASH(0x558e9127a048)
     HASH(0x558e91934620)
     HASH(0x558e919a6d90)
   READ:
     BUFFER     
   READINGS:
     2021-01-06 08:36:47   state           opened
   REMEMBER:
     lid        1
     lname      SolarEdge
     lsend      1609918615.82848
   REQUEST:
     ADR        40155
     DBGINFO    getUpdate
     FCODE      3
     FRAME      ���(
     LEN        40
     MODBUSID   1
     OPERATION  read
     QUEUED     1609918607.81438
     READING    X_Meter_1_C_Option
     SENT       1609918615.82683
     TID        240
     TYPE       h
     MASTERHASH:
   defptr:
     SolarEdge  1
   lastRead:
Attributes:
   DbLogExclude .*
   disable    0

Im Log steht folgendes:
2021.01.06 08:36:47 3: SolarEdge device opened
2021.01.06 08:36:49 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h40000, len 28, tid 9, master device SolarEdge, reading C_SunSpec_ID (getUpdate), queued 2.01 secs ago, sent 2.00 secs ago
2021.01.06 08:36:51 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h40044, len 39, tid 195, master device SolarEdge, reading C_Version (getUpdate), queued 4.01 secs ago, sent 2.00 secs ago
2021.01.06 08:36:53 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h40083, len 25, tid 82, master device SolarEdge, reading Block_AC_Power (getUpdate), queued 6.01 secs ago, sent 2.00 secs ago
2021.01.06 08:36:55 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h40121, len 26, tid 250, master device SolarEdge, reading X_Meter_1_C_SunSpec_DID_0 (getUpdate), queued 8.01 secs ago, sent 2.00 secs ago
2021.01.06 08:36:57 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h40155, len 40, tid 240, master device SolarEdge, reading X_Meter_1_C_Option (getUpdate), queued 10.01 secs ago, sent 2.00 secs ago
2021.01.06 08:36:59 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h40195, len 31, tid 221, master device SolarEdge, reading X_Meter_1_Block_AC_Voltage (getUpdate), queued 12.01 secs ago, sent 2.00 secs ago
2021.01.06 08:37:01 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h40226, len 34, tid 235, master device SolarEdge, reading X_Meter_1_Block_Energy_W (getUpdate), queued 14.02 secs ago, sent 2.00 secs ago
2021.01.06 08:37:03 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h57600, len 40, tid 52, master device SolarEdge, reading Battery_1_Manufacturer_Name (getUpdate), queued 16.02 secs ago, sent 2.00 secs ago
2021.01.06 08:37:05 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h57648, len 24, tid 144, master device SolarEdge, reading Battery_1_SerialNumber (getUpdate), queued 18.02 secs ago, sent 2.00 secs ago
2021.01.06 08:37:07 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h57670, len 6, tid 64, master device SolarEdge, reading Battery_1_Max_Discharge_Continues_Power_W (getUpdate), queued 20.02 secs ago, sent 2.00 secs ago
2021.01.06 08:37:09 3: SolarEdge: Timeout waiting for a modbus response, read buffer empty,
request: id 1, read fc 3 h57712, len 24, tid 140, master device SolarEdge, reading Battery_1_Instantaneous_Voltage_V (getUpdate), queued 22.02 secs ago, sent 2.00 secs ago

Hat einer eine Idee was ich falsch mache?

Es handelt sich um den SE9K WR
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: EinEinfach am 06 Januar 2021, 10:43:04
Hat sich erledigt. Habe den entscheidenden Hinweis übersehen:
Zitat
The inverter only waits for two minutes for a Modbus TCP client to connect, after that it doesn’t accept TCP connections. I found that if your connection has dropped, the only way to get it back would be to restart te inverter (or go into the inverter config menu, disable Modbus TCP and re-enable it).

Jetzt sieht es gut aus:
Internals:
   CFGFN     
   DEF        2 60 192.168.2.10:1502 TCP
   DeviceName 192.168.2.10:1502
   EXPECT     idle
   FD         16
   FUUID      5ff572c1-f33f-c57e-d890-7a5cbb063825d0f7
   IODev      SolarEdge
   Interval   60
   LASTOPEN   1609921326.09316
   MODBUSID   2
   MODE       master
   MODEL      SE9K-RW0TEBNN4 : SE-MTR-3Y-400V-A
   MODEL_METER SE-MTR-3Y-400V-A
   MODEL_WR   SE9K-RW0TEBNN4
   MODULEVERSION Modbus 4.3.10 - 29.12.2020
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         408
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      <table border=0 bordercolor='green' cellspacing=0 align='center'><tr><th><h1>Gesamtenergie 1.16 kWh </h1> </td></tr></table><table border=3 bordercolor='green' cellspacing=0 align='center'><tr><th>Status</th><td>Inverter is ON and producing power</td></tr><tr><th>Temperatur</th><td align='right'>38 °C</td></tr><tr><th>Leistung DC</th><td align='right'>300.8 W</td></tr><tr><th>Leistung AC</th><td align='right'>296.35 W</td></tr><tr><th>Spannung DC</th><td align='right'>750.6 V-</td></tr><tr><th>Strom AC</th><td align='right'>1.88 A~</td></tr></table><br>
   TCPConn    1
   TYPE       SolarEdge
   devioLoglevel 3
   nextOpenDelay 60
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2021-01-06 10:39:36   Battery_1_DeviceID 255
     2021-01-06 09:22:37   Battery_1_Firmware
     2021-01-06 10:39:36   Battery_1_Instantaneous_Current_A -3.40282346638529e+38
     2021-01-06 10:39:36   Battery_1_Instantaneous_Power_W 0
     2021-01-06 10:39:36   Battery_1_Instantaneous_Voltage_V -3.40282346638529e+38
     2021-01-06 09:22:37   Battery_1_Manufacturer_Name
     2021-01-06 10:39:36   Battery_1_Max_Charge_Continues_Power_W -3.40282346638529e+38
     2021-01-06 10:39:36   Battery_1_Max_Charge_Peak_Power_W -3.40282346638529e+38
     2021-01-06 10:39:36   Battery_1_Max_Discharge_Continues_Power_W -3.40282346638529e+38
     2021-01-06 10:39:36   Battery_1_Max_Discharge_Peak_Power_W -3.40282346638529e+38
     2021-01-06 09:22:37   Battery_1_Model
     2021-01-06 10:39:36   Battery_1_Rated_Energy_WH -3.40282346638529e+38
     2021-01-06 10:39:36   Battery_1_SOE   -3.40282346638529e+38
     2021-01-06 10:39:36   Battery_1_SOH   -3.40282346638529e+38
     2021-01-06 09:22:37   Battery_1_SerialNumber
     2021-01-06 10:39:36   Battery_1_Status 7
     2021-01-06 10:39:36   Block_AC_Current 5 188 60 64 63 -2
     2021-01-06 10:39:36   Block_AC_Energy_WH 5 1162 0 0 0 0
     2021-01-06 10:39:36   Block_AC_Frequency 5 4999 -2 0 0 0
     2021-01-06 10:39:36   Block_AC_PF     5 58595 -2 0 0 0
     2021-01-06 10:39:36   Block_AC_Power  5 29635 -2 0 0 0
     2021-01-06 10:39:36   Block_AC_VA     5 4269 -1 0 0 0
     2021-01-06 10:39:36   Block_AC_VAR    5 62463 -1 0 0 0
     2021-01-06 10:39:36   Block_AC_Voltage 9 3931 3926 3939 2268 2261 2282 -1 0 0
     2021-01-06 09:22:36   Block_C_Model   5 SE9K-RW0TEBNN4 0 0 0 0
     2021-01-06 10:39:36   Block_DC_Current 5 4007 -4 0 0 0
     2021-01-06 10:39:36   Block_DC_Power  5 3008 -1 0 0 0
     2021-01-06 10:39:36   Block_DC_Voltage 5 7506 -1 0 0 0
     2021-01-06 09:22:36   C_DeviceAddress 2
     2021-01-06 09:22:36   C_Manufacturer  SolarEdge
     2021-01-06 09:22:36   C_Model         SE9K-RW0TEBNN4
     2021-01-06 09:22:36   C_SerialNumber  XXXXXXXX
     2021-01-06 09:22:36   C_SunSpec_DID   three phase
     2021-01-06 09:22:36   C_SunSpec_ID    SunS
     2021-01-06 09:22:36   C_Version       0004.0011.0030
     2021-01-06 10:39:36   I_AC_Current    1.88
     2021-01-06 10:39:36   I_AC_Current_A  0.6
     2021-01-06 10:39:36   I_AC_Current_B  0.64
     2021-01-06 10:39:36   I_AC_Current_C  0.63
     2021-01-06 10:39:36   I_AC_Current_SF -2
     2021-01-06 10:39:36   I_AC_Energy_WH  1162
     2021-01-06 10:39:36   I_AC_Energy_WH_SF 0
     2021-01-06 10:39:36   I_AC_Frequency  49.99
     2021-01-06 10:39:36   I_AC_Frequency_SF -2
     2021-01-06 10:39:36   I_AC_PF         585.95
     2021-01-06 10:39:36   I_AC_PF_SF      -2
     2021-01-06 10:39:36   I_AC_Power      296.35
     2021-01-06 10:39:36   I_AC_Power_SF   -2
     2021-01-06 10:39:36   I_AC_VA         426.9
     2021-01-06 10:39:36   I_AC_VAR        6246.3
     2021-01-06 10:39:36   I_AC_VAR_SF     -1
     2021-01-06 10:39:36   I_AC_VA_SF      -1
     2021-01-06 10:39:36   I_AC_Voltage_AB 393.1
     2021-01-06 10:39:36   I_AC_Voltage_AN 226.8
     2021-01-06 10:39:36   I_AC_Voltage_BC 392.6
     2021-01-06 10:39:36   I_AC_Voltage_BN 226.1
     2021-01-06 10:39:36   I_AC_Voltage_CA 393.9
     2021-01-06 10:39:36   I_AC_Voltage_CN 228.2
     2021-01-06 10:39:36   I_AC_Voltage_SF -1
     2021-01-06 10:39:36   I_DC_Current    0.4007
     2021-01-06 10:39:36   I_DC_Current_SF -4
     2021-01-06 10:39:36   I_DC_Power      300.8
     2021-01-06 10:39:36   I_DC_Power_SF   -1
     2021-01-06 10:39:36   I_DC_Voltage    750.6
     2021-01-06 10:39:36   I_DC_Voltage_SF -1
     2021-01-06 10:39:36   I_Status        Inverter is ON and producing power
     2021-01-06 10:39:36   I_Temp_HeatSink 38 °C
     2021-01-06 10:39:36   X_M_ConsumptionToday 540
     2021-01-06 10:39:36   X_M_ExportedToday 0
     2021-01-06 10:39:36   X_M_ImportedToday 207
     2021-01-06 10:39:36   X_Meter_1_Block_AC_Current 9 17 6 3 6 -1 0 0 0 0
     2021-01-06 10:39:36   X_Meter_1_Block_AC_Frequency 9 4999 -2 0 0 0 0 0 0 0
     2021-01-06 10:39:36   X_Meter_1_Block_AC_PF 9 3940 6230 5260 329 -2 0 0 0 0
     2021-01-06 10:39:36   X_Meter_1_Block_AC_Power 9 -147 -99 -42 -5 0 0 0 0 0
     2021-01-06 10:39:36   X_Meter_1_Block_AC_VA 9 326 135 78 134 0 0 0 0 0
     2021-01-06 10:39:36   X_Meter_1_Block_AC_VAR 9 -291 -91 -65 -134 0 0 0 0 0
     2021-01-06 10:39:36   X_Meter_1_Block_AC_Voltage 9 22592 22592 22560 22743 0 0 0 0 -2
     2021-01-06 09:22:36   X_Meter_1_Block_C_Model 9 SE-MTR-3Y-400V-A 0 0 0 0 0 0 0 0
     2021-01-06 10:39:36   X_Meter_1_Block_Energy_VA 9 0 0 0 0 0 0 0 0 -32768
     2021-01-06 10:39:36   X_Meter_1_Block_Energy_W 9 0 0 1 7 106048 34940 33541 37574 0
     2021-01-06 09:22:36   X_Meter_1_C_DeviceAddress 2
     2021-01-06 09:24:36   X_Meter_1_C_Manufacturer SolarEdge
     2021-01-06 09:22:36   X_Meter_1_C_Model SE-MTR-3Y-400V-A
     2021-01-06 09:22:36   X_Meter_1_C_Option Export+Import
     2021-01-06 09:22:36   X_Meter_1_C_SerialNumber XXXXXXXXXX
     2021-01-06 09:22:36   X_Meter_1_C_SunSpec_DID wye-connect three phase
     2021-01-06 09:22:36   X_Meter_1_C_SunSpec_DID_0 ASolarEdge
     2021-01-06 09:23:36   X_Meter_1_C_SunSpec_Length ASolarEdge
     2021-01-06 09:22:36   X_Meter_1_C_Version 74
     2021-01-06 10:39:36   X_Meter_1_M_AC_Current 1.7
     2021-01-06 10:39:36   X_Meter_1_M_AC_Current_A 0.6
     2021-01-06 10:39:36   X_Meter_1_M_AC_Current_B 0.3
     2021-01-06 10:39:36   X_Meter_1_M_AC_Current_C 0.6
     2021-01-06 10:39:36   X_Meter_1_M_AC_Current_SF -1
     2021-01-06 10:39:36   X_Meter_1_M_AC_Frequency 49.99
     2021-01-06 10:39:36   X_Meter_1_M_AC_Frequency_SF -2
     2021-01-06 10:39:36   X_Meter_1_M_AC_PF 39.4
     2021-01-06 10:39:36   X_Meter_1_M_AC_PF_A 62.3
     2021-01-06 10:39:36   X_Meter_1_M_AC_PF_B 52.6
     2021-01-06 10:39:36   X_Meter_1_M_AC_PF_C 3.29
     2021-01-06 10:39:36   X_Meter_1_M_AC_PF_SF -2
     2021-01-06 10:39:36   X_Meter_1_M_AC_Power -147
     2021-01-06 10:39:36   X_Meter_1_M_AC_Power_A -99
     2021-01-06 10:39:36   X_Meter_1_M_AC_Power_B -42
     2021-01-06 10:39:36   X_Meter_1_M_AC_Power_C -5
     2021-01-06 10:39:36   X_Meter_1_M_AC_Power_SF 0
     2021-01-06 10:39:36   X_Meter_1_M_AC_VA 326
     2021-01-06 10:39:36   X_Meter_1_M_AC_VAR -291
     2021-01-06 10:39:36   X_Meter_1_M_AC_VAR_A -91
     2021-01-06 10:39:36   X_Meter_1_M_AC_VAR_B -65
     2021-01-06 10:39:36   X_Meter_1_M_AC_VAR_C -134
     2021-01-06 10:39:36   X_Meter_1_M_AC_VAR_SF 0
     2021-01-06 10:39:36   X_Meter_1_M_AC_VA_A 135
     2021-01-06 10:39:36   X_Meter_1_M_AC_VA_B 78
     2021-01-06 10:39:36   X_Meter_1_M_AC_VA_C 134
     2021-01-06 10:39:36   X_Meter_1_M_AC_VA_SF 0
     2021-01-06 10:39:36   X_Meter_1_M_AC_Voltage_AB 0
     2021-01-06 10:39:36   X_Meter_1_M_AC_Voltage_AN 225.92
     2021-01-06 10:39:36   X_Meter_1_M_AC_Voltage_BC 0
     2021-01-06 10:39:36   X_Meter_1_M_AC_Voltage_BN 225.6
     2021-01-06 10:39:36   X_Meter_1_M_AC_Voltage_CA 0
     2021-01-06 10:39:36   X_Meter_1_M_AC_Voltage_CN 227.43
     2021-01-06 10:39:36   X_Meter_1_M_AC_Voltage_LL 0
     2021-01-06 10:39:36   X_Meter_1_M_AC_Voltage_LN 225.92
     2021-01-06 10:39:36   X_Meter_1_M_AC_Voltage_SF -2
     2021-01-06 10:39:36   X_Meter_1_M_Energy_VA_SF -32768
     2021-01-06 10:39:36   X_Meter_1_M_Energy_W_SF 0
     2021-01-06 10:39:36   X_Meter_1_M_Exported 0
     2021-01-06 10:39:36   X_Meter_1_M_Exported_A 0
     2021-01-06 10:39:36   X_Meter_1_M_Exported_B 1
     2021-01-06 10:39:36   X_Meter_1_M_Exported_C 7
     2021-01-06 10:39:36   X_Meter_1_M_Exported_VA 0
     2021-01-06 10:39:36   X_Meter_1_M_Exported_VA_A 0
     2021-01-06 10:39:36   X_Meter_1_M_Exported_VA_B 0
     2021-01-06 10:39:36   X_Meter_1_M_Exported_VA_C 0
     2021-01-06 10:39:36   X_Meter_1_M_Imported 106048
     2021-01-06 10:39:36   X_Meter_1_M_Imported_A 34940
     2021-01-06 10:39:36   X_Meter_1_M_Imported_B 33541
     2021-01-06 10:39:36   X_Meter_1_M_Imported_C 37574
     2021-01-06 10:39:36   X_Meter_1_M_Imported_VA 0
     2021-01-06 10:39:36   X_Meter_1_M_Imported_VA_A 0
     2021-01-06 10:39:36   X_Meter_1_M_Imported_VA_B 0
     2021-01-06 10:39:36   X_Meter_1_M_Imported_VA_C 0
     2021-01-06 10:39:36   X_PV_Energy     1162
     2021-01-06 10:39:36   X_PV_EnergyToday 333
     2021-01-06 10:39:36   state           <table border=0 bordercolor='green' cellspacing=0 align='center'><tr><th><h1>Gesamtenergie 1.16 kWh </h1> </td></tr></table><table border=3 bordercolor='green' cellspacing=0 align='center'><tr><th>Status</th><td>Inverter is ON and producing power</td></tr><tr><th>Temperatur</th><td align='right'>38 °C</td></tr><tr><th>Leistung DC</th><td align='right'>300.8 W</td></tr><tr><th>Leistung AC</th><td align='right'>296.35 W</td></tr><tr><th>Spannung DC</th><td align='right'>750.6 V-</td></tr><tr><th>Strom AC</th><td align='right'>1.88 A~</td></tr></table><br>
   REMEMBER:
     lid        2
     lname      SolarEdge
     lrecv      1609925976.81547
     lsend      1609925976.79769
   defptr:
     SolarEdge  2
   gotReadings:
     Battery_1_Instantaneous_Current_A -3.40282346638529e+38
     Battery_1_Instantaneous_Power_W 0
     Battery_1_Instantaneous_Voltage_V -3.40282346638529e+38
     Battery_1_SOE -3.40282346638529e+38
     Battery_1_SOH -3.40282346638529e+38
     Battery_1_Status 7
   lastRead:
     h40000     1609921356.06043
     h40004     1609921356.07323
     h40020     1609921356.07418
     h40044     1609921356.18117
     h40052     1609921356.18177
     h40068     1609921356.18223
     h40069     1609921356.18259
     h40071     1609925976.18742
     h40076     1609925976.18831
     h40083     1609925976.18908
     h40085     1609925976.18975
     h40087     1609925976.1904
     h40089     1609925976.19104
     h40091     1609925976.19168
     h40093     1609925976.19252
     h40096     1609925976.19324
     h40098     1609925976.19388
     h40100     1609925976.19453
     h40103     1609925976.19503
     h40107     1609925976.19554
     h40121     1609921356.42152
     h40122     1609921416.17963
     h40123     1609921476.19905
     h40139     1609921356.42245
     h40155     1609921356.56063
     h40163     1609921356.56127
     h40171     1609921356.56184
     h40187     1609921356.56228
     h40188     1609921356.56264
     h40190     1609925976.32802
     h40195     1609925976.32892
     h40204     1609925976.32957
     h40206     1609925976.33022
     h40211     1609925976.33086
     h40216     1609925976.33151
     h40221     1609925976.33217
     h40226     1609925976.45707
     h40243     1609925976.45787
     h57600     1609921357.00379
     h57616     1609921357.00461
     h57632     1609921357.00533
     h57648     1609921357.13155
     h57664     1609925976.57868
     h57666     1609925976.57924
     h57668     1609925976.57966
     h57670     1609925976.69593
     h57672     1609925976.69649
     h57674     1609925976.69693
     h57712     1609925976.81644
     h57714     1609925976.81696
     h57716     1609925976.81735
     h57730     1609925976.81793
     h57732     1609925976.81834
     h57734     1609925976.81899
Attributes:
   DbLogExclude .*
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: EinEinfach am 06 Januar 2021, 13:19:15
Im Log taucht ca. alle 2 minuten
MapConvert called from ParseObj did not find 7 (7) in map 1:Aus, 3:Laden, 4:Entladen, 6:Erhaltungsladen
Habe keinen Speicher, kann ich die Ausgaben ignorieren?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 06 Januar 2021, 15:51:57
@EinEinfach

Hallo,

das kannst du ignorieren. Anpassung habe ich schon gemacht. Bei Gelegenheit stelle ich es zur Verfügung.

mach mal bitte ein

fheminfo send

Damit dein WR-Model in der FHEM Statistik auftaucht.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: EinEinfach am 06 Januar 2021, 20:27:40
Ok
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Fowler am 13 März 2021, 23:12:03
Kurze Frage,
Das SolarEge-Modul bleibt bei mir auf disconnected, auch nach Wechselrichter-Neustart.

Das normale ModbusModul steht auf opened. Kann es Probleme verursachen, wenn beide gleichzeitig aktiv sind?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 14 März 2021, 11:52:25
@Fowler

wenn beide die gleiche ID abfragen: Ja
Wie oft fragst du ab ?  vielleicht mal auf 257 und 73 (nur als Beispiel einstellen).  Damit sie sich nicht gegenseitig blockieren.

FHEM einmal durchgestartet ?

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: doink am 10 April 2021, 00:17:10
N'abend zusammen
ich nutze das Modul und es funktioniert auch soweit. Danke dafür.
Jetzt wollte ich damit noch ein paar mehr Sachen machen bei denen ich mich als Perl-Laie schwer tue:
Es geht zum einen um das Schreiben von einem Float-Wert im Zusammenhang mit der Darstellen(byte-swap o.ä.):
E00E (F70E) 2 R/W Remote Control Charge Limit Float32 0- Battery Max Power W
Das Lesen funktioniert analog zu anderen float-Werten.
attr SolarEdge obj-h57358-allowWrite 1
attr SolarEdge obj-h57358-expr unpack("f>", $val[2].$val[3].$val[0].$val[1])
attr SolarEdge obj-h57358-len 2
attr SolarEdge obj-h57358-reading Batt_Charge_Limit
attr SolarEdge obj-h57358-set 1
attr SolarEdge obj-h57358-unpack aaaa
Welche setexpr muss ich zum Schreiben nehmen? Ich vermute die Umkehrfunktion vom unpack(...) - aber kenn ich mich mit perl leider nicht aus.

Dann noch die Frage wie man einen UINT64 entpackt? (Es geht dabei um E176 (F576) 4 R Battery 1 Lifetime Export Energy Counter Uint64 W*H )

Danke

edit:
Hab selbst etwas rumprobiert, oder einfach die modbusattr doku genauer gelesen und es geht dann mit:

attr SolarEdge obj-h57358-allowWrite 1
attr SolarEdge obj-h57358-bswapRegs 1
attr SolarEdge obj-h57358-len 2
attr SolarEdge obj-h57358-reading Batt_Charge_Limit
attr SolarEdge obj-h57358-revRegs 0
attr SolarEdge obj-h57358-set 1
attr SolarEdge obj-h57358-unpack f


Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 16 April 2021, 21:40:17
Hallo zusammen!

Eine letzte (!) kleine Baustelle habe ich noch offen: Die anliegende Last meiner Anlage habe ich als Wert nicht im Modul gefunden und deswegen bisher einfach errechnet mit

  GesamtLast = I_AC_Power + X_Meter_1_M_AC_Power

Auch die PV Power errechne ich mit

  PV-Power = I_AC_Power + Battery_1_Instantaneous_Power_W

Das passt fast immer - selten kommt es durch Messunterschiede z.B. zu kleinen negativen PV-Power werten - aber das kann man ja abfangen.


Oder gibt es für die GesamtLast und PV-Power doch einen Wert, den man direkt oder indirekt auslesen kann?


Bleibt gesund und schöne Grüße,

BeeJayF
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: maximalz am 28 April 2021, 18:53:15
Hallo alle zusammen,
erstmal vielen Dank für die schöne Wiki-Seite zu SE10k. Ich habe meinen gestern angeschlossen bekommen und natürlich gleich mal in FHEM eingehängt, was bis zu den userReadings auch gut funktionierte.

Wenn ich allerdings die userReadings mittels "attr MeinSE10K AC-Energy:(AC-Energy-Scale.*) { ..." (Copy & Paste aus dem Wiki) einpflege, bekomme ich

a) "Unknown command my, try help."  bei Eingabe über das dicke + Zeichen mit dem Kommando-Popup
b) "Unknown command my, try help. Unknown command return, try help. Unknown command AC-Power:(AC-Power-Scale.*),..." wenn ich es direkt in die fhem.cfg schreibe

Ich habe FHEM direkt vorher mittels "update" "shutdown restart" aktualisiert.

Kennt jemand das Problem oder noch besser - die Lösung?

Viele Grüße

Frank
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 28 April 2021, 21:56:00
@maximalz

Nimm mal bitte dieses Modul von hier: https://github.com/pejonp/FHEM---SolarEdge

einfach diesen Befehl im Browser in der Befahlszeile absetzten:

update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt

Die  Wiki-Seite zu SE10k habe ich nicht gemacht und ist eigentlich überholt, da es das 98_SolarEdge.pm Modul gibt.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: maximalz am 28 April 2021, 22:25:35
Vielen Dank, das funktioniert. Kann man die Wiki-Seite dann nicht am besten anpassen? Verwirrt irgendwie und ist tatsächlich bei den Suchtreffern ganz vorne.

Bei dem Modul kommt übrigens jede Minute ein Logeintrag

SolarEdge: MapConvert called from CreateDataObjects did not find 7 (7) in map 1:Aus, 3:Laden, 4:Entladen, 6:Erhaltungsladen, wie EinEinfach schon weiter vorne erwähnt hat.

Funktionieren eigentlich die anderen Beschreibungen (at, notice) aus dem Wiki mit dem Modul? Bin nicht ganz so FHEM-firm...
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 26 Juni 2021, 10:20:10
Hallo zusammen,

mein fhem lief jetzt lange Zeit ohne Neustart und ohne Probleme. Als ich den Raspberry Pi auf dem es läuft neu gestartet habe stellte ich fest, dass das SolarEdge Modul nicht läuft.
Im Logfile steht

Undefined subroutine &Modbus::InitializeLD called at ./FHEM/98_SolarEdge.pm line 779
auch nachdem ich ein FHEM Backup von vor 2 Monaten zurückgesichert habe bleibt die Fehlermeldung.

Eine Idee was bei mir schief läuft?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 28 Juni 2021, 17:39:20
So - hab FHEM neu installiert und die fhem.conf wieder hergestellt, alle Module neu installiert - jetzt klappts
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Barun am 09 Juli 2021, 07:35:07
Hallo Zusammen,

Danke für das Solaredge-Modul. Ich nutze es als Brücke zwischen Modbus und MQTT.

Das Modul ist in FHEM wie folgt eingebunden:
define SolarEdge SolarEdge 1 60 IP:502 TCP
define FileLog_SolarEdge FileLog ./log/SolarEdge-%Y.log SolarEdge
...
attr SolarEdgeMQTT publishReading_I_AC_Power SolarEdgeMQTT/Produktion
attr SolarEdgeMQTT publishReading_X_Meter_1_M_AC_Power SolarEdgeMQTT/Einspeisung

Die Version ist:
$Id: 98_SolarEdge.pm 0041 2020-28-12 17:54:00Z pejonp $
Im SolarEdge-2021.log sind seit 1.7.2021 alle 10s Disconnects vorhanden:
2021-07-09_06:56:22 SolarEdge DISCONNECTED
2021-07-09_06:56:22 SolarEdge CONNECTED
2021-07-09_06:56:23 SolarEdge DISCONNECTED
2021-07-09_06:56:23 SolarEdge CONNECTED
2021-07-09_06:56:32 SolarEdge DISCONNECTED
2021-07-09_06:56:32 SolarEdge CONNECTED
2021-07-09_06:56:33 SolarEdge DISCONNECTED
2021-07-09_06:56:33 SolarEdge CONNECTED

Dazu gibt es die folgenden Fehlermeldungen im fhem log:
2021.07.09 07:28:32 3 : 192.168.178.55:502 disconnected, waiting to reappear (SolarEdge)
2021.07.09 07:28:32 3 : 192.168.178.55:502 reappeared (SolarEdge)
2021.07.09 07:28:33 3 : 192.168.178.55:502 disconnected, waiting to reappear (SolarEdge)
2021.07.09 07:28:34 3 : 192.168.178.55:502 reappeared (SolarEdge)
2021.07.09 07:28:42 3 : 192.168.178.55:502 disconnected, waiting to reappear (SolarEdge)
2021.07.09 07:28:42 3 : 192.168.178.55:502 reappeared (SolarEdge)
2021.07.09 07:28:44 3 : 192.168.178.55:502 disconnected, waiting to reappear (SolarEdge)
2021.07.09 07:28:44 3 : 192.168.178.55:502 reappeared (SolarEdge)
2021.07.09 07:28:52 3 : 192.168.178.55:502 disconnected, waiting to reappear (SolarEdge)
2021.07.09 07:28:52 3 : 192.168.178.55:502 reappeared (SolarEdge)
2021.07.09 07:28:53 3 : 192.168.178.55:502 disconnected, waiting to reappear (SolarEdge)

und auch die Meldung:
2021.07.01 00:00:44 3: SolarEdge: MapConvert called from CreateDataObjects did not find 7 (7) in map 1:Aus, 3:Laden, 4:Entladen, 6:Erhaltungsladen
Kennt Ihr das Problem?

Danke und Grüße
Barun
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: TomS85 am 24 November 2021, 08:39:32
Mal eine dumme Frage:
Ich habe kürzlich alle Module in fhem geupdatet und seitdem ist mein Solaredge Device verschwunden. Ich habe es per "define SolarEdge ModbusAttr 1 60 192.168.178.63 TCP" neu definiert und das hat soweit auch funktioniert. Jedoch sind die readings nicht automatisch erstellt worden. Muss ich noch irgendwas manuell anlegen? Weiß leider nicht mehr, wie ich das damals gemacht hatte (war jedoch der Meinung, dass sich die Readings automatisch erzeugt hatten?).

Danke und beste Grüße,
Tom
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 November 2021, 21:09:34
@TomS85

Mit dieser Definition wird das nichts !!
define SolarEdge ModbusAttr 1 60 192.168.178.63  TCP

defmod SEdge SolarEdge ID 60 IP:Port RTU oder TCP

Port=502

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: l-j-silver am 01 Januar 2022, 22:40:17
Hallo Zusammen,

ich versuche gerade meine SolarEdge SE10k in hem zu integrieren.

Aktuell sind mir aber noch ein paar Punkte nicht ganz klar.

Kann einer sagen, was der Wert 10 bei Battery_1_Status für eine Bedeutung hat?

Battery_1_Firmware 48V DCDC 2.2.91
Battery_1_Instantaneous_Current_A 0
Battery_1_Instantaneous_Power_W 0
Battery_1_Instantaneous_Voltage_V 0.156860485672951
Battery_1_Manufacturer_Name 48V_BYD
Battery_1_Max_Charge_Continues_Power_W 3300
Battery_1_Max_Charge_Peak_Power_W 3700
Battery_1_Max_Discharge_Continues_Power_W 3300
Battery_1_Max_Discharge_Peak_Power_W 3700
Battery_1_Model BYD Premium LVS
Battery_1_Rated_Energy_WH 4000
Battery_1_SOE 10
Battery_1_SOH 100
Battery_1_Status 10

Vielen Dank.

Grüße Toni
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 02 Januar 2022, 15:35:35
@l-j-silver

schau mal hier https://forum.fhem.de/index.php/topic,80767.msg1095252.html#msg1095252

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: l-j-silver am 03 Januar 2022, 08:38:05
@pejonp

Danke für das Dokument, aber da war die Information nicht zu finden.

Ich habe mich mal direkt mit den WR verbunden. Im Menü des WR steht dazu "Ruhemodus".

Vielleicht sollte man es auch entsprechend im Modul aktualisieren.

Grüße Toni
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: StefGeo am 03 Januar 2022, 17:18:02
@pejonp,

vielen Dank für dein Modul, nach Ewigkeiten hab ich meinen SE8K-RWS48BNN4 mit Energy-Meter SE-MTR-3Y-400V-A wie folgt zum laufen bekommen:

Vorbereitungen am pi:
sudo cpan Device::SerialPort

sudo apt install libmath-round-perl

WICHTIGE Vorbereitungen am Wechselrichter:
Zitat
1. Flick the switch on SolarEdge to P and connect your mobile device to the WiFi hotspot (password on the side of the inverter, or use the QR code + mySolarEdge app)
2. Open the browser and visit http://172.16.0.1/ and click on the “Communication” menu item
3. Select “RS485-2”
4. Choose Protocol “SunSpec (Non-SE Logger)”, also under that set Device ID to 1 (mine was set to 5). Now some Modbus TCP requests were responding.
5. Change the Protocol over to “SolarEdge Master” (now a SolarEdge logger script was getting data too)
6. Change back protocol to “None”
7. got to "Communication"  and Activate Modbus TCP
8. Connect to the Device with in 120 SECONDS !!!!
Mit einem Device im Browser braucht man auch keinen Installer-Account für den Wechselrichter !!

Am Pi ging es dann mit den oft beschriebenen Zeilen:
update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt

define SolarEdge SolarEdge 1 30 192.168.0.19:1502 TCP

soweit so gut, ich finde gerade die Einstellung am Wechselrichter wär es wert in den Wiki zu wandern. Ich hatte lange
Modbus-Verbindung aber erst über die RS485:2 config hat der Modbus-TCP dann SunSpec ausgespuckt.


StefGeo

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: l-j-silver am 03 Januar 2022, 20:42:12
Guten Abend,

wenn die PV keinen Strom mehr generiert und ich nur den Strom aus der Batterie beziehe, sieht es bei mir wie folgt aus.

Battery_1_Instantaneous_Power_W -539 03.01.2022 19:57:22
I_AC_Power 468 03.01.2022 19:57:21
X_Meter_1_M_AC_Power 13 03.01.2022 19:57:21


Eigentlich müssten doch die Werte folgendes bedeuten:

Battery_1_Instantaneous_Power_W = Bezug Batterie
I_AC_Power = Produktion PV
X_Meter_1_M_AC_Power = Bezug/Einspeisung

Wie kann die Produktion PV (I_AC_Power) größer 0 sein, wenn doch keine Sonne mer aktiv ist?
Kann mir das jemand erklären?

Wenn die Batterie komplett leer ist, dann stimmen die Werte wieder (I_AC_Power = 0 und X_Meter_1_M_AC_Power = Eigenverbrauch).

Grüße Toni
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: SaschaK am 08 Januar 2022, 20:34:13
Hallo zusammen,

ich habe das Modul erfolgreich eingerichtet. Klappt viel besser als selbst mit dem Modbus-Modul alles einzurichten. Das kann ich jetzt wohl löschen.  ;)

Persönlich habe ich keinen Batteriespeicher und vielleicht deshalb hatte ich einen Fehler im Log, da ein Eintrag mit einer Map nicht aufgelöst werden konnte:
"SE10K: MapConvert called from CreateDataObjects did not find 7 (7) in map 1:Aus, 3:Laden, 4:Entladen, 6:Erhaltungsladen"
Lokal habe ich in der 98_SolarEdge.pm erst einmal folgendes ergänzt:
    "h57734" => {     # E186(F586) 2R Battery 1 Status Uint32 0-7
        'len'     => '2', 
        'reading' => 'Battery_1_Status',
        'expr'    => '$val',
        'map'     => '1:Aus, 3:Laden, 4:Entladen, 6:Erhaltungsladen, 7:Nicht vorhanden',   # 1: Aus 3: Laden 4: Entladen 6: Erhaltungsladen 7: Nicht vorhanden
        'setexpr' => '$val',
    },

So läuft es ohne störende Logeinträge, aber ob der Eintrag korrekte ist, weiß ich nicht. Oder gibt es eine Möglichkeit die Abfragen für Werte eines Speichers gänzlich zu deaktivieren?

Viele Grüße
Sascha
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: eisimeister am 14 Januar 2022, 23:36:09
Hallo,
habe auch das gleiche Problem mit den Logeinträgen.
Gibts schon eine Lösung dafür?
Oder muss ich den Workaround anwenden?
Danke!
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 15 Januar 2022, 20:31:35
Bitte ein Update machen.

@eisimeister @SaschaK

Battery_1_Status wurde angepaßt:
Battery Status – Battery operating state: 0 – Off; 1 – Standby; 2 – Init; 3 – Charge; 4 – Discharge; 5 – Fault; 7 - Idle

'map'     => '0:Aus, 1:Standby, 2:Init, 3:Laden, 4:Entladen, 5:Fehler, 6:Erhaltungsladen, 7:Idle',   # 0: Aus 3: Laden 4: Entladen 6: Erhaltungsladen

@l-j-silver
Battery_1_Status 10  <---- dazu habe ich nichts gefunden, hängt vielleicht mit der Batterie zusammen ?

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: l-j-silver am 19 Januar 2022, 09:33:56
Hallo pejonp,

ich bin zwar kein Experte, aber ich glaube nicht, dass es mit der Batterie zu tun hat.

Ich gehe eher davon aus, dass es mit der Version (Firmware) vom Wechselrichter zu tun hat. Der Ruhemodus wird ja auch in der SolarEdge App (siehe Foto) angezeigt.

Vielleicht hängt das Problem, welches ich auch hier im Forum hier (https://forum.fhem.de/index.php/topic,80767.msg1197710.html#msg1197710) gepostet habe auch mit der Solaredge Version vom Wechselrichter zusammen.

Hier noch ein paar Informationen aus FHEM zum Wechselrichter:
Battery_1_Firmware 48V DCDC 2.2.91
Battery_1_Manufacturer_Name 48V_BYD
Battery_1_Model BYD Premium LVS
C_Manufacturer SolarEdge
C_Model SE10K-RWS48BNN4
C_Version 0004.0013.0040

Falls du mehr Informationen benötigst, dann melde dich einfach.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 19 Januar 2022, 15:08:11
@l-j-silver

ich hänge mal die letzte mir bekannte Beschreibung der Modbus-Register von SolarEdge an. Schau mal ob du andere Register findest, die dein Problem besser lösen.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: l-j-silver am 10 Februar 2022, 17:58:40
Hallo Pejonp,

Hier die Antwort vom SolarEdge Kundensupport:
Zitat

alle Werte bis auf die Verbrauchsanzeige können über Modbus aus dem WR ausgelesen werden:
1-Produktion, -> Modbus-Register vom Wechselrichter
2-Aktueller Eigenverbrauch, -> ist eine Berechnung vom Portal, kann nicht über Modbus ausgelesen werden
3-Bezug/Einspeisung Akku, ->Modbus-Register vom Wechselrichter
4-Bezug/Einspeisung Netz ->Modbus-Register vom Wechselrichter

Der Wert 10 ist der neueste und vielleicht noch nicht im Protokoll aufgelistet. Dieser taucht auf wenn die Batterie im Standby- / Energy Saver Modus ist.

Grüße Toni
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: SaschaK am 13 Februar 2022, 18:44:41
Hallo Penjonp,

sorry ich habe dir noch gar nicht für die schnelle Korrektur gedankt!  :-[
Super Job. Funktioniert. Vielen Dank.

Ich habe noch 2 kleinere Verbesserungsvorschläge:
1. Werte möglichst ohne Einheit angeben. Ich musste bei mir die "°C" des HeatSink entfernen, da ich auf den Wert reagieren wollte.
2. Die Übersetzungen finde ich super, dass du die mitlieferst wie z.B.  beim BatteryStatus. Darüber hinaus würde ich mich allerdings auch über den Originalwert freuen. Da ich z.B. auf den Status des Wechslers reagiere. Wenn ich also neben I_Status noch etwas wie I_Status_Val hätte wäre das großartig. Ich müsste somit nicht über die Texte mappen.

Viele Grüße und noch einmal: Super Job, Penjonp
Sascha
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: beejayf am 01 April 2022, 10:58:29
Hallo Penjonp,

lange nicht "gesprochen" ;-)

Auch bei meiner Batterie tritt seit einiger Zeit der neue Status 10 auf.

Nach meiner Beobachtung ist der Status 10 immer dann gesetzt, wenn die PV Leistung ca. dem Verbrauch im Haus entspricht und sich ein Laden nicht lohnt und auf der Batterie nicht unnötig herumgeritten wird. Also Ruhemodus passt gut.

Beste Grüße,

BeeJayF
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: aikawa24 am 18 April 2022, 12:54:44
Hallo,

ich habe folgendes Problem mit dem Modul:

ich lese den Wechselrichter mit dem Modul aus - Das klappt wunderbar
scheinbar blockiert es aber den Zugang trotz des Abfrageintervalls ständig

ich habe noch eine Wall box von CFOS die auch über Modbus TCP werte vom Inverter bekommen soll um eine Überschussladung Regel zu bedienen.

erst wenn ich im Fhem set inactive klicke bekommt die Wallbox eine Verbindung

ich dachte mir wenn der Abfrageintervall auf 30 steht ist dort ein Fenster in dem eine andere Verbindung aufgebaut werden kann da der Inverter ja nur eine Verbindung gleichzeitig zulässt.

gibt es eine Möglichkeit nach dem Abfragen den Status automatisch auf inactive zusetzen bis zur nächsten Abfrage ?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: macfly am 30 April 2022, 13:01:27
Hi, heute gabs folgende Meldung im Log:

2022.04.30 12:59:52 3: SolarEdge: MapConvert called from CreateDataObjects did not find 10 (10) in map 0:Aus, 1:Standby, 2:Init, 3:Laden, 4:Entladen, 5:Fehler, 6:Erhaltungsladen, 7:Idle
Ich habe mal bei SolarEdge ein Ticket aufgemacht mit der Bitte um Dokumentation.

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: macfly am 02 Juni 2022, 14:57:34
Hi, heute gabs folgende Meldung im Log:

2022.04.30 12:59:52 3: SolarEdge: MapConvert called from CreateDataObjects did not find 10 (10) in map 0:Aus, 1:Standby, 2:Init, 3:Laden, 4:Entladen, 5:Fehler, 6:Erhaltungsladen, 7:Idle
Ich habe mal bei SolarEdge ein Ticket aufgemacht mit der Bitte um Dokumentation.


grmbl.

Zitat
Sehr geehrter Herr Büscher,
das ist kein Register, das wir extern zur Verfügung stellen. Daher entschuldige ich mich, dass ich darüber keine Auskunft geben darf.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: macfly am 02 Juni 2022, 15:04:39
so, ich hätte die nächste Herausforderung.

Ich würde gerne E176 (Battery 1 Lifetime Export Energy Counter) sowie E17A (Battery 1 Lifetime Import Energy Counter) jeweils vom Typ UInt64 auswerten.

mein erster Versuch:

    "h57718" => {     # E176 (F576) 2R Battery 1 Lifetime Export Energy Counter UInt64
        'len'     => '4', 
        'reading' => 'Battery_1_Exported_WH',
        'unpack'  => 'aaaaaaaa',
        'expr' => 'unpack("Q>", $val[6].$val[7].$val[4].$val[5].$val[2].$val[3].$val[0].$val[1])',
    },
    "h57722" => {     # E17A (F57A) 2R Battery 1 Lifetime Import Energy Counter UInt64
        'len'     => '4', 
        'reading' => 'Battery_1_Imported_WH',
        'unpack'  => 'aaaaaaaa',
        'expr' => 'unpack("Q>", $val[6].$val[7].$val[4].$val[5].$val[2].$val[3].$val[0].$val[1])',
    },

liefert zwar Ergebnisse, die halbwegs plausibel aussehen, allerdings werden die Werte öfter auf 0 gesetzt.

Anbei mal ein Screenshot


Im unteren Diagramm sieht man diese beiden Werte, im oberen Diagramm in blau die Ladung und in grün die Entladung. beide Kurven scheinen zu korrelieren, die Einheit scheint auch zu stimmen, allerdings wurden die "Lifetime Counter" um 14:05 und um 14:46 auf 0 gesetzt. Jemand eine Idee, wie das kann oder eine Idee als Workaround?


Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 24 August 2022, 16:42:59
Hallo zusammen,

aktuell beschäftige ich mich auch mit dem Modul.
Allerdings habe ich seltsame Reading... Was mache ich falsch ?


Internals:
   DEF        1 30 192.168.2.186:1502 TCP
   DeviceName 192.168.2.186:1502
   EXPECT     response
   FD         175
   FUUID      63039695-f33f-2b59-4e59-bf0939f79368f9e1
   IODev      SolarEdge
   Interval   30
   LASTOPEN   1661349110.31184
   LeadingZeros 1
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.4.04 - 17.7.2021
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         987
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 3
   eventCount 5885
   nextOpenDelay 60
   nextQueueRun 1661351961.05983
   nextTimeout 1661351962.05576
   scanOAdr   16
   scanOEnd   16384
   scanOLen   1
   scanOStart 1
   scanOType  h
   FRAME:
   QUEUE:
     HASH(0x53b1f90)
     HASH(0x5648e10)
     HASH(0x583aff8)
     HASH(0x5710bb8)
     HASH(0x585f070)
     HASH(0x4b0a7a8)
     HASH(0x585bb80)
     HASH(0x56a7548)
     HASH(0x583ab18)
     HASH(0x53ad678)
     HASH(0x56b8c98)
     HASH(0x52c5eb8)
     HASH(0x538a548)
     HASH(0x5650170)
     HASH(0x5409e90)
     HASH(0x5272d68)
     HASH(0x5645088)
     HASH(0x56a65b8)
     HASH(0x583cd70)
     HASH(0x4c7bf80)
     HASH(0x5273770)
     HASH(0x42e6738)
     HASH(0x4c25b58)
     HASH(0x56568e0)
     HASH(0x4bfbcd0)
     HASH(0x529beb8)
     HASH(0x53005d8)
     HASH(0x5389f90)
     HASH(0x4c253b8)
     HASH(0x56507c0)
     HASH(0x52c6398)
     HASH(0x527d508)
     HASH(0x54ea928)
     HASH(0x5389c18)
     HASH(0x5643b20)
     HASH(0x538a620)
     HASH(0x4c9c938)
     HASH(0x4b147d8)
     HASH(0x583ccb0)
     HASH(0x5659798)
     HASH(0x583dc78)
     HASH(0x563c838)
     HASH(0x4bf06f0)
   READ:
     BUFFER     
   READINGS:
     2022-08-24 16:39:02   scan-h00001     28243
     2022-08-24 16:39:03   scan-h00002     1
     2022-08-24 16:39:03   scan-h00003     65
     2022-08-24 16:39:03   scan-h00004     21359
     2022-08-24 16:39:03   scan-h00005     27745
     2022-08-24 16:39:03   scan-h00006     29253
     2022-08-24 16:39:03   scan-h00007     25703
     2022-08-24 16:39:03   scan-h00008     25888
     2022-08-24 16:39:03   scan-h00009     0
     2022-08-24 16:39:07   scan-h00010     0
     2022-08-24 16:39:07   scan-h00011     0
     2022-08-24 16:39:07   scan-h00012     0
     2022-08-24 16:39:08   scan-h00013     0
     2022-08-24 16:39:08   scan-h00014     0
     2022-08-24 16:39:08   scan-h00015     0
     2022-08-24 16:39:08   scan-h00016     0
     2022-08-24 16:39:08   scan-h00017     0
     2022-08-24 16:39:08   scan-h00018     0
     2022-08-24 16:39:08   scan-h00019     0
     2022-08-24 16:39:09   scan-h00020     21317
     2022-08-24 16:39:09   scan-h00021     14155
     2022-08-24 16:39:09   scan-h00022     11602
     2022-08-24 16:39:09   scan-h00023     22355
     2022-08-24 16:39:09   scan-h00024     13368
     2022-08-24 16:39:09   scan-h00025     16965
     2022-08-24 16:39:09   scan-h00026     20020
     2022-08-24 16:39:13   scan-h00027     0
     2022-08-24 16:39:13   scan-h00028     0
     2022-08-24 16:39:13   scan-h00029     0
     2022-08-24 16:39:13   scan-h00030     0
     2022-08-24 16:39:13   scan-h00031     0
     2022-08-24 16:39:13   scan-h00032     0
     2022-08-24 16:39:13   scan-h00033     0
     2022-08-24 16:39:13   scan-h00034     0
     2022-08-24 16:39:14   scan-h00035     0
     2022-08-24 16:39:14   scan-h00036     0
     2022-08-24 16:39:14   scan-h00037     0
     2022-08-24 16:39:14   scan-h00038     0
     2022-08-24 16:39:14   scan-h00039     0
     2022-08-24 16:39:14   scan-h00040     0
     2022-08-24 16:39:14   scan-h00041     0
     2022-08-24 16:39:14   scan-h00042     0
     2022-08-24 16:39:15   scan-h00043     0
     2022-08-24 16:39:15   scan-h00044     12336
     2022-08-24 16:39:15   scan-h00045     12340
     2022-08-24 16:39:15   scan-h00046     11824
     2022-08-24 16:39:15   scan-h00047     12337
     2022-08-24 16:39:15   scan-h00048     13870
     2022-08-24 16:39:15   scan-h00049     12337
     2022-08-24 16:39:15   scan-h00050     12596
     2022-08-24 16:39:16   scan-h00051     0
     2022-08-24 16:39:16   scan-h00052     14149
     2022-08-24 16:39:16   scan-h00053     12342
     2022-08-24 16:39:16   scan-h00054     13624
     2022-08-24 16:39:16   scan-h00055     17976
     2022-08-24 16:39:16   scan-h00056     0
     2022-08-24 16:39:16   scan-h00057     0
     2022-08-24 16:39:16   scan-h00058     0
     2022-08-24 16:38:48   scan-h00059     0
     2022-08-24 16:38:48   scan-h00060     0
     2022-08-24 16:38:48   scan-h00061     0
     2022-08-24 16:38:48   scan-h00062     0
     2022-08-24 16:38:48   scan-h00063     0
     2022-08-24 16:38:48   scan-h00064     0
     2022-08-24 16:38:48   scan-h00065     0
     2022-08-24 16:38:48   scan-h00066     0
     2022-08-24 16:38:49   scan-h00067     0
     2022-08-24 16:38:49   scan-h00068     1
     2022-08-24 16:38:49   scan-h00069     103
     2022-08-24 16:38:49   scan-h00070     50
     2022-08-24 16:38:49   scan-h00071     899
     2022-08-24 16:38:17   scan-h00072     265
     2022-08-24 16:35:42   scan-h00073     283
     2022-08-24 16:38:49   scan-h00074     298
     2022-08-24 16:38:17   scan-h00075     65534
     2022-08-24 16:35:42   scan-h00076     4088
     2022-08-24 16:38:49   scan-h00077     4074
     2022-08-24 16:36:10   scan-h00078     4084
     2022-08-24 16:38:17   scan-h00079     2363
     2022-08-24 16:38:49   scan-h00080     2355
     2022-08-24 16:36:11   scan-h00081     2359
     2022-08-24 16:38:17   scan-h00082     65535
     2022-08-24 16:38:50   scan-h00083     21080
     2022-08-24 16:36:11   scan-h00084     65535
     2022-08-24 16:38:17   scan-h00085     4996
     2022-08-24 16:38:50   scan-h00086     65534
     2022-08-24 16:37:49   scan-h00087     18367
     2022-08-24 16:38:17   scan-h00088     65535
     2022-08-24 16:38:50   scan-h00089     48836
     2022-08-24 16:37:49   scan-h00090     65534
     2022-08-24 16:38:17   scan-h00091     55595
     2022-08-24 16:38:50   scan-h00092     65534
     2022-08-24 16:38:21   scan-h00093     2
     2022-08-24 16:36:12   scan-h00094     3225
     2022-08-24 16:38:50   scan-h00095     0
     2022-08-24 16:37:49   scan-h00096     24866
     2022-08-24 16:36:12   scan-h00097     65532
     2022-08-24 16:38:50   scan-h00098     7462
     2022-08-24 16:37:50   scan-h00099     65535
     2022-08-24 16:36:12   scan-h00100     19979
     2022-08-24 16:38:50   scan-h00101     65535
     2022-08-24 15:54:33   scan-h00102     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 15:54:38   scan-h00103     hex=150e, string=.., s=3605, s>=5390, S=3605, S>=5390
     2022-08-24 15:54:39   scan-h00104     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 15:54:40   scan-h00105     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 15:54:41   scan-h00106     hex=fffe, string=.., s=-257, s>=-2, S=65279, S>=65534
     2022-08-24 15:54:42   scan-h00107     hex=0005, string=.., s=1280, s>=5, S=1280, S>=5
     2022-08-24 15:54:45   scan-h00108     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:54:46   scan-h00109     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 15:54:50   scan-h00110     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 15:54:51   scan-h00111     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 15:54:52   scan-h00112     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 15:54:53   scan-h00113     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:54:54   scan-h00114     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:54:55   scan-h00115     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 15:54:59   scan-h00116     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 15:55:03   scan-h00117     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 15:55:03   scan-h00118     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 15:55:04   scan-h00119     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:05   scan-h00120     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:06   scan-h00121     hex=0001, string=.., s=256, s>=1, S=256, S>=1
     2022-08-24 15:55:07   scan-h00122     hex=0041, string=.A, s=16640, s>=65, S=16640, S>=65
     2022-08-24 15:55:08   scan-h00123     hex=536f, string=So, s=28499, s>=21359, S=28499, S>=21359
     2022-08-24 15:55:11   scan-h00124     hex=6c61, string=la, s=24940, s>=27745, S=24940, S>=27745
     2022-08-24 15:55:12   scan-h00125     hex=7245, string=rE, s=17778, s>=29253, S=17778, S>=29253
     2022-08-24 15:55:16   scan-h00126     hex=6467, string=dg, s=26468, s>=25703, S=26468, S>=25703
     2022-08-24 15:55:17   scan-h00127     hex=6500, string=e., s=101, s>=25856, S=101, S>=25856
     2022-08-24 15:55:18   scan-h00128     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:19   scan-h00129     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:20   scan-h00130     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:21   scan-h00131     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:25   scan-h00132     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:26   scan-h00133     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:29   scan-h00134     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:30   scan-h00135     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:31   scan-h00136     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:32   scan-h00137     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:33   scan-h00138     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:34   scan-h00139     hex=5345, string=SE, s=17747, s>=21317, S=17747, S>=21317
     2022-08-24 15:55:38   scan-h00140     hex=2d4d, string=-M, s=19757, s>=11597, S=19757, S>=11597
     2022-08-24 15:55:38   scan-h00141     hex=5452, string=TR, s=21076, s>=21586, S=21076, S>=21586
     2022-08-24 15:55:42   scan-h00142     hex=2d33, string=-3, s=13101, s>=11571, S=13101, S>=11571
     2022-08-24 15:55:43   scan-h00143     hex=592d, string=Y-, s=11609, s>=22829, S=11609, S>=22829
     2022-08-24 15:55:44   scan-h00144     hex=3430, string=40, s=12340, s>=13360, S=12340, S>=13360
     2022-08-24 15:55:45   scan-h00145     hex=3056, string=0V, s=22064, s>=12374, S=22064, S>=12374
     2022-08-24 15:55:46   scan-h00146     hex=2d41, string=-A, s=16685, s>=11585, S=16685, S>=11585
     2022-08-24 15:55:47   scan-h00147     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:50   scan-h00148     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:51   scan-h00149     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:55   scan-h00150     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:56   scan-h00151     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:57   scan-h00152     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:58   scan-h00153     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:55:59   scan-h00154     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:00   scan-h00155     hex=4578, string=Ex, s=30789, s>=17784, S=30789, S>=17784
     2022-08-24 15:56:03   scan-h00156     hex=706f, string=po, s=28528, s>=28783, S=28528, S>=28783
     2022-08-24 15:56:05   scan-h00157     hex=7274, string=rt, s=29810, s>=29300, S=29810, S>=29300
     2022-08-24 15:56:08   scan-h00158     hex=2b49, string=+I, s=18731, s>=11081, S=18731, S>=11081
     2022-08-24 15:56:09   scan-h00159     hex=6d70, string=mp, s=28781, s>=28016, S=28781, S>=28016
     2022-08-24 15:56:10   scan-h00160     hex=6f72, string=or, s=29295, s>=28530, S=29295, S>=28530
     2022-08-24 15:56:11   scan-h00161     hex=7400, string=t., s=116, s>=29696, S=116, S>=29696
     2022-08-24 15:56:12   scan-h00162     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:13   scan-h00163     hex=3130, string=10, s=12337, s>=12592, S=12337, S>=12592
     2022-08-24 15:56:17   scan-h00164     hex=3737, string=77, s=14135, s>=14135, S=14135, S>=14135
     2022-08-24 15:56:21   scan-h00165     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:22   scan-h00166     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:23   scan-h00167     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:24   scan-h00168     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:25   scan-h00169     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:26   scan-h00170     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:30   scan-h00171     hex=3630, string=60, s=12342, s>=13872, S=12342, S>=13872
     2022-08-24 15:56:31   scan-h00172     hex=3637, string=67, s=14134, s>=13879, S=14134, S>=13879
     2022-08-24 15:56:34   scan-h00173     hex=3537, string=57, s=14133, s>=13623, S=14133, S>=13623
     2022-08-24 15:56:35   scan-h00174     hex=3238, string=28, s=14386, s>=12856, S=14386, S>=12856
     2022-08-24 15:56:36   scan-h00175     hex=3500, string=5., s=53, s>=13568, S=53, S>=13568
     2022-08-24 15:56:37   scan-h00176     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:38   scan-h00177     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:39   scan-h00178     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:43   scan-h00179     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:44   scan-h00180     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:47   scan-h00181     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:48   scan-h00182     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:49   scan-h00183     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:50   scan-h00184     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:51   scan-h00185     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:52   scan-h00186     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:56:56   scan-h00187     hex=0002, string=.., s=512, s>=2, S=512, S>=2
     2022-08-24 15:56:57   scan-h00188     hex=00cb, string=.., s=-13568, s>=203, S=51968, S>=203
     2022-08-24 15:57:00   scan-h00189     hex=0069, string=.i, s=26880, s>=105, S=26880, S>=105
     2022-08-24 15:57:01   scan-h00190     hex=010f, string=.., s=3841, s>=271, S=3841, S>=271
     2022-08-24 15:57:03   scan-h00191     hex=004f, string=.O, s=20224, s>=79, S=20224, S>=79
     2022-08-24 15:57:04   scan-h00192     hex=0065, string=.e, s=25856, s>=101, S=25856, S>=101
     2022-08-24 15:57:05   scan-h00193     hex=005b, string=.[, s=23296, s>=91, S=23296, S>=91
     2022-08-24 15:57:06   scan-h00194     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 15:57:09   scan-h00195     hex=5e2a, string=^*, s=10846, s>=24106, S=10846, S>=24106
     2022-08-24 15:57:10   scan-h00196     hex=5e2a, string=^*, s=10846, s>=24106, S=10846, S>=24106
     2022-08-24 15:57:13   scan-h00197     hex=5ddd, string=]., s=-8867, s>=24029, S=56669, S>=24029
     2022-08-24 15:57:14   scan-h00198     hex=5d7f, string=]., s=32605, s>=23935, S=32605, S>=23935
     2022-08-24 15:57:15   scan-h00199     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:57:16   scan-h00200     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:57:17   scan-h00201     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:57:18   scan-h00202     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:57:22   scan-h00203     hex=fffe, string=.., s=-257, s>=-2, S=65279, S>=65534
     2022-08-24 15:57:26   scan-h00204     hex=1388, string=.., s=-30701, s>=5000, S=34835, S>=5000
     2022-08-24 15:57:27   scan-h00205     hex=fffe, string=.., s=-257, s>=-2, S=65279, S>=65534
     2022-08-24 15:57:28   scan-h00206     hex=18e7, string=.., s=-6376, s>=6375, S=59160, S>=6375
     2022-08-24 15:57:29   scan-h00207     hex=0716, string=.., s=5639, s>=1814, S=5639, S>=1814
     2022-08-24 15:57:30   scan-h00208     hex=098f, string=.., s=-28919, s>=2447, S=36617, S>=2447
     2022-08-24 15:57:31   scan-h00209     hex=084b, string=.K, s=19208, s>=2123, S=19208, S>=2123
     2022-08-24 15:57:36   scan-h00210     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:57:39   scan-h00211     hex=196d, string=.m, s=27929, s>=6509, S=27929, S>=6509
     2022-08-24 15:57:40   scan-h00212     hex=0765, string=.e, s=25863, s>=1893, S=25863, S>=1893
     2022-08-24 15:57:41   scan-h00213     hex=09ad, string=.., s=-21239, s>=2477, S=44297, S>=2477
     2022-08-24 15:57:42   scan-h00214     hex=088a, string=.., s=-30200, s>=2186, S=35336, S>=2186
     2022-08-24 15:57:43   scan-h00215     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:57:44   scan-h00216     hex=0507, string=.., s=1797, s>=1287, S=1797, S>=1287
     2022-08-24 15:57:48   scan-h00217     hex=0212, string=.., s=4610, s>=530, S=4610, S>=530
     2022-08-24 15:57:53   scan-h00218     hex=00ef, string=.., s=-4352, s>=239, S=61184, S>=239
     2022-08-24 15:57:54   scan-h00219     hex=0214, string=.., s=5122, s>=532, S=5122, S>=532
     2022-08-24 15:57:55   scan-h00220     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:57:56   scan-h00221     hex=da16, string=.., s=5850, s>=-9706, S=5850, S>=55830
     2022-08-24 15:57:57   scan-h00222     hex=dac6, string=.., s=-14630, s>=-9530, S=50906, S>=56006
     2022-08-24 15:58:01   scan-h00223     hex=d94b, string=.K, s=19417, s>=-9909, S=19417, S>=55627
     2022-08-24 15:58:01   scan-h00224     hex=da1c, string=.., s=7386, s>=-9700, S=7386, S>=55836
     2022-08-24 15:58:02   scan-h00225     hex=fffe, string=.., s=-257, s>=-2, S=65279, S>=65534
     2022-08-24 15:58:05   scan-h00226     hex=0001, string=.., s=256, s>=1, S=256, S>=1
     2022-08-24 15:58:06   scan-h00227     hex=bc62, string=.b, s=25276, s>=-17310, S=25276, S>=48226
     2022-08-24 15:58:07   scan-h00228     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:08   scan-h00229     hex=8480, string=.., s=-32636, s>=-31616, S=32900, S>=33920
     2022-08-24 15:58:09   scan-h00230     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:10   scan-h00231     hex=aae0, string=.., s=-8022, s>=-21792, S=57514, S>=43744
     2022-08-24 15:58:14   scan-h00232     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:15   scan-h00233     hex=9267, string=.g, s=26514, s>=-28057, S=26514, S>=37479
     2022-08-24 15:58:18   scan-h00234     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:19   scan-h00235     hex=1dc7, string=.., s=-14563, s>=7623, S=50973, S>=7623
     2022-08-24 15:58:20   scan-h00236     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:21   scan-h00237     hex=0b7d, string=.}, s=32011, s>=2941, S=32011, S>=2941
     2022-08-24 15:58:23   scan-h00238     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:24   scan-h00239     hex=0ba6, string=.., s=-23029, s>=2982, S=42507, S>=2982
     2022-08-24 15:58:28   scan-h00240     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:31   scan-h00241     hex=0c04, string=.., s=1036, s>=3076, S=1036, S>=3076
     2022-08-24 15:58:32   scan-h00242     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:33   scan-h00243     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:53   scan-h00244     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:53   scan-h00245     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:54   scan-h00246     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:55   scan-h00247     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:56   scan-h00248     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:57   scan-h00249     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:58   scan-h00250     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:58:59   scan-h00251     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:03   scan-h00252     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:07   scan-h00253     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:08   scan-h00254     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:08   scan-h00255     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:09   scan-h00256     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:10   scan-h00257     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:11   scan-h00258     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:12   scan-h00259     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 15:59:16   scan-h00260     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:20   scan-h00261     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:21   scan-h00262     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:22   scan-h00263     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:23   scan-h00264     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:24   scan-h00265     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:25   scan-h00266     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:29   scan-h00267     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:32   scan-h00268     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:33   scan-h00269     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:34   scan-h00270     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:35   scan-h00271     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:36   scan-h00272     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:37   scan-h00273     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:38   scan-h00274     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:42   scan-h00275     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:46   scan-h00276     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:47   scan-h00277     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:48   scan-h00278     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:49   scan-h00279     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:50   scan-h00280     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:51   scan-h00281     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:52   scan-h00282     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:55   scan-h00283     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:58   scan-h00284     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 15:59:59   scan-h00285     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:00   scan-h00286     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:01   scan-h00287     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:02   scan-h00288     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:03   scan-h00289     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:05   scan-h00290     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:08   scan-h00291     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:13   scan-h00292     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:00:13   scan-h00293     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:14   scan-h00294     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:15   scan-h00295     hex=02bd, string=.., s=-17150, s>=701, S=48386, S>=701
     2022-08-24 16:00:16   scan-h00296     hex=0099, string=.., s=-26368, s>=153, S=39168, S>=153
     2022-08-24 16:00:17   scan-h00297     hex=0002, string=.., s=512, s>=2, S=512, S>=2
     2022-08-24 16:00:21   scan-h00298     hex=0001, string=.., s=256, s>=1, S=256, S>=1
     2022-08-24 16:00:25   scan-h00299     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:00:26   scan-h00300     hex=0001, string=.., s=256, s>=1, S=256, S>=1
     2022-08-24 16:00:27   scan-h00301     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:28   scan-h00302     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:29   scan-h00303     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:00:30   scan-h00304     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:00:31   scan-h00305     hex=02b7, string=.., s=-18686, s>=695, S=46850, S>=695
     2022-08-24 16:00:34   scan-h00306     hex=02c2, string=.., s=-15870, s>=706, S=49666, S>=706
     2022-08-24 16:00:38   scan-h00307     hex=ff83, string=.., s=-31745, s>=-125, S=33791, S>=65411
     2022-08-24 16:00:39   scan-h00308     hex=0062, string=.b, s=25088, s>=98, S=25088, S>=98
     2022-08-24 16:00:40   scan-h00309     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:00:41   scan-h00310     hex=105b, string=.[, s=23312, s>=4187, S=23312, S>=4187
     2022-08-24 16:00:42   scan-h00311     hex=0974, string=.t, s=29705, s>=2420, S=29705, S>=2420
     2022-08-24 16:00:43   scan-h00312     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:00:44   scan-h00313     hex=c338, string=.8, s=14531, s>=-15560, S=14531, S>=49976
     2022-08-24 16:00:47   scan-h00314     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:00:51   scan-h00315     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:00:52   scan-h00316     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:00:54   scan-h00317     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:00:55   scan-h00318     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:00:55   scan-h00319     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:00:57   scan-h00320     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:00   scan-h00321     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:04   scan-h00322     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:05   scan-h00323     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:06   scan-h00324     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:07   scan-h00325     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:08   scan-h00326     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:09   scan-h00327     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:10   scan-h00328     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:13   scan-h00329     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:17   scan-h00330     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:01:18   scan-h00331     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:01:19   scan-h00332     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:01:20   scan-h00333     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:01:21   scan-h00334     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:01:22   scan-h00335     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:01:23   scan-h00336     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:01:26   scan-h00337     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:01:31   scan-h00338     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:01:32   scan-h00339     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:33   scan-h00340     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:34   scan-h00341     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:35   scan-h00342     hex=0978, string=.x, s=30729, s>=2424, S=30729, S>=2424
     2022-08-24 16:01:36   scan-h00343     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:39   scan-h00344     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:43   scan-h00345     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:44   scan-h00346     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:45   scan-h00347     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:46   scan-h00348     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:47   scan-h00349     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:48   scan-h00350     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:49   scan-h00351     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:53   scan-h00352     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:57   scan-h00353     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:57   scan-h00354     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:58   scan-h00355     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:01:59   scan-h00356     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:00   scan-h00357     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:01   scan-h00358     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:02   scan-h00359     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:02:06   scan-h00360     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:02:09   scan-h00361     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:02:10   scan-h00362     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:11   scan-h00363     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:12   scan-h00364     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:13   scan-h00365     hex=0969, string=.i, s=26889, s>=2409, S=26889, S>=2409
     2022-08-24 16:02:14   scan-h00366     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:15   scan-h00367     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:19   scan-h00368     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:23   scan-h00369     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:24   scan-h00370     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:25   scan-h00371     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:26   scan-h00372     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:27   scan-h00373     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:28   scan-h00374     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:35   scan-h00375     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:35   scan-h00376     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:36   scan-h00377     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:37   scan-h00378     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:38   scan-h00379     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:39   scan-h00380     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:40   scan-h00381     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:41   scan-h00382     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:02:45   scan-h00383     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:02:48   scan-h00384     hex=8000, string=.., s=128, s>=-32768, S=128, S>=32768
     2022-08-24 16:02:49   scan-h00385     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:50   scan-h00386     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:51   scan-h00387     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:52   scan-h00388     hex=0964, string=.d, s=25609, s>=2404, S=25609, S>=2404
     2022-08-24 16:02:53   scan-h00389     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:02:54   scan-h00390     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:02   scan-h00391     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:02   scan-h00392     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:03   scan-h00393     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:04   scan-h00394     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:05   scan-h00395     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:06   scan-h00396     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:07   scan-h00397     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:11   scan-h00398     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:15   scan-h00399     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:15   scan-h00400     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:16   scan-h00401     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:17   scan-h00402     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:18   scan-h00403     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:19   scan-h00404     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:20   scan-h00405     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:24   scan-h00406     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:28   scan-h00407     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:29   scan-h00408     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:30   scan-h00409     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:03:31   scan-h00410     hex=fffd, string=.., s=-513, s>=-3, S=65023, S>=65533
     2022-08-24 16:03:32   scan-h00411     hex=0001, string=.., s=256, s>=1, S=256, S>=1
     2022-08-24 16:03:33   scan-h00412     hex=fffe, string=.., s=-257, s>=-2, S=65279, S>=65534
     2022-08-24 16:03:37   scan-h00413     hex=0001, string=.., s=256, s>=1, S=256, S>=1
     2022-08-24 16:03:41   scan-h00414     hex=0001, string=.., s=256, s>=1, S=256, S>=1
     2022-08-24 16:03:42   scan-h00415     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:43   scan-h00416     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:44   scan-h00417     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:45   scan-h00418     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:46   scan-h00419     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:51   scan-h00420     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:54   scan-h00421     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:55   scan-h00422     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:56   scan-h00423     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:57   scan-h00424     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:58   scan-h00425     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:03:59   scan-h00426     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:03   scan-h00427     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:07   scan-h00428     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:08   scan-h00429     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:09   scan-h00430     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:10   scan-h00431     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:11   scan-h00432     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:12   scan-h00433     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:16   scan-h00434     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:17   scan-h00435     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:20   scan-h00436     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:21   scan-h00437     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:22   scan-h00438     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:23   scan-h00439     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:24   scan-h00440     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:25   scan-h00441     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:29   scan-h00442     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:30   scan-h00443     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:34   scan-h00444     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:35   scan-h00445     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:36   scan-h00446     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:37   scan-h00447     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:38   scan-h00448     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:42   scan-h00449     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:04:43   scan-h00450     hex=02be, string=.., s=-16894, s>=702, S=48642, S>=702
     2022-08-24 16:04:46   scan-h00451     hex=0032, string=.2, s=12800, s>=50, S=12800, S>=50
     2022-08-24 16:04:47   scan-h00452     hex=1b58, string=.X, s=22555, s>=7000, S=22555, S>=7000
     2022-08-24 16:04:48   scan-h00453     hex=15e0, string=.., s=-8171, s>=5600, S=57365, S>=5600
     2022-08-24 16:04:49   scan-h00454     hex=0050, string=.P, s=20480, s>=80, S=20480, S>=80
     2022-08-24 16:04:50   scan-h00455     hex=15e0, string=.., s=-8171, s>=5600, S=57365, S>=5600
     2022-08-24 16:04:51   scan-h00456     hex=0050, string=.P, s=20480, s>=80, S=20480, S>=80
     2022-08-24 16:04:55   scan-h00457     hex=1b58, string=.X, s=22555, s>=7000, S=22555, S>=7000
     2022-08-24 16:04:56   scan-h00458     hex=1068, string=.h, s=26640, s>=4200, S=26640, S>=4200
     2022-08-24 16:05:02   scan-h00459     hex=1068, string=.h, s=26640, s>=4200, S=26640, S>=4200
     2022-08-24 16:05:05   scan-h00460     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:08   scan-h00461     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:09   scan-h00462     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:13   scan-h00463     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:14   scan-h00464     hex=08fc, string=.., s=-1016, s>=2300, S=64520, S>=2300
     2022-08-24 16:05:15   scan-h00465     hex=09e2, string=.., s=-7671, s>=2530, S=57865, S>=2530
     2022-08-24 16:05:16   scan-h00466     hex=07e7, string=.., s=-6393, s>=2023, S=59143, S>=2023
     2022-08-24 16:05:17   scan-h00467     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:21   scan-h00468     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:22   scan-h00469     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:26   scan-h00470     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:05:27   scan-h00471     hex=0001, string=.., s=256, s>=1, S=256, S>=1
     2022-08-24 16:05:28   scan-h00472     hex=0002, string=.., s=512, s>=2, S=512, S>=2
     2022-08-24 16:05:29   scan-h00473     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:54   scan-h00475     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:54   scan-h00476     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:54   scan-h00477     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:55   scan-h00478     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:55   scan-h00479     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:56   scan-h00480     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:05:57   scan-h00481     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:06:05   scan-h00482     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:06:22   scan-h00483     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:06:23   scan-h00484     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:06:23   scan-h00485     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:06:23   scan-h00486     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:06:23   scan-h00487     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:06:27   scan-h00488     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:06:27   scan-h00489     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:06:28   scan-h00490     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:07:00   scan-h00492     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:07:00   scan-h00493     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:07:01   scan-h00494     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:07:01   scan-h00495     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:07:25   scan-h00497     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:07:26   scan-h00498     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:07:26   scan-h00499     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:07:26   scan-h00500     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:07:27   scan-h00501     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:07:27   scan-h00502     hex=02bf, string=.., s=-16638, s>=703, S=48898, S>=703
     2022-08-24 16:07:28   scan-h00503     hex=0011, string=.., s=4352, s>=17, S=4352, S>=17
     2022-08-24 16:07:37   scan-h00504     hex=0001, string=.., s=256, s>=1, S=256, S>=1
     2022-08-24 16:07:55   scan-h00506     hex=2134, string=!4, s=13345, s>=8500, S=13345, S>=8500
     2022-08-24 16:07:58   scan-h00507     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:07:59   scan-h00508     hex=c3b3, string=.., s=-19517, s>=-15437, S=46019, S>=50099
     2022-08-24 16:07:59   scan-h00509     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:07:59   scan-h00510     hex=b98c, string=.., s=-29511, s>=-18036, S=36025, S>=47500
     2022-08-24 16:08:04   scan-h00511     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:08:25   scan-h00512     hex=003c, string=.<, s=15360, s>=60, S=15360, S>=60
     2022-08-24 16:08:26   scan-h00513     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:08:26   scan-h00514     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:08:29   scan-h00515     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:08:30   scan-h00516     hex=0258, string=.X, s=22530, s>=600, S=22530, S>=600
     2022-08-24 16:08:30   scan-h00517     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:08:30   scan-h00518     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:08:31   scan-h00519     hex=fffe, string=.., s=-257, s>=-2, S=65279, S>=65534
     2022-08-24 16:08:31   scan-h00520     hex=fffd, string=.., s=-513, s>=-3, S=65023, S>=65533
     2022-08-24 16:08:32   scan-h00521     hex=02c0, string=.., s=-16382, s>=704, S=49154, S>=704
     2022-08-24 16:08:57   scan-h00522     hex=0041, string=.A, s=16640, s>=65, S=16640, S>=65
     2022-08-24 16:08:57   scan-h00523     hex=0000, string=.., s=0, s>=0, S=0, S>=0
     2022-08-24 16:08:57   scan-h00524     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:08:58   scan-h00525     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:08:58   scan-h00526     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:08:59   scan-h00527     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:09:00   scan-h00528     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:09:04   scan-h00529     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:09:26   scan-h00530     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535
     2022-08-24 16:09:26   scan-h00531     hex=ffff, string=.., s=-1, s>=-1, S=65535, S>=65535

&
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 24 August 2022, 19:21:52
@Mellowback

Hast du das Modul so eingebunden ?!

defmod SEdge SolarEdge Modbus-id 60 ip:port RTU

Oder hast du alle Register definiert und abgefragt?!

Pejonp

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 24 August 2022, 21:03:17
Habe folgenden Befehl genutzt:


define SolarEdge ModbusAttr 1 30 192.168.2.186:1502 TCP

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 24 August 2022, 23:53:44
@Mellowback

das hast du aber nicht das fertige SolarEdge_Modul genommen, sondern dir etwas eigenes gebaut.

Nimm mal bitte dieses Modul von hier: https://github.com/pejonp/FHEM---SolarEdge

einfach diesen Befehl im Browser in der Befehlszeile in fhem absetzten:

Code: [Auswählen]

update all https://raw.githubusercontent.com/pejonp/FHEM---SolarEdge/master/controls_SolarEdge.txt


Die  Wiki-Seite zu SE10k habe ich nicht gemacht und ist eigentlich überholt, da es das 98_SolarEdge.pm Modul gibt.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 09:49:43
Hallo Pejonp,

Dank für dein Feedback.
Gibt es eine Anleitung Befehl für Befehl ?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 August 2022, 13:11:26
@Mellowback

nur dieseZeile
defmod SEdge SolarEdge Modbus-id 60 ip:port RTU

den Rest macht das Modul.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 13:37:44
da kommt folgende Meldung: Cannot load module SolarEdge
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 August 2022, 13:38:48
@Mellowback

Antwort #275 durchlesen und auch machen. FHEm neu starten.

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 13:44:10
kommt eine neue Fehlermeldung: Cannot load module SolarEdge
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 14:32:49
Hab leider keine Idee warum er das Modul nicht lädt.
Habe schon alles versucht, neustart, Datei Manuel im Fhem Ordner hinterlegen etc...
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 August 2022, 15:46:05
Zugriffsrechte im verzeichnis kontrolliert. Nicht das die 89_SolarEdge root gehört.

Pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 16:06:18
rechte passen, bzw. habe ich auf "Jeder" umgestellt
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 August 2022, 16:32:50
Rechte sollte auf fhem stehen!
Schreibweise beachten … groß/klein Schreibung ?!
Alle erforderlichen Perl/ CPAN Module installiert ?!
Pc/Raspi mal neu gestartet ?!
fhem auf dem aktuellen Stand ?!
Boote fhem mal neu und hänge den log hier an.

Pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 August 2022, 16:33:38
@Mellowback

Unter was für ein BS läuft dein FHEM ?

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 19:38:47
hier die Infos zum BS

PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: macfly am 25 August 2022, 19:44:00
kommt eine neue Fehlermeldung: Cannot load module SolarEdge

Ich will mich jetzt nicht dazwischendrängen, aber hast du mal das logfile angeschaut, wenn du obige Fehlermeldung erzeugst? definier das device mal neu und paste hier den auszug aus deinem fhem logfile.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 20:07:35
hier das log bei ausführen des Befehls:


2022.08.25 20:06:33 1 : reload: Error:Modul 98_SolarEdge deactivated:
 Can't locate Math/Round.pm in @INC (you may need to install the Math::Round module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM/lib) at ./FHEM/98_SolarEdge.pm line 69.
BEGIN failed--compilation aborted at ./FHEM/98_SolarEdge.pm line 69.
2022.08.25 20:06:33 0 : Can't locate Math/Round.pm in @INC (you may need to install the Math::Round module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM/lib) at ./FHEM/98_SolarEdge.pm line 69.
BEGIN failed--compilation aborted at ./FHEM/98_SolarEdge.pm line 69.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 August 2022, 20:19:07
@Mellowback

unter Linux nachfolgendes ausführen:

cpan install Math::Round

oder

apt-get install libmath-round-perl

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 20:30:10
leider immer noch gleiches problem:

2022.08.25 20:29:19 1 : PERL WARNING: Subroutine ExprMppt redefined at ./FHEM/98_SolarEdge.pm line 47.
2022.08.25 20:29:19 1 : PERL WARNING: Subroutine ExprMeter redefined at ./FHEM/98_SolarEdge.pm line 52.
2022.08.25 20:29:19 1 : reload: Error:Modul 98_SolarEdge deactivated:
 Can't locate Math/Round.pm in @INC (you may need to install the Math::Round module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM/lib) at ./FHEM/98_SolarEdge.pm line 69.
BEGIN failed--compilation aborted at ./FHEM/98_SolarEdge.pm line 69.
2022.08.25 20:29:19 0 : Can't locate Math/Round.pm in @INC (you may need to install the Math::Round module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.28.1 /usr/local/share/perl/5.28.1 /usr/lib/arm-linux-gnueabihf/perl5/5.28 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.28 /usr/share/perl/5.28 /usr/local/lib/site_perl /usr/lib/arm-linux-gnueabihf/perl-base ./FHEM/lib) at ./FHEM/98_SolarEdge.pm line 69.
BEGIN failed--compilation aborted at ./FHEM/98_SolarEdge.pm line 69.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 August 2022, 20:32:21
@Mellowback

Was hast du gemacht ?
Hast du FHEM bzw. den PC/Raspi neu gestartet ?

Häng doch mal dein Log an !

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 20:35:13
mit dem zweiten Befehl hat es funktioniert:

apt-get install libmath-round-perl

Leider kommt jetzt folgende Meldung:

Usage: define <name> SolarEdge <id> <interval>|slave|server|relay|passive [host:port] [RTU|ASCII|TCP] [to <relayMasterDevice>]
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 25 August 2022, 20:38:06
@Mellowback

Neustart gemacht ?!

so definiert ????

define SolarEdge SolarEdge 1 60 192.168.2.186:1502 TCP


wo ist der log ??

pejonp
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 25 August 2022, 20:43:38
define hat noch gefehlt :)

Muss ich jetzt noch
defmod SEdge SolarEdge Modbus-id 60 ip:port RTU

ergänzen ?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 29 August 2022, 21:44:30
Hallo zusammen,

was ist eigentlich im Befehl der Unterschied zwischen RTU und TCP ?

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: aikawa24 am 30 August 2022, 15:22:16
das RTU und TCP sind glaub ich zwei verschiedene Protokolle, bei mir läuft das mit TCP alles wunderbar
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: aikawa24 am 30 August 2022, 15:25:15
ich hab da ein anderes Problem was aber an dem Solaredge WR liegt

ich habe noch ein Victron System laufen welches über Modbus-TCP die Daten vom Solaredge holt und so die Verbindung blockiert.

gibt es die Möglichkeit die Verbindung alle 1000ms wieder aufzubauen und gleich danach wieder frei zugeben?
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: pejonp am 30 August 2022, 17:41:26
@aikawa24

schau mal hier, da wurde so etwas ähnliches beschrieben (https://forum.fhem.de/index.php/topic,75638.msg1230959.html#msg1230959). Vielleicht hilft es weiter.

Ansonsten hänge mal deine Konfig hier an oder auch im Modbus-Beitrag.

pejonp

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 16 September 2022, 18:14:10
Hallo zusammen,

kann mir jemand sagen welches Reading der Eigenverbrauch ist und welcher Wert die Einspeisung angibt ?



2022-09-16 18:06:57
Battery_1_Firmware
48V DCDC 2.2.91
2022-09-11 05:10:16
Battery_1_Instantaneous_Current_A
-3.40282346638529e+38
2022-09-16 18:06:57
Battery_1_Instantaneous_Power_W
0
2022-09-16 18:06:57
Battery_1_Instantaneous_Voltage_V
-3.40282346638529e+38
2022-09-16 18:06:57
Battery_1_Manufacturer_Name
NONE
2022-09-11 05:10:16
Battery_1_Max_Charge_Continues_Power_W
-3.40282346638529e+38
2022-09-16 18:06:57
Battery_1_Max_Charge_Peak_Power_W
-3.40282346638529e+38
2022-09-16 18:06:57
Battery_1_Max_Discharge_Peak_Power_W
-3.40282346638529e+38
2022-09-16 18:06:57
Battery_1_Model
NONE
2022-09-11 05:10:16
Battery_1_Rated_Energy_WH
-3.40282346638529e+38
2022-09-16 18:06:57
Battery_1_SOE
-3.40282346638529e+38
2022-09-16 18:06:57
Battery_1_SOH
-3.40282346638529e+38
2022-09-16 18:06:57
Battery_1_SerialNumber
7E0658F8
2022-09-11 05:10:56
Battery_1_Status
Aus
2022-09-16 18:06:57
Block_AC_Current
5 1257 418 419 418 -2
2022-09-16 18:06:56
Block_AC_Energy_WH
5 993235 0 0 0 0
2022-09-16 18:06:56
Block_AC_Frequency
5 5003 -2 0 0 0
2022-09-16 18:06:56
Block_AC_PF
5 55603 -2 0 0 0
2022-09-16 18:06:56
Block_AC_Power
5 29760 -1 0 0 0
2022-09-16 18:06:56
Block_AC_VA
5 29959 -1 0 0 0
2022-09-16 18:06:56
Block_AC_VAR
5 62086 -1 0 0 0
2022-09-16 18:06:56
Block_AC_Voltage
9 4125 4105 4119 2380 2373 2377 -1 0 0
2022-09-16 18:06:56
Block_C_Model
5 SE7K-RWS48BEN4 0 0 0 0
2022-09-11 05:10:55
Block_DC_Current
5 4050 -3 0 0 0
2022-09-16 18:06:56
Block_DC_Power
5 3021 0 0 0 0
2022-09-16 18:06:56
Block_DC_Voltage
5 7459 -1 0 0 0
2022-09-16 18:06:56
C_DeviceAddress
1
2022-09-11 05:10:05
C_Manufacturer
SolarEdge
2022-09-11 05:10:55
C_Model
SE7K-RWS48BEN4
2022-09-11 05:10:55
C_SerialNumber
7E0658F8
2022-09-11 05:10:05
C_SunSpec_DID
three phase
2022-09-11 05:10:05
C_SunSpec_ID
SunS
2022-09-11 05:10:55
C_Version
0004.0016.0114
2022-09-11 05:10:05
I_AC_Current
12.57
2022-09-16 18:06:56
I_AC_Current_A
4.18
2022-09-16 18:06:56
I_AC_Current_B
4.19
2022-09-16 18:06:56
I_AC_Current_C
4.18
2022-09-16 18:06:56
I_AC_Current_SF
-2
2022-09-16 18:06:56
I_AC_Energy_WH
993235
2022-09-16 18:06:56
I_AC_Energy_WH_SF
0
2022-09-16 18:06:56
I_AC_Frequency
50.03
2022-09-16 18:06:56
I_AC_Frequency_SF
-2
2022-09-16 18:06:56
I_AC_PF
556.03
2022-09-16 18:06:56
I_AC_PF_SF
-2
2022-09-16 18:06:56
I_AC_Power
2976
2022-09-16 18:06:56
I_AC_Power_SF
-1
2022-09-16 18:06:56
I_AC_VA
2995.9
2022-09-16 18:06:56
I_AC_VAR
6208.6
2022-09-16 18:06:56
I_AC_VAR_SF
-1
2022-09-16 18:06:56
I_AC_VA_SF
-1
2022-09-16 18:06:56
I_AC_Voltage_AB
412.5
2022-09-16 18:06:56
I_AC_Voltage_AN
238
2022-09-16 18:06:56
I_AC_Voltage_BC
410.5
2022-09-16 18:06:56
I_AC_Voltage_BN
237.3
2022-09-16 18:06:56
I_AC_Voltage_CA
411.9
2022-09-16 18:06:56
I_AC_Voltage_CN
237.7
2022-09-16 18:06:56
I_AC_Voltage_SF
-1
2022-09-16 18:06:56
I_DC_Current
4.05
2022-09-16 18:06:56
I_DC_Current_SF
-3
2022-09-16 18:06:56
I_DC_Power
3021
2022-09-16 18:06:56
I_DC_Power_SF
0
2022-09-16 18:06:56
I_DC_Voltage
745.9
2022-09-16 18:06:56
I_DC_Voltage_SF
-1
2022-09-16 18:06:56
I_Status
Inverter is ON and producing power
2022-09-16 18:06:56
I_Temp_HeatSink
41 °C
2022-09-16 18:06:56
PV_2022_7
0
2022-08-31 00:00:23
PV_2022_8
0
2022-09-16 00:00:03
X_M_ConsumptionToday
14917
2022-09-16 18:06:57
X_M_ExportedCurrentMonth
0
2022-09-16 00:00:03
X_M_ExportedCurrentWeek
623227
2022-09-16 00:00:03
X_M_ExportedToday
12405
2022-09-16 18:06:57
X_M_Exported_2022_7
0
2022-08-31 00:00:24
X_M_Exported_2022_8
0
2022-09-16 00:00:03
X_M_ImportedCurrentMonth
0
2022-09-16 00:00:03
X_M_ImportedCurrentWeek
104747
2022-09-16 00:00:03
X_M_ImportedToday
7097
2022-09-16 18:06:57
X_M_Imported_2022_7
0
2022-08-31 00:00:24
X_M_Imported_2022_8
0
2022-09-16 00:00:03
X_Meter_1_Block_AC_Current
9 110 35 36 37 -1 0 0 0 0
2022-09-16 18:06:56
X_Meter_1_Block_AC_Frequency
9 5002 -2 0 0 0 0 0 0 0
2022-09-16 18:06:56
X_Meter_1_Block_AC_PF
9 -9753 -9779 -9670 -9810 -2 0 0 0 0
2022-09-16 18:06:56
X_Meter_1_Block_AC_Power
9 2646 839 837 968 0 0 0 0 0
2022-09-16 18:06:56
X_Meter_1_Block_AC_VA
9 2646 840 849 979 0 0 0 0 0
2022-09-16 18:06:56
X_Meter_1_Block_AC_VAR
9 40 37 -139 142 0 0 0 0 0
2022-09-16 18:06:56
X_Meter_1_Block_AC_Voltage
9 23777 23777 23749 23749 0 0 0 0 -2
2022-09-16 18:06:56
X_Meter_1_Block_C_Model
9 SE-MTR-3Y-400V-A 0 0 0 0 0 0 0 0
2022-09-11 05:10:06
X_Meter_1_Block_Energy_VA
9 0 0 0 0 0 0 0 0 -32768
2022-09-16 18:06:57
X_Meter_1_Block_Energy_W
9 833562 259667 329086 269582 131715 60474 45277 50736 0
2022-09-16 18:06:57
X_Meter_1_C_DeviceAddress
2
2022-09-11 05:10:06
X_Meter_1_C_Manufacturer
SolarEdge
2022-09-11 05:11:56
X_Meter_1_C_Model
SE-MTR-3Y-400V-A
2022-09-11 05:10:06
X_Meter_1_C_Option
Export+Import
2022-09-11 05:10:06
X_Meter_1_C_SerialNumber
606757285
2022-09-11 05:10:06
X_Meter_1_C_SunSpec_DID
wye-connect three phase
2022-09-11 05:10:06
X_Meter_1_C_SunSpec_DID_0
ASolarEdge
2022-09-11 05:10:06
X_Meter_1_C_SunSpec_Length
ASolarEdge
2022-09-11 05:10:55
X_Meter_1_C_Version
1077
2022-09-11 05:10:06
X_Meter_1_M_AC_Current
11
2022-09-16 18:06:56
X_Meter_1_M_AC_Current_A
3.5
2022-09-16 18:06:56
X_Meter_1_M_AC_Current_B
3.6
2022-09-16 18:06:56
X_Meter_1_M_AC_Current_C
3.7
2022-09-16 18:06:56
X_Meter_1_M_AC_Current_SF
-1
2022-09-16 18:06:56
X_Meter_1_M_AC_Frequency
50.02
2022-09-16 18:06:56
X_Meter_1_M_AC_Frequency_SF
-2
2022-09-16 18:06:56
X_Meter_1_M_AC_PF
-97.53
2022-09-16 18:06:56
X_Meter_1_M_AC_PF_A
-97.79
2022-09-16 18:06:56
X_Meter_1_M_AC_PF_B
-96.7
2022-09-16 18:06:56
X_Meter_1_M_AC_PF_C
-98.1
2022-09-16 18:06:56
X_Meter_1_M_AC_PF_SF
-2
2022-09-16 18:06:56
X_Meter_1_M_AC_Power
2646
2022-09-16 18:06:56
X_Meter_1_M_AC_Power_A
839
2022-09-16 18:06:56
X_Meter_1_M_AC_Power_B
837
2022-09-16 18:06:56
X_Meter_1_M_AC_Power_C
968
2022-09-16 18:06:56
X_Meter_1_M_AC_Power_SF
0
2022-09-16 18:06:56
X_Meter_1_M_AC_VA
2646
2022-09-16 18:06:56
X_Meter_1_M_AC_VAR
40
2022-09-16 18:06:56
X_Meter_1_M_AC_VAR_A
37
2022-09-16 18:06:56
X_Meter_1_M_AC_VAR_B
-139
2022-09-16 18:06:56
X_Meter_1_M_AC_VAR_C
142
2022-09-16 18:06:56
X_Meter_1_M_AC_VAR_SF
0
2022-09-16 18:06:56
X_Meter_1_M_AC_VA_A
840
2022-09-16 18:06:56
X_Meter_1_M_AC_VA_B
849
2022-09-16 18:06:56
X_Meter_1_M_AC_VA_C
979
2022-09-16 18:06:56
X_Meter_1_M_AC_VA_SF
0
2022-09-16 18:06:56
X_Meter_1_M_AC_Voltage_AB
0
2022-09-16 18:06:56
X_Meter_1_M_AC_Voltage_AN
237.77
2022-09-16 18:06:56
X_Meter_1_M_AC_Voltage_BC
0
2022-09-16 18:06:56
X_Meter_1_M_AC_Voltage_BN
237.49
2022-09-16 18:06:56
X_Meter_1_M_AC_Voltage_CA
0
2022-09-16 18:06:56
X_Meter_1_M_AC_Voltage_CN
237.49
2022-09-16 18:06:56
X_Meter_1_M_AC_Voltage_LL
0
2022-09-16 18:06:56
X_Meter_1_M_AC_Voltage_LN
237.77
2022-09-16 18:06:56
X_Meter_1_M_AC_Voltage_SF
-2
2022-09-16 18:06:56
X_Meter_1_M_Energy_VA_SF
-32768
2022-09-16 18:06:57
X_Meter_1_M_Energy_W_SF
0
2022-09-16 18:06:57
X_Meter_1_M_Exported
833562
2022-09-16 18:06:57
X_Meter_1_M_Exported_A
259667
2022-09-16 18:06:57
X_Meter_1_M_Exported_B
329086
2022-09-16 18:06:57
X_Meter_1_M_Exported_C
269582
2022-09-16 18:06:57
X_Meter_1_M_Exported_VA
0
2022-09-16 18:06:57
X_Meter_1_M_Exported_VA_A
0
2022-09-16 18:06:57
X_Meter_1_M_Exported_VA_B
0
2022-09-16 18:06:57
X_Meter_1_M_Exported_VA_C
0
2022-09-16 18:06:57
X_Meter_1_M_Imported
131715
2022-09-16 18:06:57
X_Meter_1_M_Imported_A
60474
2022-09-16 18:06:57
X_Meter_1_M_Imported_B
45277
2022-09-16 18:06:57
X_Meter_1_M_Imported_C
50736
2022-09-16 18:06:57
X_Meter_1_M_Imported_VA
0
2022-09-16 18:06:57
X_Meter_1_M_Imported_VA_A
0
2022-09-16 18:06:57
X_Meter_1_M_Imported_VA_B
0
2022-09-16 18:06:57
X_Meter_1_M_Imported_VA_C
0
2022-09-16 18:06:57
X_PV_Energy
993235
2022-09-16 18:06:56
X_PV_EnergyCurrentMonth
0
2022-09-16 00:00:03
X_PV_EnergyCurrentWeek
739479
2022-09-16 00:00:03
X_PV_EnergyToday
20225

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: aikawa24 am 17 September 2022, 02:01:52
hi,
für den Eigenverbrauch hatte ich bei mir der keine Batterie hat folgendes userreading gebastelt

EigenverbrauchJetzt { ReadingsVal("PV", "I_AC_Power",0) - ReadingsVal("PV", "X_Meter_1_M_AC_Power",0) }

und die Einspeisung müsste X_Meter_1_M_AC_Power sein
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 22 September 2022, 18:17:03
Besten Dank.

Einfrage habe ich noch:

Wie kann ich mehrere Readings erstellen ?
Wenn ich es wie folgt mache, bekomme ich die Fehlermeldung: Error evaluating SolarEdge userReading FreieKapazitaet: Can't find string terminator '"' anywhere before EOF at (eval 124464) line 1.
Meine Eingabe:
EigenverbrauchJetzt { ReadingsVal("SolarEdge", "I_AC_Power",0) - ReadingsVal("SolarEdge", "X_Meter_1_M_AC_Power",0) }

FreieKapazitaet { ReadingsVal("SolarEdge", "X_Meter_1_M_AC_Power,0) - ReadingsVal("SolarEdge", "EigenverbrauchJetzt",0) }

Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Icinger am 22 September 2022, 18:30:36
Aus der Commandref:
Zitat
userReadings
A comma-separated list of definitions of user-defined readings. Each definition has the form:
<reading>[:<trigger>] [<modifier>] { <perl code> }[/quote)
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: TomLee am 22 September 2022, 19:15:19
Kann sein, kann aber auch, warum auch immer, hier nur zur Darstellung mit Leerzeile geposted worden sein.

Wie die Meldung schon zeigt fehlt definitiv ein " bei X_Meter_1_M_AC_Power.
Titel: Antw:ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]
Beitrag von: Mellowback am 22 September 2022, 19:38:28
Habe die " ergänzt

Bekomme jetzt folgenden Fehler:
EigenverbrauchJetzt
Error evaluating SolarEdge userReading EigenverbrauchJetzt: Can't locate object method "FreieKapazitaet" via package "-563" (perhaps you forgot to load "-563"?) at (eval 425) line 3.

FreieKapazitaet
Error evaluating SolarEdge userReading FreieKapazitaet: Can't find string terminator '"' anywhere before EOF at (eval 124464) line 1.

Wenn ich EigenverbrauchJetzt einzeln eingebe funktioniert dieser

Eigabe als Reading:
userReadings

EigenverbrauchJetzt { ReadingsVal("SolarEdge", "I_AC_Power",0) - ReadingsVal("SolarEdge", "X_Meter_1_M_AC_Power",0) }

FreieKapazitaet { ReadingsVal("SolarEdge", "X_Meter_1_M_AC_Power",0) - ReadingsVal("SolarEdge", "EigenverbrauchJetzt",0) }