Autor Thema: ModbusAttr an Wechselrichter SolarEdge SE10k [gelöst]  (Gelesen 5626 mal)

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1044
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #15 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

Offline BenMarloe

  • Full Member
  • ***
  • Beiträge: 103
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #16 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.
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1044
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #17 am: 18 Februar 2018, 20:36:15 »
Kein Problem, ich komme auch nicht ständig dazu ins Forum zu schauen.

Gruss
   Stefan

Offline BenMarloe

  • Full Member
  • ***
  • Beiträge: 103
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #18 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
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1044
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #19 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


Offline BenMarloe

  • Full Member
  • ***
  • Beiträge: 103
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #20 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
« Letzte Änderung: 18 Februar 2018, 23:11:55 von BenMarloe »
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k

Offline Butzel

  • New Member
  • *
  • Beiträge: 25
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #21 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.

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1044
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #22 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

Offline flipkill

  • Full Member
  • ***
  • Beiträge: 140
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #23 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

Offline BenMarloe

  • Full Member
  • ***
  • Beiträge: 103
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #24 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.
« Letzte Änderung: 21 Februar 2018, 19:18:02 von BenMarloe »
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k

Offline BenMarloe

  • Full Member
  • ***
  • Beiträge: 103
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #25 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
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k
Gefällt mir Gefällt mir x 1 Liste anzeigen

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1044
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #26 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

Offline BenMarloe

  • Full Member
  • ***
  • Beiträge: 103
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #27 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
« Letzte Änderung: 25 Februar 2018, 23:17:31 von BenMarloe »
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k

Offline StefanStrobel

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1044
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #28 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

Offline BenMarloe

  • Full Member
  • ***
  • Beiträge: 103
Antw:ModbusAttr an Wechselrichter SolarEdge SE10k
« Antwort #29 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
Alles ist kompliziert - bis man es verstanden hat
Fhem auf Raspberry 2 B
EnOcean / Homematic / Eigenbau / ABB 23 / SolarEdge SE10k