userReadings mit Hilfe von ReadingsVal und {return} im Wert verändern

Begonnen von cocojambo, 16 August 2018, 19:55:09

Vorheriges Thema - Nächstes Thema

cocojambo

Ich weiß nicht ob ich die Überschrift richtig gewählt habe, aber ich konnte es nicht besser beschreiben.

Ich habe eine SolarEdge Photovoltaikanlage mit Batteriespeicher. Um den Zustand der Batterie mitzubekommen, gibt diese über den Modbus 7 verschiedene Stati in Form von Ziffern aus (0-6). Ich möchte aber diesen Werten feste Begriffe zuordnen. (z.B. 3=entladen, 4= laden, 6= Erhatungsladen, etc.) um sie später in einer Tabelle aufzulisten.

Folgendes habe ich bereits gemacht:

attr mySL_now userReadings Batt_State {if (ReadingsVal("SolarEdge", "Batt_State", "4")) {return 'laden'}}

Das funktioniert aber nicht. In der Tabelle erscheint weiterhin die "4". Das wollte ich dann weiter für die anderen Werte machen.
Hat jemand eine Idee was ich da falsch mache? oder läßt sich das anders und eleganter lösen?

Gruß aus Köln
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Otto123

Hallo Norbert,

if (ReadingsVal("SolarEdge", "Batt_State", "4")) musste wahr werden damit 'laden' zurück kommt.

Was ergibt denn {ReadingsVal("SolarEdge", "Batt_State", "4")}in der FHEM Kommandozeile?
if (ReadingsNum("SolarEdge", "Batt_State", "4")) == 4 {return 'laden'}Könnte sein was Du willst, aber was ist wenn anders als 4 ?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

dafex

{if (ReadingsVal("SolarEdge", "Batt_State", "4")) {return 'laden'}}
Deine Abfrage prüft ob der Batt_State {return 'laden'} ist. Ist er natürlich nicht. Darum wird die 4 ausgegeben, wie du es vorgegeben hast.

Probier mal das:
{ReadingsVal("SolarEdge", "Batt_State", "undef") == 4 ? "laden" : "nix" } Wenn du das oben in die Kommandozeile eingibts, wird die 4 zurückgeben wenn der aktuelle Staus auch 4 ist. Ansonsten "nix".

Wenn das funktioniert eine etwas unelegante Methode, aber ich kanns nicht besser:
attr mySL_now userReadings Batt_State {
  ReadingsVal("SolarEdge", "Batt_State", "undef") == 4 ? "laden" :
  ReadingsVal("SolarEdge", "Batt_State", "undef") == 3 ? "entladen" :
  ReadingsVal("SolarEdge", "Batt_State", "undef") == 6 ? "Erhaltungsladen" : "Fehler"
}
Deine restlichen Stati einfach in der gleichen Weise dranhängen.


Otto123

Zitat von: dafex am 16 August 2018, 22:08:33
{if (ReadingsVal("SolarEdge", "Batt_State", "4")) {return 'laden'}}
Deine Abfrage prüft ob der Batt_State {return 'laden'} ist. Ist er natürlich nicht. Darum wird die 4 ausgegeben, wie du es vorgegeben hast.
Nö! Er prüft ob ob ReadingsVal("SolarEdge", "Batt_State", "4") wahr ist und wenn ja gibt er {return 'laden'} zurück.

if (Bedingung) {Wenn wahr dann gib das zurück}

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Wzut

Zitat von: cocojambo am 16 August 2018, 19:55:09
oder läßt sich das anders und eleganter lösen?
Klar :) und vermutlich wird es ja nicht nur bei der Übersetzung der Nr 4 bleiben ?
Daher würde ich gleich Nägel mit Köpfen machen und eine komplette Tabelle anlegen für jeden Status (0-6) plus einem mehr für unbekannt

attr mySL_now userReadings Batt_State { my @a=("0"=>"Text1","1"=>"Text2","2"=>"Text2","3"=>"laden","4"=>"entladen","5"=>"Text5","6"=>"Text6","7"=>"???"); my $v=int(ReadingsNum("SolarEdge", "Batt_State", 7)); return $a[$v];}

Text1..6 musst du halt durch deine Statustexte ersetzen
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

cocojambo

@ dafex
@ Otto123

Naja, das stimmt, aber wenn man verzweifelt nach allen möglichen Programmiernöglichkeiten sucht und dann meint man hätte was gefunden, guckt man auch nicht mehr so genau wo der Gedankenfehler liegt. Ich hätte vieleicht probieren sollen die Formel "rumzudrehen".

@Wzut

Deine Lösung ist elegant und hat den Vorteil, das man alles in einer Zeile abtun kann. Es tut mir aber leid, diese Lösung bringt folgende Error Meldung:

Unknown command my, try help. Unknown command return, try help.

Ich habe auch auf Anhieb nicht gesehen was an "return" falsch, vielleicht hören irgendwo noch ein paar Klammern hin.

Gruß aus Köln
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Otto123

Hallo Norbert,

der Code ist für die DEF, ich hoffe Du hast ihn im DEF Editor eingetragen. Ansonsten musst du aus ; -> ;; machen!

Zitat von: cocojambo am 17 August 2018, 15:28:25
@ Otto123

Naja, das stimmt, aber wenn man verzweifelt nach allen möglichen Programmiernöglichkeiten sucht und dann meint man hätte was gefunden, guckt man auch nicht mehr so genau wo der Gedankenfehler liegt. Ich hätte vieleicht probieren sollen die Formel "rumzudrehen".
Welche Formel meinst Du? Bei Dir war keine Formel, da war nur ein ReadingsVal  :-[ wie wolltest Du den rumdrehen? Du meinst das if nachgestellt? Ändert nichts an der falschen Bedingung!

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

cocojambo

Das mit der "Formel" war falsch ausgedrückt. Aber wenn du schreibst: wenn "4" wahr ist, gibt return "laden" zurück, dann hätte es ja funktionieren müssen - tat es aber nicht. "4" war wahr und es kam "4" zurück.
dafex schrieb aber, es wird geprüft ob der zustand "laden" ist und wenn nicht, gibt es "4" zurück. Deshalb dachte ich, wenn die Abfrage nach "laden" führt, müßte man auch mit "if" nach dem Zustand "laden" fragen und nicht nach "4". Das meinte ich mit vertauschen.

Das mit dem "DEF EDITOR" habe ich noch nie vermisst und auch nie angewendet. Die Wiki Erlärungen habe ich mir mal angesehen. Aber so wie ich das verstanden habe, würden dann alle in der cfg vorkommenden ";" angepasst, und das gäbe ein Kaos. Deshalb habe ich mich entschlossen lieber aus ";" zwei zu machen.
Die Error Meldung ist zwar dann weg, aber die "6" im Batt_State Reading die im Moment für Erhaltungsladen steht, steht weiterhin drin.

Gruß
Nobbi
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Wzut

poste doch bitte mal list (in CodeTags) von deinem mySL_now und SolarEdge
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

CoolTux

Hilft das hier Dir um zu erkennen wie es gehen kann?


fs_rootFree:fs_root:.* { if( (split(' ',ReadingsVal($name,'fs_root',0)))[6] > 90) {'red'}
                        elsif( (split(' ',ReadingsVal($name,'fs_root',0)))[6] > 85) {'pink'}
                        elsif( (split(' ',ReadingsVal($name,'fs_root',0)))[6] > 75) {'yellow'}
                        elsif( (split(' ',ReadingsVal($name,'fs_root',0)))[6] > 0) {'green'} }
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Hi,

Zitat"4" war wahr und es kam "4" zurück.
4 ist nicht wahr, denn 4 ist kein logischer Ausdruck!
4=4 wäre ein logischer Ausdruck und wäre wahr! Ich habe gesagt ich weiß nicht welches logische Ergebnis  "4" liefert. Aber wahrscheinlich wird alles ungleich null als wahr interpretiert.
Probier folgendes aus, aber die FHEM Kommandozeile kennst Du wahrscheinlich auch nicht:  :'(
{if ("4") {return 'wahr'} else {return 'falsch'}}

Ansonsten kann ich nicht weiter helfen,

Viel Erfolg
Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

cocojambo

@ Otto123

Das ist nicht sehr nett. Es können nicht alle so gut wie du sein, es gibt auch Leute, die sich mit viel Zeitaufwand und "Learning by doing" an FHEM gesetzt haben und von NULL angefangen haben. SO WIE ICH. Ich lese mir jeden Beitrag und Anleitung in z.B. Wiki durch, gucke mir andere Programme an und versuche zu entschlüsseln und zu verstehen wie sie funktionieren und dabei kapiere ich eben nicht alles. Und deshalb frage ich dann hier im Board, teilweise unter Anfängerfragen.
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

cocojambo

Hier die Readings von SolarEdge:
READINGS:
     2018-07-27 10:54:20   AC-Energy-Scale 0
     2018-07-27 10:54:20   AC-Energy-Val   57730
     2018-07-27 10:54:20   AC-Power-Scale  -2
     2018-07-27 10:54:20   AC-Power-Val    60264
     2018-07-27 11:47:22   Batt_           State 6
     2018-08-15 11:31:11   Batt_Amp        0.00
     2018-07-27 11:42:06   Batt_Average_Temp 28.70
     2018-07-27 11:42:06   Batt_Curr       0.00
     2018-08-17 17:07:02   Batt_Fill       100.00
     2018-08-15 11:28:22   Batt_Health     100.00
     2018-08-17 17:07:02   Batt_In_Count   5568
     2018-07-27 12:12:00   Batt_Input_Counter 139
     2018-08-17 17:07:02   Batt_Out_Count  243
     2018-07-27 12:12:00   Batt_Output_Counter 0
     2018-07-27 11:42:07   Batt_Pow        0
     2018-08-17 17:07:02   Batt_State      6
     2018-08-17 17:07:02   Batt_Temp       26.80
     2018-07-27 11:42:06   Batt_Vol        424.90
     2018-08-15 11:31:11   Batt_Volt       424.00
     2018-08-17 17:07:02   Batt_Watt       0
     2018-07-27 11:38:28   Batterie        Gesundheitszustand 100
     2018-07-27 10:54:20   DC-Current-Scale -6
     2018-07-27 10:54:20   DC-Current-Val  53181
     2018-07-27 10:54:21   DC-Power-Scale  -3
     2018-07-27 10:54:21   DC-Power-Val    55295
     2018-07-27 10:54:21   DC-Voltage-Scale -1
     2018-07-27 10:54:21   DC-Voltage-Val  4232
     2018-07-27 10:54:21   HeatSinkTemp    4636
     2018-07-27 10:54:21   Inverter        Status 4
     2018-07-25 11:01:43   Status          4
     2018-07-27 11:38:27   durch.Batterie  Temperatur 28.70
     2018-07-27 11:00:24   max.Batterie    Temperatur_57710 0
     2018-08-17 16:06:44   state           opened
   defptr:
     1:
   gotReadings:
     Batt_Fill  100.00
     Batt_In_Count 5568
     Batt_Out_Count 243
     Batt_State 6
     Batt_Temp  26.80
     Batt_Watt  0


und hier von mySL_now:

READINGS:
     2018-08-17 17:11:34   Batt_State      3
     2018-08-17 17:11:34   Co2_all         46471228.3
     2018-08-17 17:11:34   Pac_Day         20030
     2018-08-17 17:11:34   Pac_Day_avg     19883
     2018-08-17 17:11:34   Pac_Mon         696670
     2018-08-17 17:11:34   Pac_Mon_avg     696523
     2018-08-17 17:11:34   Pac_S0_now      3093
     2018-08-17 17:11:34   Pac_S0_now_avg  3549
     2018-08-17 17:11:34   Pac_Year        7283488
     2018-08-17 17:11:34   Pac_Year_avg    7283341
     2018-08-17 17:11:34   Pac_all         66387469
     2018-08-17 17:11:34   Pac_all_avg     66387322
     2018-08-17 17:11:34   Pac_now         3537
     2018-08-17 17:11:34   Pac_now_avg     4034
     2018-08-17 17:11:34   S0_Day          5947
     2018-08-17 17:11:34   S0_Day_avg      5931
     2018-08-17 17:11:34   S0_Mon          99057
     2018-08-17 17:11:34   S0_Mon_avg      99041
     2018-08-17 17:11:34   S0_Pac_now      0
     2018-08-17 17:11:34   S0_Year         2430876
     2018-08-17 17:11:34   S0_Year_avg     2430860
     2018-08-17 17:11:34   S0_all          31589053
     2018-08-17 17:11:34   S0_all_avg      31589037
     2018-08-17 17:11:34   S0_now          444
     2018-08-17 17:11:34   S0_now_avg      485
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

CoolTux

Wo ist denn da jetzt das Problem


mySL_now userReadings BattStateHuman:Batt_State:.* { if( ReadingsVal($name, "Batt_State", "-1") == 4 ) {  'laden'  }
                 elsif( ReadingsVal($name, "Batt_State", "-1") == 6 ) {  'Erhatungsladen'  }
                 elsif(  ReadingsVal($name, "Batt_State", "-1") ==  3 ) {  'enladen'  }
}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Otto123

Zitat von: cocojambo am 17 August 2018, 17:04:16
... es gibt auch Leute, die sich mit viel Zeitaufwand und "Learning by doing" an FHEM gesetzt haben und von NULL angefangen haben.
so wie ich  :D

Sorry, ich wollte nicht "nicht nett" rüberkommen. Ich wollte nur meiner Verzweiflung über Deine Worte zum DEF Editor und des direkten Editierens der fhem.cfg Ausdruck verleihen.  ;)
Nach meiner Erfahrung meiden fhemcfgdirekteditierer auch die FHEM Kommandozeile in der WEB Oberfläche, denn sie meiden die WEB Oberfläche.

Nichts für ungut
Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

cocojambo

@CoolTux

ich habe mal deinen Vorschlag eingebaut. Keine Fehlermeldung, leider aber auch kein Erfolg.

mySL_now userReadings BattStateHuman:Batt_State:.* { if( ReadingsVal($name, "Batt_State", "-1") == 4 ) {  'laden'  }
                 elsif( ReadingsVal($name, "Batt_State", "-1") == 6 ) {  'Erhaltungsladen'  }
                 elsif(  ReadingsVal($name, "Batt_State", "-1") ==  3 ) {  'entladen'  }}


Ich habe $name auch mal durch SolarEdge ersetzt, ändert nix.

Gruß
Nobbi


FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

CoolTux

Würde denn das Reading Batt_State aktualisiert? Gibt es einen Event sollte das Reading Batt_State aktualisiert werden?
Dein list ist Kacke weil die Hälfte fehlt. Wir wissen ja nicht mal ob Du event-on- verwendest oder nicht.
Was sagt der Eventmonitor?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cocojambo

Hier der EventMonitor für SolarEdge, wird alle 30sek aktuallisiert:

2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_Temp: 26.50
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_Watt: -325
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_Out_Count: 196
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_In_Count: 302
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_Fill: 100.00
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_State: 4


Das sind alle Werte, die ich zur Zeit aus der Batterie auslese.
Gruß
Nobbi
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

Wzut

Zitat von: CoolTux am 17 August 2018, 18:15:40
Dein list ist Kacke weil die Hälfte fehlt.
eso es :) uns solange da nicht das gewünschte kommt bin ich still .....
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

CoolTux

Zitat von: cocojambo am 17 August 2018, 19:15:55
Hier der EventMonitor für SolarEdge, wird alle 30sek aktuallisiert:

2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_Temp: 26.50
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_Watt: -325
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_Out_Count: 196
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_In_Count: 302
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_Fill: 100.00
2018-08-17 19:12:56 ModbusAttr SolarEdge Batt_State: 4


Das sind alle Werte, die ich zur Zeit aus der Batterie auslese.
Gruß
Nobbi

OK und hast du das userReadings Beispiel von mir entsprechend an SolarEdge angepasst?
Poste bitte ein komplettes list von SolarEdge
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cocojambo

Hier das komplette list SolarEdge


Save config
Dashboard
Floorplans
Bad 1.Etage
Bad EG
Büro 1.Etage
Diele 2.Etage
Garten
Heizungsraum
Kamera
Küche
Partyraum
Schlafzimmer
System
Töpferei
Unsorted
Waschküche
Werkstatt
Wohnzimmer
Everything
Logfile
Commandref
Edit files
Event monitor
Neustart
Edit Fhem
Update
UpdateCheck

Internals:
   BUSY       0
   DEF        1 30 192.168.115.3:502 TCP
   DEST       192.168.115.3:502
   DeviceName 192.168.115.3:502
   FD         35
   INTERVAL   30
   IODev      SolarEdge
   LASTOPEN   1534526954.1581
   MODBUSID   1
   ModuleVersion 3.7.3 - 22.12.2017
   NAME       SolarEdge
   NOTIFYDEV  global
   NR         1280
   NTFY_ORDER 50-SolarEdge
   PARTIAL   
   PROTOCOL   TCP
   REQUESTHEX 0090000000060103e16c001b
   STATE      opened
   TRIGGERTIME 1534527465.41654
   TRIGGERTIME_FMT 2018-08-17 19:37:45
   TYPE       ModbusAttr
   devioLoglevel 4
   nextOpenDelay 60
   QUEUE:
   READINGS:
     2018-07-27 10:54:20   AC-Energy-Scale 0
     2018-07-27 10:54:20   AC-Energy-Val   57730
     2018-07-27 10:54:20   AC-Power-Scale  -2
     2018-07-27 10:54:20   AC-Power-Val    60264
     2018-07-27 11:47:22   Batt_           State 6
     2018-08-15 11:31:11   Batt_Amp        0.00
     2018-07-27 11:42:06   Batt_Average_Temp 28.70
     2018-07-27 11:42:06   Batt_Curr       0.00
     2018-08-17 19:37:15   Batt_Fill       97.99
     2018-08-15 11:28:22   Batt_Health     100.00
     2018-08-17 19:37:15   Batt_In_Count   302
     2018-07-27 12:12:00   Batt_Input_Counter 139
     2018-08-17 19:37:15   Batt_Out_Count  325
     2018-07-27 12:12:00   Batt_Output_Counter 0
     2018-07-27 11:42:07   Batt_Pow        0
     2018-08-17 19:37:15   Batt_State      4
     2018-08-17 19:37:15   Batt_Temp       26.50
     2018-07-27 11:42:06   Batt_Vol        424.90
     2018-08-15 11:31:11   Batt_Volt       424.00
     2018-08-17 19:37:15   Batt_Watt       -339
     2018-07-27 11:38:28   Batterie        Gesundheitszustand 100
     2018-07-27 10:54:20   DC-Current-Scale -6
     2018-07-27 10:54:20   DC-Current-Val  53181
     2018-07-27 10:54:21   DC-Power-Scale  -3
     2018-07-27 10:54:21   DC-Power-Val    55295
     2018-07-27 10:54:21   DC-Voltage-Scale -1
     2018-07-27 10:54:21   DC-Voltage-Val  4232
     2018-07-27 10:54:21   HeatSinkTemp    4636
     2018-07-27 10:54:21   Inverter        Status 4
     2018-07-25 11:01:43   Status          4
     2018-07-27 11:38:27   durch.Batterie  Temperatur 28.70
     2018-07-27 11:00:24   max.Batterie    Temperatur_57710 0
     2018-08-17 19:29:14   state           opened
   defptr:
     1:
   gotReadings:
     Batt_Fill  97.99
     Batt_In_Count 302
     Batt_Out_Count 325
     Batt_State 4
     Batt_Temp  26.50
     Batt_Watt  -339
   helper:
     buffer     
     lid        1
     lrecv      1534527435.43611
     lsend      1534527435.42637
   lastRead:
     h57708     1534527435.43916
     h57716     1534527435.44194
     h57718     1534527435.44387
     h57722     1534527435.44575
     h57732     1534527435.44864
     h57734     1534527435.4507
Attributes:
   dev-h-combine 200
   dev-h-defPoll 1
   dev-h-defShowGet 1
   enableControlSet 1
   maxTimeoutsToReconnect 3
   obj-h57708-bswapRegs 1
   obj-h57708-expr sprintf "%.2f" ,$val
   obj-h57708-len 2
   obj-h57708-reading Batt_Temp
   obj-h57708-unpack f
   obj-h57716-bswapRegs 1
   obj-h57716-len 2
   obj-h57716-reading Batt_Watt
   obj-h57716-unpack f
   obj-h57718-len 4
   obj-h57718-reading Batt_Out_Count
   obj-h57718-unpack s>
   obj-h57722-len 4
   obj-h57722-reading Batt_In_Count
   obj-h57722-unpack s>
   obj-h57732-bswapRegs 1
   obj-h57732-expr sprintf "%.2f" ,$val
   obj-h57732-len 2
   obj-h57732-reading Batt_Fill
   obj-h57732-unpack f
   obj-h57734-reading Batt_State
   obj-h57734-unpack s>
   silentReconnect 1
   sortUpdate 1
   userattr   dev-h-combine dev-h-defPoll dev-h-defShowGet enableControlSet event-on-change-reading maxTimeoutsToReconnect obj-h40083-reading obj-h40083-unpack obj-h40084-reading obj-h40084-unpack obj-h40093-len obj-h40093-reading obj-h40093-unpack obj-h40095-reading obj-h40095-unpack obj-h40096-reading obj-h40096-unpack obj-h40097-reading obj-h40097-unpack obj-h40098-reading obj-h40098-unpack obj-h40099-reading obj-h40099-unpack obj-h40100-reading obj-h40100-unpack obj-h40101-reading obj-h40101-unpack obj-h40103-reading obj-h40103-unpack obj-h40107-reading obj-h40107-unpack obj-h57708-bswapRegs obj-h57708-expr obj-h57708-len obj-h57708-reading obj-h57708-unpack obj-h57710-bswapRegs obj-h57710-expr obj-h57710-len obj-h57710-reading obj-h57710-unpack obj-h57712-bswapRegs obj-h57712-expr obj-h57712-len obj-h57712-reading obj-h57712-unpack obj-h57714-bswapRegs obj-h57714-expr obj-h57714-len obj-h57714-reading obj-h57714-unpack obj-h57716-bswapRegs obj-h57716-expr obj-h57716-len obj-h57716-reading obj-h57716-unpack obj-h57718-len obj-h57718-reading obj-h57718-unpack obj-h57722-len obj-h57722-reading obj-h57722-unpack obj-h57726-bswapRegs obj-h57726-expr obj-h57726-len obj-h57726-reading obj-h57726-unpack obj-h57728-bswapRegs obj-h57728-expr obj-h57728-len obj-h57728-reading obj-h57728-unpack obj-h57730-bswapRegs obj-h57730-expr obj-h57730-len obj-h57730-reading obj-h57730-unpack obj-h57732-bswapRegs obj-h57732-expr obj-h57732-len obj-h57732-reading obj-h57732-unpack obj-h57733-bswapRegs obj-h57733-expr obj-h57733-len obj-h57733-reading obj-h57733-unpack obj-h57734-len obj-h57734-reading obj-h57734-unpack silentReconnect sortUpdate


Gruß
Nobbi
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

CoolTux

Und wo ist da das userReadings? Wie soll da was kommen wenn du es nicht setzt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wzut

will er ja gar nicht da haben sondern in mySL_now und da fehlt halt das list ....
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

CoolTux

Hätte schon erwartet daß er mir ein list von dem Device gibt wo er das userReading hat.
Bisschen Kopfweh ich hab.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cocojambo

und hier das list von mySL_now

Internals:
   DEF        192.168.115.2 30
   HOST       192.168.115.2
   INTERVAL   30
   NAME       mySL_now
   NR         769
   STATE      active
   TYPE       Solarlog
   READINGS:
     2018-08-17 20:11:18   Batt_State      Error evaluating mySL_now userReading Batt_State: Can't modify non-lvalue subroutine call in scalar assignment at (eval 160512) line 1, near "6 ) "

     2018-08-17 20:00:39   Co2_all         46473113.4
     2018-08-17 20:34:04   Pac_Day         22793
     2018-08-17 20:34:04   Pac_Day_avg     22790
     2018-08-17 20:34:04   Pac_Mon         699433
     2018-08-17 20:34:04   Pac_Mon_avg     699430
     2018-08-17 20:00:39   Pac_S0_now      0
     2018-08-17 20:00:39   Pac_S0_now_avg  -548
     2018-08-17 20:34:04   Pac_Year        7286251
     2018-08-17 20:34:04   Pac_Year_avg    7286248
     2018-08-17 20:34:04   Pac_all         66390232
     2018-08-17 20:34:04   Pac_all_avg     66390229
     2018-08-17 20:34:04   Pac_now         81
     2018-08-17 20:34:04   Pac_now_avg     85
     2018-08-17 20:34:04   S0_Day          8628
     2018-08-17 20:34:04   S0_Day_avg      8601
     2018-08-17 20:34:04   S0_Mon          101738
     2018-08-17 20:34:04   S0_Mon_avg      101711
     2018-08-17 20:00:39   S0_Pac_now      30
     2018-08-17 20:34:04   S0_Year         2433557
     2018-08-17 20:34:04   S0_Year_avg     2433530
     2018-08-17 20:34:04   S0_all          31591734
     2018-08-17 20:34:04   S0_all_avg      31591707
     2018-08-17 20:34:04   S0_now          640
     2018-08-17 20:34:04   S0_now_avg      587
Attributes:
   avg_count  10
   register   3502,Pac_now,3518,S0_now,3520,S0_Day,3524,S0_Mon,3526,S0_Year,3516,Pac_all,3508,Pac_Day,3512,Pac_Mon,3514,Pac_Year,3528,S0_all
   userReadings BattStateHuman:Batt_State:.* { if( ReadingsVal($name, "Batt_State", -1) == 4 ) {  'laden'  } elsif( ReadingsVal($name, "Batt_State", "-1") = 6 ) {  'Erhaltungsladen'  } elsif(  ReadingsVal($name, "Batt_State", "-1") =  3 ) {  'entladen'  }}


Gruß
Nobbi
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

CoolTux

"-1") = 6 )

Das muss == heißen. Bitte genau abschreiben. Korrigiere die anderen bitte auch gleich.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cocojambo

Ja, nachdem ich das list eingestellt hatte, habe ich die Fehlermeldung gesehen und alles noch mal neu kopiert und wieder eingefügt.
Ergbniss= die selbe Fehlermeldung.

attr mySL_now userReadings BattStateHuman:Batt_State:.* { if( ReadingsVal($name, "Batt_State", "-1") == 4 ) {  'laden'  } elsif( ReadingsVal($name, "Batt_State", "-1") == 6 ) {  'Erhatungsladen'  } elsif(  ReadingsVal($name, "Batt_State", "-1") ==  3 ) {  'enladen'  }}

Gruß
Nobbi
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

cocojambo

Achso , hier das List nach der Korrektur:

Internals:
   DEF        192.168.115.2 30
   HOST       192.168.115.2
   INTERVAL   30
   NAME       mySL_now
   NR         769
   STATE      active
   TYPE       Solarlog
   READINGS:
     2018-08-17 20:11:18   Batt_State      Error evaluating mySL_now userReading Batt_State: Can't modify non-lvalue subroutine call in scalar assignment at (eval 160512) line 1, near "6 ) "

     2018-08-17 20:00:39   Co2_all         46473113.4
     2018-08-17 20:54:32   Pac_Day         22795
     2018-08-17 20:54:32   Pac_Day_avg     22795
     2018-08-17 20:54:32   Pac_Mon         699435
     2018-08-17 20:54:32   Pac_Mon_avg     699435
     2018-08-17 20:00:39   Pac_S0_now      0
     2018-08-17 20:00:39   Pac_S0_now_avg  -548
     2018-08-17 20:54:32   Pac_Year        7286253
     2018-08-17 20:54:32   Pac_Year_avg    7286253
     2018-08-17 20:54:32   Pac_all         66390234
     2018-08-17 20:54:32   Pac_all_avg     66390234
     2018-08-17 20:54:32   Pac_now         0
     2018-08-17 20:54:32   Pac_now_avg     0
     2018-08-17 20:54:32   S0_Day          8834
     2018-08-17 20:54:32   S0_Day_avg      8803
     2018-08-17 20:54:32   S0_Mon          101944
     2018-08-17 20:54:32   S0_Mon_avg      101913
     2018-08-17 20:00:39   S0_Pac_now      30
     2018-08-17 20:54:32   S0_Year         2433763
     2018-08-17 20:54:32   S0_Year_avg     2433732
     2018-08-17 20:54:32   S0_all          31591940
     2018-08-17 20:54:32   S0_all_avg      31591909
     2018-08-17 20:54:32   S0_now          639
     2018-08-17 20:54:32   S0_now_avg      749
Attributes:
   avg_count  10
   register   3502,Pac_now,3518,S0_now,3520,S0_Day,3524,S0_Mon,3526,S0_Year,3516,Pac_all,3508,Pac_Day,3512,Pac_Mon,3514,Pac_Year,3528,S0_all
   userReadings BattStateHuman:Batt_State:.* { if( ReadingsVal($name, "Batt_State", "-1") == 4 ) {  'laden'  } elsif( ReadingsVal($name, "Batt_State", "-1") == 6 ) {  'Erhatungsladen'  } elsif(  ReadingsVal($name, "Batt_State", "-1") ==  3 ) {  'enladen'  }}
   userattr   userReadings BattStateHuman Batt_State
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

CoolTux

So nun muss das Reading Batt_State mal aktualisiert werden. Vorher passiert gar nichts. Das userattr kannst löschen. Ist bestimmt unabsichtlich gemacht worden.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cocojambo

Batt_State ist jetzt mehrfach aktuallisiert worden, ich habe auch ein shutdown restart gemacht.
Die "4" wird aber weiterhin in meiner Tabelle unter Batt_State angezeigt. Auch die Fehlermeldung im "list" von mySL_now ist noch drin.

2018-07-27 12:12:00   Batt_Output_Counter 0
     2018-07-27 11:42:07   Batt_Pow        0
     2018-08-17 21:17:25   Batt_State      4
     2018-08-17 21:17:25   Batt_Temp       27.20


2018-08-17 20:11:18   Batt_State      Error evaluating mySL_now userReading Batt_State: Can't modify non-lvalue subroutine call in scalar assignment at (eval 160512) line 1, near "6 ) "

Was mache ich noch falsch?

Gruß
Nobbi

FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

CoolTux

Sorry aber ich verstehe nur Bahnhof.

Batt_State  Error evaluating mySL_now userReading Batt_State
Batt_State      4


Welchen Wert hat das Reading denn nun. Beides kann es nicht haben.

Aktualisiert sich das Reading Batt_State vom Device mySL_now wo du ja das userReadings angegeben hast?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cocojambo

Im Moment gibt die Batterie über den Modbus des SolarEdge Inverters den Status 4 heraus und zwar so:

2018-08-17 21:33:56 ModbusAttr SolarEdge Batt_Temp: 27.40
2018-08-17 21:33:56 ModbusAttr SolarEdge Batt_Watt: -677
2018-08-17 21:33:56 ModbusAttr SolarEdge Batt_Out_Count: 1638
2018-08-17 21:33:56 ModbusAttr SolarEdge Batt_In_Count: 302
2018-08-17 21:33:56 ModbusAttr SolarEdge Batt_Fill: 84.49
2018-08-17 21:33:56 ModbusAttr SolarEdge Batt_State: 4


der alle 30 sek völlig unabhängig ausgelesen wird. mySL_now sind die Daten aus einem Solarlog an dem die 2 Wechselrichter hängen. Dort wird die erzeugte Leistung gemessen und der SolarEdge regelt dahinter die Verteilug der Energie: Einspeisung, Batterieladung-entladung und den Verbrauch.
Den Wert Batt_State hole ich also aus dem SolarEdge, wie auch alle anderen Werte. Die funktionieren alle. Das sieht so aus:

#attr mySL_now userReadings Pac_S0_now {if (ReadingsVal("mySL_now", "S0_now", "0") > ReadingsVal("mySL_now", "Pac_now", "0")) {return '0'} else {ReadingsVal("mySL_now", "Pac_now", "0") - ReadingsVal("mySL_now", "S0_now", "0")+ ReadingsVal("SolarEdge", "Batt_Watt", "0")}},Co2_all {ReadingsVal("mySL_now", "Pac_all", "0")*0.70},S0_Pac_now {if (ReadingsVal("mySL_now", "Pac_now", "0") - ReadingsVal("SolarEdge", "Batt_Watt", "0") > ReadingsVal("mySL_now", "S0_now", "0")) {return '0'} else {ReadingsVal("mySL_now", "S0_now", "0") - ReadingsVal("mySL_now", "Pac_now", "0") + ReadingsVal("SolarEdge", "Batt_Watt", "0")}},Pac_S0_now_avg {ReadingsVal("mySL_now", "Pac_now_avg", "0")- ReadingsVal("mySL_now", "S0_now_avg", "0")}

wo ich dann die Werte miteinander verechne. Und dort soll dann auch die Anzeige für den Status mit eingefügt werden. Ich hoffe das ist einigermassen verständlich.
Die ganze Werte werden dann in einer ReadingGroup zusammengefasst und in einer Tabelle und grafisch auf dem Dashboard dargestellt.

Gruß
Nobbi


FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

cocojambo

Jetzt habe ich dich "verschreckt". Das wollt ich nicht. Schade. Alles läuft ja bei mir einwandfrei seit Jahren und die Verrechnung mache ich ja auch selber. Das war ja nur zur Info was ich mit dem gewonnene Wert mache. Mehr nicht.

Es geht mir ja nur darum das ich den Status der in SolarEdge:Batt_State steckt anders darstellen möchte. Also wenn eine 4 kommt soll die 4 nur "übersetzt" werden in z.B. "laden" die ich dann als "laden" in meiner Tabelle anzeigen kann. Der neue Wert bzw Beschreibung kann ja auch dann in zb "SolarEdge:Batt_State_TXT" stecken, dann kann ich diesen statt Batt_State anzeigen und schon ist der Fall fertig. Das ist alles was ich machen möchte. Also eine Verschönerung der Darstellung.

Alles andere ist Beiwerk, was ich schon größtenteils am Laufen habe.

Vielleicht fällt dir doch noch was ein, bin morgen wieder online.
Gute Nacht
Norbert
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000

dafex

Da du ja das Reading Batt_Stat von deinem Solar Edge abfragen willst, musst anstatt $name
ReadingsVal("SolarEdge", .... eingeben.

Hast du denn schon mal meinen Code ausprobiert?

Wzut

Zitat von: cocojambo am 17 August 2018, 15:28:25
Ich habe auch auf Anhieb nicht gesehen was an "return" falsch, vielleicht hören irgendwo noch ein paar Klammern hin.
nein, die Frage ist aber wie du versucht hast meinen Einzeiler einzugeben.
Im Webinterface via mySL_now , Attribut userReadings auswählen , in die kleine Eingabezeile klicken und dann im großen Fenster
Batt_State {
my @a=("0"=>"Text1","1"=>"Text2","2"=>"Text2","3"=>"laden","4"=>"entladen","5"=>"Text5","6"=>"Text6","7"=>"???");
my $v=int(ReadingsNum("SolarEdge", "Batt_State", 7)); return $a[$v];}

oder
im Webinterface via mySL_now , Raw definitions und dann im großen Fenster darunter das attr überschreiben bzw. einfügen
attr mySL_now userReadings Batt_State { \
my @a=("0"=>"Text1","1"=>"Text2","2"=>"Text2","3"=>"laden","4"=>"entladen","5"=>"Text5","6"=>"Text6","7"=>"???");;\
my $v=int(ReadingsNum("SolarEdge", "Batt_State", 7));; return $a[$v];;}

und dann Execute commands. Beide Wege führen zum gleichen Ergebniss ohne irgendwelche Auswirkungen auf andere Geräte in der fhem.cfg
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

cocojambo

Ich hatte mich heute morgen erst mal daran gesetzt und habe den Vorschlag von dafex ausprobiert und $name durch SolarEdge ersetzt mit und ohne"........" und auch BattStateHuman ersetzt, ohne Erfolg.
Dann habe ich den Vorschlag der am Anfang des Threads steht probiert ans laufen zu kriegen, nachdem ich daran ein paar Änderungen gemacht hatte, stand plötzlich im "list mySL_now" ein Wert für Batt_State. Nach einigen Versuchen habe ich dann das so ans laufen bekommen:

attr mySL_now userReadings Batt_State {ReadingsVal("SolarEdge", "Batt_State", "") == 0 ? "ist aus" : ReadingsVal("SolarEdge", "Batt_State", "") == 3 ? "wird geladen" : ReadingsVal("SolarEdge", "Batt_State", "") == 4 ? "wird entladen" : ReadingsVal("SolarEdge", "Batt_State", "") == 6 ? "erhaltungsladen" : "unbekannt"}

Damit gehts auf jeden Fall und ich habe das auch schon in meine Berechnungen eingefügt und auch dort scheint es zu gehen. Ob diese Lösung nun die Eleganteste ist weiß ich nicht, aber ich möchte eigendlich nicht noch was anders ausprobieren, es sei denn, es stellt im Verlauf meiner weiteren Programmierung heraus, das diese Version nicht auf Dauer brauchbar ist.

Ich möchte mich auf jeden Fall bei Allen die mir hier geholfen haben und keine Mühe und Zeit gescheut haben, herzlich bedanken.

Mit handwerklichem Gruß aus dem z.Zt. sonnigen Köln-Dellbrück
Norbert

PS: ich hoffe es hat geklappt: ich habe mal eine Foto als .jpg  von meiner noch nicht ganz fertigen Solarseite angehangen.
FHEM6.2 FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG 2xESP CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 7xFS20SIG2 6xFS20KSE 2xHM-ES-PMSW1-PL 5xS300TH 1xASH2200 1xEM1000