ECMDdevice reading im DOIF gibt nicht true zurück [gelöst]

Begonnen von TiPpFeHlEr, 06 Juni 2020, 09:44:18

Vorheriges Thema - Nächstes Thema

TiPpFeHlEr

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

frober

Vermutlich liegt es an deinem Reading

state on\
\



Entweder die Classdef anpassen oder match auf ~/on/
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

TiPpFeHlEr

#2
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

frober

Freut mich, dass ich helfen konnte.

Setzte bitte noch ein [gelöst] in den Titel vom ersten Beitrag.
Raspi 3b mit Raspbian Bullseye und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...