Hauptmenü

Notify löst nicht aus

Begonnen von Mundus, 31 März 2017, 09:10:36

Vorheriges Thema - Nächstes Thema

Mundus

Hallo liebe FHEM-Gemeinde,

leider habe ich mit dem nachfolgenden NOTIFY ('s) Probleme:
bu_FensterSensor:reportedState:open set bu_Thermostat thermostatSetpointSet 14.0
bu_FensterSensor:reportedState:closed set bu_Thermostat thermostatSetpointSet 20.0
Die Lists zu den beiden verknüpften Devices lautenInternals:
   DEF        cf62bc16 20
   IMAGE      /fhem/deviceimages/zwave/ZC08-14060004
   IODev      ZWAVE1
   LASTInputDev ZWAVE1
   MSGCNT     9
   NAME       bu_FensterSensor
   NR         85
   STATE      open
   TYPE       ZWave
   ZWAVE1_MSGCNT 9
   ZWAVE1_RAWMSG 00040014032001ff
   ZWAVE1_TIME 2017-03-31 08:13:39
   ZWaveSubDevice no
   homeId     cf62bc16
   isWakeUp   1
   lastMsgSent 1490913236.84672
   nodeIdHex  14
   Readings:
     2017-03-19 22:10:50   CMD             ZW_APPLICATION_UPDATE
     2017-03-29 00:09:38   SEND_DATA       failed:00
     2017-03-31 08:13:39   basicSet        255
     2017-03-20 22:25:01   battery         91 %
     2017-03-20 22:25:01   configStatusChangeSignalledByLED LEDTurnedOn
     2017-03-19 22:10:50   model           FIBARO System FGK101 Door Opening Sensor
     2017-03-19 22:10:50   modelConfig     fibaro/fgk001.xml
     2017-03-19 22:10:50   modelId         010f-0700-1000
     2017-03-20 00:47:36   neighborList    ZWAVE1 fo_Licht wz_Steckdose wz_Esstisch_RGB_Lampe wz_Lampe_TV ku_Licht fu_Licht
     2017-03-30 00:11:13   neighborUpdate  done
     2017-03-31 08:13:39   reportedState   open
     2017-03-31 08:13:39   state           open
     2017-03-31 00:33:56   timeToAck       0.067
     2017-03-31 00:33:56   transmit        OK
     2017-03-31 00:33:54   wakeup          notification
     2017-03-20 22:25:01   wakeupReport    interval 86400 target 1
Attributes:
   IODev      ZWAVE1
   classes    SENSOR_BINARY SENSOR_ALARM ASSOCIATION MANUFACTURER_SPECIFIC CONFIGURATION VERSION BATTERY CRC_16_ENCAP WAKE_UP FIRMWARE_UPDATE_MD MARK SCENE_ACTIVATION BASIC
   devStateIcon closed:fts_window_1w@green open:fts_window_1w_tilt@red
   group      Sensor
   neighborListPos 355.18288386890964,42.170221429434676
   room       Gäste WC,ZWave
   vclasses   ASSOCIATION:2 BATTERY:1 CONFIGURATION:1 CRC_16_ENCAP:1 FIRMWARE_UPDATE_MD:1 MANUFACTURER_SPECIFIC:1 SCENE_ACTIVATION:1 SENSOR_ALARM:1 SENSOR_BINARY:1 VERSION:1 WAKE_UP:1

Internals:
   DEF        cf62bc16 7
   IMAGE      /fhem/deviceimages/zwave/ZC08-15090003
   IODev      ZWAVE1
   LASTInputDev ZWAVE1
   MSGCNT     175
   NAME       bu_Thermostat
   NR         25
   STATE       18.0 °C
   TYPE       ZWave
   ZWAVE1_MSGCNT 175
   ZWAVE1_RAWMSG 00040007028407
   ZWAVE1_TIME 2017-03-31 08:59:29
   ZWaveSubDevice no
   homeId     cf62bc16
   isWakeUp   1
   lastMsgSent 1490943571.40537
   nodeIdHex  07
   Readings:
     2017-03-31 08:28:17   CMD             ZW_APPLICATION_UPDATE
     2017-01-27 03:30:17   UNPARSED        BATTERY 028003
     2017-03-31 08:59:29   battery         58 %
     2017-03-31 08:59:29   ccsOverride     no, unused
     2016-10-03 00:30:00   ccs_fri         N/A
     2016-10-03 00:30:00   ccs_mon         N/A
     2016-10-03 00:30:00   ccs_sat         N/A
     2016-10-03 00:30:00   ccs_sun         N/A
     2016-10-03 00:30:00   ccs_thu         N/A
     2016-10-03 00:30:00   ccs_tue         N/A
     2016-10-03 00:30:00   ccs_wed         N/A
     2017-03-31 00:28:56   clock           fri 06:34
     2016-10-02 23:49:59   model           Danfoss Z Thermostat 014G0013
     2016-10-02 23:49:59   modelConfig     danfoss/z.xml
     2016-10-02 23:49:59   modelId         0002-0005-0004
     2017-03-31 00:23:52   neighborList    ZWAVE1 fo_Licht wz_Steckdose wz_Esstisch_RGB_Lampe wz_Lampe_TV ku_Licht fu_Licht
     2017-03-22 22:48:49   neighborUpdate  done
     2016-10-03 00:25:07   protection      Local: unprotected RF: unprotected
     2017-03-31 08:59:29   setpointTemp    18.00 C heating
     2016-10-30 21:20:22   state           wakeupInterval 300 1
     2017-03-19 23:32:53   thermostatSetpointSupported heating
     2017-03-31 08:59:31   timeToAck       0.038
     2017-03-31 08:59:31   transmit        OK
     2017-03-31 08:59:29   wakeup          notification
     2017-03-19 22:34:29   wakeupReport    interval 900 target 1
Attributes:
   IODev      ZWAVE1
   classes    BATTERY CLIMATE_CONTROL_SCHEDULE CLOCK MANUFACTURER_SPECIFIC MULTI_CMD PROTECTION THERMOSTAT_SETPOINT VERSION WAKE_UP MARK CLIMATE_CONTROL_SCHEDULE CLOCK MULTI_CMD
   event-on-change-reading setpointTemp
   fp_Erdgeschoss 69,270,0,bu_Thermostat
   group      Thermostat
   icon       hc_wht_regler
   neighborListPos 302.59343438384684,165.51388246566023
   room       Gäste WC,ZWave
   stateFormat {sprintf(" %.1f °C",(ReadingsNum("bu_Thermostat","setpointTemp",0)))}
   vclasses   BATTERY:1 CLIMATE_CONTROL_SCHEDULE:1 CLOCK:1 MANUFACTURER_SPECIFIC:1 MULTI_CMD:1 PROTECTION:2 THERMOSTAT_SETPOINT:2 VERSION:1 WAKE_UP:2
   webCmd     thermostatSetpointSet
   widgetOverride thermostatSetpointSet:slider,4.0,0.5,28.0,1

Im Log steht leider auch nichts, was mich auf die Spur bringt:2017.03.31 08:13:39 5: Starting notify loop for bu_FensterSensor, 2 event(s), first is open
2017.03.31 08:13:39 5: testBattStatus: not on any display, ignoring notify
2017.03.31 08:13:39 5: End notify loop for bu_FensterSensor
2017.03.31 08:13:39 4: ZWDongle_Read ZWAVE1: rcvd 00040014032001ff (request APPLICATION_COMMAND_HANDLER), sending ACK
2017.03.31 08:13:39 5: SW: 06
2017.03.31 08:13:39 5: ZWAVE1: dispatch 00040014032001ff
2017.03.31 08:13:39 4: CMD:APPLICATION_COMMAND_HANDLER ID:14 ARG:032001ff CB:00
2017.03.31 08:13:39 5: Starting notify loop for bu_FensterSensor, 1 event(s), first is basicSet: 255
2017.03.31 08:13:39 5: testBattStatus: not on any display, ignoring notify
2017.03.31 08:13:39 5: End notify loop for bu_FensterSensor


Es scheint so, dass das Notify überhaupt nicht aktiviert wird. Ich verstehe leider nicht wieso? Hat vielleicht jmd. eine Idee?

Gruß

Mundus

Otto123

Hi Mundus,

und Dein Event sieht wirklich so aus? -> reportedState:open

Ich vermute ja eher der Event sieht so aus -> reportedState open

Dann wäre der Trigger so richtig -> bu_FensterSensor:reportedState.open

Aber reine Vermutung.  ;)

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

CoolTux

Oder so


bu_FensterSensor:reportedState:.open
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

Mundus

Hallo,

wie sagt man so schön "Fehler 30"! Ich habe alle angeschaut, gelesen -sogar ein PERL-Buch- usw. Die Erleuchtung, dass der Punkt bei den Befehlen .* natürlich auch das Leerzeichen umfasst, ist mir erst jetzt gekommen ;-).

Vielleicht könnt ihr mir noch, für mein Verständnis, den Unterschied zwischen der Syntax
Zitat von: Otto123 am 31 März 2017, 09:14:12
bu_FensterSensor:reportedState.open
Zitat von: CoolTux am 31 März 2017, 09:17:45
Oder so


bu_FensterSensor:reportedState:.open

beschreiben? Und dann noch eine Frage, mit dem Befehl

bu_FensterSensor:reportedState.* if ($EVENT eq "open") {
fhem "set bu_Thermostat thermostatSetpointSet 14.0"
} else {
fhem "set bu_Thermostat thermostatSetpointSet 20.0"
}
müsste ich die beiden Notifys doch auch zusammenfassen können. Ist dies Effizienter (trotz Wechsel von FHEM zu Perl und zurück) oder ist es besser, die beiden einzelnen Notifys zu haben.

Gruß und vielen Dank für die Lösung des Problems

Mundus

CoolTux

Der Unterschied ist der Doppelpunkt. Im Normalfall trennt ein Reading und sein value ein Doppelpunkt. Das sollte auch im Eventmonitor ersichtlich sein.

Im Prinzip kann man das auch zusammenfassen. Aber die Abfrage dann nicht auf EVENT machen, denn EVENT umfasst immer das ganze Event nach dem Device. Du willst ja nur das Value vom Event. Also $EVTPART1 statt $EVENT
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

Mundus

Danke. Habe hoffentlich das geschriebene verstanden  ;D

Prof. Dr. Peter Henning


Otto123

Zitat von: Mundus am 31 März 2017, 09:50:53
Vielleicht könnt ihr mir noch, für mein Verständnis, den Unterschied zwischen der Syntax beschreiben?
Hi,

Du musst die commandref genau lesen:
ZitatHinweise:
<Suchmuster> ist entweder der Name des auslösenden ("triggernden") Gerätes oder die Kombination aus Gerät und auslösendem Ereignis (Event) Gerätename:Event.
Das <Suchmuster> muss exakt (!) entweder dem Gerätenamen entsprechen oder der Zusammenfügung aus Gerätename:Event. Events lassen sich mit "inform" in Telnet oder durch Beobachtung des "Event-Monitors" in FHEMWEB ermitteln.
Der erste Doppelpunkt trennt das Gerät vom Event. Der wird von Dir eingefügt. Du musst Dir im Eventmonitor den Event genau anschauen, manche Events enthalten einen Doppelpunkt manche nicht. Wenn im Event kein Doppelpunkt ist Bla Bladann ist das regex Bla.Bla Wenn ein Doppelpunkt da ist Bla: Bla dann ist das Regex Bla:.Bla
Der Punkt nimmt im Regex jedes Zeichen, also auch ein Leerzeichen.

Und mittlerweile geht das alles relativ einfach, man kann im Eventmonitor das notify genau aus der Zeile die man will generieren lassen.

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