Hallo,
brauche bitte Hilfe beim Zerlegen eines eState Strings (meines Powermessers) in einzelne dummy Variablen.
Der String im eState Reading schaut so aus:
eState E: 110.3 P: 31.15 I: 172 U: 235.4 f: 49.98
Mit split bin ich nicht weiter gekommen
Kann mir wer ein Codeschnipsel geben?
Danke
Zitatbrauche bitte Hilfe beim Zerlegen eines eState Strings (meines Powermessers) in einzelne dummy Variablen.
das sieht mir sehr nach homematic device aus. ist das richtig? dann brauchst du nichts splitten.
Ja, ist der Homematic Energiemesser HM-ES-PMSw1-Pl.
Dachte nur es sei besser wenn man den notify auf genau das eine Reading macht, das man anschließend auch auswertet? - Also z.B. auf eState und dann den String zerlegen.
Könnte es mit der folgenden Umsetzung Probleme mit der notify synchronisation der einzelnen Readings geben?
HM_2D123D_Pwr:eState.* {
my $varPower= ReadingsVal("HM_2D123D_Pwr","power",0);
my $varEnergy= ReadingsVal("HM_2D123D_Pwr","energy",0);
my $varCurrent= ReadingsVal("HM_2D123D_Pwr","current",0);
my $varVoltage= ReadingsVal("HM_2D123D_Pwr","voltage",0);
fhem("set testA $varPower");
fhem("set testB $varEnergy");
fhem("set testC $varCurrent");
fhem("set testD $varVoltage");
}
was hast du denn mit den ganzen dummys vor? warum reichen die readings im device nicht?
schau dir mal readingsGroup (und readingsProxy) an.
gruß
andre
ZitatKönnte es mit der folgenden Umsetzung Probleme mit der notify synchronisation der einzelnen Readings geben?
ich würde für jeden wert ein eigenes notify nutzen und im aktor natürlich "event-on-change .*" setzen. dann gibt es deutlich weniger rechenarbeit.
aber den sinn der dummy's habe ich auch nicht verstanden. die werte stehen sogar schon fast alle im state der chn2-chn5.
Danke für eure Tips.
Bin noch blutiger Anfänger (FHEM, Perl, Linux...) und kämpf mich so Stück für Stück durch.
Die readingsGroup sind echt ideal.
Hab auch gleich das mapping angepasst ;)
Danke