Neues Modul für Alarmanlage

Begonnen von Prof. Dr. Peter Henning, 08 September 2014, 20:43:06

Vorheriges Thema - Nächstes Thema

Esjay

Naja, das Alarmmodul muss erkennen, welches Event von dem Button generiert wird. Sprich du musst den regex passend setzen.
Bei dem Dummy der "on" kann z.B "Dummy:on" oder ":.*"
Je nachdem, auf welches Event du reagieren möchtest!

Grüße

UweUwe

Alarmauslösung bei Neustart (z.B. Stromausfall).
Ich habe bei dem Neustart von FHEM bei geschärftem Alarm regelmässig eine Auslösung des Alarmes durch den Homematic Bewegungsmelder.
Was kann ich tun, um dies zu verhindern? Ich hab 30 sec Schärfzeit eingestellt.
Im Logfile sehe ich:
019.03.09 16:03:54 1: sendEmail Text: Diele Bewegung Falter Einbruch Abwesend
2019.03.09 16:03:54 1: PERL WARNING: Use of uninitialized value $attach in concatenation (.) or string at ./FHEM/99_myUtils.pm line 37
Davor ist nichts, was auf Alarm etc. Die ersten Aktionen beim Neustart sind ca. 40 sec früher:
2019.03.09 16:03:15 3: telnetPort: port 7072 opened
2019.03.09 16:03:15 3: WEB: port 8083 opened


Schärfzeit auf 1 Minuten stellen, hilft das?



Beetle2003

Hallo UweUwe,

ich stelle soeben etwas ähnliches fest.

Wenn die Anlage aktiv ist und der Server startet neu, kommt die Anlage nicht in den Überwachungsmodus zurück. Ich habe eine Zeit von 1 Minute eingestellt, damit ich das Haus noch verlassen kann.
Ist die Minute vorbei und der Server startet im Aktivierten Zustand neu, so bleibt die Anlage im Waitmodus.

Hat jemand eine Lösung? Habe ich etwas falsch gemacht?

Danke für alle Hinweise.

Prof. Dr. Peter Henning

@Uweuwe:
ZitatSchärfzeit auf 1 Minuten stellen, hilft das?

Vermute: Nein. Hier wird beim Systemstart vom BM ein Event ausgelöst, der in der dann schon etwas eher aktiven Alarmanlage den Alarm triggert.

Ich wüsste gerne, wann genau diese Triggerung erfolgt (verbose höher setzen, damit man dies im Log sieht !) Und bitte zusätzlich

define FHEMStart notify global:INITIALIZED {Log 1,"=================> FHEM IST GESTARTET"}


definieren. Evtl. kann ich da eine Sicherung einbauen, die dafür sorgt, dass die Scharfstellung erst wieder aktiv ist, wenn das System komplett läuft.

@Beetle2003:
ZitatHabe ich etwas falsch gemacht?
Ja. Wahrscheinlich die Parameter nicht gesichert.

LG

pah

ujaudio

Hallo,

ich fange an, mich mit dem Modul zu beschäftigen, welches vermutlich optimal für meine Bedürfnisse passt. Da ich im Wiki nichts Konkretes dazu gefunden habe, folgende Frage:

Wenn ich im Winter bei geschlossenem Fenster schlafe, dann soll das Öffnen des Fensters einen Einbruchsalarm auslösen. Wenn das Fenster aber beim Zubettgehen im Sommer schon offen ist, dann möchte ich nicht, das dann gleich ein Einbruchsalarm ausgelöst wird. Kann ich einen Tipp bekommen, wie ich das programmieren muss?

Einen lieben Gruß
Jürgen
Einen lieben Gruß
Jürgen

Prof. Dr. Peter Henning

Na ja, wenn das Fenster schon offen ist, wir ja kein Event ausgelöst.

Stellt man die Alarmanlage beim Zubettgehen erst scharf, oder erfolgt der Öffnungsvorgang außerhalb der Start/Ende-Zeiten des Alarmkanals, gibt es auch keinen Alarm. Außerdem könnte man als "Bedigung" für eine Alarmauslösung noch eintragen, dass kein Sommer sein darf.

LG

pah

ujaudio

Danke, soweit klar. Ich habe nun auch schon einiges programmiert und es tut was es soll - bis auf eines:

Als Aktor habe ich eine laute Glocke, die aber nicht sofort läuten soll, sondern erst nach einer Verzögerung. Eingestellt habe ich es wie in dem beigefügten Bild. Allerdings läutet die Glocke sofort nachdem der Alarm durch einen Türkontakt ausgelöst wurde und nicht (testweise) 10 Minuten später.

Was ist mein Verständnisproblem?

Einen lieben Gruß
Jürgen
Einen lieben Gruß
Jürgen

majorshark

Gibt es einen Grund, dass die Unscharf-Aktion die Variablen $NAME $EVENT mit den entsprechenden Devicenamen der Sensoren und dessen Event ersetzt jedoch die Warte-Aktion oder bspw. die Widerruf-Aktion nicht obwohl diese auch durch Sensoren angesteuert werden?

Die Unscharf-Aktion "set telegram message Alarmanlage unscharf $NAME $EVENT" erzeugt die Telegram Nachricht: Alarmanlage unscharf <Device> <state>
Die Widerruf-Aktion "set telegram message Alarmanlage widerrufen $NAME $EVENT" erzeugt die Telegram Nachricht: Alarmanlage widerrufen $NAME $EVENT
Grüße aus Dewitz

VM auf Synology DS718+ mit FHEM 5.9 auf Debian 9.5/32-Bit (stretch)
Nächster Leipziger Stammtisch:

WW

Hallo,

ich würde im Alarmmodul (Version: 95_Alarm.pm:0.173440/2018-09-14) gerne den Default-Raum "Alarm" ändern. Nach der englischen Dokumentation geht dies über:

attr <name> publicroom <string>
Room name for public alarm room (containing sensor/actor devices), default: Alarm


Ich finde bei mir jedoch in der Attributsliste weder "publicroom" noch "hiddenroom". Ich habe über "userattr" testweise das Attribut "publicroom" angelegt und anschließend mit einem Raumnamen besetzt. Dies war jedoch erfolglos.

Meine FHEM-Installation ist auf aktuellem Stand.

Was mache ich falsch? Danke für entsprechende Hinweise.
FHEM 6.0 im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, SonoffZbBridge, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, Revolt, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl)

Beetle2003

Zitat von: WW am 04 September 2019, 18:19:39
Hallo,

ich würde im Alarmmodul (Version: 95_Alarm.pm:0.173440/2018-09-14) gerne den Default-Raum "Alarm" ändern. Nach der englischen Dokumentation geht dies über:

attr <name> publicroom <string>
Room name for public alarm room (containing sensor/actor devices), default: Alarm


Ich finde bei mir jedoch in der Attributsliste weder "publicroom" noch "hiddenroom". Ich habe über "userattr" testweise das Attribut "publicroom" angelegt und anschließend mit einem Raumnamen besetzt. Dies war jedoch erfolglos.

Meine FHEM-Installation ist auf aktuellem Stand.

Was mache ich falsch? Danke für entsprechende Hinweise.

Hallo,

es gibt das Attribut room. Wenn dieses über die Webgui geändert werden soll so erscheint eine Liste aller angelegten Räume.
Dort findest Du den Raum hidden. Alles was diesem Raum zugeordnet ist, ist versteckt.

Gruss

WW

#1255
Da habe ich mich wohl mißverständlich ausgedrückt: Ich meine nicht die Raumzuordnung für das Alarmdevice selbst, sondern die Raumzuordnung für die mit "Parameter setzen" erzeugten "alarmNotifier", die dafaultmässig dem Raum "Alarm" zugeordnet werden.

EDIT: Weitere Verfeinerung der Frage:

Auszüge aus "95_Alarm.pm:

#########################
# Global variables
my $alarmlinkname   = "Alarms";    # link text
my $alarmhiddenroom = "AlarmRoom"; # hidden room
my $alarmpublicroom = "Alarm";     # public room
my $alarmno         = 8;
my $alarmversion    = "5.0";


sub Alarm_Initialize ($) {
  ...
my $attst            = "lockstate:locked,unlocked testbutton:0,1 statedisplay:simple,color,table,none noicons iconmap disarmcolor ".
                         "armwaitcolor armcolor alarmcolor armdelay armwait armact disarmact cancelact";[/b]
  for( my $level=0;$level<$alarmno;$level++ ){
     $attst .=" level".$level."cond level".$level."start level".$level."end level".$level."autocan level".$level."msg level".$level."onact level".$level."offact ";
  }
  $hash->{AttrList}    = $attst;


$alarmpublicroom           = defined($attr{$name}{"publicroom"})  ? $attr{$name}{"publicroom"} : $alarmpublicroom; 

und

sub Alarm_CreateNotifiers($){
...
  for( my $level=0;$level<$alarmno;$level++ ){
... 
           CommandAttr (undef,'alarm'.$level.'.on.N room '.$alarmpublicroom);
...
           CommandAttr (undef,'alarm'.$level.'.arm.N room '.$alarmpublicroom);
...
           CommandAttr (undef,'alarm'.$level.'.disarm.N room '.$alarmpublicroom);


Für mich sieht das so aus:
Unter der Variablen "$alarmpublicroom" wird der Raum angegeben, in den die automatisch erzeugten alarmNotifier bei der Erstellung abgelegt werden. Diese Variable kann über das Attribut "publicroom" überschrieben werden und wird dann bei der Erstellung der Alarmnotifier angewendet. Leider steht das Attribut "publicroom" nicht in der Attributliste und lässt sich daher nicht anwenden.

Habe ich irgendwo einen Denkfehler?
FHEM 6.0 im Docker-Container (OMV4 auf ASRock J3455-ITX), FHEM 6.0 auf Raspi, Fritzbox 7490, CUL433, CUL868, Jeelink868, SIGNALduino, LaCrosseGateway, SonoffZbBridge, Shelly, Sonoff, ESP8266, ESP32, ESP32-Cam, LaCrosse, Revolt, OneWire, Zigbee (Sonoff, Blitzwolf, IKEA, Lidl)

coolice

Hallo Zusammen,

meine in der Vergangenheit funktionierende Konfiguration löst keine Alarme mehr aus.
Es ist jetzt erst aufgefallen, da in den letzten 13 Monaten immer jemand zu Hause war und nie scharf geschaltet wurde.
Ist etwas am Aufbau der RegExp geändert worden ? Bei einem Kontakt Sensor (HM-SEC-SC-2) den ich an einer Tür habe
sah das RegExp immer so aus Garage_Sensor:open Es ist egal mit welchem Sensor ich aktuell versuche den Alarm manuell auszulösen,
es wird kein Alarm ausgelöst.

Danke für eure Hilfe
Mirco

Prof. Dr. Peter Henning

Äh - nö. Keine Änderung.

LG

pah

Esjay

Hast du die Alarme mal neu generiert? Schraub mal das Log hoch, und löse den Kontakt aus..Das Modul ist sehr Aussagekräftig wenn du bspw. verbose auf 5 setzt.
Was heißt manuell genau? Gehst du über trigger, oder trennst du wirklich die Hardware?

Grüße

TimToni

#1259
Hallo zusammen,

mir ist heute aufgefallen dass in meinem Alarm room unter readings => level 1,2,3.... nur sporadisch aktuelle readings angezeigt werden.
Teilweise sind die Einträge ziemlich alt.
Ich nutze das Alarm Modul schon ein paar Jahre. Funktioniert einwandfrei.
Wollte heute per notify ein paar Abfragen zum Status generieren. Die Readings zeigen aber ständig off...?!

Kann mir jemand einen Tipp geben wie ich die readings aktualisiert bekomme.
Ich nutze die 2.5.
Danke
Gruss Tom