Hallo,
ich versuche leider ohne Erfolg :-[ eine Reading über ein notify zugübergeben aber als ganze Zahl ohne Komma und ohne es mit stateFormat später zu bearbeiteten.
Ich habe eine Leistungsmesser von MomeMatic (HM-ES-PMSw1-Pl) und brauche, für openWB (Wallbox), die Leistung in Watt ohne Kommastelle.
Habe eine notify angelegt:
define PV_Module6Setzen notifyHM_Messung_Pwr {my $var= ReadingsVal("HM_Messung_Pwr","power",0); fhem("set PV_Module_aktuell_Watt_openWB $var ");}
Und über gebe es eine dummy ,,PV_Module_aktuell_Watt_openWB" nun wird unter ,,Readings" die Leistung in Watt angezeigt aber leider mit zwei stellen nach Komma.
Gibt es eine Möglichkeit ohne stateFormat das direkt im dummy under Readings ohne Kommastelle auszugeben?
Gruß Karsten
Ähm, diese Konstruktion ist "komisch"...
Der Reihe nach:
- Wenn du etwas formatieren willst, geht das z.B. mit Perl-sprintf (bitte Doku selber suchen, das kann runden, alternativ "int").
- Werte zwischen verschiedenen Devices mit Eventhandlern "umzupacken" (v.a. in Dummy) ist meistens nicht nötig; hier klingt das danach, als wäre ein userReading der richtige Weg (oder gleich die formatierte Übermittlung an das Zieldevice, aber nicht an den dummy).
Ok, wenn das ,,komisch" ist ;) dann versuch ich das mal besser zu erklären.
OpenWB holt sich Werte bei FHEM ab und zwar so:
http://<FHEM_IP>:<port>/fhem?XHR=1&cmd=%7BReadingsVal(%22<device>%22,%22<reading>%22,0)%7D
Also habe ich ein notify welchen in ein reading ein dummy schreibt, ich bekomme es aber nicht hin des Komma wegzunehmen.
Im Readings von PV_Module_aktuell_Watt_openWB wird es immer mit Komma angezeigt zB: 2345.33
define PV_Module6Setzen notifyHM_Messung_Pwr {my $var= ReadingsVal("HM_Messung_Pwr","power",0); fhem("set PV_Module_aktuell_Watt_openWB $var ");}
Na ja, und was spricht denn jetzt dagegen, das abzuholende Reading als userReading beim Ausgangsdevice zu halten?
"int" war ja genannt, ungetestet sollte das hier klappen:
attr HM_Messung_Pwr userReadings power_commaless:power.* {int(ReadingsVal($name,"power",0))}
http://<FHEM_IP>:<port>/fhem?XHR=1&cmd=%7Bint(ReadingsVal(%22<device>%22,%22<reading>%22,0))%7D
sollte auch gehen
@Beta-User Sorry ich habe vorher schon viele gesucht im Forum und es klappt auch einiges, aber manchmal blickt man es halt nicht....
@amenomade Danke genau damit hat es geklappt und ich brauch kein notify und dummy
Ich bin immer wieder begeistert von EUCH ;D ;D ;D ;D DANKE !!!!! :D ;D :D