Ich habe mir das untenstehende notify gebastelt, um bei einem Alarm an einem meiner Rauchmelder benachrichtigt zu werden. Das scheint auch (zumindest per trigger getestet) zu funktionieren. Allerdings hat eben bei einem shutdown restart das notify ebenfalls ausgelöst. Kann mir wer erlären, warum?
Internals:
DEF .*:smoke_detect.* {
my $alarm = "ALARM!!! [$EVTPART1:alias]: ALARM!!!\n\nTemperaturen:\n\n";
foreach my $wt (devspec2array(".*_wt_Weather")) {
$alarm .= AttrVal($wt,"alias_Übersicht",$wt).": ".ReadingsVal($wt,"temperature",undef)."°C\n";
};
$alarm .= "Keller: ".ReadingsVal("klima_keller","temperature",undef)."°C";
fhem("msg push ".$alarm);
}
NAME n_Feueralarm
NR 95
NTFY_ORDER 50-n_Feueralarm
REGEXP .*:smoke_detect.*
STATE active
TYPE notify
Readings:
2017-05-13 17:37:09 state active
Attributes:
room Automatisierung
Kannst du mal noch ein list des Rauchmelders dazu hängen? Setzt er beim initialisieren smoke_detect auf off o.ä.?
Vmtl. ist die regexp des notify zu weit gefasst.
Hi,
leg Dir doch mal ein FileLog mit genau dieser RegEx an. Dann müsstest Du ja sehen, was genau Schuld daran ist.
Gruß,
Thorsten
Danke, Ihr hattet beide recht: Der Teamleader der Rauchmelder setzt beim restart ein "smoke_detect: none" ab. Insofern war die regex tatsächlich zu weit gefasst. Ich hab's jetzt wie unten geändert.
@Thorsten: Guter Tip für die Zukunft, in dem Fall hat's mein DbLog für den betroffenen Raum aber getan.
Internals:
DEF .*:smoke_detect:(?!\040none).* {
my $alarm = "ALARM!!! [$EVTPART1:alias]: ALARM!!!\n\nTemperaturen:\n\n";
foreach my $wt (devspec2array(".*_wt_Weather")) {
$alarm .= AttrVal($wt,"alias_Übersicht",$wt).": ".ReadingsVal($wt,"temperature",undef)."°C\n";
};
$alarm .= "Keller: ".ReadingsVal("klima_keller","temperature",undef)."°C";
fhem("msg push ".$alarm);
}
NAME n_Feueralarm
NR 95
NTFY_ORDER 50-n_Feueralarm
REGEXP .*:smoke_detect:(?!\040none).*
STATE 2017-05-13 18:54:47
TYPE notify
Readings:
2017-05-13 18:54:38 state active
Attributes:
room Automatisierung