Hi Leute,
ich bin am Verzweifeln
Ich habe ein ECMDDEVICE
defmod WaermeRueck ECMDDevice bai00.class
attr WaermeRueck IODev EBUS2
attr WaermeRueck devStateIcon on:remotecontrol/black_btn_GREEN off:remotecontrol/black_btn_RED
attr WaermeRueck event-on-update-reading WaermeRueck
attr WaermeRueck group Lueftung
attr WaermeRueck icon vent_bypass
attr WaermeRueck room Lueftung
attr WaermeRueck sortby 10
attr WaermeRueck userReadings state { ReadingsVal("WaermeRueck","WaermeRueck",0);;;; }
dieses hat 2 readings
setstate WaermeRueck 2020-06-06 09:40:21 WaermeRueck on\
\
setstate WaermeRueck 2020-06-06 09:40:21 state on\
\
in einem DOIF frage ich ein reading ab
defmod Test_Doif DOIF ([WaermeRueck:WaermeRueck] eq "on")(set Test_Dummy on)\
DOELSE()
attr Test_Doif checkall all
attr Test_Doif do always
Leider gibt das DOIF immer cmd 2 zurück
setstate Test_Doif cmd_2
setstate Test_Doif 2020-06-06 09:40:21 Device WaermeRueck
setstate Test_Doif 2020-06-06 09:40:21 cmd 2
setstate Test_Doif 2020-06-06 09:40:21 cmd_event WaermeRueck
setstate Test_Doif 2020-06-06 09:40:21 cmd_nr 2
setstate Test_Doif 2020-06-06 09:40:21 e_WaermeRueck_WaermeRueck on\
\
setstate Test_Doif 2020-06-06 09:34:48 mode enabled
setstate Test_Doif 2020-06-06 09:40:21 state cmd_2
was mache ich falsch??
MfG Maik
Vermutlich liegt es an deinem Reading
state on\
\
Entweder die Classdef anpassen oder match auf ~/on/
hi frober,
DANKE
du hast mich auf den richtigen Weg gebracht.
hab mal alles geloggt, und siehe da.
2020.06.06 10:25:21 5 : ECMDDevice: Analyze command >{"r -f ByPass \n"}<
2020.06.06 10:25:21 5 : Postprocessing "on\n\n (\157\156\012\012)" with perl command { $_ }.
2020.06.06 10:25:21 5 : Postprocessed value is "on\n\n (\157\156\012\012)".
2020-06-06 10:25:21 DOIF Test_Doif cmd_event: WaermeRueck
2020-06-06 10:25:21 dummy WaermeRueck_dummy on
2020-06-06 10:25:21 dummy WaermeRueck_dummy on
2020-06-06 10:25:21 ECMDDevice WaermeRueck WaermeRueck: on
2020-06-06 10:25:21 ECMDDevice WaermeRueck WaermeRueck on
das reading ist nicht on
sondern on\n\n
::)
ein DOIF auf ([WaermeRueck] eq "on\n\n")(set Test_Dummy on)
DOELSE()
gibt nun auch cmd 1 zurück
habe nun meine bai00.cfg angepasst
get WaermeRueck postproc { s/(\w+)\n\n/$1/;;$_}
nun kommt nur noch ein "on" zurück.
VIELEN DANK
MfG Maik
Freut mich, dass ich helfen konnte.
Setzte bitte noch ein [gelöst] in den Titel vom ersten Beitrag.