Hallo,
ich habe einen Fibaro Relais Switch und dazu ein userReading defineiert.
Sie sieht so aus:
zustand {ReadingsVal("ZWave_SENSOR_BINARY_18","basicSet","ff")}
Ich ziehe mir damit den Status eines Sensors.
Mein Problem ist aber, dass sich das userReading bei den Readings vom Schalter nciht aktualisiert.
Nur wenn ich explizit "configAll" abrufe wird das Reading aktualisiert.
Wie kann ich das denn machen, damit dies automatisch funktioniert?
Danke
Gruss
Dennis
Internals:
DEF c1aa9dda 16
IODev ZWAVE1
LASTInputDev ZWAVE1
MSGCNT 194
NAME ZWave_SWITCH_BINARY_16
NR 120
STATE off
TYPE ZWave
ZWAVE1_MSGCNT 194
ZWAVE1_RAWMSG 00040010057006060100
ZWAVE1_TIME 2016-03-05 15:11:15
homeId c1aa9dda
isWakeUp
lastMsgSent 1457187075.8029
nodeIdHex 10
Readings:
2016-03-05 15:11:13 configActiveFlashingAlarmTime 600
2016-03-05 15:11:13 configAutoOff 2
2016-03-05 15:11:14 configAutoOffRelayAfterSpecifiedTime ManualOverrideDisabled
2016-03-05 15:11:14 configDimmerRollerShutterControl DisableDimmerRollerShutter0
2016-03-05 15:11:14 configEnableDisableALLONOFF ALLONActiveALLOFFActive
2016-03-05 15:11:14 configInputsBehaviour Toggle
2016-03-05 15:11:14 configInputsButtonSwitchConfiguration BiStableInputSwitch
2016-03-05 15:11:15 configRelayResponseToGeneralAlarm ALARMFLASHINGRelayWillTurnONAndO3
2016-03-05 15:11:15 configRelayResponseToSmokeCOCO2Alarm ALARMFLASHINGRelayWillTurnONAndO3
2016-03-05 15:11:15 configRelayResponseToTemperatureAlarm ALARMRELAYONRelayWillTurnONUpon1
2016-03-05 15:11:15 configRelayResponseToWaterFloodAlarm ALARMRELAYOFFRelayWillTurnOFF2
2016-03-05 15:11:15 configSavingStateBeforePowerFaillure StateSavedAtPowerFailureAll1
2016-03-05 15:11:15 configSeparationOfAssociationSending6 MapStatusToAllDevicesInGroup10
2016-02-27 20:08:12 model FIBARO System FGS212 Switch 3kW
2016-02-27 20:08:12 modelConfig fibaro/fgs212.xml
2016-02-27 20:08:12 modelId 010f-0402-1002
2016-02-27 20:07:28 powerlvl current 0 remain 0
2016-03-05 15:10:58 reportedState off
2016-03-05 15:10:58 state off
2016-03-05 15:11:15 transmit OK
2016-02-27 20:09:10 version Lib 3 Prot 3.52 App 2.2
2016-03-05 15:11:15 zustand 00
Attributes:
IODev ZWAVE1
alias Garagentor
classes MANUFACTURER_SPECIFIC VERSION CONFIGURATION ASSOCIATION MULTI_CHANNEL_ASSOCIATION MULTI_CHANNEL SWITCH_BINARY SWITCH_ALL FIRMWARE_UPDATE_MD POWERLEVEL MARK SWITCH_BINARY MULTI_CHANNEL
room Aussen
userReadings zustand {ReadingsVal("ZWave_SENSOR_BINARY_18","basicSet","ff")}
ZitatMein Problem ist aber, dass sich das userReading bei den Readings vom Schalter nciht aktualisiert.
Ich verstehe nicht genau was du damit meinst. Deine Zeile kopiert bei jede Nachricht vom ZWave_SENSOR_BINARY_18 den Wert des Readings basicSet nach zustand. Wenn der Sensor kein basicSet sendet, sondern was anderes, dann aendert sich "zustand" nicht. Wenn ich falsch geraten habe: ein Log mit "attr ZWAVE1 verbose 5" wuerde helfen. Dass userReadings mit ZWave in der aktuellen Version noch funktioniert, habe ich gerade getetet.
Hi,
also wenn ich den Sensor öffne und schließe befindet sich folgendes im Log:
2016.03.05 17:59:12 4: ZWDongle_Read ZWAVE1: sending ACK, processing 00040012032001ff
2016.03.05 17:59:12 5: SW: 06
2016.03.05 17:59:12 5: ZWAVE1 dispatch 00040012032001ff
2016.03.05 17:59:12 4: CMD:APPLICATION_COMMAND_HANDLER ID:12 ARG:032001ff
2016.03.05 17:59:13 4: ZWDongle_Read ZWAVE1: sending ACK, processing 000400120a710507ff00ff07020000
2016.03.05 17:59:13 5: SW: 06
2016.03.05 17:59:13 5: ZWAVE1 dispatch 000400120a710507ff00ff07020000
2016.03.05 17:59:13 4: CMD:APPLICATION_COMMAND_HANDLER ID:12 ARG:0a710507ff00ff07020000
2016.03.05 17:59:32 4: ZWDongle_Read ZWAVE1: sending ACK, processing 0004001203200100
2016.03.05 17:59:32 5: SW: 06
2016.03.05 17:59:32 5: ZWAVE1 dispatch 0004001203200100
2016.03.05 17:59:32 4: CMD:APPLICATION_COMMAND_HANDLER ID:12 ARG:03200100
2016.03.05 17:59:32 4: ZWDongle_Read ZWAVE1: sending ACK, processing 000400120a7105070000ff07020000
2016.03.05 17:59:32 5: SW: 06
2016.03.05 17:59:32 5: ZWAVE1 dispatch 000400120a7105070000ff07020000
2016.03.05 17:59:32 4: CMD:APPLICATION_COMMAND_HANDLER ID:12 ARG:0a7105070000ff07020000
Der Sensor ändert nur das Reading "basicSet". Dieses ändert sich von 00 = geschlossen auf ff=offen.
Allerdings macht mich das Log etwas stutzig, was genau der Sensor sendet.
Im Eventmonitor steht:
2016-03-05 18:05:03 ZWave ZWave_SENSOR_BINARY_18 basicSet: ff
2016-03-05 18:05:03 ZWave ZWave_SENSOR_BINARY_18 alarm: HomeSecurity: Intrusion, Unknown Location, arg 0000
2016-03-05 18:05:11 ZWave ZWave_SENSOR_BINARY_18 basicSet: 00
2016-03-05 18:05:12 ZWave ZWave_SENSOR_BINARY_18 alarm: HomeSecurity: Event cleared: Intrusion, Unknown Location
Gruss
Dennis
Wenn ich dein Geraet mit deinem userReadings bei mir definiere, und die Nachricht aus dem Log simuliere, dann funktioniert alles:
fhem> define ZWave_SENSOR_BINARY_18 ZWave deadbeef 18
fhem> attr ZWave_SENSOR_BINARY_18 userReadings zustand {ReadingsVal("ZWave_SENSOR_BINARY_18","basicSet","ff")}
fhem> info timer
fhem> {Dispatch($defs{zwc}, "0004001203200100", undef) }
2016-03-05 18:08:58.234 ZWave ZWave_SENSOR_BINARY_18 basicSet: 00
2016-03-05 18:08:58.234 ZWave ZWave_SENSOR_BINARY_18 zustand: 00
und ich verstehe dein Problem nicht.
Mein Problem ist, dass sich zustand nach einer Änderung in den Readings nicht aktualisiert.
Wenn ich den Sensor in die Hand nehme und öffne (also ff) dann bleibt das Reading zustand im Fibaro Schalter auf 00 stehen.
Lade ich mir dann beispielsweise die config mit get configAll, aktualisiert sich das Reading. Aber eben nicht automatisch.
Gruss
Dennis
Wenn dein EventMonitor Auszug vollstaendig ist, dann ist die userReadings Definition falsch. Oder FHEM alt. Oder lokal modifiziert.
Wie geschrieben, kann es leider anhand der mir vorliegenden Daten nicht bestaetigen, in meinem Log wird zustand geaendert.
Ich hänge hier mal noch einen Screenshot an. Vielleicht kann man damit mehr anfangen.
Gruss
Dennis
Zitat von: dennis_n am 05 März 2016, 16:15:08
Hallo,
ich habe einen Fibaro Relais Switch und dazu ein userReading defineiert.
Sie sieht so aus:
zustand {ReadingsVal("ZWave_SENSOR_BINARY_18","basicSet","ff")}
Hast Du dafür folgenden Befehl abgesetzt und danach auf "Save config" gedrückt oder "save" als Kommando abgesetzt?
attr ZWave_SENSOR_BINARY_18 userReadings zustand {ReadingsVal("ZWave_SENSOR_BINARY_18","basicSet","ff")}
ZitatIch hänge hier mal noch einen Screenshot an. Vielleicht kann man damit mehr anfangen.
Das ist Geraet 16, und kopiert basicSet vom Geraet 18. Aber nur dann, wenn von Geraet 16 einen Nachricht eintrifft (userReading reagiert auf Events des eigenen Geraetes, nicht auf welche von anderen). Da 16 aber ein Schalter ist, kommt wohl selten eine Nachricht, es sei denn, man holt configs ab.
Sorry, ich habe deinen ersten Post nicht aufmerksam genug gelesen: das macht man nicht so.
Variante 1: Sensor und Aktor sind direkt (d.h. ohne FHEM) verbunden. Dann sollte bei richtiger Konfiguration der Aktor den neuen Zustand an FHEM direkt melden (siehe Association). Wenn man das nicht hinkriegt, dann verwendet man ein notify, was auf den Sensor reagiert, und per setstate oder setreading beim Aktor was setzt.
Variante 2: Sensor und Aktor sind ueber FHEM verbunden. Dann notify definieren, was auf Sensor reagiert, und den Aktor per set setzt.
Eine letzte Frage: Sollte das unbedingt über ein notify sein oder kann ich auch DOIF benutzen?
Das folgende DOIF funktioniert auf jeden Fall. Hätte ein notify irgendwelche Vorteile?
([ZWave_SENSOR_BINARY_18] eq "00" )(setreading ZWave_SWITCH_BINARY_16 zustand 00) DOELSEIF ([ZWave_SENSOR_BINARY_18] eq "ff" )(setreading ZWave_SWITCH_BINARY_16 zustand ff)
Gruss
Dennis
notify mit DOIF zu vergleichen ist eine Glaubensfrage.
Und Glaubenskriege fangen wir hier nicht an.