Neues Modul für Alarmanlage

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

Vorheriges Thema - Nächstes Thema

GerhardK

#915
Hallo!
Bin nach tagelanger Recherche langsam am Verzweifeln:
1.)   Zeitgesteuerte Scharfschaltung funktioniert einfach nicht, manuelles scharfschalten über checkbox oder dummy ,,Alarm_scharf" dagegen schon
2.)   Bei (manuell) scharfgeschaltetem Alarm (s.Beispiel Alarmlevel 0) erfolgt bei Auslösen des Alarms (event des Aktors im log vorhanden) keine Aktion
Weiss jemand woran das liegen kann ? Module sind alle aktuell

Viele Grüße
Gerhard

Auszug aus fhem.cfg:

define Alarmanlage Alarm
attr Alarmanlage armact set Telegram message 'Alarmanlage scharf geschaltet.'
attr Alarmanlage armdelay 0:10
attr Alarmanlage armwait set Telegram message 'Alarmanlage wird in Kürze scharf geschaltet.'
attr Alarmanlage cancelact set Telegram message 'Alarm widerrufen.'
attr Alarmanlage disarmact set Telegram message 'Alarmanlage unscharf geschaltet.'
attr Alarmanlage level0end 06:00
attr Alarmanlage level0msg Lichtschranke_aktiv
attr Alarmanlage level0offact
attr Alarmanlage level0onact set Telegram message Lichtschranke_Alarm_ausgeloest;;
attr Alarmanlage level0start 22:00
attr Alarmanlage level0xec disarmed
attr Alarmanlage level1end 0
attr Alarmanlage level1msg 0
attr Alarmanlage level1start 0
attr Alarmanlage level1xec disarmed
attr Alarmanlage level2end 0
attr Alarmanlage level2msg 0
attr Alarmanlage level2offact
attr Alarmanlage level2start 0
attr Alarmanlage level2xec disarmed
attr Alarmanlage level3end 0
attr Alarmanlage level3msg 0
attr Alarmanlage level3start 0
attr Alarmanlage level3xec disarmed
attr Alarmanlage level4end 0
attr Alarmanlage level4msg 0
attr Alarmanlage level4start 0
attr Alarmanlage level4xec disarmed
attr Alarmanlage level5end 0
attr Alarmanlage level5msg 0
attr Alarmanlage level5start 0
attr Alarmanlage level5xec disarmed
attr Alarmanlage level6end 0
attr Alarmanlage level6msg 0
attr Alarmanlage level6start 0
attr Alarmanlage level6xec disarmed
attr Alarmanlage level7end 0
attr Alarmanlage level7msg 0
attr Alarmanlage level7start 0
attr Alarmanlage level7xec disarmed
attr Alarmanlage lockstate unlocked
attr Alarmanlage room AlarmRoom
attr Alarmanlage statedisplay color
define Alarmanlage_weblink weblink htmlCode {Alarm_Html("Alarmanlage")}
attr Alarmanlage_weblink room AlarmRoom
define Alarm_cancel dummy
attr Alarm_cancel room Alarm
attr Alarm_cancel webCmd on:off

define Alarm_scharf dummy
attr Alarm_scharf alarmDevice Sensor
attr Alarm_scharf alarmSettings alarm0,|Alarm_scharf:on||arm
attr Alarm_scharf room Alarm
attr Alarm_scharf setList state:on
attr Alarm_scharf webCmd on


define Alarm_unscharf dummy
attr Alarm_unscharf alarmDevice Sensor
attr Alarm_unscharf alarmSettings alarm0,|Alarm_unscharf:on||disarm
attr Alarm_unscharf room Alarm
attr Alarm_unscharf setList state:on
attr Alarm_unscharf webCmd on


define Global.Cancel dummy
attr Global.Cancel alarmDevice Sensor
attr Global.Cancel alarmSettings alarm0,alarm1,alarm2,alarm3,alarm4,alarm5,alarm6,alarm7,|Global.Cancel||off
attr Global.Cancel room Alarm
attr Global.Cancel setList state:Abbruch
attr Global.Cancel webCmd Abbruch


define alarm0.off.N notify (Global.Cancel) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","off")}
attr alarm0.off.N group alarmNotifier
attr alarm0.off.N room Alarm
define alarm0.on.N notify (GPIOLichtschranke_Sued:on) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","on")}
attr alarm0.on.N group alarmNotifier
attr alarm0.on.N room Alarm
define alarm0.arm.N notify (Alarm_scharf:on) {main::Alarm_Arm("Alarmanlage",0,"$NAME","$EVENT","arm")}
attr alarm0.arm.N group alarmNotifier
attr alarm0.arm.N room Alarm
define alarm0.disarm.N notify (Alarm_unscharf:on) {main::Alarm_Arm("Alarmanlage",0,"$NAME","$EVENT","disarm")}
attr alarm0.disarm.N group alarmNotifier
attr alarm0.disarm.N room Alarm



xray

Hallo Gerhard,

ZitatWeiss jemand woran das liegen kann ? Module sind alle aktuell

hast du das Logfile auf Fehler gecheckt?
Ein Ansatzpunkt:
Du hast keinen Delay beim Telegram-Actor angegeben. Lösche ich diesen bei mir raus, so erhalte ich zumindest eine Fehlermeldung im Log nach "Betreten" des Raums.

Grüße

Marc

GerhardK

Hallo Marc, danke für den schnellen Tip!

das log-File sieht nach Klick auf "set Alarms" folgendermassen aus, beim Auslösen des Aktors wird nichts geloggt, weder mit noch ohne delay beim Telegram-Aktor

2017.11.04 08:17:38 3: Please define TelegramalarmSettings first
2017.11.04 08:17:38 3: [Alarm 0] Created arm notifier
2017.11.04 08:17:38 3: [Alarm 0] Created disarm notifier
2017.11.04 08:17:38 1: [Alarm 1] Will not be executed due to wrong time spec 0 for level1start
2017.11.04 08:17:38 1: [Alarm 2] Will not be executed due to wrong time spec 0 for level2start
2017.11.04 08:17:38 1: [Alarm 3] Will not be executed due to wrong time spec 0 for level3start
2017.11.04 08:17:38 1: [Alarm 4] Will not be executed due to wrong time spec 0 for level4start
2017.11.04 08:17:38 1: [Alarm 5] Will not be executed due to wrong time spec 0 for level5start
2017.11.04 08:17:38 1: [Alarm 6] Will not be executed due to wrong time spec 0 for level6start
2017.11.04 08:17:38 1: [Alarm 7] Will not be executed due to wrong time spec 0 for level7start


Hinweis: Meldung "Please define...first" kommt auch bei anderen Aktoren, obwohl wie unten am Beispiel Telegram eingetragen.

define Telegram TelegramBot
attr Telegram alarmDevice Actor
attr Telegram alarmSettings alarm0,|set Telegram message 'Lichtschranke_Alarm_ausgeloest'||

Viele Grüße
Gerhard

xray

Setz Mal den Delay für den Telegram Aktor auf 00:00 und teste erneut bzw. schau ins Log.

GerhardK

logfile nach manuellem Scharfschalten und set Alarms sieht nun gut aus bei delay 00:00, keine Meldung "Please define..." mehr

2017.11.04 10:34:25 3: [Alarm 0] Created arm notifier
2017.11.04 10:34:25 3: [Alarm 0] Created disarm notifier
2017.11.04 10:34:25 1: [Alarm 1] Will not be executed due to wrong time spec 0 for level1start
2017.11.04 10:34:25 1: [Alarm 2] Will not be executed due to wrong time spec 0 for level2start
2017.11.04 10:34:25 1: [Alarm 3] Will not be executed due to wrong time spec 0 for level3start
2017.11.04 10:34:25 1: [Alarm 4] Will not be executed due to wrong time spec 0 for level4start
2017.11.04 10:34:25 1: [Alarm 5] Will not be executed due to wrong time spec 0 for level5start
2017.11.04 10:34:25 1: [Alarm 6] Will not be executed due to wrong time spec 0 for level6start
2017.11.04 10:34:25 1: [Alarm 7] Will not be executed due to wrong time spec 0 for level7start

Beim Auslösen des Alarms erscheint im log folgender Hinweis

2017.11.04 10:36:31 1: [Alarm 0] not raised, alarmSensor GPIOLichtschranke_Sued has wrong settings

Config des Aktors schaut folgendermassen aus, funktioniert auch wenn man über doif oder notify darauf auswertet, nur nicht über die Alarmanlage

define GPIOLichtschranke_Sued RPI_GPIO 3
attr GPIOLichtschranke_Sued active_low no
attr GPIOLichtschranke_Sued alarmDevice Sensor
attr GPIOLichtschranke_Sued alarmSettings alarm0,|GPIOLichtschranke_Sued:on||on
attr GPIOLichtschranke_Sued direction input
attr GPIOLichtschranke_Sued event-on-change-reading state
attr GPIOLichtschranke_Sued interrupt both
attr GPIOLichtschranke_Sued pud_resistor up
attr GPIOLichtschranke_Sued room GPIO


Ein Hinweis noch: das zeitgesteuerte Scharfschalten geht nach wie vor nicht, obwohl kein Fehler im log vorliegt

xray

Schuss ins Blaue:
Schreib mal jeweils was ins Feld Message Part I der Sensoren...
https://wiki.fhem.de/wiki/Diskussion:Modul_Alarm

GerhardK

Super Marc, danke dir vielmals!
Alarm wird jetzt ausgelöst, d.h. die Message Felder sind tatsächlich Pflichtfelder, wieder was gelernt ;-)

Allerdings muss man den Alarm noch manuell dazu scharfschalten, zeitgesteuert erfolgt keine Scharfschaltung.
Hab den verbose level (Alarmamlage) auch schon auf 5 gesetzt um im log evtl. mehr zu sehen, aber hier erfolgt nur eine Protokollierung wenn man die Start/Endzeit einträgt und auf set Alarms klickt, siehe unten. Startzeit zum Scharfschalten war auf 13:35 gesetzt aber hier ist im log nichts zu finden.


2017.11.04 13:31:50 5: [Alarm 0] Adding alarmSensor Alarm_scharf to arm notifier
2017.11.04 13:31:50 5: [Alarm 0] Adding alarmSensor Alarm_unscharf to disarm notifier
2017.11.04 13:31:50 5: [Alarm 0] Adding alarmSensor GPIOLichtschranke_Sued to raise notifier
2017.11.04 13:31:50 5: [Alarm 0] Created raise notifier
2017.11.04 13:31:50 5: [Alarm 0] Adding actor Telegram to action list
2017.11.04 13:31:50 5: [Alarm 0] Added on/off actors to Alarmanlage
2017.11.04 13:31:50 3: [Alarm 0] Created arm notifier
2017.11.04 13:31:50 3: [Alarm 0] Created disarm notifier
2017.11.04 13:31:50 1: [Alarm 1] Will not be executed due to wrong time spec 0 for level1start
2017.11.04 13:31:50 1: [Alarm 2] Will not be executed due to wrong time spec 0 for level2start
2017.11.04 13:31:50 1: [Alarm 3] Will not be executed due to wrong time spec 0 for level3start
2017.11.04 13:31:50 1: [Alarm 4] Will not be executed due to wrong time spec 0 for level4start
2017.11.04 13:31:50 1: [Alarm 5] Will not be executed due to wrong time spec 0 for level5start
2017.11.04 13:31:50 1: [Alarm 6] Will not be executed due to wrong time spec 0 for level6start
2017.11.04 13:31:50 1: [Alarm 7] Will not be executed due to wrong time spec 0 for level7start

In der Config sind die Zeiten eingetragen und auch sonst schaut dort alles ok aus:

define Alarmanlage Alarm
attr Alarmanlage armact set Telegram message 'Alarmanlage scharf geschaltet.'
attr Alarmanlage armdelay 00:00
attr Alarmanlage armwait set Telegram message 'Alarmanlage wird in Kürze scharf geschaltet.'
attr Alarmanlage cancelact set Telegram message 'Alarm widerrufen.'
attr Alarmanlage disarmact set Telegram message 'Alarmanlage unscharf geschaltet.'
attr Alarmanlage level0end 13:45
attr Alarmanlage level0msg Lichtschranke_aktiv
attr Alarmanlage level0offact
attr Alarmanlage level0onact set Telegram message 'Lichtschranke_Alarm_ausgeloest';;
attr Alarmanlage level0start 13:35
attr Alarmanlage level0xec disarmed
attr Alarmanlage level1end 0
attr Alarmanlage level1msg 0
attr Alarmanlage level1start 0
attr Alarmanlage level1xec disarmed
attr Alarmanlage level2end 0
attr Alarmanlage level2msg 0
attr Alarmanlage level2offact
attr Alarmanlage level2start 0
attr Alarmanlage level2xec disarmed
attr Alarmanlage level3end 0
attr Alarmanlage level3msg 0
attr Alarmanlage level3start 0
attr Alarmanlage level3xec disarmed
attr Alarmanlage level4end 0
attr Alarmanlage level4msg 0
attr Alarmanlage level4start 0
attr Alarmanlage level4xec disarmed
attr Alarmanlage level5end 0
attr Alarmanlage level5msg 0
attr Alarmanlage level5start 0
attr Alarmanlage level5xec disarmed
attr Alarmanlage level6end 0
attr Alarmanlage level6msg 0
attr Alarmanlage level6start 0
attr Alarmanlage level6xec disarmed
attr Alarmanlage level7end 0
attr Alarmanlage level7msg 0
attr Alarmanlage level7start 0
attr Alarmanlage level7xec disarmed
attr Alarmanlage lockstate unlocked
attr Alarmanlage room AlarmRoom
attr Alarmanlage statedisplay color
attr Alarmanlage verbose 5
define Alarmanlage_weblink weblink htmlCode {Alarm_Html("Alarmanlage")}
attr Alarmanlage_weblink room AlarmRoom

Esjay

Tip Nummer 1:
Bitte nutze Code-Tags wenn du längere Auszüge postest. Ist das # Symbol über dem Texteingabefeld. Sonst kann das kein Schw... vernünftig lesen.

Sieht dann so aus:

2017.11.04 13:31:50 5: [Alarm 0] Adding alarmSensor Alarm_scharf to arm notifier
2017.11.04 13:31:50 5: [Alarm 0] Adding alarmSensor Alarm_unscharf to disarm notifier
2017.11.04 13:31:50 5: [Alarm 0] Adding alarmSensor GPIOLichtschranke_Sued to raise notifier
2017.11.04 13:31:50 5: [Alarm 0] Created raise notifier
2017.11.04 13:31:50 5: [Alarm 0] Adding actor Telegram to action list
2017.11.04 13:31:50 5: [Alarm 0] Added on/off actors to Alarmanlage
2017.11.04 13:31:50 3: [Alarm 0] Created arm notifier
2017.11.04 13:31:50 3: [Alarm 0] Created disarm notifier
2017.11.04 13:31:50 1: [Alarm 1] Will not be executed due to wrong time spec 0 for level1start
2017.11.04 13:31:50 1: [Alarm 2] Will not be executed due to wrong time spec 0 for level2start
2017.11.04 13:31:50 1: [Alarm 3] Will not be executed due to wrong time spec 0 for level3start
2017.11.04 13:31:50 1: [Alarm 4] Will not be executed due to wrong time spec 0 for level4start
2017.11.04 13:31:50 1: [Alarm 5] Will not be executed due to wrong time spec 0 for level5start
2017.11.04 13:31:50 1: [Alarm 6] Will not be executed due to wrong time spec 0 for level6start
2017.11.04 13:31:50 1: [Alarm 7] Will not be executed due to wrong time spec 0 for level7start

In der Config sind die Zeiten eingetragen und auch sonst schaut dort alles ok aus:

define Alarmanlage Alarm
attr Alarmanlage armact set Telegram message 'Alarmanlage scharf geschaltet.'
attr Alarmanlage armdelay 00:00
attr Alarmanlage armwait set Telegram message 'Alarmanlage wird in Kürze scharf geschaltet.'
attr Alarmanlage cancelact set Telegram message 'Alarm widerrufen.'
attr Alarmanlage disarmact set Telegram message 'Alarmanlage unscharf geschaltet.'
attr Alarmanlage level0end 13:45
attr Alarmanlage level0msg Lichtschranke_aktiv
attr Alarmanlage level0offact
attr Alarmanlage level0onact set Telegram message 'Lichtschranke_Alarm_ausgeloest';;
attr Alarmanlage level0start 13:35
attr Alarmanlage level0xec disarmed
attr Alarmanlage level1end 0
attr Alarmanlage level1msg 0
attr Alarmanlage level1start 0
attr Alarmanlage level1xec disarmed
attr Alarmanlage level2end 0
attr Alarmanlage level2msg 0
attr Alarmanlage level2offact
attr Alarmanlage level2start 0
attr Alarmanlage level2xec disarmed
attr Alarmanlage level3end 0
attr Alarmanlage level3msg 0
attr Alarmanlage level3start 0
attr Alarmanlage level3xec disarmed
attr Alarmanlage level4end 0
attr Alarmanlage level4msg 0
attr Alarmanlage level4start 0
attr Alarmanlage level4xec disarmed
attr Alarmanlage level5end 0
attr Alarmanlage level5msg 0
attr Alarmanlage level5start 0
attr Alarmanlage level5xec disarmed
attr Alarmanlage level6end 0
attr Alarmanlage level6msg 0
attr Alarmanlage level6start 0
attr Alarmanlage level6xec disarmed
attr Alarmanlage level7end 0
attr Alarmanlage level7msg 0
attr Alarmanlage level7start 0
attr Alarmanlage level7xec disarmed
attr Alarmanlage lockstate unlocked
attr Alarmanlage room AlarmRoom
attr Alarmanlage statedisplay color
attr Alarmanlage verbose 5
define Alarmanlage_weblink weblink htmlCode {Alarm_Html("Alarmanlage")}
attr Alarmanlage_weblink room AlarmRoom


Angebehmer oder?

Ich bin der Meinung, das das keine Zeitliche aktivierung ist, sondern nur der Zeitliche Rahmen in dem eine Scharfschaltung funktioniert. Man möge mich verbessern wenn es anders ist. Wenn du zeitlich scharf schalten willst leg dir ein "at" an.

Grüße


GerhardK

das mit dem # Symbol wusste ich noch nicht, aber danke für den Hinweis ;-)

Die Zeitangaben Start und End machen eigentlich nur Sinn wenn damit auch die Anlage zeitgesteuert scharf bzw. unscharf geschaltet wird. Habs mal ausprobiert die Anlage manuell ausserhalb des Zeitfensters scharf zu schalten, funktioniert zumindest.

GerhardK

@Esjay: ja stimmt! Die Alarmauslösung erfolgt nur innerhalb des Zeitfensters, ich hatte es anfangs so verstanden dass bei scharfgeschalteter Alarmanlage generell Alarmauslösung stattfindet.
Die Scharfschaltung selbst muss immer manuell oder durch einen Sensor aktiviert werden, hat mit dem Zeitfenster nichts zu tun.

Damit sind meine Fragen alle beantwortet, vielen Dank an alle!

VG
Gerhard

Mave

Moin pah,

mir ist eben aufgefallen, dass ich ein Reading level3 und ein Reading level3) habe.

Kannst Du Dir bzw. mir das erklären?

Vielen Dank.

Grüße Mave

Prof. Dr. Peter Henning

#926
Nö.

Möglicherweise Überbleibsel einer fehlerhaften Installation => Datum ist April 2017. (Sorry, zu schnell geschaut, das ist das Tagesdatum. Vom Modul stammt der Eintrag dennoch nicht)

Tipp: deletereading <name> level3)

LG

pah

Mave

Okay, vielen Dank.

Der Vollständigkeit halber muss ich aber noch erwähnen, dass ich das Modul erst vor ca. 4 Wochen installiert habe.

Grüße Mave

Mave

Oh, sehe gerade, dass das Datum 04.11. ist, also von gestern.

Mave

Löschen geht nicht:

Bad regexp level3): Unmatched ) in regex; marked by <-- HERE in m/level3) <-- HERE / at fhem.pl line 2210.

:(