Neues Modul für Alarmanlage

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

Vorheriges Thema - Nächstes Thema

Tommy82

#255
Hi,
ich hab jetzt mal eine erste Alarmanlage definiert, allerdings klappt diese noch nicht wie sie soll.
Ich möchte das meine 3 HM-SEC-RHS wenn sie in der festgelegten Uhrzeit (zu Testzwecken 11:12-12 Uhr) geöffnet werden einen Alarmauslösen, der meinen  set FritzDect_Wohnzimmerschrank on setzt.

Allerdings passiert das nicht wenn ich ein Fenster in der angegebene Zeit öffne.

Die definition sieht so aus:
Internals:
   NAME       Alarmanlage_Neu
   NR         287
   STATE
   TYPE       Alarm
   VERSION    2.5
   Readings:
     2015-04-03 14:05:17   level           0
     2015-04-05 11:16:55   level0          off
     2015-04-05 11:26:35   level6          0
     2015-03-31 20:18:07   lockstate       unlocked
     2015-04-05 11:16:55   short
     2015-04-05 11:25:02   state
Attributes:
   armact     set Android_Wohnzimmer ttsSay Alarm ist scharf
   armdelay   02:00
   armwait    set Android_Wohnzimmer ttsSay Alarm wird in 2 Minuten scharf geschaltet
   cancelact  set Android_Wohnzimmer ttsSay Alarm zurückgesetzt
   disarmact  set Android_Wohnzimmer ttsSay Alarm ist unscharf
   level0end  1
   level0msg  1
   level0offact set FritzDect_Wohnzimmerschrank off;
   level0onact define alarm0dly1 at +00:02:00 set FritzDect_Wohnzimmerschrank on;
   level0start 1
   level0xec  disarmed
   level1end  0
   level1msg  0
   level1start 0
   level1xec  disarmed
   level2end  0
   level2msg  0
   level2start 0
   level2xec  disarmed
   level3end  0
   level3msg  0
   level3start 0
   level3xec  disarmed
   level4end  0
   level4msg  0
   level4start 0
   level4xec  disarmed
   level5end  0
   level5msg  0
   level5start 0
   level5xec  disarmed
   level6end  12:00
   level6msg  Einbruchalarm AN
   level6start 11:12
   level6xec  armed
   level7end  0
   level7msg  0
   level7start 0
   level7xec  disarmed
   lockstate  unlock
   room       Alarmanlage
   statedisplay graphics


das erstelte notify sieht so aus:
Internals:
   CFGFN
   DEF        (Fenster_neben_Couch:open)|(Fenster_ueber_Heizung:open)|(Terassen_Tuer:open) {main::Alarm_Exec("Alarmanlage_Neu",6,"$NAME","$EVENT","on")}
   NAME       alarm6.on.N
   NR         3564
   NTFY_ORDER 50-alarm6.on.N
   REGEXP     (Fenster_neben_Couch:open)|(Fenster_ueber_Heizung:open)|(Terassen_Tuer:open)
   STATE      active
   TYPE       notify
   Readings:
     2015-04-05 11:26:33   state           active
Attributes:
   group      alarmNotifier
   room       Alarm


Was hab ich noch falsch gemacht?

Danke

EDIT  Hab noch ein zweites neues Problem, wollte die Alarmanlage auf einem Floorplan pltzieren um darüber zu steuern, allerdings wird dann ein teil nicht angezeigt, sieht dann wie auf dem Screen aus
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Tommy82

#256
Keiner einen Tip für mich was ich falsch mache?

Bekomme auch noch diesen Fehler im Log:
2015.04.10 21:13:15.244 1: [Alarm 5] Will not be executed due to wrong time spec 0 for level5start
2015.04.10 21:13:15.296 1: define alarm6.off.N alarm6.off.N notify (set Powerline on) {main::Alarm_Exec("Alarmanlage_Neu",6,"$NAME","$EVENT","off")}: Bad regexp: Unmatched ( in regex; marked by <-- HERE in m/^( <-- HERE set$/ at ./FHEM/91_notify.pm line 43.

2015.04.10 21:13:15.305 3: Please define alarm6.off.N first
2015.04.10 21:13:15.314 3: Please define alarm6.off.N first


Mittlerweile wird der FritzDect zwar geschaltet wenn ich Alarmauslöse, aber mit ca. 2 Minuten verzögerung, welche ich aber nicht haben möchte!? Was mache ich da falsch?

Internals:
   NAME       Alarmanlage_Neu
   NR         285
   STATE        Level 6 canceled
   TYPE       Alarm
   VERSION    2.5
   Readings:
     2015-04-03 14:05:17   level           0
     2015-04-05 11:16:55   level0          off
     2015-04-10 21:34:06   level6          off
     2015-03-31 20:18:07   lockstate       unlocked
     2015-04-10 21:34:06   short
     2015-04-10 21:34:06   state             Level 6 canceled
Attributes:
   armact     set Android_Wohnzimmer ttsSay Alarm ist scharf
   armdelay   02:00
   armwait    set Android_Wohnzimmer ttsSay Alarm wird in 2 Minuten scharf geschaltet
   cancelact  set Android_Wohnzimmer ttsSay Alarm zurückgesetzt
   disarmact  set Android_Wohnzimmer ttsSay Alarm ist unscharf
   level0end  1
   level0msg  1
   level0offact set FritzDect_Wohnzimmerschrank off;
   level0onact define alarm0dly1 at +00:02:00 set FritzDect_Wohnzimmerschrank on;
   level0start 1
   level0xec  disarmed
   level1end  0
   level1msg  0
   level1start 0
   level1xec  disarmed
   level2end  0
   level2msg  0
   level2start 0
   level2xec  disarmed
   level3end  0
   level3msg  0
   level3start 0
   level3xec  disarmed
   level4end  0
   level4msg  0
   level4start 0
   level4xec  disarmed
   level5end  0
   level5msg  0
   level5start 0
   level5xec  disarmed
   level6end  06:00
   level6msg  Einbruchalarm AN
   level6offact set FritzDect_Wohnzimmerschrank off;
   level6onact define alarm6dly1 at +00:02:00 set FritzDect_Wohnzimmerschrank on;
   level6start 23:00
   level6xec  armed
   level7end  0
   level7msg  0
   level7start 0
   level7xec  disarmed
   lockstate  unlock
   room       Alarmanlage
   statedisplay graphics
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Octopyrox

Hallo,

habe mein Problem zwei posts weiter oben selbst gelöst und wollt das gern teilen!

Es scheint so zu sein, dass die AA den Befehl für die "Armed action" nur ausführt, wenn der Delay nicht Null ist. Es muss also mind. 0:01 eingegeben werden, damit beim Scharfschalten der AA-Level z. B. eine Lampe geschaltet wird.

Hoffe das hilft anderen weiter, die über dieses Problem stolpern. Man könnte es ja auch im Wiki ergänzen.

Viele Grüße

Markus

Prof. Dr. Peter Henning

@Octopyrox: Pardon, aber das ist Unsinn. Selbstverständlich kann man auch ohne Verzögerung scharf schalten.

pah

Prof. Dr. Peter Henning

@Tommy82: die Fehlermeldung im Log besagt doch ganz eindeutig, worin der Fehler besteht. Vielleicht mal lesen ?

LG

pah

Ralli

#260
Hallo pah,

für die Set Action der Actors hast Du die Möglichkeit des jeweiligen Delays eingebaut. Wäre es Dir möglich, im Rahmen der Modul-Pflege die gleiche Möglichkeit auch für die Unset Action der Actors einzubauen?

Ich würde dies teilweise gerne nutzen, um das Clearing nach einer Zeitspanne nochmal zu prüfen bzw. Aktionen erst dann anzustoßen, wenn sich mögliche Häufungen von Funkkommandos beruhigt haben. Das Definieren von at mit relativer Zeitangabe, also "define dly at +00:00:03 xy" funktioniert in dem jeweiligen Unset-Feld nicht, weil das + bei "Set Alarms" rausgeworfen wird.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Prof. Dr. Peter Henning

Ist sicher nachdenkenswert, m.E. aber ein Risiko.

Das eintragen eines "define at ...." in das Unset-Feld sollte aber poblemlos gehen, da wird nichts herausgeworfen. Kann höchstens sein, dass die Kiste über Anführungszeichen stolpert, Vlt. mal mit einfachen ' versuchen.

LG

pah

Ralli

Danke.

Es gibt keine Anführungszeichen bei der Anweisung. Ich trage


define alarm3offdly at +00:00:03 {perl_funktion}


bei Unset Action ein. Nach "Set Alarms" wird das + durch ein Leerzeichen ersetzt. Die o.a. Anweisung wird auch ohne + in den Attributen gespeichert.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Prof. Dr. Peter Henning

Aaah, das hatte ich nicht bedacht: Das Setzen der Alarmsettings aus dem Frontend geschieht über einen http-Request. In diesem werden die Parameter aber interpretiert (so, wie in einer URL-Angabe). Dabei wird '+' als Leerzeichen interpretiert.

Ich habe das in der Datei alarm.js gefixt, dabei wird einfach ein Pluszeichen vor der Übermittlung durch ein "%2B" ersetzt.

Bitte mal beobachten, ob wir noch andere Sonderzeichen in den Alarmsettings brauchen, die ggf. durch Ajax herausgeworfen werden.

LG

pah


Ralli

Danke! Nach dem Update der alarm.js hat das Eintragen eines +-at nun funktioniert.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.83.6.20250705) mit HB-RF-ETH 1.3.0 / RPI-RF-MOD, HM-LAN-GW (1.4.1) und HMW-GW, FRITZBOX 7490 (07.59), FBDECT, Siri und Alexa

Prof. Dr. Peter Henning

Klar funktioniert das, wenn ich es sage  8).

LG

pah

hyper2910

Hi, ich bin gestern erst in das Thema hier eingestiegen,  und nachdem es ein paar Einbrüche in unserer Gegend gab, wollte ich meine FensterKontakte auch als Alarmanlage nutzen.

Eine Info habe ich aber nicht gefunden,  wie kann ich die Alarmanlage scharf schalten?

Cubietruck mit FHEM, CUL V3 443MHz, 2 x CULV3 868MHz, Milights, Max Heizungssteuerung, Homematic, IT,

UweH

commandref "Alarm" -> Abschnitt "Set"

A.Harrenberg

Hallo pah!

Schönes Modul, danke erst einmal dafür!

Ich habe ein kleines Problem mit den Zeitangaben für das Delay bei den Aktoren.

Angaben von 0-59 werden ja als Sekunden interpretiert, das funktioniert auch einwandfrei.
Angaben in der Form mm:ss werden als Minuten und Sekunden interpretiert, das funktioniert auch, allerdings NICHT für 00:00!
Bei Eingabe von 00:00 (anstatt einer einfachen 0) wird der Befehl NICHT ausgeführt.

Da ich der Übersichtlichkeit gerne alle Zeiten in mm:ss eintragen würde ist das etwas unschön.

Du fragst in der 95_Alarm.pm nur auf die "0" ab, nicht auf eine "00:00" (Zeile 600), spricht etwas dagegen das auf die "00:00" zu erweitern? Dann würden beide Zeitangaben funktionieren.
                    if(( $aval[3] eq "0" )||($aval[3] eq "00:00")){

Gruß,
Andreas.
FB 7360, Homematic und ZWave
Support for ZWave-SECURITY

Prof. Dr. Peter Henning

Werde ich bei Gelegenheit einbauen, danke für den Hinweis.

LG

pah