Neues Modul für Alarmanlage

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

Vorheriges Thema - Nächstes Thema

gamauf

asso!
So hat PAH die Knöpfe seiner Fernbedienung genannt mit der er seine Alarmanlage scharf schaltet bzw. entschärft!
Bei Dir werden die entsprechenden Devices wahrscheinlich anders heißen.
Falls Du noch keine Fernbedienung hast kannst ja zum testen erst ein mal ein Dummy Device anlegen...

Prof. Dr. Peter Henning

Ich schließe mich dem Vorschlag an, erst einmal klein anzufangen, das ist dem Verständnis sehr förderlich.

Und nein, ich widerspreche: Zuständsänderungen der Alarmanlage werden IMMER durch Sensoren verursacht - egal, ob diese den Alarm scharf schalten, unscharf schalten, auslösen oder abstellen.

Die Funktionalität "Zeitsensor", der nach einer bestimmten Zeit etwas auslöst (etwa, einen Alarm wieder automatisch cancelt = abstellt) wurde mit Absicht außerhalb des eigentlichen Moduls gehalten.

LG

pah

phil82

Hallo zusammen,

ich baue mir mit dem Alarm-Modul gerade meine Alarmanlage zusammen. Funktioniert soweit auch ganz gut.
Mir ist nur aufgefallen, dass wenn die Alarmanlage deaktiviert/"Disarm" wird, dass die Deaktivierung erst mit 3 Sekunden Verzögerung "geschaltet" wird. Sprich: erst mit 3 Sekunden Verzögerung wird die "Disarm Action" ausgeführt:

In 95_Alarm.pm Zeile 461-462:
      fhem("define alarm".$level.".disarm.T at +00:00:03 ".$cmd)
        if( $cmd );


Hat das einen Grund? Kann der Code nicht direkt ausgeführt werden?

Hintergrund: Ich setzt mit der "Disarm Action" einen Dummy (um diesen dann im TableUI zu visualisieren). Wenn der Anwender die Alarmanlage deaktivieren will, die Deaktivierung aber erst 3 Sekunden später "greift", dann kann der Anwender leicht denken, dass die Deaktiviertung nicht funktioniert hat.

Ich hab mir jetzt nicht den ganzen Thread durchgelesen, ich hab aber nichts passendes in der Suche gefunden.

Gruß
Philipp

holle75

Hello, ich möchte keine wait, arm, disarm, cancel action und würde gerne die entsprechenden Felder leer lassen. Das Modul setzt mir aber dort immer eine "1" ein mit dem Resultat, dass ich bei jeder der o.g. Aktionen ein "alarmX.disarm.T: Unknown command 1, try help." im Log finde.

Wie sollte eine "tue nichts"-Aktion in den Feldern aussehen?

Danke und Grüße

H.

holle75

Scheinbar nutzt jeder Aktionen in diesen Feldern. Ich habe mir dort jetzt auch einen set Dummy reingelegt um die Fehlermeldung zu umgehen. Auch ein Weg.

Nach Update auf 5.7 (Ja, recht spät) verliert das Modul seinen STATE (dort wo früher zB "keine Störung" stand) ab und zu. Wenn der STATE gerade verloren ist, ergibt sich nach Restart ein

./log/fhem.save: Usage: setstate
where is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details. 


unter 5.6 gab es das nicht. Noch jemand den Fehler?

Prof. Dr. Peter Henning

Ich lese immer "Fehler". Gemeint ist wohl in beiden Fällen eine fehlerhafte Konfiguration.

LG

pah

arne.dien

FHEM 5.9, RasPi 3 B, HM-LAN, RFXtrx433, Harmony
Homematic, Licht, Rolladen, Heizkörper, Rauchmelder...
ESP RGBWW, LD316...

Es ist selten zu spät aber immer höchste Zeit...

holle75

@pah Da müssen wir uns missverstanden haben. Ich sprach explizit von Fehlern im Modul und nicht einer fehlerhaften Konfiguration.

... wobei das natürlich nicht auszuschließen wäre!

Deswegen dachte ich "frag ich doch mal im Forum im Hauptthread des Modules. Vielleicht kennt jemand den Fehler, vielleicht wird dir geholfen (bei Konfigurationsfehler), oder gar versucht den Fehler im Modul zu fixen (falls Fehler im Modul)"

Zu viel erwartet? Das Prinzip eines Forums nicht verstanden?


Prof. Dr. Peter Henning

Eben - das sind keine "Fehler des Moduls".

LG

pah

hauwech

@Holle75: ... Du hast einen ziemlich unfreundlichen Umgangston, da wird sich die Hilfsbereitschaft in engen Grenzen halten.
Fhem auf Intel NUC11TNKi5+M2 NVMe+32GB RAM mit Ubuntu 22.04 LTS

holle75

@hauwech Nö, eigentlich bin ich überhaupt nicht unfreundlich. Im Gegenteil.

Lustigerweise wußte ich schon beim Schreiben der Fragen (nach Lektüre der 42 Seiten), dass ich eine Antwort, wie sie dann auch kam, zu erwarten habe. Und genau dieser Antwort galt meine Erwiderung. Entsprechend.

@alle Fehler Nr2 (STATE) trat erst nach update auf 5.7 auf. Mit der selben Konfi. Noch jemand das Problem?


CoolTux

Was spricht eigentlich dagegen wenn Du Deine Konfig hier mal postest. Ich gehe mal davon aus das Du eine andere hast wie die anderen? Oder irre ich mich? Solltest Du also einen Fehler in der Konfig haben so kann man ihn nur zusammen finden wenn Du Deine Konfig hier postest. Hoffe das ist ok für Dich.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

holle75

#627
Moinsen CoolTux, gerne sogar. Ich dachte ich frag erstmal nach ob ein Problem bekannt ist, bevor ich euch gleich mit Daten konfrontiere.

fhem.cfg:

define Alarmanlage Alarm
attr Alarmanlage armact set AlarmDisplay armed
attr Alarmanlage armdelay 00:00
attr Alarmanlage armwait set AlarmDisplay armed
attr Alarmanlage cancelact set AlarmDisplay unarmed
attr Alarmanlage disarmact set AlarmDisplay unarmed
attr Alarmanlage level0end 23:59
attr Alarmanlage level0msg ALARM
attr Alarmanlage level0offact 1
attr Alarmanlage level0onact set AllAlarmOff on;;set SqueezeBoxAlarmTalk on;;
attr Alarmanlage level0start 00:00
attr Alarmanlage level0xec disarmed
attr Alarmanlage level1end 23:59
attr Alarmanlage level1msg schwach
attr Alarmanlage level1offact 1
attr Alarmanlage level1onact { DebianMail('xxx@xxx.com','Alarm',Value('Alarmanlage'),'') };;
attr Alarmanlage level1start 00:00
attr Alarmanlage level1xec armed
attr Alarmanlage level2end 23:59
attr Alarmanlage level2msg vergessen oder Einbruch
attr Alarmanlage level2offact 1
attr Alarmanlage level2onact set AllAlarmOff on;;{ DebianMail('xxx@xxx.com','Alarm',Value('Alarmanlage'),'') };;
attr Alarmanlage level2start 00:00
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 room AlarmRoom
attr Alarmanlage verbose 1

define Alarmanlage_weblink weblink htmlCode {Alarm_Html("Alarmanlage")}
attr Alarmanlage_weblink room AlarmRoom

define alarm0.off.N notify (AllAlarmOff:on) {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 (.*Container_BEWEGUNGSMELDER.*motion.*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 (AnwesenheitHaupt:absent) {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 (GAST_Anwesenheit:present)|(H_Anwesenheit:present)|(N_Anwesenheit:present) {main::Alarm_Arm("Alarmanlage",0,"$NAME","$EVENT","disarm")}
attr alarm0.disarm.N group alarmNotifier
attr alarm0.disarm.N room Alarm
define alarm1.off.N notify (AllAlarmOff:on) {main::Alarm_Exec("Alarmanlage",1,"$NAME","$EVENT","off")}
attr alarm1.off.N group alarmNotifier
attr alarm1.off.N room Alarm
define alarm1.on.N notify (BatteriecheckWarnung) {main::Alarm_Exec("Alarmanlage",1,"$NAME","$EVENT","on")}
attr alarm1.on.N group alarmNotifier
attr alarm1.on.N room Alarm
define alarm2.off.N notify (AllAlarmOff:on) {main::Alarm_Exec("Alarmanlage",2,"$NAME","$EVENT","off")}
attr alarm2.off.N group alarmNotifier
attr alarm2.off.N room Alarm
define alarm2.on.N notify (Container_SENSOR_Tor:sensor_open) {main::Alarm_Exec("Alarmanlage",2,"$NAME","$EVENT","on")}
attr alarm2.on.N group alarmNotifier
attr alarm2.on.N room Alarm
define alarm2.arm.N notify (AnwesenheitHaupt:absent) {main::Alarm_Arm("Alarmanlage",2,"$NAME","$EVENT","arm")}
attr alarm2.arm.N group alarmNotifier
attr alarm2.arm.N room Alarm
define alarm2.disarm.N notify (GAST_Anwesenheit:present)|(H_Anwesenheit:present)|(N_Anwesenheit:present) {main::Alarm_Arm("Alarmanlage",2,"$NAME","$EVENT","disarm")}
attr alarm2.disarm.N group alarmNotifier
attr alarm2.disarm.N room Alarm


und die DEF:

Internals:
   NAME       Alarmanlage
   NR         605
   STATE
   TYPE       Alarm
   VERSION    2.6
   Readings:
     2015-09-24 15:28:10   level           0
     2016-08-18 16:02:29   level0          off
     2015-09-25 10:00:37   level1          off
     2016-08-18 16:02:09   level2          off
     2015-10-09 10:20:51   lockstate       unlocked
     2016-08-18 16:02:29   short
     2016-08-21 15:22:49   state
Attributes:
   armact     set AlarmDisplay armed
   armdelay   00:00
   armwait    set AlarmDisplay armed
   cancelact  set AlarmDisplay unarmed
   disarmact  set AlarmDisplay unarmed
   level0end  23:59
   level0msg  ALARM
   level0offact 1
   level0onact set AllAlarmOff on;set SqueezeBoxAlarmTalk on;
   level0start 00:00
   level0xec  disarmed
   level1end  23:59
   level1msg  schwach
   level1offact 1
   level1onact { DebianMail('xxx@xxx.com','Alarm',Value('Alarmanlage'),'') };
   level1start 00:00
   level1xec  armed
   level2end  23:59
   level2msg  vergessen oder Einbruch
   level2offact 1
   level2onact set AllAlarmOff on;{ DebianMail('xxx@xxx.com','Alarm',Value('Alarmanlage'),'') };
   level2start 00:00
   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  0
   level6msg  0
   level6start 0
   level6xec  disarmed
   level7end  0
   level7msg  0
   level7start 0
   level7xec  disarmed
   room       AlarmRoom
   verbose    1


schön, dass du mich nicht direkt anpampst ;)

Grüße

H.

CoolTux

Gepampt wird nur wenn man keine Infos liefert aber Sprüche
Zitat
Zu viel erwartet? Das Prinzip eines Forums nicht verstanden?

Mach mal bitte ein list vom Device, da sieht man dann noch etwas mehr. Und dann schauen wir einmal was die Wissenden dazu sagen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

holle75

Moment, "Zu viel erwartet? Das Prinzip eines Forums nicht verstanden?" das bezog sich auf mich, nicht auf jemand anderen.

Anyway

die Def ist das List

Internals:
   NAME       Alarmanlage
   NR         606
   STATE
   TYPE       Alarm
   VERSION    2.6
   Readings:
     2015-09-24 15:28:10   level           0
     2016-08-18 16:02:29   level0          off
     2015-09-25 10:00:37   level1          off
     2016-08-18 16:02:09   level2          off
     2015-10-09 10:20:51   lockstate       unlocked
     2016-08-18 16:02:29   short
     2016-08-21 16:36:30   state
Attributes:
   armact     set AlarmDisplay armed
   armdelay   00:00
   armwait    set AlarmDisplay armed
   cancelact  set AlarmDisplay unarmed
   disarmact  set AlarmDisplay unarmed
   level0end  23:59
   level0msg  ALARM
   level0offact 1
   level0onact set AllAlarmOff on;set SqueezeBoxAlarmTalk on;
   level0start 00:00
   level0xec  disarmed
   level1end  23:59
   level1msg  schwach
   level1offact 1
   level1onact { DebianMail('xxx@xxx.com','Alarm',Value('Alarmanlage'),'') };
   level1start 00:00
   level1xec  armed
   level2end  23:59
   level2msg  vergessen oder Einbruch
   level2offact 1
   level2onact set AllAlarmOff on;{ DebianMail('xxx@xxx.com','Alarm',Value('Alarmanlage'),'') };
   level2start 00:00
   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  0
   level6msg  0
   level6start 0
   level6xec  disarmed
   level7end  0
   level7msg  0
   level7start 0
   level7xec  disarmed
   room       AlarmRoom
   verbose    1