Neues Modul für Alarmanlage

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

Vorheriges Thema - Nächstes Thema

dklueh

Ich muss mich nun auch nochmal einklinken!

Wo genau muss nun das 95_Alarm.pm hin? Ich bekomme bei trotz Eintrages von
define AAA Alarm
attr AAA room AlarmRoom
define AAA_weblink weblink htmlCode {Alarm_Html("AAA")}
attr AAA_weblink room AlarmRoom

in der fhem.cfg immer

Error messages while initializing FHEM:
configfile: Cannot load module Alarm
Please define AAA first

Grüße,
Daniel

Ralli

#106
In das Verzeichnis von fhem, wo die ganzen anderen Module zu finden sind.

... aber drei zwei andere Fragen:

1) Ich möchte bei bestimmten Events benachrichtig werden. Dafür habe ich einen Magnetkontakt als Sensor definiert und zwei Alarmleveln zugeordnet. Ich habe Message Part I und Part II definiert. In der Actors-Konfiguration habe ich den Versand einer Push-Nachricht definiert mit "set pushmsg message $EVENT". Hier wird die Variable (und auch die anderen möglichen Variablen) jedoch nicht ausgewertet. Ich könnte das umgehen, indem ich für jedes auftretendes Ereignis einen statischen Eintrag erzeuge, das wäre jedoch umständlich. Daher die Frage an den Entwickler: Ist es korrekt, dass die Variable dort nicht ausgewertet wird? Wenn ja, könnte dies noch entsprechend erweitert werden?
2) Ich fände es super, wenn ein automatischer Cancel für bestimmte Alarmlevel einfach nach Zeit erfolgen könnte. Z.B. würde ich Alarmlevel 0 unmittelbar nach Auslösen des Triggers wieder zurücksetzen lassen.
3) Kann ich bei der Definition von Actors in set/unset Action mehrere fhem-Kommandos eintragen? Durch Semikolon getrennt? geht.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) 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

dklueh

Danke, dachte das sollte unter contrib.

Nun kommt im Webinterface aber:

Undefined subroutine &main::Alarm_Html called at (eval 56) line 1

Ralli

Die alarm.js auch installiert? Steht im Wiki ...
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) 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

Zum automatischen Widerrufen eines Alarms:

1. Man definiere einen dummy AutoAus und gebe dem das Attribut alarmActor
2. In die Actors-Liste des Alarm-Moduls wird bei Set Action eingetragen:

  define SetAus at +00:05:00 {AlarmExec('Name der Alarmdefinition',<level>,'AutoAus','dummy','off')}

Sorgt dafür, dass der Alarm <level> (0..7) nach 5 Minuten automatisch widerrufen wird.

LG

pah

Ralli

#110
Danke für den Tipp !

Edit: Das + speichert er leider nicht korrekt ab! Wenn ich es in den Attributen direkt speichere, wird es auch wieder eingelesen. Beim nächsten Set Alarms ist es wieder raus gefiltert. Allerdings wird in jedem Fall das at mit der absoluten Uhrzeit gesetzt, also ohne +.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) 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

"Er", soso.

{fhem("define SetAus at +00:05:00 {AlarmExec('Name der Alarmdefinition',<level>,'AutoAus','dummy','off')}")} geht auf jeden Fall

pah

dklueh

@ Ralli:
Jep, ist unter www/pgm2.

Fehler kommt trotzdem  :'(

Ralli

#113
@pah:

So speichert "ER" (der RPi ;) ) zwar den String korrekt im Attribut ab, das Frontend stellt liest aber bei Klick auf "Alarms" diesen Eintrag lediglich bis vor dem ersten Anführungszeichen ein.

Modulversion 1.7

Kann es sein, dass bei der Eingabe von REGEXP die Pipe nicht escaped wird und somit nicht verwendbar ist? z.B. führt die Eingabe von "Fenster:(open|tilted)" bei Notify on RegExp und Set Alarms dazu, dass beim Neuladen der Seite der komplette Eintrag des Sensors leer ist.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) 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

"Er" macht gar nichts - das ist "die" Software.

Version 1.7 ist nicht aktuell, der Fehler beim Abspeichern wurde in der 1.8er Version  behoben. Bitte mal die aktuelle Version aus dem SVN holen.

Nicht escaped ? Dort wird nach einem regulären Ausdruck gefragt, dessen Bestandteil sind nun einmal die Anführungszeichen _nicht_

LG pah

Ralli

#115
Nicht die Anführungszeichen - die Pipe ist das Problem, und die Pipe ist ein REGEXP-Ausdruck (oder).

ER macht, weil SIE ihn dazu treibt :)

Edit: 1.9 aus dem SVN geholt. Das Problem besteht noch immer. Das + wird nicht mit abgespeichert, das habe ich manuell im Attribut hinzugefügt. Beim Einlesen in der Maske wird das vorgesehene Feld nur bis zum Anführungszeichen gefüllt.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) 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

#116
Das Verschwinden der +-Zeichen ist nicht ganz klar - ich meine, es liegt am Aufruf der perl-Funktionen aus dem AJAX-Request.

Es geht aber auch viel einfacher:

1. Dummy definieren und alarmDevice=Actor eintragen
2. Set Action ist {AlarmExec('AAA',4,'AutoAus','dummy','off')}
3. Delay ist 05:00

Das führt zum Attributwert alarmSettings=alarm4,|{AlarmExec('AAA',4,'AutoAus','dummy','off')}||05:00

LG

pah

Ralli

#117
Danke für Deinen Support.

Edit nach Blick in die 95_Alarm.pm: Der Funktionsaufruf muss Alarm_Exec lauten, dann klappt es.


{Alarm_Exec('UEA',0,'UEA.AutoAus.0','dummy','off')}


Ist es möglich, auch bei Set Action Variablen wie $EVENT einzubauen und die Pipe bei den RegExp zuzulassen?


Edit2:
Habe statt einem Oder in RegExp mit einer Negierung arbeiten können, die Möglichkeit eines Oder wäre aber trotzdem sinnvoll. Mein Ausdruck lautet nun ...

Funktioniert leider doch nicht. Irgendwie krieg ich es nicht auf die Reihe.

Kann mir jemand mit einem RegExp helfen? Es sollen die states tilted und open zum Raise führen, closed nicht. Also muss ich eine RegExp finden, die eben auf tilted und open matcht, auf sonst aber nichts.
Gruß,
Ralli

Proxmox 8.4 Cluster mit HP ED800G2i7, Intel NUC11TNHi7+NUC7i5BNH, virtualisiertes fhem 6.4 dev, virtualisierte RaspberryMatic (3.81.5.20250527) 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

So, nach längerem Testen sind das Modul 95_Alarm.pm und die zugehörige alarm.js-Datei jetzt in den Mainstream von FHEM verschoben worden. Werden also dann auch automatisch upgedated.

LG

pah

kvo1

Hallo pah,
Danke, das erleichtert das Updaten.

Klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB