Fibaro Flood Sensor

Begonnen von pi-user, 14 Mai 2017, 19:51:48

Vorheriges Thema - Nächstes Thema

pi-user

Hallo zusammen,

ich habe heute den Wassermelder von Fibaro unter fhem eingebunden. Normalerweise muss das Attribut state in Readings on oder off zeigen. Zurzeit zeigt der state aber folgendes:

state wakeupInterval 86400 1

Ich habe den Wassermelder mit etwas Wasser zum Singen gebracht, aber in der fhem Logdatei passiert gar nichts! Wann wird sich der Status ändern?

Vielen Dank im Voraus.

krikan

https://wiki.fhem.de/wiki/Z-Wave#Warum_bleibt_der_Status_.28STATE.29_des_neu_inkludierten_Ger.C3.A4tes_dauerhaft_auf_.22associationAdd_.3CassociationGroup.3E_.3CCtrlNodeId.3E.22_stehen.3F gilt hier analog.

Es gibt im Übrigen kein Attribut state.
Es gibt ein Reading state, ein Internal STATE und ein Attribut  stateFormat.

Gruß, Christian

pi-user

Danke, aber ich werde irgendwie mit stateFormat nicht schlau!?! Wie bekomme ich mit dem Readings State hin? ich habe auch andere Z-Wave Sensoren eingebunden und sie gaben auf Anhieb funktioniert.

Wie sieht der Befehl dafür aus?

krikan

https://fhem.de/commandref.html#stateFormat

Mehr kann ich Dir leider nur schreiben, wenn Du mehr Infos lieferst (bspw. "list <device>"). Kenne den Sensor nicht und habe keine Ahnung, was der schickt.
Bin noch noch nicht einmal sicher, ob insbesondere die Assoziation erfolgreich war. Hast Du die mit "get <device> associationAll" kontrolliert?

pi-user

Ich habe get <device> associationAll" ausgeführt. Ergebnis: Working in Background

Der Z-Wave Dongle hat aber den Wassermelder registriert. Ich muss nur irgendwie den State so korrigieren, dass er on oder off anzeigt. Schade, dass das Ganze nicht einfach beim Inkludieren automatisch stattfindet!

krikan

Zitat von: pi-user am 14 Mai 2017, 20:29:36
Ich habe get <device> associationAll" ausgeführt. Ergebnis: Working in Background
Dann wecke ihn manuell auf, damit es beim Sensor abegfragt wird.

Zitat
Der Z-Wave Dongle hat aber den Wassermelder registriert.
Wenn die Assoziation und die Konfiguration stimmt ist alles ok...
Wenn nicht, was ich aus der schwammigen Beschreibung "Ich habe den Wassermelder mit etwas Wasser zum Singen gebracht, aber in der fhem Logdatei passiert gar nichts!" befürchte, dann hilft momentan noch kein stateFormat

ZitatIch muss nur irgendwie den State so korrigieren, dass er on oder off anzeigt.
Das ist mir schon klar; nur kann ich Dir nicht helfen, wenn ich keine Ahnung habe, was der Sensor bei einem Alarm liefert. Dann musst Du auf jemanden warten, der den Sensor auch hat. Wobei es den Sensor in 2 komplett unterschiedlichen Versionen gibt und Du nicht verraten hast, welchen Du hast.

Fazit: Bitte mehr Fakten..  :)

PS: https://wiki.fhem.de/wiki/Z-Wave#Welche_Infos_sollten_Anfragen_im_ZWave-Forum_enthalten.3F

pi-user

Danke. Ich werde morgen nachschauen, welche Version ich habe.

item

Ich steuere meinen Sensor wie folgt an:


define Alarm_Waschraum_Wassersensor_Alarm DOIF ([Waschraum_Wassersensor_Alarm:basicSet] > 0)\
(\
set Sonos_Wohnzimmer Speak 50 de Der Sensor im Waschraum meldet Wasser. Bitte in den Keller gehen und kontrollieren!;;\
{email('xxx@xxx.net','Alarm: Wassersensor','Der Sensor im Waschraum meldet Wasser. Bitte in den Keller gehen und kontrollieren!')}\
)
attr Alarm_Waschraum_Wassersensor_Alarm repeatcmd 120


pi-user

Hallo item,

ich werde es probieren. Ich habe eigentlich immer notify verwendet!

pi-user

Moldel: FIBARO System FGFS101 Zwave+ Flood Sensor

Der State steht immer noch auf "wakeupInterval 86400 1". Das ist echt krank! Die anderen Z-Wave Geräte haben sofort funktioniert.
Ich bin seit gestern dabei den State auf "on" oder "off" zu bekommen, aber ohne Erfolg.

item

Hast du das Reading "basicSet" nicht? Bei mir hat FHEM den Sensor als quasi 2 Geräte erkannt. Bei einem
Readings
UNPARSED

SENSOR_MULTILEVEL 083104014400000717

2017-03-01 18:38:58
state

0

2017-04-21 08:18:13
temperature

18.25 C

2017-05-14 19:49:00


und bei dem zweiten Eintrag eben u. a. das basicSet Reading:
Readings
UNPARSED

UNKNOWN_B1 08b1050144000006fe

2017-04-26 09:52:14
alarm_type_00

level 255 node 14 seconds 0

2017-04-23 15:20:28
alarm_type_05

level 0 node 14 seconds 0

2017-04-23 15:20:25
basicSet

0

2017-04-23 15:20:25
battery

81 %

2016-09-04 14:41:28
cmdGet

wakeupInterval

2016-10-28 00:05:06
configAcousticAndVisualSignals

AcousticACTIVEVisualACTIVE

2016-10-30 07:04:11
mcCapability_01

SENSOR_BINARY

2016-08-25 22:55:00
mcCapability_02

SENSOR_MULTILEVEL

2016-08-25 22:55:00
mcEndpoints

total 2, different

2016-08-25 22:55:00
model

FIBARO System FGFS101 Flood Sensor

2016-08-25 22:55:00
modelConfig

fibaro/fgfs101.xml

2016-08-25 22:55:00
modelId

010f-0b00-1001

2016-08-25 22:55:00
state

TRANSMIT_NO_ACK

2016-10-30 21:37:43
timeToAck

0.073

2017-05-11 10:24:15
transmit

OK

2017-05-11 10:24:15
wakeup

notification

2017-05-11 10:24:13



krikan

FIBARO System FGFS101 Flood Sensor und FIBARO System FGFS101 Zwave+ Flood Sensor sind unterschiedliche Sensoren.

item

Sorry, das wusste ich nicht - bin noch Z-Wave DAU  :)

krikan

Zitat von: item am 15 Mai 2017, 14:38:39
Sorry, das wusste ich nicht - bin noch Z-Wave DAU  :)
Ist vom Hersteller mMn auch etwas verwirrend gemacht. Der Unterschied wird nicht sehr deutlich.

@pi-user
Wenn Du zumindest die Ausgabe von "list <device>" des Sensors postet, dann bist Du vielleicht schneller am Ziel.

pi-user

Hallo item,

ich habe kein Reading "basicSet"! Kann man es mit dem set Befehl setzen? Ich habe nachgeschaut. Man kann set basicSet <Parameter???> aufrufen. Ich weiß nur nicht, wozu basicSet gut sein soll und was für einen Parameter man übergeben muss. Vielleicht muss man doch mit einem set Befehl etwas setzen, damit der Zustand (State) sich ändert!

pi-user

#15
Hier ist das Ergebnis von list <Device>


Internals:
   DEF        c720bd0b 4
   IODev      ZWDongle
   NAME       Wassermelder.HW
   NR         154
   STATE      wakeupInterval 86400 1
   TYPE       ZWave
   ZWaveSubDevice no
   homeId     c720bd0b
   nodeIdHex  04
   Readings:
     2017-05-15 06:18:13   CMD             ZW_APPLICATION_UPDATE
     2017-05-15 06:19:06   alarm           HomeSecurity: Event cleared: Previous Events cleared
     2017-05-14 19:36:44   battery         100 %
     2017-05-14 20:18:52   model           FIBARO System FGFS101 Zwave+ Flood Sensor
     2017-05-14 20:18:52   modelConfig     fibaro/fgfs101zw5.xml
     2017-05-14 20:18:52   modelId         010f-0b01-1002
     2017-05-14 19:36:44   powerlvl        current 0 remain 0
     2017-05-14 20:18:50   state           wakeupInterval 86400 1
     2017-05-15 07:08:04   temperature     23.21 C
     2017-05-15 06:18:24   timeToAck       0.028
     2017-05-15 06:18:24   transmit        OK
     2017-05-15 06:18:22   wakeup          notification
Attributes:
   IODev      ZWDongle
   classes    ZWAVEPLUS_INFO APPLICATION_STATUS ASSOCIATION ASSOCIATION_GRP_INFO BASIC BATTERY CONFIGURATION CRC_16_ENCAP DEVICE_RESET_LOCALLY FIRMWARE_UPDATE_MD MANUFACTURER_SPECIFIC MULTI_CHANNEL_ASSOCIATION ALARM POWERLEVEL SECURITY SENSOR_ALARM SENSOR_MULTILEVEL VERSION WAKE_UP
   room       ZWave
   vclasses   ALARM:5 APPLICATION_STATUS:1 ASSOCIATION:2 ASSOCIATION_GRP_INFO:1 BASIC:1 BATTERY:1 CONFIGURATION:1 CRC_16_ENCAP:1 DEVICE_RESET_LOCALLY:1 FIRMWARE_UPDATE_MD:3 MANUFACTURER_SPECIFIC:2 MULTI_CHANNEL_ASSOCIATION:2 POWERLEVEL:1 SECURITY:1 SENSOR_ALARM:1 SENSOR_MULTILEVEL:5 VERSION:2 WAKE_UP:2 ZWAVEPLUS_INFO:2



krikan

Du hast kein Reading basicSet, weil der Sensor das nicht mehr im Standard an den Controller schickt. Das wird bei Deinem Sensor über eine andere Command Class signalisiert.

Letztlich hast Du (mindestens) 2 Lösungswege:
a)
Controller in Assogroup 2 des Sensors aufnehmen. Dann bekommt der Controller laut Doku des Sensors zusätzlich die Befehle mit der Command Class BASIC und Du kannst so wie beim "alten" Sensor stateFormat setzen. Diese einfach anmutende Lösung empfehle ich ausdrücklich nicht, da unnötiger Funkverkehr verursacht wird. Gefahr von unnötigen Funkkollisionen.
b)
attr <device> extendedAlarmReadings 1
setzen. Einen Testalarm auslösen, damit man die Events für Alarm und Ende Alarm kennt.
In stateFormat das passend umsetzen, wie beispielsweise hier: https://wiki.fhem.de/wiki/Z-Wave-PHI_PST02-1A-T%C3%BCr-,_Bewegungs-,_Helligkeits-,_Temperatursensor#STATE_mit_open.2Fclosed_anzeigen oder hier Infos zu Events liefern.

pi-user

Hallo krikan,

ich danke Dir. :) Ich werde heute Abend probieren.

pi-user

Ich habe gerade getestet. Die Logdatei sieht nun so aus:

2017.05.15 19:27:49 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 456) line 1.
2017.05.15 19:27:49 3: eval: Wassermelder.HW.Alarm: warning in condition c01
2017.05.15 19:28:13 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 458) line 1.
2017.05.15 19:28:13 3: eval: Wassermelder.HW.Alarm: warning in condition c01
2017.05.15 19:32:44 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 468) line 1.
2017.05.15 19:32:44 3: eval: Wassermelder.HW.Alarm: warning in condition c01
2017.05.15 19:32:51 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 470) line 1.
2017.05.15 19:32:51 3: eval: Wassermelder.HW.Alarm: warning in condition c01
2017.05.15 19:33:15 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 472) line 1.
2017.05.15 19:33:15 3: eval: Wassermelder.HW.Alarm: warning in condition c01
2017.05.15 19:33:22 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 474) line 1.
2017.05.15 19:33:22 3: eval: Wassermelder.HW.Alarm: warning in condition c01
2017.05.15 19:33:32 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 476) line 1.
2017.05.15 19:33:32 3: eval: Wassermelder.HW.Alarm: warning in condition c01


Was ist das denn?

pi-user

Es gibt ein neues Reading "alarm_Water". Bitte siehe das Bild. Ich kann aber damit nicht viel anfangen.

pi-user

Ich habe die Lösung :)

define Wassermelder notify Wassermelder.HW:alarm..Water.*

Wenn der Wassermelder mit Wasser in Berührung kommt, dann bekomme ich eine Benachrichtigung. Soweit so gut. :) Aber wenn ich den Wassermelder vom Wasser befreie, dann bekommt ich wieder die gleiche Meldung. Warum bekomme ich zwei Meldungen?

tomspatz

#21
ZitatWarum bekomme ich zwei Meldungen?
Weil der Flood Sensor zwei Alarme generiert.
Beispiel:
2016-10-22 14:19:00 ZWave WasserSensorKueche alarm: Water: Leak detected - Unknown Location
2016-10-22 14:19:03 ZWave WasserSensorKueche alarm: Water: Event cleared: unknown event 0

Jeweils wenn wasser detektert wird und dann wieder wenn es trocken wird.
Dein notify triggert immer auf beide.
Probiere es nur auf Leak zu Triggern.

Event Monitor ist dein Freund ;)

btw:
get Wassermelder.HW configAll
Liefert dir alle Parameter die das jeweilige device kann.

LG
Tom

pi-user

Oh, da hast Du Recht.

Ich habe so probiert, aber ohne Erfolg:

define Wassermelder notify Wassermelder.HW:alarm..Water.Leak

pi-user

Es hat leider nicht mit

define Wassermelder notify Wassermelder.HW:alarm..Water.*Leak

funktioniert! Aus diesem Grund habe ich mein Problem so gelöst:

define Wassermelder notify Wassermelder.HW:alarm..Water.* {\
if( lc($EVTPART2) eq "leak" ) {\
fhem (<Nachricht schicken> );;\
}\
}


Ich wollte eigentlich ungern eine if Abfrage einbauen! Vielleicht habt ihr noch eine Idee, wie man auf Leak Event richtig reagiert. Danke.

tomspatz

notify ist leider nicht mein Freund, schau in den Event Monitor und NUR triggere NUR auf Leak.
https://fhem.de/commandref_DE.html#notify

LG
Tom

krikan

Soll jetzt eigentlich der STATE geändert werden oder ist das Ziel ein notify zu erstellen!?  :-\
Sorry, bin etwas verwirrt.  :-[

define Wassermelder notify Wassermelder.HW:alarm..Water..Leak.* {\

Sollte in Trockenübung auf Alarm-Event triggern, wenn nicht "attr <device> extendedAlarmReadings 1" gesetzt ist.


pi-user

>Soll jetzt eigentlich der STATE geändert werden oder ist das Ziel ein notify zu erstellen!?
Wenn ich irgendwie schaffe, um den STATE zu ändern, muss ich trotzdem notify verwenden, um benachrichtigt zu werden! Z.B.

define WassermelderNotify notify Wassermelder.HW:.* {\
if((ReadingsVal("Wassermelder.HW",<STATE>,"") eq  "XYZ")) {\
//bla bla
}\
}


Also, ich brauche so oder so ein notify. Ich vermute es zumindest.  ???

tomspatz

Jetzt probiere ich es zu letzten mal SORRY auch wenn das jetzt vom Start abweicht.

Zum dritten male NUR auf Leak Triggern.
Mein funktionierendes DOIF dafür sieht so aus:
defmod WasserleckBadAlarm DOIF ([WasserSensorBad:alarm] =~ "Leak") (set PushBenachrichtigung msg 'Wasser Sensor Bad' 'Wasserrohrbruch !')
Wobei du jetzt das device und die Benachrichtigung anpassen musst.

Und STATE muss nicht umgebogen werden.
SORRY krikan  ;)

LG
Tom


pi-user

Hallo Tom,

danke. Ich werde es probieren. Ich habe aber eine kleine Frage. Wie wird DOIF ausgelöst? Das ist doch kein notify. Oder ist es eine Schleife, die ständig läuft und prüft? Danke.

krikan

Zitat von: tomspatz am 16 Mai 2017, 10:44:17
Und STATE muss nicht umgebogen werden.
Für ein notify/DOIF auf einen Alarm oder sonstiges Ereignis des Sensors ist das Setzen von stateFormat natürlich nicht notwendig. Aber ohne stateFormat wird sich "wakeupInterval 86400 1" in STATE vermutlich nicht wirklich erledigen. Halte mich jetzt aber hier zurück, da ich wohl zu verwirrt bin...  :-X

pi-user

Hallo krikan,

vielen Dank für die Antworten. :)

Ich werde mir trotzdem mit dem stateFormat anschauen. Es schadet doch nicht.

tomspatz

@krikan
ZitatFür ein notify/DOIF auf einen Alarm oder sonstiges Ereignis des Sensors ist das Setzen von stateFormat natürlich nicht notwendig. Aber ohne stateFormat wird sich "wakeupInterval 86400 1" in STATE vermutlich nicht wirklich erledigen. Halte mich jetzt aber hier zurück, da ich wohl zu verwirrt bin...  :-X
Das stimmt zwar exakt ist allerdings nur optisch relevant.
LG
Tom

rudolfkoenig

ZitatIch habe so probiert, aber ohne Erfolg:

Falls ihr Regexp noch nicht kennt, oder verdraengt habt, dass notify automatisch ein ^ und $ an dem spezifizierten Regexp anfuegt, oder einfach denk-/tippfaul seid, dann gibt es zwei Wege, das notify-Regexp vom FHEM generieren zu lassen:

1. mit vorhandenen eventTypes-Definition (was in der ausgelieferten fhem.cfg Voreinstellung ist) bietet das notify Change-Wizard ein Dropdown an, um das notify-Regexp zu erweitern (Change condition).

2. Event-Monitor auswaehlen, Event erzeugen, Zeile markieren, und Create/Modify device anklicken.

Voraussetzung fuer beide Methoden ist, dass FHEM das Event bereits empfangen hat.