Ich zeige euch hier kurz und knapp wie man die Homematic IP Funk Rauchmelder HmIP-SWSD* in openHAB einbindet.
Inzwischen bin ich echt ein Fan der Funk Rauchmelder geworden, die einfach gut funktionieren, sind schnell montiert, halten lange und sehen optisch ganz schick aus. Allerdings muss man auch gestehen, dass die nicht gerade die günstigen Rauchmelder auf dem Markt sind: 1 x HmIP-SWSD (bei amazon.de 55€)* | 3 x HmIP-SWSD (bei amazon.de 165€)* – Stand 7.2020.
Das Gerät (thing) erstellen:
Thing HmIP-SWSD 000A5A49XXXXXX "Rauchmelder - Keller - Heizraum" @ "Rauchmelder"
Die Items erstellen:
Group Rauchmelder_Status
Group Unreach_Group
Switch Rauchmelder_KE_HEIZ_Unreach "Unreachable" <siren> (Unreach_Group) {channel="homematic:HmIP-SWSD:ccu:000A5A49XXXXXX:0#UNREACH"}
Number Rauchmelder_KE_HEIZ_Signal <qualityofservice> {channel="homematic:HmIP-SWSD:ccu:000A5A49XXXXXX:0#SIGNAL_STRENGTH"}
String Rauchmelder_KE_HEIZ_Command {channel="homematic:HmIP-SWSD:ccu:000A5A49XXXXXX:1#SMOKE_DETECTOR_COMMAND"}
String Rauchmelder_KE_HEIZ_AlarmStat <fire> (Rauchmelder_Status) {channel="homematic:HmIP-SWSD:ccu:000A5A49XXXXXX:1#SMOKE_DETECTOR_ALARM_STATUS"}
String Rauchmelder_KE_HEIZ_TestResult <fire> (Rauchmelder_Status) {channel="homematic:HmIP-SWSD:ccu:000A5A49XXXXXX:1#SMOKE_DETECTOR_TEST_RESULT"}
Number Rauchmelder_KE_HEIZ_LOWBAT "Batteriestatus [MAP(batterie.map):%s]" <battery> {channel="homematic:HmIP-SWSD:ccu:000A5A49XXXXXX:0#LOW_BAT"}
Number Rauchmelder_KE_HEIZ_TOS5 {channel="homematic:HmIP-SWSD:ccu:000A5A49XXXXXX:0#TIME_OF_OPERATION"}
String Rauchmelder_KE_HEIZ_TOS_Status "Laufzeit Status" {channel="homematic:HmIP-SWSD:ccu:000A5A49XXXXXX:0#TIME_OF_OPERATION_STATUS"}
Regel (rules) für die Benachrichtigung via E-Mail und App Push Benachrichtigung erstellen:
//Rauchmelder Benachrichtigung
val String filename = "rauchmelder.rules
rule "Rauchmelder Status"
when
Member of Rauchmelder_Status changed
then
if(triggeringItem.state == 'COMMUNICATION_TEST_SENT') {
logInfo(filename, "Kommunikationstest gesendet. {}",triggeringItem.name)
}
else if (triggeringItem.state == 'COMMUNICATION_TEST_SENT') {
logInfo(filename, "Kommunikationstest gesendet. {}",triggeringItem.name)
}
else if (triggeringItem.state == 'COMMUNICATION_TEST_OK') {
logInfo(filename, "Kommunikationstest OK. {}",triggeringItem.name)
}
else if (triggeringItem.state == 'SMOKE_TEST_OK') {
logInfo(filename, "Systemtest OK. {}",triggeringItem.name)
}
else if (triggeringItem.state == 'SMOKE_TEST_FAILED') {
logInfo(filename, "Systemtest fehlerhaft. {}",triggeringItem.name)
sendNotification("xx@xx.de", "Systemtest fehlerhaft. " +triggeringItem.name)
}
else if (triggeringItem.state == 'PRIMARY_ALARM') {
logInfo(filename, "Feueralarm. {}",triggeringItem.name)
sendNotification("xx@xx.de", "Feueralarm. " +triggeringItem.name)
}
else if (triggeringItem.state == 'SECONDARY_ALARM') {
logInfo(filename, "Feueralarm (fremdausgelöst). {}",triggeringItem.name)
sendNotification("xx@xx.de", "Feueralarm. " +triggeringItem.name) }
else if (triggeringItem.state == 'INTRUSION_ALARM') {
logInfo(filename, "Einbruchsalarm signalisiert.. {}",triggeringItem.name)
}
end
So sehen dann die Events aus:
Bei Rauchmeldung - Primär - als an dem Gerät wo die Rauchmeldung dedektiert wurde
2020-07-06 18:33:03.579 [vent.ItemStateChangedEvent] - Rauchmelder_KE_HEIZ_AlarmStat changed from IDLE_OFF to PRIMARY_ALARM
2020-07-06 18:33:03.587 [vent.ItemStateChangedEvent] - Rauchmelder_KE_HEIZ_Status changed from IDLE_OFF to PRIMARY_ALARM
Bei Rauchmeldung - Sekundär - das via Funk vernetzte Gerät was mit Piept
2020-07-06 18:33:06.792 [vent.ItemStateChangedEvent] - Rauchmelder_KE_HEIZ_AlarmStat changed from IDLE_OFF to SECONDARY_ALARM
2020-07-06 18:33:06.797 [vent.ItemStateChangedEvent] - Rauchmelder_KE_HEIZ_Status changed from IDLE_OFF to SECONDARY_ALARM
Ich hoffe ich konnte dem ein oder anderen damit die Einbindung in openHAB erleichtern. Vergesst nicht die Rauchmelder inkl. der Benachrichtigung auch mal via einem Testspray* (klick mich) zu testen. Das Spray ist relativ günstig und funktioniert gut! 🙂
HALLO
Das sieht ja ganz gut aus.
Ich hätte da nur eine frage.
Was ist in der batterie.map eingetragen?
Hi, irgendwie hab ich dein Kommetar überlesen, sorry. Hier:
0=OK
1=LEER
true=Batterie wechseln
false=Batterie OK
ON=Batterie wechseln
OFF=Batterie OK
//
NULL=unbekannt ⁉
UNDEF=unbekannt ⁉
-=-Fehler bei der Initialisierung-
Hallo
Danke für die Anleitung, hat mit beim Einbinden der Rauchmelder sehr geholfen.
Eine Frage dazu:
was ist der Unterschied bei den Items 1 und 4?
Die verwenden doch den gleichen Datenpunkt.
Gruss Macro