Modul 95_Alarm.pm

Begonnen von Prof. Dr. Peter Henning, 09 Januar 2021, 10:44:29

Vorheriges Thema - Nächstes Thema

marwal

Hallo zusammen, habe dazu letztes Jahr bereits ein separates Thema aufgemacht, hoffe allerdings dass ich hier besser aufgehoben bin.

Ich habe FHEM mit dem Alarm-Modul ingesamt 3x laufen, zu Hause, in einer Garage und in der Ferienwohnung.
Alle Systeme sind auf dem aktuellem Stand, allerdings wird bei der Garage die Verzögerung nicht mehr berücksichtigt. Sobald ein Event kommt, gibt es trotz eingestellter 50sek. Verzögerung Alarm. An den anderen Stationen läuft alles Reibungslos.

Hier mal der Code vom Alarm-Device:
Internals:
   FUUID      5e68c27f-f33f-950c-fc34-76fcbdb6e8a0cbd6
   FVERSION   95_Alarm.pm:0.173440/2018-09-14
   NAME       AAA
   NR         20
   STATE       
   TYPE       Alarm
   VERSION    5.0
   DATA:
     savedate   2021-12-21 20:14:06
     armstate:
       level6     armed
       level7     armed
   READINGS:
     2020-06-29 10:53:38   level0          disarmed
     2020-06-29 10:53:38   level1          disarmed
     2020-06-29 10:53:38   level2          disarmed
     2020-06-29 10:53:38   level3          disarmed
     2020-06-29 10:53:38   level4          disarmed
     2020-06-29 10:53:38   level5          disarmed
     2021-12-18 12:50:15   level6          armed
     2021-12-21 20:14:06   level7          armed
     2020-03-11 14:00:13   lockstate       unlocked
     2021-12-21 20:14:06   savedate        2021-12-21 20:14:06
     2021-12-21 20:06:20   short           
     2021-12-21 20:14:06   state           
     2021-12-21 20:14:06   status          scharf
Attributes:
   armact     set telegram msg @xxx Alarmanlage ist scharf geschalten; set telegram msg @xxx Alarmanlage ist scharf geschalten; set telegram msg @xxx Alarmanlage ist scharf geschalten
   armdelay   0:15
   armwait    set telegram msg @xxx Alarmanlage wird scharf geschalten; set telegram msg @xxx Alarmanlage wird scharf geschalten; set telegram msg @xxx Alarmanlage wird scharf geschalten
   cancelact  set telegram msg @xxx Alarmanlage wird wieder scharf geschalten; set telegram msg @xxx Alarmanlage wird wieder scharf geschalten; set telegram msg @xxx Alarmanlage wird wieder scharf geschalten; set GA_SZ_innr off; delete at_SireneAUS
   disarmact  set telegram msg @xxx Alarmanlage wird unscharf geschalten; set telegram msg @xxx Alarmanlage wird unscharf geschalten; set telegram msg @xxx Alarmanlage wird unscharf geschalten; set GA_SZ_innr off; delete at_SireneAUS
   level0autocan 0:00
   level0cond 1
   level0end  23:59
   level0msg  --
   level0start 0:00
   level1autocan 0:00
   level1cond 1
   level1end  23:59
   level1msg  --
   level1start 0:00
   level2autocan 0:00
   level2cond 1
   level2end  23:59
   level2msg  --
   level2start 0:00
   level3autocan 0:00
   level3cond 1
   level3end  23:59
   level3msg  --
   level3start 0:00
   level4autocan 0:00
   level4cond 1
   level4end  23:59
   level4msg  --
   level4start 0:00
   level5autocan 0:00
   level5cond 1
   level5end  23:59
   level5msg  --
   level5start 0:00
   level6autocan 0:00
   level6cond 1
   level6end  23:59
   level6msg  -- FEUER!
   level6offact 1
   level6onact 1
   level6start 0:00
   level7autocan 0:00
   level7cond 1
   level7end  23:59
   level7msg  -- Einbruch!
   level7offact
   level7onact defmod alarm7dly1 at +00:00:50 set telegram msg @xxx $SHORT; set telegram msg @xxx $SHORT; {alarmGarage()}; set telegram msg @xxx $SHORT; set GA_SZ_innr on; defmod at_SireneAUS at +00:00:05 set GA_SZ_innr off;
   level7start 0:00
   room       AlarmRoom


Und hier vom Kontakt welcher auslöst:
Internals:
   DEF        sensor 5 1 IODev=conbee
   FUUID      5f689579-f33f-950c-4b1a-5769a7f84280e9b9
   FVERSION   31_HUEDevice.pm:0.253510/2021-12-17
   ID         S5
   INTERVAL   1
   IODev      conbee
   NAME       FK_TuerEingang_aqara
   NR         34
   STATE      closed
   TYPE       HUEDevice
   lastupdated 2021-12-21 19:13:53
   lastupdated_local 2021-12-21 20:13:53
   manufacturername LUMI
   modelid    lumi.sensor_magnet.aq2
   name       FK_TuerEingang_aqara
   on         1
   reachable  1
   swversion  20161128
   type       ZHAOpenClose
   uniqueid   00:15:8d:00:04:5c:de:87-01-0006
   READINGS:
     2021-12-18 12:50:00   IODev           conbee
     2021-12-21 19:11:00   battery         98
     2021-12-21 19:11:00   batteryPercent  98
     2021-12-18 12:30:41   lastseen        2021-12-18T11:30:41.127
     2021-12-21 19:11:00   reachable       1
     2021-12-21 20:13:53   state           closed
     2021-12-21 19:11:00   temperature     12
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     configList:
     json:
       ep         1
       etag       3dc9ea6ddaf816847d81541c1c44a694
       lastseen   2021-12-21T19:13:53.047
       manufacturername LUMI
       modelid    lumi.sensor_magnet.aq2
       name       FK_TuerEingang_aqara
       swversion  20161128
       type       ZHAOpenClose
       uniqueid   00:15:8d:00:04:5c:de:87-01-0006
       config:
         battery    98
         temperature 1200
       state:
         lastupdated 2021-12-21T19:13:53.047
     setList:
Attributes:
   IODev      conbee
   alarmDevice Sensor
   alarmSettings alarm7,|FK_TuerEingang_aqara:open|Eingangstür offen|on
   alias      Eingangstür
   devStateIcon open:fts_window_1w_open@#e56524 closed:fts_window_1w
   model      lumi.sensor_magnet.aq2
   room       83_CONBEE


und ein Teil vom Log, allerdings kein Verbose 5:
2021.12.21 19:24:52 1: [Alarm 0] No "Cancel" device defined, level will be ignored
2021.12.21 19:24:52 1: [Alarm 1] No "Cancel" device defined, level will be ignored
2021.12.21 19:24:52 1: [Alarm 2] No "Cancel" device defined, level will be ignored
2021.12.21 19:24:52 1: [Alarm 3] No "Cancel" device defined, level will be ignored
2021.12.21 19:24:52 1: [Alarm 4] No "Cancel" device defined, level will be ignored
2021.12.21 19:24:52 1: [Alarm 5] No "Cancel" device defined, level will be ignored
2021.12.21 19:24:52 3: [Alarm 6] Created cancel notifier
2021.12.21 19:24:52 3: [Alarm 6] Created raise notifier
2021.12.21 19:24:52 1: [Alarm] Settings |set telegram msg @xxx $SHORT; set telegram msg @xxx $SHORT; set telegram msg @xxx $SHORT||00:00 incomplete for alarmActor d_feuer
2021.12.21 19:24:52 3: [Alarm 7] Created cancel notifier
2021.12.21 19:24:52 3: [Alarm 7] Created raise notifier
2021.12.21 19:24:52 1: [Alarm] Settings |set telegram msg @xxx $SHORT; set telegram msg @xxx $SHORT; set telegram msg @xxx $SHORT||00:00 incomplete for alarmActor d_feuer
2021.12.21 19:24:53 3: [Alarm 7] Created disarm notifier
2021.12.21 19:27:41 3: [Alarm 7] raised from device FK_TuerEingang_aqara with event open
2021.12.21 19:27:46 1: [Alarm] Killing delayed action alarm7dly1
2021.12.21 19:27:46 3: set telegram msg @xxx Alarmanlage wird wieder scharf geschalten; set telegram msg @xxx Alarmanlage wird wieder scharf geschalten; set telegram msg @xxx Alarmanlage wird wieder scharf geschalten; set GA_SZ_innr off; delete at_SireneAUS : Please define at_SireneAUS first
2021.12.21 19:27:46 3: [Alarm 7] canceled from device program
2021.12.21 19:27:46 3: define alarm7.disarm.T at +00:00:03 set telegram msg @xxx Alarmanlage wird unscharf geschalten; set telegram msg @xxx Alarmanlage wird unscharf geschalten; set telegram msg @xxx Alarmanlage wird unscharf geschalten; set GA_SZ_innr off; delete at_SireneAUS : Please define at_SireneAUS first
2021.12.21 19:27:46 3: alarm7.disarm.N return value: [Alarm 7] disarmed from alarmSensor GA_rr_schalter_aqara with event 1002


Liebe Grüße und Besten Dank!


Prof. Dr. Peter Henning

Sorry, aber mit diesen Log-Auszügen kann ich gar nichts anfangen, hier liegt irgendein Fehler in der Konfiguration vor. Tipp zum selbst suchen: Wird das at-Device bei der Auslösung des Alarmsensors wirklich angelegt? Wenn ja, mit welchen Parametern?

LG

pah

P.S.: Auch wenn man das leider immer häufiger liest: Geräte werden nicht "geschalten", sondern "geschaltet".

marwal

Danke pah, bin alles nochmal durchgegangen ...

Es lag an folgender Zeile:
   level7onact defmod alarm7dly1 at +00:00:50 set telegram msg @xxx $SHORT; set telegram msg @xxx $SHORT; {alarmGarage()}; set telegram msg @xxx $SHORT; set GA_SZ_innr on; defmod at_SireneAUS at +00:00:05 set GA_SZ_innr off;

Setzte ich hier anstatt einem Semikolon 2, wird alles richtig interpretiert. Gab es eine Änderung? es hatte bis vor kurzem super funktioniert ?!

Zitat[P.S.: Auch wenn man das leider immer häufiger liest: Geräte werden nicht "geschalten", sondern "geschaltet"./quote]

Man lernt nie aus, besten dank  ;D

Prof. Dr. Peter Henning

ZitatGab es eine Änderung?
Nein. Bei Alarm seit vielen Monaten nicht - und die zwei ;; sind bei FHEM-Kommandos eigentlich immer schon Standard.

LG

pah

Blauhorn

Hallo,

ich habe nun endlich mal das seit einigen Monaten schlummernde Alarmdevice in Betrieb genommen, funktioniert auch alles soweit.
Nun kann man ja aber jeden Sensor nur einmal verwenden, zwar in verschiedenen Alarmleves aber nicht für verschieden Aktionen.
Mein gewünschte Anwendungsfall wäre, einen Hardware-Button zu haben, der Einfach, Doppel oder auch Dreifach-click versteht, und diese dann auch für Schärfen, Entschärfen und Widerruf nutzt. Ich würde das jetzt mit einem separaten Notify machen, aber schmuck wär's ja, wenn das direkt in Alarmkonfiguration einstellbar ist.

Gruß vom Blauhorn
1xBananaPi; 1x FB7490; 1xCUL433; 1x CC2530+CC2591; OpenMiLight-Gateway; 1xHMUART; HM-LC-Sw4-DR; Sonoff* mit TASMOTA, LEDController; MySensors; zigbee2mqtt;

Prof. Dr. Peter Henning

Zitatwenn das direkt in Alarmkonfiguration einstellbar ist
::)

Es steht jedem frei, sein eigenes Modul zu schreiben.

pah

87insane

Hey zusammen,

da ich mich nun mit dem Modul auch einige Zeit beschäftigt habe und nicht weiter komme, hier meine Fragen.

Die "Set Action" im "Actors" Bereich sollen wie genau geschrieben werden?
Wenn ich z.B. versuche einen Alias anstelle des Gerätenamens via AttrVal auslesen möchte klappt dies leider nicht.. Ich hab sowas gedacht:

{my $temp = AttrVal($NAME,'alias','ERROR');fhem('set DEV_123 speak $temp')}
{my $temp = AttrVal($d,'alias','ERROR');fhem('set DEV_123 speak $temp')}

geht beides nicht aber auch andere Ideen klappen nicht. Daher die Frage, ist das in dem Bereich nicht gewollt?

An sich würde ich $Short gerne einfach umstellen. Anstelle von der Meldung des Alarm Level am Ende würd ich diesen gern vorne haben und danach was passiert.
Beispiel: Einbruch - Fenster xy wurde geöffnet

Aktuell ist das im Modul umgekehrt. Es kommt zuerst Message Part I und dann Part II. Ggf kann man auch die Parts einzeln aufrufen. Aber ich habe weder im Wiki was gefunden noch habe ich den Quelltext soweit verstehen können. Ich bin über Infos sehr erfreut :)

Danke und Gruß,
87Insane

Prof. Dr. Peter Henning

Erstens stellt sich mir die Frage, was das Log dazu sagt.

Und zweitens: Hieran gedacht?

https://forum.fhem.de/index.php?topic=99995.0

LG

pah

87insane

1) Leider sagt das LOG nichts dazu. Es erscheint weder ein Fehler noch sonst irgendeine Info.

2) Was genau soll ich damit in Zusammenhang bringen? Ich möchte darüber nichts schalten - lediglich die den Ausgabe Text anpassen. Für mich wäre es auch ok, wenn ich Message Part I und II einfach als VAR zur Verfügung hätte.
Ich wundere mich das PERL dort nicht funktioniert.

TomLee

Zitat von: 87insane am 17 Dezember 2022, 20:16:56

{my $temp = AttrVal($NAME,'alias','ERROR');fhem('set DEV_123 speak $temp')}
{my $temp = AttrVal($d,'alias','ERROR');fhem('set DEV_123 speak $temp')}

geht beides nicht ...

Nie mit dem Modul beschäftigt und keine Ahnung was du da machst, aber in den zwei gezeigten Test-Beispielen klappen die Sprachbefehle nicht, weil $temp nicht in den einfachen Quotes evaluiert wird.

87insane

ZitatNie mit dem Modul beschäftigt und keine Ahnung was du da machst, aber in den zwei gezeigten Test-Beispielen klappen die Sprachbefehle nicht, weil $temp nicht in den einfachen Quotes evaluiert wird.

Hach wie ich diese Freundlichkeit hier wieder liebe. Ich habe X Dinge getestet, wie auch geschrieben.
Im Wiki steht nichts über weitere (bis auf $Short, VARs).

{my $alias = "BLA"; fhem("set ECHO_G2A1B50305030CH2 speak $alias")}
geht auch nicht! - Genau wie noch x andere Tests. Versuch es doch auch mal und berichte mir wie es lief.

Woher nimmst du die Erkenntnis das ich mit dem Modul nie beschäftigt habe? Finde solche pauschal Aussagen immer spannend. Ich denke das man an diversen Beiträgen sieht das ich mich sowohl mit FHEM und auch den Modulen immer auseinander setze bevor ich was schreibe.

rudolfkoenig

Bevor hier zum Handgreiflichkeiten kommt: ich habe TomLee so verstanden, dass er sich noch nicht mit dem Modul beschaeftigt hat.

87insane

Danke @rodolfkoenig. Vermutlich war es so gemeint... Sorry @TomLee.

Aber leider bleibt da Thema offen, denn es klappt ja leider nicht. Gibt es da ein Attr oder irgendwas, um das so wie ich das vorhabe zu nutzen?

dkalass

Moin zusammen,
ich habe mal eine andere Frage:
Ich habe meine fhem.cfg in viele .cfg Dateien aufgeteilt weil ich finde, das es viel übersichtlicher ist.
Aufgefallen ist mir bei diesem Modul, das obwohl es in einen eigenen .cfg hinterlegt ist, Änderungen immer wieder in die fhem.cfg eingetragen werden.
Vielleich kann man das bei der nächsten Version berücksichtigen, wäre toll!


Prof. Dr. Peter Henning

ZitatAufgefallen ist mir bei diesem Modul, das obwohl es in einen eigenen .cfg hinterlegt ist, Änderungen immer wieder in die fhem.cfg eingetragen werden.
Das ist granatenmäßiger Unsinn. Die interne Konfiguration der Alarmanlage im AlarmFILE hat nichts mit den Definitionen in der fhem.cfg zu tun.

ZitatVielleich kann man das bei der nächsten Version berücksichtigen, wäre toll!
Sicher nicht.

pah