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
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
Oder so
bu_FensterSensor:reportedState:.open
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
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
Danke. Habe hoffentlich das geschriebene verstanden ;D
Falls nicht:
https://regex101.com/
LG
pah
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 Bla
dann 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