Neues Modul für Alarmanlage

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

Vorheriges Thema - Nächstes Thema

UweUwe

Hallo gamauf,
bin mal über die alternative Strecke bei der "Bedingung" gegangen:
Das reading "state" hat den Inhalt "home", wenn jemand erlaubtes im Haus ist, dann soll der Alarm ausgeschaltet werden, ansonsten ein.
{ReadingsVal("Bewohner","state","Falsch") eq "home"}
Diese Bedingung wird leider auch nicht akzeptiert, in der FHEM-Kommandozeile ist diese syntaktisch ok bringt das richtige Ergebnis.
Ich hab auch noch den Weg über userReading überlegt. Dann benötige ich trotzdem in der Alarm-Bedingung ein ReadingsNum bzw. ReadingsVal.
Aber auch die einfache Abfrage {ReadingsNum("Bewohner","residentsTotalRoommates","-1")} funktioniert als Bedingung bei mir nicht. Mir ist schon klar, dass dies inhaltlich nicht ok ist. Meine Abfrage müsste ich über einen Dummy führen, aber der Bedingungsaufbau ist identisch.
Funktioniert nicht bedeutet: Nach Parameter-Setzen |Abspeichern | Zimmer wechsel|zurück in die Alarmanlage steht als Bedingung nur noch "{ReadingsVal(".
Ich habe den Eindruck, ReadingsVal und ReadingsNum funktioniert generell (bei mir) als Bedingung nicht. Und eine andere Abfrage eines "Readings" in den Bedingung fällt mir nicht ein. Gibt es zu Reading** eine Alternative? Merci

UweUwe

hi,  (Thema Bedingung für Alarm)
hab weiter getestet und bin zu folgender Erkenntnis für die Bedingung für den Alarm (Spalte hinter AlarmX) gekommen:
Nach |Eintragen der Bedingung|Parameter setzen|Save Config| Raum wechsel und wieder zurück in Alarmanlage| ist der Bedingungsstring sehr stark deformiert.
Die Bedingung scheint aber, so meine bisherigen Test, korrekt interpretiert zu werden, auch wenn diese nur deformiert in dem Bedingungsfeld steht.
Also mehr eine kosmetische Sache, die mich jedoch sehr verunsichert hat.
Meine Bedingung lautete:{ReadingsVal("Bewohner","state","Falsch") eq "home"}. Ersichtlich im Bedingungstring war:{ReadingsVal(
Ob dies auch für mein 2. Thema: "Auflösung durch RegExp beim Beispiel TFOpen.warn gilt, kann ich (noch) nicht beurteilen.
Werde berichten.



Prof. Dr. Peter Henning

Leute, Leute, ... irgendwo in der Doku steht schwarz auf weiß: Nicht " verwenden, sondern '

LG

pah

UweUwe

Hallo,

2. Thema TFOpen.warn , so wie im WIKI bringt bei mir Fehler.
TFOpen.warn ist ein Sensor für den Alarm Level 4.
verwendet ich  für das dummy TFOpen.warn als "Auslösung durch RegExp" den vorgeschlagenen string TFOpen.warn:.*[TF].*\|$EVENT\|on, so liefert das Logfile:
2019.01.17 21:31:09 1 : [Alarm 4] Settings |TFOpen.warn:.*[TF].*%7C$EVENT%7Con|$EVENT%7Con incomplete for alarmSensor TFOpen.warn
2019.01.17 21:31:09 3 : [Alarm 4] Created cancel notifier
2019.01.17 21:31:09 1 : [Alarm 4] Settings |TFOpen.warn:.*[TF].*\|$EVENT\|on|$EVENT\|on incomplete for alarmSensor TFOpen.warn
2019.01.17 21:31:09 3 : [Alarm 4] Created raise notifier

Es erscheint dann nach einiger Zeit im Logfile:2019.01.17 21:40:45 1 : [Alarm] Settings incomplete for alarmSensor TFOpen.warn
2019.01.17 21:40:45 1 : [Alarm] Settings incomplete for alarmSensor TFOpen.warn

Was kann ich noch testen, komme ich leider alleine nicht weiter.










essera

Hi,

ich habe in vorherigen Beiträgen was von Problemen mit "Escapen" gelesen und frage deshalb bevor ich mir weiter einen Wolf probiere.
Ich habe in früheren Versionen des Moduls folgendes verwendet um im Alarmfall meine Sonosanlage als "Sirene" zu missbrauchen:

set Sonos_Esszimmer PlayURI \\192.168.178.26\SonosSpeak\sirene1.mp3 80

Nach der Parameter Generierung killt das Modul immer meine Backslashes und mach daraus:
set Sonos_Esszimmer PlayURI 192.168.178.26SonosSpeaksirene1.mp3 80

Auch der Versuch über
{fhem('set Sonos_Esszimmer PlayURI \\192.168.178.26\SonosSpeak\sirene1.mp3 80')}

führt nicht zum Erfolg, sonder zu :
{fhem('set Sonos_Esszimmer PlayURI 192.168.178.26SonosSpeaksirene1.mp3 80')}

Sehe ich es richtig, dass ich es nun über ein Dummy auslagern sollte. Wäre schade weil es ,wie gesagt, schon mal funktioniert hat.

LG,
Andreas.



UweUwe

Hi, ich streite mich immer noch mit die "Bedingung" für Alarmlevel. (PerlCode mit dem Wert 1)
Den Perl-Code habe ich auch definiert, er lautet: {ReadingsVal("Bewohner","state","Falsch") ne "home"} und funktioniert so auch inhaltlich, sollte auch syntaktisch ok sein.
"Alarm" akzeptiert diesen Code so nicht. Nach einmaligem Abspeichern verändert sich der String zuverlässig zu{ReadingsVal( und die Funktion ist sporadisch gegeben (leider kann ich sporadisch nicht genauer definieren).

Meine Idee ist, das Ergebnis dieses Perl-Codes einem dummy HomAbs zuzuweisen und diese Variable dann in das Feld für die Bedingung einzutragen. Überlegt habe ich mir define HomAbs dummy
attr HomAbs room Alarm
set HomAbs ReadingsVal("Bewohner","state","Falsch") eq "home"}


In HomAbs sollte den Wert 0 oder 1 haben.  Ich weiss nicht, was ich in das Bedingungsfeld eintragen muss.
Merci für die Unterstützung.

UweUwe

Hallo,

ich konnte das Thema "Bedingung für Alarmlevel" mit dem Hinweis von pah:
ZitatLeute, Leute, ... irgendwo in der Doku steht schwarz auf weiß: Nicht " verwenden, sondern '
folgendermassen gelöst.

Commandref:                                                {ReadingsVal("Bewohner","state","Falsch") ne "home"}
Verwendung in dem Feld für die Bedingung: {ReadingsVal('Bewohner','state','Falsch') ne 'home'}

Damit ist dies für mich erstmal "Gelöst". Danke für die Unterstützung.

Prof. Dr. Peter Henning

War ja nicht viel Unterstützung - aber ich bin derzeit wegen der LEARNTEC dermaßen "Land unter", dass ich kaum noch Zeit zum Essen und Schlafen habe.

LG

pah

UweUwe

Hallo,
mein Thema gehört in den Sammel Block "Neues Modul für Alarmanlage. Als separates Thema kommt es verständlicherweise bei den Adressaten nicht an. Deshalb der Weg zurück. Danke für die Unterstützung.
Meine Farge lautet
ZitatWie sieht der Ausdruck für  Sensorauslösung (Auslösung durchRegexp) für z.B. eine Türe aus, wenn man auf beide Zustände reagieren möchte open -> closed und closed -> open.
Ich hatte T.HAUS:(closed\|open) in das Feld "Auslösung durch Regexp" für die Sensoren eingetragen.
Die Fehlermeldung im lautet:
Settings alarm0,alarm4,|T.HAUS:(closed\|open)|HT geöffnet|on incomplete for alarmSensor T.HAUS Zur Vervollständigung noch ein list von T.HAUS
Internals:
   DEF        69696D
   FUUID      5c481922-f33f-64ff-6ab1-140ca779dcd32887
   IODev      myHmUART
   LASTInputDev myHmUART
   MSGCNT     11
   NAME       T.HAUS
   NOTIFYDEV  global
   NR         85
   NTFY_ORDER 50-T.HAUS
   STATE      closed
   TYPE       CUL_HM
   lastMsg    No:49 - t:10 s:69696D d:070657 06010000
   myHmUART_MSGCNT 11
   myHmUART_RAWMSG 0501004A49A61069696D07065706010000
   myHmUART_RSSI -74
   myHmUART_TIME 2019-01-24 13:14:02
   protLastRcv 2019-01-24 13:14:02
   protRcv    11 last_at:2019-01-24 13:14:02
   protSnd    11 last_at:2019-01-24 13:14:02
   protState  CMDs_done
   rssi_at_myHmUART cnt:11 min:-75 max:-72 avg:-73.54 lst:-74
   READINGS:
     2019-01-24 07:30:13   Activity        alive
     2019-01-03 16:50:33   CommandAccepted no
     2019-01-03 16:50:13   D-firmware      1.0
     2019-01-03 16:50:13   D-serialNr      PEQ0583168
     2019-01-04 12:20:34   PairedTo        0x070657
     2019-01-03 16:50:14   R-cyclicInfoMsg on
     2019-01-03 16:50:14   R-eventDlyTime  0 s
     2019-01-03 16:50:14   R-pairCentral   0x070657
     2019-01-03 16:50:14   R-sabotageMsg   on
     2019-01-03 16:50:14   R-sign          on
     2019-01-04 12:20:34   RegL_00.        00:00 02:01 09:01 0A:07 0B:06 0C:57 10:01 14:06
     2019-01-04 12:20:35   RegL_01.        00:00 08:01 20:9C 21:00 30:06
     2019-01-03 16:49:43   aesCommToDev    ok
     2019-01-03 16:49:43   aesKeyNbr       00
     2019-01-24 13:14:02   alive           yes
     2019-01-24 13:14:02   battery         ok
     2019-01-24 13:14:02   contact         closed (to VCCU)
     2019-01-03 16:46:20   powerOn         2019-01-03 16:46:20
     2019-01-24 13:14:02   recentStateType info
     2019-01-24 13:14:02   sabotageError   off
     2019-01-24 13:14:02   state           closed
     2019-01-03 16:46:23   trigDst_broadcast noConfig
     2019-01-24 12:38:39   trigger_cnt     62
   helper:
     HM_CMDNR   73
     mId        00C7
     regLst     ,0,1,4p
     rxType     28
     supp_Pair_Rep 0
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +69696D,00,00,00
       nextSend   1548332042.66369
       rxt        2
       vccu       VCCU
       p:
         69696D
         00
         00
         00
       prefIO:
         myHmUART
     mRssi:
       mNo        49
       io:
         myHmUART:
           -72
           -72
     prt:
       bErr       0
       sProc      0
       sleeping   0
       rspWait:
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
     rpt:
       IO         myHmUART
       flg        A
       ts         1548332042.3701
       ack:
         HASH(0x3650e20)
         49800207065769696D00
     rssi:
       at_myHmUART:
         avg        -73.5454545454545
         cnt        11
         lst        -74
         max        -72
         min        -75
     tmpl:
Attributes:
   DbLogExclude .*
   DbLogInclude state battery
   IODev      myHmUART
   IOgrp      VCCU:myHmUART
   actCycle   002:50
   actStatus  alive
   alarmDevice Sensor
   alarmSettings alarm0,alarm4,|T.HAUS:(closed\|open)|HT geöffnet|on
   autoReadReg 4_reqStatus
   expert     2_raw
   firmware   1.0
   genericDeviceType window
   model      HM-SEC-SCo
   peerIDs    00000000,
   room       CUL_HM,DIELE,Homekit
   serialNr   PEQ0583168
   subType    threeStateSensor

Tommy82

Hallo,
ich muss nochmal nach der bedeutung der gesetzten Start und End Zeit in den Einstellungen fragen, irgendwie werde ich aus dem Wiki nicht richtig schlau.
Was bewirken die Zeiten? Ich hätte gedacht zu den dort gesetzten Zeiten schaltet die Anlage automatisch, allerdings ist das bei mir nicht der Fall, dann hätte sie ja um 23 auf "armed" und um 7 Uhr wieder aus "dissaemed" gehen müssen
Internals:
   FUUID      5c48d22d-f33f-f412-289b-cfbcdf7113aad240
   NAME       Alarmanlage
   NR         346
   STATE      --------
   TYPE       Alarm
   VERSION    5.0
   DATA:
     savedate   2019-02-18 21:27:45
     armstate:
       level0     disarmed
   Helper:
     DBLOG:
       level0:
         myDbLog:
           TIME       1550521665.42459
           VALUE      disarmed
       savedate:
         myDbLog:
           TIME       1550521665.4522
           VALUE      2019-02-18 21:27:45
       state:
         myDbLog:
           TIME       1550604241.98171
           VALUE      --------
   READINGS:
     2019-02-18 21:27:45   level0          disarmed
     2017-12-11 19:20:48   level1          disarmed
     2017-12-11 19:20:48   level2          disarmed
     2017-12-11 19:20:48   level3          disarmed
     2017-12-11 19:20:48   level4          disarmed
     2017-12-11 19:20:48   level5          disarmed
     2017-12-11 19:20:48   level6          disarmed
     2017-12-11 19:20:48   level7          disarmed
     2019-02-18 21:25:53   lockstate       locked
     2019-02-18 21:27:45   savedate        2019-02-18 21:27:45
     2018-10-28 19:42:15   short           
     2019-02-19 20:24:01   state           --------
Attributes:
   armact     set Android_Tablett_Wohnzimmer ttsMsg Alarmanlage ist scharf geschaltet
   armdelay   5:00
   armwait    set Android_Tablett_Wohnzimmer ttsMsg Alarmanlage wird in 5 Minuten scharf geschaltet
   cancelact  set Android_Tablett_Wohnzimmer ttsMsg Alarm wiedrrufen
   disarmact  set Android_Tablett_Wohnzimmer ttsMsg Alarmanlage ist unscharf geschaltet
   level0autocan 0:00
   level0cond 1
   level0end  7:00
   level0msg  Einbruch
   level0offact set Android_Tablett_Wohnzimmer ttsMsg Alarm wurde zurückgesetzt;set FritzDect_Wohnzimmerschrank off;set Funkschalter_Keller_Licht off;set Licht off;set Steckdose_Buero_Schrank_Licht off;set Steckdose_Haustuer off;set Steckdose_Kueche off;Steckdose_Weihnachten_Wohnzimmer off;
   level0onact ;set Android_Tablett_Wohnzimmer ttsMsg Alarm wurde ausgelöst;set FritzDect_Wohnzimmerschrank on;set Funkschalter_Keller_Licht on;set Licht on;set Steckdose_Buero_Schrank_Licht on;set Steckdose_Haustuer on;set Steckdose_Kueche on;set Steckdose_Weihnachten_Wohnzimmer on;
   level0start 23:00
   level1autocan 0:00
   level1cond 0
   level1end  23:59
   level1msg  --
   level1offact 1
   level1onact ;;;;;;;;;;;
   level1start 0:00
   level2autocan 0:00
   level2cond 0
   level2end  23:59
   level2msg  --
   level2start 0:00
   level3autocan 0:00
   level3cond 0
   level3end  23:59
   level3msg  --
   level3start 0:00
   level4autocan 0:00
   level4cond 0
   level4end  23:59
   level4msg  --
   level4start 0:00
   level5autocan 0:00
   level5cond 0
   level5end  23:59
   level5msg  --
   level5start 0:00
   level6autocan 0:00
   level6cond 0
   level6end  23:59
   level6msg  --
   level6start 0:00
   level7autocan 0:00
   level7cond 0
   level7end  23:59
   level7msg  --
   level7start 0:00
   room       AlarmRoom
   statedisplay simple
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

Prof. Dr. Peter Henning

Nein, scharf oder unscharf ist unabhängig davon. Bedingung für Auslösung: scharf UND innerhalb der angebenenen Zeitspanne.

LG

pah

Tommy82

Heisst, wenn ich SCHARF schalte außerhab der Zeit, also bsp. 8 Uhr, dann würde die Anlage nicht Scharf sein?
Dann könnte ich doch immer Scharf lassen und die Anlage wäre nur zwichen 23 und 7 aktiv?
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

UweUwe

Hallo, Tommy82, genau so mache ich es.
Ich habe den Alarm immer scharf und entschärfe ihn über die Bedingungen:
1. "Bedingung"    (ich hab ich in einigen Alarmen Geofancy drin, ==> Anwesenheit).
2. "Start ... Ende"    (z.B. Alarm für Verletzung der Aussenhaut bei definierter Schlafenszeit und Anwesenheit)               

Bitte wirken identisch auf den Alarm, beide entschärfen unabhängig voneinander, wenn die Bedingung nicht erfüllt ist.
Ich hoffe, es ist richtig.  pah?

Prof. Dr. Peter Henning


Tommy82

Guten Morgen,
hab dann noch eine Frage,
ich hab Amazon Dash Button zum Wiederrufen des Alarms angelegt, so wie auf dem Bild zusehen. Wenn ich diesen nach dem Auslösen des Alarms Drücke passiert aber nichts, was muss ich da noch einstellen, bzw. was müsste da passieren?
Der Button sieht so aus:
Internals:
   CONNECTS   2
   FD         4
   FUUID      5c48d22e-f33f-f412-37cf-e5af6764d77d2544
   LAST_CONNECT 2019-02-27 20:12:05
   LAST_DISCONNECT 2019-02-27 20:12:05
   NAME       DashButtonAlarm
   NR         373
   NTFY_ORDER 50-DashButtonAlarm
   PORT       6767
   STATE      listening
   TYPE       dash_dhcp
   Helper:
     DBLOG:
       50-f5-da-6f-6e-71:
         myDbLog:
           TIME       1551295013.50472
           VALUE      short
   READINGS:
     2019-02-27 20:16:53   50-f5-da-6f-6e-71 short
     2019-02-27 20:12:05   state           listening
   helper:
     devAliases:
Attributes:
   alarmDevice Sensor
   alarmSettings alarm0,|DashButtonAlarm|Alarm Wiederrufen|off
   allowed    50:F5:DA:6F:6E:71
   group      Hardeware
   port       6767
   room       Wohnzimmer
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