Hallo Liste,
ich habe ein neues Modul im Betastadium, mit dem sich auf einfachste Weise eine Alarmanlage realisieren lässt, die beliebige (auch virtuelle) Sensoren mit auszulösenden Alarmleveln und beliebigen Aktoren verbindet.
Das Ganze macht eigentlich nichts weiter, als komfortabel die entsprechenden FHEM notifys etc. zu erstellen.
Eine Wiki-Seite dafür ist hier im Entstehen: http://www.fhemwiki.de/wiki/Modul_Alarmanlage
Suche noch willige Betatester.
LG
pah
Hallo pah,
ja nach soetwas habe ich schon lange gesucht, aber...
ZitatFerner muss das Modul 95_Alarm.pm im Modulpfad installiert werden, ebenso die JavaScript-Datei alarm.js in www/pgm2.
Wo finde ich diese Dateien?
Gruß
Thomas
Na, dann häng ich die Beta-Version mal hier an.
Viel Vergnügen !
LG
pah
Dann häng ich auch hier noch mal den Kommentar rein:
Bitte die Module immer im ersten Post des Threads anhängen und jeweils durch die aktuelle Version ersetzen (oder von mir aus auch verschiedene Versionen - soweit identifizierbar - gleichzeitig anbieten). Ansonsten verliert man leider schnell den Überblick, welche die aktuelle Version ist und wo man sie findet.
Danke, Peter
Dieser Anweisung werde ich sicher nicht folgen.
pah
ZitatBitte...
Zitat
Dieser Anweisung
????
Zitat von: Prof. Dr. Peter Henning am 09 September 2014, 21:02:13
Dieser Anweisung werde ich sicher nicht folgen.
Ich maße mir nicht an, Anweisungen zu erteilen, daher habe ich die
Bitte mit einer
Begründung unterlegt.
Hallo det.,
sicher eine gute Idee, aber ich benutze das presence bisher nicht. Mal sehen, vielleicht komme ich Ende nächster Woche dazu, das zu testen.
LG
pah
Hi,
mal abgesehen davon, dass ich Peters Bitte für völlig legitim und richtig erachte, finde ich das Modul spannend.
Es handelt sich also bei der "Alarmanlage" nicht um eine Einbruchmeldeanlage im engeren Sinn, sondern viel mehr um ein universelles Informations/Reaktionssystem? Sehe ich das richtig?
Dann finde ich es sehr hilfreich, da es viel Wildwuchs vereinfachen und zusammenfassen könnte.
Werde gerne Betatesten, sobald ich wieder Internet und Telefon habe :(
Hallo,
mein erster Beitrag in diesem Forum. :)
Mit fhem beschäftige ich mich seit März diesen Jahres. Und es macht mächtig Spaß (auch wenn man manchmal verwzeifelt)
Was mir fehlte, war ein Ansatz für eine Alarmanlage, mit der ich einzelne Sensoren und Aktoren individuell ein und ausschalten kann.
Ich habe die zugehörigen Dateien eingefügt. Es sieht wirklich gut aus. Dementsprechend bin ich gerne Betatester für dieses Projekt. :-)
Gruß aus Hamm
Zum Thema "presence": Werde ich sicher nicht einsetzen, schon gar nicht im Zusammenhang mit Alarm. Ich stelle mir nur vor, dass meine Frau das Handy ausschaltet und dann beim Öffnen der Terrassentür der Einbruchsalarm losgeht ... Das hat einen WAF von Null. Was man machen kann, ist eine automatische Scharf/Unscharf-Schaltung bei bestimmten Events. Kann ich evtl. einbauen, an demmechanismus für die Scharfschaltung baue ich sowieso gerade etwas um.
Zum Thema "Alarm": Natürlich ist das nicht "nur" eine Alarmanlage für böse Einbrecher. Sondern sie soll mich auch warnen, wenn das Wasser im Keller steht oder bei Regen ein Dachfenster offen ist. Das Modul kann aber schon fast alles, was man von einer "echten" Alarmanlage erwarten würde.
Betreffend die so genannte Bitte: Nein, das wird nicht so gemacht. Ganz wenige Einzelversionen werden zum Betatest an den jeweils aktuellen Post angehängt - sobald das einigermaßen verwendbar ist, kommt es ins SVN. Wem das nicht gefällt, der möge bitte den ersten echten Release abwarten.
LG
pah
Hallo,
ich melde mich auch mal als "williger BetaTester".....habe bei mir gerade das Modul & die .js Datei "installiert"......
Werde mich nun an das Setup machen......
Gruß aus Berlin,
Joachim
Ich habe die beiden Dateien noch einmal überarbeitet.
Beliebige Sensoren (natürlich auch virtuelle Sensoren, ich benutze dazu beispielsweise eine Sequenz von Tastendrücken auf einem Homematic-Wandtaster) können jetzt auch genutzt werden, um bestimmte Alarmlevel scharf oder unscharf zu schalten.
Damit kann det. auch das "presence"-Modul verwenden.
Beide Dateien sind unter contrib/Alarm zu finden. In den Mainstream können sie noch nicht, es fehlt noch die commandref.
Außerdem muss noch die Wiki-Seite an das leicht geänderte Aussehen angepasst werden (Bilder ...)
LG
pah
Hört sich interessant an. Genau so etwas habe ich gesucht.
Ich habe es mal angetestet.
Alle Einstellungen unter Settings waren nach einem Neustart oder "shutdown restart" weg. Habe ich etwas falsch gemacht? Set Alarms habe ich gewählt. Eine Alarmlevel kunfiguriert und einen Sensor.
00:00 bis 23:59 sind dann wirklich 24h?
Hast du beide Dateien in /opt/fhem/contrib gefunden?
Ich finde dort nur die 99_ALARM.pm :-\
oh, ich habe die aus diesem Thread genommen -> vermutlich alter Stand
1. Nö, im contrib/Alarm Verzeichnis stehen beide, 95_Alarm.pm und alarm.js (die 95_Alarm.pm habe ich heute abend nochmal upgedatet).
Bitte nicht verwechseln mit der alten Datei 99_ALARM.pm von Rudi König, die steht direkt unter contrib.
2. Ich habe bewusst kein Autosave eingebaut. Wenn man also seine diversen Alarme angelegt hat, sollte man vor einem Reboot ein "Save config" durchführen
LG
pah
Der Ordner Alarm existiert bei mir in /opt/fhem/contrib leider nicht.
Update durchgeführt ? Eingecheckt heute morgen um 6:44
LG
pah
contrib wird beim update nicht mit aktualisiert.
von hand auschecken oder über das sourceforge web interface runterladen.
gruss
andre
Ich denke man sollte sich die Dateien hier laden
http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/Alarm/ (http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/Alarm/)
Zumindest habe ich dort die Version 1.1 gefunden.
Gruß
Gigafix
Passt.
@justme: Ups - habe ich nicht dran gedacht.
LG
pah
Hallo Peter,
prima Idee! Ich teste gerne mit.
Ich konfiguriere gerade meine Geräte. Eine Frage: Fehlt beim Batterie-Notify nicht das 'notify'?
define LBatt.N notify .*:[Bb]attery.*[Ll]ow.* set LBatt.warn $NAME
Viele Grüße
Sven
Öh - ja. Ist behoben.
Ich habe eine etwas komplettere Anleitung für den Tür/Fenster Öffnungswarner eingestellt, sowie eine neue Version 1.2 des Moduls eingecheckt. Hat noch ein paar kosmetische Korrekturen bekommen.
LG
pah
Hallo Peter,
super, damit wird es für mich klarer und es funktioniert wie jetzt im Wiki beschrieben.
Ich hätte noch ein Problem mit der Action eines Actors. Ich verwende Pushover zur Benachrichtigung.
Pushover verwendet folgendes Format:
set <Pushover_device> msg [title] <msg> [<device> <priority> <sound> [<retry> <expire>]]
In meinem Fall verwende ich:
{fhem("set Pushover1 msg 'Alarm' '".Value('AAA')."'")}
Mit den 2 verschieden Anführungszeichen kommt dann Dein Modul aber nicht zurecht. Der String wird erst einmal als Set Action übernommen, dann aber abgeschnitten.
Oder mache ich hier was falsch?
Viele Grüße
Sven
Verstehe ich nicht ganz.
Wo wird dieser String eingetragen ?
Wann erscheint er abgeschnitten ?
An welcher Stell eim String ?
LG
pah
1. Ich trage den String im Actor als Set Action analog zum Mailversand ein (Bild 1).
2. Dann speichere ich die Alarmeinstellungen. In der config-Datei wird dies auch richtig eingetragen und der Befehl wird richtig ausgeführt.
3. Bei einem erneuten Aufruf der Alarm-Seite in FHEM wird der String dann abgeschnitten (Bild 2).
Ich denke mal, dass es am HTML-Code liegt und das HTML-Element nicht mit den verschiedenen Anführungszeichen zurechtkommt. Mir ist aber auch keine Lösung dazu eingefallen. Alternativ müsste wohl der Pushover-Aufruf mit mehreren Parametern (wie bei debianmail) und nicht einem String erfolgen.
Danke und viele Grüße
Sven
Ich habs mit einer Funktion in myUtils.pm gelöst:
sub Push($$)
{
my $msgtxt=Value($_[1]);
#Log 2,"Push: $_[0], $_[1], $msgtxt";
fhem("set Pushover1 msg '".$_[0]."' '".$msgtxt."'");
}
und
{Push('Alarm','AAA')}
als Set Action
Luigi
Gute Idee.
Danke Luigi!
Ich würde das auch in eine andere Funktion kapseln, so wie den Mailversand.
Ich werde allerdings mal sehen, ob ich das Problem auch im Modul bereinigen kann. Dauert aber.
LG
pah
Neue Version ist eingecheckt.
LG
pah
Hallo,
einrichten funktioniert soweit, beim "Set Alarms" setzen erscheint dann jedoch die Fehlermeldung:
"State locked, cannot create new notifiers"
95_Alarm.pm ist Version 1.3, wo kann ich mit der Fehlersuche ansetzen?
Danke
Hallo!
Version 1.2 jedoch beim Setzen des Alarms Meldung wie oben.
LG
Logfile (Version 1.3):
2014.09.15 08:56:04 1: [Alarm] State locked, cannot create new notifiers
Use of uninitialized value in concatenation (.) or string at ./FHEM/95_Alarm.pm line 608.
Hallo pah,
Hört sich interessant an, werde mir das auch mal (am WE) ansehen. Steht noch auf meiner todo - liste.
klaus
"state locked" ist ganz einfach zu lösen. Beim ersten Start des Moduls hat das Attribut "lockstate" noch keinen Wert - und der muss explizit auf "unlocked" stehen, damit man die Werte ändern kann ::)
Also einfach das Kommando "set <alarmname> unlock" absetzen...
Oder in der Weboberfläche per Maus durchführen.
Oder das Kommando "attr <alarmname> lockstate unlocked" absetzen.
LG
pah
Hallo und Danke!
Das mit "lockstate unlock" hat geklappt, jetzt kommt die Meldung:
created alarm notifiers
bei "Set alarms" - Es werden alle Einträge gespeichert, bis auf:
"Alarm Level" und "Set Action" im Kästchen "Actors".
Diese beiden Einträge gehen, trotz Save Config immer verloren (Ver. 1.3)
LG
Hallo zusammen,
nachdem ich in den letzten Wochen immer nur gelesen habe und FHEM richtig Spass macht, möchte ich auch ein wenig dazu beitragen.
Das Verhalten das die Felder wieder gelöscht werden, trotz "Save Config", hatte ich auch bis ich im Feld Delay eine 0 eingetragen habe.
Jedoch kann ein definierter Türkontakt als Sensor ein Funksteckdose nicht schalte.
Besten Gruß
Stefan
So jetzt ist es etwas besser wenn man direkt am Rechner sitzt:
Folgende Meldung bekomme ich im LogFile wenn ich versuche einen "Set Alarms" ausführe:
2014.09.15 22:03:32 1: [Alarm 0] Creation of cancel notifier not possible
Ein List gibt mir folgendes aus:
Internals:
NAME AAA
NR 413
STATE Level 0 canceled
TYPE Alarm
VERSION 1.3
Readings:
2014-09-14 16:07:53 level none
2014-09-15 20:56:02 level0 off
2014-09-15 20:47:29 lockstate unlocked
2014-09-15 20:56:02 short Level 0 canceled
2014-09-15 22:06:32 state Level 0 canceled
Attributes:
level0end 23:59
level0msg wurde geöffnet !
level0start 00:00
level0xec sharp
level1end 0
level1msg 0
level1start 0
level1xec unsharp
level2end 0
level2msg 0
level2start 0
level2xec unsharp
level3end 0
level3msg 0
level3start 0
level3xec unsharp
level4end 0
level4msg 0
level4start 0
level4xec unsharp
level5end 0
level5msg 0
level5start 0
level5xec unsharp
level6end 0
level6msg 0
level6start 0
level6xec unsharp
level7end 0
level7msg 0
level7start 0
level7xec unsharp
room AlarmRoom
Desweiteren gibt es wohl noch attr wie level0offact und level0onact, keine Ahnung was diese bewirken.
Besten Gruß
Stefan
@raimundl: Ich müsste wissen, was dazu im Logfile steht.
Wichtige Sache: Ein "Notifier" für das Auslösen des Alarms wird nur gespeichert, wenn auch einer für das Widerrufen (=Cancel) des Alarms besteht. Habe ich in die Doku mit aufgenommen.
LG
pah
Warum wird bei dem Eintrag:
define Alarmanlage Alarm
attr Alarmanlage room AlarmRoom
define AAA_weblink weblink htmlCode {Alarm_Html("Alarmanlage")}
attr AAA_weblink room AlarmRoom
Das Webinterface 2mal angezeigt ?
und noch etwas:
wenn ich meinem Fensterkontakt_1 das Attribut alarmDevice Sensor verpasse, dann erscheint in der Auflistung nur das DevStateIcon
define Fensterkontakt_1 CUL_HM 276733
attr Fensterkontakt_1 IODev CUL_800
attr Fensterkontakt_1 actCycle 028:00
attr Fensterkontakt_1 actStatus unknown
attr Fensterkontakt_1 alarmDevice Sensor
attr Fensterkontakt_1 autoReadReg 4_reqStatus
attr Fensterkontakt_1 devStateIcon open:FS20.on closed:FS20.off
attr Fensterkontakt_1 expert 2_full
attr Fensterkontakt_1 firmware 2.4
attr Fensterkontakt_1 model HM-SEC-SC-2
attr Fensterkontakt_1 room CUL_HM
attr Fensterkontakt_1 serialNr LEQ0211433
attr Fensterkontakt_1 subType threeStateSensor
define FileLog_Fensterkontakt_1 FileLog ./log/Fensterkontakt_1-%Y-%m.log Fensterkontakt_1
attr FileLog_Fensterkontakt_1 logtype text
Zum ersten Problem: Keine Ahnung, kann ich nicht nachvollziehen. Vermutung: Doppelte Definition in Konfigurationsdatei - denn eigentlich wird die Routine Alarm_Html genau einmal für einen definierten Alarm aufgerufen.
Zum zweiten Problem: Auch keine Ahnung. Bei meinen Devices ist so etwas noch nicht aufgetaucht, und das betrifft sowohl FS20, als auch Homematic-Sensoren. Möglicherweise ein Artefakt des "darkstyle" skins - ist aber auch nur so eine Vermutung.
Ich kann bis Donnerstag abend nichts testen, bin auf einer Konferenz - darum nur diese Vermutungen und lediglich etwas Stochern im Nebel.
LG
pah
Vielleicht liegt es am "devStateIcon"? Ich habe auch den darkstyle und keine Probleme.
VG
Sven
Wenn ich das devstateicon auskommentiere erscheint der state anstelle des sensornamens
Hier noch ein list des Fensterkontakt _1
Internals:
DEF 276733
IODev CUL_800
NAME Fensterkontakt_1
NR 328
STATE closed
TYPE CUL_HM
Readings:
2014-09-16 19:36:21 Activity unknown
2014-07-09 12:25:21 D-firmware 2.4
2014-07-09 12:25:21 D-serialNr LEQ0211433
2014-07-15 14:23:13 R-pairCentral set_0x0
2014-09-13 19:55:03 battery ok
2014-09-13 19:55:03 contact closed (to broadcast)
2014-09-13 19:55:03 state closed
2014-08-14 11:56:02 trigDst_broadcast noConfig
Helper:
mId 00B1
rxType 12
Io:
newChn +276733,00,01,00
prefIO
rxt 2
vccu
p:
276733
00
01
00
Mrssi:
mNo
Prt:
bErr 0
sProc 0
Q:
qReqConf 00
qReqStat
Role:
chn 1
dev 1
Attributes:
IODev CUL_800
actCycle 028:00
actStatus unknown
alarmDevice Sensor
autoReadReg 4_reqStatus
expert 2_full
firmware 2.4
model HM-SEC-SC-2
room CUL_HM
serialNr LEQ0211433
subType threeStateSensor
Ist das auch so, wenn der style auf default steht ?
LG
pah
Ist auch bei dem Default Style
Der gleiche Effekt tritt auch bei dan Actoren auf
Hat sich demnach das Problem mit der doppelten Anzeige erledigt ?
LG
pah
Ja, die doppelte Anzeige scheint weg zu sein. Tritt anscheinend nur bei direkter Bearbeitung der FHEM.cfg auf. Wenn die Alarmanlage über das Webinterface angelegt wird ist sie nur einmal zu sehen
Doch das Problem mit den Icons bzw dem State bei Sensors und Actors tritt auch mit der FHEM Demo Configuration auf
Die Probleme treten nur in der Übersicht Everything auf nicht bei Alarms. Ist aber dann doch ein Schönheitsfehler
Na, dieser "Schönheitsfehler" ist eher marginal - "Everything" hat bei hunderten von Definitionen keine sinnvolle Bedeutung.
LG
pah
Die entsprechende Perl-Codezeile für den Durchlauf aller Sensoren lautet
foreach my $d (sort keys %defs )...
Wenn also statt des Wertes $d (der Hashkey, in dem Fall also der Name des Devices) mit der Codezeile für die Darstellung
<a href=\"$FW_ME?detail=$d\">$d</a>
im Browser ein Icon (egal woher) oder der State angezeigt werden, hat entweder jemand im perl-Code herumgespielt, oder durch eine reichlich absurde Kombination aus Javascript und CSS den Inhalt eines HTML-Elementes dynamisch überschrieben. Für beides übernehme ich keine Verantwortung.
LG
pah
Hallo pah
habe ich die richtige Version (aus #3)
# $Id: 95_Alarm.pm 2014-08 - pahenning $
kvo1
Öh - was ergibt denn get <alarmname> version ?
LG
pah
Hallo,
get <alarmname> version
das geht so scheinbar nicht , aber über die internals
gruss
kvo1
Hallo pah,
also ich bin jetzt schon ein wenig weitergekommen und der Hinweis auf einen Sensor der den Alarm deaktiviert hätte ich auch selber kommen können, macht ja auch sonst keinen Sinn.
Was ich mich die ganze Zeit frage:
1. ist ein Logfile oder eine Historie der gemeldeten Vorgänge geplant?
2. wie kann ich mir den Zustand anzeigen lassen ob die Alarmanlage scharf oder unscharf ist, zb. auf dem Dashboard mittels Icon
3. kann man auch eine Verzögerung des Scharfschalten einstellen?
Zur Zeit wird der Befehl eines Tasters oder der HM-RC-Sec4-2 sofort ausgeführt um aktiviert.
Ansonsten ein schönes Modul, was bis jetzt alles macht was ich ausprobiert habe, auch wenn es anfangs leichte Probleme gab.
Zitat von: Prof. Dr. Peter Henning am 17 September 2014, 19:35:53
Die entsprechende Perl-Codezeile für den Durchlauf aller Sensoren lautet
foreach my $d (sort keys %defs )...
Wenn also statt des Wertes $d (der Hashkey, in dem Fall also der Name des Devices) mit der Codezeile für die Darstellung
<a href=\"$FW_ME?detail=$d\">$d</a>
im Browser ein Icon (egal woher) oder der State angezeigt werden, hat entweder jemand im perl-Code herumgespielt, oder durch eine reichlich absurde Kombination aus Javascript und CSS den Inhalt eines HTML-Elementes dynamisch überschrieben. Für beides übernehme ich keine Verantwortung.
LG
pah
Das bedeutet also:
1. bei gleichem Browser
2. zur gleichen Laufzeit
und
3. nur durch Wechseln der Webseite von Alarm auf Everything
hat die Variable d$ einen unterschiedlichen Inhalt ?
Ja, leider kann ich trotz allen Versuchen keinen Actor zum Laufen bringen:
bei "Set alarms" - Es werden alle Einträge gespeichert, bis auf:
"Alarm Level" und "Set Action" im Kästchen "Actors".
Im Logfile keine Meldungen, bei der ersten Abspeicherung jedoch folgender Error:
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.
In der fhem.cfg jedoch übernommen:
define Steckdose1 FS20 5d4d 01
attr Steckdose1 IODev CUL0
attr Steckdose1 alarmDevice Actor
attr Steckdose1 alarmSettings alarm0,alarm1,|set Steckdose1 on||
attr Steckdose1 model fs20st
attr Steckdose1 room FS20
Danke und LG
Hallo rainmundl,
den gleichen Fehler hatte ich auch....
Hast Du auch einen Sensor angelegt der den Alarm deaktiviert und beim Actor dann den Unset Befehl hinterlegt? Das war bei mir das Problem, danach klappte es ohne Probleme.
Besten Gruß
Stefan
@kvo1: Uraltversion. Veröffentlicht ist 1.3
@raspklaus: Nein, natürlich nicht ! $d (nicht d$) durchläuft in jeder Anzeige die Werte keys %defs. Und nochmal: "Everything" ist keine sinnvolle Anzeige...
@raimundl: http://www.fhemwiki.de/wiki/Modul_Alarmanlage#Einrichten
LG
pah
hallo pah,
danke , wo finde ich die ?
unter http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/Alarm/ ??
kvo1
Hallo, ich passe jetzt und warte etwas ab!
Zitat@raimundl: http://www.fhemwiki.de/wiki/Modul_Alarmanlage#Einrichten
Natürlich, Punkt für Punkt oft durchgegangen, leider lässt sich trotzdem kein Actor übernehmen.
Danke auch @Eisingstone: leider nicht!
Werde bei Gelegenheit ein System vollkommen neu aufsetzen (2 Sensoren und 1 Actor aus FS20) und es nochmals versuchen. Ich halte das Modul nämlich für eine ausgezeichnete Idee, die zu meinen Bedürfnissen paßt.
LG Walter
Hallo Zusammen,
neue Version 1.4 ist aktiviert!
Beim setzen neuer Alarme kommt
"State locked, cannot create new notifiers"
hat jemand eine Idee ?
LG
klaus
@kvo1: http://www.fhemwiki.de/wiki/Modul_Alarmanlage#Sperrung
@raimundl: niemand sonst hat diese Probleme, ich kann sie auch nicht reproduzieren.
LG
pah
Hallo
Sieht ja klasse aus. Werde ich mir mal ansehen.
Ist es ggf geplannt hier auch die Wochentage mi einzubinden (nach Feiertagen Frage ich jetzt lieber nicht)
stenny
Könnte man machen. Problem ist aber, dass dann die Zahl der Attrribute für das Alarm-Modul so groß wird, dass das kaum zu handhaben ist. Möglicherweise leidet auch die Performance.
LG
pah
war ja grundsätzlich nur ein Gedanke da ich jetzt was zusammengebasteltes benutze und da auch wegen unterschiedlichen Zeiten meinen Spaß habe/hatte.
Der erste Gedanke wäre halt einfach bei den Uhrzeiten vielleicht sieben nette Haken für Montag bis Sonntag.
Performance ist natürlich immer ein Problem, gerade wenn dieses auch immer auf kleinerer Hardware laufen soll.
Ich kann nicht wirklich beurteilen was eine solch Erweiterung an Einschränkungen bringt.
Hallo
Ich finde das Modul sehr gut.
Werde es später auch installieren.
Ein Modul ist besser anzupassen wenn Sensoren und Aktoren dazukommen.
Guten Abend Peter,
ich experimentiere nun seit ein paar Wochen mit deinem Modul rum und bin bislang sehr begeistert über die Vielseitigkeit der vorstellbaren Einsatzszenarios.
Momentan bastle ich hauptsächlich am Thema Alarmanlage, die mit einer HomeMatic-Fernbedienung HM-RC-Key4-2 über nur einen der vier Tasten scharf und auch unscharf geschaltet werden soll. Die anderen 3 Tasten sind bereits belegt. Den Zustand der Alarmanlage möchte ich im Eingangsbereich optisch anzeigen, so dass eine Verwechslung des Zustandes ausgeschlossen wäre.
Ist so ein Toggle-Modus (scharf/unscharf) für Sensoren machbar?
Viele Grüße,
Michel
Hi, ich häng mich hier mal mit dran, denn ich find die idee und das Modul super, dafür erstmal danke Peter.
Ich bin jetzt nach dem Wiki eintrag vorgegangen, und habe meine 3
ZitatHM-SEC-RHS
Fensterkontakte als Sensoren über ein
attr global userattr Fenster_neben_Couch Sensor devStateIcon devStateStyle
gesetzt, war das soweit richtig?
Ein list des Fensterkontakts ergibt dann:
Internals:
DEF 1F1596
IODev HmLanAdapter
NAME Fenster_neben_Couch
NR 62
STATE closed
TYPE CUL_HM
peerList HeizungFenster_WindowRec,Heizung_Tuer_WindowRec,
Readings:
2014-10-09 21:05:22 Activity alive
2014-09-16 22:22:16 D-firmware 2.0
2014-09-16 22:22:16 D-serialNr KEQ0018259
2014-10-09 18:21:36 alive yes
2014-10-09 18:21:36 battery ok
2014-10-09 18:21:36 contact closed (to broadcast)
2014-10-09 18:21:36 cover closed
2014-10-09 21:05:22 peerList HeizungFenster_WindowRec,Heizung_Tuer_WindowRec,
2014-10-09 18:21:36 recentStateType info
2014-10-09 18:21:36 state closed
Helper:
mId 0030
rxType 4
Io:
newChn +1F1596,00,01,FE1F
prefIO
rxt 0
vccu
p:
1F1596
00
01
FE1F
Mrssi:
mNo
Prt:
bErr 0
sProc 0
Q:
qReqConf 00
qReqStat
Role:
chn 1
dev 1
Attributes:
IODev HmLanAdapter
actCycle 028:00
actStatus alive
autoReadReg 4_reqStatus
expert 2_full
firmware 2.0
fp_Wohnzimmer 331,274,2,Fensterkontakt
group Fensterkontakte
model HM-SEC-RHS
peerIDs 00000000,22170C03,22252903,
room Wohnzimmer
serialNr KEQ0018259
subType threeStateSensor
Ich hab die
ZitatModul 95_Alarm.pm
hier von der ersten Seite aus diesem Threat in /fhem/FHEM kopiert und die
Zitatalarm.js
in www/pgm2.
Ist das soweit richtig?
Dann habe ich über ein
Zitatdefine Alarmanlage Alarm
die Alarmanlage angelegt
Nur die Fensterkontakte die als Sensoren da sein sollten sind nicht da, was hab ich falsch gemcht?
ein list der Alarmanlage sieht so aus:
Internals:
CFGFN
NAME Alarmanlage
NR 164
STATE Initialized
TYPE Alarm
VERSION 0.9
Readings:
2014-10-09 21:25:30 lockstate 0
2014-10-09 21:20:38 state Initialized
Attributes:
room Wohnzimmer
ZitatNur die Fensterkontakte die als Sensoren da sein sollten sind nicht da, was hab ich falsch gemcht?
Du sollst nicht deinen Sensor zu den den global userattr hinzufügen, sondern
alarmDevice alarmSettings.
Aus dem Wiki:
Zitatattr global userattr alarmDevice alarmSettings devStateIcon devStateStyle ...(hier folgen weitere Attribute)
Wenn du das jetzt hast, solltest du bei deinen Sensoren (und sonstigen Geräten) unter attr die Einträge alarmDevice und alarmSettings finden.
Damit kannst du dann nach Wiki deine Alarmsensoren anlegen.
Gruß Markus
Außerdem sollte man die Modulversion aus contrib verwenden.
LG
pah
@Milmi12:
Das geht natürlich. Ich habe bei vielen Funktastern Tasten doppelt belegt, z.B. kurzer Druck - alle Lichter gehen aus, langer Druck, - alle Lichter gehen an.
Für das Scharfschalten der Anlage (jedenfalls des Level 6, der bei mir für Einbruchssicherung steht) benutze ich mehrere Tasten eines Homematic-Wandtasters.
Taste EB.HM.B01 hat das Attribut alarmDevice Sensor, taucht in der Alarmkonfiguration auf und bekommt dort die regexp EB.HMT.B01:Long.* sowie die Action "Sharpen" zugewiesen. Mit anderen Worten: Ein langer Tastendruck schaltet die Anlage scharf.
Zusätzlich habe ich eine Sequenz definiert:
define EB.HMT.S01 sequence EB.HMT.B01:Short.* 2 EB.HMT.B03:Short.* 2 EB.HMT.B04:Short.* 2 EB.HMT.B01:Short.*
Auch diese Sequenz hat das Attribut alarmDevice Sensor, taucht damit in der Alarmkonfig auf. Eingetragene regexp ist EB.HMT.S01:trigger, und Action "Unsharpen". Mit anderen Worten: Zum Entschärfen muss man die Tasten 1-3-4-1 mit jeweils max 2 Sekunden Abstand drücken ( In der Realität hab eich natürlich eine andere Sequenz gewählt...)
LG
pah
Zitat von: Prof. Dr. Peter Henning am 10 Oktober 2014, 19:26:04
Außerdem sollte man die Modulversion aus contrib verwenden.
LG
pah
das heißt?
also erstmal feine Arbeit die hier geleistet wird.
Da ich beruflich mit Gefahrmeldeanlagen (umgangssprachlich Alarmanlage) der unterschiedlichen VDS Klassenzu tun habe bekomm ich bei sowas immer etwas Bauchschmerzen.
Es ist schön wenn alles funktioniert aber kann man sich im Ernstfall wirklich darauf verlassen?
Wie sehen die manipulationsmöglichkeiten aus eine solche Anlage auszuhebeln?
Als allgemeine Alarmierung im Gefahrenfall (Wasserschaden oder Brandmeldung privat) ist dies sicher eine gute Sache, auch dass es so einfach wie möglich handzuhaben ist.
Ich bleibe aber trotzdem an diesem Thema dran und werde sicher auch mittesten.
Bitte seht das nicht als negative Wertung sondern als konstruktive Kritik.
in diesem Sinne
Noice
Unter "konstruktiv" versteht man einen Beitrag, der ein Gesamtprojekt mit aufbaut - insofern sind einfache Fragen wie
- "Es ist schön wenn alles funktioniert aber kann man sich im Ernstfall wirklich darauf verlassen?"
"Wie sehen die manipulationsmöglichkeiten aus eine solche Anlage auszuhebeln?"
sicher auch dann nicht "konstruktiv", wenn der Fragesteller dies behauptet. Unabhängig davon sind diese Fragen durchaus berechtigt.
Auch sollte man die Motive des Fragers berücksichtigen. Ist das Interesse des professionellen Sicherheitsberaters wirklich der bessere Schutz von Objekten, oder vielmehr der Verkauf neuer Anlagen ? Ist der Hintergrund der Rauchmelderpflicht in allen Privathaushalten wirklich der bessere Schutz, oder vielmehr ein bombensicheres Geschäft ? Gerade zum letzteren Thema habe ich so meine Zweifel, dazu sollte man sich einfach mal die soziologische Statistik der durch Rauch und Feuer umgekommenen Personen ansehen.
Nachdem ich dies also etwas relativiert habe, kann ich die Fragen auch beantworten.
1. Natürlich kann man sich auf FHEM nicht verlassen. Es kann immer passieren, dass ausgerechnet im Moment des Einbruchs der Watchdog feststellt, dass FHEM neu gestartet werden muss - und schon werden Nachrichten übersehen. Ein wirklich sicherheitskritisches System lässt sich damit also nicht aufbauen - deshalb sind ja die Rauchmelder auch autark und melden den eigenen Alarm nur an FHEM. Ebenso würde ich niemals die Notabschaltung einer Gartenpumpe über FHEM realisieren, auch diese muss autark laufen.
2. FHEM ist ein nicht standardisiertes System. Keine zwei Installationen sind identisch. Insofern ist das System auch nur mit erheblichem Aufwand "lernbar" - und damit gegen Manipulationsversuche sehr viel besser geschützt, als eine spezialisierte Alarmanlage "out-of-the-box". Beispielsweise weiß der potenzielle Einbrecher bei FHEM überhaupt nicht, ob der Hausbesitzer nicht doch noch irgendwo einen Bewegungsmelder hat, der auch noch den Alarm auslöst. Habe ich gerade eben um 3:00 früh gemerkt: Den Kater rausgeworfen und dabei den Low-Level-Zugangsalarm ausgelöst...
Jetzt noch eine Volte:
99% aller Wohnungseinbrüche sind schnelle Gelegenheitsjobs, in wenigen Minuten vorüber und ausgeführt von Personen mit relativ geringem Bildungsstand. Dagegen hilft sogar ein so unsicheres System, wie das hier Realisierte ganz hervorragend. Die beiden Einbrecher südosteuropäischer Nationalität werden ihren Job nicht zuende führen, wenn 30 Sekunden nach dem Aufbrechen der Wohnungstür der Rauchmelder losgeht.
LG
pah
Was ist die Modulversion aus contrib ? und wo find ich diese?
Mein Vorhaben ist zum Beginn des Baus einer Einbruchmeldeanlage, das meine HM-RHS-Sec Fensterkontakte wenn sie zu einer bestimmten Uhrzeit auf offen gestellt werden mein FritzDect200 auf On Schalten, so das die Beleuchtung in meinem Wohnzimmerschrank angeht.
Weiterhin soll eine Email an meine Email Adresse geschickt werden.
Das ganze sieht aus wie auf den Bilder im Anhang und ein list der Alarmanlage zeigt folgendes:
Internals:
NAME Alarmanlage
NR 132
STATE Initialized
TYPE Alarm
VERSION 0.9
Readings:
2014-10-09 21:25:30 lockstate 0
2014-10-11 15:21:45 state Initialized
Attributes:
level0end 18:00
level0msg Alarm Test
level0offact delete alarm0dly1;set FritzDect_Wohnzimmerschrank:off;
level0onact define alarm0dly1 at +00:00:30 set FritzDect_Wohnzimmerschrank:on;
level0start 17:10
level0xec sharp
level1end 0
level1msg 0
level1start 0
level1xec unsharp
level2end 0
level2msg 0
level2start 0
level2xec unsharp
level3end 0
level3msg 0
level3start 0
level3xec unsharp
level4end 0
level4msg 0
level4start 0
level4xec unsharp
level5end 0
level5msg 0
level5start 0
level5xec unsharp
level6end 0
level6msg 0
level6start 0
level6xec unsharp
level7end 0
level7msg 0
level7start 0
level7xec unsharp
room Wohnzimmer
Irgendws muss ich noch falsch gemacht haben, denn weder bekomme ich eine Mail, noch geht der FritzDect auf On.
Die Email wird auch im Alarm nicht gespeichert, ist nach dem wechsel zwischen den Fhem Dialogen immer wieder weg (hatte save config gedrückt)
ZitatWas ist die Modulversion aus contrib ? und wo find ich diese?
Zitat« Antwort #22 am: 12 September 2014, 21:36:38 »
Ich denke man sollte sich die Dateien hier laden
http://sourceforge.net/p/fhem/code/HEAD/tree/trunk/fhem/contrib/Alarm/
Zumindest habe ich dort die Version 1.1 gefunden.
Gruß
Gigafix
Zitat von: mw77 am 11 Oktober 2014, 17:40:39
Hi, danke, das muss ich überlesen haben, hab jetzt mal beide Datein aktualisiert.
Nach dem aktualiseren der beiden Datein und einem anschließenden Fhem neustart bekomme ich nun diese Fehler:
Error messages while initializing FHEM:
configfile: Cannot load module Alarm
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
Please define Alarmanlage first
statefile: Please define Alarmanlage first
Please define Alarmanlage first
Also muss ich wohl die Alarmanlage erst nochmal neu aufbauen.
Nach einem
Zitatdefine Alarmanlage Alarm
, bekomme ich jetzt nur noch diesen Fehler:
Cannot load module Alarm
Unter
ZitatEverything
steht jetzt:
Undefined subroutine &main::Alarm_Html called at (eval 425) line 1
Und im Log
2014.10.12 12:02:45.514 1: reload: Error:Modul 95_Alarm deactivated:
Glob not terminated at ./FHEM/95_Alarm.pm line 22.
2014.10.12 12:02:45.537 0: Glob not terminated at ./FHEM/95_Alarm.pm line 22.
Was hab ich falsch gemacht, bzw. muss ich tun?
Danke
Hallo!
Ich wollte das Modul heute auch bei mir einrichten und natürlich auch konfigurieren. Leider scheitere ich vollkommen bei der Konfiguration des Modul. Sieht sieht's bisher bei mir aus:
"Foto im Anhang"
Besonders wichtig sind mir die Alarmstufen 5 und 6, da diese für eine Alarmanlage bestimmt sind. Über den Alarm 5 würde ich gerne die Alarmierung bei Durchbruch der Außenhaut anzeigen und den Alarm 6 für Ereignisse im Innenraum einsetzen. Alarm 6 wird jedoch erst realisiert, wenn die Bewegungsmelder bei mir eintreffen.
Folgende Komponenten würde ich gerne einsetzen:
- MAX_072b73, MAX_072d7b, MAX_0e0bfe sind Reed-Kontakte an Fenstern und einer Tür
- CUL_HM_HM_MOD_Re_8_2C071B_Sw_01 dient als Bestätigungskanal, der auf on/off gestellt werden soll, wenn Alarm 5 oder Alarm 6 scharf/unscharf gestellt wird
- CUL_HM_HM_MOD_Re_8_2C071B_Sw_02 soll den Alarm 5 für die Außenhaut scharf und unscharf schalten
- CUL_HM_HM_MOD_Re_8_2C071B_Sw_03 soll den Alarm 6 für den Innenraum scharf und unscharf schalen
- CUL_HM_HM_MOD_Re_8_2C071B_Sw_04 soll bei Auslösung von Alarm 5 und Alarm 6 auf on gestellt werden (Sirene)
Weitergehend sollen folgende Delays vorhanden sein:
- Bei Öffnung von MAX_072d7b soll der Alarm5/6 erst nach 30 Sec ausgelöst werden, damit ein Puffer vorhanden, die Anlage zu deaktivieren
- Bei Öffnung von MAX_072b73 und MAX_0e0bfe sofortige Auslösung des Alarms 5/6, also kein Delay
Leider weiß ich nicht, wo die Fehler bei meiner Konfiguration liegen. Dem Log kann ich nur folgendes entnehmen:
2014.10.12 12:39:59 1: [Alarm] State locked, cannot create new notifiers
So, hab die Datein noch mal neu kopiert und nun gehts auch wieder.
Hab die Alarmanlage jetzt mal so angelegt:
Internals:
NAME Alarmanlage_1
NR 132
STATE 0
TYPE Alarm
VERSION 1.4
Readings:
2014-10-13 20:46:42 level0 0
2014-10-13 20:46:22 lockstate unlocked
2014-10-13 20:15:17 short 0
2014-10-13 21:08:23 state 0
Attributes:
level0end 21:30
level0msg Einbruch
level0offact set FritzDect_Wohnzimmerschrank:off;
level0onact define alarm0dly1 at +00:02:00 set FritzDect_Wohnzimmerschrank:on;
level0start 21:15
level0xec sharp
level1end 0
level1msg 0
level1start 0
level1xec unsharp
level2end 0
level2msg 0
level2start 0
level2xec unsharp
level3end 0
level3msg 0
level3start 0
level3xec unsharp
level4end 0
level4msg 0
level4start 0
level4xec unsharp
level5end 0
level5msg 0
level5start 0
level5xec unsharp
level6end 0
level6msg 0
level6start 0
level6xec unsharp
level7end 0
level7msg 0
level7start 0
level7xec unsharp
room AlarmRoom
list alarm0.on.N
Internals:
DEF (Fenster_neben_Couch:open)|(Terassen_Tuer:open) {main::Alarm_Exec("Alarmanlage_1",0,"$NAME","$EVENT","on")}
NAME alarm0.on.N
NR 136
NTFY_ORDER 50-alarm0.on.N
REGEXP (Fenster_neben_Couch:open)|(Terassen_Tuer:open)
STATE active
TYPE notify
Attributes:
group alarmNotifier
room Alarm
Wenn ich dann zwischen 21:15 und 21:30 z.b. die Terassen_Tuer öffne, müsste je der FritzDect_Wohnzimmerschrank eigentlich auf On gehen oder!?
Tuts aber leider nicht, passiert nichts, gibt aber auch keinen Fehler im Log..
Was mache ich falsch?
@ Tommy82: Ich glaube, dass das Format deines Delays nicht korrekt ist.
Ich habe es inzwischen soweit hinbekommen. Ich kann unterschiedliche Alarme auch über ein HM_MOD_Re_8 Modul scharf stellen. Allerdings scheitert es daran, die entsprechenden Alarme auch wieder unscharf zu stellen, da die einzelnen Kanäle des HM_MOD_Re_8 Moduls ja nur ein Mal im Sensor-Bereich auftauchen.
Muss ich den Befehl für das Unscharf schalten nun "extern" über ein Notify lösen oder kann man es auch innerhalb des Moduls realisieren?
LG
Hi, was ist an den Format falsch? Habs aber auch glaub ich mit 3:00 versucht, hat auch nicht geklappt
Versuchs mal mit "5" für 5 Sekunden.
Zitat aus dem Wiki: Eine Zeitverzögerung - entweder als Angabe von Sekunden (<60) oder im Format mm:ss
Hi, habs mal auf 5 geändert, aber trotzdem kein erfolg...........
Im Log steht leider auch nichts aufschlussreiches......
Hoffe es hat noch einer eine idee.......
@Tommy82:
Der Fehler ist im Screenshot unsichtbar, weil die Feldbreite (absichtlich) nicht groß genug ist, um den gesamten Befehl für "Set Action" und "Unset Action" wiederzugeben.
Aus dem List-Befehl ist er aber sichtbar, dort steht zu lesen:
set FritzDect_Wohnzimmerschrank:on;
Das ist FALSCH, der Doppelpunkt ist zuviel.
Der Fehler liegt also weder in der Zeitangabe, noch im Modul - sondern schlicht daran, dass der "Set Action"-Befehl ungültig ist. Mein Tipp: Diese Befehle immer "von Hand" ausprobieren.
@Spezialtrick:
Ich habe Sicherheitsbedenken, die Alarmanlage durch ein und denselben "alarmSensor" scharf und wieder unscharf zu schalten, insofern möchte ich das ungerne über das Modul realisieren. Das kann man allerdings bereits jetzt jederzeit über ein extra Notify umgehen, das halte ich für den sauberen Weg.
LG
pah
Danke für deine Antwort!
Kannst du die Sicherheitsbedenken ein wenig weiter ausführen?
Ich möchte die "Sperre" ungern umgehen, da du sie ja bewusst mit einem bestimmten Hintergrund eingebaut hast.
Zitat von: Prof. Dr. Peter Henning am 16 Oktober 2014, 05:47:36
@Tommy82:
Der Fehler ist im Screenshot unsichtbar, weil die Feldbreite (absichtlich) nicht groß genug ist, um den gesamten Befehl für "Set Action" und "Unset Action" wiederzugeben.
Aus dem List-Befehl ist er aber sichtbar, dort steht zu lesen:
set FritzDect_Wohnzimmerschrank:on;
Das ist FALSCH, der Doppelpunkt ist zuviel.
Der Fehler liegt also weder in der Zeitangabe, noch im Modul - sondern schlicht daran, dass der "Set Action"-Befehl ungültig ist. Mein Tipp: Diese Befehle immer "von Hand" ausprobieren.
@Spezialtrick:
Ich habe Sicherheitsbedenken, die Alarmanlage durch ein und denselben "alarmSensor" scharf und wieder unscharf zu schalten, insofern möchte ich das ungerne über das Modul realisieren. Das kann man allerdings bereits jetzt jederzeit über ein extra Notify umgehen, das halte ich für den sauberen Weg.
LG
pah
Hi, danke für den Hinweis, das hatte ich übersehen. Habs jetzt mal korregiert und werds jetzt gleich nochmal Testen. Könnte so ein Fehler nicht auch vieleicht im Log aufschlagen? Dann würde es vieleicht ersichtlicher?
Andere Frage, ich habe ja das
ZitatFenster_ueber_Heizung
mit Action=Chanel gesetzt, da man ja laut wiki so sein muss das mindestens ein Sensor auf Channel stehn muss. Aber ich will ja auch dieses Device mit in der Alarmanlage haben. Oder versteh ich das einfach falsch?
ZitatEs ist zwingend notwendig, dass für einen auszulösenden Alarmlevel auch ein Sensor für den Widerruf (=Cancel) des Alarms definiert wird, ansonsten ignoriert das Modul die Definition dieses Levels.
Wenn ich die Alarmanlage jetzt mal abschalten will, weil ich weiss das es heute abend länger wird, muss ich dann alle Alarmlevel Channeln? Wäre ein On/Off Button da nicht praktikabler?
Danke für die Rückmeldung
Habs jetzt nochmal versucht, aber hat wieder nicht funktioniert. hab den Befehl auch mal manuell versucht, dann geht es
set FritzDect_Wohnzimmerschrank on
Jetzt bekomme ich auch im Log einen Fehler:
2014.10.16 20:11:38.995 3: [Alarm 0] Created cancel notifier
2014.10.16 20:11:39.059 3: [Alarm 0] Created raise notifier
2014.10.16 20:11:39.099 1: [Alarm 1] Cannot be executed due to wrong time spec 0 for level1start
2014.10.16 20:11:39.101 1: [Alarm 2] Cannot be executed due to wrong time spec 0 for level2start
2014.10.16 20:11:39.103 1: [Alarm 3] Cannot be executed due to wrong time spec 0 for level3start
2014.10.16 20:11:39.105 1: [Alarm 4] Cannot be executed due to wrong time spec 0 for level4start
2014.10.16 20:11:39.107 1: [Alarm 5] Cannot be executed due to wrong time spec 0 for level5start
2014.10.16 20:11:39.109 1: [Alarm 6] Cannot be executed due to wrong time spec 0 for level6start
2014.10.16 20:11:39.111 1: [Alarm 7] Cannot be executed due to wrong time spec 0 for level7start
2014.10.16 20:11:42.567 3: [Alarm 0] Created cancel notifier
2014.10.16 20:11:42.718 3: [Alarm 0] Created raise notifier
2014.10.16 20:11:42.793 1: [Alarm 1] Cannot be executed due to wrong time spec 0 for level1start
2014.10.16 20:11:42.795 1: [Alarm 2] Cannot be executed due to wrong time spec 0 for level2start
2014.10.16 20:11:42.796 1: [Alarm 3] Cannot be executed due to wrong time spec 0 for level3start
2014.10.16 20:11:42.798 1: [Alarm 4] Cannot be executed due to wrong time spec 0 for level4start
2014.10.16 20:11:42.799 1: [Alarm 5] Cannot be executed due to wrong time spec 0 for level5start
2014.10.16 20:11:42.801 1: [Alarm 6] Cannot be executed due to wrong time spec 0 for level6start
2014.10.16 20:11:42.803 1: [Alarm 7] Cannot be executed due to wrong time spec 0 for level7start
2014.10.16 20:12:12.076 3: [Alarm 0] Created cancel notifier
2014.10.16 20:12:12.136 3: [Alarm 0] Created raise notifier
2014.10.16 20:12:12.173 1: [Alarm 1] Cannot be executed due to wrong time spec 0 for level1start
2014.10.16 20:12:12.175 1: [Alarm 2] Cannot be executed due to wrong time spec 0 for level2start
2014.10.16 20:12:12.177 1: [Alarm 3] Cannot be executed due to wrong time spec 0 for level3start
2014.10.16 20:12:12.178 1: [Alarm 4] Cannot be executed due to wrong time spec 0 for level4start
2014.10.16 20:12:12.180 1: [Alarm 5] Cannot be executed due to wrong time spec 0 for level5start
2014.10.16 20:12:12.181 1: [Alarm 6] Cannot be executed due to wrong time spec 0 for level6start
2014.10.16 20:12:12.183 1: [Alarm 7] Cannot be executed due to wrong time spec 0 for level7start
2014.10.16 20:12:25.761 3: [Alarm 0] Created cancel notifier
2014.10.16 20:12:25.821 3: [Alarm 0] Created raise notifier
2014.10.16 20:12:25.865 1: [Alarm 1] Cannot be executed due to wrong time spec 0 for level1start
2014.10.16 20:12:25.866 1: [Alarm 2] Cannot be executed due to wrong time spec 0 for level2start
2014.10.16 20:12:25.868 1: [Alarm 3] Cannot be executed due to wrong time spec 0 for level3start
2014.10.16 20:12:25.870 1: [Alarm 4] Cannot be executed due to wrong time spec 0 for level4start
2014.10.16 20:12:25.871 1: [Alarm 5] Cannot be executed due to wrong time spec 0 for level5start
2014.10.16 20:12:25.873 1: [Alarm 6] Cannot be executed due to wrong time spec 0 for level6start
2014.10.16 20:12:25.874 1: [Alarm 7] Cannot be executed due to wrong time spec 0 for level7start
Internals:
NAME Alarmanlage_1
NR 132
STATE 0
TYPE Alarm
VERSION 1.4
Readings:
2014-10-13 20:46:42 level0 0
2014-10-13 20:46:22 lockstate unlocked
2014-10-13 20:15:17 short 0
2014-10-16 20:14:23 state 0
Attributes:
level0end 20:15
level0msg Einbruch
level0offact set FritzDect_Wohnzimmerschrank off;
level0onact define alarm0dly1 at +00:00:05 set FritzDect_Wohnzimmerschrank on;
level0start 20:12
level0xec sharp
level1end 0
level1msg 0
level1start 0
level1xec unsharp
level2end 0
level2msg 0
level2start 0
level2xec unsharp
level3end 0
level3msg 0
level3start 0
level3xec unsharp
level4end 0
level4msg 0
level4start 0
level4xec unsharp
level5end 0
level5msg 0
level5start 0
level5xec unsharp
level6end 0
level6msg 0
level6start 0
level6xec unsharp
level7end 0
level7msg 0
level7start 0
level7xec unsharp
room AlarmRoom
Was mache ich jetzt noch falsch?
Es fehlen die Zeitangaben für den START der Periode.
LG
pah
Hallo zusammen,
Modulversion 1.4
Ich habe in meinem Testaufbau bislang insgesamt 6 Reedkontakte zur Überwachung der Außenhaut. Ich schalte Level 5 durch einen Taster scharf und durch einen anderen Taster wieder unscharf. Alles klappt soweit sehr gut.
Durch Auslösen des Alarms werden 3 Aktoren getriggert: Alarmierung per eMail, eine Schaltsteckdose und ein Schaltaktor für's Treppenhauslicht.
Beim Canceln des Alarms werden bei allen drei Aktoren auch Unset-Befehle ausgelöst. Alle Befehle stehen brav in der Maske drin, es wird allerdings immer nur einer der Unset-Funktionen auch in das Attribut level5offact übernommen.
Kann das bitte jemand verifizieren. Bei mir ist das reproduzierbar.
Wenn ich die unset-Befehle von Hand in das Attribut einfüge, klapt alles wunderbar - zumindest solange, bis ich das nächste Mal auf den Button 'Set Alarms' drücke. Damit werden die händisch eingetragenen Werte wieder gelöscht und es bleibt wieder nur ein Befehl stehen.
Danke schonmal vorab für eine Rückmeldung.
Viele Grüße,
Michel
Oha, das scheint tatsächlich ein Fehler zu sein !
Wird heute abend noch gefixt und ins SVN geladen.
Wer es von Hand ändern möchte:
String suchen
$cmd2 = $aval[2].';'
und ändern in
$cmd2 .= $aval[2].';'
Es fehlte tatsächlich nur der eine "Punkt".
LG
pah
@pah: Könntest du deine Sicherheitsbedenken bzgl. des Scharf und Unscharf Schaltens einer Alarmanlage am selben Schalter erläutern?
Vorlesung am Abend ? Hm. Also gut:
Erstens sollte für eine Alarmanlage das Scharfschalten einfach sein: Ein Tastendruck. Das Ausschalten hingegen sowohl mit Besitz (Schlüssel oder Fernbedienung) als auch mit Kenntnis (Sequenz, Geheimzahl) verbunden sein.
Zweitens ist das ein Sicherheitsproblem: Jemand kann beobachten, was der Hausherr beim Verlassen des Hauses tut. Auch wenn er möglicherweise nicht sofort ahnt, dass dies auch die Anlage wieder unscharf macht, gibt man ihm damit einen Vorteil.
Drittens ist das ein Problem der Ergonomie - jeder wird sich mindestens fünfmal fragen, ob er die Anlage nun scharf, oder unscharf geschaltet hat. Somit auch ein Sicherheitsrisiko.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 17 Oktober 2014, 06:42:29
Es fehlen die Zeitangaben für den START der Periode.
LG
pah
So habs jetzt nochmal neu gesetzt, im List steht jetzt:
Internals:
NAME Alarmanlage_1
NR 129
STATE 0
TYPE Alarm
VERSION 1.4
Readings:
2014-10-13 20:46:42 level0 0
2014-10-13 20:46:22 lockstate unlocked
2014-10-13 20:15:17 short 0
2014-10-17 21:37:25 state 0
Attributes:
group Einbruchalarm
level0end 21:50
level0msg Einbruch
level0offact set FritzDect_Wohnzimmerschrank off;
level0onact define alarm0dly1 at +00:00:05 set FritzDect_Wohnzimmerschrank on;
level0start 21:40
level0xec sharp
level1end 0
level1msg 0
level1start 0
level1xec unsharp
level2end 0
level2msg 0
level2start 0
level2xec unsharp
level3end 0
level3msg 0
level3start 0
level3xec unsharp
level4end 0
level4msg 0
level4start 0
level4xec unsharp
level5end 0
level5msg 0
level5start 0
level5xec unsharp
level6end 0
level6msg 0
level6start 0
level6xec unsharp
level7end 0
level7msg 0
level7start 0
level7xec unsharp
room AlarmRoom
Trotzdem funktioniert es nicht....
im Log erscheint kein Fehler..........
Der status des Fensters welches ich geöffnet hab ist auch open
ZitatFenster_ueber_Heizung open
Tja, erstens sind das viel zu viele Informationen, und zweitens die falschen.
Bitte nicht immer den gesamten Kram posten, das kostet nämlich Zeit zum Suchen - sondern nur die für diesen Level.
Hier fehlen beispielsweise diejenigen Einträge, die den Alarm starten - also nicht die Attribute, sondern der erzeugte Notifier alarm0.on.N.
pah
Zitat von: Prof. Dr. Peter Henning am 17 Oktober 2014, 20:26:06
Oha, das scheint tatsächlich ein Fehler zu sein !
Wird heute abend noch gefixt und ins SVN geladen.
Wer es von Hand ändern möchte:
String suchen
$cmd2 = $aval[2].';'
und ändern in
$cmd2 .= $aval[2].';'
Es fehlte tatsächlich nur der eine "Punkt".
LG
pah
Vielen Dank für den prompten Fix, Peter! Jetzt geht's.
LG,
Michel
Hallo Peter,
ich habe eben eine ganze Latte von gleichen Fehlermeldungen im Log:
2014.10.18 17:48:06.173 1: PERL WARNING: Use of uninitialized value $sta[2] in concatenation (.) or string at ./FHEM/95_Alarm.pm line 303.
Das Modul hat einen Alarm getriggert und die Alarmaktoren mit den Set Action - Befehlen zugepflastert, bis es zum ...
2014.10.18 17:48:32.936 1: HMLAN_Parse: HMLAN1 new condition ERROR-Overload ... kam.
Hast Du die Zeit zu überprüfen, was da am Modul nicht stimmt?
Vielen Dank und viele Grüße,
Michel
Na, mal die Luft anhalten. >:(
Der Fehler mit dem leeren $sta[2] kann nur auftreten, wenn man manuell in den alarmSettings herumeditiert hat - das ist kein Fehler des Moduls.
Und "zupflastern" kann das Modul irgendwelche Aktoren nur, wenn man eine Endlosschleife eingebaut hat, d.h. seine Aktoren wieder einen Alarm auslösen.
pah
P.S.: Ich werde versuchen, solche fehlerhaften Konfigurationen abzufangen - aber habe weder Zeit noch Lust, die Fehler in den Konfigurationen zu suchen.
So, jetzt hat es geklappt, sieht jetzt wie im Anhang aus.
Frage, ich will ja auch das Fenster_ueber_Heizung abgefragt, also auf Raise steht, kann ich das einfach ändern, da ja im wiki steht
ZitatAchtung: Es ist zwingend notwendig, dass für einen auszulösenden Alarmlevel auch ein Sensor für den Widerruf (=Cancel) des Alarms definiert wird, ansonsten ignoriert das Modul die Definition dieses Levels.
das aufjedenfall ein Sensor auf Cancel stehen muss.!?
Weiterhin würde ich mir gerne beim Auslösen des Alarms eine Email schicken lassen, wie kann ich das realisieren?
Und eine letzte Frage, ich würde das Module gerne auf meinem Floorplan aktivieren und deaktivieren können, wie kann ich das machen? Mir schwebt da vor, "einfach" ein Button On/Off?
Danke für die Hilfe und das klasse modul
MFG
Hi Tommy82,
ZitatWeiterhin würde ich mir gerne beim Auslösen des Alarms eine Email schicken lassen, wie kann ich das realisieren?
sendEmail installieren siehe http://www.fhemwiki.de/wiki/E-Mail_senden (http://www.fhemwiki.de/wiki/E-Mail_senden)
und dann über ein notify bei Aktivierung des Alarm senden !
Gruß
Klaus ;)
Zitat von: Prof. Dr. Peter Henning am 19 Oktober 2014, 07:24:38
Na, mal die Luft anhalten. >:(
Der Fehler mit dem leeren $sta[2] kann nur auftreten, wenn man manuell in den alarmSettings herumeditiert hat - das ist kein Fehler des Moduls.
Und "zupflastern" kann das Modul irgendwelche Aktoren nur, wenn man eine Endlosschleife eingebaut hat, d.h. seine Aktoren wieder einen Alarm auslösen.
pah
P.S.: Ich werde versuchen, solche fehlerhaften Konfigurationen abzufangen - aber habe weder Zeit noch Lust, die Fehler in den Konfigurationen zu suchen.
Erst mal Danke für die freundliche Antwort.
Ich bin mir ziemlich sicher, dass es nichts mit irgend einem Edit zu tun hat, sondern ich gehe davon aus, dass es ein Benutzerfehler meinerseits war:
Ich habe einen neuen Bewegungssensor integriert und diesen auch als alarmDevice Sensor definiert. Danach habe ich diesem neuen Sensor Alarmlevel 5 zugewiesen und dabei vergessen, das Feld 'Notify on RegExp' auszufüllen. Es blieb leer. Beim Aktivieren des Alarms triggerte dann dieser Sensor vermutlich einen Alarm nach dem anderen.
Falls das so sein kann, wäre es wohl sinnvoll, diesen Fall abzufangen.
Viele Grüße,
Michel
Hallo,
tja, ein Entwickler wird NIE alle möglichen Fehlerquellen der User auf Anhieb abfangen können.
Rudi hatte doch unlängst erst so einen Fall 8)
Grüße
@Puschel74: Wenn ich das als studentische Arbeit korrigieren würde, müsste ich den RTFM-Stempel verwenden.
@Milmi12: Das muss ein Missverständnis sein, die Antwort war gar nicht freundlich gemeint ;D
LG
pah
Sollte auch zynisch rüber kommen 8)
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
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.
Danke, dachte das sollte unter contrib.
Nun kommt im Webinterface aber:
Undefined subroutine &main::Alarm_Html called at (eval 56) line 1
Die alarm.js auch installiert? Steht im Wiki ...
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
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 +.
"Er", soso.
{fhem("define SetAus at +00:05:00 {AlarmExec('Name der Alarmdefinition',<level>,'AutoAus','dummy','off')}")} geht auf jeden Fall
pah
@ Ralli:
Jep, ist unter www/pgm2.
Fehler kommt trotzdem :'(
@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.
"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
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.
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
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.
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
Hallo pah,
Danke, das erleichtert das Updaten.
Klaus
Wäre es möglich einen Delay für Aktoren, wie z.b. einen Reed Kontakt an der Haustür, einzurichten?
Optimal wäre eine Implementierung direkt ins Modul, oder?
Ich bekomme auch nach Integration immer noch:
Undefined subroutine &main::Alarm_Html called at (eval 43) line 1.
Kann mir jemand helfen?
@Spezialtrick: Nicht sinnvoll - weil dann nicht der Alarm deaktiviert werden muss, sondern nur das notify für den einzelnen Sensor. Und schon gar nicht sinnvoll im Modul selbst - das müsste dann für jeden Sensor das Timing übernehmen.
So, wie es jetzt ist, wird der Alarm gleich ausgelöst - aber seine Aktionen verzögert. Irgendwie will man ja auch demjenigen, der die Haustür gerade geöffnet hat, ein Warnsignal geben ...
Wer trotzdem den Alarm verzögert auslösen will: Notify auf den Reed-Kontakt setzen, damit eine verzögerte Auslösung des Alarms in sagen wir 30 Sekunden.
LG
pah
Danke für deine Antwort, Pah!
Bei mir besteht das Problem, dass die Anlage hinter der Haustür an einem gesicherten Schalter an/ausgeschaltet wird, d.h., dass derjenige, der die Haustür befugt öffnet, nur 2-3 Sekunden Zeit hat, die Anlage unscharf zu stellen. In dieser kurzen Zeit ist das aber nicht möglich, so dass sofort die Sirene ertönt.
Dieses Problem könnte ich ziemlich einfach über die eingebaute Delay Funktion lösen. Somit hätte man genügend Zeit die Anlage unscharf zustellen. Dann ergibt sich jedoch das Problem, dass der Alarm bei jeder Auslösung, unabhängig vom Sensor, zeitverzögert ausgelöst wird. Bei der Haustür ist dies wie zuvor beschrieben auch so gewollt. Bei der unbefugten Öffnung eines Fenster sollte der Alarm jedoch sofort und ohne Zeitverzögerung ausgelöst werden.
Hast du hierfür vllt. einen Lösungsvorschlag? :-\
Ich habe das eigentlich genauso aufgebaut. Bei mir gibt es einen "Voralarm": Licht geht an. Damit wird nicht nur der Einbrecher abgeschreckt, sondern gleichzeitig derjenige, der die Tür korrekt geöffnet hat, auf den drohenden Alarm in 30 Sekunden hingewiesen.
In den nächsten Wochen ergänze ich das um einen MP3-Abspieler, der dann entsprechend warnt. Etwa "pannensichere Selbstvernichtung in 30, 25, --- 5 Sekunden".
LG
pah
Hallo Zusammen,
ich erhalte immer beim setzen der Parameter über set Alarms folgende Fehlermeldung: State locked, cannot create new notifiers.
Dadurch werden keine notifiers gesetzt und nichts geht.
Das Attribut lockstate steht dabei aber auf unlock
Hat jemand einen Tipp für mich?
LÖSUNG: wichtig ist das lockstate in den READINGs steht.
Kommando "attr <alarmname> lockstate unlocked" absetzen. -> reicht also nicht!
Über das setzen mit set <alarmname> unlock" funktioniert es nun.
Hallo pah,
ich habe ein Problem nach Update des Moduls von v1.4 auf v1.9 bei der Fensterüberwachung.
Ich habe die wie im Wiki beschrieben eingerichtet (wobei ich den Delay des TFOpen.check von 10 min auf 10 sec abgeändert habe). Es funktionierte bisher auch prima. Nach dem Update wird der Alarm nun nicht mehr widerrufen, sobald alle Fenster wieder geschlossen sind. Es scheint als ob der in der HouseOpen() angelegte delay für den Dummy TFClose.warn nicht ausgelöst bzw. dieser den Alarm nicht widerruft.
Wenn ich mit Set Alarms die Alarme neu setze, erscheint im Log folgende Fehlermeldung:
[Alarm 4] not raised, alarmSensor global has wrong settings
Was bedeutet das? Liegt scheinbar an meinen Einstellungen? Hättest Du einen Tipp?
Danke und viele Grüße
Sven
Einen Tipp ? Klar. Sich mal die Konfigurationsdatei anzusehen, es sollte nämlich keinen Alarmsensor "global" geben.
LG
pah
OK, ich war auf der falschen Fährte. ;-)
Einen Alarmsensor "global" gab es nicht, das hätte ich auch zuerst vermutet. Jedoch hat sich in die Config von "TFOpen.warn" ein Fehler eingeschlichen. Es gab eine Zeile:
attr TFOpen.warn alarm4,|TFOpen.warn:yes|$EVENT|on 1
Wie die enstand, ist mir schleierhaft. Die war der Fehler.
Das eigentliche Fehlverhalten habe ich nun auch verstanden, zumindest hoffe ich das. ;-)
In Zeile 290 des Moduls hast Du eine weitere Prüfung ergänzt:
#-- only if this level is sharp and not yet active
if( ($xec eq "sharp") && ($hash->{READINGS}{"level".$level}{VAL} eq "off") )
In der alten Version fehlte das Prüfen auf "nicht schon aktiv". Daher funktionierte es bei mir vorher wie gewünscht.
Ich habe Alarm 4 nicht zeitgesteuert, sondern durch ein Öffnen eines Fensters ausgelöst. Ziel war es, ein geöffnetes Fenster auf einem Display anzuzeigen. Dabei soll sich die Anzeige beim Schließen aller Fenster wieder auf "ok" zurücksetzen. Die in der "HouseOpen()" definierten delays lösten den Alarm über die beiden dummies und damit die "HouseOpen()" erneut aus. Da jetzt geprüft wird, ob der Alarm schon aktiv ist, wird der Aktor und damit "HouseOpen()" nicht mehr ausgeführt und somit der Alarm nicht mehr durch das setzen von "set TFClose.warn yes" zurückgesetzt.
Ich habe den Ablauf geändert, somit passt das wieder für mich. Ich hatte nur einen Denkfehler.
Noch eine Frage dazu:
Im Wiki steht: "Dabei wird um 22:00 der erste Test auf ein ordnungsgemäß geschlossenes Haus gestartet - und bis Mitternacht alle 10 Minuten wiederholt". Das macht sicher bei Dir "TFOpen.bedtime" zyklisch, oder? Das fehlt bei mir dann wohl einfach. Vielleicht kannst Du das im Wiki noch ergänzen.
VG
Sven
Hinweis:
Im wiki steht:
Zitat
Anzeige der Zustände
...
Das Problem ist, dass möglicherweise das reading state an anderer Stelle verwendet werden soll - z.B. beim Versenden von Mails als
Value('AAA')
Mit Value() wird aber gar nicht das reading state abgefragt, sondern das internal STATE - insofern können im reading und im internal durchaus unterschiedliche Werte stehen.
Stimmt.
LG
pah
Neue Version 2.0 eingecheckt.
Änderung: 3 neue Attribute sharpact,unsharpact,cancelact => FHEM-Aktionen, die bei scharf/unscharf schalten sowie Widerruf eines Alarms ausgelöst werden.
Ich habe das jetzt mit dem Teil hier verbunden: http://www.elv.de/homematic-mp3-funk-tuergong-mit-signal-led.html
Mit einigen zusätzlichen dummies sagt mir das Teil jetzt an, woher der Alarm kommt. Die beste Stimme für diese Systemmeldungen habe ich hier gefunden: http://www.ivona.com/. Einfach eigene Texte vorlesen lassen, mit audacity aufnehmen und in MP3 konvertieren.
Die nach Ansicht meines Jüngsten coolste Message starte ich 30 Sekunden vor Auslösung der Rauchmelder als Einbruchalarm - habe ich mal hier angehängt.
LG
pah
Hallo Pah,
hast du ein Beispiel zu den 3 neuen Attributen? Im Wiki ist noch nicht erfasst oder? Mit ist im Moment unklar wie und wo ich die Aktionen abfange und meine Aktionen anhänge.
Gruß A.
Vielen Dank für dieses nützliche Modul!
Eine kleine Anmerkung, sharpen/unsharpen sollte wohl arm/disarm heißen
siehe z.B. http://dict.leo.org/forum/viewUnsolvedquery.php?idThread=554410&idForum=1&lang=de&lp=ende
Ich denke nicht, dass ich für irgendetwas ein englisches Dictionary benötige ...
Der Begriff "sharp"/"unsharp" ist ebenfalls in Gebrauch, die Alarmanlage meines Hauses in Stony Brook, NY hatte entsprechende Schlüsselstellungen.
LG
pah
Hallo pha,
wie nutzt man die von dir beschriebenen 3 neue Attribute sharpact,unsharpact,cancelact. Mir ist nicht klar was das zu der Vorversion ändert. Dort kann man doch auch über die states auf An- und Ausschaltereignisse reagieren.
Bitte erkläre es mir.
Danke.
Gruß A.
commandref lesen.
pah
Ich weiß zwar nicht was die commandref mit deinem Modul zu tun. Aber ich merke schon, dass du nicht willig bist einen Satz darüber zu verlieren oder es im Wiki zu dokumentieren.
An dieser Stelle wäre es besser gewesen, wenn du nichts geschrieben hättest.
Zitat von: alec_osborne am 20 November 2014, 15:03:49
Hallo pha,
wie nutzt man die von dir beschriebenen 3 neue Attribute sharpact,unsharpact,cancelact. Mir ist nicht klar was das zu der Vorversion ändert. Dort kann man doch auch über die states auf An- und Ausschaltereignisse reagieren.
Bitte erkläre es mir.
Danke.
Gruß A.
Hi,
ich nutze das Modul zwar nicht und fahre weiter mit meiner eigenen Variante,
aber hast du dir deine Frage nicht zum Teil bereits selber beantwortet?
Zitatwie nutzt man die von dir beschriebenen 3 neue Attribute sharpact,unsharpact,cancelact. Mir ist nicht klar was das zu der Vorversion ändert. Dort kann man doch auch über die states auf An- und Ausschaltereignisse reagieren.
Ich nehme an bisher konnte man in Form von notifys "Ausserhalb des Moduls" auf die Ereignisse reagieren?
Meine Vermutung ist, in der jetzigen Version hat einem der Entwickler das anlegen dieser extra notifys quasi obsolet werden lassen und die Möglichkeit, auf den Zustand, zu reagieren, in das Modul integriert, mag aber auch sein, dass ich mit meiner Vermutung und dem Lesen der commandref nicht richtig liege und an dieser Stelle besser auch nichts hätte schreiben sollen ;)
Greetz
Eldrik
Hi eldrik,
nein keinesweges. ich finde es gut wenn sich hier die Leute austauschen, auch wenn es eben nur Vermutungen sind, so wie ich sie auch habe. Da ich aber sicher gehen wollte, habe ich höflich beim Ersteller nachgefragt.
Trotzdem vielen Dank für deine Reaktion. :)
Gruß A.
Für einen FHEM-Neuling empfiehlt es sich, erst einmal etwas zu lesen, bevor er Andere zum Schreiben auffordert.
pah
Das ist ja putzig du schließt aufgrund des Accounts auf meinen Erfahrungsschatz mit fhem. ;) nice.
Meine höffliche Bitte, nicht Aufforderung so wie du behauptest, kann es ja nicht gewesen sein.
Ich habe lediglich um eine Definition gebeten so wie es jeder Wald und Wiesen Informatiker von alleine bei Release-Erstellung tun würde.
Hättest du nur halb so viel Kraft in deine erste Antwort gesteckt wäre es sicher besser gewesen.
A.
Zitat von: HolyMoly am 19 November 2014, 07:26:51
Vielen Dank für dieses nützliche Modul!
Eine kleine Anmerkung, sharpen/unsharpen sollte wohl arm/disarm heißen
siehe z.B. http://dict.leo.org/forum/viewUnsolvedquery.php?idThread=554410&idForum=1&lang=de&lp=ende
Im internationalen Sprachgebrauch bei Einbruchmeldesystemen ist arm/disarm der Begriff für scharf/unscharf. Sharpen/Unsharpen ist nicht gebräuchlich (unabhängig von Wörterbüchern und von Beschriftungen in NY).
LG
@alec_osborne: Oh, den Kenntnisstand kann man auch an Hand der Qualität der Fragen erkennen. Mein Tipp: lieber ein kommerzielles System kaufen und den Support bezahlen, von mir gibt es ihn auf Grund des Tonfalls jedenfalls nicht.
@Lorenz: Seufz... die genannte Alarmanlage war nicht mit "einer Beschriftung in NY" versehen, sondern es war ein gut funktionierendes kommerzielles System, das wir vor 25 Jahren zusammen mit dem Haus gemietet haben. Irgendwo muss ich auch noch ein Foto haben. Ich habe aber bei einer schnellen Suche heute kein englischsprachiges System mehr gefunden, das "sharp" noch verwendet. Mal sehen, vielleicht stelle ich es beim nächsten Release um.
LG
pah
Sorry, wenn es zum Seufzen angeregt hat. War ja nur ein Tipp.
Da ich mich hauptberuflich mit professionellen Systemen im Bereich der Sicherheitstechnik beschäftige, habe ich gedacht, ich lasse Euch an meinem Wissen teilhaben ... ;)
LG
Hallo Pah,
irgendwie habe ich Probleme mit Pushover als Aktor/setAction:
set PushMsg msg 'IWstr' 'Alarm' 'JiPhone' 0 ''
{fhem("set PushMsg msg 'IWstr' 'Alarm' 'JiPhone' 0 ''");}
verschwinden einfach nach Set Alarms und dann Save Config
Woran könnte das liegen?
Des Weiteren noch eine nervige Perlwarnung:
2014.11.29 14:18:35 1: PERL WARNING: Use of uninitialized value in string ne at ./FHEM/95_Alarm.pm line 337.
Hallo HolyMoly,
besser für die Übersicht wäre folgender Weg.
Im setAction springst du einfach eine Funktion in deiner 99_myUtils.pm an:
z.B. so: {set_action_alarm(Value('DEIN_ALARMANLAGE_NAME'))}
und in der Funktion kannst du dann z.B deine Pushmitteilung machen und zusätzlich noch andere Dinge.
Sieht dann aber übersichtlicher aus und sollte funktionieren.
z.B. so:
sub set_action_alarm($)
{
my ($message) = @_;
fhem("set pushmsg msg 'Test' '$message'");
return;
}
Gruß A.
Geht leider auch nicht.
Lustigerweise wird das alarmSettings Attribut korrekt gesetzt aber dann nicht mehr in den Actors angezeigt.
attr PushMsg alarmSettings alarm2,alarm3,alarm4,alarm5,alarm6,alarm7,|{set_action_alarm(Value('Alarmanlage'))}||
das gleiche gilt für deutlich einfachere Actions wie
set VirtualTeamLead alarmOn
nach save config ist alles weg...
Okay, lag daran das ich den delay nicht explizit auf 0 gesetzt hatte. ::)
Wäre vielleicht sinnvoll das als Modul default zu setzen...
Wie werden die neuen Funktionen
Arm Action
Disarm Action
Cancel Action
verwendet? Im Wiki ist leider noch keine Erläuterung drin.
Außerdem würde ich gerne mit einem Notify auf das Scharf/Unscharf Stellen eines Alarms reagieren. Auf welches Reading kann ich triggern? Alarm4 funktioniert z.b. nicht. :(
Anleitung ist ins Wiki eingefügt.
LG
pah
Heute nach dem Unscharfschalten von Level 4 im Log gefunden:
2014.12.13 07:30:08 3: alarm4.unsh.N return value: Undefined subroutine &main::Alarm_Sharp called at (eval 13645) line 1.
2014.12.13 07:30:08 3: alarm4.unsh.N return value: Undefined subroutine &main::Alarm_Sharp called at (eval 13647) line 1.
Tja, dann sollte man mit dieser neuen Version mal "Set Alarms" durchführen - denn selbstverständlich haben sich die Einsprungpunkte geändert. Das ist aber eine Sache von 1 Sekunde, will ich meinen.
LG
pah
Tja, selbstverständlich habe ich das gemacht gehabt - denn nach der Migration waren ja schließlich die Einstellungen, die vorher "sharpen" oder "unsharpen" hatten, ohne Wert ;).
Dieser Log-Eintrag ist wesentlich später aufgetaucht.
Das kann nicht sein. Denn bei "Set Alarms" wird für Scharfschalten und Unscharfschalten je ein Notify generiert, welches explizit die Prozedur
main::Alarm_Arm("AAA",6,"$NAME","$EVENT","arm") bzw. main::Alarm_Arm("AAA",6,"$NAME","$EVENT","disarm")
aufruft.
Ich tippe deshalb darauf, dass die EInträge mit &main::Alarm_Sharp irgendwo in einer Save-Datei herumstanden und bei einem Neustart geladen wurden.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 17 September 2014, 14:21:53
Na, dieser "Schönheitsfehler" ist eher marginal - "Everything" hat bei hunderten von Definitionen keine sinnvolle Bedeutung.
LG
pah
Nicht nur bei "Everything"
Habe zwei Dummys definiert (Zum Test-triggern). Auch hier wird bei Sensors unter 'Alarms' nur das state-icon angezeigt...
Ich würde das Modul auch gerne verwenden. Ich habe nur ein kleines Problem: wenn ich z. b. Einen Fensterkontakt als "alarmDevice Sensor" definiere, erscheint in den Sensorliste nicht der Namen des Sensors, sondern sein Status. Muss ich beim Setzen der Attribute was besonderes beachten?
Hallo!
Vielen Dank für das Modul, es ist sehr gut gemacht und entspricht genau was ich brauche ;)).
Ich habe eine Frage zum Arm-Delay:
ist dieses Bild im Wiki noch aktuell?
(http://www.fhemwiki.de/w/images/1/17/Alarm_settings.png)
Bei mir erscheinen das Parameter für das Arm-Delay und die drei Actions nicht. Habe ich das Modul falsch konfiguriert? (Version 1.9)
Falls es die Felder tatsächlich nicht mehr gibt, wie wird das Arm-Delay behandelt?
In diesem Post habe ich keine Info diesbezüglich gefunden.
Danke nochmal!
Ciao,
Marco
Jorge, "mirgehtsgut":
Scheint der gleiche Konfigurationsfehler zu sein. Wirklich alle Schritte hier beachtet ? => http://www.fhemwiki.de/wiki/Modul_Alarmanlage#Erste_Schritte
Barracus:
1.9 ist eine Uraltversion des Moduls.
LG
pah
Allerdings!
Ich hatte mir gestern die Version geholt, die in SVN im Ordner contrib noch zu finden ist.
Danke.
Ich habe meine FHEm ebenfalls aktualisiert nachdem ich das Alarm modul nicht zu laufen gebracht hatte - aber mit der neusten Version tut es auch nicht. Keine Ahnung woran es liegt.
Erst mal sieht das Display etwas anders aus -- ? ev. brauche ich spezielle styles - konne diesbzgl. jedoch keine docu finden.
D.h. die Überschriften über Alarm LEvel sind verschoben. Früher gab es bei mir keine Arm Delay usw in Settings konfig.
Ich hatte nichts eingetragen, jedoch nachdem ich "Set Alarms" gedrückt hatte, war jetzt überall eine 1 drin. Dürfte wohl ein Fehler sein.
Eigentl. wollte ich mal Testen wie alles tut:
* habe Piezzo Signalgeber an einem Funk-Relais
* habe ein dummy angelegt (ALARM_Raise ) um einen Alarm zu initiieren -- Alles auf Level 7
Hätte jetzt gedacht, dass ich durch "set ALARM_Raise on" den Testalarm auslösen kann --- doch nichts passiert
Theorerisch hätte bei RegExp * jeder Event auslösen sollen denke ich -
Was ich jetzt nach dem update feststelle ist:
Ich mache ein "Set Alarms" -- sehe keine Fehler und die Actor definitionen sind unverändert . Wechsle ich jedoch den Raum - sprich die Anzeige und gehe danach wieder auf die Alarm-Config zurück, dann sind die Config Daten für Aktor nicht mehr vorhanden
-- irgendwas ist hier wohl oberfaul im Aktoren-Bereich des Moduls.
Wenn ich im SensorBereich was ändere so ist dies nach "Set Alarms" ok und noch immer da. Auch bei weiterem Aktor identisches Problem.
Und ich habe einen Sensor definiert für alle levels "Cancel" -- hat jemand dies am laufen ? Meine Version zeigt 2.1
Zitat von: roli am 22 Dezember 2014, 14:12:58
Ich mache ein "Set Alarms" -- sehe keine Fehler und die Actor definitionen sind unverändert . Wechsle ich jedoch den Raum - sprich die Anzeige und gehe danach wieder auf die Alarm-Config zurück, dann sind die Config Daten für Aktor nicht mehr vorhanden
-- irgendwas ist hier wohl oberfaul im Aktoren-Bereich des Moduls.
Wenn ich im SensorBereich was ändere so ist dies nach "Set Alarms" ok und noch immer da. Auch bei weiterem Aktor identisches Problem.
Und ich habe einen Sensor definiert für alle levels "Cancel" -- hat jemand dies am laufen ? Meine Version zeigt 2.1
[/quote]
Leider nein! Hatte auch diese Probleme und musste leider aufgeben!
LG
ZitatIch mache ein "Set Alarms" -- sehe keine Fehler und die Actor definitionen sind unverändert . Wechsle ich jedoch den Raum - sprich die Anzeige und gehe danach wieder auf die Alarm-Config zurück, dann sind die Config Daten für Aktor nicht mehr vorhanden
Kann es sein, dass einfach ein
Save Config entsprechend dem Wiki fehlt?
Bei mir läuft das Modul ohne Probleme. Nach
Set Alarms sowie
Save Config erscheint jeweils kurz eine Bestätigung oben links auf der Seite. Sollte ein Fehler auftreten (ich vergesse manchmal bei neuen Config-Dateien die Rechte im Dateisystem richtig zu setzen), wird dieser angezeigt.
VG
Sven
Nun, bei mir (und anderen) funktioniert das Modul korrekt. Die Erfahrung sagt: Wenn ein FHEM-Neuling behauptet, irgendetwas an einem Modul sei "oberfaul", ist das nur äußerst selten richtig.
Wenn sich an den dargestellten Werten etwas ändert beim Raumwechsel, stimmt möglicherweise etwas mit den JavaScript-Einstellungen des Browsers nicht.
Mein Tipp: Gaaanz langsam durch die Wiki-Seite gehen, nur einen Sensor und einen Aktor verwenden. Und sich einmal genau ansehen, welche Attribute und notifys das Modul erzeugt.
LG
pah
Das "oberfaul" war sicher erst mal Frust. Ich hab die Doku schon mehrmals durchgelesen - aber hatte wohl die grössten Probleme
mit der Umstellung der alten Version und jetzt zur 2.1. Einiges konnte ich dann auch mittels Logfile selbst identifizieren und beheben.
Und ich habe es geschafft einen Aktor auszulösen.
Man kann sich sicher gut an das WIKI halten - nur wenn man eben klein anfängt, möchte man nicht alles verwenden und ausfüllen und dann wundert man sich, wenn es nicht tut.
Z.B: Möchte ich keine "disarm oder Cancel" Action -- aber wenn ich es leer lasse, schreibt er immer "1" in das Feld, was durchaus
verwirrend ist aber sonst wohl keine Auswirkung hat.
Und ich wundere mich auch, dass mein Buttons ( CANCEL ) und bei den Sensor Actions wohl einen anderen Style haben --
Ist hier bei Update eventuell etwas nicht aktualisiert worden ?
Auch die Nummern Uberschriften zu den Alarmleveln der Sensoren und Actoren sind verschoben und im WIKI sieht es bei den Aktoren eh anders aus.
Übrigens macht das Drücken von "Cancel" keinen update auf die Anzeige der Zusatandsanzeige - nur nach F5.
Ansonsten komm ich schon weiter. Das "Notify on RegExp" hatte mich auch dazu verführt eine optimierung zu machen indem ich
in dummy mit Liste erzeugt hatte. Aber die RegExp kann sich nur auf das Sensor device beziehen .
Trotzdem super Arbeit und an alle schöne FHEM Weihnachten.
Womit wieder bewiesen wäre: Wer lesen kann, ist klar im Vorteil.
Ich kann schließlich nicht an allen Stellen noch einmal hinzuschreiben: "Bitte genau so verfahren, wie hier beschrieben".
pah
Hohe Trolldichte.
pah
Das Modul sieht eigentlich gut aus und würde mich auch Interesieren.
Aber die Antworten vom Prof. Dr. Peter Henning finde ich manchmal total schräg.
Ich bin leider kein Prof. Dr.
Da kann ich leider nicht mithalten.
Und ich glaube es geht hier vielen Anderen auch so...
Finde ich schade.
Ich kann dies nachvollziehen und verstehe beide Seiten. FHEM ist for free und deshalb ist es sicher super, dass hier immer wieder neue Dinge entwickelt und bereitgestellt werden. Ich hatte ursprünglich eine eigene WEB Oberfläche entwickelt - die schöner war, aber halt nicht so flexibel und ausbaufähig. Deshalb mache ich dann doch eher Abstriche und versuche mich durch FHEM zu kämpfen - was nicht ganz einfach ist. Manche Beispiele sind zu trivial und schlimmer noch ist die Tatsache, dass vieles alt und nicht kompatibel zu der heutigen Version ist. Hier ändert sich oft zuviel ohne dass man dies erst mal realisiert. Meine Fehler waren ebenfalls durch den
Unterschied von Version 1.9 --> 2.1 verursacht und dann steht man erst mal ratlos da. Mittlerweile glaube ich die Funktion zu verstehen - ohne den code zu studieren. Ich hatte leider bis jetzt auch schon Anfragen an Herrn Henning und hatte zu den Fragen nie eine Antwort bekommen - außen dass ich die Doku lesen soll. Teilweise wäre es wohl einfacher gewesen eine Tipp zu geben, da nicht alles in der Doku beschrieben ist - was ich auch verstehe. Ich hätte, wie es bei einem Forum üblich ist, eventuell auch einen Tipp von anderen Usern erwarten können.
Also lasst uns so kurz vor Jahresende die Stimmung hoch halten und manchmal ist es besser für H. Henning nichts zu antworten, wenn es nicht wirklich einen Value hat.
Zu "Raimundl" -- Save Config ...
Ich hatte/habe ähnliche Probleme, stelle aber fest, dass es teilweise recht lange dauert bis die Meldung kurz oben erscheint, dass
die Config gesichert wurde.
Ich würde auf jeden Fall mal in aktuellen LogFile nachschauen, ob Fehler vorhanden sind und sicherstellen dass dort alles fehlerfrei ist. Dann sollte es schon funktionieren. Wie gesagt ist auch mit 2.1 meine Config Anzeige anders als im WIKI dargestellt --
Tabellen Formatierung. Werde dies sicher auch noch rausfinden. Da ich aber eine Hardware Alarmanlage habe und FHEM lediglich
dazu verwende eine Einbindung zusätzlicher Funk-Melder zu realisieren, bzw. die zeitgesteuerte Aktivierung - so kann sein dass
ich das sauer lauffähige Module mich mich einfriere - anderer Name um Probleme mit neuen Version zu verhindern.
Habe noch etwas getestet und folgendes festgestellt, was eventuell so nicht gewollt ist.
* Arm/Disarm/Cancel actions.
dies wird ausgeführt, wenn ich über die Sensoren die jeweilige action veranlasse - Ist also OK. Wenn man jedoch die
Checkbox im Settingsbereich verwendet, so hat dies zwar die gewünschte Auswirkung - aber
die Actions werden nicht ausgeführt. Nun kann dies gewollt sein - aber ist nicht unbedingt intuitiv. Wie gesagt sieht man
den Erfolg der aktion auch erst wenn man den Raum/view durch verlassen und neu anwählen wieder aktualisiert.
-- ich denke dass dies nicht so gewollt ist.
Der CANCEL button löst die Cancel action aus, falls ein Alarm angestanden ist - jedoch ist dies in der Status-tabelle nicht
geändert und erst sichbar nach refresh oder kurzzeitiges Raum wechseln.
Das ist nur halb richtig.
Selbstverständlich wird die Cancel-Action ausgeführt, wenn man den Button betätigt. Bei mir ist das eine Stimmenmeldung "Alarm widerrufen", siehe Anlage.
Allerdings habe ich das bei den Checkboxen fürs Scharfschalten nicht vorgesehen, das soll auch so bleiben und ist gewollt. Denn mit den Checkboxen kann ich_alle_ Level beeinflussen und habe sofort eine visuelle Rückmeldung.
LG
pah
P.S.: Wenn ich nicht antworte, kann das zwei Gründe haben. Erstens könnte ich nicht verfügbar sein - das kann sich bei mir durchaus über Wochen erstrecken. Zweitens kann es sein, dass ich die Frage durch eigenes Recherchieren für lösbar halte. Dann interessiert es mich auch oft nicht, eine Antwort zu geben, weil ich sonst zu nichts Anderem mehr käme. Die Vorstellung, dass es doch so schön einfach wäre, wenn ich in diesen Fällen außer "Doku lesen" noch Tipps geben würde, lasse ich mir nicht servieren - dazu ist meine Zeit wirklich zu kostbar.
Das betrifft, wohl gemerkt, nicht sinnvolle und kniffelige Fragen - bei denen helfe ich durchaus gerne.
Das betrifft schon gar nicht Leute die glauben, auf meine Arbeitskraft ein moralisches Recht zu haben, oft, ohne selbst irgendetwas zu FHEM beigetragen zu haben. Und die dann irgendetwas Beleidigendes konstruieren, wenn man sie nicht bedient- und die dann plötzlich feststellen müssen, dass sie hier doch nicht so anonym sind, wie sie glauben.
Hallo,
ist es vorgesehen von diesem Modul nur eine Instanz in FHEM zu nutzen? Ich habe zum Testen eine zweite Instanz definiert und musste feststellen dass Änderungen in einer Instanz auch in der zweiten Instanz mit übernommen wurden.
Grundsätzlich währe es sicherlich aber auch interessant zwischen der ordinären Alarmanlage und z.B. einer Art Mitteilungszentrale zu unterscheiden. D.h., das Wiki Beispiel mit der schwachen Batterie würde ich dann unter der Mitteilungszentrale einrichten... dazu gehören dann auch andere Szenarien wie z.B. der Ausfall von Netzwerkkomponeten sowie Sensoren und Aktoren... gewisse Stati von Sensoren wie z.B. Tür oder Fenster und auch Bewegungsmelder im Alarmzustand bzw. Scharfschaltung dann der Alarmanlage selbst zuordnen.
Gruß und schöne Feiertage!
Hm,
sehr aufwändig, weil dann zwei verschiedene globale Attribute für die alarmsettings bei jedem Sensor/Aktor auftauchen müssten.
Aus genau diesem Grund habe ich doch ganz unterschiedliche Alarmlevel zugelassen - die Level 0-4 sind bei mir genau die Mitteilungslevel, die z.B. im Wohnzimmer eine angenehme Frauenstimme sagen lassen: "Achtung, Systemstörung". Oder "Das Badezimmerfenster steht schon zehn Minuten offen".
Level 5 ist bei mir ein Warnlevel - etwa, wenn in der Nacht eine Tür geöffnet wird, obwohl ich daheim bin. Könnte auch eines meiner Kinder sein, das spät nach Hause kommt.
Level 6 ist der Einbruchlevel - und der einzige, der manuell scharf oder unscharf gestellt wird.
Level 7 ist der Gefahrenlevel, z.B. Wasserschaden oder Raum., der wird niemals unscharf gestellt.
Ebenfalls frohe Festtage
LG
pah
Danke für die Antwort! Mit etwas Hirnschmalz wird man sicherlich ein Konzept zusammen stellen können welches mit 8 Leveln auskommt.
Ein erster Gedanke:
0 Batteriewarnung (Komponente könnte in naher Zukunft ausfallen)
1 Komponentenausfall (Komponente ist ausgefallen)
2 Systemstörung (Switch, Router, CUL o.ä. ist ausgefallen)
3 Schwellwert überschritten (irgendwelche Sensormeldungen außerhalb der Toleranzbereiche)
dazu hätte ich schon einen wunderbaren Anwendungsfall zur Kombination mehrerer Sensoren: hohe Aussentemperatur, kombiniert mit einer hohen Luftfeuchtigkeit und einem geöffneten Kellerfenster; die Raumtemperatur im Kellerraum ist natürlich relativ niedrig (bezogen auf die Aussentemperatur). Der Spass hat mich mehrere Stunden und einige Flaschen Schimmelentfernter gekostet.
4 Warnung beim Verlassen des Hauses (z.B. offene Terrassentür, offenes Fenster oder die Heizung läuft noch auf Volllast)
für all diejenigen, die nach halber Fahrtstrecke von der Frau gefragt werden ob denn auch alle Fenster geschlossen sind und der Herd ausgeschaltet wurde.
die weiteren Level dann ähnlich wie im vorangegangenen Beitrag von `pah`.
Einen schönen Abend noch!
Der Aufwand zur Erhöhung der Anzahl der Alarmlevel ist minimal - aber dann wird es schnell unübersichtlich.
Aus dem Grund gibt es ja die Möglichkeit, den auslösenden Sensor mit in die "Message" aufzunehmen - dann kann man noch feiner unterscheiden, wenn diese Message über einen Dummy abgearbeitet wird. Bei mir wird beispielsweise eine jeweils andere MP3-Meldung ausgelöst, je nachdem welches Fenster etc. geöffnet wird.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 22 Dezember 2014, 05:42:24
Jorge, "mirgehtsgut":
Scheint der gleiche Konfigurationsfehler zu sein. Wirklich alle Schritte hier beachtet ? => http://www.fhemwiki.de/wiki/Modul_Alarmanlage#Erste_Schritte
Barracus:
1.9 ist eine Uraltversion des Moduls.
LG
pah
Ich habe alles neu aufgesetzt, dann war das Problem behoben. Könnte es daran liegen, dass ich zuvor selbst einen Raum Alarm erzeugt hatte?
Nun eine neue Frage: Ich schicke mir die Alarmmeldungen per Pushover zu. Ich habe dazu die am Anfang vorgeschlagene Routine {Push('Alarm','AAA')} genutzt. Ich würde nun noch gerne den auslösenden Level in die Meldung einbauen und wäre über einen Vorschlag dankbar.
Zitat von: Prof. Dr. Peter Henning am 22 Dezember 2014, 05:42:24
Jorge, "mirgehtsgut":
Scheint der gleiche Konfigurationsfehler zu sein. Wirklich alle Schritte hier beachtet ? => http://www.fhemwiki.de/wiki/Modul_Alarmanlage#Erste_Schritte
Barracus:
1.9 ist eine Uraltversion des Moduls.
LG
pah
Das Problem und dessen Lösung besteht darin: Der Sensor bzw. Actor darf nicht dem Hiddenroom AlarmRoom zugeordnet werden... warum auch immer.
Das ist dann irgendein Spezialeffekt des FHEMWEB Frontends.
LG
pah
Ich habe die folgende Testkonfiguration aufgesetzt:
Je ein Dummys für arm/disarm/raise/cancel als Ersatz für Sensoren
Je 1 Actor auf level 0 und 1
Signalsierung des Alarmzustands über gpio
Das 'Alarmieren' der Aktoren über die Dummies klappt auch gut.
Auch das 'disarm' funktioniert, unter Alarms erscheinen die Checkboxen danach ohne Haken, es wird kein Alarm mehr ausgelöst
Logfile:
2015.01.03 13:19:21 3: alarm1.disarm.N return value: [Alarm 1] disarmed from device AlarmDummyDisarm with event on
2015.01.03 13:19:21 3: alarm0.disarm.N return value: [Alarm 0] disarmed from device AlarmDummyDisarm with event on
ein 'arm' ist allerdings über den dafür vorgesehenen Dummy nicht möglich
Logfile:
2015.01.03 13:30:03 3: alarm1.arm.N return value: [Alarm 1] armed from device AlarmDummyArm with event on, delay 0 s
2015.01.03 13:30:03 3: [Alarm 1] armed from device AlarmDummyArm with event on, delay 0 s
2015.01.03 13:30:03 3: define alarm1.arm.dly at +00:00:00 attr AAA level1xec armed : alarm1.arm.dly already defined, delete it first
2015.01.03 13:30:03 3: alarm0.arm.N return value: [Alarm 0] armed from device AlarmDummyArm with event on, delay 0 s
2015.01.03 13:30:03 3: [Alarm 0] armed from device AlarmDummyArm with event on, delay 0 s
2015.01.03 13:30:03 3: define alarm0.arm.dly at +00:00:00 attr AAA level0xec armed : alarm0.arm.dly already defined, delete it first
Die Checkboxen in der Alarmsübersicht sind leer, eine Alarm wird über die Dummys nicht mehr ausgelöst.
Erst nach erneutem Aktivieren der Checkboxen und SetAlarms ist ein Alarmauslösen wieder möglich.
Neuestes Update V 2.1
LG
Jorge
Gibt es eigentlich einen speziellen Grund warum es sowohl einen Alarm als auch einen Alarms Room gibt?
Leider kann ich die notifies aus Alarm nicht in Alarms verschieben da sie immer neu geschrieben werden...
"Alarm" ist der Raum mit Aktoren, Sensoren und Notifies.
"AlarmRoom" ist ein versteckter Raum, der nur das AlarmDevice selber enthält.
"Alarms" ist kein Raum, sondern ein spezieller Weblink, taucht somit in separatem Menü auf
Kann man selber ganz einfach ändern, steht am Anfang des Moduls.
LG
pah
Jetzt verstehe ich zwar immer noch nicht wirklich warum das so ist, aber wenigstens konnte ich es ändern ;D
Nun, von der Semantik her ist doch wohl klar, warum es drei Kategorien gibt. Welche Namen man denen gibt, ist Geschmackssache.
LG
pah
Bei mir wird ab einer bestimmten Länge des "Set Action" Feldes die Eingabe nach dem "Create Alarm" und "Save Config" abgeschnitten.
z.B:
Das funktioniert:
{DebianMail('<mailadresse>','Alarm',Value('myAlarm'))}
und das wird abgeschnitten:
{DebianMail('<mailadresse>','Alarm',{$defs{'myAlarm'}{READINGS}{"short"}{VAL}})}
und zwar so:
{DebianMail('<mailadresse>','Alarm',{$defs{'myAlarm'}{READINGS}{
wobei meine verwendete Mailadresse genau 15 Zeichen lang ist.
Habe nur ich dieses Problem, oder kann das vielleicht noch jemand bestätigen?
Gruß
Thomas
Das hat nichts mit der Länge zu tun. Versuch mal 'short' statt "short".
LG
pah
Ja, das wars. Vielen Dank.
Zunächst mal ein grosses Kompliment. nachdem ich das Modul einigermaßen verstanden habe, konnte ich gut 80% meiner Wünsche bereits umsetzen. Ich hänge nun an einem kleinen Problem:
Ich aktiviere meine Alamanlage mit einem Delay von 5 Minuten über einen "arm"-Sensor. Ich möchte nun die Möglichkeit anbieten, die Aktivierung innerhalb der Delay-Zeit wieder zurückzunehmen (über den gleichen Taster). Wie kann ich den gestarteten notify (alarm5dly) abbrechen und wie kann ich den aktuellen Status der Anlage per Befehl abfragen (getriggerte Actoren, Sensoren, notifies o. Ä.) mit?
Noch eine kleine Zusatzfrage:: für raise- und cancel-Sensoren können in einfacher Weise Meldungen ausgegeben werden. Beim "arm"-und "disarm"-Sensor klappt dies irgendwie nicht. Kann ich auch selbst entsprechende Meldungen generieren (z. b. über Alarm_Ecec)? Ich würde gerne den Zeitpunkt in die Meldung ausgeben. Vielleicht ist dies sogar ein Verbesserungsvorschlag.
Ersteres ist schwierig, weil man das Event umbiegen müsste. Ließe sich durch einen dazwischengeschalteten dummy erledigen, der bei jeder Aktion den Zustand wechselt - und je nach Zustand macht der Event etwas Anderes.
Den notifier bricht man mit "delete alarm5dly" ab - das ist kein Problem.
Zusatzfrage verstehe ich nicht - Arm Action und Disarm Action machen genau das. Und selbstverständlich wird den Events, die dabei ausgelöst werden, auch die Zeit mitgegeben. Bei mir sagt z.B. dann mein MP3-Funkgong laut und vernehmlich "Alarmanlage scharf geschaltet" bzw. "Alarmanlage unscharf geschaltet".
(Höre Anlage)
LG
pah
Guten Abend,
ich habe folgendes Problem:
ich kann einen Alarm weder 'disarmen' noch 'armen'
Bei der eingabe von "set AAA arm 1" bekomme ich als Rückmeldung:
[Alarm] Unknown argument arm, choose one of cancel:0,1,2,3,4,5,6,7 arm:0,1,2,3,4,5,6,7 disarm:0,1,2,3,4,5,6,7 lock:noArg unlock:noArg
der Befehl 'cancel', 'lock' und 'unlock' funktioniert dagegen.
Einen dummy zum widerrufen sämtlicher Alarme habe ich erstellt, daran liegt es aber auch nicht.
Gruß
Sieht nach einem Tippfehler in der Fehlermeldung aus.
Mal versuchen
set AAA armed 1
LG
pah
Vielen Dank!!! Funktioniert :)
Hallo und guten Abend,
zunächst mal auch von mir ein Dankeschön für dieses universelle Modul. Ich benutze es seit einiger Zeit zur Überwachung der Batteriestati meiner Rauchmelder, Fensterkontakte und Heizungsthermostate. Lasse mir Meldungen der Rauchmelder und Einbruchsmeldungen per SMS schicken.
Ich möchte den Einbruchsalarm jetzt mittels Tablett scharf und unscharf schalten, was mir nicht gelingt. Zur Fehlersuche habe ich das Kommando " set AAA armed X " wobei X eine Zahl von 0 bis 7 ist, im Webfrontend von Fhem eingegeben. Es funktioniert nicht. " set AAA disarmed X " dagegen funktioniert und kann ich auch über meine Webanwendung auf dem Tablett benutzen. Über das Übersichtsbild des Modul gelingt das aktivieren und deaktivieren einwandfrei. Zu diesem Zweck angelegte Dummys schalten die Anlage ebenfalls ein bzw. aus. Ich gehe deshalb nicht von einem Konfigurationsfehler aus.
In der Auswahl des Modul wird als set Kommando arm und disarm angeboten, was aber auch nicht geht, wie im letzten Post bereits beschrieben.
Ich hoffe ich habe jetzt nicht irgendeinen Hinweis überlesen und bin für einen Tipp sehr dankbar.
Beste Grüße
Zitat von: wtue am 18 Januar 2015, 22:06:45
Hallo und guten Abend,
zunächst mal auch von mir ein Dankeschön für dieses universelle Modul. Ich benutze es seit einiger Zeit zur Überwachung der Batteriestati meiner Rauchmelder, Fensterkontakte und Heizungsthermostate. Lasse mir Meldungen der Rauchmelder und Einbruchsmeldungen per SMS schicken.
Ich möchte den Einbruchsalarm jetzt mittels Tablett scharf und unscharf schalten, was mir nicht gelingt. Zur Fehlersuche habe ich das Kommando " set AAA armed X " wobei X eine Zahl von 0 bis 7 ist, im Webfrontend von Fhem eingegeben. Es funktioniert nicht. " set AAA disarmed X " dagegen funktioniert und kann ich auch über meine Webanwendung auf dem Tablett benutzen. Über das Übersichtsbild des Modul gelingt das aktivieren und deaktivieren einwandfrei. Zu diesem Zweck angelegte Dummys schalten die Anlage ebenfalls ein bzw. aus. Ich gehe deshalb nicht von einem Konfigurationsfehler aus.
In der Auswahl des Modul wird als set Kommando arm und disarm angeboten, was aber auch nicht geht, wie im letzten Post bereits beschrieben.
Ich kann das Verhalten nur bestätigen. Hatte das bereits in meinem Post vom 2.1.2015 dargestellt. Leider kann ich auch keine Lösung anbieten.
Sollte in der neuesten Version behoben sein.
LG
pah
O.K. und Danke.
Im Drop-Down erscheinen jetzt die richtigen Commands.
Nur: Wenn ich z.B. den Level 0 disarme 'set AAA disarmed 0' kann ich ihn nicht wieder über 'set AAA armed 0' auf 'arm' switchen. level0xec bleibt 'disarmed'. Gleiches Verhalten wie bisher.
LG
Jorge
Nachtrag:
Auch hier half der Selbstversuch: ArmDelay muss im Format MM:SS eingetragen werden, dann klappts auch mit dem armieren!
Zitat von: Prof. Dr. Peter Henning am 22 Januar 2015, 19:37:43
Sollte in der neuesten Version behoben sein.
LG
pah
Äh - steht irgendwo etwas Anderes ?
Mal sehen, werde in der nächsten Versionen einen Check einbauen.
pah
Hallo,
auch ich bin sehr dankbar die dieses Modul, da es im Idealfall eine komfortable Möglichkeit darstellt, ohne profunde Programmierkenntnisse eine Alarmanlage zu realisieren.
Idealfall bedeutet, Nutzer und Software führen zu einem funktionierenden System. Diesen Zustand habe ich bei meiner Installation noch nicht erreicht, was vermutlich nicht an der Software, sondern eher an dem Brett vor meinem Kopf liegt...
Konkret habe ich folgende Situation: Die eingerichteten Notifies werden bei Eintritt der hinterlegten Ereignisse (erstmal nur die Türkontakte) aktiviert, aber keine Aktoren (ich habe probehalber eine Lampe an einer Funksteckdose und einen FS20 SIG eingerichtet). Die entsprechenden Alarmlevels sind armed und manuell funktionieren die verwendeten Befehle einwandfrei. Ich verstehe nicht, wo es "hängt".
Kann mir jemand einen Tipp geben, wie ich das herausfinde?
Vielen Dank für jede Hilfe!
TK
Gesendet von meinem GT-N8010 mit Tapatalk
Hallo,
wie die anderen auch bedanke ich mich sehr für das Modul!
@tomatic - hast du das richtige Zeitfenster für deinen Alarm ausgewählt?
Ich experimentier nun auch wenig. Ich hoffe es liegt nicht an meinem Verständnis des Moduls aber ist es richtig, dass eine Kombination von z.B. Bewerbungsmelder und Temperatur nur über eine eigene Dummys möglich ist? Falls nicht, kann mir jemand einen Hinweis geben?
Beste Grüße Breezy
Edit: War dumm, aber es ist auch spät. Hab eine Lösung gefunden.
Hallo,
Ja, hab auch mit 24h Zeitfenster keinen Erfolg. Es scheint so, als würde die Abarbeitung der Notifies durch das Alarmmodul nicht erfolgen, warum auch immer. Vermutlich hat irgendetwas bei meiner Installation nicht die richtige Kurve genommen. Da mir das Hintergrundwissen und die Zeit fehlt, werde ich erstmal wieder aufgeben und vielleicht irgendwann mit einer frischen Installation neu starten. Will ja nicht hier dauernd nerven müssen.
Bis dahin werden ich schrittchenweise meine eigenen Notifies einrichten, um an eine kleine Alarmanlage zu kommen und gleichzeitig was dazuzulernen.
Gruß, Thomas
Gesendet von meinem D5503 mit Tapatalk
Hallo tomatic
geb doch nicht so schnell auf. Ich kenne leider deine Geräte bzw. Config hinter den WZ_... Definitionen nicht. Bei mir funktioniert das Tool wie es soll.
Was ich an deiner Stelle noch mal versuchen würde. Das Testfenster auf 00:00 - 23:59 stellen, es scheint das du alles richtig aktiviert hast, daher kann es eigentlich nur an den REGEX liegen, versuch damit mal ein wenig rumzuspielen. Wenn ich hier nicht weiter weiß, speichern ich mir immer das komplette EVENT in einem dummy und schaue an was tatsächlich gesetzt wird, dann kannst du über EVTPART0,1,... das richtige raussuchen.
Nicht vergessen, Set Alarm und Save Config
Liebe Grüße breezy
Das liegt mit absoluter Sicherheit an den regulären Ausdrücken. Um nur ein Beispiel zu nennen: Die meisten Sensoren liefern als Event ein "Open", und nicht etwa ein "open". Klar, dass es dann mit den im Bild abgedruckten regulären Ausdrücken nicht funktioniert - wer es schnell haben will, muss eben exakt arbeiten.
Wenn dieser jemand dann sofort vom "Aufgeben" redet - und auch noch mit den widersprüchlichen Argumenten, a.) keine Zeit zu haben und b.) dann eben selbst eine Alarmanlage programmieren zu wollen, kann das nur eines bedeuten: Er hofft, mit dieser Drohung doch schnell direkt Hilfe zu bekommen. Aber auf diese Weise sicher nicht von mir.
LG
pah
Nein, dem ist definitiv nicht so. Es ist, wie ich geschrieben habe, ich denke, ich versuche besser, erstmal zu verstehen, wie ich solche Dinge im kleinen bewerkstellige. Das Ziel einer "Alarmanlage" ist sicher ein viel zu hoch angesetzter Ausdruck. Das richtet sich ja auch nicht gegen dieses Modul, also nicht gleich beleidigt sein und irgendwelche "Drohungen" vermuten. ;-)
Abgesehen davon erwarte ich von einem Forum zu freier Software nicht, dass mir alles auf dem Silbertablett serviert wird.
Aber nur für mein Verständnis: wenn das mit Open und open stimmt, warum wird dann das Notify aktiv?
Gruß, Thomas
Gesendet von meinem D5503 mit Tapatalk
Ich bin nicht leicht beleidigt, keine Sorge. Lasse nur sehr schnell den Stift fallen, wenn jemand mich zur Arbeit animieren möchte.
Mein Vorschlag: Erst einmal EINEN Sensor mit EINEM Aktor verbinden. Leicht zu beobachtenden Aktor wählen, z.B. Deckenleuchte. Und dann mal experimentieren.
LG
pah
Zitat von: raimundl am 21 September 2014, 19:45:50
Hallo, ich passe jetzt und warte etwas ab!
Natürlich, Punkt für Punkt oft durchgegangen, leider lässt sich trotzdem kein Actor übernehmen.
Werde bei Gelegenheit ein System vollkommen neu aufsetzen (2 Sensoren und 1 Actor aus FS20) und es nochmals versuchen. Ich halte das Modul nämlich für eine ausgezeichnete Idee, die zu meinen Bedürfnissen paßt.
LG Walter
Heute nochmals aufgesetzt - mit vorerst einfacher Konfiguration -
funktioniert!Ich vermute, abgesehen von lfd. "save config" sind auch "shutdown restart" wichtig!
Nun geht es ans erweitern.
Also nochmals Danke und LG
Nein, "shutdown restart" hat damit gar nichts zu tun.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 31 Januar 2015, 04:21:57
Nein, "shutdown restart" hat damit gar nichts zu tun.
Habe nun (reproduzierbar) herausgefunden wieso mein erster Startversuch nicht gelungen ist:
Als Sensor habe ich damals den FS20 Klingeltaster verwendet, der aber im Modul Alarm nur funktioniert, wenn das Attribut "model fs20tk"
nicht gesetzt wird.
LG
Kann nicht sein, weil das Modul auf dieses Attribut überhaupt nicht achtet.
Welche Events werden denn jeweils generiert, wenn dieses Attribut gesetzt/nicht gesetzt ist ? Ich nehme an, dass diese sich unterscheiden. Das bedeutet: Mit dem richtigen regulären Ausdruck für kann selbstverständlich auch bei gesetztem model-Attribut ein Alarm ausgelöst werden.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 01 Februar 2015, 10:07:40
Kann nicht sein, weil das Modul auf dieses Attribut überhaupt nicht achtet.
Welche Events werden denn jeweils generiert, wenn dieses Attribut gesetzt/nicht gesetzt ist ? Ich nehme an, dass diese sich unterscheiden. Das bedeutet: Mit dem richtigen regulären Ausdruck für kann selbstverständlich auch bei gesetztem model-Attribut ein Alarm ausgelöst werden.
Nachfolgende Events werden in beiden Fällen generiert:
Klingel on
Klingel state: on
Sie haben vollkommen recht und ich nehme "reproduzierbares Verhalten" zurück. Die Sache dürfte weitaus einfacher sein, die Klingel sendet (bzw. wird empfangen) manchmal, manchmal nicht, manchmal muss man lange drücken .........
Das im Zusammenspiel mit meinen Versuchen, ließ mich zu obigem Schluss kommen.
Mit meinen anderen Sensoren funktioniert ja alles bestens und die Klingel werde ich entsorgen.
Nochmals danke und LG aus Wien
Tja, die gute alte Kristallkugel...
Ich habe den FS20 KSE 2x im Einsatz, funktioniert eigentlich ganz stabil und zuverlässig. Mein Tipp: Während einiger echter Klingelversuche mal den event Monitor mitlaufen lassen und sehen, was ankommt.
LG
pah
Ich habe gerade eine neue Version des Moduls eingecheckt, etwas komfortabler beim Scharf/Unscharf-Schalten:
- Erste Aktion direkt beim Drücken des "Arm"-Buttons
- Einstellbare Wartezeit,währenddessen Status "armwait"
- Zweite Aktion wenn das Ding dann scharf ist
Außerdem werden diese Aktionen auch ausgelöst, wenn die Kiste mit der Checkbox scharf geschaltet wird.
Nicht vergessen, auch das Javascript upzudaten.
LG
pah
Hallo!
Ich habe hier mehrere Fensterkontakte die mit dem Alarm Level 4 verknüpft sind. Wenn ein Fenster geöffnet wird, wird der Alarm ausgelöst und der dazugehörige Aktor, in diesem Fall ein Pushmessage Device, benachrichtigt mich. Wenn jetzt ein 2. Fenster geöffnet wird, wird das pushmessage device nicht mehr ausgelöst weil der Alarm schon ausgelöst ist.
Gibt es eine Möglichkeit einen Aktor nach dem Alarm nochmals (mehrfach) anzusprechen?
Grüße
Nein. Der Alarm eines Levels wird nur ausgelöst, wenn er nicht bereits ausgelöst wurde.
LG
pah
Ok, danke für die Info.
Mir ist noch etwas aufgefallen.
Ich habe einen Sensor der nur bei on oder off auslösen soll. Das notify regexp d_vzLichtStatus.(on|off) wird aber nach dem klick auf Set Alarms wieder gelöscht. Wenn ich nur d_vzLichtStatus.(on) eingebe klappt das, mit | nicht. Gibt es hier einen anderen Trenner?
Grüße
Das liegt an dem Abspeichern der alarmSettings - die benötigen "|" als Trenner.
Also mal versuchen d_vzLichtStatus.o.*
Oder
d_vzLichtStatus.o[fn]f?
LG
pah
Nun klapp es. Danke!
Hallo zusammen,
in der aktuellen Version des Alarmmodul gelingt es mir nicht mittels z.B. " set AAA armed 6 " den Alarm einzuschalten. Das Verhalten ist gleich, egal ob ich es in der Commandozeile von Fhem eingebe oder die Auswahl des Modul benutze. Ein "set AAA disarmed 6" hingegen funktioniert. Mittels der Checkbox kann ich die Alarmlevel beliebig ein und ausschalten.
Dieses Verhalten hatte ich schon mal berichtet und nach einem Update des Modul klappte es auch. Inzwischen aber nicht mehr.
LG wtue
Unsinn, natürlich geht das >:(
Wird aber erst nach der eingestellten Verzögerungszeit wirksam - bitte erst das eigene Log lesen, und dann maulen.
LG
pah
Sorry!! geht :-[
Hallo Professor,
auch von mir einen Dank für das gelungene Modul! Ein Post vom Monatsanfang hat mich etwas irritiert.
"Nicht vergessen, auch das Javascript upzudaten."
Soweit ich das beaobachtet habe, wird das Javascript durch ein FHEM-Update aktualisiert, oder sehe ich das falsch?
Mit freundlichen Grüßen,
Karsten Koppel
Es gibt aber Leute, die sich das Modul direkt aus dem Repository holen - und dabei ist es schon vorgekommen, dass das JavaScript vergessen wurde.
LG
pah
Ach so, dann ist mir die Anmerkung jetzt klar. So hatte ich es mir auch aktualisiert, als das Modul noch nicht in FHEM integriert war. Danke für die schnelle Antwort.
Schönen Abend,
Karsten
Hallo,
darf ich um eure Aufmerksamkeit bitten?
Seit dem vergangenen WE teste probiere ich das Alarm-Modul zum Laufen zu bringen.
Ich nutze derzeit alle Dateien, wie sie durch das "Update" installiert werden.
Leider schaffe ich es nicht, einen Alarm auszulösen, obwohl ich offenbar alles so installiert habe, wie im Wiki beschrieben.
Hier die Details:
http://forum.fhem.de/index.php/topic,33470.0.html (http://forum.fhem.de/index.php/topic,33470.0.html)
Vielen Dank für eure Unterstützung
Gruß
Michael
Hallo Michael,
steht denn irgendwas im Log wenn der Alarm auslösen sollte?
Viele Grüße
Peter
Bitte kein Cross-Posting.
pah
Moin,
m.E. habe ich den kompletten Thread durchgeackert, finde aber nix zu meinem Problem. Ich versuche, einen Port eines 1-Wire-Devices (bspw. DS2408) als Sensor einzubinden (fast alle Türen und Fenster überwache ich so). Aber alle Ausdrücke, die ich ausprobiert habe, bringen kein Ergebnis, d.h. keine Alarmauslösung. Mit Klammer, ohne, eckig, rund, geschweift... :(
Weiterhin möchte ich besagten DS2408 nicht nur einmal als Sensor aufgelistet haben, sondern jeder der 8 Ports soll als Sensor definiert werden, da jeder ein/e andere/s Tür/Fenster überwacht und auch auf unterschiedlichen Levels reagieren soll. Geht das?
Danke und Gruß
Uwe
Das Problem ist, dass je Sensor nur ein regulärer Ausdruck gesetzt werden kann.
In diesem komplexen Fall würde ich deshalb vorschlagen, mit einem notify auf den DS2408 8 verschiedene dummy-Devices zu setzen und jedes dieser als eigenen alarmSensor einzubinden.
Alternative: den kompletten Status des DS2408 überwachen. Als alarmActor einen dummy, als Ausführungsbefehl für diesen dummy aber eine eigene perl-Prozedur, die je nach Aufruf verschiedene Aktionen auslöst.
LG
pah
Hallo Peter,
Danke, das werde ich so machen. Das sollte ich hinkriegen. :D
Zu meinem anderen Problem nochmal: Ich setze den state eines DS2413 mit einem stateFormat auf Port A. Den Wert dieses state soll einen Alarm auslösen. Tut er nicht, weil ich offenbar den Ausdruck falsch definiere. Nur ein "DS2413:ON" interessiert das Alarmmodul nicht, andere Varianten mit Klammern etc. auch nicht. Wie wäre es denn richtig?
Danke und Gruß
Uwe
Hm, ich habe vage in Erinnerung, dass stateformat irgendetwas Komisches mit den Events macht. Vorschlag: Event Monitor laufen lassen und währenddessen den gewünschten Zustandswechsel manuell auslösen. Und dann nachsehen, welcher Event ausgelöst wird.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 15 Februar 2015, 15:04:03
Komisches mit den Events macht.
Stimmt...sehr komisch. Das komplette Reading wird trotz "stateFormat {ReadingsVal($name,"G",0)}" in den state geschrieben:
2015-02-15 15:12:07 OWSWITCH DS2408 A: ON B: OFF C: OFF D: OFF E: OFF F: OFF G: ONX H: OFF
Im internal STATE wird nur der Status von G angezeigt. Eine Abfrage mit "{Value("DS2408")}" zeigt den internal STATE.
Na das wird lustig... :(
Komisch geht's weiter: Ich habe zwei Dummys für Port G und H des DS2408 als Sensor. Dann ein solches Notify "DS2408:.* set dmy_Port_G %EVTPART13; set dmy_Port_H %EVTPART15". Das funktioniert alles bis %EVTPART13. Ab der 14 spuckt es sowas aus...s. Anhang. Frage: Funktioniert %EVTPART nur von 0 bis 13?
Hallo,
ich benutze die Alarmanlage und bin sehr begeistert, vielen Dank für dieses Modul.
Nun meine Frage, ich beschäftige mich mit Fhem erst einige Wochen und möchte den Zustand der Alarmzonen(0-7) über
ein Display anzeigen (hm-ou-led16).
Wie frage ich den Zustand von Zone 1 (armed oder disarmed) ab um ein "set Display_led1 led red" zu schalten.
Bitte helft mir mal auf die Sprünge
Hallo Henry123,
Schau dir mal die Attribute deiner Anlage an, bei mir AAA und versuch mal eine Abfrage nach dem Muster
{(AttrVal('AAA','level0xec','') eq 'disarmed')}
Weitere Zustände sind armwait und armed.
Gruß
Danke für die schnelle Antwort,
define dis_level0_d notify aaa:level0xec eq "disarmed" set Display_LED1 led red
hatte ich schon versucht, leider ohne Erfolg.
Dein Vorschlag werde ich heute abend mal testen.
.. hab es auf die schnelle mal getestet : bringt folgenden Fehler : Bad regexp: Unmatched ( in regex; marked by <-- HERE in m/^{( <-- HERE AttrVal('aaa','level0xec','')$/ at ./FHEM/91_notify.pm line 42.
.. es war eine ( ) zu viel, funktioniert aber immer noch nicht.
Hallo henry123,
ich habe mir auch eine Weile überlegt wie ich den Status des Alarmmodul anzeigen kann und habe mich erstmal für rss entschieden. Siehe hier http://forum.fhem.de/index.php/topic,22520.msg160064.html#msg160064 (http://forum.fhem.de/index.php/topic,22520.msg160064.html#msg160064) Damit zeige ich die Stati auf einem Tablett an. Das wird aber aus verschiedenen Gründen sicher nicht so bleiben. Ausschnitt aus meiner rss.layout:
condition {(AttrVal('AAA','level2xec','') eq 'armwait')}
rgb "FFFF00"
moveby 0 35
text x y "Alarm 2 --> Sensorüberwachung --> wird aktiviert"
condition 1
condition {(AttrVal('AAA','level2xec','') eq 'armed')}
rgb "00FF00"
moveby 0 35
text x y "Alarm 2 --> Sensorüberwachung --> ist aktiviert"
condition 1
condition {(AttrVal('AAA','level2xec','') eq 'disarmed')}
rgb "FF0000"
moveby 0 35
text x y "Alarm 2 --> Sensorüberwachung --> ist deaktiviert"
condition 1
Aber das gehört hier nicht her.
Mein Post war als Hinweis zu verstehen, nicht als die Lösung die 1 zu 1 übernommen werden kann.
Gruß
Edit:
Diese Funktion {(AttrVal('AAA','level2xec',''))}
in der Commandline von Fhem liefert mir armed zurück.
@henry123: Da der Post keinerlei Klammern enthält, kann man ihn auch nicht auf Richtigkeit überprüfen ::)
pah
Hallo wtue,
dein Beitrag war korrekt, hatte zu wenig Zeit heut morgen.
Habe es jetzt aber anders gemacht (alle 8 LEDs als Actor) und über Wait Action alle 8 leds gesetzt.
Danke nochmal.
Hallo,
Das Modul für die Alarmanlage habe ich für meinen geplanten Einsatz ausprobiert und komme damit recht gut voran.
Mir geht es nun darum, die möglichen Reaktionen auf den Eintritt der jeweiligen Alarm-Level für meinen Einsatz zu konzipieren und möglichst gut strukturiert umzusetzen.
Die Überlegung ist, dass das Eintreten eines der Alarmlevels meist mehrere der folgenden, aber individuell unterschiedlichen, Reaktionen auslösen soll:
akustisches Signal mit Zeitsteuerung
optisches Signal mit Zeitsteuerung
einen oder mehrere generischer Aktoren
Das Versenden von Nachrichten
und eine "Cancel " Möglichkeit je Alarm-Level
Schön wäre es also, wenn je Alarm-Level für diese Reaktionen separate Eingabefelder für das Verhalten der Aktoren vorhanden wäre.
Damit würde, nach meiner Einschätzung, die Lösung der gesamten Alarmanlage noch deutlich übersichtlicher und einfacher realisierbar werden.
Vielleicht finden sich ja noch Andere, die diesen Vorschlag für interessant halten.
Gruß
Michael
Da ist wohl ein Wunsch Vater des Gedankens. Mehrere Eingabefelder je Alarmlevel und Aktor bewirken nämlich Eines sicher nicht: Größere Übersichtlichkeit und Einfachheit.
Im Übrigen lässt sich das problemlos bereits jetzt realisieren, ich nutze das schon seit langer Zeit
1. Angenommen sei ein aktustischer Aktor (z.B. ein MP3-Gong), der in Level 1 "A" und in Level 4 "B" sagen soll.
2. Man definiert je einen Dummy "adummy" und "bdummy", beide erhalten das Attribut "alarmActor". Dadurch tauchen sie in der Liste der Aktoren auf
3. In dieser Liste werden sie mit jeweils anderen "Set Action"-Befehlen versehen: adummy wird dem Level 1 zugeordnet und erhält die Action "set Gong play A", bdummy wird dem Level 4 zugeordnet und erhält die Action "set Gong play B"
4. Selbstverständlich kann jede dieser Aktionen auch eine andere Verzögerung bekommen...
LG
pah
Hallo pah,
sagt Dir diese Meldung im Log nach dem Update etwas ??
Zitat2015.02.23 21:38:03 1: Calling /usr/bin/perl ./contrib/commandref_join.pl, this may take a while
2015.02.23 21:39:42 1: EN FHEM/95_Alarm_v1.4.pm: No <a name="Alarm_v1.4"> link
kvo1
Ja.
LG
pah
Hallo,
ich habe eine neue Version 2.5 von 95_Alarm.pm eingecheckt.
1. Als Zeitspezifikation sind jetzt beliebige Perl-Funktionen möglich, z.B. {sunset_abs(-1800)} = 30 Minuten vor Sonnenuntergang
2. Es sind jetzt Zeitspezifikationen möglich, bei denen für die Alarmlevel die Startzeit > Endzeit ist. Dann gilt für diesen Level: Aktiv für Startzeit < t < 23:59 und für 0:00 < t < Endzeit.
LG
pah
Danke :)
Hallo,
erstmal vielen Dank für dieses Modul. Ich habe es mir gerade angesehen und auf den ersten und zweiten Blick sieht es fabelhaft aus :-)
Was ich mich nur frage:
Ich habe bei uns einen Taster, mit dem ich (bisher etwas umständlich) meine Alarmanlage scharf oder unscharf (jeweils über "short") schalten konnte.
Ist es möglich, das direkt umzusetzen und ich habe das noch nicht gefunden, oder müsste ich mir 2 dummys (z.B. alarmOn und alarmOff) anlegen um das zu realisieren? ok, habe gerade gesehen, das vor einiger Zeit eine ähnliche frage gestellt wurde und das verneint wurde ;)
LG,
Selfarian
Hallo,
ich installiere gerade das Alarm_Modul mir ist da folgendes aufgefallen:
attr TFOpen.warn alarm4,|TFOpen.warn:.*[TF].*|$EVENT|on (Diese Zeile wird vom Modul 95_Alarm.pm automatisch erzeugt)
sollte bestimmt so aussehen
attr TFOpen.warn alarmSettings alarm4,|TFOpen.warn:.*[TF].*|$EVENT|on (Diese Zeile wird vom Modul 95_Alarm.pm automatisch erzeugt)
Bei mir wurde auch nichts automatisch erzeugt, habe es händisch eingetragen
Was bei mir kam als ich alarmSetings aufgerufen habe war "|||on" ohne Anführungszeichen
Gruß Werner 8)
Wenn man einen Fehler bemerkt, sollte man bitte dazu schreiben WO dieser aufgefallen ist. Meine Zeit reicht nicht aus, auch noch ein heiteres Zeilenraten durchzuführen.
Den Tippfehler im Wiki habe ich korrigiert, danke für den Hinweis.
Mit den beiden letzten Zeilen des Posts kann ich nichts anfangen.
LG
pah
Hallo,
ich verwende das Alarm Modul seit einiger Zeit an sich recht erfolgreich.
Ein lästiges Problem habe ich hier aber:
Ich lasse Alarme per E-Mail versenden und habe dafür ein Dummy Mail.Alarm Actor eingerichtet wie in der Beschreibung zum Modul.
Unter "Set Action" steht bei mir z.B.:
{ exmail('user@xxx.com','Meldung Alarm beendet',$defs{'AAA'}{READINGS}{"short"}{VAL}) }
Das funktioniert alles auch.
Wenn ich allerdings Änderungen in der Alarmanlage dauerhaft speichere (z.B. Alarm Level aktivieren/deaktivieren, Meldungstexte anpassen), also mit "Save Config" speichere,
wird mir immer der oben zitierte Befehl abgeschnitten, also
z.B.
{ exmail('user@xxx.com','Meldung Alarm beendet',$defs{'AAA'}{READINGS}{
{ exmail('user@xxx.com','Meldung Alarm',$defs{'AAA'}{READINGS}{
Die Länge des Befehls ist dabei unerheblich, es wird immer an der selben Stelle abgeschnitten.
Woran kann das liegen ?
Danke und Grüße aus Wien
Andreas
An der Verwendung von " zusammen mit '.
Besser verwenden:
ReadingsVal('AAA','short',0)
LG
pah
Danke, das funktioniert jetzt.
Aber es gibt wohl keine Möglichkeit, diese Werte an einen fhem befehl zu übergeben in der Form:
set pushalarm message Meldung Alarm ReadingsVal('AAA','short','0'))
Wobei "pushalarm" ein von mir definierter "pushbullit" Dienst ist, der prinzipiell funktioniert.
Bei oben genannter Befehlszeile wird ReadingsVal als Text mitgeschickt, aber nicht als ausgelesener Wert.
Hi
Ich hätte da mal ne Frage
Lässt sich bei dem Modul auch eine Art Voralarm realisieren?
Der Sinn des ganzen ist es einen Alarm zu qualifizieren.
Beispiel:
Der Türkontakt löst aus --> Alarm ... könnte aber auch ein Fehlalarm sein zum Beispiel von einem optischen Türkontakt.
Der Infrarotmelder an der Hausfront löst aus UND der Türkontakt an einem Fenster an der Hausfront löst aus --> Einbruchsmeldung mit zwei Bestätigungen, daher vertrauenswürdig.
Hintergrund des ganzen:
Ich möchte um mein Häuschen zwei "Ringe" bilden.
Einmal Bewegungsmelder rundherum und als zweiten Ring die Türkontakte.
Klingt etwas paranoid .... macht aber Sinn und ist nicht wirklich teuer.
Natürlich geht das.
Mein "Voralarm" ist ein MP3-Gong, der vor der Selbstvernichtung in 30 Sekunden warnt.
LG
pah
Hi, nach ewiger Zeit, bin ich jetzt auch endlich nochmal dazu gekommen das Modul zu definieren, aber bei Set Alarms kommt dann immer:
ZitatState locked, cannot create new notifiers
Im Wiki steht ja dazu das das Attribute lockstate des Moduls den Wert unlocked haben muss, das hab ich auch gesetzt, bekomme aber trotzdem die Meldung
Internals:
NAME Alarmanlage_Neu
NR 287
STATE 0
TYPE Alarm
VERSION 2.5
Readings:
2015-03-30 21:25:26 lockstate 0
2015-03-30 21:25:26 short 0
2015-03-30 22:12:38 state 0
Attributes:
armact set Android_Wohnzimmer ttsSay Alarm ist scharf
armdelay 02:00
armwait set Android_Wohnzimmer ttsSay Alarm wird in 2 Minuten scharf geschaltet
cancelact set Android_Wohnzimmer ttsSay Alarm zurückgesetzt
disarmact set Android_Wohnzimmer ttsSay Alarm ist unscharf
level0end 06:00
level0msg Einbruchalarm AN
level0start 22:10
level0xec disarmed
level1end 0
level1msg 0
level1start 0
level1xec disarmed
level2end 0
level2msg 0
level2start 0
level2xec disarmed
level3end 0
level3msg 0
level3start 0
.....
lockstate unlock
room Alarmanlage
Was mache ich noch falsch?
Hi Tommy,
set <alarmname> unlock
geht nicht? Es reicht nicht das Attribut zu setzen.
Damit gehts dann, danke
Hallo,
man kann ja z.b. eine Cancel Action definieren. Ich gebe hier aktuell z.B. via tts aus, das der Alarm widerrufen wurde.
Ist es möglich, hier noch einen Parameter o.ä. mitzugeben, das er mir sagt, welcher Alarm widerrufen (oder bezogen auf die anderen Einstellungen, aktiviert) wurde?
Hallo Experts,
das Alarm Modul ist wirklich Klasse. Macht alles viel einfacher und übersichtlicher. Leider bekomme ich es aber nicht hin, z. B. eine Lampe zu aktivieren, wenn ein Alarmlevel (ich hab erstmal nur ein definiert) "armed" geschaltet wurde. So steht es in den Attribs der AA:
armact set wz_Steinlampe Ein
armdelay 00:00
armwait 0
cancelact set AA_Status Canceled
disarmact set AA_Status Disarmed
In der Kommandozeile funktionieren sie alle perfekt.
Danke schon mal für einen Tip...
Viele Grüße
Markus
Hi,
ich hab jetzt mal eine erste Alarmanlage definiert, allerdings klappt diese noch nicht wie sie soll.
Ich möchte das meine 3 HM-SEC-RHS wenn sie in der festgelegten Uhrzeit (zu Testzwecken 11:12-12 Uhr) geöffnet werden einen Alarmauslösen, der meinen set FritzDect_Wohnzimmerschrank on setzt.
Allerdings passiert das nicht wenn ich ein Fenster in der angegebene Zeit öffne.
Die definition sieht so aus:
Internals:
NAME Alarmanlage_Neu
NR 287
STATE
TYPE Alarm
VERSION 2.5
Readings:
2015-04-03 14:05:17 level 0
2015-04-05 11:16:55 level0 off
2015-04-05 11:26:35 level6 0
2015-03-31 20:18:07 lockstate unlocked
2015-04-05 11:16:55 short
2015-04-05 11:25:02 state
Attributes:
armact set Android_Wohnzimmer ttsSay Alarm ist scharf
armdelay 02:00
armwait set Android_Wohnzimmer ttsSay Alarm wird in 2 Minuten scharf geschaltet
cancelact set Android_Wohnzimmer ttsSay Alarm zurückgesetzt
disarmact set Android_Wohnzimmer ttsSay Alarm ist unscharf
level0end 1
level0msg 1
level0offact set FritzDect_Wohnzimmerschrank off;
level0onact define alarm0dly1 at +00:02:00 set FritzDect_Wohnzimmerschrank on;
level0start 1
level0xec disarmed
level1end 0
level1msg 0
level1start 0
level1xec disarmed
level2end 0
level2msg 0
level2start 0
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 12:00
level6msg Einbruchalarm AN
level6start 11:12
level6xec armed
level7end 0
level7msg 0
level7start 0
level7xec disarmed
lockstate unlock
room Alarmanlage
statedisplay graphics
das erstelte notify sieht so aus:
Internals:
CFGFN
DEF (Fenster_neben_Couch:open)|(Fenster_ueber_Heizung:open)|(Terassen_Tuer:open) {main::Alarm_Exec("Alarmanlage_Neu",6,"$NAME","$EVENT","on")}
NAME alarm6.on.N
NR 3564
NTFY_ORDER 50-alarm6.on.N
REGEXP (Fenster_neben_Couch:open)|(Fenster_ueber_Heizung:open)|(Terassen_Tuer:open)
STATE active
TYPE notify
Readings:
2015-04-05 11:26:33 state active
Attributes:
group alarmNotifier
room Alarm
Was hab ich noch falsch gemacht?
Danke
EDIT Hab noch ein zweites neues Problem, wollte die Alarmanlage auf einem Floorplan pltzieren um darüber zu steuern, allerdings wird dann ein teil nicht angezeigt, sieht dann wie auf dem Screen aus
Keiner einen Tip für mich was ich falsch mache?
Bekomme auch noch diesen Fehler im Log:
2015.04.10 21:13:15.244 1: [Alarm 5] Will not be executed due to wrong time spec 0 for level5start
2015.04.10 21:13:15.296 1: define alarm6.off.N alarm6.off.N notify (set Powerline on) {main::Alarm_Exec("Alarmanlage_Neu",6,"$NAME","$EVENT","off")}: Bad regexp: Unmatched ( in regex; marked by <-- HERE in m/^( <-- HERE set$/ at ./FHEM/91_notify.pm line 43.
2015.04.10 21:13:15.305 3: Please define alarm6.off.N first
2015.04.10 21:13:15.314 3: Please define alarm6.off.N first
Mittlerweile wird der FritzDect zwar geschaltet wenn ich Alarmauslöse, aber mit ca. 2 Minuten verzögerung, welche ich aber nicht haben möchte!? Was mache ich da falsch?
Internals:
NAME Alarmanlage_Neu
NR 285
STATE Level 6 canceled
TYPE Alarm
VERSION 2.5
Readings:
2015-04-03 14:05:17 level 0
2015-04-05 11:16:55 level0 off
2015-04-10 21:34:06 level6 off
2015-03-31 20:18:07 lockstate unlocked
2015-04-10 21:34:06 short
2015-04-10 21:34:06 state Level 6 canceled
Attributes:
armact set Android_Wohnzimmer ttsSay Alarm ist scharf
armdelay 02:00
armwait set Android_Wohnzimmer ttsSay Alarm wird in 2 Minuten scharf geschaltet
cancelact set Android_Wohnzimmer ttsSay Alarm zurückgesetzt
disarmact set Android_Wohnzimmer ttsSay Alarm ist unscharf
level0end 1
level0msg 1
level0offact set FritzDect_Wohnzimmerschrank off;
level0onact define alarm0dly1 at +00:02:00 set FritzDect_Wohnzimmerschrank on;
level0start 1
level0xec disarmed
level1end 0
level1msg 0
level1start 0
level1xec disarmed
level2end 0
level2msg 0
level2start 0
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 06:00
level6msg Einbruchalarm AN
level6offact set FritzDect_Wohnzimmerschrank off;
level6onact define alarm6dly1 at +00:02:00 set FritzDect_Wohnzimmerschrank on;
level6start 23:00
level6xec armed
level7end 0
level7msg 0
level7start 0
level7xec disarmed
lockstate unlock
room Alarmanlage
statedisplay graphics
Hallo,
habe mein Problem zwei posts weiter oben selbst gelöst und wollt das gern teilen!
Es scheint so zu sein, dass die AA den Befehl für die "Armed action" nur ausführt, wenn der Delay nicht Null ist. Es muss also mind. 0:01 eingegeben werden, damit beim Scharfschalten der AA-Level z. B. eine Lampe geschaltet wird.
Hoffe das hilft anderen weiter, die über dieses Problem stolpern. Man könnte es ja auch im Wiki ergänzen.
Viele Grüße
Markus
@Octopyrox: Pardon, aber das ist Unsinn. Selbstverständlich kann man auch ohne Verzögerung scharf schalten.
pah
@Tommy82: die Fehlermeldung im Log besagt doch ganz eindeutig, worin der Fehler besteht. Vielleicht mal lesen ?
LG
pah
Hallo pah,
für die Set Action der Actors hast Du die Möglichkeit des jeweiligen Delays eingebaut. Wäre es Dir möglich, im Rahmen der Modul-Pflege die gleiche Möglichkeit auch für die Unset Action der Actors einzubauen?
Ich würde dies teilweise gerne nutzen, um das Clearing nach einer Zeitspanne nochmal zu prüfen bzw. Aktionen erst dann anzustoßen, wenn sich mögliche Häufungen von Funkkommandos beruhigt haben. Das Definieren von at mit relativer Zeitangabe, also "define dly at +00:00:03 xy" funktioniert in dem jeweiligen Unset-Feld nicht, weil das + bei "Set Alarms" rausgeworfen wird.
Ist sicher nachdenkenswert, m.E. aber ein Risiko.
Das eintragen eines "define at ...." in das Unset-Feld sollte aber poblemlos gehen, da wird nichts herausgeworfen. Kann höchstens sein, dass die Kiste über Anführungszeichen stolpert, Vlt. mal mit einfachen ' versuchen.
LG
pah
Danke.
Es gibt keine Anführungszeichen bei der Anweisung. Ich trage
define alarm3offdly at +00:00:03 {perl_funktion}
bei Unset Action ein. Nach "Set Alarms" wird das + durch ein Leerzeichen ersetzt. Die o.a. Anweisung wird auch ohne + in den Attributen gespeichert.
Aaah, das hatte ich nicht bedacht: Das Setzen der Alarmsettings aus dem Frontend geschieht über einen http-Request. In diesem werden die Parameter aber interpretiert (so, wie in einer URL-Angabe). Dabei wird '+' als Leerzeichen interpretiert.
Ich habe das in der Datei alarm.js gefixt, dabei wird einfach ein Pluszeichen vor der Übermittlung durch ein "%2B" ersetzt.
Bitte mal beobachten, ob wir noch andere Sonderzeichen in den Alarmsettings brauchen, die ggf. durch Ajax herausgeworfen werden.
LG
pah
Danke! Nach dem Update der alarm.js hat das Eintragen eines +-at nun funktioniert.
Klar funktioniert das, wenn ich es sage 8).
LG
pah
Hi, ich bin gestern erst in das Thema hier eingestiegen, und nachdem es ein paar Einbrüche in unserer Gegend gab, wollte ich meine FensterKontakte auch als Alarmanlage nutzen.
Eine Info habe ich aber nicht gefunden, wie kann ich die Alarmanlage scharf schalten?
commandref "Alarm" -> Abschnitt "Set"
Hallo pah!
Schönes Modul, danke erst einmal dafür!
Ich habe ein kleines Problem mit den Zeitangaben für das Delay bei den Aktoren.
Angaben von 0-59 werden ja als Sekunden interpretiert, das funktioniert auch einwandfrei.
Angaben in der Form mm:ss werden als Minuten und Sekunden interpretiert, das funktioniert auch, allerdings NICHT für 00:00!
Bei Eingabe von 00:00 (anstatt einer einfachen 0) wird der Befehl NICHT ausgeführt.
Da ich der Übersichtlichkeit gerne alle Zeiten in mm:ss eintragen würde ist das etwas unschön.
Du fragst in der 95_Alarm.pm nur auf die "0" ab, nicht auf eine "00:00" (Zeile 600), spricht etwas dagegen das auf die "00:00" zu erweitern? Dann würden beide Zeitangaben funktionieren.
if(( $aval[3] eq "0" )||($aval[3] eq "00:00")){
Gruß,
Andreas.
Werde ich bei Gelegenheit einbauen, danke für den Hinweis.
LG
pah
Nabend allerseits,
auch wenn´s Euch lächerlich vorkommt, ich weiß nicht wie ich
define alarm0.on.N alarm0.on.N notify (alarm_set on) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","on")}: Bad regexp: Unmatched ( in regex; marked by <-- HERE in m/^( <-- HERE alarm_set$/ at ./FHEM/91_notify.pm line 43.
Please define alarm0.off.N first
und
Please define alarm0.on.N first
bewerkstelligen soll. Wahrscheinlich habe ich ein "Verstehproblem" oder bin einfach zu doof dafür. Ich habe zum Testen jeweils einen Dummy Alarm_set, Alarm_reset und Alarm angelegt und will einfach nur schauen, ob bei Alarm_set on der Dummy Alarm auf on geht und bei Alarm_reset on wieder auf off.
Bei den Sensoren habe ich als Notify on Regexp Alarm_reset on bzw. Alarm_set on eingetragen, beim Aktor Alarm on. Level Alarm 0 ist von 0:00 bis 23:59 und scharf.
Das Setzen der Dummies kriege ich hin, dann hört´s aber auch schon auf.
MP
Hallo
Habe mir diese Tage mal das Modul angesehen. Hört sich soweit gut an.
Jedoch verstehe ich gerade nicht wie ich einen türkontakt zur Meldung bewegen kann....
Im log habe ich.....
2015-04-25_21:17:32 test_sc Activity: alive
2015-04-25_21:23:57 test_sc battery: ok
2015-04-25_21:23:57 test_sc contact: closed (to vccu)
2015-04-25_21:23:57 test_sc closed
2015-04-25_21:23:57 test_sc trigDst_vccu: noConfig
2015-04-25_21:23:57 test_sc trigger_cnt: 76
2015-04-25_21:24:11 test_sc battery: ok
2015-04-25_21:24:11 test_sc contact: open (to vccu)
2015-04-25_21:24:11 test_sc open
2015-04-25_21:24:11 test_sc trigDst_vccu: noConfig
2015-04-25_21:24:11 test_sc trigger_cnt: 77
2015-04-25_21:24:13 test_sc battery: ok
2015-04-25_21:24:13 test_sc contact: closed (to vccu)
2015-04-25_21:24:13 test_sc closed
2015-04-25_21:24:13 test_sc trigDst_vccu: noConfig
2015-04-25_21:24:13 test_sc trigger_cnt: 78
2015-04-25_21:45:27 test_sc Activity: alive
Bin irgendwie zu blöd dazu......
Stenny
Hi,
hab' das Modul auch erst gerade in Betrieb genommen, mit der Anleitung aus dem Wiki geht das aber eigentlich ganz gut...
Zitat von: stenny73 am 25 April 2015, 22:24:40
Hallo
Habe mir diese Tage mal das Modul angesehen. Hört sich soweit gut an.
Jedoch verstehe ich gerade nicht wie ich einen türkontakt zur Meldung bewegen kann....
Wäre nicht schlecht wenn Du Dein Problem näher beschreiben würdest...
Generell würde ich sagen, System nach Anleitung im Wiki aufsetzen, vor allem nicht vergessen die beiden attribute ("alarmDevice" und "alarmSettings") den globalen userattr HINZUZUFÜGEN. Dann dem Türkontakt bei seinem Attribut alarmDevice ein "Sensor" eintragen, dann erscheint der Kontakt in der Liste der Sensoren im Modul.
Dann (bei Deinem Kontakt) "test_sc:open" im Feld "Notify on RegExp" eintragen, Action = Raise und (fast) fertig. Für jeden Level MUSS ein Sensor mit Action = Cancel existieren, sonst werden die Eingaben NICHT übernommen. Dann oben im Modul auf "Set Alarms" klicken und schauen was ganz oben angezeigt wird. Vielleicht noch mal einen Reload der Seite machen um den Status zu sehen.
Falls Fehlermeldungen bzgl. "locked" kommen, Attribute "lockstate" von AAA nach Anleitung auf unlock setzen UND ein "set AAA unlocked" machen (wobei AAA der Name der Alarminstanz ist).
Mehr gibt die Glaskugel nicht her...
Gruß,
Andreas.
Guten Morgen...
Zitat von: mp am 25 April 2015, 18:49:03
Bei den Sensoren habe ich als Notify on Regexp Alarm_reset on bzw. Alarm_set on eingetragen, beim Aktor Alarm on. Level Alarm 0 ist von 0:00 bis 23:59 und scharf.
Du musst als Regexp "Alarm_set:on" bzw. "Alarm_reset:on" eintragen, also "Doppelpunkt" statt "Leerzeichen".
Dann sollten das Notify schon mal funktionieren. Allerdings wundert mich da etwas das der Name des Notify "alarm0.on.N" in der Definition zwei mal auftaucht, die Syntax wäre ja "define <name> notify <regex> <command>
define alarm0.on.N alarm0.on.N notify (alarm_set on) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","on")}
Kann es sein das Du da beim copy/paste der Fehlermeldung was doppelt kopiert hast? Ansonsten wäre das sehr merkwürdig...
Beim Actor muss in das Feld "Set Action" auch das "set" mit rein, also "set Alarm on". So wie Du es beschrieben hast steht bei Dir nur "Alarm on".
Gruß,
Andreas.
@A.Harrenberg
Hallo, hast vollommen recht, mein Problem war nicht wirklich gut beschrieben........
Zitat von: A.Harrenberg am 26 April 2015, 07:25:19
Hi,
hab' das Modul auch erst gerade in Betrieb genommen, mit der Anleitung aus dem Wiki geht das aber eigentlich ganz gut...
Wäre nicht schlecht wenn Du Dein Problem näher beschreiben würdest...
Generell würde ich sagen, System nach Anleitung im Wiki aufsetzen, vor allem nicht vergessen die beiden attribute ("alarmDevice" und "alarmSettings") den globalen userattr HINZUZUFÜGEN. Dann dem Türkontakt bei seinem Attribut alarmDevice ein "Sensor" eintragen, dann erscheint der Kontakt in der Liste der Sensoren im Modul.
Dann (bei Deinem Kontakt) "test_sc:open" im Feld "Notify on RegExp" eintragen, Action = Raise und (fast) fertig. Für jeden Level MUSS ein Sensor mit Action = Cancel existieren, sonst werden die Eingaben NICHT übernommen. Dann oben im Modul auf "Set Alarms" klicken und schauen was ganz oben angezeigt wird. Vielleicht noch mal einen Reload der Seite machen um den Status zu sehen.
Falls Fehlermeldungen bzgl. "locked" kommen, Attribute "lockstate" von AAA nach Anleitung auf unlock setzen UND ein "set AAA unlocked" machen (wobei AAA der Name der Alarminstanz ist).
Mehr gibt die Glaskugel nicht her...
Gruß,
Andreas.
Aber jetzt....
Hbe das Modul nach der Wiki in Betrieb genommen. Die Batterie Meldung funktioniert auch. Jedoch bekomme ich
einen Türkontakt nicht zu Auslössen des Alarms.
Attribute und alles vergeben, er taucht auch unter der Alarmanlage auf. auch das test_sc:open hatte ich vor meiner
ersten Anfrage versucht. Im Log selber taucht der Türkontakt auch auf, nur das Modul will mir nicht reagieren......
Da ich aber heute leider unterwegs bin kann ich vorerst da nichts testen.
stenny
Hallo Andreas,
habe mich bei der Fehlermeldung nicht vertan, die steht so drin. Ich habe jetzt mal das gemacht, was Du geschrieben hast, leider ändert sich nix. Muss ich vielleicht noch irgendwo was ändern, definieren, trallala?
Gruß MP
Edit: Es hat sich was geändert. Geht zwar immer noch nicht, aber die einzige Fehlermeldung ist jetzt 2015.04.26 10:53:59 1: [Alarm 0] not raised, alarmSensor alarm_set has wrong settings
Hi MP,
Zitat von: mp am 26 April 2015, 10:48:06
Hallo Andreas,
habe mich bei der Fehlermeldung nicht vertan, die steht so drin. Ich habe jetzt mal das gemacht, was Du geschrieben hast, leider ändert sich nix. Muss ich vielleicht noch irgendwo was ändern, definieren, trallala?
Gruß MP
welche Version vom Modul nutzt Du? ("get AAA version" falls Du den Namen aus dem Wiki übernommen hast) Aktuell wäre Version 2.5
Vielleicht mal ein "update all" machen?
Die Notifications werden vom Modul ja automatisch angelegt sobald man "SetAlarms" drückt, da dürfte es eigentlich nicht zu so einer verdopplung des Namens kommen...
Kannst Du das ganze noch mal neu in "Alarm 1" eintragen und schauen ob es die gleiche Fehlermeldung dann für alarm1.on.N gibt? Vielleicht auch mal ein "list AAA" (oder wie auch immer die Instanz von dem Alarmmodul heisst) machen und posten. (als code -> "#")
Gruß,
Andreas.
Hallo
erstmal Danke das du dein Wochenende hier für mich Opferst.....
Natürlich ein Update vorher gemacht, dasist bei Probleme immer das erste..... Ist die 2.5er
Da mir das aber auch keine Ruhe gelassen hat sitze ich an einem PC vom Kollegen..... (Remote ist machmal ein
Fluch und machmal ein Segen......)
Glaube habe den Fehler gefunden, sieht aus als wenn die Delay Zeit aus irgend einm Grund nicht wollte.
Habe gerade alles nochmal angsehen, Habe die Delay Zeit von "10" Sekunden auf "00:10" geändert und
jetzt scheint es zu gehen (kann hier jetzt nur per trigger testen).
stenny
Hi Andreas,
Internals:
NAME Alarmanlage
NR 64
STATE 0
TYPE Alarm
VERSION 2.5
Readings:
2015-04-25 18:14:19 level 0
2015-04-26 07:11:48 level0 off
2015-04-25 18:11:09 lockstate unlocked
2015-04-26 07:11:48 short 0
2015-04-26 11:21:32 state 0
Attributes:
armact set scharf on
armdelay 0
armwait 1
cancelact 1
disarmact 1
level0end 23:59
level0msg 0
level0offact 1
level0onact set alarm on;
level0start 00:01
level0xec armed
level1end 0
level1msg 0
level1start 0
level1xec disarmed
level2end 0
level2msg 0
level2start 0
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
Hier die Zeilen aus der fhem.cfg für alarm_set
define alarm_set dummy
attr alarm_set alarmDevice Sensor
attr alarm_set alarmSettings alarm0,|alarm_set:on||on
Danke Dir, dass du Dich damit beschäftigst.
Matthias
Hi Stenny,
Zitat von: stenny73 am 26 April 2015, 11:22:15
Glaube habe den Fehler gefunden, sieht aus als wenn die Delay Zeit aus irgend einm Grund nicht wollte.
Habe gerade alles nochmal angsehen, Habe die Delay Zeit von "10" Sekunden auf "00:10" geändert und
jetzt scheint es zu gehen (kann hier jetzt nur per trigger testen).
Zahlen von 0 bis 59 werden als Sekunden interpretiert, 10 sollte als Delay also gehen, hatte ja gerade ein paar Posts weiter oben ein kleines Problem mit dem Delay und hatte mir das etwas genauer angesehen. Was momentan (noch) nicht geht ist 00:00, hier muss man (noch) 0 schreiben.
Aber schön wenn es jetzt gehen sollte.
Gruß,
Andreas.
Hi Matthias,
Zitat von: mp am 26 April 2015, 11:23:02
define alarm_set dummy
attr alarm_set alarmDevice Sensor
attr alarm_set alarmSettings alarm0,|alarm_set:on||on
Du hast keinen "Message Part I" definiert, und so wie ich das im Code verstehe wird das abgefragt und darf nicht leer sein.
Kannst Du da mal irgendeinen Text (allerdings ohne das "|" Zeichen) eingeben und schauen ob es dann funktioniert?
Gruß,
Andreas.
Hi Andreas,
jetzt klappt es :), wäre ich nie drauf gekommen.
Ich schalte scharf (mit dem Häkchen), löse "alarm_set" aus und "alarm" geht auf on. Ich löse "alarm_reset" aus und Alarm Cancelled steht im Log, aber "alarm" ist immer noch on. Schärfen mit Delay 0 oder 1 geht bei mir nicht 00:00 auch nicht. Nur 00:01 oder so schärft wieder.
Was muss ich tun, damit der gesetzte Alarm auch wieder aus geht?
Im Normalfall (ich mach das beruflich) muss ich vorm Reset entschärfen. Hab ich auch versucht, klappt aber nicht, "alarm" bleibt on.
Edit: Hab jetzt alles nochmal rausgeschmissen und neu gemacht, weiß ja ,dank Dir, wie´s geht :). Jetzt setzt es den Alarm zurück, wie es sein soll. Das Delay habe ich auf 00:01 gelassen, so funktioniert es.
Ich danke Dir, dass Du mir Noob bissel auf die Sprünge geholfen hast.
Schönen Sonntag noch
Matthias
Hallo pah,
in irgendeinem Posting wieder oben hattest du mal geschrieben, dass der öffentliche Raum "Alarm", in dem z.B. die generierten Notifies liegen, im Modulcode je nach Gusto umbenannt werden kann bzw. ein anderer, vorhandener Raum gewählt werden kann. Ich würde das bei mir aus Homogenitätsgründen gerne machen, da ich gerne alle Notifies in einem Raum gesammelt habe.
Wenn ich nun aber im Code den Raum ändere, dann wird diese Änderung ja aller Wahrscheinlichkeit nach beim nächsten Update des Moduls wieder überschrieben. Oder irre ich hier?
Gäbe es in diesem Falle hier eventuell eine Möglichkeit den Raumnamen durch ein Attribut frei wählbar zu machen? Ähnlich dem Attribut "room"?
Gruß
Wolle
Hallo pah!
Ich wollte die Statusmeldungen von dem Alarmmodul in einer "ReadingsHistory" anzeigen lassen, der State taucht dort aber nicht auf... Über den Autor von ReadingsHistory (Justme1986) bin ich dann darauf gekommen das die Statusmeldungen auch nicht im Eventmonitor erscheinen. Dadurch bin ich dann darauf gekommen in Deinem Code nach "state" zu suchen...
Im Code wird der state per readingsSingleUpdate mit einer 0 als letztem Parameter für $dotrigger gesetzt, würde etwas dagegen sprechen hier eine 1 zu verwenden? Dann kommen die Updates auch als Event und können von ReadingsHistory verarbeitet werden.
Ich habe das bei mir testweise mal lokal für die state-updates gemacht und das scheint problemlos zu funktionieren, soweit ich das nach ein paar Stunden beurteilen kann.
Gruß,
Andreas.
@A.Harrenberg: Auch das ist eine sinnvolle Ergänzung, ist im nächsten Update drin.
@Wolle02: No, Sir. Habe ich eigentlich nicht vor, weil das größere Änderungen am Modul nach sich zieht - Attribute sollten nämlich eigentlich auch per Webinterface setzbar sein.
LG
pah
ZitatNo, Sir. Habe ich eigentlich nicht vor, weil das größere Änderungen am Modul nach sich zieht - Attribute sollten nämlich eigentlich auch per Webinterface setzbar sein.
Schade. Ich dachte, dass das für dich ein Klacks wäre.
Aber vielleicht kannst du mir ja bei einem anderen Problem helfen:
Ich probiere gerade mit dem Modul herum und habe zum Ausprobieren mal einen Einbruchsalarm auf Level 6 versucht zu erstellen, der automatisch scharf geschaltet wird, wenn wir nicht da sind und automatisch disarmed wird, wenn wir wieder anwesend sind. Als Sensoren habe ich meine Tür-/Fensterkontakte und einen Bewegungsmelder integriert. Als Actor dient momentan einfach nur ein Dummy.
Das Setting habe ich im Anhang mal angehängt.
Wenn der Dummy für 'EinerAnwesend' nun auf 'Nein' schaltet sollte die Anlage ja nun scharf geschaltet werden. Leider funktioniert das nicht und ich bekomme folgende Fehlermeldung:
[Alarm 6] cannot be armed due to wrong delay timespec
Hier steh ich nun auf dem Schlauch. Welcher Delay timespec ist denn in meinem Setting falsch? Ich habe eigentlich gar kein Delay angegeben und alles auf 0 gelassen. Die Einsen bei den Actionfeldern oben hat das Modul auch selber eingetragen, weil ich die Felder einfach offen gelassen hatte, da dort keine Aktion gewünscht.
Was übersehe ich hier? Für einen Fingerzeig wäre ich dankbar.
Danke und Gruß
Wolle
Hallo Wolle,
also an der Stelle ist eine "0" nicht zulässig...
if( ($xdl eq '')|($xdl eq '0:00')|($xdl eq '00:00') ){
CommandAttr(undef,$name.' level'.$level.'xec armed');
$msg = "[Alarm $level] armed from device $dev with event $evt";
Log3 $hash,3,$msg;
} elsif( $xdl =~ /([0-9])?:([0-5][0-9])?/ ){
Du kannst 0:00 oder 00:00 schreiben, Leerlassen sollte auch gehen. Falls man eine Zeit angeben möchte scheint er die Minuten ein- und zweistellig zu akzeptieren, wobei ich die Regex an der Stelle nicht wirklich verstehe...
Edit: Das mit "0" und "00:00" ist im Modul nicht einheitlich, pah wollte das aber in einer der nächsten Versionen ändern.
Ich würde ja eigentlich sagen es geht nur einstellig, der Versuch zeigt aber das auch zweistellige Werte einwandfrei gehen -> Zeit sich mal näher mit Regex zu beschäftigen ,-)
Gruß,
Andreas.
Hallo Andreas,
danke für deine Hilfe.
Zitatalso an der Stelle ist eine "0" nicht zulässig...
Ok, aber an welcher Stelle? Beim Delay unter Settings oder beim Delay beim Actor?
Egal, ich probiers einfach mal aus 8)
Gruß
Wolle
Hallo Wolle,
sorry, noch mehr Verwirrung gestiftet...
Also das Delay oben (Wait Action -> Arm Action) akzeptiert keine "0", sondern nur die "0:00", "00:00", "" oder eine echte Zeitangabe.
Die Delays bei den "Set by Alarm Level" akzeptieren keine "00:00", sondern benötigen eine "0" (oder eine echte Zeitangabe).
Gruß,
Andreas.
Oh Mann, super, ich danke dir. Ich hatte auch rumprobiert und es kam noch mehr Verwirrung rein, denn das Modul hat dann beim Delay bei Settings eine 1 eingetragen als ich die 0 gelöscht hatte.
Als ich beim Delay beim Actor die 0 rausgelöscht habe hat mir das Modul einfach die "Set Action" und "Unset Action" Anweisungen gelöscht ;D
Aber so wie von dir geschrieben mit 00:00 oben und 0 unten scheint es nun zu gehen. Morgen teste ich nochmal den Automatismus.
Ich danke dir!
Gruß
Wolle
wenn ich die generierten Meldungen in einer ReadingsHistory mit "loggen" möchte (der String befindet sich im Reading "short" des Alarm Moduls), wie muss der set-add Befehl dazu aussehen?
Ich benutze dazu einen Actor und würde den Befehl in Set Action einbauen wollen: set rh.alarms add <??>
Vielen Dank!
Hi,
entweder warten bis pah das Modul so umbaut das Du es normal loggen kannst, oder so:
{my $tmp=ReadingsVal("AAA", "short", "ndef");;fhem ("set rh.alarms add $tmp");;}
Bin jetzt auch nicht der erfahrendste Anwender, ich dachte zuerst man könnte einfach:
set rh.alarms add {ReadingsVal("AAA", "short", "ndef");;}
verwenden, das funktioniert aber nicht.
Gruß,
Andreas.
set rh.alarms add {ReadingsVal("AAA", "short", "ndef");;}
exakt so sieht meine aktuelle Variante aus!
Vielen Dank!
Nachtrag:
Bei Set Alarms schneidet mir das Modul ständig einen Teil des Syntax ab:
alarmSettings alarm0,alarm1,alarm2,|{my $tmp=ReadingsVal(||0 deleteattr
trage ich dann den Code direkt in den Actor ein, wird mir im Alarm Modul auch nur der Part bis zum "(" angezeigt
Hi,
und das funktionier bei Dir?
Bei mir schreibt er dann einfach das "ReadingsVal.." als String da rein und nicht den Inhalt des Readings.
Jetzt bin ich verwirrt warum das bei mir dann nicht funktioniert...
Gruß,
Andreas.
es funktionierte nicht, deshalb auch meine Anfrage hier im Forum
Hi,
achso, dann war das ein Missverständnis.
Meine andere Variante funktioniert aber, das habe ich hier eben ausprobiert. Die legt das Reading in einer temporären Variable ab und setzt dann den fhem Befehl ab.
Wahrscheinlich muss man bei der anderen Variante irgendwelche Zeichen "escapen" oder ' einfügen damit es geht... Vielleicht kann ja mal ein erfahrener Anwender hier erklären warum das so nicht funktioniert.
Gruß,
Andreas.
Bei Set Alarms schneidet mir das Modul ständig einen Teil des Syntax ab:
alarmSettings alarm0,alarm1,alarm2,|{my $tmp=ReadingsVal(||0 deleteattr
trage ich dann den Code direkt in den Actor ein, wird mir im Alarm Modul auch nur der Part bis zum "(" angezeigt
so sieht der Eintrag unter Alarm Settings im Actor aus wenn ich den Code direkt im Actor eingebe:
alarm0,alarm1,alarm2,|{my $tmp=ReadingsVal("alarm.AlarmModul");;}||0
so unter Set Action im Modul:
{my $tmp=ReadingsVal(
' statt " verwenden.
LG
pah
vielen Dank!
Nachtrag: Leider hilft das auch nicht ganz, der Code wird zwar jetzt im Modul komplett angezeigt... nur
{my $tmp=ReadingsVal('alarm.AlarmModul', 'short', 'ndef');;fhem('set rh.alarms add $tmp');;}
sollte zu folgendem Output in der History führen: Test-Wetter - Device Nr. 1, 2°C: Frost - warnung
leider steht in der History nur: 30 Apr 2015 23:11:11 $tmp
Hi,
hmm, stimmt, ich habe das nicht in die Set-Action für einen Alarm_Aktor eingetragen sondern einfach als Befehl in die Kommandozeile getippt... Da scheint es noch Unterschiede zu geben.
Sorry, da kann ich dann auch erst mal nicht weiterhelfen.
Gruß,
Andreas.
::)
Was bitte soll das 'ndef' als dritter Parameter bei ReadingsVal sein ?
Und warum so kompliziert mit lokaler Variablen und nicht einfach
{fhem('set rh.alarms add '.ReadingsVal('alarm.AlarmModul', 'short',undef))}
Ein Blick in eine Perl-Doku wäre manchmal ganz hilfreich.
pah
Hallo pah,
Zitat von: Prof. Dr. Peter Henning am 01 Mai 2015, 10:28:53
::)
Was bitte soll das 'ndef' als dritter Parameter bei ReadingsVal sein ?
Ich habe das als Defaultvalue der Funktion eingesetzt. [ReadingsVal(<devicename>,<reading>,<defaultvalue>)] Was ist daran nicht korrekt? Darf man da nichts explizit als String übergeben? Ich wollte also das Wort "ndef" (für "nicht definiert") angezeigt bekommen wenn was nicht in Ordnung ist.
Zitat von: Prof. Dr. Peter Henning am 01 Mai 2015, 10:28:53
Und warum so kompliziert mit lokaler Variablen und nicht einfach
{fhem('set rh.alarms add '.ReadingsVal('alarm.AlarmModul', 'short',undef))}
Ein Blick in eine Perl-Doku wäre manchmal ganz hilfreich.
pah
Tja, als "Anfänger" ist das halt alles etwas try-and-error...
Der erste Versuch mit <set rh.alarms add {ReadingsVal("AAA", "short", "ndef");;}> hat ja gar nicht funktioniert, da hier das Vermischen von fhem Befehlen und dem Perl-Teil in {} nicht funktioniert. Ich war davon ausgegangen das der Perl-Teil "seinen" String zurückmeldet und der set befehl dann mit diesem Wert ausgeführt wird.
Dann habe ich versucht das ganze in Perl Syntax mit fhem Befehl zu packen, aber auch dort wurde das ReadingsVal nicht aufgelöst (da ich es mit in den fhem Befehl geschrieben hatte). Mit der lokalen Variable ging es dann erst einmal, aber mit den doppelten Anführungszeichen funktioniert das dann wieder nicht in dem Set-Actor Feld.
Wenn ich mir jetzt Deine Lösung anschaue stelle ich für mich fest: Der "Trick" wäre gewesen den Befehlsstring für fhem hinter dem add zu beenden und dann das ReadingsVal anzuhängen. Insofern habe ich jetzt wieder etwas im Umgang mit FHEM gelernt.
Allerdings behaupte ich jetzt mal das mir an der Stelle eine Perl-Doku nicht viel genutzt hätte. Zumindest bei mir fehlt(e) an der Stelle eher das Verständnis wann man jetzt auf fhem-ebene und wann man auf perl-ebene ist. Wobei ich nicht abstreiten möchte das ich öfter mal eine Doku schauen könnte... ;-)
Hättest Du denn eine Empfehlung für eine gute Perl-Doku? Ich habe hier in Papier nur die O'Reilly Perl 5 (kurz&gut) Version, die ist meiner Meinung nach selbst zum Nachschlagen nicht wirklich geeignet. Ansonsten schaue ich mir die Syntax online z.B. hier http://www.tizag.com/perlT/index.php (http://www.tizag.com/perlT/index.php) an.
Was ich jetzt allerdings immer noch nicht begriffen habe ist, warum das in der Befehlszeile funktioniert und das Reading in die History geschrieben wird, bei Ausführung über das set-actor Feld dann wieder nur "$tmp" eingetragen wird.
{my $tmp=ReadingsVal('alarm.AlarmModul', 'short', 'ndef');;fhem('set rh.alarms add $tmp');;}
Wenn ich das gelernte umsetze und das so anpasse
{my $tmp=ReadingsVal('alarm.AlarmModul', 'short', 'ndef');;fhem('set rh.alarms add ' .$tmp);;}
funktioniert es auch wieder, erklärt aber nicht wo der Unterschied ist ob der Befehl in das Befehlsfenster eingegeben wird oder intern über einen fhem Befehl ausgeführt wird.
Gruß,
Andreas.
{fhem('set rh.alarms add '.ReadingsVal('alarm.AlarmModul', 'short',undef))}
klappt wunderbar aus der Kommandozeile, bewirkt alleine in 'Set Action' leider nichts. Was noch fehlt ist eine Verzögerung von 1 Sekunde. Allem Anschein nach wird "short" erst nach dem Abarbeiten der Set Actions generiert.
Um das ganze einfacher zu gestalten und möglicherweise haben andere ja auch ein Interesse daran... besteht die Möglichkeit dem Modul eine Historie hinzuzufügen?
Hintergrund: Meine Konfiguration sieht folgendermaßen aus...
Alarm-Level 0 sind bei mir Warnungen wie z.B. Frost Warnung, schwache Batterien u.s.w.
Alarm-Level 1 sind Ausfälle von Komponenten / Devices wie z.B. SCC, Heizungsregler u.s.w.
Alarm-Level 1 sind Systemstörungen wie z.B. Switch oder ähnliches
Die Text Parts in Message I und II sind so gestaltet dass beim Auslösen eines Alarms immer schlüssige Mitteilungen ausgegeben werden. Dummerweise können derartige Mitteilungen aber auch durch einen Alarm auf einen anderen Level oder dem "Canceln" eines Alarms (geht bei bestimmten Komponenten bei mir auch automatisch) überschrieben werden.
Grundsätzlich kann man sich eine solche Historie auch mit den Notifiers der Device Detektoren generieren, nur habe ich ja bereits eine Konfiguration im Alarm Modul die einigermassen aussagekräftig ist.
Als Beispiel hier mal ein Test-Device für Wetter (anders kann ich gerade keine Frostwarnung generieren)
01 May 2015 15:50:03 Test-Wetter - Device Nr. 1, 1°C: Frost - warnung
Hi,
Ich würde vorschlagen das Du übergangsweise den Delay nutzt.
Wenn pah wie angekündigt die Readings im Modul anpasst, dann kannst Du Dir das alles sparen und das einfach direkt im ReadingsHistory Modul angeben.
Ich habe mir die Änderung für den state (nicht für short) mal selber lokal gemacht und bei mir sieht die ReadingHistory dann z.B. so aus:
Fr 2015-05-01 16:58 AAA OOOOOOOO
Fr 2015-05-01 16:48 AAA OOOOOOOO
Fr 2015-05-01 16:47 AAA OOOOOOOO Level 6 canceled
Fr 2015-05-01 16:47 AAA OOOOOOXO Haustuer geoeffnet Einbruchalarm
Fr 2015-05-01 16:44 AAA OOOOOOOO
Fr 2015-05-01 16:37 AAA OOOOOOOO
Fr 2015-05-01 16:35 AAA OOOOOOOO Level 6 canceled
Fr 2015-05-01 16:35 AAA OOOOOOXO Haustuer geoeffnet Einbruchalarm
Fr 2015-05-01 15:56 AAA OOOOOOOO
Fr 2015-05-01 15:34 AAA OOOOOOOO Level 6 canceled
Fr 2015-05-01 15:33 AAA OOOOOOXO Haustuer geoeffnet Einbruchalarm
Fr 2015-05-01 15:33 AAA OOOOOOOO
Fr 2015-05-01 15:32 AAA OOOOOOOO
Fr 2015-05-01 15:30 AAA OOOOOOOO Level 6 canceled
Fr 2015-05-01 15:30 AAA OOOOOOXO Haustuer geoeffnet Einbruchalarm
Fr 2015-05-01 15:29 AAA OOOOOOOO
Fr 2015-05-01 15:27 AAA OOOOOOOO
Fr 2015-05-01 15:27 AAA OOOOOOOO Level 6 canceled
Fr 2015-05-01 15:27 AAA OOOOOOXO Haustuer geoeffnet Einbruchalarm
Fr 2015-05-01 15:27 AAA OOOOOOXO Haustuer geoeffnet Einbruchalarm
Die "leeren" Eintrage werden immer dann erzeugt wenn man die Alarms-Seite aufruft, das kriegt man im Code aber sicherlich auch noch weg...
Und keine Angst, so oft wird bei mir nicht eingebrochen, ich "trigger" das immer um meinen MP3-Gong auszuprobieren... ,-)
Gruß,
Andreas.
Hi, ich versuche über doif einen Dummy zu schalten der mir den Status des Alarmlevels 6 zeigt, allerdings klappt das nicht und ich finde den Fehler nicht, hoffe hier hat einer eine idee
Internals:
CFGFN
DEF ([Alarmanlage_Neu:level6] eq "on") (set Status_Alaram on) DOELSE (set Status_Alaram off)
NAME doif_Status_Alarmanlage
NR 15065
NTFY_ORDER 50-doif_Status_Alarmanlage
STATE ???
TYPE DOIF
Condition:
0 ReadingValDoIf('Alarmanlage_Neu','level6','') eq "on"
Devices:
0 Alarmanlage_Neu
all Alarmanlage_Neu
Do:
0 set Status_Alaram on
1 set Status_Alaram off
Helper:
last_timer 0
sleeptimer -1
Itimer:
Readings:
0 Alarmanlage_Neu:level6
all Alarmanlage_Neu:level6
State:
Attributes:
Internals:
NAME Alarmanlage_Neu
NR 268
STATE 0
TYPE Alarm
VERSION 2.5
Readings:
2015-04-03 14:05:17 level 0
2015-04-05 11:16:55 level0 off
2015-04-10 21:34:06 level6 off
2015-03-31 20:18:07 lockstate unlocked
2015-04-10 21:34:06 short 0
2015-05-01 16:01:58 state 0
Attributes:
armact set Android_Wohnzimmer ttsSay Alarm ist scharf
armdelay 02:00
armwait set Android_Wohnzimmer ttsSay Alarm wird in 2 Minuten scharf geschaltet
cancelact set Android_Wohnzimmer ttsSay Alarm zurückgesetzt
disarmact set Android_Wohnzimmer ttsSay Alarm ist unscharf
level0end 1
level0msg 1
level0offact set FritzDect_Wohnzimmerschrank off;
level0onact define alarm0dly1 at +00:02:00 set FritzDect_Wohnzimmerschrank on;
level0start 1
level0xec disarmed
level1end 0
level1msg 0
level1start 0
level1xec disarmed
level2end 0
level2msg 0
level2start 0
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 06:00
level6msg Einbruchalarm AN
level6offact set FritzDect_Wohnzimmerschrank off;
level6onact define alarm6dly1 at +00:02:00 set FritzDect_Wohnzimmerschrank on;
level6start 23:00
level6xec armed
level7end 0
level7msg 0
level7start 0
level7xec disarmed
lockstate unlock
room Alarmanlage
statedisplay graphics
Internals:
NAME Status_Alaram
NR 284
STATE ???
TYPE dummy
Attributes:
Danke
Hallo ,
zunächst ein Riesenlob an den Entwickler dieses tollen Moduls.
Ich bin Anfänger im Umgang mit fhem und erst Recht im Umgang mit dem Alarmmodul. Dennoch ist mir schon viel gelungen und auch die
Alarmanlage läuft schon in groben Zügen. Allerdings weiss ich nicht ob das folgende Verhalten "as designed" ist. Mein Wunsch wäre ein etwas
anderes Verhalten, jedoch gelingt es mir nicht dies per Konfiguration hin zu bekommen.
Also:
Tür geschlossen -> arm setzen -> alles ok. Wenn Tür geöffnet, dann Alarm
Aber:
Tür offen -> arm setzen, Anlage ist scharf -> nun müßte doch Alarm ausgelöst werden, aber dieser kommt erst nachdem dir Tür geschlossen
und dann wieder geöffnet wird, also einmal ein Signalwechsel durchgeführt wurde.
wär dankbar für einen Lösungsvorschlag
viele Grüße
Bernd
Wenn die Scharfschaltung erst durch das Öffnen der Tür erfolgt, kann natürlich erst beim nächsten Öffnen der Tür ein Alarm ausgelöst werden
Die Scharfschalttung muss also logischerweise vorher erfolgen.
LG
pah
Hallo Peter,
Danke für die schnelle Antwort.
Sorry, ich hab mich unpräzise ausgedrückt,
ich schrieb: Tür offen -> arm setzen, Anlage ist scharf ...
hätte exakter wie folgt formulieren müssen:
zu überwachende Tür ist offen.
In diesem Zustand wird mit einem Taster, der unter "Sensors" mit "arm" konfiguriert ist, scharf geschaltet.
Darf ich dann erwarten, dass der Alarm kommt?
Es funktioniert ja alles, wenn die Tür bei Scharfschaltung geschlossen ist
vielen Dank
und Grüße
Bernd
::) Natürlich funktioniert das nicht. Solange sich am Türzustand nichts ändert, wird doch kein Event ausgelöst, den die Alarmanlage feststellen könnte !
Ggf. einfach eine periodische Abfrage des Türzustandes ausführen und diesen Timer als Alarmsensor benutzen.
LG
pah
Danke für die prompte Hilfe,
Gruß
Bernd
Hallo pah, kannst du mir etwas auf die Sprünge helfen wieso ich mein Problem oben nicht gelöst bekomme?
Danke
Hallo zusammen,
wurde das Modul in der letzten Zeit aktualisiert? Ich habe bisher immer einen Sensor für das Raise genutzt und einen fürs Cancel, das Raise funktioniert immer noch... das Cancel leider nicht mehr.
Gruß!
Nachtrag:
war nur ein verirrtes Leerzeichen...
Bin rein zufällig über dieses Modul gestolpert. Und wirklich absolut positive überrascht. Der Name "Alarm" läßt die Möglichkeiten, die damit gegeben sind gar nicht komplett einschätzen. Ich glaube, das ist genau sowas, was ich beispielsweise für die für die Zukunft geplante Gartenbewässerung noch brauche (wenn doch endlich die aktuelle mal kaputt ginge >:()
Mein Tipp: Gardena kaufen - ist garantiert in jedem Frühjahr kaputt.
LG
pah
Tja, Gardena läuft bei mir leider seit 6-8 Jahren ....
Oh, teilweise schon. Aber die doofen Sprinklerdüsen des Mikrosystems sind in jedem Frühjahr zum Teil im Eimer.
Im Backend läuft bei mir: 4 x Gardena 24 V Ventil, geschaltet über FS20
LG
pah
Jetzt kommen wir ab vom Thema, aber der Satz sei noch genemigt: Mein "System" ist bisher recht einfach: Bewässerungscomputer - Verteiler - Bodenfeuchtesensor - Standard-Wischsprinkler (oder wie er auch wirklich heißen mag).
Wird bisher im Herbst eingemottet und im Frühsommer wieder ausgepackt. Man merkt aber schon, dass nach und nach alles verkalkt und nicht mehr so zuverlässig läuft - kann mich mit Deiner Aussage also durchaus anfreunden und merke mir: Mikrosystem will überdacht werden...
Ein Kritikpunkt allgemeiner Form vielleicht:
M.E. ist ein Name wie "Alarm" für so ein mächtiges Tool eigentlich nur bedingt geeignet. Das hat zwei Gründe:
1. Wie ich oben angedeutet habe, lässt er den Umfang der Möglichkeiten nicht mal annähernd abschätzen (mein erster Gedanke: Ach, ein Wecker ...)
2. Im Rahmen einer Recherche kommt sehr vieles zutage, was nichts mit dem Modul zu tun hat. Schon im Wiki gibt es die zwei Einträge: "Alarmanlage" und "Modul Alarmanlage" - ja ich weiß: Jemand, der sich an FHEM wagt ist bestimmt in der Lage, hier zwei Einträge noch zu bewältigen ;)).
Ansonsten: Bin die 22 Seiten Forum und das Wiki jetzt durch und werde mich, sobald Zeit ist, auch an die Umsetzung machen.
Diese Kritik weise ich zurück. Ich setze das als Alarmanlage ein, so ist es konzipiert und wird es gepflegt.
Das Problem mit dem Wiki ist bekannt, irgendwann wird das auch gelöst.
pah
ich hätte da dann noch mal eine Anregung...
wird z.B. eine Batteriewarnung ausgelöst, dann habe ich folgende Readings:
level0 warning.Battery.low
und
short Test-Batterie - Device Nr. 1: Batterie - warnung
wird jetzt ein weiterer Alarm z.B. auf Level 1 ausgelöst, dann wird 'short' mit dem Namen des Auslösenden Devices samt neuem Message Part I und II überschrieben. Bei manchen Warnungen würde ich gerne den Alarm auf dem jeweiligen Level zurücksetzten, falls das auslösende Device z.B. den Batterie Status von low auf ok zurück wechselt; z.B. nach dem Austausch der Batterie. Das aber auch nur wirklich dann, wenn es das auslösende Device gewesen ist. Dazu benötigt man aber auch Informationen zum Device die nicht überschrieben werden können.
Besteht die Möglichkeit neben dem level 0..7 noch zusätzliche Informationen zum Device pro Alarm Level zu speichern? Im Grunde könnte man natürlich auch level 0..7 direkt mit dem Device Namen füllen, nur müsste man dann für jedes Device einen eigenen Device-Detector erstellen.
Gruß!
Andersherum denken.
Ich habe diverse Watchdogs laufen, um Devices (oder Batterielevel) zu überwachen. Alle wirken sie gemeinsam auf einen dummy-Alarmsensor "Device.warn" ein, und dieser löst den Alarm Level 3 aus.
Es gibt ferner einen dummy-Alarmactor "Device.action", der in Level 3 den $EVENT übergeben bekommt. Die ausgelöste Aktion ist der Aufruf einer Perl-Prozedur, die dann z.B. je nach Gerät eine andere Warnungsmeldung auf das Tablet ausgibt.
Das Alarm-Modul ist also nur die Spinne in der Mitte des Netzes.
LG
pah
beim watchdog besteht nur leider das Problem für jedes Device ein watchdog zu definieren.
Aber jetzt mal grundsätzlich zur watchdog Lösung... wie funktioniert das genau? Das ist dann mein erster Ausflug in die Definition des watchdog.
Wenn ich ein watchdog definiere z.B. wie folgt
define TEST watchdog <Device>.battery.low 00:05:00 <Device>.battery.ok <Trigger battery Event>
würde, für den Fall dass 5 Minuten nachdem am Device eine schwache Batterie gemeldet wurde, erneut geprüft ob die Batterie weiterhin schwach ist und eventuell ein Event bezüglich der Batterie angestoßen?
Gruß!
Oh sorry, mit Watchdog ist nicht notwendigerweise eine Instanz des Watchdog-Moduls gemeint.
Für Batterien geht das viel einfacher
#-- Batteriewarnung alle Geräte
define LBatt.N notify .*:[Bb]attery.*[Ll]ow.* set LBatt.warn $NAME
attr LBatt.N group deviceDetector
attr LBatt.N room Alarm
define LBatt.warn dummy
attr LBatt.warn alarmDevice Sensor
attr LBatt.warn alarmSettings alarm2,|LBatt.warn|Batt. $EVENT|on
attr LBatt.warn group deviceDetector
attr LBatt.warn room Alarm
attr AAA level2end 23:59
attr AAA level2msg schwach
attr AAA level2offact set OWLCD line 0;;set WWW.warn no_warning;;set WZ.Gong.LED off;;
attr AAA level2onact {fhem('set OWLCD line 0 '.ReadingsVal('AAA','short',0))};;{fhem('set WWW.warn '.$defs{'AAA'}{READINGS}{'short'}{VAL})};;set WZ.Gong.LED led orangeS 255;;set WZ.Gong.MP3 playTone 52;;
attr AAA level2start 0:00
attr AAA level2xec armed
Notify setzt dummy, dummy wirkt als Alarmsensor => Alarm wird ausgelöst
LG
pah
Hallo,
erst mal kurz ... echt super Modul! :)
Hab da aber leider ein Problem. Und zwar wollte ich mit der Fernbedienung der Keymatic das Modul bedienen. Leider senden diese einen anderen Status zurück:
CUL_HM Master_Remote battery: ok
CUL_HM Master_Remote Master_Remote_lock LongRelease
CUL_HM Master_Remote_lock LongRelease 1_96 (to EG_Haustuer)
CUL_HM Master_Remote_lock trigger: Long_96
CUL_HM Master_Remote_lock trigger_cnt: 96
Wenn ich:
Master_Remote_lock:LongRelease
bei "Notify on RegExp" konfiguriere dann wird keine Aktion ausgeführt. Mit den normalen Wandtaster funktioniert es ohne Probleme...
.* anhängen und RegExp verstehen lernen.
LG
pah
Dankeschön! Da wäre ich jetzt nicht drauf gekommen!
Kurze Frage noch wegen einem Aktor. Wenn ich hier:
set OG_Treppenlicht on-for-timer 5
konfiguriere dann wird der Alarm nur einmal ausgegeben. Gibt es hier evtl auch einen Trick oder muss der Alarm abgeschaltet (cancel) werden damit der Aktor wieder auslöst?
LG
Zitat von: new_rasp am 16 Juni 2015, 22:14:08
Wenn ich hier: set OG_Treppenlicht on-for-timer 5 konfiguriere dann wird der Alarm bei nur einmal ausgegeben.
Diesen "Satz" habe ich bezüglich des "bei" nicht verstanden.
Zitat
Gibt es hier evtl auch einen Trick oder muss der Alarm abgeschaltet (cancel) werden damit der Aktor wieder auslöst?
Ist der Alarm einmal ausgelöst, bleibt er - logischerweise - so lange ausgelöst, bis er gecancelt oder der Kreis unscharf geschaltet wurde.
@Ralli: Ach da hab ich mich verschrieben. Hätte den Satz nochmal lesen sollen!
Okay dann muss ich also den Einbruchsalarm wieder canceln damit der erneut ausgelöst werden kann. Hätte ja sein können das es hier einen Trick gibt ohne einen Dummy dafür zu verwenden z.B. bei "Set Action" vom Aktor den Alarm per Befehl zu canceln oder per Delay...
Danke für die Antwort
http://forum.fhem.de/index.php/topic,26893.msg213505.html#msg213505
Habe das Modul nun auch eingerichtet. Sehr gut!
Zwei Problemchen habe ich allerdings, bei Alarm lasse ich mir eine Pushnachricht schicken und über das System eine .wav Datei ausgeben. Wenn ich beides mit der gleichen "Verzögerung" mache, kommt nur die Pushnachricht an. Wenn ich beides nacheinander um ein paar Sekunden verzögert ausgebe, funktioniert beides?! Kann FHEM nicht zwei Befehle gleichzeitig verarbeiten?
Kann ich irgendwo einstellen, dass nicht automatisch ein "cancel" beim Setzen von "disarm" ausgeführt wird?
Hallo,
ich habe das Modul schon seit einiger Zeit am laufen, und möchte jetzt eine Erweiterung machen.
Ich möchte einen Alarm auslösen wenn eine Temperatur eines 1-wire Sensors einen bestimmten Wert überschreitet (-15 C°).
Ist es Möglich mit einer regex auf größer oder kleiner zu Prüfen oder muß ich den Umweg über einen Notify und Dummy gehen?
Gruß Denis
Bevor dieser sinnvolle Thread hier auf der zweiten Seite untergeht, pushe ich ihn mal mit ein paar Ideen für Erweiterungen nach oben. :P
Ich bin mir nicht ganz sicher, inwiefern pah an funktionalen Erweiterungen interessiert ist, ich schreibe einfach mal, was mich begeistern würde.
1. Eingangsverzögerung für Raise Sensoren
Bedeutet, ein Alarm wird erst nach x Sekunden ausgelöst. in der Zwischenzeit hat man Zeit, die Anlagen unscharf zu schalten. Funktioniert heute über ein dynamisch erzeugtes at in einem notify und einem dummy.
Die Nutzung des Delays bei den Aktoren finde ich in diesem Fall nachteilig, da dies dann für jeden Alarm gälte - auch wenn jemand durchs Fenster kommt.
2. Attribut Verzögerung Follow für Sensor
Ist eine Erweiterung von 1. und bedeutet, dass ein weiterer Sensor (genau bei dem, bei dem dieses Attribut gesetzt ist), die Alarmverzögerung übernimmt. Löst der Sensor aus, ohne das die Eingangsverzögerung aktiviert wurde, wird der Alarm direkt ausgelöst.
Beispiel: Bewegungsmelder im Flur, hinter der Eingangstür. Der Kontakt an der Eingangstür it die Eingangsverzögerung, der Bewegungsmelder ist der Follower.
3. Unterscheidung zwischen Alarm und Sabotage (unterschiedliche Regex) in einem Raise Sensor.
Funktioniert heute über einen "Dummy-Clone" des Sensors, einem notify und einem Alarm-Level für Sabotagen.
4. (für mich die interessanteste Funktion) Prüfung der geschlossenen Kontakte bei Scharfschaltung mit separater Fehler-Aktion und Override Funktion.
Gerade bei Tür- / Fensterkontakten macht es Sinn, dass das system prüft, ob die Kontakte geschlossen sind, bevor eine Scharfschaltung erfolgt. Ist dies nicht der Fall, könnte dies über eine dedizierte Fehler-Aktion kenntlich gemacht werden. Schaltet man nun innerhalb von x Sekunden erneut scharf, wird diese Situation ignoriert und trotzdem scharf geschaltet (Override).
man kann das natürlich auch über diverse notifys, dummies, etc. realisieren.
LG
Lars
Oh, interessiert immer. Aber momentan ziemlich in Zeitnot.
Außerdem sehe ich bei diesen Erweiterungen die Einfachheit in de Bedienung des Moduls den Bach herunter gehen.
Muss darüber nachdenken.
LG
pah
Hallo,
sehr interessantes Modul, funktioniert einwandfrei und lässt sich auch für nicht-Alarmanlage Zwecke nutzen.
Vielen Dank! @ Prof.
Feature Request:
Mir würde es sehr helfen, wenn der Alias im Alarmroom in der ersten Spalte angezeigt werden würde.
Bspw.: Objektname (Alias)
Genau so wird es bspw. auch im Floorplan gemacht.
Hintergrund: Bei den Homematic Wired Komponenten habe ich bessere Erfahrungen gemacht, wenn man die Objektnamen nicht ändert, sondern besser mit dem Attr. Alias arbeitet.
Sollte eigentlich nicht viel Arbeit sein.
Viele Grüße
Ich habe mal schnell was probiert:
Im Actors Ausgabe Bereich:
my $alias = "(".AttrVal($d, "alias","").")";
$ret .= "<td width=\"100\" class=\"col1\"><a href=\"$FW_ME?detail=$d\">$d $alias</a></td>\n";
Geht sicher eleganter (wenn kein Alias, hat man leere Klammern), erfüllt für mich erstmal seinen Zweck.
Wer kann mir helfen?
Habe die Alarmanlage nach Wiki eingerichtet.
Mit einem Bewegungsmelder als Sensor und meine Schreibtisch Beleuchtung als Actor (Testaufbau).
Hat alles wunderbar funktioniert.
Nun habe ich an meinem Gong über die Channels die timings geändert um ihn für die finale Einrichtung der Alarmanlage vorzubereiten.
Nachdem dies erledigt war, wieder zurück zur Alarmanlage. Was soll ich sagen, die funktioniert plötzlich nicht mehr.
Habe nun zwei Abende versucht eine Reaktion hervor zu rufen, nix geht.
3 mal raus geworfen und neu angelegt, nix...
Inzwischen hat er mir die Notifies nicht mehr geschrieben?
Habe jetzt nur noch den:
"alarm7.off.N" auf active
Was ist da los?
Mh.. inzwischen schreibt er zwar beide Notifiers wieder, aber Reaktion auf den Auslöser gibt es keine?
Hat sich erledigt, läuft wieder.
weshalb auch immer???
Danke
Hallo, ich habe vielleicht ein Verständnisproblem. Nachdem ein Alarm ausgelöst wurde, wird er bei erneutem Eintreffen der Raise-Trigger nicht nochmals ausgeführt bevor ich ihn nicht "gecancelt" und dadurch reaktiviert habe. Ich kenne Alarmanlagen die nach einer bestimmten Zeit das von alleine tun. Habe ich einen Fehler in meiner Konfiguration oder ist das so gewollt?
Falls so gewollt, gibt es einen Workaround?
Danke und Grüße
H.
Hallo H.
Ich denke es ist gewollt. Workaround: Dummy als Actor definieren und als set action ein at erstellen, welches dann nach einer gewissen Zeit einen cancel dummy triggert. So mache ich es mit einem Gehtest Alarm Level, nur ohne at, ich feuere den cancel direkt.
Gruß
Lars
Hallo Lars, sowas hatte ich auch schon angedacht, wollte nur verifizieren, dass ich nicht irgendeine eigentlich logische Funktion im Modul übersehen habe.
Danke
H.
Hallo Zusammen,
nach vielen Versuchen und anfangs funktionierender Alarmanlage geht nun irgendwas nicht mehr richtig?
Könnte mir jemand erklären wie ich das Modul mit allem was dranhängt aus Fhem entferne.
Ich würde die Anlage gerne komplett neu Aufsetzen!
Einfach eine neue Anlage anlegen geht nicht da er immer wieder alte Teile irgendwoher zieht.
Bin für jede Hilfe dankbar.
Hallo!
Zitat von: namor am 24 September 2015, 07:18:07
Einfach eine neue Anlage anlegen geht nicht da er immer wieder alte Teile irgendwoher zieht.
Mal vorausgesetzt, dass Du die fhem Konfiguration in einer Datei speicherst, würde ich diese Datei 'vorsichtig' von Hand bearbeiten. ZUERST EIN BACKUP DER DATEI ERSTELLEN. Dann nach dem Namen der Alarmanlage suchen (evtl. "AAA") und die entsprechenden Attribute, die auf die Alarmanlage verweisen, in den verschiedenen Devices löschen.
VG
Sven
Unsinn, aber hoch drei. Man kann doch keinem Anfänger empfehlen, manuell in der Konfiguration herumzueditieren !!!
"Er zieht alte Teile von irgendwoher" - heißt was ? Wann "zieht er" ? Welche "Teile" ?
Natürlich geht es, einfach mit "delete AAA" die Instanz des Alarmanlagen-Devices zu löschen, inklusiver aller Attribute. Das löscht aber nicht die Attribute in den Alarm-Devices, soll es ja auch gar nicht. Danach bitte die Konfigurationsdatei sichern mit "save".
Und natürlich geht es, danach ein neues Alarmanlagen-Device anzulegen.
LG
pah
Danke pah,
das meinte ich.
Das ich einfach mit delete... die Anlage löschen kann und dies ausreicht wusste ich nicht.
Das ich die Attribute nicht manuell anfassen soll habe ich in diesem Beitrag schon gelesen.
Danke
Ok, mein Fehler.
Ich hatte die Frage so verstanden, dass das Löschen des Devices beim Fragesteller nicht vollständig funktioniert. Das nicht gelöscht wurde, sondern nur eine neue Instanz angelegt wurde, hatte ich nicht für möglich gehalten, zumal unter jedem Device der entsprechende Link zum Löschen ist.
Schön, dass das Problem gelöst ist...
VG
Sven
Zitat von: DerFrickler am 01 Mai 2015, 16:06:14
{fhem('set rh.alarms add '.ReadingsVal('alarm.AlarmModul', 'short',undef))}
...
Hallo zusammen,
ich würde gerne äquivalent zum Thema oben eine Ausgabe mit Pushover generieren. Leider habe ich da so meine Syntaxprobleme:
{fhem('set pushmsg msg 'fhem' '.ReadingsVal('alarm', 'short',undef))}
Und zwar wird das Problem in der Nutzung der Anführungszeichen liegen, die zum einen den Titel und die Message umfassen. D.h., das fhem sowie das Ergebnis aus dem ReadingsVal müssen in set Command in Anführungszeichen gefasst werden. Das ganze würde ich dann gerne im Alarm Modul unter Set Action nutzen.
set <Pushover_device> msg [title] <msg> [<device> <priority> <sound> [<retry> <expire> [<url_title> <action>]]]
Beispiel: set pushmsg msg 'Titel' 'Message'
Kann mir hier jemand weiterhelfen?
Vielen Dank!
Hallo, habe gerade das Modul installiert und auch alle Sensoren und Autoren benannt. Unter Alarms werden auch alle aufgelistet.
Nachdem ich das locktet auf unlock gesetzt und meine Anlage konfiguriert habe, bekomme ich beim drücken des Set Alarm Buttons die Meldung das die Anlage noch auch lock steht und deshalb keine Notifys angelegt werden können. Also nochmal attr Alarmanlage lockstate unlock. Leider mit gleichem Resultat. Also habe ich die Alarmanlage per delete Alarmanlage gelöscht, save gedrückt, rereadcfg und neu definiert. Erneut ein attr Alarmanlage locktet unlock, wieder die Anlage konfiguriert und gleiches Ergebnis.
Was könnte ich noch versuchen?
Gruß
Mirco
Zitat von: DerFrickler am 10 Oktober 2015, 17:27:12
Hallo zusammen,
ich würde gerne äquivalent zum Thema oben eine Ausgabe mit Pushover generieren. Leider habe ich da so meine Syntaxprobleme:
{fhem('set pushmsg msg 'fhem' '.ReadingsVal('alarm', 'short',undef))}
Und zwar wird das Problem in der Nutzung der Anführungszeichen liegen, die zum einen den Titel und die Message umfassen. D.h., das fhem sowie das Ergebnis aus dem ReadingsVal müssen in set Command in Anführungszeichen gefasst werden. Das ganze würde ich dann gerne im Alarm Modul unter Set Action nutzen.
set <Pushover_device> msg [title] <msg> [<device> <priority> <sound> [<retry> <expire> [<url_title> <action>]]]
Beispiel: set pushmsg msg 'Titel' 'Message'
Kann mir hier jemand weiterhelfen?
Vielen Dank!
Für all diejenigen, die es interessiert:
{fhem("set pushmsg msg 'FHEM' '".ReadingsVal('alarm', 'short', 'undef')."'")}
funktioniert. Hat aber nur leider das Problem, dass es vom Alarm Modul nach den ersten " abgeschnitten wird.
Gruß!
Eine Frage hätte ich dann noch...
Wenn ich einen Alarm auslöse erscheint Message Part I und Message Part II danach im Reading short, was ist mit Message Part I und Message Part II wenn ich eine Cancel auslöse? Im short zumindest wird es nicht gespeichert.
Gruß!
Hätte eine Anregung bez. Anzeige der Zustände:
Derzeit kann man im "state" Reading nicht unterscheiden, ob ein Alarm-Level scharf (armed) ist oder nicht. Man sieht nur, ob er ausgelöst hat, oder nicht.
Wäre sen nicht möglich in die "level?" Readings des Alarm-Moduls "disarmed" statt "off" zu schreiben, wenn das "Armed" Hackerl nicht gesetzt ist. Und beim setzten des "state" Readings im simple modus statt "O" z.B. "-" bzw im color oder table Modus die Zahl, bzw. das Feld statt grün z.B. grau anzuzeigen?
Grüße
Rainer
Möglich wäre viel. Momentan aber keine Zeit dafür ...
LG
pah
entschuldigt bitte die absolut einfache Frage. Wie definiere ich die Buttons: Arm, Disarm und Cancel ?
Ich hab zwar schon einiges gemacht in fhem, aber hier scheine ich etwas nicht verstanden bzw. überlesen zu haben.
Danke
LG
Reinhard
Wie ein on/off.
Bspw. set Alarmanlage armed 6
Gesendet von meinem SM-G901F mit Tapatalk
Danke für die Antwort. Ich habe immer noch das Problem. So wie ich es verstanden habe, muss ich einen Button für Cancel definieren. Z.B. einen Funktaster. Wie sag ich es nun dem Modul, dass der Funktaster diese Funktion hat. Im Logfile kommt folgende Fehlermeldung: No "Cancel" device defined, level will be ignored. Ich bekomme dann natürlich keine Aktoren und Sensoren angezeigt. Bitte helft mir, oder sagt mir zumindest wo ich im Wiki die Anweisung dafür finde.
Danke Reinhard
ist das so richtig?
define Cancel notify Taster:on {fhem ("set AAA canceled 7")}
Ich bekomme immer die selbe Fehlermeldung und keine Aktoren und Sesoren
oder so:
define Cancel notify Taster:on set AAA canceled 7
was mach ich falsch
Im Wiki zum Alarmmodul beschrieben unter http://www.fhemwiki.de/wiki/Modul_Alarmanlage#Sensors
VG Sven
ok danke weiß ich. Im Wiki steht:
Achtung: Es ist zwingend notwendig, dass für einen auszulösenden Alarmlevel auch ein Sensor für den Widerruf (=Cancel) des Alarms definiert wird, ansonsten ignoriert das Modul die Definition dieses Levels.
Und wie? Offensichtlich ist es so falsch: define Cancel notify Taster:on set AAA canceled 7
Könnte mir nicht doch jemand einen Tipp geben was ich hinschreiben soll. Ich habe einen Funktaster der Taster heißt, die Alarmanlage heißt AAA
Helft mir bitte weiter
LG
Reinhard
Zitatok danke weiß ich.
Offenbar doch nicht gelesen - warum schreibe ich das wohl an erster Stelle im Wiki auf ? >:( >:( >:(
Der Taster braucht das Attribut alarmDevice=Sensor, dann taucht er auch in der Liste auf und kann ganz einfach per Mausklick als Cncel-Butto definiert werden
pah
Zitat von: Prof. Dr. Peter Henning am 30 Oktober 2015, 21:26:29
Offenbar doch nicht gelesen - warum schreibe ich das wohl an erster Stelle im Wiki auf ? >:( >:( >:(
Der Taster braucht das Attribut alarmDevice=Sensor, dann taucht er auch in der Liste auf und kann ganz einfach per Mausklick als Cncel-Butto definiert werden
pah
Danke. Gelesen habe ich es schon, aber sensor statt Sensor geschrieben. Dadurch war die Liste leer und ich kam nicht weiter. Blöder Fehler von mir.
Also ich bin jetzt auch schon seit Tagen dran und irgendwie komm ich nicht weiter. Also Auslöser dient ein MAX Fenster Schalter. Als Actor wollte ich eine Sirene an die GPIO anschließen und ein Anruf soll auf das Handy gehen wobei ich noch nicht weiß wie ich ein Anruf von fehm aus hinbekomme da meine FritzBox kein Telnet mehr unterstützt. Jendefals bekomme ich es nicht hin das die Kleine LED beim GPIO leuchtet. Ich hoffe ihr könnt mir helfen.
###Fensterkontakt###
define MAX_11b3e7 MAX ShutterContact 11b3e7
attr MAX_11b3e7 IODev CULMAX
attr MAX_11b3e7 alarmDevice Sensor
attr MAX_11b3e7 alarmSettings alarm0,|MAX_11b3e7:open||on
attr MAX_11b3e7 alias Haustür
attr MAX_11b3e7 room AlarmRoom,Alarmanlage,Wohnzimmer
define FileLog_MAX_11b3e7 FileLog ./log/MAX_11b3e7-%Y.log MAX_11b3e7
attr FileLog_MAX_11b3e7 logtype text
attr FileLog_MAX_11b3e7 room FileLog
###GPIO###
define GPIO_25_R1 dummy
attr GPIO_25_R1 alarmDevice Actor
attr GPIO_25_R1 alarmSettings alarm0,|{\ system("/usr/local/bin/gpio write 6 1")}|{\ system("/usr/local/bin/gpio write 6 0")}|0
attr GPIO_25_R1 room GPIO,AlarmRoom
attr GPIO_25_R1 setList on off
define on_GPIO_25_R1 notify GPIO_25_R1:on {\
system("/usr/local/bin/gpio write 6 1")}
define off_GPIO_25_R1 notify GPIO_25_R1:off {\
system("/usr/local/bin/gpio write 6 0")}
define GPIO_24_R2 dummy
attr GPIO_24_R2 room Innen
attr GPIO_24_R2 setList on off
define off_GPIO_24_R2 notify GPIO_24_R2:off {\
system("/usr/local/bin/gpio write 5 1")}
define on_GPIO_24_R2 notify GPIO_24_R2:on {\
system("/usr/local/bin/gpio write 5 0")}
###Alarmanlage###
define AAA Alarm attr AAA room AlarmRoom
attr AAA armact set WZ.Gong.MP3 playTone 50
attr AAA armdelay 00:30
attr AAA armwait set WZ.Gong.MP3 playTone 49
attr AAA cancelact set WZ.Gong.MP3 off;;set WZ.Gong.LED off;;
attr AAA disarmact set WZ.Gong.MP3 playTone 51
attr AAA level0end 23:59
attr AAA level0msg Haustür
attr AAA level0start 0:00
attr AAA level0xec armed
attr AAA level1end 0
attr AAA level1msg 0
attr AAA level1start 0
attr AAA level1xec armed
attr AAA level2end 0
attr AAA level2msg 0
attr AAA level2start 0
attr AAA level2xec disarmed
attr AAA level3end 0
attr AAA level3msg 0
attr AAA level3start 0
attr AAA level3xec disarmed
attr AAA level4end 0
attr AAA level4msg 0
attr AAA level4start 0
attr AAA level4xec disarmed
attr AAA level5end 0
attr AAA level5msg 0
attr AAA level5start 0
attr AAA level5xec disarmed
attr AAA level6end 0
attr AAA level6msg 0
attr AAA level6start 0
attr AAA level6xec disarmed
attr AAA level7end 0
attr AAA level7msg 0
attr AAA level7start 0
attr AAA level7xec disarmed
attr AAA room Alarmanlage
define AAA_weblink weblink htmlCode {Alarm_Html("AAA")}
attr AAA_weblink room AlarmRoom
Hallo!
Zitat von: AlphaKingOne am 02 November 2015, 12:39:25
Also ich bin jetzt auch schon seit Tagen dran und irgendwie komm ich nicht weiter. Also Auslöser dient ein MAX Fenster Schalter. Als Actor wollte ich eine Sirene an die GPIO anschließen und ein Anruf soll auf das Handy gehen wobei ich noch nicht weiß wie ich ein Anruf von fehm aus hinbekomme da meine FritzBox kein Telnet mehr unterstützt. Jendefals bekomme ich es nicht hin das die Kleine LED beim GPIO leuchtet. Ich hoffe ihr könnt mir helfen.
Im Wiki http://www.fhemwiki.de/wiki/Modul_Alarmanlage#Sensors steht:
Achtung: Es ist zwingend notwendig, dass für einen auszulösenden Alarmlevel auch ein Sensor für den Widerruf (=Cancel) des Alarms definiert wird, ansonsten ignoriert das Modul die Definition dieses Levels.VG
Sven
Also ich hab jetzt ein Taster über GPIO angeschlossen und in auf cancal gesetzt. Trotzdem bekomme ich es nicht zu laufen. Was auch komisch ist. Bei Set Action hab ich eingetragen {\system("/usr/local/bin/gpio write 6 1")}
wenn ich es dann aber abspeichere seht da nur noch {\ system(
MFG
Tobi
Einfache Anführungsstriche verwenden.
LG
pah
Hallo,
ich habe diesmal kein Problem sondern eine Frage.
Ich habe einen Homematic Funk Wandtaster 2 fach folgendermaßen konfiguriert:
Kanal 1 hat den Namen Alarm7_Arm
Der richtige RegExp beim notify lautet Alarm7_Arm.Short.*
So wie ich das notify verstanden habe hätte ich folgendes erwartet: Alarm7_Arm:Short.*
So schreibt es auch pah in seinem Beitrag. Kann mir jemand erklären warum die Syntax für den Taster so aussieht?
LG
Reinhard
Zitat von: Prof. Dr. Peter Henning am 10 Oktober 2014, 19:39:05
@Milmi12:
Taste EB.HM.B01 hat das Attribut alarmDevice Sensor, taucht in der Alarmkonfiguration auf und bekommt dort die regexp EB.HMT.B01:Long.* sowie die Action "Sharpen" zugewiesen. Mit anderen Worten: Ein langer Tastendruck schaltet die Anlage scharf.
LG
pah
Hey,
erst einmal vielen Dank für das Modul. Ich habe jedoch ein großes Problem. Meine "Actors"werden leider nicht ausgeführt. Ich habe jetzt wirklich lange rumgespielt komme aber wirklich nicht weiter vllt. hat jemand von euch noch eine Idee. Auf jeden Fall werden die "alarmNotifier" ausgeführt, so dass die Sensoren richtig erkannt werden. Im Logfile sind auch keine Fehler zu sehen. Die Aktoren funktionieren aber einwandfrei, wenn man den jeweiligen Befehl in die Kommandozeile eingibt.
Beispiel:
Action Raise:
DEF (Eingang_tuerkontakt:open) {main::Alarm_Exec("AAA",0,"$NAME","$EVENT","on")}
NAME alarm0.on.N
Action Cancel:
DEF (wz_enigma2:on) {main::Alarm_Exec("AAA",0,"$NAME","$EVENT","off")}
NAME alarm0.off.N
Sensor:
alarmDevice Sensor
alarmSettings alarm0,|Eingang_tuerkontakt:open||on
Actor:
alarmDevice Actor
alarmSettings alarm0,alarm1,|set pushmsg msg 'FHEM' 'Dies ist ein Test' |set pushmsg msg 'FHEM' 'Alarm deaktiviert' |3
Actor2:
alarmDevice Actor
alarmSettings alarm0,alarm1,|set wz_stehlampe on|set wz_stehlampe off|3
Gruß
Farin1337
Hallo Peter,
ich habe folgendes Problem:
Bei mir wird unter ALARMS nur die Tabelle <Settings> angezeigt. Die Tabellen für <Sensors> und <Actors> fehlen.
Hast Du irgendeinen Tipp?
LG
Ralf
Zitat von: schnubbi am 17 November 2015, 09:33:28
Hallo Peter,
ich habe folgendes Problem:
Bei mir wird unter ALARMS nur die Tabelle <Settings> angezeigt. Die Tabellen für <Sensors> und <Actors> fehlen.
Hast Du irgendeinen Tipp?
LG
Ralf
Sorry man muss lesen können!
Dann ist man im Vorteil! ;) ;) ;)
LG
Ralf
Kann man noch die datein aus dem ersten Post verwenden? Und werden die dann per Update mit aktualisiert? Oder wo gibt's gleich aktuelle Versionen?
Danke
Gesendet mit Tapatalk
Hallo zusammen,
habe die gleichen Probleme wie farin1337.
Alarmanlage konfiguriert. Scharfschaltung funktioniert auch... Logs melden keine Fehler.
Manuelles Auslösen des Actors mit dem in der Alarmanlage hinterlegten Befehl funktioniert.
Jetzt liegt die Vermutung nahe, dass es am Sensor liegt. In meinem Fall alles Fenster- und Türkontakte. Unter RegExp ist folgendes eingetragen:
KG_SZ_Fenster:open
Vermute, dass hier das Problem liegt. Bei den Fenster- und Türkontakten handelt es sich um Komponenten von Homematic.
Die Kontakte selber funktionieren in fhem...
Kann man sich irgendwo noch genauer anschauen, was im Hintergrund passiert oder nicht passiert. Log-Level ist bereits auf 5 eingestellt. Schlauer werde ich dadurch allerdings auch nicht...
probiers mail mit
KG_SZ_Fenster:open.*
Hmm, hat auch nicht funktioniert aber das abändern auf deinen Wert und wieder zurück hat wohl gereicht...
Jetzt lösen die Notifyer aus...
Allerdings fahren die Rolladen nur in 10% Schritten runter?! Woran kann das nun liegen?Leider auch wieder nur in VErbindung mit dem Absetzen des Befehls über das Alarmmodul
Evtl. fehlte auch einfach nur die Message für den Notifyer. In diesem Fall "SZ Fenster"
KORREKTUR: Ich weiß noch nicht genau, WAS ich falsch mache, aber offensichtlich muss ein bisschen Zeit vergehen, oder man muss was ändern und speichern und wieder ändern... JEtzt macht er es wie es soll.
Es würde schon helfen, die Doku zu lesen. Da steht nämlich etwas von "speichern" drin...
LG
pah
Hallo,
ich habe eine Verstaendnisfrage.
Ich schalte per Fernbedienung einen Alarm0 (Einbruchserkennung) scharf und unscharf.
Funktioniert auch wunderbar, er laesst auch die Sirene jeweils 0.2 Sekunden hupen als Quittung.
Was ich nicht hinbekomme: wenn Alarm0 scharf gestellt wird, soll einen Statusanzeige auf ON geschaltet werden (led an einen batterieschalter).
Wenn ich dies als "arm action" definiere, dann macht er das ja fuer jeden Alarm, ich will es aber nur fuer Alarm 0.
Also habe ich die Statusanzeige als alarmDevice Actor eingerichtet und einen Haken fuer Alarm2 gesetzt und Alarm2 definiert.
Nun fehlt mir aber laut Log das Raise-Event fuer Alarm2.
Das eigentliche Problem: das Event welches mit der Fernbedienung verbundene ist (button short) ist als "ARM event" definiert und ich kann es ja nicht nochmal als "RAISE Event" definieren.
Wie setzt man so etwas denn um?
Vielen DAnke und beste Gruesse
//seb
aeh.... ok, keine Ahnung was mich da geritten hat. Die Statusanzeige schalte ich natuerlich per Notify auf das Druecken der FB ein, nicht per Alarm-Modul ... problem fixed ;D
Zitat von: seb am 07 Dezember 2015, 20:25:36
aeh.... ok, keine Ahnung was mich da geritten hat. Die Statusanzeige schalte ich natuerlich per Notify auf das Druecken der FB ein, nicht per Alarm-Modul ... problem fixed ;D
... was dann bestätigt, dass die Fernbedienung gedrückt wurde, oder? ;D
...sollte wohl eher ein Notify auf "Global global ATTR AAA level0xec armed" sein!"
Hi,
nachdem ich jetzt seit Tagen damit beschäftigt bin zu lesen was es über das Alarmanlagen Modul zu lesen gibt und damit den Fehler zu finden warum meine Sensoren tun können was sie wollen ohne das es das Alarmmodul interessiert versuche ich es mal hier.
(http://i.imgur.com/sHeXNI8.png)
Das sind meine aktuellen Einstellungen. Meine Sensoren sind alle von Homematic und ich habe auch schon alle möglichen Varianten getestet: Optisch.Hintertuer:open, Optisch.Hintertuer:.*open, Optisch.Hintertuer:open.*, open, .*open, open.*
Es tut sich einfach nichts und die Log meldet auch nichts trotz verbose 5.
Ich hoffe ihr könnt mir helfen!
Zitat von: tomatic am 09 Dezember 2015, 16:44:04
... was dann bestätigt, dass die Fernbedienung gedrückt wurde, oder? ;D
jap, mehr soll es mit diesem notify nicht.
Zeitgleich schaltet es auch im alarm-modul die Anlage scharf.
Die Statusanzeige soll nur morgens die Frau davor warnen das Fenster zu oeffnen, solange Alarm noch scharf ;)
Zitat von: davedeluxe am 09 Dezember 2015, 18:25:34
Meine Sensoren sind alle von Homematic und ich habe auch schon alle möglichen Varianten getestet: Optisch.Hintertuer:open, Optisch.Hintertuer:.*open, Optisch.Hintertuer:open.*, open, .*open, open.*
aber... Optisch.Hintertuer gibt es doch gar nicht?
ich haette Magnet.Hintertuer:open genommen....
Hallo davedeluxe!
1.) bei den Notify on RegExp deiner Sensoren fehlt der Device Name. Sollte, z.B. für die Hintertüre so heißen: "Magnet.Hintertuer:open.*" (sofern der Sensor "open" meldet)
2.) So wie Du das konfiguriert hast schaltet das Öffnen der Balkontür, den Alarm 0 scharf, der Sensor am Gartenhäuschen löst Alarm aus, die Hintertür quitiert den Alarm und die Vordertür schaltet den Alarm aus.
Ist das wirklich das was Du willst?
Hallo gamauf,
im Moment will ich das tatsächlich so, einfach nur um zu testen. Natürlich macht das so keinen Sinn aber im Moment, für den Test, ist das ok.
Den Devicenamen davor zu schreiben habe ich auch schon versucht. (siehe missglücktes Beispiel).
@seb Ja das BEISPIEL sollte natürlich Magnet.Hintertuer heißen.
Um weitere Verwirrung auszuschließen, ich habe folgendes bereits probiert:
Magnet.Hintertuer:open, Magnet.Hintertuer:.*open, Magnet.Hintertuer:open.*, open, .*open, open.*
und natürlich auch mit den anderen Sensoren-Namen.
Tja, wer lesen kann, ist klar im Vorteil ::) ::): Auf der Wiki-Seite zum Modul steht bei keinem Sensor etwas von "open" - sondern nur "Open", so lauten nämlich die Events.
Kann man auch sehen, wenn man sich den Event-Monitor ansieht.
Und unter "Unset Action" steht mit "Optisch.Tester:open" auch kein ausführbarer Befehl.
LG
pah
Danke für den Hinweis pah,
leider brachte auch das keine Lösung.
Anbei Screenshots der aktuellen Einstellung.
Auch der State des Sensors ist nicht "Open" sondern "open"
(http://i.imgur.com/O8c9LMr.png)
(http://i.imgur.com/idrBCIs.png)
Problem gelöst.
Ich habe alles was mit der alarmanlage zu tun hat nochmal gelöscht und neu eingerichtet, jetzt tut sie was sie soll.
Ich wiederhole mich ungern.
Es geht nicht um den State, sondern um die ausgelösten Events.
Und die haben ein "Open"
pah
Hallo liebe FHEM Community,
leider habe ich auch das gleiche Problem wie einige hier auch.
Meine Sensoren (optische Fensterkontakte) sind in FHEM soweit angelernt und senden ihren STATE open oder close.
Es wird jedoch einfach nicht geschaltet. Ob ich die den Alarmlevel einschalten, auslösen, abbrechen oder abschalten will, es passiert nix.
Habe die Formatierungs Tipps die hier standen alle ausprobiert wie bspw.: KG_FG:Open.* usw... leider ohne Erfolg.
Vielen Dank für Eure Hilfe.
Gruß
So nachdem ich hier nach 2 Tagen nicht weiterkommen gepostet habe, hats auf einmal geklappt.
Also erstens war mein Fehler der, das der Alarm wohl ausgelöst war und nicht wieder gecancelt, daher logischerweise kein weiteres Auslösen. Ompf..
Desweiteren hatte ich Groß/Kleinschreibungsfehler drinne..
Und letztendlich war "KG_FG.open" die Lösung...
Trotzdem vielen Dank, bis auf ein nächstes Mal :-).
Gruß
Das ist immer noch eine falsche Vorstellung: Kein Sensor "sendet" seinen "State", sondern Zustandsänderungen werden von FHEM in Events umgesetzt.
Bitte unbedingt den Event-Monitor benutzen, um sich die Events genauer anzusehen, die von einem Device erzeugt werden.
LG
pah
Lieber Herr Professor!
Da muß ich leider wiedersprechen:
Das Homematic Gerät HM-SEC-SC-2 meldet im Event monitor
2015-12-11 07:56:12 CUL_HM HM_Tuerkontakt open
mit klein geschriebenem "open"!
LG
Rainer
Wogegen widersprechen ? Meiner Bitte, den Event-Monitor zu verwenden ? Das hielte ich für unüberlegt ...
Darin liegt nämlich genau die Lösung, weil unterschiedliche Tür- und Fenster-Sensoren auch unterschiedliche Events erzeugen: Open, open, opened kommt vor.
LG
pah
...nein, natürlich nicht! Den Event monitor zu verwenden kann nie schaden.
Ich habe nur der Aussage widersprochen, daß das Event immer "Open" mit großem "O" lautet. Ich habe selber Geräte die "open" mit kleinem "o" melden.
LG
Rainer
Na prima - denn meine melden zum großen Teil "Open". Was zu beweisen war: Event-Monitor benutzen.
LG
pah
...dann wäre wohl ein
<devicename>:[Oo]pen.*
der universellste Eintrag.
Warum muß man eigentlich im Notify Eintrag den Device Namen nochmals eingeben, der steht ja eh schon rechts im Web Interface; wäre also ohnehin eindeutig? Oder?
LG
Rainer
Muss man nicht - das Webinterface erzeugt doch die notifies
LG
pah
ich meint im webinterface zum Alarm Modul uneter "Sensors" die Spalte "Notify on RegExp". Dort ist doch einzutragen "devicename:event" (z.B.:"KG_FG:Open.*") oder?
Meine Frage zielt darauf ab, ob es einen triftigen Grund gibt das es nicht so geschrieben ist, daß es reicht dort z.B.:"open.*" einzugeben.
Ich gehe davon aus, daß ein ".*[Oo]pen.* auf jeden xbelibigen sensor der ein "open" liefert reagieren würde.
LG
Rainer
Dann Set Alarms => notifies sind da.
Dann Save config
LG
pah
Hallo,
ich habe mir jetzt auch dieses wirklich tolle Modul installiert um mir eine einfache Alarmanlage mit Max! Fensterkontakte zu erstellen.
Ich hatte erst mal zum testen einen fs20 4Kanal (fs20s4ub) genutzt um die Funktion zu prüfen. Also jeweils einen Kanal zum ein/ausschalten, Alarm auslösen bzw. abzuschalten.
Hier funktioniert alles einwandfrei.
Leider bekomme ich aber die Max Fensterkontakte nicht als Alarmauslöser ans laufen.
Die Max FK sind über einen Cube per Maxlan an Fhem angebunden und senden auch brav ihren Status.
Mit dem Event Monitor habe ich gesehen das beim Fenster öffnen onoff: 1 und opened gesendet wird.
Aber egal was ich in der Zeile Notify on RegExp eingebe, die Alarmanlage reagiert nicht darauf. Im Logfile gibt es auch kein Eintrag.
Getestet habe ich :
MAX_11fea5:1
MAX_11fea5:on/off:.1
MAX_11fea5:opened
MAX_11fea5:Opened
In dem Feld Message Part 1 habe ich einfach ausloesen eingetragen, da ich bei dem Test mit dem FS20 Sender hier auch irgend was eintragen musste damit es geht.
Jetzt weiss ich nicht mehr weiter.... was muss denn für die Fensterkontakte in das Alarmmodul eingetragen werden?
Oder liegt es an dem Max! Cube? Muss der für diese Anwendung zwangsläufig zum CUNO umgeflasht werden? Oder alternativ würde hier ein zusätzlicher CUL helfen?
Hallo!
Es würde helfen, wenn du die vollständige Ausgabe des Event monitor postest, also immer ganze Zeilen und ev. auch ein paar Zeilen vorher und nachher!
Das sind die Meldungen von einem Versuch.
FHEM SERVER
Events (Filter:.*) [Reset]:
2015-12-16 10:41:00 Global global ATTR AAA level0xec armwait
2015-12-16 10:41:00 at alarm0.arm.dly Next: 10:41:10
2015-12-16 10:41:00 Global global DEFINED alarm0.arm.dly
2015-12-16 10:41:00 Text2Speech MyTTS playing: 1
2015-12-16 10:41:00 FS20 FS20_277254 toggle
2015-12-16 10:41:00 Text2Speech MyTTS duration: 4
2015-12-16 10:41:00 Text2Speech MyTTS endTime: 00:00:00
2015-12-16 10:41:02 MAX MAX_12aa77 mode: auto
2015-12-16 10:41:02 MAX MAX_12aa77 battery: ok
2015-12-16 10:41:02 MAX MAX_12aa77 desiredTemperature: 18.0
2015-12-16 10:41:02 MAX MAX_12aa77 temperature: 19.7
2015-12-16 10:41:02 MAX MAX_12aa77 valveposition: 0
2015-12-16 10:41:02 MAX MAX_12aa77 18.0 °C
2015-12-16 10:41:02 MAX MAX_12aa77 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_12aa77 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_12aa77 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_12aa77 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_12aa77 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11fe82 battery: ok
2015-12-16 10:41:02 MAX MAX_11fe82 onoff: 0
2015-12-16 10:41:02 MAX MAX_11fe82 closed
2015-12-16 10:41:02 MAX MAX_11fe82 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11fe82 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11fe82 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11fe82 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11fe82 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11ff83 battery: ok
2015-12-16 10:41:02 MAX MAX_11ff83 onoff: 0
2015-12-16 10:41:02 MAX MAX_11ff83 closed
2015-12-16 10:41:02 MAX MAX_11ff83 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11ff83 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11ff83 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11ff83 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11ff83 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_12abbf mode: auto
2015-12-16 10:41:02 MAX MAX_12abbf battery: ok
2015-12-16 10:41:02 MAX MAX_12abbf desiredTemperature: 18.0
2015-12-16 10:41:02 MAX MAX_12abbf temperature: 19.4
2015-12-16 10:41:02 MAX MAX_12abbf valveposition: 0
2015-12-16 10:41:02 MAX MAX_12abbf 18.0 °C
2015-12-16 10:41:02 MAX MAX_12abbf MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_12abbf MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_12abbf MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_12abbf MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_12abbf MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11fe26 battery: ok
2015-12-16 10:41:02 MAX MAX_11fe26 onoff: 0
2015-12-16 10:41:02 MAX MAX_11fe26 closed
2015-12-16 10:41:02 MAX MAX_11fe26 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11fe26 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11fe26 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11fe26 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11fe26 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_12aa34 mode: auto
2015-12-16 10:41:02 MAX MAX_12aa34 battery: ok
2015-12-16 10:41:02 MAX MAX_12aa34 desiredTemperature: 18.0
2015-12-16 10:41:02 MAX MAX_12aa34 temperature: 18.8
2015-12-16 10:41:02 MAX MAX_12aa34 valveposition: 21
2015-12-16 10:41:02 MAX MAX_12aa34 18.0 °C
2015-12-16 10:41:02 MAX MAX_12aa34 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_12aa34 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_12aa34 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_12aa34 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_12aa34 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11febb battery: ok
2015-12-16 10:41:02 MAX MAX_11febb onoff: 0
2015-12-16 10:41:02 MAX MAX_11febb closed
2015-12-16 10:41:02 MAX MAX_11febb MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11febb MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11febb MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11febb MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11febb MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11fe57 battery: ok
2015-12-16 10:41:02 MAX MAX_11fe57 onoff: 0<br> 2015-12-16 10:41:02 MAX MAX_11fe57 closed
2015-12-16 10:41:02 MAX MAX_11fe57 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11fe57 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11fe57 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11fe57 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11fe57 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_12a286 mode: auto
2015-12-16 10:41:02 MAX MAX_12a286 battery: ok
2015-12-16 10:41:02 MAX MAX_12a286 desiredTemperature: 18.0
2015-12-16 10:41:02 MAX MAX_12a286 temperature: 18.8
2015-12-16 10:41:02 MAX MAX_12a286 valveposition: 14
2015-12-16 10:41:02 MAX MAX_12a286 18.0 °C
2015-12-16 10:41:02 MAX MAX_12a286 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_12a286 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_12a286 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_12a286 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_12a286 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11ff82 battery: ok
2015-12-16 10:41:02 MAX MAX_11ff82 onoff: 0
2015-12-16 10:41:02 MAX MAX_11ff82 closed
2015-12-16 10:41:02 MAX MAX_11ff82 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11ff82 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11ff82 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11ff82 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11ff82 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11fead battery: ok
2015-12-16 10:41:02 MAX MAX_11fead onoff: 0
2015-12-16 10:41:02 MAX MAX_11fead closed
2015-12-16 10:41:02 MAX MAX_11fead MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11fead MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11fead MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11fead MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11fead MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_12abbc mode: auto
2015-12-16 10:41:02 MAX MAX_12abbc battery: ok
2015-12-16 10:41:02 MAX MAX_12abbc desiredTemperature: 18.0
2015-12-16 10:41:02 MAX MAX_12abbc temperature: 18.8
2015-12-16 10:41:02 MAX MAX_12abbc valveposition: 16
2015-12-16 10:41:02 MAX MAX_12abbc 18.0 °C
2015-12-16 10:41:02 MAX MAX_12abbc MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_12abbc MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_12abbc MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_12abbc MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_12abbc MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11ff2a battery: ok
2015-12-16 10:41:02 MAX MAX_11ff2a onoff: 0
2015-12-16 10:41:02 MAX MAX_11ff2a closed
2015-12-16 10:41:02 MAX MAX_11ff2a MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11ff2a MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11ff2a MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11ff2a MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11ff2a MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11fdd0 battery: ok
2015-12-16 10:41:02 MAX MAX_11fdd0 onoff: 0
2015-12-16 10:41:02 MAX MAX_11fdd0 closed
2015-12-16 10:41:02 MAX MAX_11fdd0 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11fdd0 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11fdd0 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11fdd0 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11fdd0 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11ff80 battery: ok
2015-12-16 10:41:02 MAX MAX_11ff80 onoff: 0
2015-12-16 10:41:02 MAX MAX_11ff80 closed
2015-12-16 10:41:02 MAX MAX_11ff80 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11ff80 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11ff80 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11ff80 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11ff80 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_12aa3b mode: auto
2015-12-16 10:41:02 MAX MAX_12aa3b battery: ok
2015-12-16 10:41:02 MAX MAX_12aa3b desiredTemperature: 18.0
2015-12-16 10:41:02 MAX MAX_12aa3b temperature: 19.4
2015-12-16 10:41:02 MAX MAX_12aa3b valveposition: 0
2015-12-16 10:41:02 MAX MAX_12aa3b 18.0 °C
2015-12-16 10:41:02 MAX MAX_12aa3b MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_12aa3b MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_12aa3b MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_12aa3b MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_12aa3b MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_12aa8a mode: auto
2015-12-16 10:41:02 MAX MAX_12aa8a battery: ok
2015-12-16 10:41:02 MAX MAX_12aa8a desiredTemperature: 18.0
2015-12-16 10:41:02 MAX MAX_12aa8a temperature: 17.8
2015-12-16 10:41:02 MAX MAX_12aa8a valveposition: 44
2015-12-16 10:41:02 MAX MAX_12aa8a 18.0 °C
2015-12-16 10:41:02 MAX MAX_12aa8a MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_12aa8a MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_12aa8a MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_12aa8a MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_12aa8a MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11ff23 battery: ok
2015-12-16 10:41:02 MAX MAX_11ff23 onoff: 0
2015-12-16 10:41:02 MAX MAX_11ff23 closed
2015-12-16 10:41:02 MAX MAX_11ff23 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11ff23 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11ff23 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11ff23 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11ff23 MAXLAN_isAnswer: 0
2015-12-16 10:41:02 MAX MAX_11fea5 battery: ok
2015-12-16 10:41:02 MAX MAX_11fea5 onoff: 0
2015-12-16 10:41:02 MAX MAX_11fea5 closed
2015-12-16 10:41:02 MAX MAX_11fea5 MAXLAN_initialized: 1
2015-12-16 10:41:02 MAX MAX_11fea5 MAXLAN_error: 0
2015-12-16 10:41:02 MAX MAX_11fea5 MAXLAN_errorInCommand:
2015-12-16 10:41:02 MAX MAX_11fea5 MAXLAN_valid: 1
2015-12-16 10:41:02 MAX MAX_11fea5 MAXLAN_isAnswer: 0
2015-12-16 10:41:05 Text2Speech MyTTS playing: 0
2015-12-16 10:41:10 Global global ATTR AAA level0xec armed
2015-12-16 10:41:10 Text2Speech MyTTS playing: 1
2015-12-16 10:41:10 Global global DELETED alarm0.arm.dly
2015-12-16 10:41:10 Text2Speech MyTTS duration: 3
2015-12-16 10:41:10 Text2Speech MyTTS endTime: 00:00:00
2015-12-16 10:41:13 Text2Speech MyTTS playing: 0
2015-12-16 10:41:17 FHT FHT_0101 actuator: 13%
2015-12-16 10:41:18 FHT FHT_0101 measured-temp: 22.2
2015-12-16 10:41:18 FHT FHT_0101 temperature: 22.2
2015-12-16 10:41:19 FHT FHT_0101 battery: ok
2015-12-16 10:41:19 FHT FHT_0101 lowtemp: ok
2015-12-16 10:41:19 FHT FHT_0101 window: closed
2015-12-16 10:41:19 FHT FHT_0101 windowsensor: ok
2015-12-16 10:41:19 FHT FHT_0101 warnings: none
2015-12-16 10:41:58 at alarm0dly1 Next: 10:42:01
2015-12-16 10:41:58 Global global DEFINED alarm0dly1
2015-12-16 10:41:58 FS20 FS20_277256 toggle
2015-12-16 10:42:01 Text2Speech MyTTS playing: 1
2015-12-16 10:42:01 Global global DELETED alarm0dly1
2015-12-16 10:42:01 Text2Speech MyTTS duration: 2
2015-12-16 10:42:01 Text2Speech MyTTS endTime: 00:00:00
2015-12-16 10:42:03 MAX MAX_12aa77 mode: auto
2015-12-16 10:42:03 MAX MAX_12aa77 battery: ok
2015-12-16 10:42:03 MAX MAX_12aa77 desiredTemperature: 18.0
2015-12-16 10:42:03 MAX MAX_12aa77 temperature: 19.7
2015-12-16 10:42:03 MAX MAX_12aa77 valveposition: 0
2015-12-16 10:42:03 MAX MAX_12aa77 18.0 °C
2015-12-16 10:42:03 MAX MAX_12aa77 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_12aa77 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_12aa77 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_12aa77 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_12aa77 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11fe82 battery: ok
2015-12-16 10:42:03 MAX MAX_11fe82 onoff: 0
2015-12-16 10:42:03 MAX MAX_11fe82 closed
2015-12-16 10:42:03 MAX MAX_11fe82 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11fe82 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11fe82 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11fe82 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11fe82 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11ff83 battery: ok
2015-12-16 10:42:03 MAX MAX_11ff83 onoff: 0
2015-12-16 10:42:03 MAX MAX_11ff83 closed
2015-12-16 10:42:03 MAX MAX_11ff83 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11ff83 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11ff83 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11ff83 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11ff83 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_12abbf mode: auto
2015-12-16 10:42:03 MAX MAX_12abbf battery: ok
2015-12-16 10:42:03 MAX MAX_12abbf desiredTemperature: 18.0
2015-12-16 10:42:03 MAX MAX_12abbf temperature: 19.4
2015-12-16 10:42:03 MAX MAX_12abbf valveposition: 0
2015-12-16 10:42:03 MAX MAX_12abbf 18.0 °C
2015-12-16 10:42:03 MAX MAX_12abbf MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_12abbf MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_12abbf MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_12abbf MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_12abbf MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11fe26 battery: ok
2015-12-16 10:42:03 MAX MAX_11fe26 onoff: 0
2015-12-16 10:42:03 MAX MAX_11fe26 closed
2015-12-16 10:42:03 MAX MAX_11fe26 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11fe26 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11fe26 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11fe26 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11fe26 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_12aa34 mode: auto
2015-12-16 10:42:03 MAX MAX_12aa34 battery: ok
2015-12-16 10:42:03 MAX MAX_12aa34 desiredTemperature: 18.0
2015-12-16 10:42:03 MAX MAX_12aa34 temperature: 18.8
2015-12-16 10:42:03 MAX MAX_12aa34 valveposition: 21
2015-12-16 10:42:03 MAX MAX_12aa34 18.0 °C
2015-12-16 10:42:03 MAX MAX_12aa34 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_12aa34 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_12aa34 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_12aa34 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_12aa34 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11febb battery: ok
2015-12-16 10:42:03 MAX MAX_11febb onoff: 0
2015-12-16 10:42:03 MAX MAX_11febb closed
2015-12-16 10:42:03 MAX MAX_11febb MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11febb MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11febb MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11febb MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11febb MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11fe57 battery: ok
2015-12-16 10:42:03 MAX MAX_11fe57 onoff: 0
2015-12-16 10:42:03 MAX MAX_11fe57 closed
2015-12-16 10:42:03 MAX MAX_11fe57 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11fe57 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11fe57 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11fe57 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11fe57 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_12a286 mode: auto
2015-12-16 10:42:03 MAX MAX_12a286 battery: ok
2015-12-16 10:42:03 MAX MAX_12a286 desiredTemperature: 18.0
2015-12-16 10:42:03 MAX MAX_12a286 temperature: 18.8
2015-12-16 10:42:03 MAX MAX_12a286 valveposition: 14
2015-12-16 10:42:03 MAX MAX_12a286 18.0 °C
2015-12-16 10:42:03 MAX MAX_12a286 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_12a286 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_12a286 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_12a286 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_12a286 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11ff82 battery: ok
2015-12-16 10:42:03 MAX MAX_11ff82 onoff: 0
2015-12-16 10:42:03 MAX MAX_11ff82 closed
2015-12-16 10:42:03 MAX MAX_11ff82 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11ff82 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11ff82 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11ff82 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11ff82 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11fead battery: ok
2015-12-16 10:42:03 MAX MAX_11fead onoff: 0
2015-12-16 10:42:03 MAX MAX_11fead closed
2015-12-16 10:42:03 MAX MAX_11fead MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11fead MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11fead MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11fead MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11fead MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_12abbc mode: auto
2015-12-16 10:42:03 MAX MAX_12abbc battery: ok
2015-12-16 10:42:03 MAX MAX_12abbc desiredTemperature: 18.0
2015-12-16 10:42:03 MAX MAX_12abbc temperature: 18.8
2015-12-16 10:42:03 MAX MAX_12abbc valveposition: 16
2015-12-16 10:42:03 MAX MAX_12abbc 18.0 °C
2015-12-16 10:42:03 MAX MAX_12abbc MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_12abbc MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_12abbc MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_12abbc MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_12abbc MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11ff2a battery: ok
2015-12-16 10:42:03 MAX MAX_11ff2a onoff: 0
2015-12-16 10:42:03 MAX MAX_11ff2a closed
2015-12-16 10:42:03 MAX MAX_11ff2a MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11ff2a MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11ff2a MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11ff2a MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11ff2a MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11fdd0 battery: ok
2015-12-16 10:42:03 MAX MAX_11fdd0 onoff: 0
2015-12-16 10:42:03 MAX MAX_11fdd0 closed
2015-12-16 10:42:03 MAX MAX_11fdd0 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11fdd0 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11fdd0 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11fdd0 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11fdd0 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11ff80 battery: ok
2015-12-16 10:42:03 MAX MAX_11ff80 onoff: 0
2015-12-16 10:42:03 MAX MAX_11ff80 closed
2015-12-16 10:42:03 MAX MAX_11ff80 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11ff80 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11ff80 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11ff80 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11ff80 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_12aa3b mode: auto
2015-12-16 10:42:03 MAX MAX_12aa3b battery: ok
2015-12-16 10:42:03 MAX MAX_12aa3b desiredTemperature: 18.0
2015-12-16 10:42:03 MAX MAX_12aa3b temperature: 19.4
2015-12-16 10:42:03 MAX MAX_12aa3b valveposition: 0
2015-12-16 10:42:03 MAX MAX_12aa3b 18.0 °C
2015-12-16 10:42:03 MAX MAX_12aa3b MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_12aa3b MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_12aa3b MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_12aa3b MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_12aa3b MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_12aa8a mode: auto
2015-12-16 10:42:03 MAX MAX_12aa8a battery: ok
2015-12-16 10:42:03 MAX MAX_12aa8a desiredTemperature: 18.0
2015-12-16 10:42:03 MAX MAX_12aa8a temperature: 17.8
2015-12-16 10:42:03 MAX MAX_12aa8a valveposition: 44
2015-12-16 10:42:03 MAX MAX_12aa8a 18.0 °C
2015-12-16 10:42:03 MAX MAX_12aa8a MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_12aa8a MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_12aa8a MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_12aa8a MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_12aa8a MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11ff23 battery: ok
2015-12-16 10:42:03 MAX MAX_11ff23 onoff: 0
2015-12-16 10:42:03 MAX MAX_11ff23 closed
2015-12-16 10:42:03 MAX MAX_11ff23 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11ff23 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11ff23 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11ff23 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11ff23 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 MAX MAX_11fea5 battery: ok
2015-12-16 10:42:03 MAX MAX_11fea5 onoff: 0
2015-12-16 10:42:03 MAX MAX_11fea5 closed
2015-12-16 10:42:03 MAX MAX_11fea5 MAXLAN_initialized: 1
2015-12-16 10:42:03 MAX MAX_11fea5 MAXLAN_error: 0
2015-12-16 10:42:03 MAX MAX_11fea5 MAXLAN_errorInCommand:
2015-12-16 10:42:03 MAX MAX_11fea5 MAXLAN_valid: 1
2015-12-16 10:42:03 MAX MAX_11fea5 MAXLAN_isAnswer: 0
2015-12-16 10:42:03 Text2Speech MyTTS playing: 0
2015-12-16 10:42:04 Text2Speech MyTTS playing: 1
2015-12-16 10:42:04 Text2Speech MyTTS playing: 1
2015-12-16 10:42:04 FS20 FS20_277257 toggle
2015-12-16 10:42:04 Text2Speech MyTTS duration: 2
2015-12-16 10:42:04 Text2Speech MyTTS endTime: 00:00:00
2015-12-16 10:42:07 Text2Speech MyTTS duration: 2
2015-12-16 10:42:07 Text2Speech MyTTS endTime: 00:00:00
2015-12-16 10:42:08 Global global ATTR AAA level0xec disarmed
2015-12-16 10:42:08 at alarm0.disarm.T Next: 10:42:11
2015-12-16 10:42:08 Global global DEFINED alarm0.disarm.T
2015-12-16 10:42:08 FS20 FS20_277255 toggle
2015-12-16 10:42:10 Text2Speech MyTTS playing: 0
2015-12-16 10:42:11 Text2Speech MyTTS playing: 1
2015-12-16 10:42:11 Global global DELETED alarm0.disarm.T
2015-12-16 10:42:11 Text2Speech MyTTS duration: 2
2015-12-16 10:42:11 Text2Speech MyTTS endTime: 00:00:00
2015-12-16 10:42:14 Text2Speech MyTTS playing: 0
Warum senden jedes mal so viele Max! Geräte? Dachte die Thermostate senden nur bei Änderungen und die Fensterkontakte nur beim auslösen und sonst einmal in der Stunde.
Hallo Martin!
Ich nehme an, daß MAX_11fea5 der Fensterkontakt ist auf den Du den Alarm triggern willst.
Im Event monitor Auszug sehe ich für dieses Gerät nur Einträge fürs Schließen, aber keine fürs Öffnen!
2015-12-16 10:42:03 MAX MAX_11fea5 closed
Trag einmal ins "Notify on RegExp"
MAX_11fea5:[Oo]pen.*
ein. Das sollte auf ein "open" mit großem als auch kleinem "o" triggern.
Da das "closed" klein geschrieben wird würde aber wahrscheinlich auch ein
MAX_11fea5:open.*
reichen.
Vergiß nicht nach dem Einragen der Werte den "Set Alarms" Knopf zu drücken und die Konfig. zu speichern!
Grüße
Rainer
Nein MAX_11fea5:[Oo]pen.* hat leider auch nicht den Erfolg gebracht.
Mir ist aber auch gerade aufgefallen das im Logfile nur closed angezeigt wird.
Im Logfile vom Fensterkontakt wird aber sehr wohl auch das opened angezeigt.
2015-12-16_11:40:47 MAX_11fea5 closed
2015-12-16_11:40:47 MAX_11fea5 firmware: 1.0
2015-12-16_11:40:47 MAX_11fea5 testresult: 2
2015-12-16_11:40:47 MAX_11fea5 closed
2015-12-16_11:40:47 MAX_11fea5 battery: ok
2015-12-16_11:40:47 MAX_11fea5 onoff: 0
2015-12-16_11:40:47 MAX_11fea5 closed
2015-12-16_11:40:47 MAX_11fea5 MAXLAN_initialized: 1
2015-12-16_11:40:47 MAX_11fea5 MAXLAN_error: 0
2015-12-16_11:40:47 MAX_11fea5 MAXLAN_errorInCommand:
2015-12-16_11:40:47 MAX_11fea5 MAXLAN_valid: 1
2015-12-16_11:40:47 MAX_11fea5 MAXLAN_isAnswer: 0
2015-12-16_11:41:48 MAX_11fea5 battery: ok
2015-12-16_11:41:48 MAX_11fea5 onoff: 1
2015-12-16_11:41:48 MAX_11fea5 opened
2015-12-16_11:41:48 MAX_11fea5 MAXLAN_initialized: 1
2015-12-16_11:41:48 MAX_11fea5 MAXLAN_error: 0
2015-12-16_11:41:48 MAX_11fea5 MAXLAN_errorInCommand:
2015-12-16_11:41:48 MAX_11fea5 MAXLAN_valid: 1
2015-12-16_11:41:48 MAX_11fea5 MAXLAN_isAnswer: 0
2015-12-16_11:42:48 MAX_11fea5 battery: ok
2015-12-16_11:42:48 MAX_11fea5 onoff: 0
2015-12-16_11:42:48 MAX_11fea5 closed
2015-12-16_11:42:48 MAX_11fea5 MAXLAN_initialized: 1
2015-12-16_11:42:48 MAX_11fea5 MAXLAN_error: 0
2015-12-16_11:42:48 MAX_11fea5 MAXLAN_errorInCommand:
2015-12-16_11:42:4
Liegt hier das Problem?
Ich bin zwar kein RegExp-Experte aber filterst du nicht auf open anstatt auf opened
Wenn ich das richtig sehe bedeutet [Oo]pen.* egal ob klein oder groß geschrieben und das Sternchen open und alles was noch dran hängt. Also zB. auch opened.
Aber was ich festgestellt habe, es funktioniert mit opened und auch einfach mit 1. Mir ist das nur nicht aufgefallen ,da es mehrere Minuten dauert bis das Alarmanlagen Modul es merkt.
Denke das liegt wohl daran das ich den Cube als maxlan laufen habe. Habe inzwischen auch gelesen das man die Abfrage auch per Attribut pollintervall einstellen kann und so zB. alle 10 Sekunden den Status abfragen. Denke aber das würde vielleicht den Raspberry überfordern. Gefunkt wird bei dieser Abfrage jawohl nicht, da nur über Netzwerk der Cube von Fhem abgefragt wird? Somit sollte sich eine häufige Abfrage nicht auf die 1% Regel auswirken?
der Punkt (".") steht für ein beliebiges Zeichen, der nachgestellte Stern ("*") für beliebig viele davon.
Bei DOS/Windows Wildcards entspräche "?" "." und "*" ".*"
Nicht doch, es handelt sich nicht um Wildcards, sondern um reguläre Ausdrücke. Das ist etwas Anderes.
LG
pah
Habe jetzt das pollintervall mal auf 10 Sekunden gesetzt und kann keine Probleme feststellen.
Die Alarmanlage funktioniert jetzt also grundsätzlich schon mal sehr gut.
Mein nächstes Problem liegt allerdings nun darin:
Ich nutze zum ausgeben vom Status Text2Speech und hatte mir gedacht auch den Alarm an sich damit aus zu geben. Dazu habe ich eine lange mp3 mit Sirenen Klang erstellt und lasse die bei Alarm abspielen.
Nur wie kann ich beim Alarm widerrufen die Ausgabe der Mp3 abbrechen? Hab im Wiki dazu keinen Befehl gefunden.
Ach ja in dem Zusammenhang, gibt es auch einen Befehl eine Sprachausgabe solange zu wiederholen bis mit einem weiteren Befehl diese abgebrochen wird?
ZitatNicht doch, es handelt sich nicht um Wildcards, sondern um reguläre Ausdrücke. Das ist etwas Anderes.
Ja, eh!
Was ich damit sagen wollte:
ein Regex: "abc.xyz" entspricht in der Funktion in etwa "abc?xyz" mit Wildcard und "abc.*xyz entspricht "abc*xyz".
Wollte nur im Vergleich mit Wildcards die Funktion dieser zwei Regex Ausdrücke verdeutlichen.
Oder liege ich da falsch?
LG
Rainer
Hallo,
ich habe mir das Modul auch mal eingerichtet. Funktioniert soweit super. Habe nur ein Problem und weiß nicht, was ich falsch mache.
Mir wird alles, was ich bei den Sensoren unter "Message Part I" und unter den Actoren unter "Unset Action" nicht eingetragen! Es wird stattdessen lediglich "undefined" geschrieben!
attr RM.alarm alarmSettings alarm6,alarm7,|set RauchmelderTeam alarmOn|undefined|20
Die Alarmanlage steht auf unlock und gespeichert habe ich danach auch! Was mache ich falsch?
Gruß
PE
Was sagt das Log ?
LG
pah
Im Log steht:
2015.12.19 11:47:55 1: [Alarm 0] No "Raise" device defined
2015.12.19 11:47:55 1: [Alarm 1] No "Raise" device defined
2015.12.19 11:47:56 1: [Alarm 3] No "Raise" device defined
2015.12.19 11:47:56 1: [Alarm 4] No "Raise" device defined
2015.12.19 11:47:56 1: [Alarm 5] No "Raise" device defined
2015.12.19 11:47:56 3: [Alarm 6] Created arm notifier
2015.12.19 11:47:56 3: [Alarm 6] Created disarm notifier
Das mit dem fehlendem Raise is mir klar, aber auch mit wird lediglich bei Message Part I und Unset undefined eingetragen.
Gruß
PE
Glaube ich nicht. Bitte mit vollständigen Definitionen arbeiten !
LG
pah
Hab's jetzt hinbekommen. Danke für die Hilfe.
Gruß
PE
Hallo,
das Modul funktioniert sehr gut.
Gibt es eine Möglichkeit im FHEM die Logeinträge für das Alarmmodul extra zu speichern und in FHEM extra anzuzeigen? Also eine Art logfile für das Alarmodul das im Alarmmenü mit angezeigt wird.
Damit man auswerten kann wann die Alarmanlage scharf geschalten wurde, unscharf geschalten wurde und wann ein Einbruch stattfand.
Gruß Thomas
Hallo,
großes Lob an den Ersteller, das Modul funktioniert wirklich sehr gut. Eine Frage hätte ich jedoch noch: Ich möchte einen Sensor so definieren, dass er z.B. tagsüber einen anderen Alarm auslöst als Nachts. Ist das möglich?
Danke!
Klar doch. Jeder Sensor kann jeden Alarm auslösen. Und tagsüber ist eben nur Alarm 4 aktiv, nachts dafür Alarm 5.
LG
pah
Hallo pah,
ist es möglich, dass dein Modul eventuell noch nicht auf FHEM 5.7 umgestellt ist? Ich erhalte bei einer Zeiteingabe von 0:00 (oder 00:00) bis 23:59 die folgende Fehlermeldung:
Zitat[Alarm 7] cannot be armed due to wrong delay timespec
Gruss Matthias
Hm. Erstens funktioniert das Modul bei mir bestens unter 5.7, zweitens wüsste ich nicht, dass sich an dieser Stelle etwas geändert hat.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 05 Januar 2016, 13:53:52
Hm. Erstens funktioniert das Modul bei mir bestens unter 5.7, zweitens wüsste ich nicht, dass sich an dieser Stelle etwas geändert hat.
LG
pah
Okay, ich dachte nur es könnte eventuell damit zusammenhängen. Kannst du einen Fehler erkennen (siehe Screenshot)?
Lg Matthias
Edit: Ich glaube den Fehler zu kennen.... :)
Das "Delay" Feld ist zwingend und nicht optional...
Edit2: Nun geht es :) Man sollte erst alle Felder oben ausfüllen und dann die Alarme setzen.
Guten Abend zusammen
ich würde gerne folgenden String in "Notify on RegExp" für einen Sensor einbauen:
HM_3060F4_Btn_02:Short.*|HM_3060F4_Btn_02:Long.1[^0-9].*
Klappt leider nicht - Der String wird beim Betätigen von "Set Alarms" einfach gelöscht...
Wenn ich die Teile einzeln reinschreibe funktioniert es aber:
HM_3060F4_Btn_02:Short.* <== funktioniert
HM_3060F4_Btn_02:Long.1[^0-9].* <== funktioniert auch.
Könnte mir bitte jemand einen Tipp geben?
Vielen Dank für Eure Mühe.
Schöne Grüße aus Bayern
Horst
| wird als Trennzeichen innerhalb der Attributwerte verwendet.
LG
pah
Zuerst einmal vielen Dank für dieses Modul, es funktioniert bei mir schon hervorragend :)
Eine Frage habe ich aber noch.
Gibt es eine modulinterne Möglichkeit, dass die Alarmanlage nur scharf geschaltet wird, wenn auch alle Sensoren ungleich dem Auslösezustand sind (z.B. müssen alle Fenster geschlossen sein um die Alarmanlage scharf zu schalten)?
Gruß,
Dennis
Nicht direkt. Man kann aber einen "stillen" Alarm definieren, der z.B. alle Fenster beinhaltet. Und das Scharfschalten des lauten Alarms außerhalb (in FHEM) an die Bedingung koppeln, dass der stille Alarm nicht ausgelöst ist.
LG
pah
Zitat von: Depechem am 28 Dezember 2015, 20:03:58
Hallo,
das Modul funktioniert sehr gut.
Gibt es eine Möglichkeit im FHEM die Logeinträge für das Alarmmodul extra zu speichern und in FHEM extra anzuzeigen? Also eine Art logfile für das Alarmodul das im Alarmmenü mit angezeigt wird.
Damit man auswerten kann wann die Alarmanlage scharf geschalten wurde, unscharf geschalten wurde und wann ein Einbruch stattfand.
Gruß Thomas
Hat keiner einen Hinweis von euch?
Hallo!
Ich finde das Modul prima, hätte aber eine Frage:
Möchte ich, wie in den Beispielen eine "2-stufige-Alarmanlage" (Komplettschutz, Schutz während im OG geschlafen wird), hätte ich auch gerne die passende Ansage über den Gong.
Ist es möglich, dass die "Wait action", "Arm action", "Disarm action" für die verschiedenen Alarm-Level unterschiedlich definiert oder parametriert werden?
Also z.B. Arm-Action:
- set WZ.Gong.MP3 playTone 50 if Alarm Level = 4
- set WZ.Gong.MP3 playTone 51 if Alarm Level = 4
Vielen Dank und Grüße
Zitat von: Depechem am 06 Januar 2016, 10:08:57
Hat keiner einen Hinweis von euch?
Hi,
ich habe mir mal ein fileLog AlarmAnlage (heisst bei mir nicht AAA, sondern Alarmanlage) eingetragen. Bekomme da zumindest die ARM/DISARM Meldungen. Das Auslösen eines PIR's / eines Kontaktes steht ja eigentlich in seinem 'eigenen' Log. Die Notifys landen auch in einem getrennten Log. Ich weiss, wodrauf Du hinaus willst (Was hat wann bei welchem Alarmlevel ausgelöst/Arm/Disarm/Welche Aktionen/Notifies wurden gestartet und das ganze in einem Alarmanlage-%Y.log), aber ich meine es ist so noch nicht implementiert/vorgesehen.
Beste Grüße
Michael
Hallo zusammen,
nachdem die Alarmanlage nun super läuft würde ich gerne weitere Funktionen damit stueren.
Gibt es vom Modul aus eine Möglichkeit die aktuellen Stati zu verwenden?
Ich möchte z.B. wenn level0xec aktiv ist und Button1 auf "on" geschaltet wird das Lampe1 auf "off" geschaltet wird.
Leider schaffe ich es seit Tagen nicht den Status von z.B. level0xec zu nutzen.
Hat jemand eine Idee?
Grüße!
Zitat von: Mikerick am 11 Januar 2016, 14:01:32
Hi,
ich habe mir mal ein fileLog AlarmAnlage (heisst bei mir nicht AAA, sondern Alarmanlage) eingetragen. Bekomme da zumindest die ARM/DISARM Meldungen. Das Auslösen eines PIR's / eines Kontaktes steht ja eigentlich in seinem 'eigenen' Log. Die Notifys landen auch in einem getrennten Log. Ich weiss, wodrauf Du hinaus willst (Was hat wann bei welchem Alarmlevel ausgelöst/Arm/Disarm/Welche Aktionen/Notifies wurden gestartet und das ganze in einem Alarmanlage-%Y.log), aber ich meine es ist so noch nicht implementiert/vorgesehen.
Beste Grüße
Michael
ja genau so etwas suche ich, am besten wäre es noch wenn man diese Logs wie in einer readingsHistory direkt als Fenster anzeigen könnte.
Hat Hr. Prof. Dr. Peter Henning dafür eine Idee oder Vorschläge!?
Selbstverständlich kann man alle ausgelösten Meldungen mit einem entsprechenden regulären Ausdruck abfangen - dieser könnte z.B. auf
\[Alarm
triggern. Und im entsprechenden FileLog-Device lässt sich das auch als Textfenster anzeigen.
Gibt es also alles schon.
LG
pah
Zitat von: davedeluxe am 12 Januar 2016, 00:41:54
Hallo zusammen,
nachdem die Alarmanlage nun super läuft würde ich gerne weitere Funktionen damit stueren.
Gibt es vom Modul aus eine Möglichkeit die aktuellen Stati zu verwenden?
Ich möchte z.B. wenn level0xec aktiv ist und Button1 auf "on" geschaltet wird das Lampe1 auf "off" geschaltet wird.
Leider schaffe ich es seit Tagen nicht den Status von z.B. level0xec zu nutzen.
Hat jemand eine Idee?
Grüße!
Sorry das ich nochmal nachfrage aber ich bin am verzweifeln damit.
Das mag an den seltsamen Begriffen liegen ("aktiv" und "Status" z.B.), die in der Frage vorkommen - die deuten nämlich darauf hin, dass es hier noch an ein paar Grundkenntnissen fehlt. Außerdem hat die Frage gar nichts mit dem Modul Alarm zu tun und ist deshalb hier im falschen Forum.
Also erstens: Einsteiger-Doku lesen und sich grundlegend mit Events vertraut machen.
Zweitens: Perl wenigstens rudimentär verstehen.
Drittens: Einen Trigger (z.B. notify, DOIF) auf den Event von Button1 setzen und nur wenn der Attributwert level0xec den gewünschten Wert hat den Schaltvorgang auslösen.
pah
Tolles Teil!!!
Ich quäle mich. Leider funkt die Zustandserkennung nicht. Die Routine habe ich mit dem Template in die 99_myUtils.pm erstellt. Der Alarm startet nicht selbst, wenn eine Tür/Fenster offen ist. Ich muss da schon mal nachhelfen. Dann bekomme ich auch mal die Routine ans Laufen mit dem Ergebnis der Fehlermeldung und siehe Anhang. Bitte hilf :D
PERL WARNING: Use of uninitialized value $value{"Schuppen.T"} in string ne at ./FHEM/99_myUtils.pm line 29.
Es handelt sich um die optischen Tür-Sensoren.
Es scheint, als ob der Alarm immer für alle Fenster und Türen startet
Zitatalarm4dly1: Schuppen/Kueche Tür + Bad/GWC Fenster
Das war es dann auch schon. Es kann ja nur an unterschiedlichen Zeichenketten liegen, die dazu führen.
Es fehlt aber auch die Wiederholung des Check nach x Sekunden. Das Schließen wird auch nicht erkannt. Ich gehe zu 100 % von eigenen Fehlern aus!! 8)
Vielleicht hilf das noch:
Zitatdefine alarm4.off.N notify (TFClose.warn:yes) {main::Alarm_Exec("AAA",4,"$NAME","$EVENT","off")}
attr alarm4.off.N group alarmNotifier
attr alarm4.off.N room Alarm
define alarm4.on.N notify (Bad.F:open)|(GWC.F:open)|(Kueche.T:open)|(Schuppen.T:open)|(TFOpen.warn:.*[TF].*) {main::Alarm_Exec("AAA",4,"$NAME","$EVENT","on")}
attr alarm4.on.N group alarmNotifier
attr alarm4.on.N room Alarm
016-01-17 09:03:11 CUL_HM Schuppen.T battery: ok2016-01-17 09:03:11 CUL_HM Schuppen.T trigger_cnt: 90
2016-01-17 09:03:13 CUL_HM Schuppen.T battery: ok
2016-01-17 09:03:13 CUL_HM Schuppen.T contact: closed (to g)
2016-01-17 09:03:13 CUL_HM Schuppen.T closed
Zitat von: ffdec am 17 Januar 2016, 08:43:35
Es handelt sich um die optischen Tür-Sensoren.
Es scheint, als ob der Alarm immer für alle Fenster und Türen startet Das war es dann auch schon. Es kann ja nur an unterschiedlichen Zeichenketten liegen, die dazu führen.
Es fehlt aber auch die Wiederholung des Check nach x Sekunden. Das Schließen wird auch nicht erkannt. Ich gehe zu 100 % von eigenen Fehlern aus!! 8)
Vielleicht hilf das noch:
016-01-17 09:03:11 CUL_HM Schuppen.T battery: ok2016-01-17 09:03:11 CUL_HM Schuppen.T trigger_cnt: 90
2016-01-17 09:03:13 CUL_HM Schuppen.T battery: ok
2016-01-17 09:03:13 CUL_HM Schuppen.T contact: closed (to g)
2016-01-17 09:03:13 CUL_HM Schuppen.T closed
Hallo,
ich bin zur Zeit auch gerade dabei die Zustandserkennung zu implementieren und auch bei mir läufts noch nicht rund. Könnte es bei Dir daran liegen, das die sub in der 99_myUtils.pm auf Closed statt closed vergleicht?
Hallo, nein ich vergleiche mit closed. Ich habe es auch schon mit ":" " " [cC]losed getestet-ohne Erfolg.
Zitat von: ffdec am 17 Januar 2016, 12:25:17
Hallo, nein ich vergleiche mit closed. Ich habe es auch schon mit ":" " " [cC]losed getestet-ohne Erfolg.
Hallo,
habe es bei mir wie folgt geändert:
if( ReadingsVal("EG.KuechenFenster","state","0") ne 'closed' ){
Damit läufts bei mir.
Suche jetzt nach einer Lösung, um diese Zustandswarnungen nach auslösen wieder automatisch scharf zu schalten.
Mein case ist, nach Haustürschliessung läuft die Zustandsprüfung und gibt per mytts Sprachausgabe und Pushmessage aufs Handy den Status über offene Fenster/Türen aus falls notwendig.
Ja, stimmt, damit gehts. Aber leider läuft die Erkennung wenn Fenster/Türen wieder zu, nicht. Wahrscheinlich muss die HouseOpen() separat aufgerufen werden.
Zitat von: ffdec am 17 Januar 2016, 18:19:50
Ja, stimmt, damit gehts. Aber leider läuft die Erkennung wenn Fenster/Türen wieder zu, nicht. Wahrscheinlich muss die HouseOpen() separat aufgerufen werden.
Ich denke hier greift ein anderes Prinzip.
Die Zustandsprüfung wird ausgelöst, wenn ein zugeordneter Sensor scharf geschaltet ist und den trigger bekommt. Nun werden die zugehörigen Alarmaktoren und damit HouseOpen ausführt.
Werden die Fenster wieder geschlossen, wird HouseOpen nicht automatisch neu gestartet. Dies müsste zusätzlich implementiert werden.
In meinem Case reicht mir die vorhandene Lösung. Nur das automatische "neu" scharf schalten muss ich noch einbauen, um beim nächsten Haustürschliessen die Zustandsprüfung wieder ausführen zu können. Dies ist im Alarmmodul von PAH wie schon einige Male in den Beiträgen genannt, bewusst nicht eingebaut worden.
Man kann problemlos in der eigenen HouseOpen()-Routine unterbringen, dass diese sich mit einem internen Timer alle 10 Minuten selbst aufruft. Und zwar so lange bis alle relevanten Fenster geschlossen sind.
So habe ich das bei mir gelöst.
LG
pah
Okay, das haben wir so weit.
- Die Warnung soll auch bei geöffnetem F/T zum Start der Sensorzeit erfolgen.
- Ich möchte gern, dass ich solange eine Nachricht bekomme, bis alle rel. F/T geschlossen sind (z. B. alle 10 min). Wichtig ist, dass bei Cancel ja auch wieder eine Benachrichtigung (Pushover) geschickt wird. Das soll so nicht sein.Das Cancel hilft wahrscheinlich nicht.
Wie haben das andere gelöst? Welche Möglichkeiten gibt es? Ich find grad den Anfang nicht. Sorry und danke für Eure Hilfe.
Hallo!
Ich hab das automatische Quitieren (wieder scharf schalten nach Auslösen) des Alarm 3 nach einer Minute mit zwei dummy devices gelöst:
define A_Info_Set dummy
attr A_Info_Set alarmDevice Actor
attr A_Info_Set alarmSettings alarm3,|set A_Info_Reset on|set A_Info_Set off;; set A_Info_Reset off|1:00
attr A_Info_Set group alarmHelperDev
attr A_Info_Set room Alarm
attr A_Info_Set webCmd on:off
define A_Info_Reset dummy
attr A_Info_Reset alarmDevice Sensor
attr A_Info_Reset alarmSettings alarm3,|A_Info_Reset|Quitiert|off
attr A_Info_Reset group alarmHelperDev
attr A_Info_Reset room Alarm
LG
Rainer
Hallo, funktioniert!
Super, vielen Dank! :D
Hallo,
ich versuche weiterhin meinen Use Case bei Haustüröffnung auf offene Fenster zu prüfen über das Alarmanlagenmodul umzusetzen.
Bei mir geht es um die automatische Scharfschaltung, so dass bei erneuter Türöffnung wieder auf offene Fenster geprüft wird. Dazu will ich natürlich nicht manuell jedes mal den cancel button drücken.
Den Vorschlag von gamauf habe ich implementiert aber nicht auf meine Fälle erfolgreich umändern können, da dort die Hausopen funktion alle x minuten erneut aufgerufen wird.
Würde mich über einen Vorschlag freuen, komme leider nicht richtig weiter.
Danke, Sven
Schau dir mal Beitrag #109 vom 30.10.2014 in diesem Thread an: http://forum.fhem.de/index.php/topic,26893.msg213151.html#msg213151 (http://forum.fhem.de/index.php/topic,26893.msg213151.html#msg213151)
Vielleicht ist es das was du suchst?
Gruß
Wolle
Zitat von: Wolle02 am 20 Januar 2016, 21:27:26
Schau dir mal Beitrag #109 vom 30.10.2014 in diesem Thread an: http://forum.fhem.de/index.php/topic,26893.msg213151.html#msg213151 (http://forum.fhem.de/index.php/topic,26893.msg213151.html#msg213151)
Vielleicht ist es das was du suchst?
Gruß
Wolle
Hallo Wolle, danke, hatte ich beim Suchen übersehen. Das war der entscheidende Hinweis. Jetzt läuft mein Case.
D.h die Haustür wird bewegt und der Check auf offene Fenster und Türen wird durchgefüht und bringt eine Pushovermessage mit dem entsprechendem Fenster. Zudem wird jetzt auch der Alarm über den Dummy automatisch gecancelt und wartet auf die nächste Haustüröffnung.
Das einzige was mich noch störrt, ist das beim cancel vorgang die cancel action durchführt wird. Diese würde ich gerne für den Fall dass das Ereignis vom Dummy ausgelöst wurde, nicht durchführen lassen. Frage ist, kann ich im Cancel Feld dieses EVENT vom DUMMY abfangen?
Danke, Sven
Hallo,
Bei mir läuft das Alarm Modul soweit sehr gut. Habe mir für den stillen Alarm (nur Überwachung) einen Aktor mit TelegramBot angelegt. Der lautet "set teleBot message $EVENT".
Als Ausgabe erhalte ich die Nachricht "open" wenn einer der 9 Sensoren anspricht.
Kann mir jemand sagen wie ich es schaffe, das mir z.B. "Küchenfenster open" angezeigt wird? Ich möchte sozusagen immer den auslösenden Sensor mit im Text haben. Hat jemand einen Vorschlag für mich ?
Hermann
$NAME $EVENT
Danke !
Zitat von: zwehn am 22 Januar 2016, 18:17:30
Hallo Wolle, danke, hatte ich beim Suchen übersehen. Das war der entscheidende Hinweis. Jetzt läuft mein Case.
D.h die Haustür wird bewegt und der Check auf offene Fenster und Türen wird durchgefüht und bringt eine Pushovermessage mit dem entsprechendem Fenster. Zudem wird jetzt auch der Alarm über den Dummy automatisch gecancelt und wartet auf die nächste Haustüröffnung.
Das einzige was mich noch störrt, ist das beim cancel vorgang die cancel action durchführt wird. Diese würde ich gerne für den Fall dass das Ereignis vom Dummy ausgelöst wurde, nicht durchführen lassen. Frage ist, kann ich im Cancel Feld dieses EVENT vom DUMMY abfangen?
Danke, Sven
Hallo zwehn,
das ist etwas, was ich auch noch plane. Magst du deinen Code vielleicht hier einstellen?
Vielen Dank,
Dennis
Ich habe seit gestern das Problem das die Verzögerung zum Scharfschalten nicht mehr greift:
2016.01.26 07:40:01 3: [Alarm 0] will be armed from device AlarmArm0 with event on, delay 00:60
2016.01.26 07:40:01 3: alarm0.arm.N return value: [Alarm 0] will be armed from device AlarmArm0 with event on, delay 00:60
2016.01.26 07:40:01 1: SendPush set pushmsg message Alarmanlage:Scharf geschaltet
2016.01.26 07:40:03 3: CUL_HM set Flur.Licht on-for-timer 1
2016.01.26 07:40:10 1: SendPush set pushmsg message Alarmanlage: Haustür nicht Verriegelt Einbruch Extern
2016.01.26 07:40:12 3: [Alarm 0] raised from device Haustuer with event unlocked (uncertain)
2016.01.26 07:40:41 1: SendPush set pushmsg message Alarmanlage:Alarm Quittiert
2016.01.26 07:40:43 3: [Alarm 0] canceled from device AlarmCancel
Gestern hatte ich auch im log eine Fehlermeldung / Warnung gesehen:
2016.01.25 21:45:45 1: PERL WARNING: Use of uninitialized value $2 in sprintf at ./FHEM/95_Alarm.pm line 434.
Da anscheinend alles richtig eingetragen ist weiß ich momentan nicht warum der Alarmsensor vor den 60s Wartezeit schon abgefragt wird.
Hat jemand einen Tipp für mich?
Grüsse Praktiker
Leider gibt es noch keine Lösung dafür, dass Alarm ausgelöst wird, wenn ein FK offen ist - beispielsweise um 22 Uhr die Fensterüberwachung startet. Das wäre ja auch wünschenswert, beim Scharf-schalten, um auf offene Kontakte hinzuweisen.
Hallo,
besteht die Möglichkeit einen Sensor zwei mal mit verschiedenen "Notify on RegExp" aufzuführen.
Ich habe zur Steuerung arm/disarm/cancel den HM-RC-Sec4-2 und der kann pro Kanal "Short" und "Long".
Ich würde dann gerne jeweils eine andere Aktion starten?!
@ffdec: Als Anfänger käme mir atok die Idee, dass in der Fensterüberwachungsroutine dann ein dummy-Sensor geschaltet wird, der in der Alarmschleife eingebunden ist und dadurch einen Alarm triggert?
Aber dass ist vermutlich zu kurz gedacht und scheitert aufgrund einer Beschränkung, die mir noch nicht bekannt ist...
Greets
Byte
Hallo!
Ich hab das so gelöst:
virtuelle CCU anlegen (falls nicht schon geschehen):
define vccu CUL_HM xxxxxx
attr vccu model CCU-FHEM
attr vccu IOList hmusb
attr vccu room CUL_HM
virtuelle Buttons deffinieren:
set vccu virtual 4
rename vccu_Btn1 V_HS_AL_armInt
rename vccu_Btn2 V_HS_AL_armExt
rename vccu_Btn3 V_HS_AL_light
rename vccu_Btn4 V_HS_AL_disarm
Alarm Sensor Dummies deffinieren:
define A_HS_AL_armInt_s dummy
attr A_HS_AL_armInt_s alarmDevice Sensor
attr A_HS_AL_armInt_s room Alarm
attr A_HS_AL_armInt_s group alarmHelperDev
define A_HS_AL_armInt_l dummy
attr A_HS_AL_armInt_l alarmDevice Sensor
attr A_HS_AL_armInt_l room Alarm
attr A_HS_AL_armInt_l group alarmHelperDev
define A_HS_AL_armExt_s dummy
attr A_HS_AL_armExt_s alarmDevice Sensor
attr A_HS_AL_armExt_s room Alarm
attr A_HS_AL_armExt_s group alarmHelperDev
define A_HS_AL_armExt_l dummy
attr A_HS_AL_armExt_l alarmDevice Sensor
attr A_HS_AL_armExt_l room Alarm
attr A_HS_AL_armExt_l group alarmHelperDev
define A_HS_AL_light_s dummy
attr A_HS_AL_light_s alarmDevice Sensor
attr A_HS_AL_light_s room Alarm
attr A_HS_AL_light_s group alarmHelperDev
define A_HS_AL_light_l dummy
attr A_HS_AL_light_l alarmDevice Sensor
attr A_HS_AL_light_l room Alarm
attr A_HS_AL_light_l group alarmHelperDev
define A_HS_AL_disarm_s dummy
attr A_HS_AL_disarm_s alarmDevice Sensor
attr A_HS_AL_disarm_s room Alarm
attr A_HS_AL_disarm_s group alarmHelperDev
define A_HS_AL_disarm_l dummy
attr A_HS_AL_disarm_l alarmDevice Sensor
attr A_HS_AL_disarm_l room Alarm
attr A_HS_AL_disarm_l group alarmHelperDev
virtueller HS Notifies:
define A_HS_AL_armInt_s_N notify V_HS_AL_armInt.trig_.*[Ss]hort set A_HS_AL_armInt_s press
attr A_HS_AL_armInt_s_N group alarmHelperDev
attr A_HS_AL_armInt_s_N room Alarm
define A_HS_AL_armInt_l_N notify V_HS_AL_armInt.trig_.*[Ll]ong set A_HS_AL_armInt_l press long
attr A_HS_AL_armInt_l_N group alarmHelperDev
attr A_HS_AL_armInt_l_N room Alarm
define A_HS_AL_armExt_s_N notify V_HS_AL_armExt.trig_.*[Ss]hort set A_HS_AL_armExt_s press
attr A_HS_AL_armExt_s_N group alarmHelperDev
attr A_HS_AL_armExt_s_N room Alarm
define A_HS_AL_armExt_l_N notify V_HS_AL_armExt.trig_.*[Ll]ong set A_HS_AL_armExt_l press long
attr A_HS_AL_armExt_l_N group alarmHelperDev
attr A_HS_AL_armExt_l_N room Alarm
define A_HS_AL_light_s_N notify V_HS_AL_light.trig_.*[Ss]hort set A_HS_AL_light_s press
attr A_HS_AL_light_s_N group alarmHelperDev
attr A_HS_AL_light_s_N room Alarm
define A_HS_AL_light_l_N notify V_HS_AL_light.trig_.*[Ll]ong set A_HS_AL_light_l press long
attr A_HS_AL_light_l_N group alarmHelperDev
attr A_HS_AL_light_l_N room Alarm
define A_HS_AL_disarm_s_N notify V_HS_AL_disarm.trig_.*[Ss]hort set A_HS_AL_disarm_s press
attr A_HS_AL_disarm_s_N group alarmHelperDev
attr A_HS_AL_disarm_s_N room Alarm
define A_HS_AL_disarm_l_N notify V_HS_AL_disarm.trig_.*[Ll]ong set A_HS_AL_disarm_l press long
attr A_HS_AL_disarm_l_N group alarmHelperDev
attr A_HS_AL_disarm_l_N room Alarm
und zuletzt die Knöpfe der physischen Handsender mit den Buttons des virtuellen peeren:
set HM_HS_AL_1_armInt peerChan 0 V_HS_AL_armInt single set
set HM_HS_AL_1_armExt peerChan 0 V_HS_AL_armExt single set
set HM_HS_AL_1_light peerChan 0 V_HS_AL_light single set
set HM_HS_AL_1_disarm peerChan 0 V_HS_AL_disarm single set
set HM_HS_AL_2_armInt peerChan 0 V_HS_AL_armInt single set
set HM_HS_AL_2_armExt peerChan 0 V_HS_AL_armExt single set
set HM_HS_AL_2_light peerChan 0 V_HS_AL_light single set
set HM_HS_AL_2_disarm peerChan 0 V_HS_AL_disarm single set
Dann zeigt das grüne Licht am Handsender auch den erfolgreichen Empfang an.
LG
Rainer
Danke für die schnelle Antwort!
So etwas habe ich gesucht.
Habe alles soweit eingerichtet, aber des direkte peeren scheint nicht zu funktionieren.
In den Tasten..
FB_SecureFernbedienung_armExt steht unter peerIDs 00000000.
In der Virtuellen Taste
V_HS_AL_armExt aber
peerList FB_SecureFernbedienung_armExt
...
Druck auf die FB blinkt auch nur kurz rot...
Muss ich in der Fernbedienung irgendetwas drücken, damit das peering übertragen wird?
Greets
Byte
schon im FHEM ein getConfig für FB_SecureFernbedienung initiiert und auf der Fernbedienung den anlern Knopf kurz gedrückt (damit sie aufs getConfig reagiert)?
Hallo,
hab gerade keinen Zugriff, danke für den Tipp, versuche ich.
Ich hatte getConfig auf den Channel (FB_SecureFernbedienung_armExt) ausgeführt, war dann wohl ein Anfängerfehler.
Soll ich dann auch in FHEM pairing aktivieren (wie beim aktivieren des Batteriestatus für HM-SEC-SC beim Kommando set NameMeines_HM-SEC-SC regSet cyclicInfoMsg on) ??
Berichte heute abend, ob es geklappt hat.
Greets
Byte
Hallo!
Nein, das pairing hat ja offensichtlich geklappt, sonst könnte FHEM ja nicht mit der Fernbedinung reden.
Probier nochmals das peering; nachdem Du in Fhem den Befehl abgesetzt hast mußt Du den Anlernknopf der FB drücken, damit es auch in der FB klappt!
Am Besten einzeln eine Taste nach der anderen peeren und Anlernknopf drücken.
LG
Rainer
Danke, das war die passende Antwort.
Nun gehts!
Fernbedienung quittiert auch mit grün.
Greets
Byte
Muss nochmal nachhören:
habe mich ans Wiki gehalten:
http://www.fhemwiki.de/wiki/Modul_Alarmanlage
und den Code
sub HouseOpen()
übernommen in 99_AlarmUtils.pm
Beim Start bekomme ich aber im Log folgende Meldung:
PERL WARNING: Use of uninitialized value $value{"EG_FensterBuero"} in string ne at ./FHEM/99_AlarmUtils.pm line 92.
EDIT: ok, dass ist nur eine Warnung und funktioniert trotzdem!
Zusatzfrage: es wird auf "ne "Closed" geprüft. In meinem state steht aber "closed" also kleingeschrieben...
Fürs Verständnis, ist ne nicht case sensitiv?
Greets
byte
Ich habe ganz verschiedene Devices, die OPEN, open, Open oder eben verschiedene Schreibweisen von Closed produzieren. Die werden bei mir alle auf EINE Schreibweise umgebogen. Wer das vermeiden möchte, sollte den Perl-Code entsprechend anpassen.
LG
pah
Hallo Zusammen,
kann mir bitte jemand helfen. :-[
Ich habe die Alarmanlage so eingerichtet wie im WIKI aufgeführt;. http://www.fhemwiki.de/wiki/Modul_Alarmanlage aufgeführt. Soweit alle gut gegangen, auch super gut erklärt.
Im Anhang sieht ihr meine Konfiguration. Ich habe zum testen 4 Fenstersensoren der Fa. Homematic im Einsatz. Alle kommunizieren mit der FHEM einwandfrei und geben einen Status ab: Open or Closed.
Im Syski wird erwähnt, dass man man mindestens einen Sensor braucht der auf Cancel steht was ich auch gemacht habe (siehe Global Cancel). Für dieses habe ich alle AlarmLevel entsprechend markiert mit dem "Aktion: Canceled" .
Ebenso habe ich für alle Sensor und Autoren gemäss dem Syswiki mit Attributen vergeben.
Ich habe leider das Problem, dass die Fenstersensoren keinen Actor ansprechen können. Im Fallbeispiel/Test wollte ich einfach eine email senden, wenn das Fenster Offen ist.
Eine email kann ich senden aus der Konsole oder wenn ich im FHEM den Befehl direkt eingebe. Somit kann das Perl Modul: Sendemail nicht das Problem sein.
Der Sensor der das Event abfeuern soll, heisst "EG_WC_Fenstersensor" und ich habe dazu bei Notify: "EG_WC_Fenstersensor:open" eingeben.
Fragen:
- Hat mir jemand einen allgemeinen Tip oder kann mir ggf. seine Ansteuerung zeigen (Bild oder Text)?
- Was mache ich Falsch?
Unten die zwei Bilder.
Gruss aus Freiburg, Markus
So wie die Reading aussehen, ist der Sensor nicht gepairt und kriegt auch keine Antwort.
Großes Problem mit den FK ist, die Schreibweisen für "Open" und "Close". opend, Opend,.... Schau unten in den Monitor und vergleiche. Wenn das nicht hilft, gibt es noch etwas anderes (hier im Thread). Suche ich notfalls raus.
Ich habe die optischen FK - HM-SEC-SCo. Da müsste FK:open gehen. Ich weiss nicht, ob es da verschiedene Chargen gibt.
Hallo Zusammen
danke für die schnelle Antwort.
Ich denke auch dass es mit dem Pairing zu tun haben muss.
Was meinst du mit dem Monitor?
Die Sensoren die ich habe sind auch die optischen. . --> HomeMatic Funk Tür / Fensterkontakt optisch HM-Sec-Sco
Muss ich noch was ergänzen?
Wenn du mir einen Tip hättest, würde es mir den Sonntag retten :)
Wenn ich das Fenster auf und zu mache, dann ändern sich auch die Reading. Sprich der Sensor geht von Close auf Open und umgekehrt.
Gruss, Markus
Okay, die Verbindung sieht gut aus. Trag einfach, wie in meinem vorletzten Text, den FK:open ein - ohne Gänsefüschen. Speichern, Set Alarm, Speichern
Ich meinte "Event monitor" ganz links unten....
Im oberen Fenster hast Du noch bei Alarm 5 den Haken bei Armed vergessen, dann nochmal set Alarm, speichern
@Warlock_2016
Wie schon geschrieben sind die Sensoren nicht mit FHEM gepairt.
Du must dein Homematic Adapter in dein Pairing modus versetzetn > Siehe wiki und dann am Sensor kurz die anlern Taste drücken. im Reading darf dann nichts mehr von ... to broadcast stehen.
Hier sollte so etwas auftauchen:
contact closed (to vccu) 2016-01-31 14:53:49
Erst danach würde ich mich den anderen Problemen zuwenden...
Grüsse aussm Pott
Praktiker
Bitte HomeMatic-Problem in einem anderen Forum diskutieren !
LG
pah
Hallo Danke
für die schnelle Antwort. Der Prof hat Recht. Es ist Homematic.
Dennoch geht es nicht. Ich habe alles so korrigiert Das Pairing war erfolgreich, wenn ich alle vier Fenster auf und zu mache wird der Status richtig angezeigt.
Aus dem Sys-WIKI geht nicht eindeutig hervor, ob die ich mit "virtuellen Notifier" arbeiten muss bzw. hier wären Beispiele hilfreich, obwohl es sonst super erklärt ist.
Ist das dann richtig: Obwohl Sensor: EG_WC_Fenstersensor heisst, muss ich dann "notify on RegEx" FS:open machen (siehe Bild)? Wo ist "FS" definiert? Wird es automatisch vergeben, weil ich den Sensor das Attribut Sensor vergeben habe?
Wenn ich den Menü Punkt "Everything gehe" , dann sehe ich ganz unten die gleiche Darstellung wie unter dem Raum/Menue Punkt "Alarm" (siehe Anhang). Dort kann man auch sehen, dass die WC_Fenster jetzt auf closed steht. Somit werden die Event doch abgefeuert, aber es folgen keine Aktionen :)
oder wäre doch EG_WC_Fenstersensor.open richtig?
Vielleicht könnte ihr mir dort nochmal Hilfe geben ;D
Gruss, Markus
Markus, deine Vermutung stimmt.
Das Modul Alarmanlage erstellt aus der regexp die notifiys.
Diese sollten mit dem Sensornamen übereinstimmen.
Hier ist ein notifiy der vom Modul erzeugt wurde:
(BM.Wohnzimmer:motion)|(Flur.Haustuer:open)|(Haustuer:unlocked)|(WC.Fenster:open)|(Wohnzimmer.TerassentuerLinks:open)|(Wohnzimmer.TerassentuerRechts:open) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","on")}
Grüße
Praktiker
Danke für die super schnelle Antwort.
Du sagst dass das Modul es aus der der Regexp liest
ich habe meinen "EG_WC_Fenstersensor" die folgenden Attributen mitgegeben:
alarmDevice: Sensor
alarmSettings: alarm7,|EG_WC_Fenstersensor open|WC Fenster|on
autoReadReg: 4_reqStatus
Sorry, was muss ich jetzt noch ergänzen :? :-\
Gruss, Markus
Schau mal ins log ob beim clicken auf den Buttoon Set Alarms alles geklappt hat, oder ob es fehler gab:
bei mir sieht es so aus:
2016.01.31 19:24:33 3: [Alarm 0] Created arm notifier
2016.01.31 19:24:34 3: [Alarm 0] Created disarm notifier
2016.01.31 19:24:34 3: [Alarm 1] Created arm notifier
2016.01.31 19:24:34 3: [Alarm 1] Created disarm notifier
Die notifys sind auch im room Alarm zu sehen
Ps: dein pairing ist immer noch nicht ok
Grüsse
Praktiker
Yuppi es hat funktioniert.
das Problem war: Ich habe die ganze Konfiguration gemacht, aber der "Save Button" hatte eine Wirkung, da die Alarmanlage geloogt war.
Jetzt geht es, vielen Danke für den Tip. Muss sagen Super programmiert von der Logik und den Überlegungen, auch echt mit Konzept.
Man kein Leider vernehmen, dass wenn das Fenster dann nur einmal eine email rausgeht. beim zweiten Mal passiert nix.
Bevor ein zweites mal was rausgeht, muss man den Alarm quittieren oder erneut die Alarmanlage scharf schalten?
Gruss, Markus
Hallo Zusammen,
besteht im Alarmmodul auch die Möglichkeit, dass man besser das Table-UI einbinden kann?
Hier wäre meine Frage:
Kann man die Grundfunktionen wie Cancel, Alarm scharf schalten, Alarm Status Allgemein auf einen Schalter bekommen, wo man die Steuerung und Monitoring auch ausserhalb Steuerung dieses Menü vornehmen kann?
Hat hier jemand Erfahrung damit?
In der Anleitung im Sys-Wiki würde ein Sensor definiert "Global.cancel" der für alle Level markiert ist. Hier wird auch davon gesprochen, dass man diesen benötigt, damit die Level alle notier abfeuern.
Ich denke viele End User von FHEM haben Anwenderfreundlicher GUI bzw. wollen den Presentationslayer entkoppeln oder gar alles auf einen einen konventionellen Taster legen. Speziell bei unseren Kindern oder Frauen, könne es more End User Friendly sein.
Hat da jemand Erfahrung damit?
Vielleicht habe ich auch was übersehen oder nicht verstanden 8) 8)
Gruss, Markus
Hallo,
wie kann ich denn das Notify auf MEHRERE Ereignisse setzen?
Ich möchte beim Fensterkontakt auf open UND auf den sabotageError on prüfen!
Eine | Verknüpfung scheint nicht zu funktionieren (da intern der String mit | verknüpft wird in der alarmSettings)
Zusatzfrage, mache ich es richtig in der Notify on RegExp: A_HS_AL_disarm_s:press.*
oder brauche ich hier nicht den Sensornamen aufführen...
Greets
Byte
ZitatSpeziell bei unseren Kindern oder Frauen, könne es more End User Friendly sein.
Das ist einfach Unsinn. ::) ::)
Die Anzeige des Moduls ist nicht zur
Bedienung gedacht - sondern zur
Konfiguration der Alarmanlage. Kinder haben daran nichts verloren.
ZitatVielleicht habe ich auch was ... nicht verstanden
Das ist sicher richtig. Bitte das Einsteiger-PDF lesen, darin ist beschrieben, wie man mit Hilfe von Tastern irgendwelche Funktionen in FHEM auslöst.
LG
pah
Nun habe ich auch noch mal eine Frage, bei Alarm bekomme ich automatisch eine Email mit den aktuellen Infos wie bereits beschrieben:
{DebianMail('...@gmail.com','Alarm',Value('AAA'))}
nun würde ich gern die gleiche Nachricht auf meinem Tablet als Sprachansage ausgeben wollen:
set androidTablet ttsSay ...
wie müsste der Ausgabecode heißen das mir aufs Tablet die gleiche Nachricht wie in der Mail angesagt wird?
Ich muss nochmal fragen, da ich mir damit die fhem.cfg zerschossen habe! :-\
Wenn man in das Notify Feld ein "|" eingibt, geht alles kapput! Denn intern wird das Zeichen wohl als Separator genutzt!!!
Daher 1. der Vorschlag, dieses Zeichen zu entwerten, denn sonst zerschießt man sich schnell seine Config!
Und nochmal die Nachfrage, wenn ich auf mehrere Notifys eines Sensors testen möchte, wie kann ich das machen??
Greets
Byte
Hallo Zusammen,
ich habe doch nochmal eine Frage zum Alarm_Modul was leider auf dem Sys-Wiki Anleitung klar hervorgeht.
Ich habe jetzt zwei Taster definiert: AButton und DButton was die Alarmanlage scharf (Armed) oder entschärfen (Disarmed) soll im Falle eine Alarms. Beide Schalter sind virtuelle Schalter die ich gerne über das WebFrontend steuern möchte als Taster.
Soweit so gut. Verstehe ich es aber richtig, dass drücken des Schalters hat keinen Einfluss auf die Settings der Alarmanlage "Armed/Cancel" im Header (Alarm 0-7) ? Dies bleibt unberührt und wird einmal festgelegt.
D.h. wenn es einen Alarm geben sollte und ich habe beispielsweise eine Sirene ausgelöst habe oder Rauchmeldersirene - Blinderalarm- würde der Schalter DButton (=Disarmed) den Alarm abschalten, auch aufgrund eines Fehlalarms. Wenn ich diesen Taster drücke würde dann auch eine Meldung geben die in ich oben im Settings "Disarmed" hinterlegt habe.
Wenn ich dann erneut den Schalter Button Armed erneut drücke, dann wird die Alarmanlage erneut scharf geschalten und auch hier würde einen Nachricht kommen oder Durchsage die ich unter Armed definiert habe.
:(
Gruss, Markus
Hallo Zusammen,
ich finde die Logic "House Open" Genial.
Dennoch eine Anmerkung zur Routine " sub HouseOpen()". Diese Überwachungsroutine soll ja checken, ob ja den Status der Fenster oder anderen Sensoren überwachen.
Wenn ich mir den Quellcode durchlese, dann kann sich beispielsweise im Code:
...
if( $main::value{'BK.F'} ne "Closed" ){
$kfo++;
$kfs = "BK/";
}
sehen, dass hier hard auf den Sensornamen gegangen wird (z.b. BK.F. ). D.h. würde ja heissen, dass ich dann alle meine 10 Sensoren über ein If zu prüfen hatte ?.
Könnte man die Logik nicht generisch aufbauen oder muss wirklich jeder einzelner Sensor geprüft werden.
Gruss, Markus
ZitatDaher 1. der Vorschlag, dieses Zeichen zu entwerten, denn sonst zerschießt man sich schnell seine Config!
Sicher nicht.
LG
pah
Ich habe meine Alarmanlage soweit fertig und sie funktioniert auch zufriedenstellend.
Ein Problem bleibt allerdings. Wenn die Alarmanlage auf arm oder disarm schaltet, dann spielt mein mp3 Gong den Ton für jedes aktive Level ab.
In meinem Fall 3 mal.
2016.02.03 10:42:47 3: CUL_HM set mp3.Gong playTone 001
2016.02.03 10:42:47 3: [Alarm 3] will be armed from device Alarm_arm with event on, delay 00:30
2016.02.03 10:42:47 3: alarm3.arm.N return value: [Alarm 3] will be armed from device Alarm_arm with event on, delay 00:30
2016.02.03 10:42:47 3: CUL_HM set mp3.Gong playTone 001
2016.02.03 10:42:47 3: [Alarm 6] will be armed from device Alarm_arm with event on, delay 00:30
2016.02.03 10:42:47 3: alarm6.arm.N return value: [Alarm 6] will be armed from device Alarm_arm with event on, delay 00:30
2016.02.03 10:42:48 3: CUL_HM set mp3.Gong playTone 001
2016.02.03 10:42:48 3: [Alarm 7] will be armed from device Alarm_arm with event on, delay 00:30
2016.02.03 10:42:48 3: alarm7.arm.N return value: [Alarm 7] will be armed from device Alarm_arm with event on, delay 00:30
2016.02.03 10:43:20 3: CUL_HM set mp3.Gong playTone 002
2016.02.03 10:43:20 3: CUL_HM set mp3.Gong playTone 002
2016.02.03 10:43:20 3: CUL_HM set mp3.Gong playTone 002
2016.02.03 10:45:09 3: alarm3.disarm.N return value: [Alarm 3] disarmed from device Alarm_disarm with event on
2016.02.03 10:45:09 3: alarm6.disarm.N return value: [Alarm 6] disarmed from device Alarm_disarm with event on
2016.02.03 10:45:09 3: alarm7.disarm.N return value: [Alarm 7] disarmed from device Alarm_disarm with event on
2016.02.03 10:45:12 3: CUL_HM set mp3.Gong playTone 003
2016.02.03 10:45:12 3: CUL_HM set mp3.Gong playTone 003
2016.02.03 10:45:12 3: CUL_HM set mp3.Gong playTone 003
Hättet Ihr einen Lösungsansatz?
Btw. Bei mir wird die Alarmanlage aktiviert, sobald die Keymatic locked ist. Deaktiviert über unlocked. Somit wird sie immer automatisch aktiviert.
Hi Peete.
Ich hatte ein ähnliches "Problem" da meine Alarmanlage ein anderes System updated und dies jeweils pro Level "doppelte" Updates erzeugt hat.
Soweit ich mich erinnere hat sich Herr Henning dazu schon geäußert hier im Thread und derzeit ist keine Änderung geplant.
Mein Workaround sieht so aus:
In der wait/arm action rufe ich ein Script auf (php script welches einen websocket bedient).
Am Anfang des Scripts wird der aktuelle Befehl (kann bei mir variieren), der von FHEM übergeben wird, in ein File geschrieben und am Ende wieder entfernt.
Das PHP script läuft ca. 2 Sekunden.
Sollte innerhalb dieser Zeit ein weiteres Script mit gleichem Befehl gestartet werden, beendet es sich. Ähnlich wie PID Files für Prozesse.
Somit konnte Ich sicher stellen dass zwar andere Befehle starten können während das Script läuft, aber gleiche Befehle nicht ausgeführt werden.
Also:
1) file lesen
2) wenn content mit aktuellen Befehl übereinstimmt beenden
2a) ansonsten Befehl in file schreiben
3) Websocket-Zeug ausführen (in deinem Fall MP3 abspielen)
4) file content löschen
Fühlt sich ein bisschen frickelig an, geht aber sehr gut.
lg
Mike
Hallo,
Nachdem auch Dank hilfe von zwehn meine Fenster-/Türkontrolle läuft habe ich noch ein Problem. Ich würde gerne die Prüfung auf offene Fenster auch dann durchführen wenn die Haustür geöffnet wird.
Lege ich mir folgendes notify an funktioniert das ganze schon mal:
define HausTuerOffen notify EV.T:open.* {fhem ("{HouseOpen()}")}
Dann läuft das ganze jedoch immer. Ixh möchte es noch daran koppeln das das notify nur abgearbeitet wird, wenn dar Alarm 4 auch scharf ist. Daran scheitere ich jedoch. Mit folgenden Befehl komme ich nicht weiter:
define HausTuereOffen notify EV.T:open.* {if ("Alarm_Pruefung" eq "on") {fhem("{HouseOpen()}"))}}
Kann mir jemand weiterhelfen.
Hermann
Ich darf mich selber korrigieren. Mit folgenden Befehl klappt es :
define HausTuereOffen notify EV.T:open.* {if (Value("Alarm_Pruefung") eq "on") {fhem("{HouseOpen()}")}}
Hallo Hermann,
kannst du mir nochmal helfen.
Ich selber kommt mit der Routine nicht ganz klar. Sub HouseOpen()" nicht klar. Diese Überwachungsroutine soll ja checken, ob ja den Status der Fenster oder anderen Sensoren überwachen.
Wenn ich mir den Quellcode durchlese, dann kann sich beispielsweise im Code:
...
if( $main::value{'BK.F'} ne "Closed" ){
$kfo++;
$kfs = "BK/";
}
sehen, dass hier hard auf den Sensornamen gegangen wird (z.b. BK.F. ). D.h. würde ja heissen, dass ich dann alle meine 4 Fenstersensoren über ein If zu prüfen hatte ?.
Könnte man die Logik nicht generisch aufbauen oder muss wirklich jeder einzelner Sensor geprüft werden indem man zugewiesen Attributen an Sensoren prüft.
Hast du einen Tip? Sonst ist das ganze ja Genial.
Gruss, Markus
Zur Logik der HouseOpen-Routine:
Tür- und Fenstersensoren können an ganz verschiedenen Orten auftauchen. Aber nicht jeder Sensor wird abgefragt - ich möchte beispielsweise nicht die Alarmanlage auslösen, wenn im Schlafzimmer des 1. OG das Fenster geöffnet wird. Damit scheidet entweder aus, die Sensoren alle systematisch zu benennen - oder sie alle mit einer Wildcard abzufragen. Also: Es wird wirklich im Code dieser Routine jeder abzufragende Sensor einzeln aufgeführt.
@Warlock: Wem das nicht gefällt => bitte eigenen Code schreiben, und bitte nicht als Neuling fortwährend über meinen Code meckern.
@Peete & jmike: Es macht durchaus Sinn, sich alle aktivierten Alarmlevel ansagen zu lassen - dann weiß man, welche Level aktiv sind. Man braucht übrigens nur 20 Zeilen Perl-Code, um aus drei einzelnen Meldungen eine Gesamtmeldung "Alarmlevel 4, 5 und 6 scharf geschaltet" zu machen. Und wenn immer dieselben Level zusammen scharf oder unscharf geschaltet werden, sollte man die sowieso besser zusammen legen.
Ich halte das auch mt den unterschiedlichen Alarmleveln, die man manuell einschalten muss, für wenig benutzerfreundlich - es ist bei einer komplexen Installation eben nicht einfach, sich zu merken, welcher Sensor zu welchem Level gehört. Viel besser: Nur EIN Level wird manuell scharf oder unscharf geschaltet, alle anderen laufen permanent mit (bzw. nur zu bestimmten Zeiten).
Und nur so als Fußnote: Es ist ungünstig, das Aussortieren von Doppelkommandos mit einem Skript und PHP zu machen. Mit einer Instanz des DOIF-Moduls lässt sich das in drei Zeilen FHEM-Code unterbringen.
LG
pah
Hallo Herr Henning.
Dem gibt es wohl kaum etwas hinzuzufügen.
Ich wollte ja auch keine Komplettlösung, sondern nur einen "Ansatz" liefern.
Für mich war das synchrone Schalten mehrerer Levels notwendig da ich die Haustüre bei ein paar Aktionen von den anderen Sensoren trennen wollte. Wer durchs Fenster einsteigt bekommt z.B. keinen "Entschärfungs-delay".
Das besagte PHP Skript ist ein komplexer Websocket Client, den konnte und wollte ich nicht in Perl neu schreiben nur um ihn in FHEM zu integrieren ;)
lg
mike
ps: für das Modul möchte ich mich an der Stelle bedanken. Es wurde an so vieles Gedacht und wenn das Konzept steht sind kleinere Änderungen, Tests etc. super umzusetzen!
Dann würde ich doch den "Entschärfungsdelay" direkt bei den Sensoren einbauen - so verhindere ich z.B., dass irgend ein Vorgang ausgelöst wird, nur weil ich mal kurz die Katze rauslasse.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 04 Februar 2016, 10:36:47
...den "Entschärfungsdelay" direkt bei den Sensoren einbauen
Hört sich gut an, hatte ich nicht mal auf dem Schirm dass dies geht.
Das wäre natürlich der sauberste Weg da es dann auch keine doppelten Aktoren (mit und ohne delay) gibt.
Danke für den Tip!
mike
Was für Sensoren sind das genau ?
LG
pah
Hallo allerseits,
nach länglicher Einlesephase mit anschließender Beschaffung bin ich nun auch soweit eine Alarmanlage mit dem hier diskutierten Modul einzurichten. Vorab herzlichen Dank an den Autor pah für die investierte Arbeit!
Zwar läuft das Modul bisher wie vorgesehen, aber ich habe eine grundsätzlich Frage zu den "Sensorregeln". Ich verstehe generell, warum ein Cancel-Button unbedingt da sein muss. In meinem Anwendungsfall stellt es sich jetzt allerdings so dar, dass ein Canceln des Alarms mit den Disarm Sensoren durchgeführt werden soll. Meinen Tests nach ist dies auch problemlos möglich: Die Cancel Aktion wird beim Betätigen eines Disarm-Sensors durchgeführt.
Damit die Alarmdefinition valide ist habe ich als Cancel-Sensor einfach einen ungenutzten Kanal eines HM-PBI-4-FM eingetragen.
Übersehe ich irgendwelche Nachteile durch das Auslassen eines Cancel-Buttons?
Grüße
Nils
Hallo
@Prof. Dr. Peter Henning:
Kurze frage, warum nicht?
Das Phänomen was auftritt ist, wenn ich in das Feld "Notify on RegExp" ein | eintrage,
ist nach dem Speichern der Konfigeintrag DEFEKT. D.h. das Notify und Messagepart, etc. werden nicht mehr korrekt gefüllt.
Nachvollziebar, da die "attr SENSOR alarmSettings " Ihre Eingenschaften mit | Zeichen trennt. Das nicht entwertete | bringt dann die ganze Config durcheinander.
Oder sehe ich das falsch?
Wäre gerne mit mehr als nur :
ZitatSicher nicht.
LG
pah
abgespeist worden...
Greets
Byte
@ pah: Ich nutze dort die HM-SEC-SCo.
Register heißt R-eventDlyTime
LG
pah
Zitat von: Depechem am 01 Februar 2016, 13:28:26
Nun habe ich auch noch mal eine Frage, bei Alarm bekomme ich automatisch eine Email mit den aktuellen Infos wie bereits beschrieben:
{DebianMail('...@gmail.com','Alarm',Value('AAA'))}
nun würde ich gern die gleiche Nachricht auf meinem Tablet als Sprachansage ausgeben wollen:
set androidTablet ttsSay ...
wie müsste der Ausgabecode heißen das mir aufs Tablet die gleiche Nachricht wie in der Mail angesagt wird?
kann mir hier wirklich keiner weiterhelfen :'(
das habe ich auch schon probiert, funktioniert aber leider auch nicht
{fhem('set androidTablet ttsSay'.ReadingsVal('AAA', 'short',undef))}
Zitat von: Depechem am 05 Februar 2016, 16:53:25
das habe ich auch schon probiert, funktioniert aber leider auch nicht
{fhem('set androidTablet ttsSay'.ReadingsVal('AAA', 'short',undef))}
Ich kenne das ttsSay zwar nicht aber da fehlt meines Erachtens nach ein Space zwischen ttsSay und ReadingsVal fehlen.
Also so:
{fhem('set androidTablet ttsSay '.ReadingsVal('AAA', 'short',undef))}
Ansonten ist der Befehl ja "set androidTablet ttsSayDeine-Meldung-aus-short"
Wenn das auch nicht geht würde ich den Befehl mal ins Log schreiben und mal manuell ausführen.
z.B.
{Log 1, 'set androidTablet ttsSay '.ReadingsVal('AAA', 'short',undef)}
Zitat von: jmike am 05 Februar 2016, 17:01:56
Ich kenne das ttsSay zwar nicht aber da fehlt meines Erachtens nach ein Space zwischen ttsSay und ReadingsVal fehlen.
Ich fasse es nicht, daran lag es wirklich. Vielen Dank!!!
Guten Abend,
ich habe ein Problem mit dem "ArmWait" Feld. Folgende set-Verkettung wird nicht korrekt ausgeführt:
set EZ.Sound playTone 001;;set roteLED on
Log dazu:
2016.02.08 00:15:24 3: CUL_HM set EZ.Sound playTone 001 ; set roteLED on
Konnte das Problem nur umgehen, indem ich den Befehl durch folgende Perl-Syntax ersetzt habe:
{fhem('set EZ.Sound playTone 001');;fhem('set roteLED on')}
Allerdings funktioniert die ursprünglich Syntax ohne geschweifte Klammern in einem anderen Feld, zB. in "ArmAction". Mir schient, als würden die Befehle unterschiedlich gehandled, kann das sein? Und wenn ja, ist das beabsichtigt?
Gruß
Nils
Hi Nils.
Nimm mal nur ein ;
set EZ.Sound playTone 001; set roteLED on
Hier könntest du auch mehrere fhem Befehle gleichzeitig angeben:
{fhem('set EZ.Sound playTone 001; set roteLED on')}
Lg
Mike
Hallo Mike,
klasse das funktioniert auf Anhieb, danke. Habe dann direkt mal alle Felder in den Alarms konsistent angepasst.
Ist das eine Besonderheit in diesem Modul oder ist die Schreibweise jetzt generell mit nur einem Semikolon? In der FHEM für Einsteiger PDF steht nämlich noch die Notation mit ";;".
Gruß
Nils
@Nils
Bei den Anleitungen und dem Einsteiger Pdf muss man unterscheiden
Ob die Sachen im Webintwrface oder direkt in die FHEM.cdg eingetragen werden.
Daher die 2 ;. Ist für Einsteiger leider nicht immer ersichtlich.
Hier ist also ein ; ausreichend.
Grüße
Praktiker
Okay, das erklärt einiges. Hilfreicher Kommentar, danke Dir Praktiker!
Grüße
Hallo Zusammen,
ich versuche gerade das Modul bei mir einzubinden. (De)-Aktivieren klappt auch alles. Nur der Bewegungsmelder löst keinen Alarm aus.
Dieser schaltet per Notify ein Aktor welcher das Licht an und aus schaltet.
Das klappt mit
flur.bw.oben_Motion:motion.*
Jetzt soll dabei auch der Alarm ausgelöst werden. Daher habe ich im Alarmodul als RegExp ebenfalls
flur.bw.oben_Motion:motion.*
eingetragen.
Alledings erhalte ich folgende Fehlermeldung im Log:
[Alarm 0] not raised, alarmSensor flur.bw.oben_Motion has wrong settings
Welchen Fehler habe ich denn dort gemacht? Den sehe ich leider nicht. :'(
Hi.
Die Meldung kommt wenn das Attribut "alarmSettings" auf deinem Aktor nicht sauber geparst werden kann.
Da sollte sowas drinstehen wie: "level|regex|message1|on-off". Das Attribut wird vom Modul gefüllt wenn du "Set Alarms" drückst, denke aber nicht dass es an der Regex liegt.
Wie sehen die anderen Optionen aus für diesen Sensor, was hast du zum Beispiel in "Message Part 1" drin stehen?
Zeig mal flur.bw.oben_Motion (z.b. mit telnet> list flur.bw.oben_Motion).
lg
mike
Hey,
list flur.bw.oben_Motion
hat mich auf die Richtige Spur gebracht. Ich habe den kompletten Bewegungsmelder als Sensor gesetzt. Nicht den jeweiligen Kanal. Daher wurden auch die Settings falsch befüllt.
Danke
Hallo Leute,
ich versuche im Alarmfall eine WhatsApp-Nachricht rauszuschicken. Die kommt auch an, aber die im Wiki angegebenen Variablen werden nicht alle aufgelöst
Beim Aktor ist als "SET ACTION" folgendes kodiert
set WhatsApp send 4916xxxxxxxx $NAME $EVENT $EVTPART2 $EVTPART1 $STATE
Es kommt aber nur folgendes an
Test on $EVTPART2 $EVTPART1 $STATE
$NAME wir zu "Test" aufgelöst, $EVENT zu "on", die restlichen Variablen werden nicht aufgelöst.
Was mache ich falsch?
Gruß, Peter
Kann ich nicht nachvollziehen, das sollte korrekt funktionieren.
LG
pah
Edit: Da habe ich mal Unsinn geschrieben. Habe ich August 2014 so gelöst, dass nur in Message Part I eine Substitution vorgenommen wird. Wird auch so bleiben.
LG
pah
Habe das Modul jetzt weitestgehend nach meinen Wünschen konfiguriert, zwei Punkte bleiben jedoch offen - ich würde mich über Hilfe sehr freuen.
- Ich möchte beim Scharfschalten von Alarmlevel 7 eine andere WaitAction ausführen wenn noch Sensoren des Levels den State Open haben (-> Akustische Rückmeldung: "Scharf geschaltet, aber es sind Fenster auf. Bitte schließen").
Auch eine Überlegung wert: Verhinderung der Scharfschaltung wenn Sensoren des Levels Open sind.
- Alarmlevel 7 wird über einen langen Druck auf einen HM-PBI-4-FM scharf geschaltet. Wenn man länger als 1sec drückt, wird jedoch die WaitAction mehrfach ausgeführt (HM-Funkgong -> "Alarmanl..", "Alarmanl..", "Alarmanlage wird scharf geschaltet"). Das ist unschön, wie kann ich das am besten abfangen?
Danke im Voraus und Gruß
Nils
Zitat von: NilsB am 08 Februar 2016, 21:20:38
Alarmlevel 7 wird über einen langen Druck auf einen HM-PBI-4-FM scharf geschaltet. Wenn man länger als 1sec drückt, wird jedoch die WaitAction mehrfach ausgeführt (HM-Funkgong -> "Alarmanl..", "Alarmanl..", "Alarmanlage wird scharf geschaltet"). Das ist unschön, wie kann ich das am besten abfangen?[/li][/list]
Du könntest auf LongRelease triggern lassen.
Hi Nils.
Wie Ralli schon sagte, LongRelease anstelle von Long sollte dem zweiten Problem Abhilfe schaffen.
Dein erstes Anliegen wird von Herrn Henning auch im Wiki behandelt, Du brauchst eine Routine die deine Sensoren prüft.
Ich habe es so gehandelt dass die Sensoren selbst eine Routine anstarten (notify) die wiederum alle Sensoren prüft.
Sollte alles zu sein, ist der Wert des Readings "armError" 0. Ansonsten steht eben drin was noch offen ist, dann darf jedoch gar nicht scharf geschaltet werden.
Jeder der sich mit einem 3min Video "vorbereitet" bekommt einem Röhrchen und einer Schnur ein gekipptes Fenster in max. 5min auf. Gekippte (oder gar offene) Fenster sind eine direkte Einladung.
lg
mike
Hallo darkness,
wie hat Dir der Tipp genau weitergeholfen?
Gruß,
Adriano
Zitat von: darkness am 08 Februar 2016, 11:51:22
Hey,
list flur.bw.oben_Motion
hat mich auf die Richtige Spur gebracht. Ich habe den kompletten Bewegungsmelder als Sensor gesetzt. Nicht den jeweiligen Kanal. Daher wurden auch die Settings falsch befüllt.
Danke
Ich hatte dem Device (also dem Kompletten Bewegungsmelder) das Attribut alarmDevice Sensor zugewiesen. In dem Alarmmodul habe ich aber nur den Kanal "Motion" des Bewegungsmelders ausgewertet.
Das hat dazu geführt, dass das die alarmSettings für den Bewegungsmelder gesetzt wurden. Nicht aber für den jeweiligen Kanal.
Es muss also der jeweilige Kanal als Sensor eingerichtet werden (was im nachhinein auch logisch ist :) )
Aufgefallen ist mir dies, nachdem ich mit
list flur.bw.oben_Motion
gesehen habe, das die Attribute Sensor und AlarmSettings nicht vorhanden waren
Zitat von: Prof. Dr. Peter Henning am 08 Februar 2016, 21:05:39
Kann ich nicht nachvollziehen, das sollte korrekt funktionieren.
LG
pah
Wie kann/muss ich denn die im Alarm-Interface eingegebenen Werte aus den Feldern "Message Part 1" und "Message Part 2" in meine Alarmmeldung einbauen? Das sind die Angaben die mir eigentlich fehlen.
VG Peter
Hi Peter.
Die Meldung in $EVENT wird aus den Texten aus Part1 und Part2 zusammengefügt.
Wenn also Level-n Message Part 2 "geöffnet" ist,
und Sensor-n Message Part 1 "Fenster" ist,
Dann wird "Sensor-n Fenster geöffnet" in $EVENT stehen.
Hilft das?
lg
mike
Hallo Mike,
so hatte ich mir das auch gedacht. Folgende Ausgangssituation:
Devicename: "AlarmEinSchalter" (ist mein Sensor der den Alarm auslöst)
Message Part II: "Test1"
Message Part I: "Ein"
Set Section des Aktors: "set WhatsApp send 4916xxxxxxxx - $NAME - $EVENT - $EVTPART1 - $EVTPART2 -"
Wenn ich den Alarm auslöse kriege ich eine Whatsapp-Nachricht mit folgendem Inhalt
- AlarmSchalterEin - on - $EVTPART1 - $EVTPART2 -
Der Status der Alarmanlage wechselt schön brav nach "Ein Test1", also so wie ich es erwartet hätte.
Was läuft falsch?
VG Peter
Wenn ich das Coding des 95_Alarm.pm wie folgt anpasse
$cmd = AttrVal($name, "level".$level."onact", 0);
my @mgapart = split(" ",$mga);
$cmd =~ s/\$NAME/$dev/g;
$cmd =~ s/\$EVENT/$evt/g;
for( my $i=1;$i<= int(@mgapart);$i++){
$cmd =~ s/\$EVTPART$i/$mgapart[$i-1]/g;
}
fhem($cmd);
kriege ich die richtige Meldung "AlarmEinSchalter on Ein Test1" geschickt.
$evt enthält nur "on", folglich ergibt das geparsed $EVTPART1="on" und $EVTPART2="".
In der Variable $mga stehen die beiden Teile Message Part I & II drin, also "Ein Test1".
Vielleicht wäre es sinnvoll die Variablen für den Actor-Command $MSGPART1 und $MSGPART2 zu benennen.
Nun ist der Autor gefragt...
VG Peter
Ah oke.
Ich schick mir eine iMessage aufs Handy mit Action: {imsgUs(ReadingsVal('AAA','short',''))}
korrektur:
Probier mal: {fhem("set WhatsApp send 4916xxxxxxxx -". ReadingsVal('AAA','short',''))}
Das $EVENT is natürlich das event dass vom Sensor geschickt und von der Alarmanlage ausgewertet wird - somit in meiner ersten Antwort falsch. Sorry für den Schnellschuss
Der Autor ist hier gar nicht gefragt und mag diesen Tonfall auch nicht gerne hören. Im Reading "short" steht alles drin.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 11 Februar 2016, 05:01:42
Der Autor ist hier gar nicht gefragt und mag diesen Tonfall auch nicht gerne hören. Im Reading "short" steht alles drin.
LG
pah
Hallo Herr Henning,
das Statement "Nun ist der Autor gefragt..." war wohl etwas zu kurz ausgefallen und keineswegs negativ gedacht, sondern eher im Sinne von "fragen wir mal den Wissenden".
Ich taste mich langsam an das Alarm-Modul heran und habe auch nach Studium des Wikis noch keine Idee was ich beim Aktor konkret unter "Set Action" angeben muss, um die Nachricht mit detailliertem Meldungstext per WhatsApp zu versenden.
Ich hatte meinen Ansatz "set WhatsApp send 4916xxxxxxxx $NAME $EVENT $EVTPART2 $EVTPART1 $STATE" als Antwort #505 gepostet zu der Ihre Aussage im Post #506 war: "Kann ich nicht nachvollziehen, das sollte korrekt funktionieren."
Meine weiteren Versuche zeigten dann, dass im Modul zwischen dem abgreifen der "Set Action"-Variable und der Übergabe an fhem keine weitere Variablenauflösung mehr stattfindet. Das war für mich der Anlass den Autor zu fragen. Die Fragen wären
- Was sieht das Konzept vor?
- Kann/darf ich unter "Set Action" noch Variablen angeben?
Der Hinweis auf das Reading "short" mag eine Lösung sein, beantwortet aber nicht die Frage an welchen Stellen ich überhaupt eine Auflösung der Variablen $NAME, $EVENT etc. erwarten darf.
Ich habe eben die von jmike vorgeschlagene Lösung "{fhem("set WhatsApp send 4916xxxxxxxx -". ReadingsVal('AAA','short',''))}" unter "Set Action" eingetragen, die scheint aber nicht zu funktionieren. Zumindest wird das Statement nach der Speicherung nur noch verstümmelt angzeigt und es geht keine Alarmmeldung raus.
Deshalb auch hier wieder die Frage an den Autor:
- Was muss ich unter "Set Action" angeben, um das Reading "short" abzugreifen.
Falls das Coding dahingehend erweitert wird, dass auch unter "Set Action" Variablen aufgelöst werden, wäre es schön auch auf Message Part I & II zurückgreifen zu können.
VG plin
@Ralli & Mike:
Vielen Dank - der Tip mit long release haut zwar für den HM-PBI-4-FM nicht hin, weil dieser kein long release sendet, aber das hat mich auf die richtige Spur gebracht: Der Sensor inkrementiert einen Counter mit zunehmender Zeit beim gedrückt halten. Somit triggere ich jetzt einfach auf folgende RegExp:
EZ.vierfachTasterTuer.Btn01:Long\s1.* (Long 2, Long 3, usw. werden somit ignoriert).
Zitat von: jmike am 09 Februar 2016, 11:41:19
Dein erstes Anliegen wird von Herrn Henning auch im Wiki behandelt, Du brauchst eine Routine die deine Sensoren prüft.
Ich habe es so gehandelt dass die Sensoren selbst eine Routine anstarten (notify) die wiederum alle Sensoren prüft.
Sollte alles zu sein, ist der Wert des Readings "armError" 0. Ansonsten steht eben drin was noch offen ist, dann darf jedoch gar nicht scharf geschaltet werden.
Zum dem Thema bin ich allerdings noch nicht weiter gekommen. Das Kapitel über Routinen im Wikieintrag von pah habe ich schon gelesen, konnte es aber vorher auch nicht auf meine Problemstellung übertragen. Zwar verstehe ich das Auslagern in die 99_myUtils.pm. Aber pah nutzt dieses Konstrukt meinem Verständnis nach, um ein eigenes Alarmlevel auszulösen, welches dann eine entsprechende Warnung für geöffnete Fenster ausgibt. Das ändert aber doch erstmal nichts am Verhalten eines anderen (höheren) Alarmlevels, oder?
Die Beschreibung deines Setups klingt genau nachdem was ich möchte, jmike. Aber woher stammt das Reading "armError"? Und wie wird von diesem die Scharfschaltung der Alarmanlage nach Druck einer Taste abhängig gemacht?
Besten Gruß
Nils
Die Event-Variablen werden nur in der "Message Part I" ersetzt. Das wird auch so bleiben - denn nur diese Message ist vor dem zentralen "Switchboard" des Moduls angeordnet.
Meinen Post
ZitatKann ich nicht nachvollziehen, das sollte korrekt funktionieren
muss ich demnach berichtigen - das stimmt so nicht. Ich hatte nicht mehr in Erinnerung , wie und warum ich das so gelöst hatte.
Zum "nicht funktionierenden Beispiel": Das ist eine Frage der Anführungszeichen.
Last: zusätzliche Variablen für Substitutionen sind nicht geplant.
Mein Tipp also: Komplexe Aktionen in einem eigenen Perl-Unterprogramm ablegen.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 11 Februar 2016, 19:36:11
Zum "nicht funktionierenden Beispiel": Das ist eine Frage der Anführungszeichen.
Nicht nur. Es gibt noch mehr Klippen:
- Das Leerzeichen zwischen dem Punkt und ReadingsVal
- 'AAA' als Name bedingt, dass die Alarmanlage auch unter diesem Namen angelegt wurde
VG plin
Zitat von: plin am 11 Februar 2016, 19:48:34
Es gibt noch mehr Klippen...
@plin:
Bin mir nicht sicher wo dein Post hingehen soll. Sollen wir das als Beschwerde auffassen? Oder vielleicht besser, geht nun alles bei dir?
Das Leerzeichen
". ReadingVal
ist sicher kein Problem. Du könntest auch
" . ReadingVal
oder
".ReadingVal
ausführen.
Alles das gleiche Ergebnis, siehe
perl concatenation.
Zum Device Namen "AAA" im Beispiel... Das obliegt wohl deiner Fähigkeit jegliches Wissen im Netz umzusetzen.
Als Tip zum weiterkommen falls es noch nicht geht:
Schreibe doch den Befehl einfach mal ins Logfile mit
{Log 1, "hier ist mein Befehl" . ReadingsVal(...)}
und poste den Output hier.
Denn noch wissen wir überhaupt nicht was tatsächlich bei dir ausgeführt wird bzw was/wo verstümmelt wird.
Grüße
Mike
Zitat von: NilsB am 11 Februar 2016, 19:21:13
Die Beschreibung deines Setups klingt genau nachdem was ich möchte, jmike. Aber woher stammt das Reading "armError"? Und wie wird von diesem die Scharfschaltung der Alarmanlage nach Druck einer Taste abhängig gemacht?
Hi Nils.
Uh da hat wohl ein kleines Zauberwort in meinem vorherigen Post gefehlt, nämlich "Dummy" ;)
Also, hier ein konkreter
Vorschlag:
Dummy Device anlegen:
define ready2Arm dummy
Notify anlegen (alles was auf tuer oder fenster endet und open oder closed events schreibt):
define fensterKontaktNtfy notify .*(tuer|fenster)+\S(open|closed)$ {checkArmState();}
checkArmState Sub in 99_myUtils bauen:
sub checkArmState{
my @sensors = ("Kuechenfenster","Terassentuer","GaesteWCfenster","ArbeitsZimmerfenster");
my $msg;
foreach my $sensorName (@sensors){
if( ReadingsVal($sensorName,"state","unkown") eq "closed" ){
# Log 1, "CAS: sensor $sensorName is - ".ReadingsVal($sensorName,"state","unkown")."(closed)";
}else{
Log 1, "CAS: sensor $sensorName is - ".ReadingsVal($sensorName,"state","unkown");
$msg .= "$sensorName ist offen!\n";
}
}
if($msg){
fhem("setReading ready2Arm armError $msg");
Log 1, "CAS: not read to arm - $msg";
}else{
fhem("setReading ready2Arm armError 0");
Log 1, "CAS: ready to arm..";
}
}
Den Code habe ich etwas zurechtgeschnitten (dead-device check z.b.) um ihn auf das wesentliche zu beschränken und so Sachen wie das Array mit der "hardcoded" Devicelist kann man sicherlich besser machen (z.b. mit Attributen pro Device).
Aber nun sollte dir das Reading armError vom Device ready2Arm immer sagen was alles offen ist - oder 0 sein wenn alls zu ist.
Und jetzt kannst du dann switches, at's, Anwesenheitschecks usw. drum rum bauen.
Da ich keinen Wandtaster zum Scharf Schalten nutze (sondern eine jquery WebApp) hier als Inspiration eine Auto-Scharfschaltung für 22:00
(pushlow/pushhigh ist was selbstgebautes für pushover.)
define autoArmAtNight at *22:00 {
if(AttrVal("AAA","level3xec","") eq "armed"){
pushlow('A: remain armed');
}else{
if(ReadingsVal("ready2Arm","armErroR","") eq "0"){
fhem("set AAA armed 3");
pushlow('A: autoarmed');
}else{
pushhigh('A: cannot arm because '.ReadingsVal("ready2Arm","armErroR",""));
}
}
}
Ich bin sicher dass du daraus was bauen kannst damit dein EZ.Sound dich entsprechend informiert. Auch mal einen Blick auf device type "sequence" werfen :)
lg
Mike
ps: Es ist ein Vorschlag, ein Beispiel oder ein Inspirationsanstoss - keine "Komplettlösung"
ZitatSollen wir das als Beschwerde auffassen?
Ich fasse es zumindest so auf, und sage deshalb an der Stelle nur noch: Wir sind eine freie Welt, jeder kann sich die Software schreiben, die ihm gefällt.
LG
pah
Hallo zusammen,
dieser Thread scheint etwas längere, präzisere Antworten zu verlangen. Ja, es funktioniert jetzt bei mir, danke für die Aufklärung/Unterstützung. Die finale Syntax lautet
{fhem('set WhatsApp send 4916xxxxxxxx Alarm: '.ReadingsVal('Alarmanlage','short',''))}
Trotzdem möchte ich gerne im Sinne einer Anregung vortragen, dass es aus meiner Sicht durchaus wünschenswert wäre auch im Feld "Set Action" Variablen nutzen zu können. Aus meiner Sicht ist eine Syntax
set WhatsApp send 4916xxxxxxxx Alarm: $MSGSHORT
deutlich übersichtlicher als die oben vorn mir angeführte Langfassung mit diversen Klammern und Hochkommas die keine Gänsefüßchen sein dürfen. Die Lösung im Modul könnte ein Dreizeiler für die Variablen $NAME, $EVENT und $MSGSHORT sein. Den Befehl in eine perl function auszulagern ist noch komplexer und wird viele Anfänger abschrecken. Warum sollte man das Ganze nicht so übersichtlich machen, dass Syntaxfehler bei der Eingabe reduziert werden?
VG plin
P.S. Es hätte wohl "Es gab noch mehr Klippen:" heißen müssen.
set WhatsApp send 4916xxxxxxxx Alarm: [Alarmanlage:short]
Zitat von: justme1968 am 12 Februar 2016, 17:23:15
set WhatsApp send 4916xxxxxxxx Alarm: [Alarmanlage:short]
Danke justme1968, das sieht gut aus/überschaubar.
VG Peter
ZitatTrotzdem möchte ich gerne im Sinne einer Anregung vortragen
Abgelehnt, und jetzt reicht es bitte.
pah
Stichwort "Alias"
Nach Studium des Wikis und dieses Threads frage ich mich, ob schon mal diskutiert wurde den Aliasnamen statt des Devicenamens anzuzeigen (sofern definiert)?
Hintergrund: Da im Devicenamen weder Umlaute noch blanks erlaubt sind, habe ich die Devicenamen der per autopair erzeugten Tür-/Fensterkontakte nicht geändert. Über Aliase erzeuge ich dann die gewünschten Texte wie "Terrassentür (links)". D.h. die stehen als "HM_ABC123" in FHEM drin und werden so auch in der Liste der Alarmsensoren angezeigt.
Hallo zusammen,
eine kleine Anregung für alle die erst mit dem Alarmanlagenmodul eingestiegen sind und nicht die damals im Wiki beschriebene Lösung implementiert haben: Definiert Euch ein Dummy-Device für den Anlagenstatus (analog Scharfanzeige1/Scharfanzeige2 aus dem ursprünglichen Wiki).
define AlarmanlagenStatus dummy
attr AlarmanlagenStatus devStateIcon disarmed:Wecker.Aus starting:Wecker.Wochenende armed:Wecker.Wochentags alarm:Wecker.Immer canceled:Wecker.Immer
In der Konfiguration des Alarmmoduls könnt ihr dann z.B. über
Arm Button ↠ Wait Action set AlarmanlagenStatus starting
↠ ↠ ↠ Arm Action set AlarmanlagenStatus armed
Disarm Button ↠ Disarm Action set AlarmanlagenStatus disarmed
Cancel Button ↠ Cancel Action set AlarmanlagenStatus canceled
die Anzeige des Zustandes kontrollieren.
VG Peter
Hallo!
Ich hab 'was ähnliches mittels readingsGroup realisiert:
define Alarmanlage_Status readingsGroup AAA:?level.xec
attr Alarmanlage_Status fp_Sec1 300,300,1,
attr Alarmanlage_Status room Alarm
attr Alarmanlage_Status valueStyle {\
if($VALUE eq "armed"){ 'style="color:green"' }\
elsif ($VALUE eq "disarmed") { 'style="color:gray"' }\
elsif ($VALUE eq "armwait") { 'style="color:orange"' }\
else { 'style="color:red"' }\
}
Nachteil meiner Lösung ist, daß es einen refresh der Browserseite braucht um die Anzeige zu aktualisieren.
LG
Rainer
Erst einmal sehr gutes Modul und sehr mächtig.
Ich scheitere an zwei Punkten und habe eine Verständnisfrage in der Integration von Pushover als Alarmierung:
1) Ich habe mein pushover Device als Aktor definiert, jedesmal wenn ich "Set Alarms" durchführe (d.h. im Moment sehr oft ;) ) werden die eingetragenen Werte übernommen. Allerdings enthält die Seite bei dem refresh statt {fhem "set pushover msg 'ALARM' 'ausgelöst' ''1''"}
{fhem
Ist das ein Fehler oder hat das einen Grund?
2) Verständnis: wieso muss man Alarm Actoren definieren? Die Ausführung über set/unset Action ist doch abstrahiert von dem Actor, d.h. eigentlich ist doch egal was der Actor ist (d.h. ich könnte ein Licht als AlarmActor definieren aber in der set unset ein anderes Licht Schalten, (i.e. der Actor ist komplett abstrahiert). Ich bin mir sicher ich übersehe etwas.
3) Variablenübergabe in pushover: (ich möchte einige Push Actions mehr definieren)Ich würde gerne $EVENT bzw. $NAME übergeben aber ich scheitere grandios (an meinen mangelhaften Kenntnissen). {fhem "set pushover msg 'ALARM' '$EVENT' ''1''"}
z.B. führt zu der Nachricht ALARM: $EVENT :'( (mit# EVENT kriege ich zumindest eine schicke Fehlermeldung: alarm2dly2: Global symbol "$NAME" requires explicit package name at (eval 759057) line 1.
Global symbol "$EVENT" requires explicit package name at (eval 759057) line 1.
@ Sixpack
Du darfst keine " verwenden nimm stattdessen '
Damit geht es.
Grüße
Praktiker
Zitat von: Praktiker am 14 Februar 2016, 20:45:45
@ Sixpack
Du darfst keine " verwenden nimm stattdessen '
Damit geht es.
ohne " sondern mit ' (auf jeden Fall ein Fehler) kommt aber statt $EVENT einfach nichts (Also die MSG ist ALARM:) :(
@sixpack:
Reicht dir vielleicht ein
set pushover msg 'ALARM' [Alarmanlage:short] '1'
?
Zitat von: plin am 14 Februar 2016, 22:19:46
@sixpack:
Reicht dir vielleicht ein
set pushover msg 'ALARM' [Alarmanlage:short] '1'
?
Dann kommt
Information: ALARM' [Alarmanlage:short] '1 an
Zumindest beruhigt micht das es nicht total doof ist :) das Problem scheint wirklich an pushover zu liegen ....
Zitat von: sixpack am 14 Februar 2016, 23:00:26
Dann kommt Information: ALARM' [Alarmanlage:short] '1 an
Zumindest beruhigt micht das es nicht total doof ist :) das Problem scheint wirklich an pushover zu liegen ....
ja, kein Wunder. Gestern Abend habe ich auf die Schnelle vergessen dazuzuschreiben, dass du "Alarmanlage" durch den Devicenamen Deiner Alarmanlage ersetzen musst. Im Bett fiel es mir dann ein ...
Die '1' hatte ich aus deinem Statement übernommen, dachte pushmsg bräuchte die, scheint verzichtbar zu sein.
Folglich landen wir bei
set pushover msg 'ALARM' [der NameDeinesAlarmanlagenDevices:short]
Zitat von: plin am 15 Februar 2016, 07:27:56
ja, kein Wunder. Gestern Abend habe ich auf die Schnelle vergessen dazuzuschreiben, dass du "Alarmanlage" durch den Devicenamen Deiner Alarmanlage ersetzen musst. Im Bett fiel es mir dann ein ...
Die '1' hatte ich aus deinem Statement übernommen, dachte pushmsg bräuchte die, scheint verzichtbar zu sein.
Folglich landen wir bei
set pushover msg 'ALARM' [der NameDeinesAlarmanlagenDevices:short]
Das ist mir im Bett auch noch eingefallen, hatte ich aber nicht mehr getestet. Die 1 gib die Prio an:
Syntax: pushover msg ['<title>'] '<msg>' ['<device>' <priority> '<sound>' [<retry> <expire> ['<url_title>' '<action>']]]
Ohne die ' um den [AAA:short] Bereich versendet FHEM garnnichts und weisst auf die Syntax hin, wenn ich den [] in ' einfasse kommt ALARM:[AAA:short]
Irgendwie erkennt Pushover nicht das es sich um eine Variable handelt...
Ich möchte Euch nochmal (den bereits zuvor genannten) Vorschlag machen, die Anweisungen für die Aktionen besser in ein Modul auszulagern.
Ihr spart Euch sicher Einiges an Zeit und Frust. Anbei eine Art Template dafür, gefüllt mit einer Auswahl an Aktionen, welche bei mir sinnvoll sind (teilweise noch mit zusätzlichen Debug-Ausgaben).
1. Den Inhalt der Methoden ganz nach Belieben verändern.
2. Deren Namen evtl. für Euch lesbarer machen (z.B. aus "EinbruchAlarmFired_Actor" --> "Level_0_AlarmFired_Actor").
3. Das Modul unter /fhem/FHEM ablegen.
4. reload 99_myUtilsAlarm.pm nicht vergessen.
5. Wichtig: Zur Inbetriebnahme die Funktionen schon mal direkt aufrufen z.B.
{EinbruchAlarmFired_Actor()}
6. Genau so sind dann auch die passenden "Action"-Felder zu füllen.
Gruß,
Mario
Edit: Bitte Post #554 beachten.
ZitatIch möchte Euch nochmal (den bereits zuvor genannten) Vorschlag machen, die Anweisungen für die Aktionen besser in ein Modul auszulagern.
Das kann ich nur aus voller Überzeugung unterstützen.
Lange und komplexe Aktionen haben aus Gründen der Wartbarkeit in einer Konfigurationsdatei nichts verloren.
LG
pah
Zitat von: jmike am 12 Februar 2016, 10:26:59
ps: Es ist ein Vorschlag, ein Beispiel oder ein Inspirationsanstoss - keine "Komplettlösung"
Hallo Mike,
vielen Dank für die ausführliche und hilfreiche Antwort! Tatsächlich hat mich das Stichwort dummy und deine Codeschnipsel hervorragend inspiriert! ;-)
Die checkArmState() hat mir schon gut gefallen, wurde nur noch an meine Sensoren angepasst und die $msg bzw. die 0 nicht in das Attribut "armError" des Dummys geschrieben sondern mittels
set direkt in den State des Dummys - so sieht man die Fehlermeldung direkt im Webfrontend und kann außerdem leichter mit devStateIcons arbeiten.
Beim bauen des Notifys zur erneuten Überprüfung hatte ich so meine Probleme mit der RegExp.. Habe viel mit online-tools rumprobiert, es aber letztendlich nicht mit dem Operator
+ ans Laufen bekommen. Habe jetzt folgendes Notify:
.*[fF]enster.*(open|closed)$ {checkArmState()}
(Türen sind bewusst nicht dabei, weil die Korredortür beim Scharfschalten meist noch offen ist und somit ohnehin keine Rolle in checkArmState() spielt). Übersehe ich irgendwas, wo der Notify bspw. "zu oft" getriggert wird?
Zum eigentlichen Scharfschalten gibt es bei mir ja keine Zeitsteuerung, sondern den Wandtaster, deshalb folgendes Notify zum Ausführen:
define armAction notify EZ.vierfachTaster.Btn01:Long\s1_.* {
if(Value("ready2Arm") eq "0"){
fhem("set Alarmanlage armed 7");
}else{
fhem("set EZ.Sound playTone 003");
}
}
Momentan ist der Sound 003 noch eine allgemeingültige Fehlermeldung. Muss mal sehen ob ich das noch raumspezifisch mache ;-) Das ist bei einer Methode wie Pushover, welche Text als Argumente nimmt, natürlich praktisch.
EQ3 sollte sich mal überlegen ein Sound-Modul mit integrierter TTS-Engine rauszubringen, das wäre Luxus! :D
Habe im Alarm-Modul noch einen Backuplösung gelassen, falls trotz geöffneter Fenster scharf geschaltet werden soll:
EZ.vierfachTaster.Btn01:Long\s15_.*
(erfordert dann nur "etwas" Geduld - sollte didaktisch also eher zum Schließen der Fenster motivieren, als zum ewigen Taster-Drücken :D)
Nochmal Danke und lieben Gruß
Nils
Zum Thema TTS habe ich ein ganzes Kapitel in DEM BUCH geschrieben. Ich gebe meine Sprachnachrichten entweder pre-recorded auf das Homematic-Teil aus, oder (mit der gleichen TTS-Engine Ivona) auf ein wandhängendes Tablet. Geht klasse - auch die wildesten Nachrichten...
LG
pah
Hallo pah,
das Kapitel kenne ich ;)
Nachdem ich für die pre-recordings auf dem HM-Gong mit der Mac on-board TTS nicht zufrieden war habe ich auf deinen Tip Ivona zurückgegriffen. Die Qualität dort ist wirklich überzeugend.
"Android Tablet" ist natürlich ein gutes Stichwort. Noch ist der WAF aber nicht bei einem adäquaten Level für "Tablet an der Wand" angelangt. Außerdem habe ich den HM-Gong Bausatz genommen und mit Einbau-Lautsprechern unauffällig in ein vorhandenes Deko-Möbelstück integriert. Deshalb der Wunsch...
Für interessierte mal ein Foto des unauffälligen Selbstbaus im Anhang (Diese (http://www.amazon.de/St%C3%BCck-Einbaulautsprecher-8Ohm-Deckenlautsprecher-Lautsprecher/dp/B00GA9BTIC/) Lautsprecher wurden mit dem HM-Bausatz (http://www.elv.de/homematic-funk-gong-modul-mp3-mit-speicher.html) verwendet).
Gruß
Nils
Ich habe den HM-Bausatz noch herumliegen - derzeit steckt schon seit einem Jahr das Fertiggerät in der Steckdose.
Hat den Vorteil, dass auch Lichtsignale möglich sind.
LG
pah
Für die Sprachausgabe verwende ich einfach Raspberry, auf dem fhem läuft. Aktivlautsprecher an die 3,5 Klinkenbuchse angeschlossen und fertig.
Ich habe , für mich auch eine Lösung der Bewegungserkennung gefunden.
Wieder ein Raspberry Pi mit opencv und fhem als Slave.
Wenn opencv eine Bewegung erkennt wird fhem getriggert und sendet den Befehl per fhem2fhem an die Zentrale. Das Bild wird gespeichert.
Die Cam wird von der Zentrale ebenfalls per fhem2fhem ein und ausgeschaltet.
Stefan
@pah: Die Sache mit der LED ist kein Schlechter Punkt. Zum Visualisieren einer Scharfschaltung zB sehr gut geeignet ;-) Dafür musste ich extra noch LEDs in der Nähe der Korridortür anbringen und verkabeln.
@stefanm: Da läuft ja eine ganze raspi-farm. Insbesondere die Idee openCV dafür einzusetzen finde ich nicht schlecht. Schonmal an die Gesichtserkennung zur Unscharfschaltung gedacht? ;-)
Noch etwas in eigener Sache:
Ich bin heute angefangen einen room für die Alarm-Bedienung via Smartphone zu bauen. Wollte dafür ganz gerne die vorgesehene Anzeige des Moduls benutzen. Habe dementsprechend das Attribut statedisplay auf color gesetzt. Leider funktioniert das ganze noch nicht. Konkret werden immer die Level 1-5 rot angezeigt und 6-7 grün. Momentan nutze ich nur die Level 6 und 7, möchte die anderen zwecks Flexibilität aber eigentlich nicht im Modulcode wegrationalisieren (zumal ich mir unsicher bin was dann mit meinen bereits eingerichteten Levels passiert).
Ich könnte mir vorstellen, dass der Fehler in den ungenutzten Alarmlevels liegt (in der Alarms-Konfiguration sind alle Felder dieser Level leer). Denn ich erhalte auch nach jedem Set Alarms entsprechende Fehlermeldungen im Log:
2016.02.25 20:30:14 1: [Alarm 0] Will not be executed due to wrong time spec 1 for level0start
2016.02.25 20:30:14 1: [Alarm 1] Will not be executed due to wrong time spec 1 for level1start
2016.02.25 20:30:14 1: [Alarm 2] Will not be executed due to wrong time spec 1 for level2start
2016.02.25 20:30:14 1: [Alarm 3] Will not be executed due to wrong time spec 1 for level3start
2016.02.25 20:30:14 1: [Alarm 4] Will not be executed due to wrong time spec 1 for level4start
2016.02.25 20:30:14 1: [Alarm 5] Will not be executed due to wrong time spec 1 for level5start
2016.02.25 20:30:15 3: [Alarm 6] Created disarm notifier
2016.02.25 20:30:16 3: [Alarm 7] Created arm notifier
2016.02.25 20:30:16 3: [Alarm 7] Created disarm notifier
Liegt es daran bzw. wie kann ich die Anzeige am besten zum Funktionieren bringen?
Grüße
Nils
An die Gesichtserkennung hab ich auch schon gedacht.
Jetzt verwede ich einen RFID Reader mit Zahlenschloß( falls der Anhänger verloren geht)
Mit der Gesihterkennug hab ich gerade im Winter die Befürchtung, das es Probleme gibt. Ab er testen könnte man das ja mal
Davon kann ich nur abraten. Gegenwärtige Gesichtserkennungssysteme sind nicht nur bei Teilverdeckung des Gesichtes unzuverlässig, sondern können auch problemlos durch eine vorgebundene Pappmaske mit dem Foto des Betreffenden ausgetrickst werden.
Stand der Technik bei der Zugangskontrolle ist die Kombination von Besitz und Wissen - also z.B. eines iButton oder RFID-Chip und der Kenntnis einer Codenummer (PIN).
LG
pah
Nun gut, an dem Thema mit der Pappmaske ist wohl was dran. Dann müssen wir eben bei der NFC-Lösung bleiben (läuft bei mir auch). Denke die Usability ist auch absolut zufriedenstellend, da der Schlüsselbund ohnehin in der Hand ist :)
Darf ich nochmal fragen, ob jemand eine Idee bzgl. meines Problems hat? Komme in der Angelegenheit leider nicht weiter.
Zitat von: NilsB am 25 Februar 2016, 20:41:04
Noch etwas in eigener Sache:
(...) Konkret werden immer die Level 1-5 rot angezeigt und 6-7 grün (...)
Bin für jede Hilfe dankbar!
Mit bestem Gruß
Nils
Nach vergeblichen Versuchen für den Level 4 die Zustandsprüfung ohne größere FHSM und Perl Kenntnisse zum Laufen zu bringen, habe ich mich erst mal auf den Level 6 Einbruch konzentriert.
Ich nutze HM Fensterkontakte zur Absicherung und schalte den Level 6 per TabletUi scharf.
Mein Problem ist die Erkennung eines offenen Fensters, wenn Level 6 scharf geschaltet wird.
Wie bekomme ich eine Nachricht und wie muß der Handlungablauf dann aussehen?
Dies sollte über TabletUi steuerbar sein, damit auch der Nachbar, bei meiner Abwesenheit,
den Level 6 steuern kann (Blumen gießen).
Ich wäre für Tipps, über die Vorgehensweise zur Lösung, sehr dankbar.
Grüße,
Thomas
Zitat von: mollo am 03 März 2016, 14:54:10
Mein Problem ist die Erkennung eines offenen Fensters, wenn Level 6 scharf geschaltet wird.
Wie bekomme ich eine Nachricht und wie muß der Handlungablauf dann aussehen?
Hallo Thomas,
wenn ich recht verstehe möchtest du eine Kontrolle auf verschlossene Fenster vor Scharfschaltung durchführen und dann ggf. scharf schalten (alle Fenster zu) oder eben nicht (>= 1 Fenster geöffnet).
Hierzu kann ich nur auf die jüngst exerzierte Diskussion dieses Threads verweisen - jmike hat hervorragende Hilfe geleistet, welche spätestens in Kombination mit meiner Lösungspräsentation zum gewünschten Ergebnis führen sollte.
Hier die relevantesten Posts:
http://forum.fhem.de/index.php/topic,26893.msg406786.html#msg406786
http://forum.fhem.de/index.php/topic,26893.msg408550.html#msg408550
http://forum.fhem.de/index.php/topic,26893.msg410523.html#msg410523
Gruß
Nils
Zitat von: Mario67 am 15 Februar 2016, 10:06:15
Anbei eine Art Template dafür, gefüllt mit einer Auswahl an Aktionen, welche bei mir sinnvoll sind (teilweise noch mit zusätzlichen Debug-Ausgaben).
Hmmm - geht es nur mir so? Jedenfalls kann ich kein Template / Attachment finden??
Ich könnte schwören...
Keine Ahnung wo das Attachment hin ist. Nun nochmal ein passender Auszug aus dem Modul 99_myUtilsAlarm.pm.
Die dummy AlarmFired, AlarmDisplayFired, AlarmCancel, AlarmArm, sowie der readingsProxy AlarmDisarm (einfache Negation des Zustandes von AlarmArm) werden in der Konfiguration des Alarm-Device verwendet.
Ich hoffe ich habe beim Ausdünnen nicht zuviel entfernt. Ist ja auch mehr als Anregung gedacht.
Grüße,
Mario
Hallo Nils,
vielen Dank für Deine Links
Zitat
http://forum.fhem.de/index.php/topic,26893.msg406786.html#msg406786 (http://forum.fhem.de/index.php/topic,26893.msg406786.html#msg406786)
http://forum.fhem.de/index.php/topic,26893.msg408550.html#msg408550 (http://forum.fhem.de/index.php/topic,26893.msg408550.html#msg408550)
http://forum.fhem.de/index.php/topic,26893.msg410523.html#msg410523 (http://forum.fhem.de/index.php/topic,26893.msg410523.html#msg410523)
Ich habe versucht diese auf meine Installation anzupassen:
define ready2Arm dummy
define fensterKontaktNtfy notify .*[fF]enster.*(open|closed)$ {checkArmState()}
define SW_Alarm6_Armed dummy
attr SW_Alarm6_Armed setList on off
define armAction notify SW_Alarm6_Armed:on { if(Value("ready2Arm") eq "0"){fhem("set AAA armed ");;}else{fhem("set MyTTS tts Achtung keine Scharfschaltung");;}}
trigger fensterKontaktNtfy open zeigt im
ready2Arm reading armError 0, wenn geschlossen oder FK08_Haustuer ist offen!, wenn geöffnet.
Daraus schließe ich, das
checkArmState in 99_myUtils.pm funktioniert.
Was nicht funktionier ist armAction, den hier wird immer nur FK08_ Haustür ist offen geliefert.
Wie muß hier ein Trigger aussehen oder wie könne ich das Ergebnis von read2Arm mit einem vereinfachten Notify testen?
Kar ist mir auch nicht, wie ich das Original Beispiel aus http://forum.fhem.de/index.php/topic,26893.msg410523.html#msg410523
in fhem.cfg übertrage (ich nutze unter Win 7 PUTTY, um auf meine Raspberry Pi FHEM Installation zuzugreifen).
Zitatdefine armAction notify EZ.vierfachTaster.Btn01:Long\s1_.* {
if(Value("ready2Arm") eq "0"){
fhem("set Alarmanlage armed 7");
}else{
fhem("set EZ.Sound playTone 003");
}
}
Nochmal vielen Dank im Voraus für eine hilfreiche Antwort.
Grüße,
Thomas
Servus,
hat schon mal Jemand versucht den aktuellen Alarm als Jabber zu senden?
Per Mail geht bei mir einwandfrei, als Jabber-Message bekomme ich aber immer nur den Variablen-Name statt des Inhalts :(
{fhem 'set JabberClient1 msg bla@blub.de 'ALARM''}; : Bad name after ALARM' at (eval 546) line 1.
(gleiches fuer 'AAA')
EDITH: got it
{fhem('set JabberClient1 msg bla@blub.de ALARM: [AAA:short]')}
VG
//seb
@Mollo/Thomas:
Zitat von: mollo am 09 März 2016, 14:31:33
Was nicht funktionier ist armAction, den hier wird immer nur FK08_ Haustür ist offen geliefert.
Mir scheint als ist das Zusammenspiel aus den ganzen Code Schnipseln nicht ganz klar.
- Notify ready2Arm sollte bei jeder Fenster Aktion (auf|Zu) die Routine checkArmState ausführen.
- Routine checkArmState prüft alle definierten Aktoren und schreibt das Ergebnis zurück in ready2Arm.
Dadurch sollte sich ein konsistenter Zustand der Sensoren in ready2Arm befinden - oder eben 0 wenn alles zu ist.
- armAction ist ein Switch den Nils verwendet um scharf zu schalten - je nachdem was ready2Arm schlussendlich sagt.
Demzufolge soll armAction gar nichts liefern, sondern entweder scharf schalten oder den "Fehler" per Sprachausgabe übermitteln.
Wenn das nicht hilft (und ich mir geirrt habe ;) ) poste doch noch mal explizit wie es nun bei dir aussieht. Ich kann ehrlich gesagt nicht ganz unterscheiden was Beispiel ist und was nun bei dir läuft.
lg
mike
Nun bin auch ich (fast) zufriedener Anwender des tollen Alarmanlagenmoduls. Nach einiger Eingewöhnungszeit, die die Komplexität des Moduls mit sich bringt, funktionieren diverse Alarmierungen aufgrund von einfachen events perfekt.
Was mir fehlt bzw. wonach ich nun suche, ist, Zahlenwerte von Sensoren abzufragen. Golem hatte bereits eine ähnliche Anfrage in Post
https://forum.fhem.de/index.php/topic,26893.msg312649.html#msg312649 gestellt, die aber unbeantwortet blieb.
In meinem Fall habe ich einen Bewegungsmelder nebst Lampe über einen Stromsensor angeschlossen. Sobald der Bewegungsmelder(0,7 W standby) auslöst, steigt die Leistung und ich möchte alarmiert werden. Das Event sieht wie folgt aus:
2016-03-24 12:31:00 TRX_WEATHER Mess_4 energy_power: 50.2 W
Gelöst habe ich es vorerst mit dem regexp: Mess_4:energy_power:.[1-9].*
um bei Werten größer 0.9 Watt einen Alarm auszulösen.
Nun möchte ich aber auch noch Sabotage einschließen, also 0 W und somit Auslösung bei 0 oder > 0.9 W, wobei nicht zur Auslösung führende Werte mit 0.x W ankommen. Das:
Mess_4:energy_power:.([1-9].*|0.W)
funktioniert schon mal nicht. Ein Perl-Kenner eine Idee, was daran falsch ist oder wie ich das sonst mit Regexp lösen kann ?
Ein vorgeschaltetes Dummy-Device als Lösung fände ich unschön, da damit die schöne Übersichtlichkeit/Transparenz durch das Alarmanlagenmodul meines Erachtens "zerstört" würde.
Grüße
Markus
Hi Markus.
Zeig mal ein Event bei 0 Watt bzw probier mal:
Mess_4:energy_power:.([1-9]0*\.[1-9]|0\.0)\sW.*
Das wird auf "0.0 W" als auch alles oberhalb 1.0 W greifen, aber eben nicht 0.7 W
Danke für die superschnelle Antwort. Wie Du schon schriebst:
0 W ;D also eben ohne Dezimalpunkt, leider. Und somit dürfte Dein Lösungsvorschlag nicht funktionieren.
wenn ich es richtig verstehe machst Du mit \. eine Maskierung, um aus dem Punkt im Sinne eines Platzhalters einen "echten" Punkt abzufragen, oder ? (nur um off-Topic die wilde Welt der regexp zu verstehen)
Und außerdem geht wahrscheinlich irgendetwas mit einem | sowieso nicht, weil das Alarmanlagen-Modul das Zeichen als Trenner in den alarmSettings benutzt wird und eine Eingabe, Dein Vorschlag, mit einem | verworfen bzw. nicht gespeichert wird. Gab da ja auch mal eine Wunschäußerung zu, die von pah abgelehnt wurde. Ich hatte nur gedacht, dass man das dann wenigstens mit den Klammern umgehen kann oder lässt sich da auch was maskieren ?
Grüße
Markus
Hi Markus.
Hm, sehr kniffelig zumal der ODER Operant, wie du richtig gesagt hast, nicht erlaubt ist. Da war ich etwas zu "Zielorientiert" unterwegs und hab die Umgebung vergessen ;)
Ich bastel mal noch etwas weiter und vielleicht findet ja ein anderes Mitglied noch eine Lösung.
Eine Alternative ohne Dummy wäre auch als "Action" eine perl sub auszuführen, welche die Auswertung übernimmt und dann entsprechend reagiert.
Du sagst es: echt knifflig unter den Voraussetzungen. Vielleicht lässt Pah sich ja mal erweichen, das ODER in Form Maskierung, Klammerung .... irgendwie zuzulassen.
Und den Ansatz es über die Action zu realisieren hatte ich auch schon. Hat auch prima funktioniert, ABER das macht einem die Logs dicht, weil ja (sinnvollerweise) das notify des Sensors zu einem Event führt :-\
Aber prima, dass Du versuchst zu helfen, zumal ich bei Perl, insbesondere Klammern, Kommas, Strichpunkte, Anführungszeichen, Regexp, immer wieder an meine Grenzen stoße
wenn ich auf Glühbirnen mit Leistung < 10 W verzichte, funktioniert für meine Zwecke dieser regexp
energy_power:..[^\.].*
also alle events, die keinen Punkt an der 2. Stelle haben: xy.z W und 0 W nicht aber x.y W
Ziel erreicht. Nur in 3 Tagen verstehe ich das selber nicht mehr ;-(
Frohe Ostern
Hallo Nils und Mike,
nachdem ich begriffen habe, dass
fensterKontact notyfy bei jedem Öffnen und Schließen eines Alarmkontaktes über
checkArmState in
ready2Arm über setReading armError den Status der Alarmkontakte speichert,
funktioniert alles, nachdem ich resdy2Arm richtig in armAction notify abfrage:
define armAction notify SW_Alarm6_Armed:on { if(ReadingsVal("ready2Arm","armError","") eq "0")...............................}
Vielen Dank für die hilfreichen Tipps.
Grüße,
Thomas
Hallo.
Ich habe eine Frage an Prof. Dr. Henning.
Ich nutze das Modul schon eine ganze Weile und bin sehr zufrieden. Nur die Sache mit dem ? nach jedem Arm/Disarm juckt mich etwas, da dadurch auch echte Konfigänderungen untergehen und man dazu neigt einfach "blind" auf "save config" zu klicken.
Das Feature kam mit 5.7 wenn ich mich recht erinnere, also nach der Entwicklung des Moduls.
Ich verstehe auch warum hier grundsätzlich Attribute für die meisten Konfigurationswerte Sinn ergeben und dies nicht geändert wird.
Nur bei den "levelNxec" konnte ich keinen Grund finden warum diese nicht in den Readings abgebildet werden könnten - ausser dass man es nicht mischen möchte.
Das ist kein direkter RFE sondern mehr eine Verständnisfrage, zumal das Problem ja eher kosmetischer Natur ist.
Sollte dies doch potential haben in Version 2.7 zu kommen wäre ich auch bereit die Änderungen (sub Alarm_Exec, #-- compose commands, CommandAttr soweit ich gesehen habe) umzusetzen / zu testen soweit erwünscht.
Danke & viele Grüße,
Mike
Äh - so ganz verstehe ich die Frage nicht.
Das nervige "?" kann auch ausgeschaltet werden - ist eine Frage des Webfrontends, nicht des Alarm-Moduls.
Die "levelNexec" sind bewusst als Attribute angelegt, damit sie in der Konfigurationsdatei gespeichert werden. Readings sind immer "flüchtig".
LG
pah
Hallo,
zunächst herzlichen Dank für dieses Modul.
Nach einigen Schwierigkeiten habe ich das Modul zum Laufen gebracht und es funktioniert mit 1 Sensor, 1 Fernbedienung und 1 Funkgong.
Vor dem weiteren Ausbau möchte ich aber noch einen Fehler beseitigen den ich einfach nicht lokalisieren kann. Vielleicht weiss jemand Rat.
Nach einem "Neustart" oder "Restart" des Rasperry 2 (Wheezy) und nach jedem "Shutdown restart" von FHEM kommen immer Fehlermeldungen:
2016.04.23 16:01:58 1: configfile: Cannot load module Alarm
statefile: Please define AAA first
12 mal Please define AAA first
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_Initialize redefined at ./FHEM/95_Alarm.pm line 53, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_Define redefined at ./FHEM/95_Alarm.pm line 81, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_Undef redefined at ./FHEM/95_Alarm.pm line 105, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_Attr redefined at ./FHEM/95_Alarm.pm line 121, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_CreateEntry redefined at ./FHEM/95_Alarm.pm line 134, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_Set redefined at ./FHEM/95_Alarm.pm line 169, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_Get redefined at ./FHEM/95_Alarm.pm line 207, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_getstate redefined at ./FHEM/95_Alarm.pm line 227, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_Exec redefined at ./FHEM/95_Alarm.pm line 279, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_Arm redefined at ./FHEM/95_Alarm.pm line 404, <$fh> line 17.
2016.04.23 16:02:19 1: PERL WARNING: Subroutine Alarm_CreateNotifiers redefined at ./FHEM/95_Alarm.pm line 475, <$fh>
und der "Raum" Alarms ist verschwunden!
Wenn ich jetzt mit "Edit files" die fhem.cfg aufrufe und "Save fhem.cfg" drücke, erscheint der Raum "Alarms" und alles funktioniert wieder!
Nach einem Stromausfall würde also das Modul nicht automatisch starten?
Wer weiss Rat?
Vielen Dank,
Frank
PS. vom 27.4.2016
Mit einem "rereadcfg" funktioniert es ebenfalls!
Hallo pah,
Hallo Mike,
Zitat von: Prof. Dr. Peter Henning am 19 April 2016, 15:50:08
Äh - so ganz verstehe ich die Frage nicht.
Das nervige "?" kann auch ausgeschaltet werden - ist eine Frage des Webfrontends, nicht des Alarm-Moduls.
(...)
Ich übernehme mal die Antwort für Mike hier im Thread - gesetzt der Annahme, dass ihr so noch nicht weiter gesprochen habt. Ich befinde mich mit meinem Verständnis in einer ganz ähnlichen Situation wie Mike.
Zuerst sollte wahrscheinlich gesagt sein, dass Mike in seinem Post voraussetzt, dass das
?-Feature erstmal gut und erwünscht ist. Insofern ist es etwas schade, wenn das
? (wegen täglicher Alarmanlagen-Schaltungen) eigentlich immer angezeigt wird.
Zum Thema der konsistenten Speicherung der "levelNExec". Ich verstehe, was du sagst, pah. Aber mir ist nicht ganz klar warum die aktuellen Zustände der Alarmlevel nicht nur zur Laufzeit FHEMs gespeichert werden sollten (also als Readings). Nach einem Neustart würde ich es absolut begrüßen, wenn erstmal alles "unscharf" ist. Mit dem momentanen Stand habe ich nämlich immer Angst, mir einen Alarmlevel als aktiv in der Config zu speichern und beim nächsten Neustart zu Wartungszwecken die Alarmanlage unbewusst scharf zu schalten (was dann in hektischem Gerenne endet, wenn der nächste ein Fenster aufmacht...).
Eventuell liegt der Ursprung aber auch in unterschiedlichen Anwendungen des Moduls - wenn ich deine (pah) Anwendungsbeispiele nochmal reflektiere, hast du sehr viele Alarmlevel zeitbasiert gesteuert, oder? Wenn man dann noch einen geplanten Neustart in einem solchen Zeitfenster hat, wäre das Bevorzugen der konsistenten Speicherung der Zustände natürlich auch nachvollziehbar.
Ich würde mich über ein bisschen "Erleuchtung" freuen.
Danke,
Nils
Derzeit habe ich keine persönlichen Kapazitäten für irgendwelche Änderungen an dem Alarm-Modul frei.
Komplexe Bedigungen werde ich sowieso nicht implementieren - die gehören in ein vorgelagertes userreading oder dummy, bei mir beispielsweise für eine abendliche Überprüfung aller Fenster.
Das Verhalten beim Neustart werde ich mir durch den Kopf gehen lassen. Kann man aber auch derzeit schon durch eine kleine externe Routine abfangen.
LG
pah
Hallo pah,
was die komplexen Bedingungen angeht bin ich einer Meinung - die "Fensterprüfung" wird bei mir (nach Mikes Vorbild) bei jedem veränderten Fenster-Reading durch eine MyUtils-Funktion durchgeführt. Finde ich auch sehr sauber so.
Auf deine Rückmeldung bzgl. des Verhaltens beim Neustart bin ich gespannt. Dennoch geht das alles natürlich nicht vor persönliche Belange. Freue mich auch über eine eine Antwort in einem andere Quartal - kann mit deiner bisherigen Arbeit mehr als gut leben!
Lieben Gruß
Nils
Hallo Herr Henning, Hi Nils.
Erstmal danke für das konstruktive Weiterführen der Idee.
@Nils: Du hast recht. Das ? halte ich für grundsätzlich sinnvoll. Ein deaktivieren im WebUI ist allemal ein kosmetischer Workaround.
Ich verstehe aber pah's Ansatz wenn ich über meinen Einsatzbereich hinausschaue.
Wenn man das Modul nicht nur als Alarmanlage nutzt, wo Scharf/Unscharf schalten einem Lichtschalter gleicht, dann macht es mit Attributen durchaus Sinn - bzw. mit Readings eher nicht.
Für alle anderen Checks und Alarmierungen möchte man eine reboot/restart/crash/config persistente Konfiguration - mittels Attributen.
Ich fühle mich entsprechend "Erleuchtet" und werde mit dem ? leben - oder das Modul nach meinen Wünschen umbauen.
Wie pah mal sagte: "jeder kann die Software bauen die er haben möchte" ;)
Danke
Mike
Hey zusammen,
dieser Sonntag hat endlich dem coolen AlarmanlagenModul gehört. Es läuft Klasse, aber ich fänd es super einen Sensor (Dummy Switch) je nach Zustand zum Arm als auch zum Disarm nutzen könnte. Da er nur 1x in der Liste auftaucht gelingt mir das natürlich nicht. Hat jemand eine Idee?
Ich habe einen virtuellen Schalter Namens "Anwesend" der beim Notify "Anwesend:off" Armed. Nun brauche ich einen zweiten statt einfach auf dem gleichen mit "Anwesend:on" Disarmen zu können.
danke für jeden Tipp
ciao Carlo
Hallo, ich versuche mich auch gerade an der Einrichtung.
Klasse Modul soweit. Allerdings habe ich folgendes Problem:
Ich möchte vorerst als Aktor meine BOSE Soundtouch nutzen und darüber zum einen Textansagen durchgeben als schlußendlich auch einen Alarmton.
Wenn ich nun bei "Wait Action" folgende Action speicher:
{fhem('set BOSE_EC24B8E2DC54 speak "Alarm wurde aktiviert" 60'}
oder
set BOSE_EC24B8E2DC54 speak "Alarm wurde akticiert" 60
...wird am Ende im Frontend allerdings nur "set BOSE_EC24B8E2DC54 speak" angezeigt.
In der fhem.cfg steht allerdings die gante Action mit dem Text in Anführungszeichen.
Jemand eine Idee wie ich das ordentlich und gerade gezogen bekomme?
Zitat von: HansDampfHH am 01 Juni 2016, 16:02:16
(...)
Wenn ich nun bei "Wait Action" folgende Action speicher:
{fhem('set BOSE_EC24B8E2DC54 speak "Alarm wurde aktiviert" 60'}
oder
set BOSE_EC24B8E2DC54 speak "Alarm wurde akticiert" 60
(...)
Hey,
versuch mal folgende Schreibweise:
set BOSE_EC24B8E2DC54 speak 'Alarm wurde aktiviert' 60
Gruß
Nils
Ha, ja nette Idee, aber:
"BOSEST: speak requires quoted text"
Das Modul für die Soundtouch mag das nicht.
Noch jemand eine Idee?
Sonst hätte ich auch noch ein weiteres Anliegen.
Ich habe das attr "lockstate unlock" gesetzt aber bei jedem "Set Alarms" bekomme ich die Meldung:
State locked, can not create notifiers
Wo habe ich denn da noch was falsches in der Config?
Zitat von: HansDampfHH am 01 Juni 2016, 18:29:12
Sonst hätte ich auch noch ein weiteres Anliegen.
Ich habe das attr "lockstate unlock" gesetzt aber bei jedem "Set Alarms" bekomme ich die Meldung:
Das ist mittlerweile ein Reading.
Du kannst das einfach setzen mit "set AAA unlocked".
Zu den Bose.
Hab selber nicht getestet was passiert aber hast du die Quotes schon escaped? also
set BOSE_EC24B8E2DC54 speak \"Alarm wurde aktiviert\" 60
Oder wäre eine kleine Sub in myUtils eine denkbare Lösung für deine Bose?
Und dann einfach im Alarm Modul {bose("Alarm wurde deaktiviert")} aufrufen, sollte das "quotierungs-Problem" umgehen.
Alternativ zeig mal dein Attribut armact, oder ein ganzes list vom Alarm Device.
Okay, das mit dem Reading habe ich nicht gesehen.
Sollte man dann nicht das attr mal entfernen!?
Läuft jetzt aber, sauber.
Ich habe eine kleine sub, der kann ich auch einfache Quotes übergeben:
{SpeakBose('Alarm wird geschaltet')}
Hätte ich auch drauf kommen können.
Danke für den Hinweise:-)
Hallo zusammen,
ich habe heute das Alarmmodul ausgetestet. Ich bin begeistert von den Möglichkeiten, allerdings hänge ich an einer Stelle.
Ich habe mich an dem Fensterkontaktbeispiel orientiert, bekomme es aber nicht hin, den Cancel Sensor zu aktivieren. Bei Set Alarms steht im Log andauernd die Meldung '[Alarm 3] No "Cancel" device defined, level will be ignored'.
Dabei habe ich zum Einen einen Dummy ausprobiert mit folgendem Atribut
alarmSettings alarm4,|TFCancel|cancel|off
und da das nicht funktionierte, meinem Displaytaster das Attribut
attr TFOpen.warn alarmDevice Sensor
hinzugefügt. Danach habe ich die Einstellungen in der GUI vorgenommen, siehe Screenshot.
Ich scheine irgendeine Kleinigkeit zu übersehen, kann mir jemand einen Tipp geben?
Danke und Gruß
Maik
alarmSetting nicht von Hand anlegen, sondern nur über das GUI.
LG
pah
Hi pah,
wenn man ganz genau hinschaut, habe ich es jetzt gefunden. Die 3 über den Checkboxen war nicht über der richtigen Checkbox, sondern verrutscht... Deshalb hatte ich die ganzen "Cancels" falsch ausgewählt... Mea culpa
Hi pah,
ich habe eine Frage zu Deinem Diagramm für die Zustandskontrolle der Fenster und Türen (http://www.fhemwiki.de/wiki/Datei:TFAlarm.png)
Wenn das erste mal ein Alarm ausgelöst wird, welcher mir anzeigt, dass Fenster a und b geöffnet sind, wie wird dann mittels Deines Beispielcodes dafür gesorgt, dass alle 10 Minuten eine weiterer Aufruf von HouseOpen() passieren?
Als Aktor wird TFOpen.check ja vermutlich einmal angesprochen, wenn der Alarm ausgelöst wird und ruft nach dem definierten Delay HouseOpen() erneut auf. Was ist aber in der nächsten Iteration? Da ist der Alarm ja bereits aktiv und wird nicht neu getriggert, so dass TFOpen.check nicht erneut angesprochen wird, oder?
Ich würde gerne noch mal auf das Anliegen von Calle78 kommen (siehe oben).
Ich habe auch einen virtuellen Schalter (Urlaubsmodus) als Sensor genommen.
Dieser taucht nun natürlich nur einmal bei den Sensoren auf.
Wenn ich den Urlaubsmodus auf ON schalte wird die Alarmanlage aktiviert.
Eigentlich würde ich aber auch gerne die Alarmanlage wieder deaktivieren wenn der Urlaubsmodus wieder auf OFF steht.
Hat jemand da einen Ansatz?
Edit:
Anbei mein Setup, dabei fällt mir folgendes auf:
Wenn die Tür geöffnet wird geht sofort der Alarm an, super soweit.
Wenn die Tür aber sofort wieder geschlossen wird geht der Alarm wieder aus.
Und wenn die Tür wieder aufgeht kommt kein Alarm mehr. Also wenn einmal die Tür auf war wird der Alram bzw. der Sensor nicht noch einmal getriggert. Kann das jemand soweit nachvollziehen?
ZitatIch würde gerne noch mal auf das Anliegen von Calle78 kommen (siehe oben).
Sorry, aber ich habe nicht die Zeit, in all den Seiten nach dem Post von Calle78 zu suchen.
ZitatIch habe auch einen virtuellen Schalter (Urlaubsmodus) als Sensor genommen.
Ja, und wo ist das Problem ? Ganz bewusst soll ein Sensor immer nur eine Aktion auslösen. Wer das umgehen möchte, soll bitte das Modul cloneDummy einsetzen, um seinen Sensor zu duplizieren.
Das andere geschilderte Problem kann ich nicht nachvollziehen, da passiert beim Schließen der Tür noch irgendetwas Anderes außerhalb des Alarm-Moduls.
LG
pah
Hallo Prof. Henning,
auch ich möchte mich für dieses vielversprechende Modul bedanken, habe jedoch noch eine Rückfrage bzgl. der Einbindung in meinem System. Ich möchte gerne meine Überwachungskamera nur für bestimmte Alarmlevel aktivieren. Bspw. möchte ich nicht, dass die Kamera immer scharf geschaltet ist nur weil Level 7 (Feueralarm) durchgehend scharf (armed) ist. Die Kamera selbst kann ich mittels HTTP POST Kommandos steuern:
{GetFileFromURL('http://kamera.ip:80/', 5, 'Erkennung aktivieren')}
Trage ich dieses Kommando nun als "Arm Action" ein, so wird die Kamera bei Scharfschaltung eines beliebigen Levels auch scharf gestellt. Ich möchte jedoch, dass diese nur für bestimmte Level aktiviert wird. Anschließend könnte die Kamera einen FHEM Dummy via HTTP GET steuern:
/fhem?cmd=set+KameraAlarm+on&XHR=1
... und ich diesen als Sensor für einen/mehrere bestimmte Alarmlevel in der Alarmanlage einbinden.
Nur wie setze ich die Arm Action für einen bestimmten Level?
Hallo Alex!
Diese zwei Notifies triggern eine Aktion beim scharf bzw. unscharf schalten des Alarm Level 5:
define disarm5_N notify .*AAA.*level5.*disarmed <ACTION>
define arm5_N notify .*ATTR.*AAA.*level5.*[^s]armed <ACTION>
("<ACTION>" ist natürlich durch die gewünschte Aaktion zu ersetzen z.B. "set WebCam scharf")
LG
Rainer
Hallo Rainer,
super, vielen Dank! Da stand ich einfach auf dem Schlauch, die Lösung ist wirklich simpel :)
Ein Nachteil bei der Sache ist, dass diese Einstellung dann nicht im Interface der Alarmanlage auftaucht, doch damit kann ich leben.
Liebe Grüße,
Alex
Hi,
ich überwache das Haus mittels Öffnungssensoren (Bewegungsmelder geht nicht, da wir ein Tier haben).
Nun kam es immer wieder vor, dass meine Frau beim Betreten des Hauses vergaß, dass die Alarmanlage eingeschaltet ist.
Nun habe ich in der Armed_Action noch folgendes Reading hinzugefügt:
if (AttrVal("Alarmanlage", "level1xec", "unbekannt") eq "armed") { fhem("setreading Alarmanlage level1Status armed") }
Analog Disarm_Action
if (AttrVal("Alarmanlage", "level1xec", "unbekannt") eq "disarmed") { fhem("setreading Alarmanlage level1Status disarmed") }
Damit kann ich bei der Öffnung der Haustür nicht nur den Status abfragen, sondern auch WANN die Alarmanlage scharf gestellt wurde.
Ist dies eine gewisse Zeit her, wird noch eine WARNMELDUNG abgespielt, so dass sie daran denken muss...
Nochmals danke für dieses tolle Modul!
Greets
Byte
Zitat von: NilsB am 12 Mai 2016, 11:23:20
Zum Thema der konsistenten Speicherung der "levelNExec". Ich verstehe, was du sagst, pah. Aber mir ist nicht ganz klar warum die aktuellen Zustände der Alarmlevel nicht nur zur Laufzeit FHEMs gespeichert werden sollten (also als Readings). Nach einem Neustart würde ich es absolut begrüßen, wenn erstmal alles "unscharf" ist. Mit dem momentanen Stand habe ich nämlich immer Angst, mir einen Alarmlevel als aktiv in der Config zu speichern und beim nächsten Neustart zu Wartungszwecken die Alarmanlage unbewusst scharf zu schalten (was dann in hektischem Gerenne endet, wenn der nächste ein Fenster aufmacht...).
Mir geht es im Moment genau anders herum: Aus unerfindlichen Gründen startet mein Cubie in nicht regelmäßigen neu (darüber gibt's extra Themen). Dann ist aber jedes Mal die Alarmanlage deaktiviert. Diese Neustarts vollziehen sich dank watchdog komplett automatisch ohne merklich relevante Unterbrechung, bis auf die Alarmanlage. In dieser Situation ware für mich wichtig, dass die Alarmanlage nach dem Neustart wieder den Zusatnd wie vorher hätte.
Ich habe sogar beide Probleme...
Geplant ist in der Tat, so etwas wie einen "Default"-State für das Modul definierbar zu machen, der nach einem Restart automatisch eingenommen wird. Da kann man dann festlegen, dass alle Level disarmed sind oder einfach der Stand vor dem Neustart wiederhergestellt wird.
Dauert aber noch, weil beruflich extrem eingespannt und massig andere Baustellen ... Patience, please
LG
pah
Besteht die Möglichkeit das "arm-delay" eines Levels auf ein Notify zu legen?
Im Eventmonitor erscheint Global global DEFINED alarm6.arm.dly.
Ein notify auf .*alarm6.arm.dly { } funktioniert bei mir nicht...
Greets
Byte
So,
.*Alarmanlage.*level6xec[^s]armwait
hiermit ging es....
Gibt es auch ein Notify für Cancel eines Levels?
Und noch eine Frage, pah hatte geschrieben, dass er die Texte mit https://www.ivona.com/ als mp3 verwendet.
Wie bekommt man sie von der Ansage als mp3 File ??
Greets
Byte
Aufzeichnen und umwandeln.
LG
pah
Ok, danke.
Ist es richtig, dass ein cancel in einem alarmlevel kein event erzeugt?
Greets byte
Hallo zusammen,
ich habe das Alarm-Modul entdeckt und möchte zwei Alarmstufen realisieren:
1. Interne Überwachung bestimmter Örtlichkeiten bei Anwesenheit.
2. Vollüberwachung bei Abwesenheit und/oder Nachtruhe.
Die beiden Level lassen sich mit einem Alarm-Handsender getrennt scharfschalten (armInt/armExt).
Für die interne Überwachung ist AlarmLevel0 gedacht.
Ich habe derzeit zwei Bewegungsmelder. Beide sind alarmDevice Sensor und AlarmLevel0 zugeordnet:
level0end 23:59
level0msg Bewegung registriert: $NAME
level0offact set AlarmStatus off;
level0onact define alarm0dly1 at +00:00:05 set AlarmStatus on;define alarm0dly2 at +00:00:03 {Alarm_Exec('myAlarm',0,'AutoCancel','dummy','off')};
level0start 00:00
level0xec disarmed
Die delay's sind noch Testwerte.
Als Signalgeber habe ich einen MP3 Funkgong Modul. Der soll je nachdem, wo eine Bewegung registriert wurde, entweder "Bewegung A registriert" oder "Bewegung B registriert" ausgeben.
Ich habe bisher mit zwei Dummies als AlarmDevice "actor" (einer für jeden BM) mit je einer SetAction "set <Gong> playTone xxx" und "set <Gong> playTone yyy"experimentiert.
Als Ergebnis wurden immer alle zwei Meldungen abgespielt, egal welcher BM "motion" gemeldet hat.
Wie bekomme ich die beiden separiert, daß jeder "seine" Meldung abspielt? Mir fehlt der Ansatz, vielleicht kann mich jemand auf die richtige Spur bringen.
Gruß Roland
Klar, weil das Alarmlevel den Aktor antriggert...
Also entweder zwei Aktoren die jeweils einem eigenen Alarmlevel zugeordnet sind und Jeder Sensor löst nur in dem entsprechenden Level aus,
ODER
ein Aktor, der "perl-code" ausführt und dort auswertet welcher Melder Alarm gegeben hat und dann entsprechenden Ton ausgibt...
Greets
Byte
Hallo Byte,
Fall 1 fällt weg, da müßte ich jedem Bewegungsmelder einen Alarmlevel spendieren, ich möchte künftig noch mehr Bewegungsmelder einsetzen.
Fall 2 habe ich getestet.
Ein Dummy:
Internals:
CFGFN
NAME d_Bewegung
NR 633
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm0,|{MotionAlarm($NAME)}||1
Eine Sub in einer eigenen 99_myUtilsAlarm:
sub MotionAlarm($)
{
my ($DevName) = @_;
Log(3, "Bewegung: ".$DevName);
if ($DevName eq "HG_BM_1")
{
fhem("set HG_FL_Gong playTone 025 1 8");
Log(3, "Bewegung im Keller");
}
if ($DevName eq "NG_BM_1")
{
fhem("set HG_FL_Gong playTone 023 1 8");
Log(3, "Bewegung im Anbau");
}
}
Damit bekomme ich im Log eine Fehlermeldung: alarm0dly3: Bareword "HG_BM_1" not allowed while "strict subs" in use at (eval 5553) line 1.
oder eben
alarm0dly3: Bareword "NG_BM_1" not allowed while "strict subs" in use at (eval 5869) line 1.
Ich komme nicht auf den Trichter, wie ich den Devicenamen korrekt übergebe.
Muß ich den Dummy mit einem externen Notify setzen und den Devicenamen reinschreiben? Wenn ja, wie werte ich das in der sub aus?
Gruß Roland
Hi,
dies wäre eine Lösung die mir einfiele (also Dummy im Auslösefall über notify mit Bezeichnung bestücken).
Oder ein zusätzliches Reading im Arlarmmodul über ein notify erstellen....
oder wird nicht im Reading SHORT auch mitgeteilt, wer Auslöser war? Also mal SHORT anschauen...
und mit MotionAlarm($defs{'NameDesAlarmanlagenModuls'}{READINGS}{'short'}{VAL}) an Deine Funktion übergeben.
Zustatzfrage: Du bestückst im code den AKTOR mit {MotionAlarm($NAME)} ?
Welche Anführungszeichen nutz Du? Versuchs mal mit {MotionAlarm('$NAME')}
Ich habe das Wiki so verstanden, dass $NAME im Messagepart ersetzt wird, hast Du es dort auch verwendet?
Hinweis: Wenn ein Level ausgelöst hat, wird es erst wieder auslösen, wenn es zurückgesetzt ist!
D.h. Du bekommst Du eine Meldung über die erste Bewegungserkennung.
EDIT: Habe gerade gesehen, dass es ein Reading gibt, das den Auslöser anzeigt. Also für Level6 ist es "level6"
Greets
Byte
Also versuchs mal damit:
AlarmanlagenNAME und level6 müssen noch entsprechend angepasst werden!
sub MotionAlarm()
{
my $DevName = ReadingsVal("AlarmanlagenNAME","level6","");
Log(3, "Bewegung: ".$DevName);
if ($DevName eq "HG_BM_1")
{
fhem("set HG_FL_Gong playTone 025 1 8");
Log(3, "Bewegung im Keller");
}
if ($DevName eq "NG_BM_1")
{
fhem("set HG_FL_Gong playTone 023 1 8");
Log(3, "Bewegung im Anbau");
}
}
und im Aktor natürlich
{MotionAlarm()}
Greets
Byte
Hi Byte,
danke, das isses!
my $DevName = ReadingsVal("AlarmanlagenNAME","level0","");
So geht's.
Um alle Bewegungen mitzubekommen, habe ich einen Dummy wie hier im thread irgendwo beschrieben:
Internals:
NAME AutoCancel
NR 592
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm0,|{Alarm_Exec('myAlarm',0,'AutoCancel','dummy','off')}||3
Der macht nach dem eingestellten delay einen AutoCancel auf level 0.
Was die Anführungszeichen angeht: ich denke, daß Perl im Falle von {MotionAlarm('$NAME')} den String "$NAME" übergeben würde, während {MotionAlarm("$NAME")} den Variableninhalt auflösen würde.
Gruß Roland
Ok. Aber Vorsicht, glaube die doppelten Anführungszeichen müssen entwertet werden, da das alarmmodul diesen "text" in ein attribut speichert. Glaube das es mit doppelten schon zu Problemen gekommen ist.
Greets
Byte
Hat jemand einen Hinweis für mich wie ich einen Aktor am einfachsten nach x Minuten wieder deaktivieren kann?
Ich würde nämlich, wenn der Alarm ausgelöst wurde, die Sirene gerne nur 5 Minuten laufen lassen und dann wieder lautlos schalten.
Wenn es innerhalb des Alarm Moduls sein soll, über einen dummy mit delay und command "set sirene off".
Ansonsten über den Watchdog :)
damit schalte ich zum Beispiel mein Licht im Flur nach 30min aus:
define LichtFlurAutoAus watchdog LichtFlur:on 00:30:00 LichtFlur:off set LichtFlur off; setstate LichtFlurAutoAus defined
Okay danke, dann werde ich das mit dem Watchdog lösen.
Hallo Hans,
im Beitrag #599 habe ich ein list des Dummy, den ich zum Autocancel verwende. Bei der Entscheidung Dummy/Watchdog hat der dummy den Vorzug erhalten, weil ich damit die Konfiguration (delay) genau an der gleichen Stelle habe, wie alle anderen alarmrelevanten Sachen.
Gruß Roland
Ein
define SetAus at +00:05:00 ...
im Set Action des Aktors sollte doch auch gehen!
Ich bin dem Tip des Modulautors gefolgt: https://forum.fhem.de/index.php/topic,26893.msg213505.html#msg213505 (https://forum.fhem.de/index.php/topic,26893.msg213505.html#msg213505)
Korrigierter Aufruf: "...Alarm_Exec..." - ein Beitrag drunter.
weil es wohl (siehe dort, ein Beitrag oben drüber) Probleme mit der Übernahme des +-Zeichens gab.
Gruß Roland
Der Modulautor liest mit - aber das Problem erkennt er noch nicht.
LG
pah
... da ist auch -jedenfalls bei mir - kein Problem, außer daß ich möglicherweise die Frage von HansDampfHH falsch interpretiert habe :)
Gruß Roland
sorry, wenn ich bei den aktiven Teilnehmern dieses Threads für Augenverdreher sorge. ::)
Ich versuche gerade das Alarmmodul in Betrieb zu nehmen. Natürlich lese ich die Anleitung in wiki und natürlich habe ich versucht diesen langen Thread zu durchschauen. Aber ich weiss einfach nicht was das AButton und DButton ist. Sind das notify? Sie sind wohl grundlegend um das Alarm-Modul zu betreiben, aber ich finde in der sonst ausführlichen wiki-Doku nirgendwo, wie diese Buttons definiert werden sollen.
Vielleicht sind einfache Geister wie ich, die das Alarmmodul einsetzen wollen in einem anderen Thread besser aufgehoben? Dann wäre ich auch da für ein Hinweis dankbar.
Ich dachte meine im Team organisierte Rauchermelder innerhalb weniger Minuten in das Alarmmodul zu integrieren. Das ist mir auch nach Stunden nicht gelungen. :-\
Gibt es ein fertiges Konfigurationsbeispiel bzw. Vorlage von einer Installation, die man verwenden und für sich adaptieren kann?
Hallo Alcamar!
Ich hab dieses Modul jetzt seit über einem Jahr erfolgreich im Einsatz (Danke PAH!), mit inzwischen über 20 Sensoren und eben sovielen Aktoren, aber ein "AButton" oder "DButton" sind mir bisher noch nicht untergekommen!
Könntest Du vielleicht deine Frage konkretisieren bzw. mehr Infos über Dein Problem hergeben?
LG
Rainer
interessant, dass es ohne die beiden Einträge geht. :-X
Ich habe vorwiegend Verständnisprobleme. So habe ich gelesen, dass es ein Sensor geben muss, der den Alarm wieder abstellt. Meine Vorstellung wäre aber ein Sensor löst aus und eine definierte Zeitdauer oder ein Event (Fernbedieung) stellt den Alarm wieder ab.
Dann habe ich in der Konfiguration im Bereich Setting Arm Button, Arm Action, Disarm Button, Cancel Button befüllt. Alle diese Einträge waren so gewählt, dass jeweils ein sub PushInfo aufgerufen werden sollte.
Nach ausführen von "Set Alarms" verschwanden meine Einträge und es blieb nur noch ein Teil des Befehls in dem jeweligen Feld stehen. Aktuell ist das:
{PushInfo(
Zuvor stand da zum Beispiel sowas wie:
{PushInfo("Alarm", "Die Alarmanlage wird gleich aktiviert"}
Es würde mir schon reichen, wenn nach Scharfstellung der "Anlage" eine Fenstersensor Alarm per Pushover auf mein Handy sendet. Oder Bei SD-Alarm eine Message auf mein Handy kommt. Mehr will ich am Anfang gar nicht :-)
Zitat...oder ein Event (Fernbedieung) stellt den Alarm wieder ab.
eine Fernbedienung(staste) ist ein Sensor dem Du die Action "Cancel" zuordnen soltest.
Wie man den Alarm nach einer gewissen Zeitdauer automatisch wieder ausstellt, wird weiter oben in diesem Thread diskutiert...
Ah! mit "AButton und DButton" meinst Du die obersten vier Felder im "Setings" Abschnitt des Alarmmoduls! (siehe angehängtes Bild)
Dort trägst Du ein wie die Alarmanlage z.b. Scharfschalten quitieren soll. z.B. mit "set Licht_Flur blink 1 1" blinkt das Flurlich einmal auf...
In den Feldern des Alarmnmoduls funktionieren doppelte Anführungszeichen (") nicht!
Zum Kennenlernen des Alarmmoduls solltest Du dich erst einmal auf einfache Aktionen wie "set device on" und "set device off" beschränken...
Erst wenn du das modul im Griff hast würde ich zu Experten Einstellunge wie:
"{PushInfo("Alarm", "Die Alarmanlage wird gleich aktiviert"}"
übergehen...
...ach ja: was beim auslösen des Alarms passiert wird unter "Actors", ganz unten, eingestellt!
Mit den buttons meinte ich mehr die zwei Zeilen unter Sensors.
(Wie man eine jpg-Datei hier anhängt, weiss ich nicht)
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...
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
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
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.
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?
Ich lese immer "Fehler". Gemeint ist wohl in beiden Fällen eine fehlerhafte Konfiguration.
LG
pah
Error 40 ::)
@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?
Eben - das sind keine "Fehler des Moduls".
LG
pah
@Holle75: ... Du hast einen ziemlich unfreundlichen Umgangston, da wird sich die Hilfsbereitschaft in engen Grenzen halten.
@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?
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.
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.
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.
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
Sollte sich keiner melden, kannst bitte noch versuchen ein verbose 5 Log hier ein zu stellen. Dann sollte alles zum helfen da sein.
ZitatLustigerweise 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.
Na, wenn jemand hellseherische Fähigkeiten entwickelt, kann er vielleicht auch eine Glaskugel zur Suche nach seinen "Fehlern" betreiben.
LG
pah
Hallo!
Für das Problem, daß nach FHEM Neustart die Alarmlevel in dem Zustand (scharf/unscharf) sind in dem sie beim letzten Speichern der FHEM Konfiguration waren (unabhängig davon ob Änderungen im Alarm-Modul oder wo anders vorgenommen wurden), habe ich folgend gelöst:
Ein notify speichert bei Änderung des Zustand (scharf/unscharf) eines Alarmlevels den neuen Zustand als Reading "levelXlast " im Device AAA:
define A_AlarmLevelsSave_N notify .*ATTR.*AAA.*level.*armed {my $x=$EVTPART2;; $x=~ s/xec/last/;; fhem("setreading AAA $x $EVTPART3")}
attr A_AlarmLevelsSave_N group alarmHelperDev
attr A_AlarmLevelsSave_N room Alarm
Ein Reading behält, im Gegensatz zu einem Attribut, seinen Wert bei einem Neustart auch ohne Speichern der Konfiguration
Ein zweites notify setzt nach Neustart von FHEM die "levelX" Attribute aus den "levelXlast" Readings zurück:
define A_AlarmLevelsReset_N notify A_AlarmLevelsReset_N:.*Server.started.* {AlarmLevelsReactivate('AAA');; Log 1, "Triggered: AlarmLevelsReactivate"}
attr A_AlarmLevelsReset_N group alarmHelperDev
attr A_AlarmLevelsReset_N room Alarm
attr A_AlarmLevelsReset_N readLog 1
dazu gehört sub in 99_myUtils.pm:
######## Alarm Levels der Alarmanlage nach FHEM Neustart wieder auf den ursprünglichen Wert setzen. ##############
sub
AlarmLevelsReactivate
{
my $device = shift;
my $xec;
my $levelxec;
my $levellast;
for (my $i=0; $i <= 7; $i++)
{
$levellast = "level$i"."last";
$xec = ReadingsVal("$device", "$levellast", "disarmed");
$levelxec = "level$i"."xec";
fhem("attr $device $levelxec $xec");
}
}
Damit haben alle Alarmlevels nach einem Neustart wieder den Zustand den sie vor dem Neustart hatten, unabhängig davon was in der fhem.cfg gespeichert ist.
Will man statt dem Zustand vor dem Neustart einen default Zustand nach dem Neustart setzten, lässt man einfach das erste notify weg und setzt die "levelXlast " Readings manuell auf den gewünschten default Wert.
Eventuell würde ich dann diese Readings auf "levelXdefault" (auch in der 99_myUtils.pm!) umbenennen.
Hoffe ihr könnt das gebrauchen.
LG
Rainer
Hi Rainer.
Interessant.
Habe bei mir dazu noch nichts umgesetzt aber könnte man nicht einfach ein save-config bei der arm- /disarm-action eintragen?
Dann wäre die config doch konsistent, auch bei Alarmlevel Änderung.
lg
mike
Hi Mike!
Zitat von: jmike am 26 August 2016, 13:48:00
...könnte man nicht einfach ein save-config bei der arm- /disarm-action eintragen?
...
ja, könnte man ... allerdings ziehe ich es vor Konfigurationsänderungen bewust, manuell zu speichern...
Aber das ist ja das schöne an open source Projekten, daß sich's jeder nach eigenem Geschmack und Vorlieben einrichten kann!
LG
Rainer
Hallo pah,
Danke erst einmal für dein Modul Alarmanlage.
habe es vor einigen Tagen installiert und es funktioniert soweit, bis auf eine Kleinigkeit.
In den Settings konfiguriert man ja die Button´s:
Arm Button, Disarm Button, Cancel Button
mit den zugehörigen Aktionsfeldern:
Wait Action, Arm Action, Disarm Action, Cancel Action.
Ich habe die Felder belegt mit einer Funktion um eine Mail zu verschicken.
Da bei mir alles auf einer Fritzbox läuft, lautet hierfür der Befehl:
{ FB_mail('test@web.de','Meldung der Alarmanlage','Alarmanlage wird scharf geschaltet') }
dieses funktioniert auch in allen Feldern, bis auf das Feld "Arm Action".
Wenn die Alarmanlage unscharf ist und soll nun scharf geschaltet werden
versendet das Modul noch die Mail des Feldes "Wait Action" fehlerfrei und nach Ablauf des Timers
bleibt die Anlage "unscharf" und es erscheint im Log die Fehlermeldung:
2016.09.09 12:54:49 3: [Alarm 0] will be armed from device web with event button, delay 03:00
2016.09.09 12:57:47 1: PERL WARNING: Possible unintended interpolation of @web in string at (eval 198) line 1.
2016.09.09 12:57:47 3: eval: {fhem("attr Alarmanlage level0xec armed");fhem("{ FB_mail('test@web.de','Meldung der Alarmanlage','Alarmanlage scharf geschaltet') }");}
2016.09.09 12:57:47 3: alarm0.arm.dly: Global symbol "@web" requires explicit package name at (eval 198) line 1.
das Modul stört sich im Feld "Arm Action" am "@" Zeichen der Mailadresse.
Wenn ich dieses @ weglasse geht die Alarmanlage ohne Fehlermeldung auf "scharf"
aber die Fritzbox bringt natürlich eine Unzustellbarkeitsnachricht zurück.
alle anderen "Action" Felder funktionieren mit dem Code.
vielleicht kannst du mir einen Tipp geben....
lg Uwe
Hi.
Hast du das @ escaped in deiner definition?
fhem("{ FB_mail('test\@web.de','Meldung der Alarmanlage','Alarmanlage scharf geschaltet') }");
Hallo jmike,
danke für deine Antwort das ist die Lösung,
jetzt funktioniert es.
Ich kannte die Definition bis jetzt noch nicht.
Aber erklären kann ich es mir nicht,
dass es nur in diesem "Action Feld" so ist und nicht in den anderen...
vg Uwe
Das halte ich auch für eine Nebelkerze, denn die Felder Wait, Arm, Disarm, Cancel werden exakt gleich behandelt.
Außerdem stört sich an dem @ nicht das Modul, sondern der Perl-Interpreter.
LG
pah
Hallo!
Gibt es eine Möglichkeit unterschiedliche Wait-, Arm- und Disarm Actions pro Level zu definieren? Ich möchte unterscheiden um beispielsweise auf einem Display die Art der Scharfschaltung (intern/extern) anzeigen zu können, oder entsprechend unterschiedliche MP3s wiedergeben ...
Liebe Grüße,
Max
Nein, wird es auch nicht in diesem Modul.
Da die Perl-Funktionen aber jederzeit von außen aufrufbar sind, kann man das problemlos mit entsprechenden notify- oder DOIF-Devices von außen lösen. Die "internen" actions sind dann irgendetwas simples - beispielsweise Setzen eines dummies.
LG
pah
Verstanden. Schade! Danke für die Info.
Liebe Grüße,
Max
Ich glaube, wir reden aneinander vorbei: Natürlich kann man mit unterschiedlichen Sensoren unterschiedliche Level mit Arm/Disarm/Cancel beschicken. Außerdem wird ein entsprechendes Event ausgelöst, das den Alarmlevel enthält - kann man problemlos auswerten, um eine spezifische Nachricht auszugeben.
LG
pah
Ja, tun wir, denn Deine letzte Antwort hat nichts mit meiner Frage zu tun, in welcher es um die Wait-, Arm- und Disarm- Actions, nicht aber um das Beschicken der einzelnen Level mittels Sensoren oder die ausgelösten Events ging. Die Möglichkeit das sehr einfach außerhalb des Moduls zu lösen war mir bereits vor meinem ersten Post in diesem Thread klar.
Aber sehr wohl hat das miteinander zu tun.
LG
pah
Nur als Workaround für eine Funktion die das Modul nicht bietet. Danke trotzdem.
Liebe Grüße,
Max
Nein, das ist kein Workaround für irgendetwas Fehlendes. Das Modul ist genau so, wie es gebraucht wird. Wer etwas anderes möchte, soll es bitte selbst programmieren.
LG
pah
Hallo,
hat jemand die optischen Homematic Fensterkontakte HM-Sec-Sco mit dem Modul im Einsatz?
Ich habe das Problem das bei mir der Alarm ausgelöst wird bei der "alive" Meldung der Fensterkontakte obwohl ich eigentlich auf open (WZ_Fenster:open) Überwache. Das funktioniert grundsätzlich auch, das Problem ist sobald einer der 8 Kontakte sein "alive" schickt geht der Alarm los.
Grüße
Christian
Unfreundlich und arrogant wie immer. Es wäre interessant wie ein Kollege der psychologischen Fakultät dieses Verhalten beurteilt. Nach meiner Erfahrung beruhen offenkundige Aggressivität und Unfreundlichkeit zumeist auf einem versteckten Minderwertigkeitsgefühl, oder einem Wunsch nach Wertschätzung der nicht erfüllt werden kann, da der betreffende eben diese nicht wahrnimmt. In jedem Fall zeugt es von, sagen wir mal überschaubarer emotionaler Intelligenz ;)
@MaxAut: ich bitte Dich auf Beleidigungen in der Zukunft zu verzichten und Streitereien oder Mobbing ausserhalb des Forums auszutragen.
Zitat von: Nopax am 14 Oktober 2016, 08:26:18
Hallo,
hat jemand die optischen Homematic Fensterkontakte HM-Sec-Sco mit dem Modul im Einsatz?
Ich habe das Problem das bei mir der Alarm ausgelöst wird bei der "alive" Meldung der Fensterkontakte obwohl ich eigentlich auf open (WZ_Fenster:open) Überwache. Das funktioniert grundsätzlich auch, das Problem ist sobald einer der 8 Kontakte sein "alive" schickt geht der Alarm los.
Grüße
Christian
Hallo Christian, setz mal event-on-change-reading bei den Kontakten.
Gruß Cobra
Das war keine Beleidigung. Dem aufmerksamen Leser wird nicht entgangen sein, dass sich lediglich im ersten Satz ein Bezug zu einer bestimmten Person herstellbar ist, und dieser keine Beleidigung enthält, sondern lediglich den Unmut über die Art und Weise wie PAH hier kommuniziert äußert (was im Übrigen alleine in diesem Thread bereits mehrmals vorgekommen ist, und mit Ausnahme meines Posts ungerügt blieb). Der weitere Teil der Nachricht war einerseits personenneutral, und enthielt außerdem ebenfalls keine Beleidigung, sondern lediglich eine persönliche Einschätzung, beruhend auf persönlichen Erfahrungswerten.
Jedenfalls: Wer so viel austeilt wie der gute PAH wird auch mal einstecken können ...
Aber Du hast schon Recht Rudolf, dieses Thema hat hier nichts verloren und ich werde kein weiteres Post mehr dazu verlieren.
Zitatsobald einer der 8 Kontakte sein "alive" schickt geht der Alarm los.
Kann ich nicht nachvollziehen, ich triggere auf WZ.T:open und habe dieses Verhalten nicht. Allerdings erfolgt die Auslösung bei mir verzögert (eventDlyTime) - das kann aber nicht der Grund für die Abweichung im Verhalten sein.
Bitte mal überprüfen, welche Events wirklich ausgelöst werden - ich tippe auf irgendein Konfigurationsproblem mit den regulären Ausdrücken und den Gerätenamen.
LG
pah
P.S.: Es ist immer wieder erstaunlich, wie manche Leute reagieren, wenn man ihnen nicht ihre Sonderwünsche erfüllt. Solche Typen werden hier in der Regel nicht alt.
Meine Meinungsäußerung zu Deinem Verhalten hat nichts mit den Funktionen des Moduls Alarmanlage zu tun. Ich hatte auch nicht um eine Erweiterung gebeten, sondern lediglich nachgefragt ob ein Funktionsumfang enthalten ist oder nicht. Darin einen Wunsch nach Erweiterung zu interpretieren war falsch.
Zitat von: Cobra am 14 Oktober 2016, 09:44:18
Hallo Christian, setz mal event-on-change-reading bei den Kontakten.
Gruß Cobra
Danke für den Tip, ist bzw hatte ich aber bereits gesetzt.
Zitat von: Prof. Dr. Peter Henning am 14 Oktober 2016, 12:08:50
Bitte mal überprüfen, welche Events wirklich ausgelöst werden - ich tippe auf irgendein Konfigurationsproblem mit den regulären Ausdrücken und den Gerätenamen.
LG
pah
Ich verstehe es auch nicht....hier ist das AlarmSetting:
alarm0,|WZ_Melder_Tuer_Terasse:open|WZ Terassentuer|on
Hier wird der Alarm ausgelöst im Event Monitor:
2016-10-14 20:54:09 Alarm Alarmanlage WZ Terassentuer Offen !
2016-10-14 20:54:09 HUEDevice DL_Licht_Decke on
2016-10-14 20:54:09 CUL_HM WZ_Melder_Tuer_Terasse Activity: alive
2016-10-14 20:54:09 CUL_HM ActionDetector alive:16 dead:0 unkn:0 off:0
2016-10-14 20:54:09 CUL_HM ActionDetector status_WZ_Melder_Tuer_Terasse: alive
Zitat von: Nopax am 14 Oktober 2016, 21:00:58
Danke für den Tip, ist bzw hatte ich aber bereits gesetzt.
...
2016-10-14 20:54:09 CUL_HM ActionDetector status_WZ_Melder_Tuer_Terasse: alive
Hi.
Dein event-on-change-reading muss eigentlich falsch gesetzt sein, sonst hätte der Sensor vorher "dead" sein müssen.
Setz es mal auf .* bzw. zeig ein "list" vom Device.
Erklärt nicht warum :open trotzdem greift, sollte aber das Problem lösen.
nachtragIst dein actCycle auch auf 001:05 (siehe Wiki zu HM-SEC-SCo)
Zitat von: jmike am 14 Oktober 2016, 21:05:58
Hi.
Dein event-on-change-reading muss eigentlich falsch gesetzt sein, sonst hätte der Sensor vorher "dead" sein müssen.
Setz es mal auf .* bzw. zeig ein "list" vom Device.
Erklärt nicht warum :open trotzdem greift, sollte aber das Problem lösen.
nachtrag
Ist dein actCycle auch auf 001:05 (siehe Wiki zu HM-SEC-SCo)
Hallo,
event-on-change-reading ist mit .* gesetzt gewesen.
Das Problem ist auch nicht nur dieser Fensterkontakt sondern es sind
verschiedene.
Hier das List:
DEF 43BA57
HMLAN1_MSGCNT 72
HMLAN1_RAWMSG E43BA57,0000,007AF57C,FF,FFB2,4D861043BA5700000006010000
HMLAN1_RSSI -78
HMLAN1_TIME 2016-10-14 20:45:12
IODev HMLAN1
LASTInputDev MaxCul1
MSGCNT 138
MaxCul1_MSGCNT 66
MaxCul1_RAWMSG A0D4D861043BA5700000006010000::-80:MaxCul1
MaxCul1_RSSI -80
MaxCul1_TIME 2016-10-14 20:45:12
NAME WZ_Melder_Tuer_Terasse
NOTIFYDEV global
NR 156
NTFY_ORDER 50-WZ_Melder_Tuer_Terasse
STATE closed
TYPE CUL_HM
lastMsg No:4D - t:10 s:43BA57 d:000000 06010000
protCmdDel 4
protLastRcv 2016-10-14 20:45:12
protNack 1 last_at:2016-10-11 22:34:30
protSnd 1 last_at:2016-10-11 22:34:30
protState CMDs_done_Errors:1
rssi_at_HMLAN1 cnt:72 max:-72 min:-94 lst:-78 avg:-78.75
rssi_at_MaxCul1 avg:-81.34 lst:-80 min:-94 max:-74.5 cnt:66
Readings:
2016-10-14 20:54:09 Activity alive
2016-10-11 22:34:30 CommandAccepted no
2016-08-08 10:09:18 D-firmware 1.0
2016-08-08 10:09:18 D-serialNr MEQ1833889
2016-08-07 19:36:05 R-pairCentral set_0x123ABC
2016-08-07 19:36:05 aesKeyNbr 00
2016-10-14 20:45:12 alive yes
2016-10-14 20:45:12 battery ok
2016-10-14 20:45:12 contact closed (to broadcast)
2016-08-23 20:07:43 powerOn 2016-08-23 20:07:43
2016-10-14 20:45:12 recentStateType info
2016-10-14 20:45:12 sabotageError off
2016-10-14 20:45:12 state closed
2016-10-10 06:56:31 trigDst_broadcast noConfig
2016-10-10 06:56:31 trigger_cnt 165
Helper:
HM_CMDNR 77
getCfgList all
getCfgListNo ,4
mId 00C7
rxType 28
Expert:
def 1
det 0
raw 1
tpl 0
Io:
newChn +43BA57,00,00,00
nextSend 1476470712.98257
rxt 2
vccu VCCU
p:
43BA57
00
00
00
Mrssi:
mNo 4D
Io:
HMLAN1 -76
MaxCul1 -80
Prt:
bErr 0
sProc 0
Rspwait:
Q:
qReqConf
qReqStat
Role:
chn 1
dev 1
Rssi:
At_hmlan1:
avg -78.75
cnt 72
lst -78
max -72
min -94
At_maxcul1:
avg -81.3409090909091
cnt 66
lst -80
max -74.5
min -94
Attributes:
IODev MaxCul1
IOgrp VCCU
actCycle 000:50
actStatus alive
alarmDevice Sensor
alarmSettings alarm0,|WZ_Melder_Tuer_Terasse:open|WZ Terassentuer|on
autoReadReg 4_reqStatus
event-on-change-reading .*
expert 2_raw
firmware 1.0
group Fenster/Türkontakte
model HM-SEC-SCo
romm Fenster
room 06_Fenster_Tueren,13_Wohnzimmer
serialNr MEQ1833889
subType threeStateSensor
nachtrag
Ist dein actCycle auch auf 001:05 (siehe Wiki zu HM-SEC-SCo)
[/quote]
Das könnte das Problem sein, bin mir nicht sicher ob ich das bei allen
Sensoren gesetzt habe.
Edit: Das scheint das Problem zu sein, bei den mir jetzt aufgefallenen 3 Sensoren waren noch die 50 gesetzt. Ich ändere das mal und teste ob es sich damit erledigt hat.
zudem ist er auch nicht gepairt
Zitat2016-10-14 20:45:12 contact closed (to broadcast)
nebenbei angemerkt
Guten Abend,
Das ist ein hervorragendes und ebenso hervorragend dokumentiertes Modul, das ich nun schon seit ein paar Wochen im Testeinsatz habe - vielen Dank!
Einzig das offensichtlich alte, hier mehrfach thematisierte Problem, dass manche Einträge mit Anführungszeichen nach dem ersten (erfolgreichen) Speichern abgeschnitten in den Eingabefeldern angezeigt und bei erneutem Speichern auch abgeschnitten gespeichert werden, trübt meine Begeisterung noch etwas.
Zitat von: Prof. Dr. Peter Henning am 14 September 2014, 17:12:02
Ich werde allerdings mal sehen, ob ich das Problem auch im Modul bereinigen kann. Dauert aber.
Ich schreibe "manche", weil bei einigen das Ersetzen doppelter durch einfache Anführungszeichen das Problem gelöst hat, etwa bei
{system ('/usr/bin/mpg123 /opt/fhem/audio/wait.mp3')}
Bei anderen bekomme ich es jedoch nicht hin, das Abschneiden des Eintrags nach dem ersten Anführungszeichen zu verhindern, etwa bei
set einbruch_d Einbruch;{my $timestamp = Value("einbruch_d")." um ".ReadingsTimestamp("einbruch_d","state","")
Hier wird nach erstmaligem Speichern nach "Value(" abgeschnitten, egal ob einfache oder doppelte Anführungszeichen.
Gibt es da eine Möglichkeit, den Eintrag dauerhaft zu erhalten?
Danke & viele Grüße
Martin
Zitat von: dadoc am 14 Oktober 2016, 23:08:26
...
Bei anderen bekomme ich es jedoch nicht hin, das Abschneiden des Eintrags nach dem ersten Anführungszeichen zu verhindern, etwa bei
set einbruch_d Einbruch;{my $timestamp = Value("einbruch_d")." um ".ReadingsTimestamp("einbruch_d","state","")
Kannst du mal zeigen wie die komplette "Action" aussieht? Ich nehme an es handelt sich um eine set/unset Action.
Dir fehlt nämlich eine "}" im Beispiel oben und wohl auch der Rest des Befehls.
Dann können wir vielleicht auch einen Workaround bauen.
Sorry, Klammer fehlte, weil ich es aus dem level6onact-attr rauskopiert hatte. Der ursprüngliche Eintrag lautet:
set einbruch_d Einbruch;{my $timestamp = Value("einbruch_d")." um ".ReadingsTimestamp("einbruch_d","state",""); fhem "set einbruch_datetime_d $timestamp"}
Nach dem Speichern (Set Alarms + Save config) bleibt:
set einbruch_d Einbruch;{my $timestamp = Value(
Ok.
Also schreibst du den Wert+Timestamp vom Dummy einbruch_d in den state von einbruch_datetime_d.
Das kannst du z.b. auch per userReading machen.
attr einbruch_datetime_d userReadings state { ReadingsVal("einbruch_d","state")." um ".ReadingsTimestamp("einbruch_d","state","")}
ungetestet
Damit sollte einbruch_datetime_d aktualisiert werden wenn einbruch_d aktualisiert wird.
Das ist zwar (noch) nicht die Lösung aber vielleicht ein Workaround.
noch mal edit nachdem die Syntax doch falsch war...
userReadings werden erst abgearbeitet wenn das Device aktualisiert wird, ein deinem Fall einbruch_datetime_d - und damit nie.
Du müsstest also in der Alarm Action "set einbruch_d Einbruch;set einbruch_datetime_d update;" oder sowas machen damit das userReading aktiv wird.
Auch nicht gerade hübsch...
oder einfach so..
set einbruch_d Einbruch;; {fhem('set einbruch_datetime_d '. ReadingsVal('einbruch_d','state','').' um '.ReadingsTimestamp('einbruch_d','state',''))}
Erstaml vielen Dank für Deine Unterstützung!
Zitat von: jmike am 15 Oktober 2016, 10:30:15
Also schreibst du den Wert+Timestamp vom Dummy einbruch_d in den state von einbruch_datetime_d.
Genau.
Zitat
Das kannst du z.b. auch per userReading machen.
attr einbruch_datetime_d userReadings state { ReadingsVal("einbruch_d","state")." um ".ReadingsTimestamp("einbruch_d","state","")}
ungetestet
Mein Problem ist ja nicht, dass mein Code nicht das täte, was er soll (er tut es), sondern dass er das nur so lange tut, wie man die Alarm Settings kein zweites Mal speichert, da er durch das zweite Speichern "kastriert" wird.
Der Code, den Du in Deinem letzten Post vorschlägst, wird zwar nicht kastriert (d.h. bleibt im Eingabfeld des Alarmmoduls auch nach mehrmaligem Speichern erhalten), funktioniert aber dafür nicht :/
Klar könnte ich das auch außerhalb des Alarmmoduls mit einem notify oder DOIF lösen (so hatte ich es bislang auch), aber ich hatte den Ehrgeiz entwickelt, die Alarm-relevanten Komponenten auch im Alarm-Modul zu verwalten.
Ich hatte es noch mal angepasst, siehe zwei ;; nach dem ersten Befehl.
Bei mir klappt es so.
dummy ist mein Sensor für clear
dummy2 ist mein Sensor für raise
Wenn ich dummy2 auf on setze wird einbruch_d gesetzt und zeitgleich einbruch_datetime_d
Hmm...
{fhem('set einbruch_datetime_d '. ReadingsVal('einbruch_d','state','').' um '.ReadingsTimestamp('einbruch_d','state',''))}
geht bei mir definitiv nicht, auch nicht im Eingabefeld des WebUI ein - einbruch_datetime_d bleibt unverändert. Und da müsste es in meinem Verständnis ja auch funktionieren.
Bei mir geht (im Eingabefeld und im Alarm-Modul)
{my $timestamp = Value("einbruch_d")." um ".ReadingsTimestamp("einbruch_d","state","");; fhem "set einbruch_datetime_d $timestamp"}
Guten Morgen!
Zitat von: dadoc am 15 Oktober 2016, 11:07:52Klar könnte ich das auch außerhalb des Alarmmoduls mit einem notify oder DOIF lösen (so hatte ich es bislang auch), aber ich hatte den Ehrgeiz entwickelt, die Alarm-relevanten Komponenten auch im Alarm-Modul zu verwalten.
--> diesen Ehrgeiz hatte ich ebenfalls, musste ich aber aufgrund diverser Unzulänglichkeiten/Einschränkungen des Moduls rasch aufgeben. Ich wollte aber dennoch eine übersichtliche und an so wenig Stellen wie möglich verwaltete Alarmanlage implementieren (daher ja auch der ursprüngliche Ansatz alles innerhalb des Moduls zu lösen), und habe es letztlich mit einer eigenen Funktion in den myUtils gemacht. Das ist, wenn man sich einmal an die im Vergleich zu modernen Programmiersprachen etwas "eingerostete" und teilweise umständliche Syntax von Perl gewöhnt hat, recht simpel. Bei mir gibt es eine "sub", die ich mit unterschiedlichen Parametern aufrufe, welche dann in einem großen "switch" jeweils ausführt was zu tun ist. Wichtig war mir dabei, dass es eine Subroutine ist, und nicht Mehrere, weil ich es eben auf so wenig Stellen wie möglich verteilen wollte. Etwaige Variablen/Status-Informationen "speichere" ich in genau einem zentralen Dummy mittels UserReadings ab. Vielleicht ist das ja auch ein Ansatz für Dich dadoc.
Liebe Grüße,
Max
Zitat von: dadoc am 15 Oktober 2016, 15:24:35
Bei mir geht (im Eingabefeld und im Alarm-Modul)
{my $timestamp = Value("einbruch_d")." um ".ReadingsTimestamp("einbruch_d","state","");; fhem "set einbruch_datetime_d $timestamp"}
Ich werd jetzt nicht ganz schlau draus, ob dein Problem gelöst ist oder nicht.
Warum die erste Variante nicht geht bleibt vorerst auch ein Geheimnis ?!
Hier noch mal 3 Varianten, alle funktionieren für sich, syntax getestet per Telnet, siehe v1/v2/v3.
v1 funktioniert bei mir und lässt sich auch im Alarm Modul speichern und über "set dummy on" auslösen:
fhem> {fhem('set einbruch_datetime_d '. ReadingsVal('einbruch_d','state','').' v1 um '.ReadingsTimestamp('einbruch_d','state',''))}
fhem> list einbruch_datetime_d
Internals:
NAME einbruch_datetime_d
STATE Einbruch v1 um 2016-10-15 11:19:03
v2 (deine Version) lässt sich bei mir im Modul nicht abspeichern bzw. ab dem ersten " abgeschnitten, ginge aber Grundsätzlich.
fhem> {my $timestamp = Value("einbruch_d")." v2 um ".ReadingsTimestamp("einbruch_d","state","");; fhem "set einbruch_datetime_d $timestamp"}
fhem> list einbruch_datetime_d
Internals:
NAME einbruch_datetime_d
STATE Einbruch v2 um 2016-10-15 11:19:03
Und v3 (deine Version mit ' ) läuft zwar im Telnet und lässt sich abspeichern aber ausgelöst durch das Alarm Modul bekomme ich nur "Unknown command {my, try help."
fhem> {my $timestamp = ReadingsVal('einbruch_d','state','').' v3 um '.ReadingsTimestamp('einbruch_d','state','');; fhem 'set einbruch_datetime_d '.$timestamp}
fhem> list einbruch_datetime_d
Internals:
NAME einbruch_datetime_d
STATE Einbruch v3 um 2016-10-15 11:19:03
Wenn irgend jemand
ZitatUnzulänglichkeiten/Einschränkungen des Moduls
empfindet, soll er sich doch bitte tummeln und seine eigene Software schreiben. So er kann. Die Mäkelei ist vollkommen unangemessen.
LG
pah
@All
Nachdem ich im Juni diesen Jahres über dieses Modul 'gestolpert' bin, den Verlauf hier im Forum dazu mit wachsender Begeisterung komplett duchgeackert und mir Notizen gemacht hatte, ist es nun an der Zeit, das Alarm Modul auch einzusetzen...
Vorgegangen bin ich nach Wiki; der Einstieg sollte das Ersetzen des Notify bei schwachen Batterien und der damit verschickten Telegram Message durch einen Alalrm Level im Modul sein; und ich dachte, ich bin gut vorbereitet und es kann gar nichts passieren; doch ...
Als Sensor habe ich den Vorschlag im Wiki übernommen:
# Notify für Batterie Warnungen
#
define N_LowBatterie notify .*:[Bb]attery.*[Ll]ow.* set LowBatt.Warn $NAME
attr N_LowBatterie group deviceDetector
attr N_LowBatterie room IS Alarmanlage
define LowBatt.Warn dummy
attr LowBatt.Warn alarmDevice Sensor
attr LowBatt.Warn alarmSettings alarm2,|LowBatt.Warm|Batterie $EVENT|on
attr LowBatt.Warn group deviceDetector
attr LowBatt.Warn room IS Alarmanlage
Auch der Global Cancel aus dem Wiki steht in der Konfig:
# Globaler Abbruch Alarmanlage
#
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 alias Globaler Alarm Abbruch
attr Global.Cancel room IS Alarmanlage
attr Global.Cancel setList state:Abbruch
attr Global.Cancel webCmd Abbruch
Als Actor hatte ich das Telegram Device als solches erfolglos versucht, aktuell benutze ich einen Dummy:
# Dymmy für Telegram Nachricht
#
define Telegram.Alarm dummy
attr Telegram.Alarm alarmDevice Actor
attr Telegram.Alarm alarmSettings alarm2,|set TeleBot message '$NAME'||0
attr Telegram.Alarm group alarmActor
attr Telegram.Alarm room IS Alarmanlage
Hier noch die Konfig der 'AAA':
define AAA Alarm
attr AAA alias Alarmanlage
attr AAA armact set TeleBot message 'Alarmanlage scharf geschaltet.'
attr AAA armdelay 0:30
attr AAA armwait set TeleBot message 'Alarmanlage wird in Kürze scharf geschaltet.'
attr AAA cancelact set TeleBot message 'Alarm widerrufen.'
attr AAA disarmact set TeleBot message 'Alarmanlage unscharf geschaltet.'
attr AAA level0end 0
attr AAA level0msg 0
attr AAA level0start 0
attr AAA level0xec disarmed
attr AAA level1end 0
attr AAA level1msg 0
attr AAA level1start 0
attr AAA level1xec disarmed
attr AAA level2end 23:59
attr AAA level2msg schwach
attr AAA level2offact
attr AAA level2onact set TeleBot message '$NAME';;
attr AAA level2start 0:00
attr AAA level2xec armed
attr AAA level3end 0
attr AAA level3msg 0
attr AAA level3start 0
attr AAA level3xec disarmed
attr AAA level4end 0
attr AAA level4msg 0
attr AAA level4start 0
attr AAA level4xec disarmed
attr AAA level5end 0
attr AAA level5msg 0
attr AAA level5start 0
attr AAA level5xec disarmed
attr AAA level6end 0
attr AAA level6msg 0
attr AAA level6start 0
attr AAA level6xec disarmed
attr AAA level7end 0
attr AAA level7msg 0
attr AAA level7start 0
attr AAA level7xec disarmed
attr AAA lockstate unlock
attr AAA room IS Alarmanlage
define AAA_weblink weblink htmlCode {Alarm_Html("AAA")}
attr AAA_weblink room AlarmRoom
Die Notifys beim Druck auf Set Alarms werden geschrieben:
define alarm2.off.N notify (Global.Cancel) {main::Alarm_Exec("AAA",2,"$NAME","$EVENT","off")}
attr alarm2.off.N group alarmNotifier
attr alarm2.off.N room Alarm
define alarm2.on.N notify (LowBatt.Warm) {main::Alarm_Exec("AAA",2,"$NAME","$EVENT","on")}
attr alarm2.on.N group alarmNotifier
attr alarm2.on.N room Alarm
Mein Problem: Ich bekomme keine Nachricht von der Alarmanlage, wenn ich LowBatt per Trigger absetze, nur mein altes noch parallel vorhandenes Notify, was ich ja ersetzen will, reagiert und sendet:
# Batteriestatus
define N_BatterieStatus notify .*:[Bb]attery.* { if ($EVENT !~ m/ok/) {fhem ("set TeleBot message '$NAME' Batterie wechseln!")} }
Hier der Auszug aus dem Eventmonitor beim Triggern:
2016-10-31 10:47:08 TelegramBot TeleBot message 'Fensterkontakt.EG.Bad' Batterie wechseln!
2016-10-31 10:47:08 dummy LowBatt.Warn Fensterkontakt.EG.Bad
2016-10-31 10:47:08 CUL_HM Fensterkontakt.EG.Bad Battery:low
2016-10-31 10:47:08 TelegramBot TeleBot sentMsgResult: SUCCESS
2016-10-31 10:47:08 TelegramBot TeleBot sentMsgId: 2793
2016-10-31 10:48:21 TelegramBot TeleBot message 'Fensterkontakt.EG.Windfang' Batterie wechseln!
2016-10-31 10:48:21 dummy LowBatt.Warn Fensterkontakt.EG.Windfang
2016-10-31 10:48:21 CUL_HM Fensterkontakt.EG.Windfang Battery:low
2016-10-31 10:48:22 TelegramBot TeleBot sentMsgResult: SUCCESS
2016-10-31 10:48:22 TelegramBot TeleBot sentMsgId: 2794
Also, für mich reagiert der neue Trigger aus dem Wiki korrekt und setzt den Sensor 'dummy LowBatt.Warn' auf getriggerten Wert; nur, warum die Alarmanlage nicht anspringt, da habe ich im Moment keinen Plan!
Die im Modul hintelegten Telegram Messages beim Armen/Disarmen eines Alarmlevels werden korrekt verschickt (siehe AAA Konfiguration).
Hat jemand von Euch einen Tip für mich?
Danke Peter
Zitatda habe ich im Moment keinen Plan!
Plan habe ich auch keinen. Ich lese aber in der Konfiguration des neuen Dummies:
attr LowBatt.Warn alarmSettings alarm2,|LowBatt.Warm|Batterie $EVENT|on
d.h. War
m statt War
n.
Damit wird dieser reguläre Ausdruck nie zutreffen und logischerweise die Alarmanlage nicht ausgelöst.
LG
pah
@pah
Uuups...
Ich habe das gestern gefühlt 100* übersehen; zum Versenden nehme ich jetzt '{fhem('set TeleBot message '.ReadingsVal('AAA','short',0))}'; damit läuft dann der erste Alarm.
Was ist eigentlich sinnvoller: den TeleBot selbst als Actor zum Versenden definieren, oder weiter mit einem Dummy zu arbeiten?
Danke!
Peter
Ich habe noch zwei Fragen...
Nachdem ich nun in Level 7 meine SD's (HM-SEC-SD) eingebunden habe, stellte ich fest, dass ein Alarm von Level 7, den Alarm Level 2 (Batterie schwach) überschreibt, d.h. hier erfolgt dann eine Benachrichtigung ohne Abbruch / Cancel des vorherigen Alarms mit Level 2.
In jedem anderem Fall (weiterer Alarm gleichen Levels, bzw. Alarm geringeren Levels, jeweils ohne Cancel des vorherigen Alarm State) erfolgt keine weitere Aktion / Benachrichtigung der Alarmanlege; ist diese Annahme korrekt?
Ist es sinnvoll für die SD's in Level 7 einen Sensor mit Cancel Action hinzuzufügen, oder nach Beseitigung der Ursache des Auslösens der SD's (der hoffentlich nie eintritt) den Alarm Status der AAA manuell zu canceln?
Was sagt ihr dazu?
Danke Peter
Die Annahme ist korrekt.
Level 7 ist bei mir für die lebensbedrohlichen Situationen vorbehalten - dazu gehört Feueralarm. Das sollte man nie automatisch canceln - aber ich habe einen manuellen Sensor (=Taste), der dies auch mit erledigt.
LG
pah
Hallo!
Ich hätte eine ganz grundsätzliche Frage:
Gibt es die Möglichkeit, einer "Nachalarmierung" - z.B. per Mail?
Hintergrund:
Wenn ich das Modul "scharf" schalte und ich sehe eine Auslösung von z.B. einem Rauchmelder, rufe ich die Nachbarn an. Bei mehreren Rauchmeldern die Feuerwehr. Ähnliches ist bei der Einbruchsmeldung.
Ich kann den Alarm nicht automatisch "canceln", weil dann die Sirene im Haus auch aus geht.
Gibt es eine Option: "Aktor bei jeder Auslösung"?
oder: "Neuauslösung nach X Sekunden"?
Sonst wäre ja nach einem Fehlalarm keine Alarmfunktion gegeben, bis die Anlage resettet wird.
Mein aktueller Ansatz/Workaround:
Per Notify schnell einen Cancel, aber bei den Sirenen keinen Unset-Befehl eintragen. Dafür gibt es ein separates Notify.
Danke für das tolle Modul und Gruß
Phil
Die Verzögerung ist doch für jeden Aktor einstellbar. Ich löse also eine Sirene bei einem Einbruch auch erst nach 30 Sekunden aus - und lasse vorher eine Durchsage laufen (siehe Anhang ;D). Während dieser Zeit kann man einen Fehlalarm korrigieren.
LG
pah
Hallo!
Das habe ich auch so Dank deines Modus umsetzen können.
Ich meinte eher einen zweiten Sensor, der auslöst. Wenn es bereits ein "Raise" gab, löst ein zweiter Sensor ja nichts aus bis zu einem Cancel oder einem neuen Schärfen des Levels.
Gibt es eine Option, einen Aktor auslösen bei einem zweiten Alarm im gleichen Level?
Ich hoffe, mein kryptischer Satz ergibt irgendwie Sinn
Nein, gibt es nicht. Höchstens einen Alarm auf höherem Level.
LG
pah
Hallo!
Das ist schade. Falls jemand anders noch diese Anforderung hat:
Ich habe "am Modul vorbei" die Mailalarme per DOIF umgesetzt. Dadurch ist es so:
Alarm mit Sensor 1
--> Raise --> Alarmkette läuft
-> Voralarm, nach 30 s Vollalarm
Ein DOOF triggert alle Sensoren, WENN die Anlage scharf ist und löst bei jedem Event eine Mail aus.
Wenn ich nicht zuhause bin, kann ich also trotzdem sehen, ob ein Bewegungsmelder ausgelöst wurde, oder mehrere im ganzen Haus, was ein Indiz für einen echten Alarm sein könnte. Gleiches gilt für die Rauchmelder.
Viele Grüße
Hallo,
wer kann mir einen Gedankenanstoss geben, wie ich den "HomeStatus" meiner TabletUI-Anzeige für "Night" getriggert bekomme?
Derzeit habe ich ein Alarmlevel4 armed funktionsfähig, welches nur im Zeitfenster level4start 0:45 und level4end 06:30 aktiv ist. In dieser Zeit werden auch die entsprechenden Sensoren ausgewertet und Aktoren bei Alarmierung aktiviert.
Irgendwie bekomme ich es aber nicht hin, ein "set HomeStatus 2" an der richtigen Stelle zu platzieren.
Eine einfache Lösung, die mir nur einfällt wäre die Zeitangaben (level4start, level4end) wieder zu entfernen und mit AT-Befehl den Alarmlevl4 zur gewählten Start-/Endzeit auf armed bzw. disarmed sowie den HomeStatus, ... entsprechend zu setzen.
Eine weitere Frage habe ich zum Partymodus aus der WiKi-Beschreibung!
Mir ist nicht ganz klar wie ich einen Alarmlevel der "permanent" armed ist für eine "Party" für 24h deaktivieren. Entweder ist dies im WiKi nicht eindeutig beschrieben oder ich benötige eine(n) ergänzende(n) Erklärung/Hinweis!?!
Danke, Mike
Zitat von: Stril am 03 November 2016, 21:47:35
Gibt es eine Option, einen Aktor auslösen bei einem zweiten Alarm im gleichen Level?
Ich habe ein INFO level, dessen Aktion auch nur bei Abwesenheit ausgeführt wird.
Damit das Alarm Modul das Event immer wieder neu verschickt steht in der "Set Action" ein "set AAA canceled 5" dabei:
Um genau zu sein sieht es so aus:
{pushIfAbsent(ReadingsVal('AAA','short',''))}; set AAA canceled 5
Das Level ist immer scharf und bleibt es auch.
Hallo zusammen,
nachdem ich anfangs einige Verständnisschwierigkeiten hatte (bin gedanklich mal falsch abgebogen...), läuft die Alarmanlage nun sehr gut, ich bin absolut begeistert! Vielen Dank an pah für dieses tolle Modul!
Ich habe momentan das Problem, dass ich bei meinen Wait/Arm/Disarm/Cancel-Actions zwar von meinem TelegramBot die gewünschten Nachrichten an mich als "Einzelperson" bekomme, einen existierenden Gruppenchat (der anderweitig auch in FHEM genutzt und per "at" beschickt wird) aber nicht als Empfänger hinbekomme.
Wenn ich in den entsprechenden "Action"-Zeilen
set MeinTelegramBot message @#MeineGruppe Alarmanlage scharf
eintrage, Set Alarms drücke und dann das Modul neu aufrufe, ist alles nach dem @ abgeschnitten.
Wenn ich über die Kommandozeile das "set [...]" abschieße funktioniert es. Die Syntax scheint mir also richtig.
Ist es möglich über das Modul Alarmanlage auch Telegram-Gruppen zu beschicken? Muss ich da evtl. etwas escapen? Wenn ja, wie?
Nachtrag: Wenn ich das im Device "Alarmanlage" direkt in den Attributen ändere geht es natürlich und wird dann auf der Konfigurationsseite "Alarms" korrekt angezeigt. Wenn ich es aber dort ändere und per "Set Alarms" einspiele passiert das Obige.
Das war der Grund, einige Überarbeitungen vorzunehmen. Eine neue Version von 95_Alarm.pm und von alarm.js sind hier angehängt. Bitte testen, wenn es keine Probleme gibt, checke ich sie morgen ein.
Folgende Änderungen
1. Das Problem mit dem Hashtag in den Telegram-Aktionen aus dem letzten Post ist behoben - war auf JavaScript-Seite, also unbedingt die alarm.js ersetzen
2. Ersetzungen durch vordefinierte Strings ($EVENT, $SHORT...) sind jetzt auch in Aktionen möglich
3. Der gegenwärtige Zustand (armed/disarmed) der einzelnen Level wird jetzt auch in den Readings gespeichert, so dass er einen Systemneustart auch ohne explizite Sicherung der Konfiguration überlebt
Da sich die möglichen Werte der Readings geändert haben, muss man nach dem Laden des Moduls ggf. einmalig alle Alarmlevel auf "disarmed" oder "armed" stellen.
LG
pah
Edit:: Neue Version eingecheckt.
Ich habe nur eine kurze Verständnisfrage bezgl. der Aktoren.
Am Beispiel des Wiki (http://www.fhemwiki.de/wiki/Modul_Alarmanlage) gibt es dort einen Aktor der heisst "Mail.alarm". Definiert man hierfür überlicherweise einen Dummy (set Mail.alarm dummy) und gibt ihm das Alarmdevice-Attribut (Aktor), oder wird der Aktor anders definiert? Welchen Befehl ich diesem "Dummy-Aktor" mit dem Alarmmodul mitgebe, ist ja dann egal.
Soweit ich weiss gibt es ja kein Mail-Device in diesem Sinne.
Oder habe ich hier etwas falsch verstanden oder konnte es in den 46 Seiten nicht finden?
Zitat von: Prof. Dr. Peter Henning am 19 November 2016, 18:11:57
Das war der Grund, einige Überarbeitungen vorzunehmen. Eine neue Version von 95_Alarm.pm und von alarm.js sind hier angehängt. Bitte testen, wenn es keine Probleme gibt, checke ich sie morgen ein.
Folgende Änderungen
1. Das Problem mit dem Hashtag in den Telegram-Aktionen aus dem letzten Post ist behoben - war auf JavaScript-Seite, also unbedingt die alarm.js ersetzen
Ich habe gerade die alarm.js ersetzt und auch FHEM einmal durchgestartet, habe aber weiterhin das Problem, dass ab dem Hashtag abgeschnitten wird.
Die alarm.js muss doch lediglich nach fhem/www/pgm2 kopiert werden, nicht?
@dad401: Korrekt, das ist die Vorgehensweise. Noch ein Tipp: Man kann als Aktion beim Auslösen des Aktors ja beliebige Befehle eintragen. Bei solchen Dummy-Devices kann man also entweder real existierende Devices schalten. Oder ein Perl-Unterprogramm aufrufen. Oder einfach den Dummy auf einen bestimmten Wert setzen. Das löst einen Event aus, den man z.B. mit einem notify abfangen kann (eher umständlich...), oder der auf einer entfernten FHEM-Instanz mit FHEM2FHEM registriert wird. Aus Sicherheitsgründen betreibe ich meinen TelegramBot auf einem anderen Raspberry Pi - der wird auf diese Weise getriggert.
@Grml: Sie muss aber auch korrekt geladen werden, die alte Version steht wahrscheinlich noch im Cache.
LG
pah
Danke für die Hinweise - ich glaube ich habe das Wiki nicht bis zum Ende gelesen, da ich dachte, der relevante Teil wäre schon zu Ende. Dort steht es dann auch mit den dummys.
Ich habe mir jetzt das ganze eingerichtet und habe noch folgendes Problem. Ich würde gern einen Alarm auslösen, wenn z.B. das Fenster geöffnet wird.
Nutze ich hier als Sensor den Fensterkontakt (RegEx prüft auf Status "open") funktioniert das ganze soweit. Wenn aber das Fenster bereits vor dem Scharfschalten der AA offen war (und bleibt), dann wird der Alarm immer ausgelöst (raised), wenn der HM-Fensterkontakt seinen Status meldet. Der Alarm geht also auch an, wenn nur Zeit/Datum des Status "open" sich ändern. Man sieht dies gut, wenn man den Alarm canceld und bei der nächsten Info vom Sensor (ca. jede Stunde), geht es wieder los. Ist dies so korrekt? Müsste nicht eigentlich nur eine Änderung (Erstmaliger "open" Status), den Alarm auslösen?
Das stimmt so nicht, denn die Statusmeldung ist kein Event in dem Sinn.
In das RegExp-Feld muss z.B.<devicename>:Open - auf diese Weise betreibe ich immerhin 10 Fenstersensoren als Alarmauslöser.
LG
pah
Mhh - also auch wenn die Fenster bereits offen waren und bleiben (im Alarmstatus), gibt es kein Alarm?
Mein Fensterkontakt (Device) lautet z.B. "Fenster_SZ"
RegEx also: Fenster_SZ:open
Der "state" in den readings des Kontaktes ist z.B.
state open 2016-11-23 11:07:03
nach ca. 1h gibt es ein Update vom Kontakt (hier mal geraten):
state open 2016-11-23 12:02:03
Und darauf scheint das Alarmmodul zu reagieren (anscheinend wegen dem neuen Datum/Zeitstempel).
Derzeit gehe ich den Umweg über ein DOIF, welches auch Fenster_SZ:open prüft, aber eben nur eine Aktion auslöst (ändern eines Dummy-Status, welcher im Alarmmodul als Sensor eingetragen ist), wenn sich wirklich etwas ändert (closed => open). Ich meine das ist ein Unterschied zw. dem DOIF und dem NOTIFY (was das Modul nutzt). Z.B. reagiert notify immer wenn man einen Schalter einschaltet ("on") - egal ob er vorher schon an war oder nicht - soweit ich verstanden habe.
Das DOIF:
([Fenster_SZ] eq "open") (set SZF.alarm on) DOELSE (set SZF.alarm off)
Ich werde es dennoch nochmal testen mit dem RegEx "Fenster_SZ:open"
Marcus
Ich habe es soeben nochmal getestet:
Sensor-Device: Fenster_Bad
Fenster war die ganze Zeit offen - wurde als nicht selbst geöffnet, Fenster_SZ wurde auch nicht geöffnet!
Readings Fenster_Bad wurden soeben aktualisiert für:
alive yes 2016-11-23 13:08:43
battery ok 2016-11-23 13:08:43
contact open (to VCCU) 2016-11-23 13:08:43
peerList HM_3CXXXX_WindowRec, 2016-11-22 23:11:23
recentStateType info 2016-11-23 12:14:22
sabotageError off 2016-11-23 13:08:43
state open 2016-11-23 13:08:43
alarmNotifier: alarm1.on.N
(Fenster_Bad:open)|(Fenster_SZ:open) {main::Alarm_Exec("AAA",1,"$NAME","$EVENT","on")}
Internals:
STATE 2016-11-23 13:08:43
Alarm1 wurde ausgelöst nachdem Fenster_Bad seine Werte aktualisiert übermittelt hat, wobei STATE der gleiche blieb - nur eben aktualisiert.
Nochmal: Kann ich nicht nachvollziehen.
Ich betreibe sowohl HM-SEC-RHS, als auch HM-SEC-SCo, als auch FHTTK-Devices. Keines dieser Geräte meldet periodisch seinen Status - sondern das geschieht nur, wenn der Zustand geändert wurde (ohne dass ich event-on-change gesetzt hätte).
Schlussfolgerung: Irgendetwas stimmt noch nicht mit den Einstellungen des Sensors.
LG
pah
Wenn der Sensor wirklich nur bei Änderung sich meldet, dann passt es bei Dir.
Könntest Du mal nachsehen was Du unter "R-cyclicInfoMsg" bei Deinen HM-SEC-SCo stehen hast?
Ich vermute es liegt daran - aus dem Wiki:
Der HM-SEC-SC sendet nur dann Batteriestatus, wenn der Sensor selber geöffnet wird (Batteriefach), nicht jedoch wenn er schaltet, noch in wiederkehrenden Abständen. Um dies zu ändern muss das Register cyclicInfoMsg auf on gesetzt werden.
Hallo und erst einmal vielen Dank an PAH für das tolle Modul.
Leider habe ich seit dem letzen Update des Moduls das Problem, dass bei mir kein Alarm mehr getriggert wird.
Ich habe herausgefunden, dass das daran liegt, dass die Readings meines Alarms für alle Alarmlevel auf 'disarmed' stehen bleiben, obwohl in der Alarms-Oberfläche der Level korrekt als 'armed' angezeigt wird (Haken gesetzt). Mit anderen Worten: Das setzen des armed/disarmed Hakens ändert die Readings nicht, weshalb der Alarm nicht getriggert wird.
Setzte ich manuell das Readings auf 'armed', funktioniert der Alarm ein Mal. Anschließend ist das Reading wieder auf 'disarmed'.
Ich probiere nun schon seit einigen Stunden über dem Problem, komme aber nicht weiter.
Könnt Ihr mir helfen?
Danke,
Robin
Hallo noch einmal.
Ich bin ein wenig weiter.
Offensichtlich wird in der 95_Alarm.pm das Zusammenbauen des Kommandos, was die Readings setzt (#-- compose commands in der Section Alarm_Arm - Arm the Alarm) nur dann durchlaufen, wenn bei den Alarms ein Delay <> 0:00 eingetragen ist.
Das ist aber bei mir der Fall, da ich keine Actions für wait, arm, disarm und cancel definiert habe. Setzte ich den Delay auf 0:01 ist alles okay.
Meiner Meinung nach muss die Section compose commands immer ausgeführt werden und nicht nur, wenn eine Zeit eingetragen ist.
@PAH: Wäre es möglich das mal gegen zu checken?
Danke,
Robin
Stimmt, das ist ein Fehler. Die Sektion darf allerdings nicht immer durchlaufen werden, sondern muss etwas anders aussehen.
Fehler ist behoben in der Version 2.81, die ich heute noch einchecke.
Modifizierte Datei auch hier anbei.
LG
pah
Hallo zusammen,
ich mach jetzt seit einer Woche rum einen Sensor mit einem Aktor zu verbinden. Aber ich bin offensichtlich zu doof. Ich bekomme es nicht hin. Mein Sensor ist ein Notify das auf das Ausschalten der Schreibtischlampe reagieren soll. Mein Actor ist mein "wlanradio" (siehe auch beigefügte Screenshots. Im Log gibt es keinerlei Einträge die auf einen Fehler schließen lassen.
So sieht das RegExep des Notifys aus:
REGEXP wz_schreibtischlampe:off
Das wlanradio möchte ich mit folgendem Befehl starten:
set wlanradio play
Dieser Befehl funktioniert wenn ich ihn direkt in FHEM absetze.
Könnt ihr mir bitte helfen ? Ich habe echt keine Idee mehr was ich noch probieren könnte...Wenn ihr mehr Infos braucht einfach melden...
Grüße
sxx128
Hallo,
kurze Rückmeldung an PAH von mir zum Thema #-- compose commands in der Section Alarm_Arm.
Perfekt, läuft! Vielen Dank für die wie immer superschnelle Reaktion!
LG,
Robin
@sxxusw: Das kann nicht funktionieren - was soll das denn mit dem doppelten notify ? Sensor muss in diesem falle die Lampe selber sein.
LG
pah
Hallo PAH
dann ist genau das Problem an der Geschichte. Ich hatte es so verstanden dass sich
Notify on RegExp
bei den Sensoren auf ein bereits existierendes Notify bezieht und so das Notify quasi ausgewertet wird. Wenn ich das jetzt richtig verstanden habe ist das aber nicht so. Ich benötige quasi ein Device in meinem Fall das
wz_schreibtischlampe
und definiere dann unter RegExp das auf was gehört werden soll und was dann den Actor auslöst.
wz_schreibtischlampe:off
Dann ist es aber doch so dass eigentlich der "State" des Devices "wz_schreibtischlampe" ausgewertet wird. Wie ist dann der Begriff "Notify" in diesem Zusammenhang zu verstehen?
Vielen Dank für deine Hilfe
Grüße
sxx128
Nein.
Bitte nachlesen, was der Unterschied zwischen Events und Zustand ist.
Ausgewertet werden Events.
LG
pah
Hallo nochmal,
also ich habe es jetzt nochmal probiert. Es funktoniert nicht. Ich folgere daraus dass ich es immer noch nicht verstanden habe. Mein Sensor ist jetzt das Device
wz_schreibtischlampe
laut Event Monitor müssste
wz_schreibtischlampe on
der dazugehörige Event sein. So wird es zumindest angezeigt wenn ich die ensprechende Lampe an und ausschalte....
Ich habe deshalb als RegExp
wz_schreibtischlampe off
eingetragen. Funktionieren tut es aber immer noch nicht ...
Grüße
sxx128
trage
wz_schreibtischlampe:off
ein, dann funktioniert es!
Hallole
funktoniert leider auch nicht mit der von dir genannten Variante. Kann es an den Delay Zeiten liegen ?
Wie definiere ich denn ein Delay von 10 Sekunden ? Nicht dass es daran scheitert. Ich habe für das Arm ein Delay von
00:01
definiert ausgehend von der Annahme dass es sich um eine Minute handelt. Nach einer Minute habe ich dann meine Schreibtischlampe aus geschalten in der Hoffnung das sich das Radio nach einer Minute einschaltet weil ich da ebenfalls als Delay
00:01
eingetragen sein. Das kann doch nicht so schwer sein oder ? Langsam zweifel ich echt an meinem Verstand. Wie gesagt an sich funktionieren die Befehle
set wz_schreibtischlampe off
und
set wlanradio play
Ich bin echt zu doof dafür glaube ich ..
Grüße
sxx128
Hallo!
...nein das Delay ist in Sekunden angegeben
mm:ss
Hast du nach dem Umkonfigurieren und vor dem Testen den "Set Alarms" Knopf gedrückt?
LG
Rainer
Hallole
ja eigentlich immer. Ist das falsch ? Also dann ist
00:01
1 Sekunde richtig ?
Grüße
sxx128
Zitat von: sxx128 am 25 November 2016, 15:47:06
Hallole
ja eigentlich immer. Ist das falsch ?
Ganz im Gegenteil!
Zitat von: sxx128 am 25 November 2016, 15:47:06
Also dann ist
00:01
1 Sekunde richtig ?
Richtig!
Zitat von: sxx128 am 25 November 2016, 15:47:06
Grüße
sxx128
...dann weiß ich auch nicht warum es bei Dir nicht klappt!
Poste vielleich nochmal Diene Konfig!
LG
Rainer
Hallole
vielen Dank für deine Hilfe ... das ist die Konfig aus der fhem.cfg
define alarm0.off.N notify (n_mySchalter1_off:off) {main::Alarm_Exec("AAA",0,"$NAME","$EVENT","off")}
attr alarm0.off.N group alarmNotifier
attr alarm0.off.N room Alarm
define alarm0.on.N notify (wz_schreibtischlampe:on) {main::Alarm_Exec("AAA",0,"$NAME","$EVENT","on")}
attr alarm0.on.N group alarmNotifier
attr alarm0.on.N room Alarm
werden noch andere Informationen benötigt ?
Grüße
sxx128
Hallo zusammen,
ich habe jetzt mal fhem neu gestartet jetzt funktioniert es... Danke für die Hilfe an alle
Grüße
sxx128
freut mich, daß es jetzt funktioniert!
Noch eine Anmerkung zu Deinem vorigen Post:
Ich nehme an
n_mySchalter1_off
ist kein Schalter sondern ein notify. Da sollte der Schalter rein!
LG
Rainer
Aber hier
define alarm0.off.N notify (n_mySchalter1_off:off) {main::Alarm_Exec("AAA",0,"$NAME","$EVENT","off")}
steht doch wieder ein doppeltes notify drin - und nichts von der Schreibtischlampe. Also jetzt ganz langsam zum Mitschreiben:
1. Sensor ist die Schreibtischlampe. Also muss in das Notify on Regexp-Feld dieser Zeile des Alarmmoduls eingetragen werden: wz_schreibtischlampe:off
2. In dieselbe Zeile: Welcher Alarmlevel soll getriggert werden (sagen wir 0), was soll geschehen (Auswahlfeld auf Raise)
3. Aktor ist das Radio. Also muss in das Set Action Felddieser Zeile des Alarmmoduls eingetragen werden: set wlan_radio play
4. In dieselbe Zeile: Bei welchem Alarmlevel soll dieses ausgeführt werden (0)
Resultat wird sein: Radio geht an, wenn die Lampe ausgeht.
Wenn nicht: Es gibt Warnungsmeldungen im Log.
LG
pah
Edit: Das hat sich jetzt mit 2 Posts überschnitten, egal. Allerdings kann man die Behauptung, dass alles erst nach einem FHEM-Neustart funktioniert habe, getrost im Reich der Sagen und Märchen verorten.
Hallo PAH,
ich muss noch einmal auf Dich zukommen, denn meine Meinnung nach ist noch nicht alles so, wie es sein sollte, nachdem Du das Alarm-Modul gestern neu eingecheckt hast.
Ich habe, wie bereits vorher geschrieben, keine Wait-, Arm- oder Disarm-Actions gesetzt und entsprechend auch den Delay-Timer auf 0:00.
Augenscheinlich klappt mit der neuen Version alles, wie es sein sollte. Nach dem Setzen des Arm-Hakens wird auch der zugehörige Readings-Level auf armed gesetzt.
ABER, wenn der Alarm dann einmal ausgelöst wird, steht anschließend in dem Reading der Name meines Sensors.
Ist das ein Bug oder ist das beabsichtigt und ich kann nur den Grund nicht erkennen?
Nehme ich dann manuell den Haken heraus (disarm) und setzte ihn wieder (arm), ist auch wieder das Reading korrekt auf armed gesetzt.
Besten Dank,
Robin
Hallole zusammen, Hallole PAH
für mich hatte es dann anschein dass es nach dem Neustart von FHEM funktioniert hat. Mit dem zweiten Notify habt ihr natürlich absolut recht...
Gefühlt hatte ich alle möglichen Variationen durch.. Mit dem Code
n_mySchalter1_off
habt ihr natürlich vollkommen recht. Das wird geändert. Mir ging es eben jetzt erstmal nur darum das der Sensor in der Lage ist einen Aktor auszulösen.
Nochmals vielen Dank für die Hilfe !!!
Grüße
sxx128
OK, ich war durch das Schreiben des Artikels wirklich etwas abgelenkt...
Nein, das ist kein Bug, sondern so beabsichtigt und schon seit den allerersten Versionen des Moduls so: Nach der Alarmauslösung steht der Sensorname im Reading, damit dieser auch ggf. weiter verarbeitet werden kann. Nur die Readingswerte "armed" und "disarmed" deuten auf einen scharfen (bzw. unscharfen), aber nicht ausgelösten Alarm hin.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 21 November 2016, 04:19:17
@Grml: Sie muss aber auch korrekt geladen werden, die alte Version steht wahrscheinlich noch im Cache.
Nochmal wegen des Abschneidens nach dem "#"... Wie würde man denn den Cache löschen? Denn ich habe das Problem weiterhin. Ich hatte die alarm.js ausgetauscht aber FHEM inzwischen auch "regulär" upgedated. Vermutlich mache ich was falsch. Nur was?
Was steht denn auf der Seite
<fhem-ip>:8083/fhem/pgm2/alarm.js
Ist das Version 2.8 ?
LG
pah
Hallo PAH,
stimmt! War schon immer so, habe den Wald vor lauter Bäumen nicht mehr gesehen!
Alles gut, vielen Dank!!!
Robin
Okay, nach vier langen Abenden habe ich es auch hinbekommen. Danke an pah dafür!
Woran hat es gehangen? Ich habe in meiner spärlichen Testumgebung festgestellt dass das Modul erst funktioniert wenn ich das Message Part I für die Action Disarm ausfülle. Ist das gewollt? Weil alle anderen Felder sind jetzt unbefüllt, was sich ja noch ändern kann.
Und das ist reproduzierbar. Vieleicht hab ich es üüberlesen, obwohl ich das Wiki jetzt auswendig kann!
Für alle die Ähnliches erfahren , dass es nicht läuft obwohl ansonsten alles stimmt.
Das stimmt mit Sicherheit nicht.
Erstens: Es gibt keinen "Message Part I" für "die" Disarm Action. Die Disarm Action steht in der oberen Tabelle "Settings" - und dort gibt es ein solches Feld nicht.
Zweitens: Die unter "Settings" eingetragene Disarm Action ist vollkommen optional - sie soll ja dem Benutzer nur mitteilen, dass die Anlage unscharf geschaltet wurde, und eventuell Weiteres auslösen.
Drittens: Man kann, muss aber nicht, einen oder mehrere Sensoren definieren, welche die Disarm Action auslösen. Diese Sensoren sind aber eben nicht gleich der Disarm Action.
Viertens: Message Part I ist optional. Bei mir ist sie für den Sensor, der die Disarm Action auslöst, leer. Und zwar schon seit Jahren. Das ist auch vollkommen richtig so - denn die oben genannte Disarm Action führt bei mir zu einer Durchsage, weitere Hinweise benötige ich nicht.
Also bitte noch mal überlegen, was hier eigentlich gemeint ist.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 27 November 2016, 05:38:31
Was steht denn auf der Seite
<fhem-ip>:8083/fhem/pgm2/alarm.js
Ist das Version 2.8 ?
Sorry für die verspätete Antwort, war beruflich im Ausland.
Ja, ist die Version 2.8. Habe den ganzen RPi auch gerade aktualisiert und neu gestartet. Problem bleibt bei mir bestehen.
Nachtrag: Ich sehe gerade im Abschnitt "Actors" klappt es! Da ist die Set-Action korrekt und NICHT nach dem # abgeschnitten. Im Abschnitt "Settings" bei Wait/Arm/Disarm/Cancel besteht das Problem weiterhin.
Stimmt. Bitte alarm.js durch die anhängende Version ersetzen (checke ich auch gleich ein).
LG
pah
Vielen Dank!
Hallo PAH!
Sehe ich das richtig, dass die level\d Readings jetzt nicht mehr wie früher "off" oder den auslösenden Sensor, sondern "disarmed", "armed" oder den auslösenden Sensor beinhalten?
Die level\dxec Attribute sind in ihrer Funktion und ihren Werten unverändert?
Die armed/disarmed Zustände bleiben unabhängig von den Werten der zuletzt gespeicherten Attribute bei einem FHEM Neustart erhalten?
Dazu werden die Werte der oben genannten Readings bei FHEM-/Modulstart in die oben genannten Attribute übertragen, bei Änderung des Attributes wird das entsprechende Reading mitgezogen?
Übrigens: Danke für das tolle Modul!
LG
Rainer
Sollte so sein, ja. Meine Tests haben keine Abweichungen davon ergeben - das ist aber keine Garantie...
LG
pah
Danke für die Antwort!
LG
Rainer
Hallo,
auch von meiner Seiteschon mal vielen Dank für das Modul - macht Sinn und kann mir sehr weiterhelfen. Bei meinen Spielerein sind mir zwei Sachen aufgefallen:
1. Wenn ich über Dummies als Sensoren ein Arm/Disarm vornehmen will bekomme ich immer ein "safe config Fragezeichen"
2. Die Atrtribute meiner Alarmanlage verlieren von Zeit zu Zeit ihre Werte -
z.B beim level6offact habe ich statt des Befehlaufrufs nur ein
{fhem (;
stehen - die Funktion an sich ist weg - das trifft für alle Konfigurierten Levels zu -
Vielen Dank vorab für jemanden, der sich Zeit nimmt mir bei dem Thema zu helfen, respektive michin die richtige Richtung schubst.
... argh :-) .. nach noch mehr lesen werde ich wohl 1. zurückziehen, ausser ich habe ein Update überlesen / nicht gefunden - habe so vernommen, dass das "?" Thema in der GUI abgeschaltet werden kann - dazu habe ich leider nichts gefunden. Hat da jemand einen Tip?
Danke & einen schönen Abend noch -
-Bernd
Hallo!
Das Alarm-Modul nutzt aktuell einen statischen Pfad für das FHEM-WEB /fhem.
Um die frei konfigurierbaren Pfade zu unterstützen würde ich euch bitten folgende Änderung durchzuführen.
95_Alarm.pm: Zeile 36: Hinzufügen:
use vars qw($FW_ME);
95_Alarm.pm: Zeile 720: Ersetzen von
$ret .= "<script type=\"text/javascript\" src=\"/fhem/pgm2/alarm.js\"></script><script type=\"text/javascript\">\n";
durch
$ret .= "<script type=\"text/javascript\" src=\"$FW_ME/pgm2/alarm.js\"></script><script type=\"text/javascript\">\n";
Danke + Grüße
Michael
Wer ist denn mit "euch" gemeint ?
LG
pah
Der Pluralis Majestatis zeugt wohl von großer Wertschätzung für den Modul-Author!
;)
LG
Rainer
Hallo!
Sorry - ich meinte jemanden, der Zugriff zum SVN hat und dort Änderungen durchführen kann - ich wollte hier keine Person gezielt nötigen.
Meine Hoffnung war, dass es jemand bei seiner/ihrer nächsten Änderung einfach mitnimmt.
Grüße
Michael
Hallo Miteinander,
inzwischen läuft das Alarmmodul schon einige Zeit äußerst stabil und zuverlässig bei mir.
Aus verschiedenen Gründen kam ein Bewegungsmelder (HM-Sec-MDIR-2) dazu. Dabei stoße ich auf folgendes Problem, für welches mir bisher keine wirklich schöne Lösung einfallen will:
Wenn ich das Alarmlevel, welches den HM-Sec-MDIR-2 als Raise-Element eingetragen hat, scharf schalte, vergehen 30 sec eingestellte Verzögerung bis zur tatsächlichen Scharfschaltung. Nun ist es aber so, dass mein HM-Sec-MDIR-2 auf ein R-minInterval von 60 sec eingestellt ist. Dies hat zur Folge, dass das Gerät 60 Sekunden im Status "motion" verbleibt, nachdem eine Bewegung erkannt wurde. Da sich der Bewegungsmelder sehr nah am Ausgang des Gebäudes befindet, wo auch scharf geschaltet wird, kommt es zu Fehlauslösungen des Alarms. (Bewegung ausgelöst -> Status "motion" -> Scharf schalten -> 30 sec -> immer noch Status "motion", wegen R-minInterval -> Alarmauslösung).
Leider hat der Thread nichts zum Stichwort motion außer dies (https://forum.fhem.de/index.php/topic,26893.msg483567.html#msg483567) hier zu bieten, was mir allerdings auch nicht weiterhilft.
Würde mich über hilfreiche Gedankenergüsse freuen ;-)
Grüße
Nils
Was spricht denn dagegen, entweder R-mininterval auf 30 Sekunden zu setzen, oder die Scharfschalteverzögerung auf 60 Sekunden ?
LG
pah
Hallo pah,
Danke für den Denkanstoß. Folgendes Szenario (welches öfter auftritt) wäre allerdings nicht abgedeckt:
(Im Beispiel beide Zeiten auf 60 s):
Sensor wird ausgelöst --50s vergehen--> Scharfschaltung --10s vergehen--> R-mininterval läuft ab, Person immer noch im erfassten Bereich, "Verlängerung" des States "motion" um 60s --50s vergehen--> Person nicht mehr im erfassten Bereich, Alarm löst aus weil Sensor immer noch im State "motion".
Es wirkt sehr konstruiert, ist aber tatsächlich eine absolute Alltagssituation wenn Motionsensor und Scharfschaltung am Eingangsbereich der Wohnung sind.
Grüße
Nils
Gesendet von iPhone mit Tapatalk
Ganz einfach.
Man bestimme die maximal erlaubte Aufenthaltsdauer einer Person im Sensorbereich, sagen wir x Sekunden
Man setze R-mininterval auf y Sekunden. Möglichst kurz, um Fehlalarme zu vermeiden, möglichst lange, um Batterien zu schonen. 30 Sekunden scheint mir relativ viel.
=> Man setze den Verzögerungswert im Scharfschalten auf x+y (evtl. plus eine Sekunde, um Rundungsfehler auszugleichen).
LG
pah
Sehr gut, so kommt man tatsächlich in die richtige Richtung.. Ich habe jetzt mal folgende Parameter eingerichtet:
R-mininterval: 30 Sekunden (bei 15s habe ich Sorge wegen der Funklast und der Batterielebensdauer)
Verzögerung Alarm: 61s (so bleiben die bereits bekannten 30 Sekunden erhalten)
Danke für die Hilfe beim Denken ;)
Melde mich, falls es neuen Stoff gibt :D
LG und einen guten Rutsch
Nils
Neue Version eingecheckt, mit ein paar kleinen Fixes.
LG
pah
Hallo pah,
unter 'Sensors' werden die Devices mit ihrem Device-Namen angezeigt. Die habe ich so belassen wie sie beim Pairen angelegt wurden (also z.B. HM_471111). Die sprechenden Namen habe ich über Aliase definiert. Lassen sich die Alias- statt der Devicenamen anzeigen (sofern definiert)?
LG Peter
Kann ich - wenn ich dran denke - in einer der nächsten Versionen einbauen.
LG
pah
Hallo zusammnen
Eventuell kann mir hier jemand einen Tipp geben. Ich verwende einen HM-RC-Sec4-2 und versuche damit die Alarmanlege ein/aus bzw. scharf/unscharf zu schalten.
Das Ziel: Sowohl mit Button 1 wie auch mit Button 2 soll man die Anlage scharf schalten können.
,,Set Alarms" generiert mir dann den folgenden alarmNotifier
Internals:
CFGFN
DEF (HM_30634D_Btn_01:Shot)|(HM_30634D_Btn_02:Short) {main::Alarm_Arm("AA",6,"$NAME","$EVENT","arm")}
NAME alarm6.arm.N
NOTIFYDEV HM_30634D_Btn_01,HM_30634D_Btn_02
NR 501
NTFY_ORDER 50-alarm6.arm.N
REGEXP (HM_30634D_Btn_01:Shot)|(HM_30634D_Btn_02:Short)
STATE active
TYPE notify
Readings:
2017-01-07 21:51:13 state active
Attributes:
group alarmNotifier
room Alarm
Das Problem: Die Alarmanlage lässt sich immer nur mit Button 1 scharf schalten. Bei Button 2passiert einfach nichts. :(
Im Event_monior wird die Betätigung von Button 1 und 2 identisch angezeigt. Entferne ich das Häkchen bei Btn_02, und erzeuge die alarmNotifier neu, funktioniert Btn_01 immer noch.
Mache ich es umgekehrt und entferne das Häkchen bei Btn_01 bekomme ich die Alarmanlage nicht mehr scharf geschaltet....
Klar dass jetzt auf Btn_01 nicht mehr reagiert wird, aber Btn_02 welcher dann immer noch im alarmNotifier enthalten ist, funktioniert auch nicht..
Hat jemand eine Erklärung dazu, was mache ich falsch?
Gruss Birdy
Hallo zusammen,
ich habe einen Dummy als Actor erstellt, der als generische "Set Action" und auch als "Unset Action" eine Mail mit dem selben Befehl versenden soll:
{ DebianMail('xx@yy.com','$SHORT', '$SHORT \n Auslösendes Device: $NAME \n Event: $EVENT','') }
Die Sensoren lösen die Aktionen wie gewünscht auf Basis des readings "susv powering_source" aus.
Im "Set Action" Fall werden die Variablen in der E-Mail dann auch korrekt aufgelöst, bei "Unset Action" leider nicht.
Auszug aus dem Event Log:
###Trigger für Set Action: "Battery"###
2017-01-08 10:27:02 Alarm Alarm level2: susv
2017-01-08 10:27:02 Alarm Alarm short: Stromausfall - FHEM Alarm Level 2
2017-01-08 10:27:02 Alarm Alarm 0 1 2 3 4 5 6 7 Stromausfall - FHEM Alarm Level 2
2017-01-08 10:27:03 dummy susv powering_source: Battery
###Trigger für Unset Action "Primary"###
2017-01-08 10:27:10 Alarm Alarm level2: canceled
2017-01-08 10:27:10 Alarm Alarm level2: armed
2017-01-08 10:27:10 Alarm Alarm 0 1 2 3 4 5 6 7
2017-01-08 10:27:10 dummy susv powering_source: Primary
Im Fhem Log sieht das ganze dann so aus:
2017.01.08 10:27:02 1: sendEmail RCP: xx@yy.com
2017.01.08 10:27:02 1: sendEmail Subject: Stromausfall - FHEM Alarm Level 2
2017.01.08 10:27:02 1: sendEmail Text: Stromausfall - FHEM Alarm Level 2 \n Auslösendes Device: susv \n Event: powering_source: Battery
2017.01.08 10:27:02 1: sendEmail Anhang:
2017.01.08 10:27:03 1: sendEmail returned: Jan 08 10:27:03 raspberrypi sendEmail[9178]: Email was sent successfully!
2017.01.08 10:27:03 3: [Alarm 2] raised from device susv with event powering_source: Battery
###Strom wieder da###
2017.01.08 10:27:03 1: SUSV Status: Primary Power returned.
2017.01.08 10:27:08 1: sendEmail RCP: xx@yy.com
2017.01.08 10:27:08 1: sendEmail Subject: $SHORT
2017.01.08 10:27:08 1: sendEmail Text: $SHORT \n Auslösendes Device: $NAME \n Event: $EVENT
2017.01.08 10:27:08 1: sendEmail Anhang:
2017.01.08 10:27:10 1: sendEmail returned: Jan 08 10:27:10 raspberrypi sendEmail[9181]: Email was sent successfully!
2017.01.08 10:27:10 3: 1 : Unknown command 1, try help.
2017.01.08 10:27:10 3: [Alarm 2] canceled from device susv
Stehen die Variablen $SHORT, $NAME und $EVENT im "Unset Action"-Fall nicht zur Verfügung?
Falls dies zutreffen sollte, wie kann ich das Problem anders lösen? Ich würde die unset-Meldung gerne dynamisch der set-Meldung zuordnen können. Hintergrund: Auf allen Alarmleveln soll der gleiche Aufruf zum Mailversand im Set und Unset Fall verwendet werden.
Hallo zusammen,
ich versuche mich aktuell mit dem Alarmanlagen Modul und dieses in meine bestehende FHEM Landschaft zu integrieren.
Zum Umfeld:
- Ich habe Fenstersensoren (Homematic), die an Türen und Fenstern für die Auslösung des Alarmes sorgen sollen.
- Ich habe diese Sensoren in Gruppen je Raum zusammengefasst (structures), um damit eine Anzeige zu realisieren.
- Ich habe alle Türen und alle Fenster jeweils in eine Structure gepackt um eine globale Sicht zu haben ob im Haus eine Türe oder ein Fenster offen ist (benütze ich für die Anzeige bei der Eingangstüre und beim Zugang zur Garage, um mittels eines HM-Dis-EP-WM55 EPaper Displays den Zustand anzuzeigen.
- Ich betreibe ein Zipato WT-RFID RFID-Pad, um mittels "Buchung" mit Chip an diesem Gerät die An/Abwesenheit der Bewohner zu registrieren. Jeder Bewohner ist ein Dummy-Device, das durch entsprechende Buchungsmeldung auf den Anwesenheitszustand gesetzt wird.
- Es gibt eine structure, die aus den Anwesenheiten der Personen eine Gesamtsicht erzeugt, ob irgendjemand anwesend ist oder nicht.
Soweit klappt alles wunderbar.
Mit dem Alarmanlagenmodul hab ich jetzt aber ein paar Probleme....
- Ich schaffe es irgendwie nicht, dass Alarmanlagen Levels je nach Zustand der structure der Gesamtanwesenheit scharf oder unscharf geschaltet wird. Idee: bei der ersten gültigen "Heimkehrerbuchung" wird die Alarmanlage unscharf geschaltet, sobald alle ausgebucht haben und dis structure damit auf absent ist, soll die Alarmanlage mit Verzögerung scharf schalten
- Wenn man eine structure als Sensor einsetzt, übernimmt das System alle in der structure vorhandenen Elemente zusätzlich!? Dadurch kommt ein ziemliches Durcheinander zustande, da dann sowohl die Änderung des Zustands der structure als auch die Änderung eines Elements der structure Scharf- oder Unscharfschaltungen auslöst. Irgendwie das Gegenteil dessen was ich erreichen wollte ;-)
Gibt's eine Idee wie ich das lösen könnte oder ists einfach so komplett verkehrt (obwohl es sich richtig anfühlt)?
Kleine Unschönheit am Rande: Wenn man für Zustände von Sensoren Icons definiert hat dann sieht man bei Änderung des state des Sensors das Bild statt dem Text und keine Anzeige dahinter. Ein Reload der Seite behebt das Problem. Ist nicht "betriebsverhindernd" aber unschön :-) Screeny siehe Anhang.
danke für Ideen,
lG
Mike
Zitat von: XXL-Wing am 08 Januar 2017, 11:35:58
Mit dem Alarmanlagenmodul hab ich jetzt aber ein paar Probleme....
Hallo XXL-Wing
Ich beschäftige mich auch seit ein paar Tagen mit diesem Modul, es mach oft nicht das was ich von ihm erwarten würde. Ich musste feststellen, dass dieses Modul nichts das ist was ich suche. Ich hatte mir erhofft damit ein wenig Arbeit zu sparen.
Ich habe auch beinahe die ganzen 50 Seiten durchgearbeitet, und dabei oft Unsinn gelesen. Trotzdem konnte ich aber ein paar wertvolle Ideen für meine eigene Lösung finden.
Ich denke ich werde nun meine eigene Lösung stricken, u.U. werde ich aber vorgängig noch dieses Modul hier https://forum.fhem.de/index.php/topic,64317.html (https://forum.fhem.de/index.php/topic,64317.html) ausprobieren.
Gruss birdy
ZitatWenn man eine structure als Sensor einsetzt, übernimmt das System alle in der structure vorhandenen Elemente zusätzlich!? Dadurch kommt ein ziemliches Durcheinander zustande, da dann sowohl die Änderung des Zustands der structure als auch die Änderung eines Elements der structure Scharf- oder Unscharfschaltungen auslöst. Irgendwie das Gegenteil dessen was ich erreichen wollte ;-)
Das liegt an den "inner workings" der structure, die beim Setzen globaler Attribute diese an die Unterdevices weiterreicht. Das ist so gewollt, und deshalb auch nicht zu verhindern. Das Alarm-Modul müsste sonst alle Sensoren und Aktoren durchgehen und die globalen AlarmSettings bei den Unterdevices löschen - und doch wären sie beim nächsten Neustart wieder da.
Die Lösung ist ganz einfach: Zwei Dummy-Devices, die über ein DOIF oder notifies auf Zustandsänderungen der structure reagieren und selber Alarmsensoren sind.
@birdy:
Zitatund dabei oft Unsinn gelesen
Soso, ich würde eher mal vermuten: Die Anleitungen und Fragen nicht verstanden - deswegen sind sie aber noch lange kein Unsinn.
LG
pah
Sehr geehrter Herr Prof. Dr. Henning
Zitat von: Prof. Dr. Peter Henning am 09 Januar 2017, 22:36:26
@birdy:Soso, ich würde eher mal vermuten: Die Anleitungen und Fragen nicht verstanden - deswegen sind sie aber noch lange kein Unsinn.
Jeder darf vermuten was er möchte, Sie auch. Ich bin aber mit Sicherheit nicht der Einzige der hier nicht alles verstanden hat.
Hier überall habe ich Unsinn gelesen ;)
Zitat von: Prof. Dr. Peter Henning am 08 Februar 2016, 21:05:39
Edit: Da habe ich mal Unsinn geschrieben. Habe ich August 2014 so gelöst, dass nur in Message Part I eine Substitution vorgenommen wird. Wird auch so bleiben.
Zitat von: Prof. Dr. Peter Henning am 01 Februar 2016, 07:58:46
Das ist einfach Unsinn. ::) ::)
Zitat von: Prof. Dr. Peter Henning am 24 September 2015, 16:15:49
Unsinn, aber hoch drei. Man kann doch keinem Anfänger empfehlen, manuell in der Konfiguration herumzueditieren !!!
Zitat von: Prof. Dr. Peter Henning am 12 April 2015, 06:32:14
@Octopyrox: Pardon, aber das ist Unsinn. Selbstverständlich kann man auch ohne Verzögerung scharf schalten.
Zitat von: Prof. Dr. Peter Henning am 02 Februar 2015, 14:56:47
Unsinn, natürlich geht das >:(
Gruss birdy
Sage ich doch, vermutlich nicht verstanden. ;D ;D
LG
pah
damit attribute nicht von der structure an die beteiligten devices durchgereicht werden gibt es das structexclude atribut.
gruss
andre
Hm, ich dachte, das wirke sich nur auf die "set"-Befehle aus. Das es auf attribute auch wirkt, taucht in der Commandref erst später auf.
Also: I stand corrected, es geht doch mit dem Attribut structexclude=<structureName>:alarmDevice
LG
pah
Hallo,
Seit einem der letzten Updates (welches, kann ich nicht genau sagen), funktioniert das Auslösen eines Alarms nicht mehr. Version des Moduls ist 2.84.
Es werden bei "raise" auch keine Einträge im Log erzeugt.
Ich habe eben die Version 2.82 wieder eingespielt und die Alarmierung funktioniert wieder wie gewünscht.
Hier die Definition des Sensors:
define alarm0.on.N notify (HM_45B816:motion:.*on.*) {main::Alarm_Exec("AlarmModul",0,"$NAME","$EVENT","on")}
attr alarm0.on.N group alarmNotifier
attr alarm0.on.N room Alarm
gruß
klinki
Kann ich nicht nachvollziehen, ich habe gerade eben eine Alarmierung ausprobiert. Geht bestens.
LG
pah
Diese Antwort habe ich befürchtet ;)
Ich habe soeben das Perl-Modul in Version 2.84 noch einmal nach /FHEM verschoben, fhem Neustart -> keine Alarmierung
wieder die 2.82 eingespielt -> Alarmierung funktioniert wie gewohnt.
Wie gesagt: nur die .pm-Dateien wurden getauscht.
Das Alarmmodul scheint auf das RegEx zu reagieren. Ich hatte auch schon mal das Verbose-Level auf das Alarmmodul-Device erhöht. Hier kommt dann ein
alarm0.on.N exec {main::Alarm_Exec("AlarmModul",0,"$NAME","$EVENT","on")}
wenn der Bewegungsmelder erfasst.
...aber die Set Action beim Actor wird nicht ausgeführt
was könnte ich denn noch prüfen?
gruß
klinki
Bitte mal die angehängte Version ausprobieren - kann sein, dass ein BugFix einen unerwünschten Effekt nur für Level 0 produziert.
LG
pah
Vielen Dank für die schnelle Reaktion!
Es alarmiert wieder!
Ich probiere noch ein bisschen rum. Soll ich noch etwas Spezielles testen?
gruß
klinki
Nö, das war nur eine minimale Änderung - die allerdings den Level 0 lahmgelegt hatte. Ist schon eingecheckt.
LG
pah
Meine Frage etwas weiter oben ist evtl. untergegangen. Wenn es doch noch eine Antwort gibt, würde ich mich sehr freuen.
Gruss neitcom
Zitat von: Neitcom am 08 Januar 2017, 10:51:54
[..]
Stehen die Variablen $SHORT, $NAME und $EVENT im "Unset Action"-Fall nicht zur Verfügung?
Falls dies zutreffen sollte, wie kann ich das Problem anders lösen? Ich würde die unset-Meldung gerne dynamisch der set-Meldung zuordnen können. Hintergrund: Auf allen Alarmleveln soll der gleiche Aufruf zum Mailversand im Set und Unset Fall verwendet werden.
Bisher nicht.
Ist auch tricky, weil im Unset-Fall zuerst die Aktoren ausgelöst werden und DANN erst der State geändert wird.
LG
pah
Hallo,
ich habe mir eine Alamanlage mit dem MAX! System zusammen gestellt.
Grundsätzlich funktioniert auch alles erst mal wie gewollt und zuverlässig.
Kurz der Aufbau:
Die Komponenten von Max! sind über Maxlan in Fhem eingebunden.
Genutzt werden Max! Fensterkontakte zum auslösen.
Scharf/unscharf geschaltet wird über einen Schlossschalter der wiederum einen Max! Fensterkontakt betätigt.
Dazu habe ich zwei Notify angelegt
defmod Schlossschalter_an_n notify MAX_0c1b17:opened set Schlossschalter_ein off ;; set Schlossschalter_aus on
attr Schlossschalter_an_n room F_Alarm
defmod Schlossschalter_aus_n notify MAX_0c1b17:closed set Schlossschalter_ein on ;; set Schlossschalter_aus off
attr Schlossschalter_aus_n room F_Alarm
Die wiederum zwei Dummy schalten.
defmod Schlossschalter_aus dummy
attr Schlossschalter_aus alarmDevice Sensor
attr Schlossschalter_aus alarmSettings alarm0,|Schlossschalter_aus:on|Wohnungstür auf|disarm
attr Schlossschalter_aus room F_Alarm
attr Schlossschalter_aus setList state:on,off
attr Schlossschalter_aus webCmd on:off
defmod Schlossschalter_ein dummy
attr Schlossschalter_ein alarmDevice Sensor
attr Schlossschalter_ein alarmSettings alarm0,|Schlossschalter_ein:on|Wohnungstür zu|arm
attr Schlossschalter_ein room F_Alarm
attr Schlossschalter_ein webCmd on:off
Das Problem liegt jetzt darin, das ich zwischen Wait Action und Arm Action kein Delay über 10 Sekunden setzen kann.
Wenn ich mehr wie 10 Sekunden eingebe bleibt die Alarmanlage in einer Schleife bei Wait Action hängen. Also es wird immer nur die Ansage "Alarmanlage wird in kürze scharf geschaltet" wiederholt.
Da die Max! Geräte per Maxlan angebunden sind muss ich den Max Cube ja in gewissem Intervall pollen. Dieser Intervall liegt auch bei 10 sec um eine Zeitnahe Erkennung der Fensterkontakte zu ermöglichen.
Denke dieser Pollintervall sorgt dafür das die Alarmanlage zurückgesetzt wird und so in der Schleife hängt.
Meine Vermutung ist, das die Notify für den Schlüsselschalter geändert werden müssen. Aber wie? :-\
Ps.: Hat sich erledigt. Hatte es schon erfolglos mit dem Attribut event-on-change-reading versucht, was aber jetzt nach einem Neustart von Fhem doch geht.
Bin gerade (zum 3. Mal) dabei, mir das Alarm-Modul mal wieder näher anzusehen und damit zu experimentieren. Gibt es eigentlich einen Grund, warum ich bei beispielsweise Verwendung des msg-Moduls
in der Wait-Action
msg audio @FHEM_EG Test Vorwarnung
schreiben kann, aber eine Zeile darunter in der Arm-Action mit
msg audio \@FHEM_EG Test scharf
mein @-Zeichen in der Zielangabe escapen muss ? Sonst bleibt die Ausgabe stumm und es erscheint ein Fehler im Log:
Global symbol "@FHEM_EG" requires explicit package name at (eval 1899) line 1.
Als Programmierer nehme ich an, das liegt an der Art, wie diese dort eigegebenen Zeichenketten ans Modul übergeben werden und dann mit den eigentlichen PERL-Routinen kollidieren. Aber als Anwender ist mir natürlich nicht klar, warum ich für eine identische Aktion jeweils eine verschiedene Syntax benutzen muss. Ist das auch noch an den anderen (Action-)Stellen auf diese Art inkonsistent oder nur ein Bug ?
Gruss, Sven
ZitatAls Programmierer nehme ich an, das liegt an der Art, wie diese dort eigegebenen Zeichenketten ans Modul übergeben werden
Falsch, beide werden auf dieselbe Art übergeben. Allerdings werden die "wait"-Strings direkt ausgeführt, während die "arm"-Strings als Parameter in einem at-Kommando auftauchen und erst später ausgeführt werden. Es ist das erste Mal, dass dieses Problem dabei auftaucht, insofern halte ich den Tonfall der Frage
ZitatIst das auch noch an den anderen (Action-)Stellen auf diese Art inkonsistent oder nur ein Bug ?
für nicht angemessen. Werde ich vielleicht irgendwann abfangen.
pah
Ich habe ein ähnliches Verhalten wie Sven festgestellt. In der Arm-Action muss ich für mp3-Ausgaben auf Sonos mittels PlayURITemp die Backslash-Angaben jeweils maskieren. Bei allen anderen Aktionen ist das nicht notwendig.
Gruss, Udo
Hallo, ich habe versucht gemäss dem Wiki Eintag eine Alarmanlage einzurichten.
Dazu habe ich mir div. dummys erstellt und möchte dies jetzt mir den vorhanden Fensterkontakten testen. Leider funktioniert dies aber nicht!
Ich hoffe jemand kann mir auf die Sprünge helfen?! :P ::)
Grüsse
Björn
Was funktioniert nicht? Ich sehe z. Bsp. im Screenshot keinen Level 'armed'...
Peter
Ich denke das Kästchen "Armed" wird gesetzt über den Arm Button??
Müssen noch notify's erstellt werden oder ist die Eingabe in die Maske alles?
Ich stelle noch einmal die Frage, was genau funktioniert nicht? Wo kommst Du nicht weiter? Armen, disarmen, auslösen von Level 6?
Laut Deinem Screenshot kann ich vermuten, Du willst über den Sensor Alarmanlage (Alarmanlage:scharf) den Alarmlevel 6 arm'en und ein Sensor Tuer_Kueche (Tuer_Kueche:open) löst dann ggf. Level 6 aus. Als Actor wird ein Device Test auf 'Einbruch gesetzt'; hm - aber Vermutungen sind verdammt unkonkret, oder?!?
Peter
Zitat von: PSI69 am 17 Januar 2017, 17:02:30
Ich stelle noch einmal die Frage, was genau funktioniert nicht? Wo kommst Du nicht weiter? Armen, disarmen, auslösen von Level 6?
Laut Deinem Screenshot kann ich vermuten, Du willst über den Sensor Alarmanlage (Alarmanlage:scharf) den Alarmlevel 6 arm'en und ein Sensor Tuer_Kueche (Tuer_Kueche:open) löst dann ggf. Level 6 aus. Als Actor wird ein Device Test auf 'Einbruch gesetzt'; hm - aber Vermutungen sind verdammt unkonkret, oder?!?
Peter
Ganz genau! :)
Eigentlich funktioniert nichts... nichteinmal scharfstellen. Und wenn ich über das Kästchen scharfstelle, dann pasiert nichts, wenn ich das Fenster öffne... :-[
Das Logging fehlt.
Mit dem Attributwert verbose=5 kommt da eigentlich eine ganze Menge Informationen...
LG
pah
Zitat von: Prof. Dr. Peter Henning am 15 Januar 2017, 21:33:59
Es ist das erste Mal, dass dieses Problem dabei auftaucht, insofern halte ich den Tonfall der Frage für nicht angemessen. Werde ich vielleicht irgendwann abfangen.
Ich halte den Tonfall nicht für unangemessener als Deinen - und demnach nicht für negativ, sondern wollte mir und allen anderen, denen es aufgefallen ist, mit dieser Frage unnötiges Testen und Überraschungen ersparen, falls dieses für den Endanwender inkonsistente Verhalten dem Entwickler in seiner Gänze bereits bekannt ist.
Danke.
Sven
Das Problem war die falsche Zeitangabe... :-\
Jetzt tut es! :)
Zitat von: GG33 am 17 Januar 2017, 09:15:49
Hallo, ich habe versucht gemäss dem Wiki Eintag eine Alarmanlage einzurichten.
Dazu habe ich mir div. dummys erstellt und möchte dies jetzt mir den vorhanden Fensterkontakten testen. Leider funktioniert dies aber nicht!
Ich hoffe jemand kann mir auf die Sprünge helfen?! :P ::)
Grüsse
Björn
Hi,
ich verwende mehrere Sensoren auf einem gemeinsamen Alarmlevel.
Zwei Aktoren sind definiert:
a) Display (LED16): Über eine Subroutine wird die dem Sensor zugeordnete LED aktiviert.
b) E-Mail / SMS Benachrichtigung
Dies funktioniert für die initiale Alarmauslösung gut. Wird dann aber bei bereits bestehendem Alarm eine weiterer Sensor ausgelöst, wertet das Modul dies leider nicht mehr aus.
In sub "Alarm_Exec" ist definiert:
#-- only if this level is armed and not yet active
if( ($xec eq "armed") && ($xac eq "armed") )
Ich habe dies nun testweise geändert in:
if( ($xec ne "disarmed") && ($xac ne "disarmed") )
Damit scheine ich das gewünschte Verhalten zu erreichen:
Die Kenntnis weiterer Sensorauslösungen ist hilfreich um einen möglichen Fehleralarm einfacher als solchen zu erkennen, aber auch um die Wege eines Eindringlings nachvollziehen zu können.
Gibt es noch eine andere Lösung, ohne Änderung an der Modul-Datei? Dies ist unkomfortabel, da ich Updates künftig manuell mergen muss.
Ein Verbesserungsvorschlag:
Neue Selection-Box für jeden Alarmlevel mit zwei Optionen:
a) Auslösung der Aktoren nur bei initialem Sensor (heutiges Verhalten)
b) Auslösung der Aktoren auch bei jedem weiterem Sensor
Gruß,
Christian
Hi,
Du könntest, verknüpft mit der Auslösung Deiner Alarme, dem Alarm-Anlagen-Modul ein "Cancel" schicken.
Ein Notity mit Zeitverzögerung oder so...
gruß
klinki
Hi klinki,
mit dem "cancel" würde ich ja den Alarm beenden. Damit würde dann leider auch die leuchtende, zum ersten Sensor gehörende LED zurückgesetzt.
Gruß,
Christian
Hallo,
ein einmal ausgelöster Alarmlevel wird nur durch einen höheren Alarmlevel überschrieben.
Du kannst dir ja vielleicht mal sequence anschauen.
Zitat
Die Kenntnis weiterer Sensorauslösungen ist hilfreich um einen möglichen Fehleralarm einfacher als solchen zu erkennen, aber auch um die Wege eines Eindringlings nachvollziehen zu können.
Und dann?
Meiner Meinung nach solltest du Prüfen, ob der Sensor geeignet ist, diesen Alarm anzuzeigen. Ich habe z.B. einen Bewegungsmelder an der Treppe, welcher das Licht schaltet. Damit könnte ich ein Alarmlevel auslösen. Aber die Zuverlässigkeit ist eher nicht gegeben. Der arme Postbote mach ja schließlich auch nur seinen Job ;)
Andererseits habe ich Bewegungsmelder innerhalb der Wohnung. Und wenn diese Auslösen, wenn niemand Zuhause ist, wird die Innensirene aktiviert und ich benachrichtigt.
Für mich bedeutet das dann nachschauen und weiteres veranlassen.
Sollte jemand in der Wohnung sein, wird er sich dort ja nicht lange aufhalten. Somit ist die Reaktionszeit jemanden direkt zu ertappen sehr gering.
Wenn jemand sich Zutritt verschafft hat, kannst du in der Regel den Weg auch ohne technische Hilfsmittel verfolgen...
Und du hast noch die Möglichkeit die LogFiles auszuwerten. Dann kannst du auch den Weg nachverfolgenÄnderungen am Code halte ich eher für die schlechtere Variante.
Nur so ein paar Gedanken...
Edit: Noch was ergänzt.
Das stimmt natürlich.
Als "Krücke": Du könntest Dir die Auslösung des Alarms in einem Dummy merken. Auf diesen regiert dann Dein LED_Leucht_Aktor.
Dann in einen zweiten Dummy die Auslösung "merken", als Text, z.B. "BM_Küche_20170127_10:22:23".
Jeder weitere Alarm wird dann auch dort gespeichert. Damit hättest Du auch den "Weg des Einbruchs".
Dann die Anlage Canceln.
Somit bleibt dann die LED an. Sie ändert sich erst, wenn mit einem Disarm die Anlage unscharf wird.
Das klingt recht umständlich. Ich mache bei meiner Anlage aber Ähnliches mit 3 Dummies. Funktioniert gut.
Meine Alarmanlage V1 bestand ausschließlich aus Dummies und Notifys. Dort etwas zu ändern war ein Graus. Man muss halt das Beste aus dem Modul nutzen und den Rest drum herum bauen :P
Wobei ich Deinen Verbesserungsvorschlag grundsätzlich gut finde. Würde ich mich auch drüber freuen.
...dann würde ich, das setzen der LEDs aber gleich am Alarmmodul vorbei machen. Etwa so:
wenn alarmlevel nicht "disarmed" und sensor lößt aus dann setze LED...
weiteres notify, das bei "cancel" LEDs wieder löscht.
Ich sehe derzeit auch keinen Bedarf zu einer Code-Änderung - die Komplexität der Oberfläche ist schon groß genug, und das Problem ist auch ganz einfach mit dem jetzigen Modul lösbar.
Sagen wir, es soll Level 4 von verschiedenen Sensoren jeweils neu ausgelöst werden. Dann definiert man einen einfachen "AutoCancel"-Dummy. Das ist ein Dummy als Alarm-Aktor, der mit Verzögerung (sagen wir 2 Sekunden) geschaltet wird. Die Schaltaktion macht aber mit dem Dummy gar nichts - sondern cancelt den Alarm Level 4 wieder. Eingetragen wird in die Weboberfläche also als "Set Action für den AutoCancel-Dummy:
{Alarm_Exec('AAA',4,'AutoAus','dummy','off')}
Das bedeutet: 2 Sekunden nach einer Auslösung ist der Level 4 wieder scharf. Ein weiterer Aktor übernimmt dann die dauerhafte Signalisierung (er wird eben durch den Cancel-Befehl NICHT sofort zurückgesetzt).
LG
pah
Hi,
vielen Dank für die vielen Lösungsansätze.
Falls es sich vermeiden lässt, möchte ich die LED Display Steuerung aus Gründen des Aufwands nicht "um die Alarmanlage herum" programmieren.
@pah: Dein Ansatz könnte hier die passende Lösung sein, ich habe dazu aber zwei Verständnisfragen:
1) Wenn ich den Alarm wie vorgeschlagen cancel, wird doch für alle Aktoren auf Level 4 die "unset action" ausgeführt? Somit würde auch der LED Display zurücksetzt und eine evtl. zusätzlich auf dem Level befindliche Sirene ebenfalls abgestellt.
2)
Zitat von: Prof. Dr. Peter Henning am 27 Januar 2017, 19:31:15
[..] Ein weiterer Aktor übernimmt dann die dauerhafte Signalisierung (er wird eben durch den Cancel-Befehl NICHT sofort zurückgesetzt). [..]
Ich habe noch nicht verstanden, wie dieser weitere Aktor eingerichtet werden soll. Warum wäre dieser Aktor nicht vom Cancel Befehl betroffen? Ich bin bisher immer davon ausgegangen, das ein "Cancel" alle auf dem Level befindlichen Aktoren zurücksetzt, also die Unset Aktion ausführt.
Gruß,
Christian
Weil er keine "unset" action hat, sondern manuell zurückgesetzt werden muss...
LG
pah
Ah, ok. Verstanden. Dann mache ich mich mich mal an die Arbeit.
Nachteil der Lösung ist allerdings, dass die "DeviceOverview" der Alarmanlage den ausgelösten Alarm dann nicht mehr anzeigt.
Gruß,
Christian
Ich denke, das reicht jetzt. Vielleicht einfach etwas mehr über FHEM lernen, und dann erst komplizierte Lösungen stricken ?
pah
Zitat von: Prof. Dr. Peter Henning am 28 Januar 2017, 09:35:07
Ich denke, das reicht jetzt. Vielleicht einfach etwas mehr über FHEM lernen, und dann erst komplizierte Lösungen stricken ?
Habe ich etwas falsches gesagt? Das war wirklich nicht meine Absicht.
Vielen Dank noch einmal an alle für die Unterstützung mit Lösungsansätzen.
Auch als Anfänger lernt es sich leichter mit einer konkreten Aufgabenstellung.
Insofern reicht es mir jetzt auch (um weiterzukommen).
Nichts für ungut,
Christian
Na, dann mal ganz generell: Ich stelle hier Module bereit, dokumentiere diese und leiste in schwierigen Fällen etwas Support. Mehr ist zeitlich nicht drin. Wenn ich dann darüber hinaus einen Vorschlag mache, um ein Problem zu lösen und sofort lese, welchen "Nachteil" dieser Vorschlag hat, erhöht das meine Motivation nicht. Darum der ganz ernst gemeinte Vorschlag: Sich etwas mehr mit FHEM beschäftigen, dann kommt man ganz von alleine auf die Lösungen. Und das ist, wenn ich das sagen darf, auch viel befriedigender, als die Lösungen serviert zu bekommen.
LG
pah
Mal eine kurze Dummy Frage:
Wenn ich einen Sensor (hier Taster) mehrfach in der Sensor Liste haben möchte weil ich einmal short und einmal longRelease nutzen will oder eine Sirene mehrfach als Aktor (einmal ohne und einmal mit Verzögerung) möchte geht das vmtl. nur über entsprechende Dummies?
So will ich das zumindest jetzt angehen....
Zitat von: chem am 04 Februar 2017, 16:17:56
(...) geht das vmtl. nur über entsprechende Dummies?
Moin,
in der Annahme das richtig verstanden zu haben: Ja, richtig.
Geräte 'mehrfach' in den Alarmsettings sind mich möglich. (Beabsichtigter und sinnvoller) Workaround ist das Anlegen eines dummys, welcher den Status des eigentlichen Geräts via notify repliziert.
Grüße
Nils
Bei mir schneidet das WebGui die "Set Action" Befehle bei den Actoren ab.
Wenn ich über attr AlarmSirenePreWarn alarmSettings eingebe, ist der vollständige subroutine call da (siehe Screenshot), sobald ich einmal in die WebGui gehe wird der call abgeschnitten was natürlich zu perl Fehlern führt. (siehe zweiter Screenshot)
Im WebGui kann ich das "Set Action" Feld auch nicht editieren weil es nicht vollständig angezeigt wird...
Gibt es da eine Längenbeschränkung? Kann man die umgehen?
Ich habe das jetzt noch etwas weiter debugged und deutlich kürzere Namen genommen. Ich kann die alarmSettings ändern und sie bleiben auch so wie ich sie definiert habe bis ich in die Alarms GUI gehe.
Dort wird dann alles nach $SHORT, abgeschnitten! Also z.B:
alarm5,|{SirOn($NAME, $EVENT, $SHORT, |{ myAlarm_SireneOff() }|0:20
Das war vorher:
alarm5,|{SirOn($NAME, $EVENT, $SHORT, "del")|{ myAlarm_SireneOff() }|0:20
Spätestens nach dem Set Alarms Button sind die "Set Actions" der Actors beschnitten.
Er scheint direkt nach dem ersten Anführungszeichen abzuschneiden...
Einfache Anführungszeichen verwenden.
LG
pah
Ja, das funktioniert.
Ich habe eine weitere Frage:
Was ist die korrekte Methode in den Wait Action, Arm Action, Disarm Action und Cancel Action den aufrufenden Kanal festzustellen?
Hintergrund ist, ich schalte zwei Kanäle (4&5) immer gleichzeit an/aus. Jetzt werden diese Funktionen zwei mal aufgerufen, einmal für Kanal 4 und einmal für Kanal 5. Die Aktionen dürfen aber nur einmal ausgeführt werden. Ich würde daher gerne Testen welcher Kanal aufruft und dann nur für Kanal 5 die Aktionen starten....
Bisher mache ich das z.B. so:
sub myAlarm_WaitAction()
{
my $level4xec=AttrVal('ISS111','level4xec',"level4xec read error");
my $level5xec=AttrVal('ISS111','level5xec',"level5xec read error");
Log(0,"myAlarm_WaitAction: level4=$level4xec, level5=$level5xec");
# only execute in case level 4 is changed
# activation sequence is 4,5
# needs to be checked because the function will be called for each activated level
if($level4xec eq "armwait") {
if($level5xec eq "disarmed") {
fhem("set MP3Alarm_Led on");
fhem("set MP3Alarm_Mp3 playTone 001");
}
}
}
Halte das nicht für optimal insbesondere disarm funktioniert so nicht...
Komisch das keiner eine Lösung für das Problem hat. Führt ihr alle immer die gleiche Aktion aus, unabhängig davon welcher Alarmlevel eingeschaltet wird? Z.B. bei mir Level 0 ist low Bat detection, Level 4,5 ist Einbruchmeldealarm. Die sollen beim ein/ausschalten natürlich verschiedene Aktionen ausführen, dazu muss ich wissen welcher Level gerade die Funktion aufgerufen hat.
Ich habe mir da jetzt was zusammengebastelt, aber ich hätte gedacht dass es eine offizielle Variable oder attribute oder sowas gibt was mir sagt welcher Kanal denn jetzt gerade ein/aus/cancled wird..
Lösung hab ich nicht für Dich. Ich stelle aber Deinen case in Frage. Ich hab 2 "Typen" von Alarmen: rund-um-die-Uhr vs. im Bedarfsfall
rund-um-die-Uhr sind Dinge wie Reaktion auf einen Klingeltaster oder Wassermelder..... Und die aktiviere oder deaktiviere ich ja (in der Regel)gar nicht. Die laufen rund um die Uhr.
Mein einziger "Bedarfsfall" ist der Einbruchalarm, den ich eben im Bedarfsfall aktiviere/deaktiviere. Dafür nutze ich dann die Signalisierungen. Und wenn ich dann doch mal rund-um-die-Uhr deaktiviere, tut die Signalisierung auch nicht weh.
Sicherlich gibt es noch den 3. Fall, den ich aber (noch ?) nicht habe, dass anstatt rund-um-die-Uhr ein bestimmter Zeitraum definiert wird. Da aktiviert/deaktiviert dann die Zeit, was dann(hoffe ich für diesen Fall) nicht die disarm etc. action auslöst.
Und nun zurück zu Deinen Beispielen: Dein Level 0 ist doch der klassische rund-um-die-Uhr-Fall. Und was Deine Alarmanlage anbelangt:
ZitatHintergrund ist, ich schalte zwei Kanäle (4&5) immer gleichzeit an/aus.
Warum schaltest Du 2 Level gleichzeitig ? In meiner Glaskugel sehe ich das Szenario nicht und deshalb kommt mir auch kein workaround in den Sinn :'(
Grüße Markus
Bei mir ist Level 4 die Fensterschleife. Dort wird sofort ein Alarm ausgelöst wenn die Sensoren "open" melden. Der Eindringling soll möglichst früh verschreckt werden, am besten bevor das Fenster ganz auf ist.
Level 5 ist die Tür Schleife. Dort wird der Alarm verzögert damit man Gelegenheit hat die Anlage noch auszuschalten nachdem der Raum betreten wurde.
Ich habe ja eine Lösung um den einschaltenden Kanal zu detektieren, ist halt nur umständlich alle Kanäle abzuklappern. Ich hatte gehofft es gibt eine Variable oder so die die Kanalnummer anzeigt.
Das ist aber in meinen Augen eine komplett falsche Denkweise. Die Level sind die Aktivierungslevel - nicht die Hardware"schleifen". Und selbstverständlich gehört zu einem Öffnen der Tür auch eine unmittelbar erfolgende Warnung, dass in so-und-soviel Sekunden der "echte" Alarm ausgelöst wird.
Fenster"schleife" und Tür"schleife" sollten als separate Sensoren für ein und denselben Alarmlevel definiert werden. Und wer unbedingt den Türalarm verzögern möchte: Dafür kann man problemlos von außen einen Dummy und ein notify verwenden.
LG
pah
Zitat von: chem am 17 Februar 2017, 07:24:03
Bei mir ist Level 4 die Fensterschleife. Dort wird sofort ein Alarm ausgelöst wenn die Sensoren "open" melden. Der Eindringling soll möglichst früh verschreckt werden, am besten bevor das Fenster ganz auf ist.
Level 5 ist die Tür Schleife. Dort wird der Alarm verzögert damit man Gelegenheit hat die Anlage noch auszuschalten nachdem der Raum betreten wurde.
Ich habe ja eine Lösung um den einschaltenden Kanal zu detektieren, ist halt nur umständlich alle Kanäle abzuklappern. Ich hatte gehofft es gibt eine Variable oder so die die Kanalnummer anzeigt.
Hallo!
Wie immer gibt es viele Möglichkeiten eine Aufgabe zu lösen!
Ich hab das ähnlich wie chem gelöst:
Aber ich de-/aktiviere nur Alarm Level 5 mit all seinen armwait, arm und disarm actions. Level 4 wird von den folgenden notifys OHNE triggern der actions mit geschaltet:
define A_EntryDelay_disarm_N notify .*AAA.*level5.*disarmed set A_Eingang_Reset on-for-timer 1; sleep 0.5; attr AAA level4xec disarmed; setreading AAA level4 disarmed
attr A_EntryDelay_disarm_N room Alarm
define A_EntryDelay_arm_N notify .*ATTR.*AAA.*level5.*[^s]armed attr AAA level4xec armed;; setreading AAA level4 armed
attr A_EntryDelay_arm_N room Alarm
A_Eingang_Reset ist ein Dummy der Level 4 quitiert ("cancel" action).
Für mich funktioniert das so wie ich es brauche...
LG
Rainer
Ich finge meine Lösung auch sehr gut, bei mir wird es in Kürze noch zwei zusätzliche Alarm-Level geben, einen für Jamming Detection (level-3) und einen für Bewegungsmelder Alarm (level-2).
Auch ist es ein nützliches Feature eine Alarmerhöhung zu haben, wenn nach den Fenstern die Türen auslösen. Gleiches wenn es dann Jamming Detection und Bewegungsmelder Alarm gibt).
Das pre-Warnung, das die Alarmanlage scharf ist wenn die Haustür geöffnet wurde, habe ich auch mit dummies gelöst, funktioniert prima. Ich habe zwei dummies für Kanal 5, einer benutzt dazu das in der Web-Gui einstellbare Delay und geht auf die Sirene, der andere hat kein delay und geht auf rotes Blinklicht.
Also alles in allem ein sehr nützliches Modul, nur hatte ich am Anfang den Aufwand das richtig zum Laufen zu bekommen massiv unterschätzt...
Erkennen eines Jammers auf 868MHz* der die Funk-Interfaces lahm legt.
Einen Alarm Level habe ich noch vergessen ;), Ausfall der Netzspannung
*die Frequenz auf der mein Homematic System arbeitet
Zitat von: chem am 17 Februar 2017, 16:51:39
Erkennen eines Jammers auf 868MHz* der die Funk-Interfaces lahm legt.
und wie erkennst du das?
Noch einmal: Das ist m.E. eine falsche Sichtweise.
Philosophie des Moduls ist:
1.Es gibt Alarme, die Gefahr für Leben und Besitz darstellen: Feuer, Wasser, Gas => Höchster Level, läuft immer. Um welche Art der Aktivierung es sich handelt, wird in der Alarmmeldung mitgeliefert.
2.Es gibt einen Einbruchsalarm, den ich jederzeit scharf und unscharf schalten kann. Wer den womit ausgelöst hat, geht ebenfalls aus der Meldung hervor.
3.Es gibt einen Zugangsalarm, der immer scharf ist und bei Betreten des Hauses zu unüblichen Zeiten ausgelöst wird. Natürlich nicht mit Lärm etc. -ich will eben nicht aufwachen, nur weil eines meiner Kinder heimkommt. Aber doch, dass diese merken, dass ihre Anwesenheit registriert wurde.
4.Es gibt verschiedene Alarmlevel für
- Ausfall von Hardware aller Art (welche Art, geht aus der Meldung hervor, nicht aus dem Level)
- Potenziell gefährliche Situationen: Gewitter, oder Fenster auf bei Regen. Auch hier teilt das Modul mit, durch was das ausgelöst wurde
- Situationen, in denen eine menschliche Überwachung oder ein Eingriff notwendig ist (z.B. Gartenbewässerung läuft, oder Batteriewarnung)
LG
pah
Hier ein Video das zeigt wie Jamming funktioniert:
https://www.youtube.com/watch?list=PL1A88EBEE4CCD08FE&v=-2ozZfKoD4o (https://www.youtube.com/watch?list=PL1A88EBEE4CCD08FE&v=-2ozZfKoD4o)
Die einfache Version erzeugt einfach ein starkes Dauersignal, möglichst mt Modulation, damit kommen die Sensor-Signale nicht mehr am Empfänger an, da sie vom Jammer überdeckt sind.
Im Grunde könnte man das RF Interface das zur Kommunikation dient dazu nutzen im Leerlauf den RSSI Pegel zu messen, allerdings halte ich das für zu kompliziert weil z.B. bei meinem HM RPI Interface noch ein µC dazwischen ist.
Ich habe mir also bei ebay 868MHz CC1101 Module bestellt, die ich im raspberry über SPI ansprechen will. Dazu plane ich ein kleines C (oder go) Programm zu schreiben, das die RSSI Werte über das CC1101 Modul misst und regelmässig in eine Datei schreibt (oder pipe). Die Datei werte ich dann in FHM mit perl aus. Nutzsignale sollen schon im go-Programm erkannt und rausgefiltert werden (Erkennbar an der kurzen Dauer).
Das Jammer Signal muss über Längere Zeit mit starkem Pegel anliegen und das sollte sich einfach detektieren lassen. Wenn Jamming vorliegt, könnte man theoretisch noch mit einem Testdevice testen ob die Verbindung klappt, ist aber wahrscheinlich nicht wirklich nützlich.
Wenn Jamming über mehrere Sekunden vorliegt wird ein Alarm ausgelöst. Man braucht dann aber auch ein wired Alarmdevice.
Das funktioniert zwar nur bei primitiven Jammern, aber ich denke für die nächste Zeit wird das für normale Einbrecher reichen. Ein Geheimdienst wird sich davon natürlich nicht abschrecken lassen..
Danke für die Info! Klingt interessant. Würde mich freuen, wenn du uns hier im Forum über deine Bemühungen bez. Jammer Erkennung am Laufenden hältst; vielleicht in einem eigenen Thread - ist hier etwas off topic.
LG
Rainer
Zitat von: Prof. Dr. Peter Henning am 18 Februar 2017, 17:58:42
Noch einmal: Das ist m.E. eine falsche Sichtweise.
Philosophie des Moduls ist:
...
Danke für die Klarstellung!
Im Prinzip verwende ich das Alarm-Modul auch so!
Nur meine "Sonderanforderung", dass bei scharfem Einbruchsalarm bei Öffnen eines Fensters sofort Alarm ausgelöst wird, aber bei Öffnen der Wohnungstüre erst eine Warnmeldung (Selbstzerstörung in 30 Sekunden...) ausgegeben und erst nach Ablauf der Zeit der Alarm ausgelöst und zusätzlich noch beim Öffnen der Vorraumtüre nachdem die Wohnungstüre geöffnet wurde sofort Alarm ausgelöst wird, leis sich für mich am besten durch "Missbrauch" eines Alarmlevels lösen!
LG
Rainer
1.) Gibt es eine Möglichkeit zu verhindern dass FHEM nach jeder Aktivierung der Alarmanlage die cfg Datei speichern möchte? Oder habe ich hier irgendwas falsch gemacht?
2.) Es gibt verschiedene Einschränkungen bei der Eingabe von Aktionen, die mich ziemlich viel Zeit und Nerven gekostet haben. Kann man darauf im Wiki vielleicht noch mal explizit hinweisen?
- bei ARM ACTION darf man kein Semikolon im Befehl verwenden. Im Code habe ich gesehen, das es an genau dieser einen Stelle eine Sonderbehandlung gibt
- ich habe aus Versehen in den Befehlen " anstatt ' verwendet, wodurch sehr komische Dinge passiert sind, bis hin zum Absturz von FHEM (steht vielleicht auch irgendwo, dann habe ich es übersehen)
Im Wiki das Beispiel fand ich als Einsteiger etwas oversized. Ich hätte mir da etwas relativ einfaches gewünscht, auf das man aufbauen kann und das nicht durch die vielen Sensoren und Aktoren sehr verwirrend ist. Ich könnte mir was in der Art Vorstellen: 1 Schalter zum ein/ausschalten der Alarmanlage (daraus das Cancel abzuleiten hat mich als Anfänger auch viel Zeit und Nerven gekostet), einen Sensor zum auslösen eines Alarms (z.b. Türkontakt oder Bewegungsmelder) und eine Benachrichtigung und eine Aktion wie das auslösen einer Sirene. Also was sehr Einfaches für den Einstieg. Die Dinge aus dem Wiki sind eher Alarmanlage 3.0...
Zitat von: mumpitzstuff am 02 März 2017, 11:22:10
1.) Gibt es eine Möglichkeit zu verhindern dass FHEM nach jeder Aktivierung der Alarmanlage die cfg Datei speichern möchte? Oder habe ich hier irgendwas falsch gemacht?
Das wurde hier im Thread schonmal diskutiert. pah, der Modulautor, hat den Nachteil der aktuellen Implementierung zur Kenntnis genommen und auch eine anderweitige Lösung in Aussicht gestellt - allerdings mangels Priorität und Zeit eher in die langfristige Planung eingeschlossen.
Also kein Fehler deinerseits!
Zitat von: mumpitzstuff am 02 März 2017, 11:22:10
Im Wiki das Beispiel fand ich als Einsteiger etwas oversized. Ich hätte mir da etwas relativ einfaches gewünscht, auf das man aufbauen kann und das nicht durch die vielen Sensoren und Aktoren sehr verwirrend ist. Ich könnte mir was in der Art Vorstellen: 1 Schalter zum ein/ausschalten der Alarmanlage (daraus das Cancel abzuleiten hat mich als Anfänger auch viel Zeit und Nerven gekostet), einen Sensor zum auslösen eines Alarms (z.b. Türkontakt oder Bewegungsmelder) und eine Benachrichtigung und eine Aktion wie das auslösen einer Sirene. Also was sehr Einfaches für den Einstieg. Die Dinge aus dem Wiki sind eher Alarmanlage 3.0...
Niemand hält dich davon ab einen Beitrag zu FHEM zu leisten und solche Überarbeitungen des Wikis vorzuschlagen und einzuführen :)
Wäre definitiv ein Unterstützer der Idee - allerdings sind auch die jetzigen Beispiele richtig und wichtig, nämlich für jeden der etwas mehr möchte ;)
Grüße
Nils
Okay dann werde ich mich mal ran setzen und mit meinem Grundlagenwissen eine Schritt für Schritt Minimalanleitung schreiben.
Darf ich diese dann hier Posten oder wäre das die falsche Stelle?
Wenn sie in Ordnung ist, kann man sie auch direkt ins Wiki schreiben. Da habe ich hohe Ansprüche an Klarheit und Lesbarkeit des Textes (Berufskrankheit, sozusagen). Aus den Grund haben ja auch die etwas komplexeren Beispiele durchaus weitergeholfen.
LG
pah
Hallo zusammen
Trotz scheinbar sehr gutem Alarmanlagenmodul hab ich hier doch meine Startschwierigkeiten. Vieleicht kann mir einer meinen Denkfehler korrigieren, da ich das Wiki und auch diesen Thread durchgelesen hab und vermutlich zu weit suche...
Alarmanlage gemäss Wiki eingepflegt, Sensoren und Aktoren drin und gemäss Anleitung konfiguriert. Wenn ich nun über die Fhemweb der Hacken in die Checkbox Armed (bei Alarm 6) setze, funktioniert der Ablauf - LED (hab erste Phase mit LED konfiguriert) des HM-OU-CFM-TW beginnt zu blinken, danach kommt der MP3 Ton 'Alarmanlage scharf'.
Status Alarm 6 ist scharf.
Leider passiert jedoch nichts wenn ich das Fenster öffne (obwohl dieser Sensor in der Alarmanlage mit Raise konfiguriert ist und die Alarmanlage auslösen sollte).
Weiter versuche ich die Alarmanlage durch zwei Button des HM-PB-6-WM55 (6fach-Wandtasters) ein und auszuschalten. (ein dritter Taster ist für die Cancelfunktion).
Die Alarmanlage ändert jedoch ihren Status nicht.
Was mache ich falsch?
Welches Zeitfenster ist denn beim Alarm eingetragen? Start = 00:00 und Ende =23:59 wäre gut.
Gibt es eine Möglichkeit ein | irgendwie zu Escapen, wenn man es bei den Actors als Set Action verwenden möchte? Konkret wollte ich eine pushbullet Nachricht mit einem Titel verschicken. Dummerweise ist bei pushbullet | das Trennezichen für den Titel und für das Device. Sobald man das aber innerhalb der Action verwendet, wird die gesamte Action verworfen.
Derzeit nicht.
LG
pah
Die Zeiten hab ich überprüft und alles nochmals durchkonfiguriert und nach der Anleitung geprüft. Auch hab ich bis auf den einen Fenstersensor im Büro alle Sensoren aus dem Alarmanlagenmodul rausgenommen.
Trotzdem funktioniert die Arm- und Disarmsignale nur wenn ich beim Alarm6 den Hacken (eingekreist) herausnehme oder wieder anklicke. Dann laufen die oben eingestellten MP3 Dateien und LED auf dem Signalgeber ab.
Wenn ich hingegen versuche den Wanddschalter am Eingang Button 01 (armed) und Button 02 (für Disarmed) zu klicken passiert nichts.
Im Eventmonitor werden der Fenstersensor beim Fenster öffnen und schliessen angezeigt, ebenso die Buttonauslösungen des Wandschalters...
Freue mich auf jemanden der mir einen Denkanstoss geben könnte, was ich fals eingepflegt hab :-)
Vielen Dank
Dein Notify on RegExp-Statement "Fenster.Buero off" gefällt mir nicht. Da ist ein blank drin.
Meine Syntax für Tür-/Fensterkontakte sieht so aus "HM_348DE2:contact.*open.*"
DANKE plin für die schnelle Antwort. Ein Teil gelöst - Zweiter noch offen
Dein Hinweis hat geholfen was die Auslösung (Fenster.Buero) angeht. Im Printscreen sieht man nicht den ganzen Text: Wäre "Fenster.Buero offen" gewesen.
und ich hätte schwören können das ich dies so "Fenster.Buero:offen" eingegeben hatte (steht ja im Wiki auch so drin. Doch dann hab ich dies mit dem blank probiert, da im Eventmonitor ja auch kein Doppelpunkt ersichtlich war. Na ja etwas dazugelernt.
Das Ein- und Ausschalten der Alarmanlage geht aber noch nicht
Eingang.Wandschalter.Bt01:trigger (laut Wiki) geht nicht
Eingang.Wandschalter.Bt01:contact.*open.*
Eingang.Wandschalter.Bt01:contact.*trigger.*
gehen leider nicht.
Im Eventmonitor wird folgendes übertragen:
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter battery: ok
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter CMDs_done
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter Eingang.Wandschalter.Bt01 Short
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter.Bt01 Short (to Vact_dev)
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter.Bt01 trigger: Short_58
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter.Bt01 triggerTo_Vact_dev: Short_58
2017-03-09 22:16:54 CUL_HM Eingang.Wandschalter.Bt01 trigger_cnt: 58
Besten Dank
So jetzt gehts auch bei mir mit dem Ein und Ausschalten der Alarmanlage
Notify on regExp muss heissen:
Eingang.Wandschalter.Bt01.*trigger.*
Muss mich wohl mal intensiver mit den RegExp auseinandersetzen.
Vielen Dank für den richtigen Schubser...
https://regex101.com/
LG
pah
Zitat von: mumpitzstuff am 09 März 2017, 00:13:12
Gibt es eine Möglichkeit ein | irgendwie zu Escapen, wenn man es bei den Actors als Set Action verwenden möchte? Konkret wollte ich eine pushbullet Nachricht mit einem Titel verschicken. Dummerweise ist bei pushbullet | das Trennezichen für den Titel und für das Device. Sobald man das aber innerhalb der Action verwendet, wird die gesamte Action verworfen.
Vielleicht gehts mit cmdalias, das ich grad entdeckt habe. Ich teste das vielleicht heute Abend. Außerdem kann man damit im Verbund mit andFhem über Google die Alarmanlage mit Sprachbefehlen an und ausschalten.
Wie kann man das Modul wieder restlos entfernen?
::)
Indem man die FHEM-Anfängerdokumentation liest.
pah
Vielen Dank für die aufschlussreiche Antwort.
Ich habe die Anleitung vor längerer Zeit einmal komplett durchgelesen (aber das meiste aufgrund der Menge schon wieder vergessen).
Jetzt habe ich nochmal im PDF nachgeschlagen - leider finde ich aber die relevante(n) Passage(n) zum Entfernen eines/des Moduls nicht...
Hallo,
ich benötige einmal Eure Hilfe.
Sicherlich steht es irgendwo, habe es nicht gefunden!
Ich habe mich über Ostern mit diesem tollen Modul beschäftigt. Hätte ich es früher gefunden, wäre mir viel manuelle Konfiguration erspart geblieben.
So nun zu meiner Frage:
Was mache ich falsch? Ich habe einen RFID Chip mit Adruino und Homematic Schalter zum aktivieren und deaktivieren verwendet. Über Dummys funktioniert das schalten. Nun stelle ich fest, dass jedes aktivieren und deaktivieren dazu führt, dass die .cfg Dateien neu geschrieben werden und das System ein Save Config haben möchte. Das kann so doch nicht richtig sein! Wo liegt mein Fehler?
Danke Euch
Das ist aktuell leider das normale Verhalten.
Natürlich ist das richtig, und durchaus gewollt.
Aus Sicherheitsgründen (und davon werde ich mich auch nicht abbringen lassen) wird der Aktivierungszustand in einem Attribut gespeichert. Ändert man den Aktivierungszustand, wird also das Attribut geändert. Und natürlich merkt FHEM das und zeigt eine Konfigurationsänderung an.
Das bedeutet nicht, dass "das System ein Save Config haben möchte" - und wer will, kann das Fragezeichen einfach ignorieren oder unterdrücken (-> Forumssuche).
Wenn ich mal viel Zeit habe (so um 2038), werde ich eine eigene Konfigurationsdatei für das Alarmmodul definieren.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 19 April 2017, 08:37:08
(...) Wenn ich mal viel Zeit habe (so um 2038), werde ich eine eigene Konfigurationsdatei für das Alarmmodul definieren. (...)
Hallo pah,
ich möchte gar nichts davon in Frage stellen, wir hatten es ja schon durch hier.
Damals hatten wir allerdings auch über die alternative Möglichkeit gesprochen, die Schärfungszustände "nur" als Reading zu speichern und unter dem Aspekt "Sicherheit" einen default-Zustand je Alarmlevel nach FHEM-Start zu definieren.
Das nur als Erinnerung, falls es keine aktive Entscheidung war, sondern eine mangels Erinnerung an alle Optionen :)
Ich kann mit beiden Varianten gut leben.
Grüße
Nils
Hallo Zusammen,
ich möchte gerne bei der Wait Action, Arm Action, Disarm Action und Cancel Action jeweils den Namen des Alarm Level in der erzeugten "Meldung" aufnehmen. Mithilfe von $NAME oder $EVENT ist mir das nicht gelungen. Die Variable wird nicht durch Message Part II (Name Alarm Level) ersetzt.
Kennt jemand eine Lösung?
Vielen Dank :)
Hallo,
ich hätte auch eine Frage dazu. Ich habe mich mal ein wenig mit dem Alarmmodul beschäftigt und einen Alarm definiert.
Später wollte ich das rückgängig machen und habe den Alarm mit delete gelöscht. Allerdings werden weiterhin unter "Everything" die Alarm Settings angezeigt. Und unter dem TabletUI eintrag in der Navigation befindet sich auch immer noch der Eintrag "Alarm".
Kann man das rückstandslos entfernen?
Danke und LG
Hallo
Habe mich mit diesem Modul beschäftigt.
Ist sehr gut durchdacht.
Ich habe aber Probleme mit der HouseOpen Sub.
Ich habe da mal zwei Fenster und zwei Tür Sensoren eingetragen.
Ich erhalte beim ausführen der sub aber immer die selbe Antwort und die Dummys werden auch immer mit den gleichen Antworten gefüllt.
Im Dummy TFOpen.warn stehen immer alle Tür und Fenstersensoren die ich in der Sub auch eingetragen habe.
Und im Dummy TFClose.warn steht immer no.
Auch wenn zb beide Fenster offen sind und ich die Sub ausführe.
Habe ich da was falsch verstanden?
sub HouseOpen()
{
my $kfo = 0;
my $kfs = "";
my $kto = 0;
my $kts = "";
my $str = "";
if( $main::value{'BK.F'} ne "Closed" ){
$kfo++;
$kfs = "BK/";
}
if( $main::value{'WK.F'} ne 'Closed' ){
$kfo++;
$kfs = $kfs."WK/";
}
if( $main::value{'VK.T'} ne "Closed" ){
$kto++;
$kts = "VK/";
}
if( $main::value{'WZ.T'} ne 'Closed' ){
$kto++;
$kts = $kts."WZ/";
}
if( ($kfo >= 1) && ($kto == 0) ){
$kfs = substr($kfs,0,-1);
fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kfs Fenster");
fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}elsif( ($kfo == 0) && ($kto >= 1) ){
$kts = substr($kts,0,-1);
fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts Tür");
fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}elsif( ($kfo >= 1) && ($kto >= 1)){
$kts = substr($kts,0,-1);
$kfs = substr($kfs,0,-1);
$str = "$kts Tür + $kfs Fenster";
fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts T / $kfs F");
fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}else{
fhem("set TFOpen.warn none");
fhem("set TFClose.warn yes");
}
return $str;
}
Hallo
Habs die Sub mal etwas geändert:
Zitatsub HouseOpen()
{
my $kfo = 0;
my $kfs = "";
my $kto = 0;
my $kts = "";
my $str = "";
if (ReadingsVal('SE_Fenster_Wohnung_Freisitz', 'state', 'closed') ne 'closed' ){
$kfo++;
$kfs = "Wohnung_Freisitz/";
}
if (ReadingsVal('SE_Fenster_Wohnung_Parkplatz', 'state', 'closed') ne 'closed' ){
$kfo++;
$kfs = $kfs."Wohnung_Parkplatz/";
}
if (ReadingsVal('SE_Fenster_Kueche_gross', 'state', 'closed') ne 'closed' ){
$kfo++;
$kfs = $kfs."Kueche_gross/";
}
if (ReadingsVal('SE_Fenster_Kueche_klein', 'state', 'closed') ne 'closed' ){
$kfo++;
$kfs = $kfs."Kueche_klein/";
}
if (ReadingsVal('SE_Tuere_Heizung', 'state', 'closed') ne 'closed' ){
$kto++;
$kts = "Heizung/";
}
if (ReadingsVal('SE_Tuere_Freisitz', 'state', 'closed') ne 'closed' ){
$kto++;
$kts = $kts."Freisitz/";
}
if( ($kfo >= 1) && ($kto == 0) ){
$kfs = substr($kfs,0,-1);
$str = "$kfs Fenster";
fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kfs Fenster");
fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}elsif( ($kfo == 0) && ($kto >= 1) ){
$kts = substr($kts,0,-1);
$str = "$kts Tür";
fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts Tür");
fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}elsif( ($kfo >= 1) && ($kto >= 1)){
$kts = substr($kts,0,-1);
$kfs = substr($kfs,0,-1);
$str = "$kts Tür + $kfs Fenster";
fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts Tür / $kfs Fenster");
fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}else{
fhem("set TFOpen.warn none");
fhem("set TFClose.warn yes");
}
return $str;
}
Bein check habe ich jetzt das oder die offenen Fenster und Türe in der Ausgabe, und nach einer verzögerung von 30 Sek wird das auch in den Dummy TFOpen.warn geschrieben.
Kann man machen - ich habe das aber schon seit mehr als einem Jahr ganz anders gelöst.
LG
pah
moin ...
auch ich setze das alarmmodul ein.
wir setzen mehrere dummys zur visualisierung und zum scharf/unscharf schalten auf einem tablet ui ein. als hardware sind hm optische tür-/fenstermelder als sensoren und hm rauchmelder als alarm aktoren vorhanden. weiterhin sind 2 hm steckdosenzwischenstecker vorhanden (nähe haus- und kellertür), die bei einer alarmmeldung auf "on" gesetzt werden, deren led somit als visuelle alarmmeldung dienen und deren button als sensor zum disarm im modul konfiguriert ist.
soweit funktioniert das alles auch sehr gut. auch der mailversandt funktioniert reibungslos.
nun muss jedoch unser mitarbeiter mehrfach ins haus kommen, wenn wir mal für einen längeren zeitraum nicht anwesend sind. ich hab mir folgenden ablauf vorgestellt:
alarmlevel 6 ist aktiv -> tür wird geöffnet -> alarmmeldung löst sofort still aus und die steckdosenzwischenstecker werden auf "on" gesetzt-> mitarbeiter hat 30 sek. zeit, den button auf dem steckdoseneinsatz (haustür oder kellertür) zu betätigen, bevor die rauchmelder lärm machen -> alarmanlage ist dann aus. (bis hierhin funktioniert alles bereits).
irgendwann verlässt der mitarbeiter das gebäude ja wieder. idealerweise wird der alarm nun automatisch wieder scharf geschaltet (menschen sind gelegentlich vergesslich), wenn die tür geschlossen wird. die hm tür-/fensterkontakte geben beim schließen das event "closed".
seit einigen tagen probiere ich nun diese "closed" event verarbeiten zu können. versuche, mit einem notify bzw. einem doif sind jedoch bisher gescheitert. wenn ein entsprechendes notify oder doif aktiviert wird, kann ich den oben beschriebenen ablauf bis zum drücken des button ergo dem abschalten der alarmanlage ausführen, aber die türkontakte geben danach keine weitere meldung mehr. bedeutet: beim tür schließen leuchtet die led dauerhaft gelb bzw. dann rot -> also es wurde kein "ack" zurückgemeldet. der alarm wird auch nicht aktiviert. der melder kann nur durch ein "getConfig" "wiederbelebt" werden. interessanterweise reagieren alle anderen melder ab diesen zeitpunkt auch nicht mehr.
ich hoffe auf etwas erfolgbringende unterstützung.
folgendes notify hatte ich in verschiedenen variationen probiert (erstmal nur für eine tür) (ein ähnliches doif mit mehreren "and" auswertungen läuft auch nicht)
Internals:
DEF (AlarmMeldung|Homestatus|f_Ha_At) {
my $r1 = Value("AlarmMeldung");;
my $r2 = Value("Homestatus");;
my $r3 = Value("f_Ha_At");;
if ($r1 eq "on" && $r2 eq "Urlaub" && $r3 eq "closed") {
fhem "set AlarmAktiv on"
}
}
NAME Alarm_Auto_Aktiv_not
NOTIFYDEV AlarmMeldung,Homestatus,f_Ha_At
NR 297
NTFY_ORDER 50-Alarm_Auto_Aktiv_not
REGEXP (AlarmMeldung|Homestatus|f_Ha_At)
STATE inactive
TYPE notify
Readings:
2017-05-07 13:36:01 state inactive
Attributes:
group Alarm
room Alarm
edit: das notify funktioniert doch ... ich hab alle verknüpfungen einmal gelöscht und stück für stück neu aufgesetzt. ich weiß nicht genau wo der fehler bei meinen verknüpfungen war, jedoch blieb das system in irgendeiner ungewollten schleife hängen. nun klappt das von uns gewünschte szenario wie gewünscht.
Zitat von: stebar_ am 01 Mai 2017, 19:56:19
Hallo Zusammen,
ich möchte gerne bei der Wait Action, Arm Action, Disarm Action und Cancel Action jeweils den Namen des Alarm Level in der erzeugten "Meldung" aufnehmen. Mithilfe von $NAME oder $EVENT ist mir das nicht gelungen. Die Variable wird nicht durch Message Part II (Name Alarm Level) ersetzt.
Kennt jemand eine Lösung?
Vielen Dank :)
Hallo,
Ich habe es bis jetzt nicht selbst lösen können...
Hat jemand vielleicht einen Augenblick Zeit mir eine Hilfe zu geben? [emoji4]
Guten Abend zusammen,
ich bin gerade Schritt für Schritt dabei die Alarmanlage einzurichten. Das klappt an und für sich auch schon ganz gut. Jetzt habe ich allerdings eine Frage. Ich nutze ein Zwave Keypad (https://wiki.fhem.de/wiki/Z-Wave-ZIP_WT-RFID_Keypad). Darüber möchte ich die Alarmanlage einschalten, abschalten und den Alarm wiederrufen. Ich würde jetzt behaupten, dass ich dann für jeden Zustand einen Dummy + Notify/Doif anlegen muss, und diese dann als Sensoren nutzen muss. Geht das eleganter, oder ist das schon der richtige Ansatz?
Ebenso habe ich auch eine Zwave Sirene (https://www.amazon.de/Aeotec-Sirene-ZW080-BI-Z-Wave-Plus/dp/B00P00N2H8/ref=sr_1_1?ie=UTF8&qid=1495826359&sr=8-1&keywords=sirene+zwave). Nun würde ich gerne Fehlalarme abfangen, da es ja immer mal vorkommen kann, dass man von den Bewegungsmeldern erkannt wird, und dann soll die Sirene erstmal nur für 5 Sekunden anschlagen, dann 5 Sekunden Ruhe, und wenn in dieser Zeit kein wiederruf erfolgt ist, soll sie bis zum wiederruf Alarm schlagen. Mein erster Ansatz wäre jetzt als
set Action --> set Sirene on-for-timer 5;sleep 5; set Sirene on
Unset --> set Sirene off
Bin mir nicht sicher, ob das sleep blockiert. Vielleicht kennt hier ja jemand auch noch einen 2. Weg.
Schönen Abend noch.
Grüße Stephan
also ich wollte mich mal langsam an das Alarmanlagen Modul machen ... aber ich verstehe das nicht so ganz. Hat jemand irgendwo schonmal eine bessere anleitung gemacht als im Wiki? Wohl bisher auch keiner ein Video oder ähnliches ?
Zitat von: ChrisW am 26 Mai 2017, 21:42:22
also ich wollte mich mal langsam an das Alarmanlagen Modul machen ... aber ich verstehe das nicht so ganz. Hat jemand irgendwo schonmal eine bessere anleitung gemacht als im Wiki? Wohl bisher auch keiner ein Video oder ähnliches ?
Wo hast du denn noch Probleme? Vom Prinzip würde ich dir Raten, mit einem Alarmlevel anzufangen.Dazu drei Dummys ( Arm/ Disarm / Cancel). Diese Drei legst du als Sensoren fest. Dann nimmst du noch eine Lampe oder so, und legst die als Actor fest.
Habe nun schon Pushbullet für
Doch nicht ganz so schwer aber ...
WARTEN SCHARF UNSCHARF bekomme ich schon als Push
Einen HM Türsensor state 0 oder 1 gibt er aus.
Und als Actor Pusbullet.
Alarm 5 überall eingestellt. Wenn ich Aktiviere bekomme ich WARTEN Push, Scharf Push.
Leider passiert nichts wenn ich den Türkontakt auslöse in fhem ändert es sich von 0 auf 1 aber bekomme über den Pusgactor kein Push.
SO versende ich :
set pushch message SCHARF Gestellt
Habe das pushch als Alarm Actor ausgewählt und bei Action: set pushch message ALARRRMM
Leider kommt keine Alarm Push
Dreh mal 23:59 und 0:00..So wie du es hast, gilt es doch nur 1 Minute..
Danke aber auch das ändert nichts das der Actor nicht ausgelöst wurd hab hal nen dummy angelegt diesen als Alarm Actor und dann bei Action: set ALARMDUMMY ALARMMM
Wird auch nicht gesetzt.
Ebenso einen Fensterdummy den ich auch 0 oder 1 zuweise reagiert es auch nicht drauf.
Screen vom Tür Sensor
Zitat von: ChrisW am 26 Mai 2017, 22:29:20
Danke aber auch das ändert nichts das der Actor nicht ausgelöst wurd hab hal nen dummy angelegt diesen als Alarm Actor und dann bei Action: set ALARMDUMMY ALARMMM
Wird auch nicht gesetzt.
Ebenso einen Fensterdummy den ich auch 0 oder 1 zuweise reagiert es auch nicht drauf.
Screen vom Tür Sensor
Könnte hier dein Problem liegen?
Sensor-->
Achtung: Es ist zwingend notwendig, dass für einen auszulösenden Alarmlevel auch ein Sensor für den Widerruf (=Cancel) des Alarms definiert wird, ansonsten ignoriert das Modul die Definition dieses Levels.
Leg dir nochmal ein Dummy als Sensor an, welcher Level 5 Chancelt!
Hm eine idee aber das wars wohl auch nicht hab einen angelegt
Zitat von: ChrisW am 26 Mai 2017, 22:41:00
Hm eine idee aber das wars wohl auch nicht hab einen angelegt
Was sagt denn dein Logfile?Das ist sehr umfangreich!Mach mal zur Sicherheit chanceldummy:off bei Notify on RegExp
Man kann das notify für den alarmSensor doch auch con Hand mit einem trigger-Befehl auslösen und so testen, ob das funktioniert. Ich tippe auf einen falschen regulären Ausdruck.
LG
pah
hmm gemacht aber nichts im Log steht nur :
2017.05.27 09:41:12 1: [Alarm] State locked, cannot create new notifiers
Zitat von: ChrisW am 27 Mai 2017, 09:43:06
hmm gemacht aber nichts im Log steht nur :
2017.05.27 09:41:12 1: [Alarm] State locked, cannot create new notifiers
Dann musst du Sie erst unlocked setzen.Du musst irgendwo deine definierte Alarmanlage haben,zur not im raum Everything gucken.
oha hab ich nun gemacht leider immer noch HM_Tuer_Hof geht auf stat 1 und es kommt keine Alarm Push ich versteh das nicht das ist doch nicht so schwer da muss ein ganz dummer fehler sein :D
EDIT: Ahh Alarm nochmal gespeichert nach den unlock und nu gehts :) Puhh da haben wir den dummen fehler.
Gibt es eine möglichkeit dem pushch actor den Auslösenden Sensor mitzuteilen ? Am besten mit Sensorf und dann der Level Beschreibung. Also Hoftüre Zugangsalarm :)
Hab es schon rausgefunden :)
Habe derzeit ein Dummy Alarmanlage damit möchte ich Alarm für Level 6 ein / auschalten mit
alarmanlage.* reagiert er auf änderungem. Leider taucht der Dummy nur einmal unter Sensor aus. Kann ich die Alarmsettings anpassen um zusätzlich noch Disarm hinzuzufügen ?
alarmSettings: alarm6,|alarmanlage.*|Alarmanlage AN|arm
Wie kann ich von meiner Homematic Fernbedienung nach drücken der Taste die LED Grün bekommen wenn auch wirklich Scharf gestellt wurde?
Wie ist der Pair befehl zum Alarm Modul?
Oder geht das gar nicht??
Natürlich geht das. Fernbedienung peeren (NICHT pairen) mit den virtuellen Kanälen einer HMCCU, und auf diese ein notify setzen.
LG
pah
ahh genau immer wieder diser fehler aber nu werde ich mich länger mit HM befassen müssen ;)
Dann muss ich jetzt nurnoch rausfinden wie genau. hmccu habe ich nicht im Einsatz nutze HMLAN in Fhem direkt.
Kann eigentlich eine längere Zeit als 59:59 angegeben werden, unten bei den Actoren?
Eine längere Eingabe ist nicht möglich und 60:00 oder mehr geht nicht, weil dann diese at mit falschen Zeiten angelegt werden.
Auszug aus dem LOG
define alarm2dly2 at +00:60:00 set.... : Wrong timespec 00:60:00: either HH:MM:SS or {perlcode}
Die Angabe von "1:30:00" (für 90 Minuten) unter Delay funktionoiert nicht?
Nein, so viele Zeichen kann man in das Feld nicht eintippen.
Das sollte aber möglich sein. Werde ich bei Gelegenheit beheben.
Hat bisher noch niemand benötigt.
LG
pah
Hallo zusammen,
da mir RegEx immer noch etwas schwer fallen .. ich habe einen Sensor XXX mit dem reading state und dem event open/close, habe ich das so unter Notify to Alarm Level richtig abgebildet
XXX:state.*open.* ?
Irgendwie gefällt ihm das nämlich nicht :(
Danke
Gruß
ZitatRegEx immer noch etwas schwer fallen
https://regex101.com/
LG
pah
Hallo,
habe 2 Fragen:
1: Wie kann ich denn bei einem Sensor 2 Events eintragen, um ein Auslösen des Sensors zu erreichen (z.B. Wassersensor von Homematic mit den Zuständen "wet" und "damp")?
2: Wie kann ich mir denn bei einer Benachrichtigung von der Alarmanlage (z.B. bei Auslösen über einen Fenstersensor) über Telegram mitteilen lassen, welcher Sensor es war? Ich bekomme dann normal nur die Nachricht, welche im Feld "Set Action" bei Aktoren eingetragen ist? - bei mir "set teleBot message Alarm!!!"
Danke.
Matthias
Bei deiner ersten Frage kann ich dir nicht direkt antworten. Mit dem passenden regex sollte das gehen.Alternativ über readingsproxy. Der Sensor welcher ausgelöst wurde,steht doch im Reading des jeweiligen Levels.
Grüße
Moin,
Zitat von: math78 am 06 August 2017, 09:37:38
1: Wie kann ich denn bei einem Sensor 2 Events eintragen (...)
Etwas in der folgenden Form sollte Dir helfen:
Sensor:Event1|Sensor:Event2
Zitat von: math78 am 06 August 2017, 09:37:38
2: Wie kann ich mir denn bei einer Benachrichtigung von der Alarmanlage (z.B. bei Auslösen über einen Fenstersensor) über Telegram mitteilen lassen, welcher Sensor es war? (...)
Dafür stehen entsprechende Variablen zur Verfügung. Für deine Anforderung solltest du folgende Variable nutzen:
$NAME
Also bspw. etwas wie:
set PushService msg 'Alarmanlage ausgelöst' '$NAME $EVENT' '' 1 ''
(letztere Variable informiert auch direkt darüber welches Event am Sensor aufgetreten ist).
Gruß
Nils
Danke werde ich die Tage mal testen
2 Fragen habe ich noch: Bei Level7 wie kann ich automatisch ein cancel machen ? Rauchmelder Deaktiviere ich meist am Melder .. hatte jetzt nicht vor ein Schalter irgendwo hinzupacken. Und ob ich danach dran denke in Fhem auf cancel zu drücken weiss ich auch nicht :D
Und wie kann ich ein Alarm Level Scharf schalten per Fhem befehl ? also sowas wie set AAA level5 armed ?
Möchte wenn keiner Anwesend ist gerne die Alarmanlage Scharf schalten. Aber ohne Sensor .
Oder geht es wirklich nur dann mit einem Dummy oder dem Anwesenheitsstatus als Sensor ??
Danke
Steht doch im Wiki und in den SmartHome Hacks.
Ich habe dafür in jeder Etage einen gut erreichbaren Schalter, der außer seiner normalen Funktion auch die Rauchmelder ausschaltet. Außerdem ein dummy-Device AutoCancel.alarm als alarmActor. Wird bei allen lauten Alarmen mit aktiviert, und schaltet nach der eingestellten Verzögerungszeit von 1 Minute den Alarm wieder aus.
Wirkt sich sehr positiv auf den WAF und die Nachbarschaftsbeziehungen aus.
LG
pah
okay Danke schaue ich mir an.
Weil wenn ich mal aus irgendwlechen gründen ein Fehlalarm oder eine auslösung nicht mitbekomme dann löst es ja kein 2. mal aus richtig ?
Kann ich mir das irgendwie anzeigen lasse ? Eine Sichbare Anzeige im Alarm Modul wäre schon mal schön.
Oder wie könnte ich das Realisieren das ich wenn kein cancle erfolgt ist alle X Minuten eine Push verschicke das noch eine Alarm auslösung Aktiv ist ?
Vielen Dank
hm und noch etwas ich habe einen Dummy Schlafen welcher per Pasker gesetzt wird.
Ich kann den Dummy nun als Sensor hinzufügen zum scharfschalten wenn er ON gesetzt wird.
Aber wie bekomme ich bei off es wieder ausgeschaltet ?
Unschöne lösung jeweils eien extra Dummy
Alarmon
Alarmoff
welcher dann zusätzlich geschaltet wird.
ZitatUnschöne lösung jeweils eien extra Dummy
Nein, ist aus meiner Sicht nicht unschön. Sondern wegen der logischen Trennung sehr viel sicherer in der Bedienung.
ZitatKann ich mir das irgendwie anzeigen lasse ? Eine Sichbare Anzeige im Alarm Modul wäre schon mal schön.
Das gibt es doch im state-Reading. Das kann man auch in einen Weblink einbauen und damit beliebig einbinden.
ZitatOder wie könnte ich das Realisieren das ich wenn kein cancle erfolgt ist alle X Minuten eine Push verschicke das noch eine Alarm auslösung Aktiv ist ?
Ich würde ein DOIF als alarmActor definieren, und als "set action" enablen sowie als "unset action" disablen. Und das schickt dann eben in regelmäßigen Abständen ein Push.
LG
pah
P.S.: Das Modul steht derzeit zur Überarbeitung an. Anregungen nehme ich entgegen.
Danke dann werd ich mir das mal anschauen klint ja nicht so einfach ;)
Super Modul wie ich finde kann nur noch besser werden schön das noch was dran gemacht wird.
Wie gesagt einen Sensor / Actor mehrfach hinzufügen wäre schön.
Und sehr wichtig finde ich eine 2. Scharfschaltung z.b Home Modus. Dort sollte ein seperater Befehl hinterlegt werden.
Ich möchte gerne beim Scharfschalten Zuhause KEINE Sounds bekommen wie "Alarmanlage Scharf gestellt usw.. da Kinder schlafen.
Quasi die möglichkeit einer "Stillen Scharfschaltung"
Wäre ja bei der auswahl armed mit einzubauen armedhome oder sowas. Somit werden die befehle oben nicht beachtet für das Scharfschalten.
Hallo,
brauche doch nochmals Eure Hilfe:
Folgendes klappt nicht bei mir:
Zitat1: Wie kann ich denn bei einem Sensor 2 Events eintragen (...)
Etwas in der folgenden Form sollte Dir helfen:
Code: [Auswählen]
Sensor:Event1|Sensor:Event2
Ich brauche bei meinem Homematic Wassersensor die beiden Zustände damp und wet als Auslöser.
Danke.
Matthias
Bin gerade dabei das Alarmmodul einzurichten.
Bei der Möglichkeit Batterien zu überwachen ist mir aufgefallen das man zwar alarmDevice Sensor oder Actor definieren kann, aber auch die Aktoren werden bei den Sensoren und Umgekehrt eingetragen, wodurch ich keine unterscheidlichen Auswertungenmachen kann.
### Batterieüberwachung
define LBattA.warn dummy
attr LBattA.warn alarmDevice Actor
attr LBattA.warn alias Batteriealarm Aktoren
attr LBattA.warn group deviceDetector
attr LBattA.warn room Alarmanlage
define LBattA.N notify .*:[Bb]attery.*[Ll]ow.* set LBattA.warn $NAME
attr LBattA.N alarmDevice Actor
attr LBattA.N alias Batteriealarm Aktoren
attr LBattA.N group deviceDetector
attr LBattA.N room Alarmanlage
define LBattS.warn dummy
attr LBattS.warn alarmDevice Sensor
attr LBattS.warn alias Batteriealarm Sensoren
attr LBattS.warn group deviceDetector
attr LBattS.warn room Alarmanlage
define LBattS.N notify .*:[Bb]attery.*[Ll]ow.* set LBattS.warn $NAME
attr LBattS.N alarmDevice Sensor
attr LBattS.N alias Batteriealarm Sensoren
attr LBattS.N group deviceDetector
attr LBattS.N room Alarmanlage
Fehlt mir hier noch etwas?
ZitatAktoren werden bei den Sensoren und Umgekehrt eingetragen
Das ist, sagen wir es deutlich, Unsinn.
LG
pah
Zitat von: Burny4600 am 13 August 2017, 18:25:32
...
Fehlt mir hier noch etwas?
Ähm.. nein! Du hast da ca. doppelt so viel wie notwendig!
Das sollte reichen:
efine LBatt.warn dummy
attr LBatt.warn alarmDevice Sensor
attr LBatt.warn group deviceDetector
attr LBatt.warn room Alarmanlage
define LBatt.N notify .*:[Bb]attery.*[Ll]ow.* set LBatt.warn $NAME
attr LBatt.N group deviceDetector
attr LBatt.N room Alarmanlage
LG
Rainer
Zitat von: math78 am 12 August 2017, 12:35:58
Hallo,
brauche doch nochmals Eure Hilfe:
Folgendes klappt nicht bei mir:
"
1: Wie kann ich denn bei einem Sensor 2 Events eintragen (...)
Etwas in der folgenden Form sollte Dir helfen:
Code: [Auswählen]
Sensor:Event1|Sensor:Event2
"
Ich brauche bei meinem Homematic Wassersensor die beiden Zustände damp und wet als Auslöser.
Danke.
Matthias
Sollen die zwei Events den selben, oder zwei unterschiedliche Alarm-Level auslösen?
Zitat von: Prof. Dr. Peter Henning am 11 August 2017, 04:44:22
P.S.: Das Modul steht derzeit zur Überarbeitung an. Anregungen nehme ich entgegen.
Guten Abend,
Ich finde die grafische Übersicht des neuen YHHAM sehr ansehnlich,vll kann man hier noch etwas übernehmen.Und vll ein seperaten set Befehl,für jedes aktivierte Level.
Schönen Abend noch.
Grüße
Ps: Gibt es denn schon etwas zu den geplanten Änderungen zu sagen?
Zitat von: Prof. Dr. Peter Henning am 11 August 2017, 04:44:22
...
P.S.: Das Modul steht derzeit zur Überarbeitung an. Anregungen nehme ich entgegen.
Darf ich dann meine Anregung aus Post #349 in Erinnerung rufen:
https://forum.fhem.de/index.php/topic,26893.msg348629.html#msg348629
Danke!
Rainer
Zitat von: gamauf am 16 August 2017, 17:03:07
Ähm.. nein! Du hast da ca. doppelt so viel wie notwendig!
Das sollte reichen:
efine LBatt.warn dummy
attr LBatt.warn alarmDevice Sensor
attr LBatt.warn group deviceDetector
attr LBatt.warn room Alarmanlage
define LBatt.N notify .*:[Bb]attery.*[Ll]ow.* set LBatt.warn $NAME
attr LBatt.N group deviceDetector
attr LBatt.N room Alarmanlage
LG
Rainer
Also werden die Batteriezustände der Aktoren ebenfalls mit Obigem überwacht?
Damit werden Geräte überwacht. Unabhängig davon ob sie im Alarm-Modul als Sensoren, Aktoren oder gar nicht verwendet werden!
ZitatDarf ich dann meine Anregung aus Post #349 in Erinnerung rufen:
Done.
LG
pah
Zitat von: gamauf am 16 August 2017, 19:43:49
Damit werden Geräte überwacht. Unabhängig davon ob sie im Alarm-Modul als Sensoren, Aktoren oder gar nicht verwendet werden!
Danke für die Info.
Hmm brauche nochmal etwas Hilfe.
Ich habe jeden Rauchmelder als Sensor Alarm7.
Das Raucmelder Team hab ich als Actor weil ich Teamcall nutze ..
Nun möchte ich als AlarmSirene noch die Rauchmelder haben. Aber ich bekomme das Team und auch die Rauchmelder ja nicht zusätzlich als actor rein.
Im Wikki steht etwas von einem Dummy:
define SD.alarm dummy
attr SD.alarm alarmDevice Actor
attr SD.alarm alarmSettings alarm7,|set TH.SD0 alarmOn|set TH.SD0 alarmOff|30 (Vom Modul 95_Alarm.pm automatisch erzeugt)
attr SD.alarm group alarmActor
attr SD.alarm room Alarm
Jedoch verstehe ich das nicht so ganz wie es bei dem Problem hilft ?
Ich habe das über mehrere Dummys gelöst. Jeder Dummy ist Actor und dort ist immer jeweils genau eine Perl Prozedur eingetragen, die in der myutils steht. In dieser wird dann alles geregelt/aufgerufen (u.a. das von Dir gewünschte AlarmOn / AlarmOff der Teammelder).
Peter
Zitat von: ChrisW am 27 August 2017, 10:43:39
Hmm brauche nochmal etwas Hilfe.
Ich habe jeden Rauchmelder als Sensor Alarm7.
Warum jeden Rauichmelder einzeln als Sensor?
Es reicht den Teamlead als Sensor einzutragen.
Zitat von: ChrisW am 27 August 2017, 10:43:39
Das Raucmelder Team hab ich als Actor weil ich Teamcall nutze ..
Nun möchte ich als AlarmSirene noch die Rauchmelder haben. Aber ich bekomme das Team und auch die Rauchmelder ja nicht zusätzlich als actor rein.
Im Wikki steht etwas von einem Dummy:
define SD.alarm dummy
attr SD.alarm alarmDevice Actor
attr SD.alarm alarmSettings alarm7,|set TH.SD0 alarmOn|set TH.SD0 alarmOff|30 (Vom Modul 95_Alarm.pm automatisch erzeugt)
attr SD.alarm group alarmActor
attr SD.alarm room Alarm
Jedoch verstehe ich das nicht so ganz wie es bei dem Problem hilft ?
Da jedes Device nur einmal in der Liste des Alarm-Moduls auftauchen kann legst du dir ein Dummy Device an, einfach nur um eine zusätzliche Zeile im Alarm-Modul zu erzeugen. In der "Set Action" (oder auch "Unset Action") kannst du dann aber jeden beliebigen Befehl eintragen, auch das aktivieren eines Devices das bereits in einer anderen Zeile verwendet wird!
Okay Danke. Ja mit dem Team Hinzufügen ist auch eine idee jedoch hätte ich gern Andere Beschreibungen. Meine Frau kann man hm.rm.stall nicht so viel anfangen als Rauch im Stall :D
Mit den Dummys werde ich mal versuchen nur immer etwas nervig den Alarm auszulösen :D
Hallo Zusammen,
ich versuche mich schon den ganzen Vormittag mit der Alarmanlage auseinanderzusetzen und bin jetzt irgendwie an einem Punkt wo mir die Ideen ausgehen.
Eig. möchte ich nur dass ein Alarm ausgelöst wird, sobald der Fenstersensor ein Event triggert.
Dazu wurde mein Fenstersensor zum Sensor gemacht und mein Tablet für die Sprachausgabe als Actor
Zusätzlich habe ich noch ein weiteres Device als Actor für das cancel-Event, welches ja benötigt wird.
Die Alarm-Sensor-Settings habe ich über die Weboberfläche gemacht, mein Log sagt jedoch:
2017.09.02 12:37:53 1: [Alarm 0] not raised, alarmSensor HM_305C2E has wrong settings
Mein zugehöriger Fenster-Sensor (unwichtige Attribute weggelassen):
defmod HM_305C2E CUL_HM 305C2E
attr HM_305C2E alarmDevice Sensor
attr HM_305C2E alarmSettings alarm0,|HM_305C2E.*||on
attr HM_305C2E alias AZ_Fenster
attr HM_305C2E event-on-change-reading state
Hat jemand eine Idee, warum ich falsche Einstellungen im Sensor habe?
VG, Thomas
Okay,
habe es jetzt herausfinden können.
Ich musste den Code manuell anpassen und das doppelte || zu einem einfachen ändern.
aus:
attr HM_305C2E alarmSettings alarm0,|HM_305C2E:open||on
wird:
attr HM_305C2E alarmSettings alarm0,|HM_305C2E:open|on
Danach steht in der Webobefläche bei Message Part | on drin.
Klicke ich jetzt wieder oben auf den Button Set Alarms, ändert sich mein Device Attribut von
alarm0,|HM_305C2E:open|on
zu
alarm0,|HM_305C2E:open|on|on
und dann funktioniert das Ganze nicht mehr. Ist das ein Bug in der Oberfläche oder mache ich irgendwas falsch? :o
VG, Thomas
Zitat von: ToM_ToM am 02 September 2017, 14:56:27
Okay,
habe es jetzt herausfinden können.
Ich musste den Code manuell anpassen und das doppelte || zu einem einfachen ändern.
aus:
attr HM_305C2E alarmSettings alarm0,|HM_305C2E:open||on
wird:
attr HM_305C2E alarmSettings alarm0,|HM_305C2E:open|on
Danach steht in der Webobefläche bei Message Part | on drin.
Klicke ich jetzt wieder oben auf den Button Set Alarms, ändert sich mein Device Attribut von
alarm0,|HM_305C2E:open|on
zu
alarm0,|HM_305C2E:open|on|on
und dann funktioniert das Ganze nicht mehr. Ist das ein Bug in der Oberfläche oder mache ich irgendwas falsch? :o
VG, Thomas
Bin am Handy,deswegen kann ich jetzt nicht wirklich drüber gucken,aber ich würde nicht von einem Bug ausgehen. Verbose auf 5 und nochmal durch gehen.Jedes Feld ausfüllen und weiter probieren. Hätten sonst schon mehrere gehabt
ZitatHätten sonst schon mehrere gehabt
Ja, das dachte ich mir auch schon.
Habe es jetzt hinbekommen, nachdem ich das Event
open, welches mein Fenstersensor auslöst, nicht mehr in den
Notify on RegExp mit drin habe, sondern im Bereich
Message Part |.
Da hatte ich mich wohl zu sehr von den Bildern im Wiki irritieren lassen. ;) Wenn ich nach dem Wiki gehe, kommt mir dieser Weg der bei mir jetzt funktioniert zwar völlig falsch vor, aber er geht.
Jetzt ist nur noch die Frage wie ich auf 2 unterschiedliche Events triggern kann. Also Fensterstatus: (open|tilted)
VG, Thomas
Zitat von: ToM_ToM am 02 September 2017, 16:20:41
Ja, das dachte ich mir auch schon.
Habe es jetzt hinbekommen, nachdem ich das Event open, welches mein Fenstersensor auslöst, nicht mehr in den Notify on RegExp mit drin habe, sondern im Bereich Message Part |.
Da hatte ich mich wohl zu sehr von den Bildern im Wiki irritieren lassen. ;) Wenn ich nach dem Wiki gehe, kommt mir dieser Weg der bei mir jetzt funktioniert zwar völlig falsch vor, aber er geht.
Jetzt ist nur noch die Frage wie ich auf 2 unterschiedliche Events triggern kann. Also Fensterstatus: (open|tilted)
VG, Thomas
Acvau mal ein zwei Seiten zurück,da gab es die gleiche diskusion..Ansonsten über readingsproxy als neuen Sensor
Hey Esjay,
vielen Dank für deine Unterstützung.
Habe es jetzt auch hinbekommen.
Es funktioniert im Notify on RegExp nur dann wenn im Message Part | auch irgendwas steht.
Und das mit dem Fenster (open|tilted) habe ich jetzt durch Negation gelöst:
HM_305C2E:(?!closed).*
VG, Thomas
Das ist doch wohl klar: Alle Felder müssen etwas enthalten. ::)
Steht, meine ich, auch im Wiki.
LG
pah
ZitatDas ist doch wohl klar: Alle Felder müssen etwas enthalten.
In den Wiki-Beispielen ist bei einigen Fällen das Feld
Message-Part I leer.
Deshalb hatte mich das ja verwirrt.
Aber jetzt läuft es.
VG, Thomas
Gibt es eine Option das Level direkt auf Armed zu setzen ? Ohne Wait usw. ?
Ich habe diverse Sounds hinterlegt : Alarmanlage wird scharf geschaltet ...
Ich möchte aber eine Stille Scharfschaltung hinbekommen ohne Sounds usw.
Danke
attr AAA level4xec armed; setreading AAA level4 armed
setzt level 4 scharf
(sehr kurz, weil am Telefon geschrieben)
Sehr geil Danke das funktioniert :)
Kann ich bei den Aktionen z.B. das Einschalten/Ausschalten einer Sirene mit Sleep machen oder blockiert das irgendwas?
Sirene on;;sleep 60;;Sirene off
Falls das ungünstig ist, wie sollte man das sonst machen?
Ich verwende dazu einen dummy als Alarm Actor, der verzögert eingeschaltet wird - aber beim Einschalten eben Sirenen o.ä. stumm schaltet.
Oder den Alarm insgesamt beendet. indem man z.B. in das Kommandofeld z.B.ein Alarm_Exec('AAA',7,'AutoAus','dummy','off')
einträgt.
Hat den Vorteil, dass sich die Nachbarn nicht mit Dreschflegeln und Mistgabeln bewaffnet ums Haus versammeln.
LG
pah
Ahhh das ist eine gute Idee! Danke!
moin,
ich wollte gemäß dem wiki die statischen zustandsüberprüfung aktivieren. aber irgendwo klemmt etwas. ist eine tür oder ein fenster geöffnet, so wird ein alarmactor (og_west_Sw) geschaltet und eine email gesendet. bis hierhin alles gut.
der state bei TFOpen.warn zeigt jedoch gleich mehrere auslöser?! ich bin davon ausgegangen, dass nur das tatsächliche auslösende device angezeigt wird. in der email wiederum steht nur das auslösende device.
beim schließen des jeweiligen fensters bzw. der tür, wechselt der state des device auf "closed"(regulärer ausdruck laut dem "event monitor"). trotz das alle fenster-/türkontakte als state "closed" zeigen, wir kein "cancel" im alarmmodul gesetzt und der state in TFOpen.warn zeigt weiterhin mehrere auslöser.
womöglich kann sich das ja mal jemand ansehen. vielen dank.
hier die listen:
list TFOpen.check
Internals:
NAME TFOpen.check
NR 282
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm4,|{HouseOpen()}||02:00
group windowDetector
room Alarm,Türen/Fenster
list TFClose.warn
Internals:
NAME TFClose.warn
NR 281
STATE no
TYPE dummy
READINGS:
2017-09-25 01:22:51 state no
Attributes:
alarmDevice Sensor
alarmSettings alarm4,|TFClose.warn:yes|Alle zu|off
group windowDetector
room Alarm,Türen/Fenster
list TFOpen.warn
Internals:
NAME TFOpen.warn
NR 280
STATE Te_re/Tuerkontakt_Test T / Ke_Ke2/Ke_Tr F
TYPE dummy
READINGS:
2017-09-25 01:22:51 state Te_re/Tuerkontakt_Test T / Ke_Ke2/Ke_Tr F
Attributes:
alarmDevice Sensor
alarmSettings alarm4,|TFOpen.warn:.*[TF].*|$EVENT|on
group windowDetector
room Alarm,Türen/Fenster
eintrag in 99_myUtils.pm
#
# Alarmanlage
#
sub HouseOpen()
{
my $kfo = 0;
my $kfs = "";
my $kto = 0;
my $kts = "";
my $str = "";
if( $main::value{'Ke_Ws.F'} ne "closed" ){
$kfo++;
$kfs = "Ke_Ws/";
}
if( $main::value{'Ke_Hz.F'} ne "closed" ){
$kfo++;
$kfs = "Ke_Hz/";
}
if( $main::value{'Ke_Bue.F'} ne "closed" ){
$kfo++;
$kfs = "Ke_Bue/";
}
if( $main::value{'Ke_Fl.F'} ne "closed" ){
$kfo++;
$kfs = "Ke_Fl/";
}
if( $main::value{'Ke_Ke1.F'} ne "closed" ){
$kfo++;
$kfs = "Ke_Ke1/";
}
if( $main::value{'Ke_Ke2.F'} ne "closed" ){
$kfo++;
$kfs = "Ke_Ke2/";
}
if( $main::value{'Ke_Tr.F'} ne "closed" ){
$kfo++;
$kfs = $kfs."Ke_Tr/";
}
if( $main::value{'Ha.T'} ne "closed" ){
$kto++;
$kts = "Ha/";
}
if( $main::value{'Ke.T'} ne "closed" ){
$kto++;
$kts = "Ke/";
}
if( $main::value{'Te_li.T'} ne "closed" ){
$kto++;
$kts = "Te_li/";
}
if( $main::value{'Te_re.T'} ne "closed" ){
$kto++;
$kts = "Te_re/";
}
if( $main::value{'Tuerkontakt_Test.T'} ne "closed" ){
$kto++;
$kts = $kts."Tuerkontakt_Test/";
}
if( ($kfo >= 1) && ($kto == 0) ){
$kfs = substr($kfs,0,-1);
fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kfs Fenster");
fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}elsif( ($kfo == 0) && ($kto >= 1) ){
$kts = substr($kts,0,-1);
fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts Tür");
fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}elsif( ($kfo >= 1) && ($kto >= 1) ){
$kts = substr($kts,0,-1);
$kfs = substr($kfs,0,-1);
$str = "$kts Tür + $kfs Fenster";
fhem("define TFOpen.delay at +00:00:30 set TFOpen.warn $kts T / $kfs F");
fhem("define TFClose.delay at +00:00:30 set TFClose.warn no");
}else{
fhem("set TFOpen.warn none");
fhem("set TFClose.warn yes");
}
return $str;
}
list der alarmanlage
Internals:
NAME Alarmanlage
NR 274
STATE <span style="color:green"> 0 1 2 3 <span style="width:1ex;color:red">4</span> 5 6 7</span> Türtestkontakt offen
TYPE Alarm
VERSION 2.85
READINGS:
2017-04-24 20:58:27 level 0
2017-04-30 13:47:46 level0 disarmed
2017-04-30 13:47:51 level1 disarmed
2017-04-24 20:58:17 level2 armed
2017-05-01 22:27:19 level3 disarmed
2017-09-25 01:20:21 level4 Tuerkontakt_Test.T
2017-09-24 21:57:00 level5 disarmed
2017-09-24 18:43:17 level6 disarmed
2017-04-30 13:48:01 level7 armed
2017-04-24 22:26:43 lockstate unlocked
2017-09-25 01:20:21 short Türtestkontakt offen
2017-09-25 01:38:06 state <span style="color:green"> 0 1 2 3 <span style="width:1ex;color:red">4</span> 5 6 7</span> Türtestkontakt offen
Attributes:
armact set Alarmscharf on
armdelay 0:05
armwait set Alarmteilscharf on
cancelact set rm_alarm alarmOff;set AlarmMeldung off
disarmact set AlarmAktiv off;set Alarmteilscharf off;set Alarmscharf off;wait 2;set AlarmAus off;set AlarmMeldung off
group Alarmanlage
level4end 23:59
level4msg offen
level4offact wait 5;set og_west_Sw off;
level4onact define alarm4dly1 at +00:02:00 {HouseOpen()};define alarm4dly2 at +00:00:02 {DebianMailNoAttach('xxxxxxxxxxxxxxxxxxx','Alarm','$SHORT')};define alarm4dly3 at +00:00:05 set og_west_Sw on;
level4start 0:00
level4xec armed
room Alarm
statedisplay color
Hallo Community,
nach dem heutigen Update auf die aktuelle Version von "95_Alarm.pm" bekomme ich folgende Fehlermeldung bei "Set Alarms"!
alarm.js line 137:
TypeError: undefined is not an object (evaluating 'sarr[k].children[2].children[1].value')
Hat den Fehler noch einer von Euch?
Vielen Dank vorab.
Grüße Mark
Ist das die angehängte Version von alarm.js ?
LG
pah
Zitat von: Prof. Dr. Peter Henning am 09 Oktober 2017, 19:05:47
Ist das die angehängte Version von alarm.js ?
LG
pah
Mit dieser ist der Fehler beseitigt, habe ich wohl irgendwo übersehen und hatte wohl noch eine andere Version.
Danke für die schnelle Hilfe.
Grüße Mark
hab den selben fehler nach dem Update. Wo muss diese alarm.js genau hin?
Zitat von: ChrisW am 09 Oktober 2017, 20:50:40
hab den selben fehler nach dem Update. Wo muss diese alarm.js genau hin?
Bei mir liegt die unter folgendem Pfad:
/opt/fhem/www/pgm2
Grüße Mark
Danke. Oha was den da passiert beim Update. Alle verzögerungszeiten sind weg beim Aktoren :(
Kann sein, dass ich die selbst beim Einchecken nicht in der richtigen Version hatte - ist behoben,
LG
pah
Hallo Gemeinde,
Folgender Sachverhalt gibt mir ein Rätsel auf.
Ich bekomme die Meldung [Alarm 4] has undefined save data test, disarming
nach shutdown restart im LogFile angezeigt. Dies hängt irgendwie mit der Statedisplay Meldung und dem letzten Sensor der ausgelöst hat zusammen. Kann ich mit allen Sensoren reproduzieren. Konsequenz Alarm Level des Sensors ist danach deaktiviert. --> Möglicherweise auch die richtige Reaktion des Modules.
Mein Verständnis aktuell bis jetzt: Wenn immer ein Sensor in der Zustandsprüfung auslöst darauf im Statedisplay angezeigt wird, ist dieser dann auch der den ich in o.g. Meldung als undefined save data gemeldet bekomme.
Frage: In der Zustandsänderung sollte doch sobald alle Sensoren ein "closed" haben ein "Cancel" für den jeweiligen Level (Bei mir Level 4) gesetzt werden und der Statedisplay Eintrag verschwinden?
Wahrscheinlich sitzt der Fehler ja zwischen Tastatur und Monitor! ;)
Da ich die Routine und die Einstellungen aus dem Wiki übernommen habe, gehe ich davon aus das es daran nicht liegt.
Vielen Dank vorab.
Grüße Mark
Wenn man bei Warte-Aktion etwas einträgt, dann wird das Attribut alarmwait erzeugt. Wenn man jetzt die Warte-Aktion wieder löscht und den Button Set Alarms drückt, dann wird das Attribut alarmwait auf 1 gesetzt. Das äußert sich dann im Logfile wie folgt:
2017.10.15 12:45:04 3: 1 : Unknown command 1, try help.
2017.10.15 12:45:04 3: [Alarm 6] will be armed from alarmSensor GROUP_FAMILIE with event absent, delay 1:00
Besteht die Möglichkeit, dass das Modul dieses Attribut entfernt, wenn man die Aktion entfernt hat (das was drin steht löschen), anstatt dann das Attribut auf 1 zu setzen? Außerdem wäre schön gewesen, wenn hier stehen würde, welche Aktion/Attribut zu diesem Fehler geführt hat.
Kann ich mir frühestens Mittwoch ansehen.
LG
pah
Servus pah,
vielen Dank für das tolle Alarm Modul.
Nach etwas Einarbeitung finde ich mich jetzt ganz gut zurecht.
Eine Frage konnte ich mir allerdings noch nicht selbst beantworten:
Gibt es analog zur Variable $Short auch eine Variable ausschließlich für den Nachrichtenteil 1?
Vielen Dank.
Grüße Mave
Nein, gibt es bisher nicht. Kann man aber problemlos aus den Alarmsettings oder aus der $SHORT Nachricht isolieren, vergl. Codezeilen 564 und 565 im Modul.
LG
pah
Okay, danke.
Hi Pah,
mir ist heute ein kleiner Schönheitsfehler aufgefallen: ein paar spaces zu viel in line 54. Nebenwirkung: In der Überschrift Arm/Cancel fehlt das Arm ebenso wie in den Action-Auswahlboxen der Sensoren.
Grüße Markus
OK, betrifft nur die englischsprachige Version. Ist behoben und wird demnächst eingecheckt.
LG
pah
Moin pah,
eine Frage noch:
Du empfiehlst im Wiki, language auf DE zu stellen.
Bringt das Vorteile oder ist das gerade egal?
Danke.
Grüße Mave
Ich empfehle das ??
Eher nicht, man sollte einfach die Sprache einstellen, die einem besser gefällt. Aber das gehört eben in die globalen Definitionen.
LG
pah
Okay.
Danke.
Zitat von: mumpitzstuff am 15 Oktober 2017, 16:14:49
Wenn man bei Warte-Aktion etwas einträgt, dann wird das Attribut alarmwait erzeugt. Wenn man jetzt die Warte-Aktion wieder löscht und den Button Set Alarms drückt, dann wird das Attribut alarmwait auf 1 gesetzt. Das äußert sich dann im Logfile wie folgt:
2017.10.15 12:45:04 3: 1 : Unknown command 1, try help.
2017.10.15 12:45:04 3: [Alarm 6] will be armed from alarmSensor GROUP_FAMILIE with event absent, delay 1:00
Besteht die Möglichkeit, dass das Modul dieses Attribut entfernt, wenn man die Aktion entfernt hat (das was drin steht löschen), anstatt dann das Attribut auf 1 zu setzen? Außerdem wäre schön gewesen, wenn hier stehen würde, welche Aktion/Attribut zu diesem Fehler geführt hat.
Dieselbe Fehlermeldung habe ich jetzt auch im Log stehen... :-[
Ich habe wohl gerade eine Kleinigkeit gefunden als ich mit meinem neuen Google Home Mini herumgespielt habe: Wenn ich in den Textboxen (bspw. für Wait Action) eine URL eintrage um mit dem Google Home etwas abzuspielen, wird diese URL abgeschnitten und nicht komplett gespeichert wenn man auf "Set Alarms" klickt.
Aus einem set GoogleAssistant.Studio play http://translate.google.com/translate_tts?ie=UTF-8&tl=de&client=tw-ob&q=Die%20Alarmanlage%20wird%20in%20einer%20Minute%20aktiviert
wird ein set GoogleAssistant.Studio play http://translate.google.com/translate_tts?ie=UTF-8
Damit ist dann natürlich keine Sprachausgabe mehr möglich. Ich kann das zwar im Attribut "armwait" wieder vervollständigen, aber vielleicht lässt sich das ja auch beheben.
Vielen Dank!
Zitatvielleicht lässt sich das ja auch beheben
Nach Prioritätenliste irgendwann im Herbst 2032.
Es ist sinnvoll, die Übergabe solcher Parameterwüsten in ein ordentliches Perl-Unterprogramm auszulagern.
LG
pah
Hallo zusammen,
nach längerer Zeit habe ich meinem fhem mal wieder ein Update verpasst und erhalte nun nachfolgende Meldungen im Log:
2017.11.02 20:51:56 3: Please define Auto.Cancel.1alarmSettings first
2017.11.02 20:51:56 3: Please define telegram.alarmalarmSettings first
Es existieren zwei Dummies mit folgenden Listings:
Internals:
NAME Auto.Cancel.1
NR 737
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm1,|{Alarm_Exec('Alarmanlage',1,'AutoAus','dummy','off')}|L1_aus|5:00
room Alarm
setList state:Abbruch
webCmd Abbruch
Internals:
NAME telegram.alarm
NR 733
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm0,alarm1,|set telegram message Alarm|set telegram message Alarm_ende|0
group alarmActor
room Alarm
Wieso werden zwei Objekte "Auto.Cancel.1alarmSettings" und "telegram.alarmalarmSettings" im Log benannt, die im System weder existieren noch in der fhem.cfg referenziert sind?`
Anbei noch ein Screenshot zur Verdeutlichung...
Viele Grüße
Marc
Bitte die Anfängerdokumentation lesen - den so etwas wie
ZitatObjekte "Auto.Cancel.1alarmSettings" und "telegram.alarmalarmSettings"
gibt es nicht.
LG
pah
Dann muss ich meine Frage wohl anders stellen:
Wieso finde ich im Log-File den Eintrag "Please define Auto.Cancel.1alarmSettings first" wenn ich im Alarmmodul den Actor mit dem Name "Auto.Cancel.1" angelegt habe.
Testweise habe ich über die GUI einen neuen Actor mit dem Namen "AC" angelegt. Im Log-File findet sich dann ein weiterer Eintrag "Please define ACalarmSettings first".
Der Eintrag wird im Übrigen nicht beim Start von fhem erzeugt, sondern erst beim "Betreten" des Raums der Alarmanlage.
Gerne schaue ich mir auf die Doku für Anfänger erneut durch - für einen Hinweis an welcher Stelle ich suchen sollte, wäre ich sehr dankbar.
LG
Marc
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
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
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
Setz Mal den Delay für den Telegram Aktor auf 00:00 und teste erneut bzw. schau ins Log.
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
Schuss ins Blaue:
Schreib mal jeweils was ins Feld Message Part I der Sensoren...
https://wiki.fhem.de/wiki/Diskussion:Modul_Alarm
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
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
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.
@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
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
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
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
Oh, sehe gerade, dass das Datum 04.11. ist, also von gestern.
Löschen geht nicht:
Bad regexp level3): Unmatched ) in regex; marked by <-- HERE in m/level3) <-- HERE / at fhem.pl line 2210.
:(
level3\)
Über level3.* konnte ich es löschen.
Vielen Dank.
Denkfehler - damit wird auch level3 gelöscht. Wenn schon, hätte dort level3.+ stehen müssen.
LG
pah
Da hast Du Recht.
level3 wurde aber nach einem Neustart wieder angelegt.
Vielen Dank nochmals.
Grüße Mave
Hallo,
ich habe heute erst das fhem-Update auf 5.8 gemacht und seitdem das folgende Problem:
Bei jeder Aktivität des Alarmmoduls erscheint folgendes im Log:
2017.11.09 12:52:01 3: Please define AlarmLightalarmSettings first
2017.11.09 12:52:01 3: Please define GefahralarmSettings first
2017.11.09 12:52:01 3: Please define GongalarmSettings first
2017.11.09 12:52:02 3: Please define AlarmLightalarmSettings first
2017.11.09 12:52:02 3: Please define GefahralarmSettings first
2017.11.09 12:52:02 3: Please define GongalarmSettings first
Die drei aufgeführten sind aktuell meine einzigen Aktoren.
Ich habe nur das Update gemacht, sonst nichts geändert.
Die Alarmsettings habe ich kontrolliert, sind definiert.
Gruß -- Rolf
Ich glaub sowas hatte ich auch bei einem Update und habe dann festgestellt, das meine Verzögerungszeiten bei den Aktoren irgendwie verloren gegangen waren. Trag doch bei der Verzögerung mal 00:00 oder eine andere Zeit ein und schau ob dann das Problem behoben ist.
Zitat von: Prof. Dr. Peter Henning am 16 August 2017, 20:45:10
Done.
LG
pah
Hallo pah!
Nach meinem heutigen Update (die letzten Updates am 21.8. & 12.9. brachten noch keine Änderung) sehe ich auch den Zustand (armed/disarmed) im Status des Alarm Device.
Danke für die Änderung!!!
LG
Rainer
Moin pah
Ich bin derzeit auch wieder mit deinem Modul am experimentieren und mir ist etwas aufgefallen das für mich persönlich nicht gut funktioniert.
Möglicherweise wurde das auch schon angespreochen...
Ich habe einen Türkontakt (HM-SEC-SCo) den ich für meinen "Hauptalarm" auswerte. Ich würde aber auch gern die Sabotage des Kontakts für meinen Sabotagealarm auswerten.
Folgendes: Mein Hauptalarm ist leicht verzögert um die Gangsters nicht sofort in Angst und schrecken zu versetzen XD ein späterer, plötzlicher, lauter Alarm steigert viel besser das Herzinfarktrisiko.
Jetzt hebeln die Jungs meine Wohnungstür auf... (noch) kein Alarm ... sehen den Türkontakt und reißen diesen ab. Als erstes haben sie die Abdeckung in der Hand, weil ich eine Rastnase entfernt habe und der Kontakt selbst angeschraubt ist... sabotageError on GENAU JETZT soll der Sabotagealarm los gehen... ist ja schließlich schon was "kaputt" gegangen. Darüber werde ich still benachrichtigt... Gleiches Spiel: ein Besucher/Vertreter/was auch immer... spielt in einem unbeobachteten Moment daran rum.
Ich weiß nun nicht wie ich das realisieren soll. Einmal den Kontakt auf state:open für level7 auszuwerten und einmal auf sabotageError:on für level6 auszuwerten.
Gibt es da schon was oder kannst du mir eine Hilfestellung geben?
Danke
Grüße^^
coole Idee ich habe bald ähnliches vor da der Sabotagekontakt bei mir ein Glasbruchmelder ist. Ich wüsste jetzt nur die Dummy Lösung der bei änderung des Sabotage status geschaltet wird .. dummys kannso su ja ohne Limit als attr sensor machen :)
Aber vielleicht gibt es ja noch bessere lösungen. Hatte auch den Wunsch einen"Clone" einfach nochmal hinzuzufügen als Sensor. Erspart einiges an basteln.
Zitat von: ChrisW am 21 November 2017, 13:20:54
....Hatte auch den Wunsch einen"Clone" einfach nochmal hinzuzufügen als Sensor. Erspart einiges an basteln.
Genau sowas wäre perfekt. Ein SensorDevice innerhalb clonen um es für ein anderes Alarmlevel konfigurieren zu können.
Möglicherweise genau so nützlich für Aktor-Devices.
Grüße^^
Die Lösung Dienes Problemes:
define Sabotage_warn dummy
attr Sabotage_warn alarmDevice Sensor
attr Sabotage_warn alarmSettings alarm6,|Sabotage_warn|Sensor $EVENT|on
attr Sabotage_warn group alarmHelperDev
attr Sabotage_warn room Alarm
define Sabotage_warn_N notify .*sabotageError:\son.* set Sabotage_warn $NAME
attr Sabotage_warn_N room Alarm
Um unterschiedliche Events eines Sensors in verschiedenen Alarmlevels verarbeiten zu können, brauchst du dir nur einen Dummy (mit sprechendem Namen) anzulegen. Der muß nichts können außer den Speicherplatz für das "alarmSettings" Attribut zur Verfügung stellen; sprich er erzeugt eine weitere Zeile im Alarmmodul unter "Sensors". Unter "Notify by RegExp" dieser neuen Zeile trägst du dann die RegExp mit dem Namen des eigentlichen Sensors ein.
Zitat von: gamauf am 21 November 2017, 15:51:38
Die Lösung Dienes Problemes:
define Sabotage_warn dummy
attr Sabotage_warn alarmDevice Sensor
attr Sabotage_warn alarmSettings alarm6,|Sabotage_warn|Sensor $EVENT|on
attr Sabotage_warn group alarmHelperDev
attr Sabotage_warn room Alarm
define Sabotage_warn_N notify .*sabotageError:\son.* set Sabotage_warn $NAME
attr Sabotage_warn_N room Alarm
Und genau das möchte ich eben vermeiden... wieder 2 Devices die nicht sein müssten, wenn man im Alarm-Device die Einträge clonen könnte.
Wie groß der Aufwand dazu wäre und was dafür nötig ist geschweige denn ob es überhaupt möglich ist kann ich nicht sagen... würde aber vielen (2 bis jetzt) weiter helfen und es deutlich vereinfachen. Bin auf ein statement von pah gespannt... Falls die Idee überhaupt anklang findet.
Trotzdem Danke!
Grüße^^
Zitat von: roman1528 am 21 November 2017, 18:00:09
Und genau das möchte ich eben vermeiden... wieder 2 Devices die nicht sein müssten
...
In Anbetracht dessen, dass diese zwei Devices die Sabotagemeldungen ALLER Sensoren (sofern der RegEx des Notify entsprechend gesetzt ist) verarbeiten, hält sich der Aufwand dafür, meines Erachtens, durchaus in Grenzen.
Hättest Du die Sensoren mehrmals in der Liste, müsstest du für den Sabotage-Alarm den RegEx, Message Part I, etc. für jeden Sensor extra eintragen.
ZitatBin auf ein statement von pah gespannt... Falls die Idee überhaupt anklang findet.
Findet sie nicht, habe derzeit genügend andere Baustellen
LG
pah
Hallo,
dann stelle ich hier nochmal die Frage: Ich möchte eine Scharfschaltung der Alarmanlage für intern und für extern.
Intern sind dann nur die Sensoren der Außenhaut des Hauses aktiv.
Keine Bewegungsmelder im Haus. Man kann sich also im Haus bewegen ohne Alarmauslösung.
Geht das mit dem Modul?
MfG
Zitat von: Hobbybauer am 21 November 2017, 22:25:08
Hallo,
dann stelle ich hier nochmal die Frage: Ich möchte eine Scharfschaltung der Alarmanlage für intern und für extern.
Intern sind dann nur die Sensoren der Außenhaut des Hauses aktiv.
Keine Bewegungsmelder im Haus. Man kann sich also im Haus bewegen ohne Alarmauslösung.
Geht das mit dem Modul?
MfG
Dafür gibt es die verschiedenen Alarm Level. Also kurz gesagt "Ja"..
Spiel einfach mal ein bisschen rum,dann bekommst du einen Eindruck.
Gruß
Hallo zusammen,
ich habe eine Frage. Als Aktor würde ich gerne Pushbullet einrichten, das klappt soweit auch. Allerdings habe ich das Problem, dass bei Pushbullet die Nachricht in der folgenden Form definiert wird
set Push message <text> | <Überschrift>
das Problem ist, dass die den selben Trenner "|" benutzen, der auch intern zur Trennung der Parameter verwendet wird.
Wie kann man das Problem lösen?
Neue Version mit animiertem Icon und diversen Verbesserungen. U.a. wird die Scharfschaltung in einer separaten Datei abgelegt, so dass diese Einstellungen beim Neustart des Systems ohne Probleme zur Verfügung stehen.
Vollständige Regelung für Escape-Sequenzen (= beliebige Zeichen) ist in Arbeit, aber noch nicht enthalten.
LG
pah
Persistierte Scharfschaltung klingt super! Auf das Icon bin ich gespannt [emoji848]
Nächste Woche wird getestet. Danke für das Update, pah.
Gruß
Nils
Gesendet von iPhone mit Tapatalk
Wird das modul automatisch aktualisiert?
Denn ein ,,Update" liefert mir keine Änderung.
2017.12.09 21:36:27 1 :
2017.12.09 21:36:27 1 : fhem
2017.12.09 21:36:28 1 : nothing to do...
2017.12.09 21:36:28 1 :
2017.12.09 21:36:28 1 : TVSender
2017.12.09 21:36:28 1 : nothing to do...
Dauert immer einen Tag, bis die Änderungen für alle verfügbar sind.
Zitat von: Prof. Dr. Peter Henning am 09 Dezember 2017, 19:20:43
Neue Version mit animiertem Icon und diversen Verbesserungen.
Hallo,
ich habe nach dem Update Fehlermeldungen im Logfile:
2017.12.10 10:51:18 1: PERL WARNING: Use of uninitialized value $name in substitution (s///) at ./FHEM/95_Alarm.pm line 1088, <FH> line 18898.
2017.12.10 10:51:18 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4164, <FH> line 18898.
2017.12.10 10:51:18 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1111, <FH> line 18898.
2017.12.10 10:51:18 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1112, <FH> line 18898.
2017.12.10 10:51:18 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1137, <FH> line 18898.
2017.12.10 10:51:18 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1139, <FH> line 18898.
2017.12.10 10:51:18 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1141, <FH> line 18898.
2017.12.10 10:51:20 1: Error: >< has no TYPE, but following keys: ><
2017.12.10 10:53:31 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.10 10:53:33 1: Error: >< has no TYPE, but following keys: ><
2017.12.10 10:53:48 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.10 10:53:49 1: Error: >< has no TYPE, but following keys: ><
Gruß
René
Das sind keine Fehlermeldungen, sondern Warnungen. Ignorieren.
LG
pah
Hallo,
ich bekomme seit dem Update folgenden Fehler angezeigt, wenn ich die Alarmanlage öffnenen will:
Modification of a read-only value attempted at ./FHEM/95_Alarm.pm line 460
Und auch im Log stehen einige Warnung und Fehler:
2017.12.10 19:17:06 3: [sysAlarm V3.1] Added hidden room 'AlarmRoom' to guiWeb_127.0.0.1_56578
2017.12.10 19:17:06 3: [sysAlarm V3.1] Added hidden room 'AlarmRoom' to guiWeb_127.0.0.1_56582
2017.12.10 19:17:37 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1086.
2017.12.10 19:17:37 3: eval: {Alarm_Html("sysAlarm")}
2017.12.10 19:17:37 1: PERL WARNING: Use of uninitialized value $sizep in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1086.
2017.12.10 19:17:37 3: eval: {Alarm_Html("sysAlarm")}
2017.12.10 19:17:37 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.10 19:17:37 1: PERL WARNING: Use of uninitialized value $name in substitution (s///) at ./FHEM/95_Alarm.pm line 1088.
2017.12.10 19:17:37 3: eval: {Alarm_Html("sysAlarm")}
2017.12.10 19:17:37 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4164.
2017.12.10 19:17:37 3: eval: {Alarm_Html("sysAlarm")}
2017.12.10 19:17:37 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1111.
2017.12.10 19:17:37 3: eval: {Alarm_Html("sysAlarm")}
2017.12.10 19:17:37 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1112.
2017.12.10 19:17:37 3: eval: {Alarm_Html("sysAlarm")}
2017.12.10 19:17:37 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1137.
2017.12.10 19:17:37 3: eval: {Alarm_Html("sysAlarm")}
2017.12.10 19:17:37 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1139.
2017.12.10 19:17:37 3: eval: {Alarm_Html("sysAlarm")}
2017.12.10 19:17:37 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1141.
2017.12.10 19:17:37 3: eval: {Alarm_Html("sysAlarm")}
2017.12.10 19:17:37 1: Error: >< has no TYPE, but following keys: ><
2017.12.10 19:17:37 3: Please define sysAlarmanlage_alarmDirektalarmSettings first
2017.12.10 19:17:37 1: ERROR evaluating {Alarm_Html("sysAlarm")}: Modification of a read-only value attempted at ./FHEM/95_Alarm.pm line 460.
2017.12.10 19:17:47 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.10 19:17:47 1: Error: >< has no TYPE, but following keys: ><
2017.12.10 19:17:47 3: Please define sysAlarmanlage_alarmDirektalarmSettings first
2017.12.10 19:17:47 1: ERROR evaluating {Alarm_Html("sysAlarm")}: Modification of a read-only value attempted at ./FHEM/95_Alarm.pm line 460.
Ignorieren kann ich das leider nicht, da die Alarmanlage nicht mehr funktioniert.
Ein Device "sysAlarmanlage_alarmDirektalarmSettings" gibt es bei mir nicht, aber einen "sysAlarmanlage_alarmDirekt" (Aktor).
Erstens: Eine Fehlermeldung sehe ich nicht, nur ein paar Perl Warnungen.
Zweitens: In Zeile 460 von Alarm.pm wird definitiv kein read-only Wert verändert - und diese Routine wurde seit Monaten in keiner Weise modifiziert.
Fazit: Sieht nach unvollständiem Update aus.
LG
pah
Hallo Prof. Dr. Henning,
ich hab das Update nochmal durchgeführt und leider immer noch das gleiche Ergebnis. Das ganze Modul bricht beim Aufruf ab, daher scheint mir das ein Fehler in der Programmierung zu sein.
Und auch die ganzen Error-Meldungen und "Please define sysAlarmanlage_alarmDirektalarmSettings first" scheinen nicht richtig zu sein.
Ich hab mir daher mal die Zeile 460 angeschaut und mit der Datei aus dem Backup verglichen. Es scheint, dass in der Funktion "Alarm_getsettings($$$)" die Zeile 459 bis 461 hinzugekommen ist:
#-- unset func may be missing
$aval[2] = ""
if(!defined($aval[2]));
Ich weiß leider nicht genau wann ich das vorletzte letzte Fhem Update gemacht habe, aber das müsste erste ein paar Tage her sein und nicht erst mehrere Monate. Wie auch immer.
Ich bin kein Perl-Experte, aber ich vermute der Fehler in der Initialisierung von $aval[3] vor $aval[2] liegt . Wenn $aval[3] nicht definiert ist, dann wird dies in Zeile 449 durchgeführt. Wenn $aval[2] nicht initialisiert wird, dann wird dies aber erst in 460 durchgeführt.
Bei einem meiner Aktoren steht "alarmSettings" auf "alarm6,|set sysAlarmanlage warn||", daher $aval[2] und $aval[3] sind nicht definiert und kommt es zu dem Fehler.
Ich hab die Initialisierung von $aval[2] vor die Initialisierung von $aval[3] gepackt, dann funktioniert es.
Das Ganze liegt natürlich auch an meiner Konfiguration mit "alarmSettings" = "alarm6,|set sysAlarmanlage warn||".
Das Problem mit "Please define sysAlarmanlage_alarmDirektalarmSettings first" besteht wohl schon länger. Ist mir vorher nur nicht aufgefallen.
Problem ist hier Zeile 469 der gleichen Routine. Hier fehlt einfach nur ein Leerzeichen zwischen $dev. und ' alarmSettings':
CommandAttr(undef,$dev.' alarmSettings '.join('|',@aval));
Die Zeile 452 mit '$aval[3] = "";' macht zusammen mit dem CommandAttr aber keinen Sinn. Wenn $aval[3] auf "" steht, dann wird $aval[3] auf "" gesetzt und das CommandAttr ausgeführt, obwohl sich die Attribute nicht geändert haben.
Ich vermute mal, dass $aval[3] auf "00:00" gesetzt werden müsste. (betrifft mehrere Stellen)
Die Funktion sieht jetzt bei mir so aus:
sub Alarm_getsettings($$$){
my ($hash,$dev,$type) = @_;
my $chg = 0;
my @aval = split('\|',AttrVal($dev, "alarmSettings","|||00:00"));
if( $type eq "Actor"){
#-- unset func may be missing
$aval[2] = ""
if(!defined($aval[2]));
#-- check delay time
if( !defined($aval[3]) || $aval[3] eq "" ){
$aval[3] = "00:00";
$chg = 1;
}elsif( $aval[3] =~ /^\d+$/ ){
$aval[3] = sprintf("00:%02d",$aval[3]);
$chg = 1;
}elsif( $aval[3] !~ /^(\d\d:)?\d\d:\d\d/ ){
Log3 $hash, 1, "[Alarm] Delay time $aval[3] ill defined for alarmActor $dev";
$aval[3] = "00:00";
$chg = 1;
}
#-- position 0:set by, 1:set func, 2:unset func, 3:delay
if( int(@aval) != 4 || !defined($aval[0]) || !defined($aval[1]) ){
Log3 $hash, 1, "[Alarm] Settings incomplete for alarmActor $dev";
}
}
if( $chg==1 ){
CommandAttr(undef,$dev.' alarmSettings '.join('|',@aval));
}
return @aval;
}
Woher die Error-Meldung mit "Error: >< has no TYPE, but following keys: ><" kommt, konnte ich leider nicht herausfinden.
Die Meldung "[Alarm_widget] name= gstate=disarmed dstate=-------- sizep=" ist nur eine interne Log-Nachricht.
Gruß
Philipp
Zitat von: phil82 am 10 Dezember 2017, 22:07:35
Hallo Prof. Dr. Henning,
ich hab das Update nochmal durchgeführt und leider immer noch das gleiche Ergebnis. Das ganze Modul bricht beim Aufruf ab, daher scheint mir das ein Fehler in der Programmierung zu sein.
Und auch die ganzen Error-Meldungen und "Please define sysAlarmanlage_alarmDirektalarmSettings first" scheinen nicht richtig zu sein.
Ich hab mir daher mal die Zeile 460 angeschaut und mit der Datei aus dem Backup verglichen. Es scheint, dass in der Funktion "Alarm_getsettings($$$)" die Zeile 459 bis 461 hinzugekommen ist:
#-- unset func may be missing
$aval[2] = ""
if(!defined($aval[2]));
Ich weiß leider nicht genau wann ich das vorletzte letzte Fhem Update gemacht habe, aber das müsste erste ein paar Tage her sein und nicht erst mehrere Monate. Wie auch immer.
Ich bin kein Perl-Experte, aber ich vermute der Fehler in der Initialisierung von $aval[3] vor $aval[2] liegt . Wenn $aval[3] nicht definiert ist, dann wird dies in Zeile 449 durchgeführt. Wenn $aval[2] nicht initialisiert wird, dann wird dies aber erst in 460 durchgeführt.
Bei einem meiner Aktoren steht "alarmSettings" auf "alarm6,|set sysAlarmanlage warn||", daher $aval[2] und $aval[3] sind nicht definiert und kommt es zu dem Fehler.
Ich hab die Initialisierung von $aval[2] vor die Initialisierung von $aval[3] gepackt, dann funktioniert es.
Das Ganze liegt natürlich auch an meiner Konfiguration mit "alarmSettings" = "alarm6,|set sysAlarmanlage warn||".
Das Problem mit "Please define sysAlarmanlage_alarmDirektalarmSettings first" besteht wohl schon länger. Ist mir vorher nur nicht aufgefallen.
Problem ist hier Zeile 469 der gleichen Routine. Hier fehlt einfach nur ein Leerzeichen zwischen $dev. und ' alarmSettings':
CommandAttr(undef,$dev.' alarmSettings '.join('|',@aval));
Die Zeile 452 mit '$aval[3] = "";' macht zusammen mit dem CommandAttr aber keinen Sinn. Wenn $aval[3] auf "" steht, dann wird $aval[3] auf "" gesetzt und das CommandAttr ausgeführt, obwohl sich die Attribute nicht geändert haben.
Ich vermute mal, dass $aval[3] auf "00:00" gesetzt werden müsste. (betrifft mehrere Stellen)
Die Funktion sieht jetzt bei mir so aus:
sub Alarm_getsettings($$$){
my ($hash,$dev,$type) = @_;
my $chg = 0;
my @aval = split('\|',AttrVal($dev, "alarmSettings","|||00:00"));
if( $type eq "Actor"){
#-- unset func may be missing
$aval[2] = ""
if(!defined($aval[2]));
#-- check delay time
if( !defined($aval[3]) || $aval[3] eq "" ){
$aval[3] = "00:00";
$chg = 1;
}elsif( $aval[3] =~ /^\d+$/ ){
$aval[3] = sprintf("00:%02d",$aval[3]);
$chg = 1;
}elsif( $aval[3] !~ /^(\d\d:)?\d\d:\d\d/ ){
Log3 $hash, 1, "[Alarm] Delay time $aval[3] ill defined for alarmActor $dev";
$aval[3] = "00:00";
$chg = 1;
}
#-- position 0:set by, 1:set func, 2:unset func, 3:delay
if( int(@aval) != 4 || !defined($aval[0]) || !defined($aval[1]) ){
Log3 $hash, 1, "[Alarm] Settings incomplete for alarmActor $dev";
}
}
if( $chg==1 ){
CommandAttr(undef,$dev.' alarmSettings '.join('|',@aval));
}
return @aval;
}
Woher die Error-Meldung mit "Error: >< has no TYPE, but following keys: ><" kommt, konnte ich leider nicht herausfinden.
Die Meldung "[Alarm_widget] name= gstate=disarmed dstate=-------- sizep=" ist nur eine interne Log-Nachricht.
Gruß
Philipp
Moin phil82
ich konnte auch die von dir beschriebenen Probleme feststellen. Ich habe dann gestern Abend ein reload 95_Alarm.pm gemacht, und heute morgen gab es keine Fehler beim Einschalten der Alarmanlage.
Hast du das schonmal gemacht? Vll behebt es auch deine Schwierigkeiten.
Ps: Respekt, das du dich mit dem Quellcode beschäftigt hast, und auch aufzeigst, wo es deiner Meinung nach nicht passt.
Grüße
Erstens: Das "Nichtfunktionieren" der Alarmanlage hat mit den aufgetretenen Meldungen gar nichts zu tun.
Zweitens: Die aufgetretenen Meldungen kommen daher, dass irgendjemand bei seiner Installation unvollständige Settings angegeben hat z.B. das Delay einfach weggelassen hat. Das nennt man das GIGO-Prinzip... Egal, ich habe diese Fehleingaben jetzt abgefangen.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 11 Dezember 2017, 10:45:50
Zweitens: Die aufgetretenen Meldungen kommen daher, dass irgendjemand bei seiner Installation unvollständige Settings angegeben hat z.B. das Delay einfach weggelassen hat. Das nennt man das GIGO-Prinzip... Egal, ich habe diese Fehleingaben jetzt abgefangen.
LG
pah
Ist halt wie immer in der Software-Entwicklung, wo man Raum für Fehler lässt, da passieren Sie auch. Schön, dass das in Zukunft dann abgefangen wird.
Danke auch für die persistente Speicherung der Alarmstatus ohne Änderung der cnf-Datei.
hui, netter Umgangston hier. Was soll ich dazu nur sagen.
Bitte bei der Sache bleiben.
pah
Zitat von: phil82 am 11 Dezember 2017, 21:07:08
hui, netter Umgangston hier. Was soll ich dazu nur sagen.
Sorry, ich hoffe du meintest nicht meinen Kommentar?
Wollte lediglich ausdrücken, das Fehleingaben immer zum Geschäft gehören.
Es tut mir leid falls sich jemand angegriffen fühlte. Das selbe gilt natürlich auch für den Author des Moduls, auch in deine Richting sollte das kein Angriff sein.
Zitat von: DarkT am 11 Dezember 2017, 21:22:47
Sorry, ich hoffe du meintest nicht meinen Kommentar?
Nein ganz und gar nicht.
ZitatSorry, ich hoffe du meintest nicht meinen Kommentar
Nö, der war schon ok.
LG
pah
Hallo,
ich bin neu bei FHEM und möchte meine defekte Alarmanlage durch FHEM und einem Raspberry Pi ersetzen. Alle Sensoren funktionieren über 433MHz und ich werde noch einen entsprechenden Adapter mit einem Arduino basteln. Vorher möchte ich mich allerdings prinzipiell mit FHEM vertraut machen. Dazu habe ich schon einige Tutorials erfolgreich durchgearbeitet und versuche mich nun an dem Alarm Modul.
Ich habe zwei Dummy Schalter angelegt (mySwitch1 und mySwitch2) mit webCmd "on:off". Diesen beiden habe ich das Attribut "alarmDevice:Sensor" hinzugefügt. Danach habe ich noch zwei Dummy Devices erstellt mit dem Namen "myLamp1 und myLamp2". Hier habe ich das Attribut "alarmDevice:Actor" hinzugefügt.
Mit dem mySwitch1 soll der Alarm ausgelöst werden und mit mySwitch2 wird die Anlage entschärft. Nach dem Ausfüllen aller Parameter habe ich auf "Parameter setzen" geklickt und danach "Save Config" betätigt. Danach die Checkboxen "Schärfen" für Alarm 0 und 1 gesetzt. Wenn ich nun mySwitch1 auf "on" setze passiert leider nichts und ich kann mir leider nicht erklären warum nicht.
Was mach eich falsch oder was habe ich falsch verstanden?
Im Anhang habe ich ein paar Screenshots beigefügt.
Vielen Dank!
auf die Schnelle würd ich sagen, dass Dir noch das Cancel-device fehlt :-\
Grüße Markus
Zitat von: KölnSolar am 13 Dezember 2017, 19:10:12
auf die Schnelle würd ich sagen, dass Dir noch das Cancel-device fehlt :-\
Grüße Markus
Ja, genauso was ... siehe Bild:
Seit Montag nach dem Update bekomme ich die ARMED Meldung immer exakt 2x. Ich habe seit Wochen absolut nichts in der Konfiguration geändert und nur FHEM aktualisiert. Alles andere scheint soweit trotzdem zu funktionieren. DISARM kommt übrigens wie bisher nur 1x, ist also in Ordnung. PREARM ist bei mir leer. Falls weitere Informationen zur Verfügung gestellt werden sollen, bitte kurz bescheid geben.
Zitat von: mumpitzstuff am 14 Dezember 2017, 15:29:42
Seit Montag nach dem Update bekomme ich die ARMED Meldung immer exakt 2x. Ich habe seit Wochen absolut nichts in der Konfiguration geändert und nur FHEM aktualisiert. Alles andere scheint soweit trotzdem zu funktionieren. DISARM kommt übrigens wie bisher nur 1x, ist also in Ordnung. PREARM ist bei mir leer. Falls weitere Informationen zur Verfügung gestellt werden sollen, bitte kurz bescheid geben.
Kann ich bestätigen. Ist bei mir ebenfalls so!
Grüße
Werd ich mir ansehen.
LG
pah
Kann mir bitte jemand sagen, was das für neue Meldungen in meinem Log sind? :-[
2017.12.18 06:48:23 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.18 06:48:23 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.18 06:48:23 1: Error: >< has no TYPE, but following keys: >READINGS<
Ich bin mir im Moment nicht mal sicher, was das Alarm Widget überhaupt ist...
Vielen Dank.
Grüße Mave
Keine Panik, das sind nur Statusmeldungen, für die ich zu Debugzwecken den verbose Level auf 1 gesetzt habe. Fallen im nächsten Release wieder weg. Wer die Meldungen derzeit unterdrücken will, muss verbose=0 setzen.
LG
pah
Okay. Danke für die Erklärung.
Und danke für das tolle Modul.
pah,
ich könnte mal Deine geschätzte Hilfe gebrauchen:
Ich versuche verzweifelt, im Feld "Aktion setzen" eine IF Anweisung unterzubringen, weil ich den Befehl nur unter einer bestimmten Bedingungen ausführen lassen möchte.
Alternativ wollte ich mit sunset und sunrise die Start und Ende Zeit belegen. Dabei wird z.B. {sunset("REAL",900)} abgeschnitten und es steht anschließend nur noch {sunset( in dem Start Feld.
Vielen Dank für Deine Unterstützung.
Grüße Mave
Das Problem hatte ich ähnlich auch schon mal. Es liegt am seperator der verwendet wird, um die verschiedenen Parameter zu trennen. Es hilft nur Auslagern in eine Funktion in 99_myUtils und dann diese aufrufen.
Hallo,
ich mache erste Erfahrungen mit dem Alarm-Modul und hätte einige Fragen.
zum Ein-/Ausschalten und PanicButton Funktion verwende ich eine kleine Fernbedienung mit einem Knopf, welche durch unterschiedliches Drucken (kurz, lang, doppelt) unterschiedliche Ereignisse auslöst.
Mein Ziel:
kurz > toggle Alarm EIN/AUS (arm/disarm)
lang > PANIC Alarm sofort und ohne Verzögerung heulen lassen. (raise)
doppelt > Alarm stoppen (cancel)
wenn ich richtig das Konzept verstanden habe, kann ich ein Device nicht direkt für verschiedene Aktionen einstellen. Korrekt?
wenn ja, wie kann ich das lösen?
ich habe versucht über notify und dummys aber dem Alarmmodul schmecken keine Dummys als Sensoren. Kann das sein?
Soll ich für mein Problem eventuell ein neues Thread öffnen?
Vielen Dank!
@darkt: Das ist Unsinn, aber hoch drei !
Der Separator ist ein |-Zeichen. Das Abschneiden erfolgt aber, weil "-Zeichen verwendet wurden. Das lässt sich auch nicht beheben, weil der Strind mehrfach hin- und her geschoben wird zwischen Javascript, HTML und Perl.
Ganz einfache Lösung: '-Zeichen statt "-Zeichen verwenden.
Ich habe eine Version im Test (siehe Anlage), die deutlich mehr Sonderzeichen (insbesondere auch -Zeichen) in den Kommandostrings ermöglicht. Aber eben NICHT ".
Bitte die angehängte Version mal testen.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 18 Dezember 2017, 20:59:38
@darkt: Das ist Unsinn - aber hoch drei
Ja, hast Recht: es hätte heißen sollen: Ich hatte ein ähnliches Problem mit dem Seperator (,,|"), die Lösung von mir war allerdings korrekt. Manchmal hilft eine schnelle Lösung auch wenn die Erklärung nicht ganz korrekt ist ;)
Dicken Dank auch von mir für das Alarm Modul ! Funktioniert eigentlich schon jahrelang sehr zuverlässig.
Auch bei mir habe ich seit dem letzten Update festgestellt, dass die Scharf Aktion ( u.A. Meldung via Push ) doppelt ausgeführt wird.
Auch die neue 3.20 Version hat keine Besserung gebracht... -> ich hab nur mehr Zeichen eingefügt bekommen
z.b. wurde aus
set Pushover msg 'Alarmanlage: ist aktiv' 'Der Alarm ist scharf'
->
set Pushover msg \'Alarmanlage: ist aktiv\' \'Der Alarm ist scharf\'
aber bleibt immernoch doppelt.
Ich versuche jetzt mal das Auslagern in die myutils, evtl. können wir den Fehler so eingrenzen.
Trotzdem vielen vielen Dank für das tolle Alarm-Modul !!!
Zitat von: Mave am 18 Dezember 2017, 18:06:13
pah,
ich könnte mal Deine geschätzte Hilfe gebrauchen:
Ich versuche verzweifelt, im Feld "Aktion setzen" eine IF Anweisung unterzubringen, weil ich den Befehl nur unter einer bestimmten Bedingungen ausführen lassen möchte.
Alternativ wollte ich mit sunset und sunrise die Start und Ende Zeit belegen. Dabei wird z.B. {sunset("REAL",900)} abgeschnitten und es steht anschließend nur noch {sunset( in dem Start Feld.
Vielen Dank für Deine Unterstützung.
Grüße Mave
Mit {sunset_abs()} und {sunrise_abs()} funktioniert jetzt das Definieren der Start und Ende Zeit.
Leider schaffe ich es immer noch nicht, eine IF Anweisung in "Aktion setzen" einzubauen. Sollte aber prinzipiell funktionieren, oder nicht?
Lies: NICHT ". ::) ::)
pah
Ich habe es jetzt über eine Funktion gelöst, die bei "Aktion setzen" aufgerufen wird. Klappt wunderbar.
Aber irgendwie habe ich den Eindruck, dass die Alarme nicht zuverlässig ausgelöst werden.
Die Bewegungsmelder zeigen jedesmal eine Bewegung an, aber manchmal wird der Alarm trotzdem nicht ausgelöst. :-[
Speziell kurz nach Ende eines Alarmes wird ein neuer Alarm nicht immer ausgelöst.
Hat jemand eventuell eine Erklärung dafür oder macht ähnliche Beobachtungen?
Vielen Dank.
Dir ist klar, dass Du nach jeder Auslösung den alarmlevel canceln musst, damit eine erneute Auslösung erfolgen kann ?
Ja, das weiß ich. Danke.
In meiner Funktion cancel ich am Ende den Alarm jedes Mal automatisch.
Daran kann es nicht liegen. Es klappt ja auch meistens problemlos, nur eben nicht immer.
Hallo,
nach dem Update kriege ich mit dem Modul Alarm einige perl fehlermeldungen:
[Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.26 16:02:23 1: Error: >< has no TYPE, but following keys: ><
2017.12.26 16:02:23 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.26 16:00:32 1: Error: >< has no TYPE, but following keys: ><
2017.12.26 16:00:31 3: eval: {Alarm_Html("Alarmanlage")}
2017.12.26 16:00:31 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1142.
2017.12.26 16:00:31 3: eval: {Alarm_Html("Alarmanlage")}
2017.12.26 16:00:31 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1140.
2017.12.26 16:00:31 3: eval: {Alarm_Html("Alarmanlage")}
2017.12.26 16:00:31 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1138.
2017.12.26 16:00:31 3: eval: {Alarm_Html("Alarmanlage")}
2017.12.26 16:00:31 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1113.
2017.12.26 16:00:31 3: eval: {Alarm_Html("Alarmanlage")}
2017.12.26 16:00:31 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1112.
2017.12.26 16:00:31 3: eval: {Alarm_Html("Alarmanlage")}
2017.12.26 16:00:31 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4153.
2017.12.26 16:00:31 3: eval: {Alarm_Html("Alarmanlage")}
2017.12.26 16:00:31 1: PERL WARNING: Use of uninitialized value $name in substitution (s///) at ./FHEM/95_Alarm.pm line 1089.
2017.12.26 16:00:31 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.26 16:00:31 3: eval: {Alarm_Html("Alarmanlage")}
2017.12.26 16:00:31 1: PERL WARNING: Use of uninitialized value $sizep in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1087.
2017.12.26 16:00:31 3: eval: {Alarm_Html("Alarmanlage")}
2017.12.26 16:00:31 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1087.
was kann ich tun, oder ist das so ok.
Ich sehe keine Fehlermeldungen, sondern nur Warnungen.
pah
Zitat von: nuart am 27 Dezember 2017, 19:01:00
Hallo,
nach dem Update kriege ich mit dem Modul Alarm einige perl fehlermeldungen:
[Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2017.12.26 16:02:23 1: Error: >< has no TYPE, but following keys: ><
...
2017.12.26 16:00:32 1: Error: >< has no TYPE, but following keys: ><
...
Also ein paar error sind schon da, pah.
Nun, wer das glaubt, kann sie ja gerne beheben.
pah
Wenn ein Modulauthor kryptische Level1-Logzeilen mit dem Wörtchen error EDIT: einbaut indirekt produziert EDITOFF, könnte er natürlich auch mit 10-20 Worten deren Bedeutung erklären ::)
Grüße Markus
Könnte er sicher - dann fragt mal den Modulautor (ohne h), der diese Meldung in das Modul 98_fhemdebug eingebaut hat.
pah
Geht doch ;)
Ich bin derAussage mal etwas nachgegangen. Sie scheint mir falsch zu sein. fhemdebug ist ja gar nicht eingeschaltet u. dürfte demnach auch nicht die Meldung produzieren. Es muss irgendwo anders aus den Tiefen von FHEM kommen.
Vermutlich liegt es an irgendeiner userseitig nicht vollständigen(aus Modulsicht unplausiblen) Definition im Alarm-Modul, die dem User mangels Plausiprüfung aber nicht auffällt.
Ich hab dann meinen obigen Post treffender geändert.
grep "has no TYPE" *
im FHEM-Verzeichnis liefert genau einen Ort, an dem dieser String vorkommt.
LG
pah
Nach einem neuerlichen Update bleibt nur noch folgende Warnung:
2017.12.31 09:29:48 1: PERL WARNING: "my" variable $xval masks earlier declaration in same scope at ./FHEM/95_Alarm.pm line 1312, <$fh> line 365.
Nur abgesehen davon, dass dies harmlos ist: Bei jedem Bezug auf das Modul sollte die Versionsnummer angegeben werden. Mit einem Begriff wie "neuerliches Update" kann ich ohne Kristallkugel nichts anfangen.
LG
pah
Hier die Versionsangaben:
Latest Revision: 15733
File Rev Last Change
95_Alarm.pm 15633 2017-12-17 16:50:35Z phenning
die ursprünglich von mir gemeldeten perl warnings sind übrigens immer noch da, hab ich vorher übersehen. Aber wenn es harmlos ist soll es mir recht sein, dachte vielleicht interessiert es auch den Entwickler. Im übrigen Respekt und Dank an den Entwickler des Moduls, ist ein wesentlicher Teil in meiner "Smart Home" Lösung.
lg leo
Bitte CommandRef lesen. Die Version ist das, was man mit
get <alarmdevice> version
erhält.
LG
pah
ok, also dann:
Alarm.version => 3.12
lg leo
Ich beziehe mich nochmal auf schon andere Posts die noch nicht beantwortet wurden.
Ist es im Alarm Modul nicht möglich einen Sensor für zwei Aktionen zu nutzen? Ich würde gerne einen Switch nutzen, der den Alarm scharf und unscharf schaltet. Ist in meinen Augen die schönste Lösung um dieses im UI darzustellen und vor allem um den Status direkt über den Switch anzuzeigen.
Wie habt ihr das gelöst?
ZitatIst es im Alarm Modul nicht möglich einen Sensor für zwei Aktionen zu nutzen? Ich würde gerne einen Switch nutzen, der den Alarm scharf und unscharf schaltet.
Soweit ich weiß, nein.
Ich verwende hierfür einen Dummy.
FHEM-Config
define AlarmKeypadDummy dummy
attr AlarmKeypadDummy DbLogExclude .*
attr AlarmKeypadDummy alarmDevice Sensor
attr AlarmKeypadDummy alarmSettings alarm0,alarm1,alarm2,alarm3,alarm4,alarm5,alarm6,alarm7,|AlarmKeypadDummy:.unlocked|unlocked|off
attr AlarmKeypadDummy event-on-change-reading state,inputPin
attr AlarmKeypadDummy event-on-update-reading key
attr AlarmKeypadDummy group Alarmanlage
attr AlarmKeypadDummy readingList key,inputPin,fails,unlockPin
attr AlarmKeypadDummy room Allgemein
attr AlarmKeypadDummy setList unlockPin
attr AlarmKeypadDummy userReadings inputPin:key:.[0-9] { return ReadingsVal($NAME, "inputPin", "*") . ReadingsVal($NAME, "key", "0");; },\
fails:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return ReadingsVal($NAME, "fails", 0)+1;; } else { return 0;; } },\
state:key:.# { if (ReadingsVal($NAME, "inputPin", "0") ne ReadingsVal($NAME, "unlockPin", "0")) { return "locked";; } else { return "unlocked";; } },\
inputPin:key:.[\<] { my $inputVal = ReadingsVal($NAME, "inputPin", "0");; chop($inputVal);; return $inputVal;; },\
inputPin:key:.# { return "";; }
define notify_AlarmanalageUnlocked notify AlarmKeypadDummy:unlocked set Alarmanlage disarmed 0
attr notify_AlarmanalageUnlocked DbLogExclude .*
attr notify_AlarmanalageUnlocked group Alarmanlage
attr notify_AlarmanalageUnlocked room Allgemein
define alarm0.off.N notify (AlarmKeypadDummy:.unlocked) {main::Alarm_Exec("Alarmanlage",0,"$NAME","$EVENT","off")}
attr alarm0.off.N DbLogExclude .*
attr alarm0.off.N group alarmNotifier
attr alarm0.off.N room Alarm
FTUI
<!-- Alarmanlage Keypad -->
<div data-type="popup" data-device="AlarmKeypadDummy" data-get-on="locked" data-get-off="unlocked" data-width="400px" data-height="500px" class="interlock">
<div class="red bold top-space-2x"></div>
<div class="dialog">
<header>Alarm deaktivieren</header>
<div data-type="label" class="cell big top-space-2x wider">Alarm unscharf schalten (PIN-Code)</div>
<div class="inline big top-space">
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="1" onclick="playTouchSound();">1</div>
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="4" onclick="playTouchSound();">4</div>
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="7" onclick="playTouchSound();">7</div>
<div data-type="push" data-icon="fa-long-arrow-left" data-device="AlarmKeypadDummy" data-set="key" data-set-on="<" onclick="playTouchSound();"></div>
</div>
<div class="inline big">
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="2" onclick="playTouchSound();">2</div>
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="5" onclick="playTouchSound();">5</div>
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="8" onclick="playTouchSound();">8</div>
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="0" onclick="playTouchSound();">0</div>
</div>
<div class="inline big">
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="3" onclick="playTouchSound();">3</div>
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="6" onclick="playTouchSound();">6</div>
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="9" onclick="playTouchSound();">9</div>
<div data-type="push" data-icon="" data-device="AlarmKeypadDummy" data-set="key" data-set-on="#" onclick="playTouchSound();">#</div>
</div>
<div class="bg-lightgray border-white top-space centered" style="width:280px; height:50px;">
<div data-type="label" data-device="AlarmKeypadDummy" data-get="inputPin" class="tall"></div>
</div>
</div>
</div>
Hallo
Habe auch zwei Fragen zum Alarmmodul. Zum einen eine ähnliche wie die Vorposter: Ich würde gerne das Residenzmodul für das scharf/unscharf stellen der Alarmanlage verwenden.
Dazu müsste ich res:home als "arm" und res:absent und gone als "disarm" verwenden.
Lässt sich das nicht irgendwie hier dazu einbauen
attr res alarmSettings alarm0,|res:absent||arm
Mit Dummy weiß ich wie, finde ich aber sehr unsauber. Ich denke es gibt nicht viele da draußen, die zwei unterschiedliche Devices nutzen, um eine Alarmanlage scharf/unscharf zu stellen. Ein Doppeltaster vielleicht.
Des weiteren hätte ich gerne unterschiedliche Pushnachrichten, je nachdem wo eingebrochen wird. Aber auch mein Device "push" kann ich nach aktuellem Wissensstand nur einmal als Aktor verwenden.
Zitat von: theophilou85 am 08 Januar 2018, 13:16:30
Hallo
Habe auch zwei Fragen zum Alarmmodul. Zum einen eine ähnliche wie die Vorposter: Ich würde gerne das Residenzmodul für das scharf/unscharf stellen der Alarmanlage verwenden.
Dazu müsste ich res:home als "arm" und res:absent und gone als "disarm" verwenden.
Lässt sich das nicht irgendwie hier dazu einbauen
attr res alarmSettings alarm0,|res:absent||arm
Mit Dummy weiß ich wie, finde ich aber sehr unsauber. Ich denke es gibt nicht viele da draußen, die zwei unterschiedliche Devices nutzen, um eine Alarmanlage scharf/unscharf zu stellen. Ein Doppeltaster vielleicht.
Des weiteren hätte ich gerne unterschiedliche Pushnachrichten, je nachdem wo eingebrochen wird. Aber auch mein Device "push" kann ich nach aktuellem Wissensstand nur einmal als Aktor verwenden.
Zu 1. = I don`t know, da bei mir, um es mit deinen Worten zu sagen, Unsauber implementiert.
Zu 2. = Userreading für die einzelnen Empfänger, und dann über readingsproxy.
Grüße
Könntest du 2. ein Bisschen ausführen, ich verstehe nur Bahnhof ;)
ZitatUnsauber implementiert.
;D ;D
Zitat von: theophilou85 am 08 Januar 2018, 15:30:58
Könntest du 2. ein Bisschen ausführen, ich verstehe nur Bahnhof ;)
Userreading
ZitatuserReadings
Komma getrennte Liste von benutzerdefinierten Readings. Jede Definition hat folgendes Format:
<reading>[:<trigger>] [<modifier>] { <perl code> }
Diese benutzerdefinierte Readings werden bei jeder Aktualisierung der Gerätereadings gesetzt,
indem das spezifizierte perl code { <perl code> } ausgeführt wird, und dessen Wert dem Reading zugewiesen wird.
Falls <trigger> spezifiziert ist, dann findet diese Ausführung nur dann statt,
falls einer der aktualisierten Readings dem regexp <trigger> entspricht (matched).
readingsproxy
https://wiki.fhem.de/wiki/ReadingsProxy
Wenn du dir die ReadingsProxy`s angelegt hast, kannst du dir diese als Aktoren eintragen!
Alles weitere wäre zu viel Offtopic.
Zitat von: Prof. Dr. Peter Henning am 08 Januar 2018, 16:22:14
;D ;D
Das verstehe ich nicht!!! ;D ;)
Habe einen neuen Plan. Im Prinzip bräuchte ich ja nur einen Dummy der immer den gleichen STATE hat wie mein Residenzmodul.
Ich habe das jetzt einmal mit clonedummy versucht, funzt auch bei den readings aber beim STATE leider nicht. Kann mir jemand sagen wie ich ein x-beliebiges STATE einem dummy übergebe? Da das Residenzmodul 4 Zustände hat, möchte ich keine 4 notifys schreiben um es zu übergeben. Da gibt es doch sicher... Achtung jetzt kommts... eine "SAUBERE" variante ;D
Zitat von: theophilou85 am 08 Januar 2018, 18:44:02
..Im Prinzip bräuchte ich ja nur einen Dummy der immer den gleichen STATE hat wie mein Residenzmodul.
..
Nein, brauchst du nicht. Du brauchst nur einen Dummy mit "alarmDevice = Sensor" sonst muß der Dummy gar nichts können. Dadurch bekommst du eine weitere Zeile im Alarmmodul unter "Sensors". In der Spalte "Notify by RegExp" kannst du dann den gewünschten Wert deines Residenzmoduls abfragen.
Der Dummy dient dann nur als Speicherort für das "alarmSettings" Attribut. Zu mehr brauchst du ihn nicht.
ahhhhhhhhh. sehr schlau!
Zwei Fragen noch: a) Zum einen würde ich gerne den "Alarmroom" anders benennen und bei den anderen Räumen und nicht im Feld ganz links oben abbilden. Kann mir wer sagen wie ich das mache?
b) Das "statedisplay" des Moduls zeigt bei mir oft irgendwas. "At-devices" meines Weckers oder ganz andere Dinge die mit der Alarmanlage überhaupt nichts am Hut haben. Habe das Attribut auf "none" gestellt, aber keine Besserung.
Zitat von: theophilou85 am 09 Januar 2018, 09:42:07
...
b) Das "statedisplay" des Moduls zeigt bei mir oft irgendwas. "At-devices" meines Weckers oder ganz andere Dinge die mit der Alarmanlage überhaupt nichts am Hut haben. Habe das Attribut auf "none" gestellt, aber keine Besserung.
ist bei mir auch so, bin dem aber noch nicht nachgegangen...
Okay. Ich habe ein weiteres Problem:
Ich nutze drei Alarmlevel: 0=Fenster links, 1=Fenster rechts, 2=Haustüre. Das mache ich um 3 unterschiedliche Push-Nachrichten an mein Handy senden zu können. Soweit so gut.
Zum scharfstellen verwende ich residenz:absent für Alarmlevel 0,1,2... einen Dummy mit residenz:home zum Abschalten für 0,1,2 und einen weiteren Button für 0,1,2 zum Canceln.
Jetzt habe ich: Arm Action: set push_per00 message Alarmanlage aktiviert!
Disarm Action: set push_per00 message Alarmanlage deaktiviert!
Cancel Action: set push_per00 message Alarm canceled!
und bekomme jetzt jede Pushnachricht drei Mal, weil er anscheinend pro Alarmlevel meint, einmal die Pushnachricht senden zu müssen.
Bei Message Part II habe ich für alle drei Alarmlevel "0" drinnen stehen.
Wie kann ich das verhindern?
Und noch ne Idee wie ich den Alarmsraum zu meinen anderen Räumen runterbekomme? Verstecken über hiddenroom ist mir bekannt.
Vielen Dank.
Wenn du alle diene Sensoren in einen alarm level hast und bei auslösen dieses alarm levels so eine nachricht verschickst:
define A_Mail dummy
attr A_Mail alarmDevice Actor
attr A_Mail alarmSettings alarm2,alarm5,alarm6,alarm7,|{DebianMail('user@domain.net','Alarm',Value('AAA'),'')}|{DebianMail('user@domain.net','Entwarnung',Value('AAA'),'')}|00:00
attr A_Mail group alarmHelperDev
attr A_Mail room Alarm
dann steht im Mail welcher Sensor ausgelöst hat.
Wäre eine Lösung, lieber wären mir aber individuelle Texte. armact/cancelact/disarmact kann ich nicht irgendwie dazu bringen, ihre Meldung, bei mehreren Alarmen nur einmal abzuschicken?
Kann ich irgendwie absent oder gone zum scharfstellen der Anlage verwenden, ohne dafür ein weiteres dummy anlegen zu müssen?
define surve_on dummy
attr surve_on alarmDevice Sensor
attr surve_on alarmSettings alarm0,alarm1,alarm2,|res:absent !!!ODER GONE!!!|Alarmanlage aktiviert!|arm
die RegExp würde so aussehen:
res:absent|gone
aber da das AlarmModul das Pipe-Symbol ("|") als Trennzeichen im Attribut verwendet, wird das wahrscheinliich so nicht funktionieren. Möglw. muß man das |-Zeichen irgendwie "escapen" -> Frage @pah
ein schmutziger workaround der das Pipe-Symbol vermeidet:
res:[absegone]{4}.*
Der unsaubere Workaround gefällt mir und klappt. wenn @pah noch irgend ne einstellung vorsehen könnte, dass ich beim armen/canceln/disarmen, mir aussuchen kann nur eine meldung, oder 3 individuelle devices anzulegen (dann lasse ich zwei einfach leer), wäre es perfekt.
ZitatMöglw. muß man das |-Zeichen irgendwie "escapen"
Das ist schon im Testbetrieb.
Zitat@pah noch irgend ne einstellung vorsehen könnte
Sonst noch Probleme ?
LG
pah
Nö, bisher läuft sonst alles einwandfrei.
Hallo.
Habe mich seit langem mal wieder an ein umfangreiches FHEM update getraut und strauchel gerade etwas mit dem Alarm Modul v3.12.
Das GUI Update und auch levelX Status als Readings finde ich super, aber ein Verhalten hat sich verändert und ich bekomme nicht raus warum.
In der Vergangenheit hat er die Aktion "Aktor unset" (jetzt, Aktion Rücksetzen) erst ausgeführt, wenn das Alarmlevel vorher auch ausgelöst war.
Konkret, Ich habe ein Level für meine Fenster und eins für Türen die Zeitgleich bedient werden.
Wenn ich nun nach Hause komme (durch die Tür ;) ) und beide Level entschärfe, werden alle unset Aktionen ausgeführt (Lichter aus, Rollladen hoch etc) obwohl das Level für die Fenster gar nicht ausgelöst ist.
Das tritt bei mir sowohl über die Checkboxen in der GUI, als auch per CLI "set AAA armed 3; set AAA disarmed 3" auf.
Verbose 5 brachte mich nicht wirklich weiter, im Eventlog steht dann:
2018-01-14 12:13:33.203 Alarm AAA level3: armed
2018-01-14 12:13:33.205 Alarm AAA widerrufen durch: program
2018-01-14 12:13:33.208 Alarm AAA level3: disarmed
2018-01-14 12:13:33.210 Alarm AAA
2018-01-14 12:13:33.213 Alarm AAA savedate: 33
Konnte in den letzten Seiten nichts dazu finden, ist das bei euch auch so? Jemand eine Idee?
Danke & Grüße
Mike
edit: hab mir das nochmal auf meinem playground angesehen. Aktuell kann ich jedoch nur reproduzieren, wenn der disarm vor dem armed kommt, also vor dem arm-delay.
Da läuft das Modul anscheinend in diese if-condition, die als einigste "widerrufen durch program" generiert und dann alle $unsetaction durchführt.
772: #-- disarming implies canceling as well
773: }elsif( ($act eq "disarm") && ($xec ne "disarmed")) {
...und noch ein edit:
mit folgender Änderung & "#> reload 95_Alarm", funktioniert es für mich. Keine Ahnung ob das die korrekte Stelle ist, aber meine Level werden ohne Alarm raise, mit disarm während arm-wait und natürlich auch nach dem Alarm raise, sauber ausgeführt.
778: Alarm_Exec($name,$level,"program","disarm","cancel") if $xac ne 'armwait';
Äh, mein Fehler, ich habe mich selbst ausgetrickst, alles in Ordnung. Falscher Alarm so wie in Hawaii.
LG
pah
Hallo allerseits,
Tolles Modul !
Mal rein aus Neugierde :
Hat jemand eine Art Partielles scharf stellen in Betrieb ?( zusätzlicher zustand welcher dazu dient, nur auf einen Alarm der Aussenhaut z.B. Fester/Türkontake jedoch nicht von Bewegungsmeldern zu reagieren (z.B. Frau will alleine zuhause Fern schauen und ist sich nicht sicher)).
Klar man könnte eine eigene stufe hierfür nehmen wie oft man diesen zustand benötigt sei auch mal dahin gestellt.
MfG Daniel
Neue Features:
1. In Aktionsfeldern kann man ein \| verwenden - das wird dann in das auszuführende Kommando als reines | übernommen
2. Vermeiden der Iteration über intAt => Nötig wegen einer Änderung an den internen Timern
3. Ausführung auch bei nichttrivialem csrf Token
Achtung: Immer beide Dateien installieren.
LG
pah
Edit:
Gerade mal 2 Tester :(
Keine Einwände ;D
Bei mir läuft es problemlos :D
=> eingecheckt
Moin zusammen,
ich habe eine Frage zu der Battery Low Alarmierung:
Wie muss ich das Notify idealerweise erweitern, damit auch die Meldung "warn_battery" einen Alarm auslöst?
Eine zweite RegEx einfügen oder nur nach "battery" filtern?
Vielen Dank.
Grüße Mave
Moin,
das Modul läuft super, aber sendet mir die unter "arm Action" eingetragene Push-Nachricht doppelt?
Habe zwei Alarmlevel definiert und bekomme 4x "Alarm scharf" gesendet. Bei einem Level entsprechend zwei.
Die fhem.cfg habe ich nach der Nachricht durchsucht um notifys, welche ich eventuell vergessen habe ausschließen zu können.
Ich meine dieses Verhalten hatte ich bei älteren Versionen nicht.
Kann mir Vlt. jemand helfen?
Schönes Wochenende
Steffen
Hallo zusammen,
ich habe seit einer weile in dem Log die folgende Meldungen beim scharf schalten.
Aktuell läuft die Version 4.0 vom Alarmmodul.
2018.01.22 17:22:41 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4864, <GEN10> line 65730.
2018.01.22 17:22:41 1: eval: my $NAME='Alarmanlage_an';my $EVTPART0='on';my $SELF='alarm0.arm.N';my $EVENT='on';my $TYPE='dummy';{main::Alarm_Arm("Alarmanlage",0,"$NAME","$EVENT","arm")}
2018.01.22 17:22:41 1: stacktrace:
2018.01.22 17:22:41 1: main::__ANON__ called by fhem.pl (4864)
2018.01.22 17:22:41 1: main::FileWrite called by ./FHEM/95_Alarm.pm (518)
2018.01.22 17:22:41 1: main::Alarm_save called by ./FHEM/95_Alarm.pm (780)
2018.01.22 17:22:41 1: main::Alarm_Arm called by (eval 1927225) (1)
2018.01.22 17:22:41 1: (eval) called by fhem.pl (1074)
2018.01.22 17:22:41 1: main::AnalyzePerlCommand called by fhem.pl (1097)
2018.01.22 17:22:41 1: main::AnalyzeCommand called by fhem.pl (1022)
2018.01.22 17:22:41 1: main::AnalyzeCommandChain called by ./FHEM/91_notify.pm (104)
2018.01.22 17:22:41 1: main::notify_Exec called by fhem.pl (3490)
2018.01.22 17:22:41 1: main::CallFn called by fhem.pl (3410)
2018.01.22 17:22:41 1: main::DoTrigger called by fhem.pl (4384)
2018.01.22 17:22:41 1: main::readingsEndUpdate called by fhem.pl (4566)
2018.01.22 17:22:41 1: main::readingsSingleUpdate called by ./FHEM/98_dummy.pm (63)
2018.01.22 17:22:41 1: main::dummy_Set called by fhem.pl (3485)
2018.01.22 17:22:41 1: main::CallFn called by fhem.pl (1752)
2018.01.22 17:22:41 1: main::DoSet called by fhem.pl (1784)
2018.01.22 17:22:41 1: main::CommandSet called by fhem.pl (1168)
2018.01.22 17:22:41 1: main::AnalyzeCommand called by ./FHEM/01_FHEMWEB.pm (2484)
2018.01.22 17:22:41 1: main::FW_fC called by ./FHEM/01_FHEMWEB.pm (838)
2018.01.22 17:22:41 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (525)
2018.01.22 17:22:41 1: main::FW_Read called by fhem.pl (3490)
2018.01.22 17:22:41 1: main::CallFn called by fhem.pl (687)
2018.01.22 17:22:42 1: [Alarm 0] will be armed from alarmSensor Alarmanlage_an with event on, delay 0:30
2018.01.22 17:23:12 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4864, <GEN10> line 65762.
2018.01.22 17:23:12 1: eval: {Alarm_Arm("Alarmanlage",0,"Alarmanlage_an","delay","arm");fhem("set myMPD playfile 002-Alarmanlage scharf geschaltet.mp3");}
2018.01.22 17:23:12 1: stacktrace:
2018.01.22 17:23:12 1: main::__ANON__ called by fhem.pl (4864)
2018.01.22 17:23:12 1: main::FileWrite called by ./FHEM/95_Alarm.pm (518)
2018.01.22 17:23:12 1: main::Alarm_save called by ./FHEM/95_Alarm.pm (760)
2018.01.22 17:23:12 1: main::Alarm_Arm called by (eval 1928134) (1)
2018.01.22 17:23:12 1: (eval) called by fhem.pl (1074)
2018.01.22 17:23:12 1: main::AnalyzePerlCommand called by fhem.pl (1097)
2018.01.22 17:23:12 1: main::AnalyzeCommand called by fhem.pl (1022)
2018.01.22 17:23:12 1: main::AnalyzeCommandChain called by ./FHEM/90_at.pm (179)
2018.01.22 17:23:12 1: main::at_Exec called by fhem.pl (3065)
2018.01.22 17:23:12 1: main::HandleTimeout called by fhem.pl (615)
2018.01.22 17:23:30 1: PERL WARNING: Use of uninitialized value $l in print at fhem.pl line 4864, <GEN10> line 65782.
2018.01.22 17:23:30 1: eval: my $SELF='alarm0.disarm.N';my $EVENT='off';my $TYPE='dummy';my $NAME='Alarmanlage_an';my $EVTPART0='off';{main::Alarm_Arm("Alarmanlage",0,"$NAME","$EVENT","disarm")}
2018.01.22 17:23:30 1: stacktrace:
2018.01.22 17:23:30 1: main::__ANON__ called by fhem.pl (4864)
2018.01.22 17:23:30 1: main::FileWrite called by ./FHEM/95_Alarm.pm (518)
2018.01.22 17:23:30 1: main::Alarm_save called by ./FHEM/95_Alarm.pm (816)
2018.01.22 17:23:30 1: main::Alarm_Arm called by (eval 1928718) (1)
2018.01.22 17:23:30 1: (eval) called by fhem.pl (1074)
2018.01.22 17:23:30 1: main::AnalyzePerlCommand called by fhem.pl (1097)
2018.01.22 17:23:30 1: main::AnalyzeCommand called by fhem.pl (1022)
2018.01.22 17:23:30 1: main::AnalyzeCommandChain called by ./FHEM/91_notify.pm (104)
2018.01.22 17:23:30 1: main::notify_Exec called by fhem.pl (3490)
2018.01.22 17:23:30 1: main::CallFn called by fhem.pl (3410)
2018.01.22 17:23:30 1: main::DoTrigger called by fhem.pl (4384)
2018.01.22 17:23:30 1: main::readingsEndUpdate called by fhem.pl (4566)
2018.01.22 17:23:30 1: main::readingsSingleUpdate called by ./FHEM/98_dummy.pm (63)
2018.01.22 17:23:30 1: main::dummy_Set called by fhem.pl (3485)
2018.01.22 17:23:30 1: main::CallFn called by fhem.pl (1752)
2018.01.22 17:23:30 1: main::DoSet called by fhem.pl (1784)
2018.01.22 17:23:30 1: main::CommandSet called by fhem.pl (1168)
2018.01.22 17:23:30 1: main::AnalyzeCommand called by fhem.pl (1022)
2018.01.22 17:23:30 1: main::AnalyzeCommandChain called by fhem.pl (3530)
2018.01.22 17:23:30 1: main::fhem called by (eval 1928717) (7)
2018.01.22 17:23:30 1: (eval) called by fhem.pl (1074)
2018.01.22 17:23:30 1: main::AnalyzePerlCommand called by fhem.pl (1097)
2018.01.22 17:23:30 1: main::AnalyzeCommand called by fhem.pl (1022)
2018.01.22 17:23:30 1: main::AnalyzeCommandChain called by ./FHEM/91_notify.pm (104)
2018.01.22 17:23:30 1: main::notify_Exec called by fhem.pl (3490)
2018.01.22 17:23:30 1: main::CallFn called by fhem.pl (3410)
2018.01.22 17:23:30 1: main::DoTrigger called by fhem.pl (4384)
2018.01.22 17:23:30 1: main::readingsEndUpdate called by fhem.pl (4566)
2018.01.22 17:23:30 1: main::readingsSingleUpdate called by ./FHEM/98_dummy.pm (63)
2018.01.22 17:23:30 1: main::dummy_Set called by fhem.pl (3485)
2018.01.22 17:23:30 1: main::CallFn called by fhem.pl (1752)
2018.01.22 17:23:30 1: main::DoSet called by fhem.pl (1784)
2018.01.22 17:23:30 1: main::CommandSet called by fhem.pl (1168)
2018.01.22 17:23:30 1: main::AnalyzeCommand called by fhem.pl (1022)
2018.01.22 17:23:30 1: main::AnalyzeCommandChain called by fhem.pl (3530)
2018.01.22 17:23:30 1: main::fhem called by (eval 1928716) (8)
2018.01.22 17:23:30 1: (eval) called by fhem.pl (1074)
2018.01.22 17:23:30 1: main::AnalyzePerlCommand called by fhem.pl (1097)
2018.01.22 17:23:30 1: main::AnalyzeCommand called by fhem.pl (1022)
2018.01.22 17:23:30 1: main::AnalyzeCommandChain called by ./FHEM/91_notify.pm (104)
2018.01.22 17:23:30 1: main::notify_Exec called by fhem.pl (3490)
2018.01.22 17:23:30 1: main::CallFn called by fhem.pl (3410)
2018.01.22 17:23:30 1: main::DoTrigger called by fhem.pl (4384)
2018.01.22 17:23:30 1: main::readingsEndUpdate called by ./FHEM/72_FRITZBOX.pm (1882)
2018.01.22 17:23:30 1: main::FRITZBOX_Readout_Process called by ./FHEM/72_FRITZBOX.pm (1739)
2018.01.22 17:23:30 1: main::FRITZBOX_Readout_Done called by (eval 1928715) (1)
2018.01.22 17:23:30 1: (eval) called by fhem.pl (1074)
2018.01.22 17:23:30 1: main::AnalyzePerlCommand called by fhem.pl (1097)
Prima, und was ist nun die Frage ?
pah
Zitat von: Prof. Dr. Peter Henning am 16 Januar 2018, 21:17:29
pah
Edit:
Keine Einwände ;D
Bei mir läuft es problemlos :D
=> eingecheckt
Hallo.
Kommt zwar etwas spät, und ist für die 4.0 aus dem SVN, aber die "Unset Action" der Aktoren wird nach wie vor ausgeführt, wenn während des armwait wieder entschärft wird.
War das Level erstmal armed (und wird ohne Rise entschärft), werden -wie gewünscht- keine "Unset Action" ausgeführt.
Ist das so gewollt?
Sorry, hatte ich doch bei dem editieren ein paar Zeile zu viel gelöscht:-)
Im Prinzip bräuchte ich ein Hinweis was die Meldung verursacht, bzw. wo ich ansetzen kann.
Gruß
Thomas
Hat sich erledigt habe ein älteres SDcard Image zurückgespielt dort geht alles fehlerfrei.
Ah.
Und seit v4.0 bekomm ich eine Javascript Meldung. Das alarm.js ist aktuell, also identisch mit dem im SVN, Browser Caches geflushed.
Wenn ich die Alarm Page öffne kommt ein Popup mit: "line 0 Script error."
Auf der Javascript Console: TypeError: null is not an object (evaluating 'details.url')
Mehr konnte ich nicht rausfinden, ist aber auf 2 getrennten Installationen. Eventuell hat pah eine Idee?
@jmike: Nö, gewünscht ist das nicht, hatte ich auch nicht auf dem Radar, weil ich nicht während des armwait wieder zu entschärfen pflege 8). Sollte mit der angehängten Version abgefangen sein, bitte testen.
Javascript: Scheint mit dem csrfToken zusammenzuhängen. Bitte auch die angehängte alarm.js einspielen (in www/pgm2).
LG
pah
Guten Morgen.
Bestätige, 4.01 löst das disarm-at-armwait Issue. Danke :)
Der Javascript Fehler tritt unter 4.01 lustigerweise in Chrome nicht mehr auf, im Safari aber schon (trotz Caches geleert, privacy mode etc).
Den Csrf habe ich allerdings tatsächlich auf none stehen.
Da werde ich noch mal weiter testen und auch mit dem Csrf spielen.
Lg
Hallo Zusammen,
ich habe eine frage zu den alarmSettings. Wie kann ich mehrere notify verknüpften, z.b. Taster1:Short.* oder Taster5:Short.*
alarmSettings alarm6,|Taster1:Short.*|Bedienfeld unlock|disarm
::)
Wer um Himmels Willen editiert seine Alarmsettings von Hand ?
pah
Hallo zusammen,
ich beschäftige mich seid ein paar Wochen mit FHEM mit dem konkreten Ziel eine alltagstaugliche Alarmanlage zu bauen.
Nachdem ich alle 69 Seiten des Theads überflogen habe bin ich eigentlich auch ganz gut im Bilde und die Grundfunktion ist da.
Danke erst einmal dafür ! :)
Aktuell stoße ich auf das gleiche Problem wie exciter. Sobald ich scharf schalte, bekomme ich doppelte Pushmeldungen nur vom scharf schalten.
Die pre_arm Nachricht bekomme ich hingegen nur einmal. Ich nutze die neuste Version 4.01.
Zitat von: exciter am 20 Januar 2018, 18:12:36
Moin,
das Modul läuft super, aber sendet mir die unter "arm Action" eingetragene Push-Nachricht doppelt?
Habe zwei Alarmlevel definiert und bekomme 4x "Alarm scharf" gesendet. Bei einem Level entsprechend zwei.
Die fhem.cfg habe ich nach der Nachricht durchsucht um notifys, welche ich eventuell vergessen habe ausschließen zu können.
Ich meine dieses Verhalten hatte ich bei älteren Versionen nicht.
Kann mir Vlt. jemand helfen?
Schönes Wochenende
Steffen
@ exciter : hast du das Problem lösen können?
Hat sonst noch jemand eine Idee?
Logfile aus dem entsprechenden Zeitraum:
2018.01.25 12:39:04 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:39:05 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:39:18 3: 1 : Unknown command 1, try help.
2018.01.25 12:39:18 3: [Alarm 0] canceled from device program
2018.01.25 12:39:18 3: alarm0.disarm.N return value: [Alarm 0] disarmed from alarmSensor Button.Alarm.disarm with event on
2018.01.25 12:39:21 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:39:21 1: Error: >< has no TYPE, but following keys: ><
sending systemCode[11111] unitCode[1] command[0]
sending systemCode[11111] unitCode[1] command[1]
2018.01.25 12:39:36 3: set Button.Alarm.disarm : no set value specified
2018.01.25 12:39:36 1: [Alarm 0] will be armed from alarmSensor Button.Alarm.armExt with event on, delay 0:05
2018.01.25 12:39:36 3: alarm0.arm.N return value: [Alarm 0] will be armed from alarmSensor Button.Alarm.armExt with event on, delay 0:05
sending systemCode[11111] unitCode[1] command[0]
2018.01.25 12:39:39 3: [Alarm 0] armed from alarmSensor Button.Alarm.armExt with event delay
2018.01.25 12:40:41 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:40:41 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:40:44 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:40:44 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:41:07 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:41:07 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:41:09 3: alarm0.disarm.N return value: [Alarm 0] disarmed from alarmSensor Button.Alarm.disarm with event on
2018.01.25 12:41:21 1: Error: >< has no TYPE, but following keys: ><
2018.01.25 12:41:21 1: Error: >< has no TYPE, but following keys: ><
sending systemCode[11111] unitCode[1] command[0]
sending systemCode[11111] unitCode[1] command[1]
2018.01.25 12:41:41 3: set Button.Alarm.disarm : no set value specified
2018.01.25 12:41:41 1: [Alarm 0] will be armed from alarmSensor Button.Alarm.armExt with event on, delay 0:05
2018.01.25 12:41:41 3: alarm0.arm.N return value: [Alarm 0] will be armed from alarmSensor Button.Alarm.armExt with event on, delay 0:05
sending systemCode[11111] unitCode[1] command[0]
2018.01.25 12:41:44 3: [Alarm 0] armed from alarmSensor Button.Alarm.armExt with event delay
Habe version 4.01 seit ich "glaube gestern" ein Update gemacht hat löst der Alarm quasi SOFORT aus wenn ein Sensor ausgelöst wird.
Wurde irgendwas verändert an den Zeitangaben ? Habe die Verzögerungen mit 00:00:30 für 30 Sekunden angegeben.
Hatte erst gedacht mit dem Update heute morgen ist das Problem behoben leider nicht. Meine Frau ist nun zum 2. mal Taub gerworden ;)
Im Log habe ich auch folgendes:
2018.01.25 15:47:40 1: Error: >< has no TYPE, but following keys: >READINGS<
2018.01.25 15:48:23 1: Error: >< has no TYPE, but following keys: >READINGS<
Das die arm-Action doppelt ausgeführt wird, habe ich auch.
Hab mal etwas rein geschaut. Bei dem AT alarm0.arm.dly welches die Aktionen ausführt, werden nicht nur die FHEM Befehle ausgeführt, sondern noch zusätzlich eine Perl Routine namens Alarm_Arm() ausgeführt.
Ich habe in meinem Playground mal zwei dummys befüllen lassen durch die Arm Aktion, da sieht das vollständige AT dann so aus:
{Alarm_Arm("AAA",0,"web","delay","arm");fhem("set alarmStatus armed");fhem("set dummy good");}
Wenn ich nun {Alarm_Arm("AAA",0,"web","delay","arm");}
in der FHEM Befehlszeile ausführe, werden wieder meine 2 Dummies gesetzt.
Also führt das AT die Aktionen 1x direkt aus und nochmals über die Alarm_Arm() Routine.
Ob nun die Routine oder die einzelnen FHEM Befehle korrigiert werden müssen, kann pah am besten sagen.
Fakt ist, wenn man jenes defmod, welches das AT erstellt, entsprechend manipuliert (entweder Alarm_Arm() oder $cmdactf rauswirft) läuft es nur 1x.
Lg
mike
sonst hat keiner ein Problem das die Alarmverzögerung der einzelnen Aktoren nicht funktioniert ? Ich habe rein gar nichts angepasst an meinen Einstelungen das lief nun seit ca. 1 Monat gleich.
@ChrisW.
Du meinst das, was derzeit unter "Verzögerung [hh:]mm:ss" eingetragen wird?
Das läuft bei mir wie erwünscht (4.01).
Beispiel aus dem Eventmonitor:
2018-01-26 08:50:35 dummy alarmStatus armed << SCHARF
2018-01-26 08:51:42 dummy dummy on << Sensor löst Alarm Level 0 aus
2018-01-26 08:51:42 at alarm0dly1 Next: 08:51:57 << Modul erstellt AT zum auslösen des Aktors
2018-01-26 08:51:42 Global global DEFINED alarm0dly1
2018-01-26 08:51:57 dummy einbruch_d alaaaarm << Aktor wird ausgelöst, mit den definierten 15sek delay
@jmike: Sieh an, da ist wirklich ein logischer Fehler, ich habe die FHEM-Kommandos wirklich 2x ausführen lassen.
Ist in der neuesten Version 4.02 behoben, wird in wenigen Minuten eingecheckt.
LG
pah
Gerade 4.02 vom SVN geholt. Confirmed, Arm Aktion wird nur noch 1x ausgeführt (@ Clyde12345, ChrisW, exciter).
Danke für den Instand-fix :)
@ChrisW, müssen wir noch rausfinden warum bei dir kein Delay geht.
Check doch mal deinen Eventmonitor und die erstellten AT devices und deren definition.
Hallo,
danke werde ich machen wenn ich heute abend zuhause bin.
Habe aber gerade folgende Warnungen keine Fehler im Log gefunden kann ich aber nicht viel mit anfangen
2018.01.26 10:38:09 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1138.
2018.01.26 10:38:09 3: eval: {Alarm_Html("AAA")}
2018.01.26 10:38:09 1: PERL WARNING: Use of uninitialized value $sizep in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1138.
2018.01.26 10:38:09 3: eval: {Alarm_Html("AAA")}
2018.01.26 10:38:09 1: PERL WARNING: Use of uninitialized value $name in substitution (s///) at ./FHEM/95_Alarm.pm line 1140.
2018.01.26 10:38:09 3: eval: {Alarm_Html("AAA")}
2018.01.26 10:38:09 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4178.
2018.01.26 10:38:09 3: eval: {Alarm_Html("AAA")}
2018.01.26 10:38:09 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1163.
2018.01.26 10:38:09 3: eval: {Alarm_Html("AAA")}
2018.01.26 10:38:09 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1164.
2018.01.26 10:38:09 3: eval: {Alarm_Html("AAA")}
2018.01.26 10:38:09 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1189.
2018.01.26 10:38:09 3: eval: {Alarm_Html("AAA")}
2018.01.26 10:38:09 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1191.
2018.01.26 10:38:09 3: eval: {Alarm_Html("AAA")}
2018.01.26 10:38:09 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1193.
2018.01.26 10:38:09 3: eval: {Alarm_Html("AAA")}
2018.01.26 10:38:10 1: Error: >< has no TYPE, but following keys: >READINGS<
Zitat von: ChrisW am 26 Januar 2018, 10:40:50
Hallo,
danke werde ich machen wenn ich heute abend zuhause bin.
Habe aber gerade folgende Warnungen keine Fehler im Log gefunden kann ich aber nicht viel mit anfangen
Check mal ob du einen Aktor oder einen Sensor definiert hast, der in keinem Level aktiv ist.
Ne überall ist etwas ausgewählt. Diese meldung kann ich bisher auch nicht reproduzieren.. komisch
Ich tippe mal, dass bei der Transformation des alten Speicherformates in das neue Speicherformat etwas schiefgelaufen ist.
Bitte
a.) alle Parameter im Webinterface überprüfen und
b.) "Parameter setzen"
LG
pah
Ich habe mir den Logeintrag " Error: >< has no TYPE, but following keys: >READINGS<" mal genauer angesehen.
Der Eintrag wird direkt aus der fhem.pl gemacht. Ursache dafür ist ein Devices ohne Namen und TYPE, welches aber Readings hat.
Auf meiner Suche habe ich mir das Device ($hash) mal genauer angesehen.
Inhalt (direkt in der fhem.pl):
$VAR1 = \{
'READINGS' => {
'level0' => {},
'level1' => {},
'level2' => {},
'level3' => {},
'level4' => {},
'level5' => {},
'level6' => {},
'level7' => {}
}
};
=> 95_Alarm.pm
Habe mich dann durchs Modul gehangelt und die Ursache gefunden.
In Alarm_widget() verbleibt $name leer. In $FW_webArgs ist nur der room drin und der anschliessende deconstruct aus $arg klappt nicht.
$arg hat bei mir:
2018.01.26 14:21:48 1: arg $VAR1 = \'name=AAA&gstate=mixed&dstate=&size=60x80';
Damit gibt die Regex (v4.02 Line 1118) ^name=(\w*)&gstate=(.+)&dstate=(.+)&size=(\d+x\d+) leider gar keine matches zurück.
Grund dafür ist offensichtlich dass dstate im $arg leer ist.
Ändere ich die Regex auf ^name=(\w*)&gstate=(.+)&dstate=(.*)&size=(\d+x\d+) klappt auch der Rest.
Lustig ist, nun wird auch die kleine Glocke gelb. Das leere Device und die Fehlermeldung sind bei mir nun weg.
Ich weiß allerdings nicht warum dstate anscheinend bei manchen leer ist, und ob gstate auch besser auf (.*) matchen sollte.
Hoffentlich kann @pah damit was anfangen und diese Art des Input nicht gänzlich unerwünscht ::)
Lg
mike
edit: Wo ich gerade dabei bin @pah auf die Nerven zu gehen..
Ich habe die Ursache für die merkwürdige Javascript Meldung gefunden.
Wenn ich in der alarm.js auf Zeile 13 anstatt
areq.open('GET', document.location, false);
=>areq.open('GET', document.location.href, false);
verwende, bekomme Ich keine Fehlermeldung.
Bin mir unsicher ob an der Stelle wirklich das ganze Objekt benötigt wird oder nur das href, document.location scheint mir allerdings eh deprecated zu sein.
Ob und wie das ins SVN wandert bleibt natürlich Ihnen überlassen. Im Zweifel passe ich nach updates halt meine alarm.js an.
Lg^2
Oh, ich habe gar keine Probleme damit, dass jemand meinen manchmal etwas genialischen Code verbessert (Fußnote: Auf den Keks gehen mir nur feature requests von Leuten, die selber noch nichts geleistet haben...)
Die Lösung mit document.location habe ich hierher: https://stackoverflow.com/questions/220231/accessing-the-web-pages-http-headers-in-javascript
Bevor ich die vorgeschlagene Änderung übernehme, würde mich interessieren, ob es bei anderen immer noch funktioniert, wenn wir in Codezeile 13 einsetzen
req.open('HEAD', document.location.href, false);
Betreffend die Regexp: Die wird ja gar nicht benötigt, wenn das nicht ohne webargs aufgerufen wird. Ist mir nicht klar, wieso das zu einer solchen Fehlermeldung führt - aber gut, ich probiers mal aus, das ist auch unschädlich (wobei ich diese Fehlermeldung gar nicht habe ...)
Ach ja: Die "lustige kleine Glocke" soll dann gelb sein, wenn nicht alle im Attribut iconmap aufgelisteten Alarmlevel scharf sind. Sonst ist sie weiß (unscharf), grün (scharf) oder rot blinkend (alarmiert). Das Attribut iconmap regelt also, welchen Alarmleveln die "lustige kleine Glocke" folgt. Ich seh schon, ich muss dringend mal an der Wiki-Doku arbeiten.
LG
pah
Hallo.
Hört sich alles gut an.
Wie gesagt, warum in den $FW_webArgs keine "name" drin ist, ist mir auch unklar. Dennoch scheint es ja bei mehreren so zu sein.
Zu der Glocke, die war bisher bei mir nur Grau - bis zum fix von $name bzw. der Regex. Die dürfte also bei den Usern mit "no TYPE" Logeinträgen auch Grau sein.
Lustig fand auch nur die Verkettung von Logeintrag->namenloses-device->Glocke - nicht die Glocke selbst ;)
Seit dem Fix war sie Gelb - weil 1 Level bei mir immer scharf ist nehme ich an.
Dank dem Tip mit dem iconmap, welches Ich nun auf die Level für Haustüre & Fenster gelegt habe, macht die Glocken Farbe nun richtig Sinn ;)
Zum document.location noch, der Beitrag ist ja schon etwas älter.
Knapp 2 Jahre später (immer noch 7 Jahre alt) reden sie von deprecated: https://stackoverflow.com/questions/2652816/what-is-the-difference-between-document-location-href-and-document-location
...aber ich kann das selber auch nicht wirklich bewerten, Javascript ist nicht wirklich eine "Kompetenz".
Lg
Es geht jedenfalls auch mit href, und es geht auch mit HEAD statt GET.
Der leere Name wundert mich immer noch - Zeile 1307 ruft das nämlich mit nichtleerem Namen auf.
LG
pah
Moment...
Zeile 1307 ruft Alarm_widget() auf, der übergeben Parameter wird ja als $arg innerhalb der Sub genutzt.
$arg ist bei mir ja auch mit name=AAA befüllt, siehe Post von 14:37.
Soweit also alles korrekt.
Alarm_widget() holt sich $name ja erst mal aus den webArgs.
my $name = $FW_webArgs{name};
$FW_webArgs hat aber (bei mir) keinen key names "name". Daher ist $name danach noch leer.
Dann macht Alarm_widget() ja weiter und holt sich den Namen aus $arg. Da wäre name=AAA drin aber er scheitert an der Regex.
Also ist $name danach immer noch leer.
Entweder hatte ich das missverständlich formuliert, oder $FW_webArgs{name} enthält bei Ihnen den Devicename - zumindest verstehe ich so ihre letzte Antwort.
Ah, ok, da habe ich mich falsch ausgedrückt. Die RegExp geht nur dann schief, wenn $detailstate leer ist. Und $detailstate kann nur leer sein, wenn das Attribut iconmap nicht gesetzt ist.
Werde ich versuchen, abzufangen - allerdings ist das mit dem geänderten regulären Ausdruck auch in Ordnung.
LG
pah
Hallo zusammen,
danke für das Modul, ich setze es schon seit einiger Zeit erfolgreich ein. Ist es eigentlich möglich die "lustige kleine Glocke" als Widget/ Reading etc bspw auf dem Tablet als Bild zu verlinken?
Beste Grüße
Hallo Zusammen,
Danke für die Änderung, meine bisherigen Fehlermeldungen sind jetzt alle verschwunden und
meine Alarmglocke ist jetzt "gelb" mit 3 grünen Punkten ... (sind ja auch 3 Sensoren)
vor der Änderung hatte ich Fehlermeldungen wie oben beschrieben und die Glocke war "rot"
jedoch die Alarmauslösung funktionierte trotzdem.
Jetzt ist die Funktion ebenfalls gegeben, jedoch fällt mir auf, wenn ich bei aktivierter Alarmanlage auf die
Weboberfläche schaue und einen Alarm auslöse, erhalte ich eine Fehlermeldung im Log:
.... unsupported HTTP method HEAD, rejecting it.
Es ändert sich in der Anzeige der Weboberfläche nichts (die 3 Punkte bleiben grün) Alarm wird aber ausgelöst.
Wenn ich jetzt den Browser aktualisiere wird einer der 3 Punkte "rot". ( je nach dem welcher Sensor halt ein anderer Punkt)
Ich habe jetzt mal im Netz nach der Fehlermeldung gesucht und rudolfkoenig selbst schreibt hierzu:
Irgendwer ruft FHEMWEB mit der HTTP Anweisung HEAD auf.
Unterstuetzt werden aber nur GET, POST und OPTIONS.
Ich hoffe, dass nicht wieder eine Nebelkerze neben mir steht...
MfG
Uwe
Hi.
Mit der über update verfügbaren Version (4.02) tritt die Meldung bei mir auch auf.
Wenn man die Alarm Seite öffnet landet im fhem.log:
2018.01.28 19:07:48 3: WEB_127.0.0.1_62343: unsupported HTTP method HEAD, rejecting it.
Und auf der Javascript Console:
Failed to load resource: the server responded with a status of 405 (Method Not Allowed)
Ändere ich die alarm.js +13 wieder auf GET, req.open('GET', document.location.href, false);
dann läuft alles wie geschmiert, Glocke und "Status LEDs" gehen, keine Fehler oder Warnings irgendwo.
Lg
Schade, HEAD ist schneller.
Also ändere ich das wieder auf GET - kann auch jeder selber machen, wird demnächst dann eingecheckt
LG
pah
So konnte am Wochenende etwas testen. Bei mir werden die verzögerungszeiten der Aktoren nicht beachtet. Eingetragen: 00:00:55
Leider löst er bei einem Alarm Sofort diesen Aktor aus und wartet keine 55 Sekunden ..
Wie kann ich weiter auf Fehlersuche gehen ? Es wurde nichts angepasst sondern nur die letzten Updates eingespielt.
Edit: gerade ein Update bekommen: 4.03 ich werde damit nochmal testen.
Zitat von: ChrisW am 29 Januar 2018, 08:32:45
So konnte am Wochenende etwas testen. Bei mir werden die verzögerungszeiten der Aktoren nicht beachtet. Eingetragen: 00:00:55
Leider löst er bei einem Alarm Sofort diesen Aktor aus und wartet keine 55 Sekunden ..
Wie kann ich weiter auf Fehlersuche gehen ? Es wurde nichts angepasst sondern nur die letzten Updates eingespielt.
Versuch mal 00:55 (speichern nicht vergessen), und schau anschließend in das Alarmdevice in das dementsprechende reading. Ich glaube levelxonact (x steht für dein Level). Dort müsstest du den passenden at Befehl sehen. Wurde gestern auch kurz durch meine Sirene erinnert, dass ich dort nochmal genauer hinschauen muss.
Grüße
Hat jemand eine Idee für folgendes Problem?
Ich habe an den Fenstern Sensoren angebracht, die feststellen, ob diese offen oder geschlossen sind. Die Alarmanlage löst jetzt aus, wenn eins der Fenster geöffnet wird, während sie scharf geschaltet ist.
Leider löst sie aber auch aus, wenn ich ein Fenster schlicht vergessen habe zu schließen und die Alarmanlage scharf schalte. Hat jemand für dieses Problem schon eine Lösung gefunden?
Das musst du vorab in einer extra Routine prüfen und das Scharf schalten verhindern.
Wenn erstmal armed ist, und der Fenster Sensor sich wieder meldet mit state:open gibts logischerweise Alarm.
Ich hatte hier im Thread vor zig Seiten mal eine kleine myUtils-check-Routine beschrieben.
Alternativ hat pah auf dem Wiki auch was dazu soweit ich weiß.
edit: https://forum.fhem.de/index.php/topic,26893.msg408550.html#msg408550
Hi, also ich bin mit dem Problem leider nicht glücklich geworden. Ich bin gerade dabei die einzelnen Fenster/Türen per DOIF zu steuern. Das scheint mir flexibler und einfacher als mit vielen nicht ganz einfachen Dummys und Zeitgebern. Dann kann ich mir auch einfach ansagen lassen, welches Fenster zu lange offen ist oder auch eine Vorprüfung auf offene Sensoren bevor ich scharf schalte.
Ich habe das Ganze Thema mit Homematic getestet, da lässt sich das im Prinzip auch sehr einfach machen, einschließlich Alarmanlage. So gern wie ich das geniale Alarmmodul mag, so ist es aus meiner Sicht für den ungeübten Programmierer doch eine Herausforderung. Ich würde mich halt wahnsinnig freuen, wenn dies relativ einfach machen ließe. Aber ich verstehe schon, dass es viel Zeit ist, vielleicht auch für Manchen zu umfänglich wird und auch einen fähiger Kopf mit Zeit braucht.
Hmm okay. Da muss ich mich einlesen. Aber ich denke das ist dann wirklich etwas komplizierter, da bei mir die Alarmanlage automatisch scharf geschaltet wird bei Verlassen des Hauses. Das kann teilweise erst sein, wenn ich mit dem Auto schon los gefahren bin. Im Prinzip müsste man sich sowas einrichten wie ein ignore für das Fenster, wenn dieses schon vor dem scharf schalten offen war. Klar ist das dann eine Einladung an potentielle Einbrecher, aber meine Bewegungssensoren können dann immer noch auslösen... Muss mich mal intensiv damit auseinander setzen.
Ich habe gerade in der Modulbeschreibung (ganz am Anfang) eine Hinweis zu einem Buch gefunden. Da ist auf alle Fälle die Zustandserkennung im Verzeichnis. Das Buch macht einen ziemlich interessanten Eindruck. Kann jemand sagen, inwiefern die beiden Themen Zustandsprüfung vor Scharfschaltung und zeti-/temperaturgesteuerte Warnungen bei offenen Türen/Fenstern beschrieben ist?
Habe das Buch zwar nicht gelesen, aber wenn du ins Wiki schaust dann findest du was zum Thema Zustandserkennung.
LG
Zitat von: jmike am 02 Februar 2018, 12:39:22
Das musst du vorab in einer extra Routine prüfen und das Scharf schalten verhindern.
Wenn erstmal armed ist, und der Fenster Sensor sich wieder meldet mit state:open gibts logischerweise Alarm.
Ich hatte hier im Thread vor zig Seiten mal eine kleine myUtils-check-Routine beschrieben.
Alternativ hat pah auf dem Wiki auch was dazu soweit ich weiß.
edit: https://forum.fhem.de/index.php/topic,26893.msg408550.html#msg408550
Ich habe die Offen-Prüfung in meine Installation eingebaut. Das läuft bis jetzt sehr zuverlässig. Hier meine Lösung für Fernbedienung und eine Ausgabe per MP3 als Sprachansage bei nicht geschlossenen Fenstern. Die Schreibweisen sind nicht ganz trival. Habe einige Zeit gebraucht bis es lief. Vielen Dank an die etlichen Mitwirkenden. Hilfreich ist ein nebenher laufendes Log zum Prüfen via
tail -f /opt/fhem/log/fhem-2018-02.log
define ready2Arm dummy
define fensterKontaktNtfy notify [FT]_.*(open|closed)$ {checkArmState()}
define armAction notify Fernbedienung_H_armExt:[SL].* {if (ReadingsVal ("ready2Arm","armError"," ") eq "0") {fhem ("set Alarmanlage armed 5")} else {fhem ("set LED_MP3_Mp3 playTone 007")}}
Falls jemand eine Keypad-Steuerung in TabletUI benötigt.
Hier findet sich eine Anleitung (https://forum.fhem.de/index.php/topic,83870.0.html) dazu.
Hallo zusammen,
ich setzte das Alarm-Modul schon seit einiger Zeit ein, und finde die Umsetzung wirklich sehr gelungen. Vielen Dank zunächst dafür.
Ich habe die aktuelle Version per update laufen (4.03) und habe nun seit einiger Zeit (leider weiß ich nicht mehr 100% seit welcher Version) folgendes Problem:
An sich funktionieren alle Sensoren einwandfrei, wenn ich den Alarm einrichte. Wenn ich aber FHEM neu starte mit shutdown restart, dann sieht es zwar so aus, als ob die Alarme wieder aktiviert sind (also den Status von vor dem Restart haben), eine Auslösung findet aber nicht statt. Wenn ich mit einem Trigger den Alarm provoziere, passiert nichts. Komisch ist auch, dass die Checkboxen bei den einzelnen Alarmen nicht aktiviert sind.
Erst wenn ich den Alarm mit set AAA disamed <Nr des Alarms> manuell deaktiviere und anschließend wieder aktiviere, funktioniert es wieder. In den LOGS finde ich folgende Einträge:
PERL WARNING: Use of uninitialized value $xec in string ne at ./FHEM/95_Alarm.pm line 795.
Kann es sein, dass der Status irgendwie nicht korrekt gelesen wird? Hat jemand sonst das Problem noch bzw. kann mir einen Tipp geben, woran das liegen könnte?
Viele Grüße & danke im Voraus
Knut
Wird das AlarmFile korrekt gespeichert ?
LG
pah
Hallo pah,
danke für den schnellen Hinweis. Das AlarmFILE ist leer. Ich habe auch gerade im Code die Stelle gefunden, die bei mir Probleme macht: Zeile 612, da ist die Variable $xec nicht initialisiert. Das scheint in der Zeile 595 schief zu gehen, wohl weil AlarmFILE leer ist. Ich habe gerade die Rechte auf dem AlarmFILE auch mal geändert auf 777, das bewirkt leider nichts.
Wenn ich in 612 die zweite Bedingugn $xec eq "armed" herausnehme, dann funktioniert es.
Woran könnte es liegen, dass das AlarmFILE nicht geschrieben wird?
Danke
Knut
BTW: Noch ein Nachtrag: Das FILE wird angelegt, auch wenn ich es manuell lösche. Es ist halt nur leer :-(
Hallo pah,
ich bin wirklich nicht sehr bewandert in PERL, daher sorry, wenn das jetzt nicht wirklich korrekt ist... Ich habe aber einen Verdacht, warum das AlarmFILE leer ist:
Ich habe mit die Methode Alarm_save($) einmal angeschaut. Da wird ein $jhash0 erzeugt (JSONExport des Hashes). Der funktioniert meiner Ansicht nach nicht korrekt. Wenn ich in der Zeile das eval() weglasse, sodass Fehler durchkommen, dann erhalte ich den Fehler:
encountered object 'Sun Feb 25 18:09:21 2018', but neither allow_blessed, convert_blessed nor allow_tags settings are enabled (or TO_JSON/FREEZE method missing) at ./FHEM/95_Alarm.pm line 520.
Das hört sich so an, dass auf dem Objekt die Methode TO_JSON nicht definiert ist, daher eine Umwandlung der Onjekte (Serialisierung nach JSON) nicht stattfinden kann. Warum das aber nur bei mir knallt... weiß ich nicht.
Viele Grüße
Knut
So nun ein weiteres, letztes Mal zu dem Thema:
Ich denke ich habe den vermeintlichen Fehler gefunden. Zumindest funktioniert der JSON-Export jetzt bei mir. Ich nutze dafür in der Funktion Alarm_save($) die FHEM-Funktion toJSON und die Datumsfunktion TimeNow(). Dann werden die Alarmzustände korrekt gespeichert und übernommen. Die Funktion sieht dann bei mir so aus:
sub Alarm_save($) {
my ($hash) = @_;
my $date = TimeNow();
$hash->{DATA}{"savedate"} = $date;
readingsSingleUpdate( $hash, "savedate", $hash->{DATA}{"savedate"}, 1 );
my $jhash0 = toJSON($hash->{DATA});
my $error = FileWrite("AlarmFILE",$jhash0);
#Log 1,"[Alarm_save] error=$error";
return;
}
Viele Grüße
Knut
ZitatWarum das aber nur bei mir knallt... weiß ich nicht.
Es steht jedem frei, seine eigene gepatchte Version zu verwenden. Allerdings werde ich keinen Code ins Modul übernehmen, um unverstandene Probleme zu lösen.
LG
pah
Hmm, was soll ich dazu sagen. Natürlich steht es jedem frei seine Version zu patchen. Ich wollte eigentlich nur einen Beitrag leisten, um den Fehler einzugrenzen/zu analysieren.
Dass ich jetzt so abgebügelt werde... gut, dann soll das so sein. Ich bin immer noch der Ansicht, dass das der Datumswert nicht in JSON umgewandelt werden kann... daher sollte es nicht nur bei mir Probleme geben. Aber gut, wenn das nicht gewollt ist, halte ich mich zurück und patche halte meine Installation.
Beste Grüße
Knut
Der "Datumswert" ist bei ca. 300 anderen Nutzern einfach ein String in einem Hash, und selbstverständlich kann dieser Hash normalerweise in eine JSON-Struktur umgewandelt werden. Wie man übrigens wunderbar an diesem frischen Beispiel sieht:
{"armstate":{"level2":"armed","level4":"disarmed","level7":"armed","level5":"disarmed","level1":"disarmed","level0":"disarmed","level6":"disarmed","level3":"armed"},"savedate":"Fri Feb 23 17:34:23 2018"}
Gerade eben erstellt mit
configDB fileshow AlarmFILE
LG
pah
Ich habe bezüglich meines Problems mit dem offenen Fenster noch mal etwas rumprobiert und hoffe das Folgendes funktioniert:
Ich habe in der myUtils eine Funktion erstellt, die mir hoffentlich die Notifications für vergessene Fenster temporär deaktiviert, so dass meine Sirene nicht unbeabsichtigt los geht. Ich hab's bisher nur kurz getestet und bin noch nicht ganz sicher ob es im realen Betrieb funktioniert.
sub alarmSuppression($)
{
my ($param) = @_;
foreach my $device (devspec2array("FENSTER_.*"))
{
if (('enable' eq $param) && ('open' eq ReadingsVal($device, 'state', '')))
{
fhem("attr $device do_not_notify 1");
}
if (('disable' eq $param) && (1 == AttrVal($device, 'do_not_notify', 0)))
{
fhem("deleteattr $device do_not_notify");
}
}
}
Bei der Warteaktion trage ich dann folgendes ein und warte danach 5 Sekunden:
{alarmSuppression('enable')}
Bei der Unscharf Aktion dann noch folgendes eintragen:
{alarmSuppression('disable')}
Dadurch ist dann nur der Alarm des einen Fensters deaktiviert, welches ich eventuell vergessen habe. Bewegungsmelder usw. werden dann trotzdem scharf geschaltet.
Eine Frage,
ich nutze Alarm 7 als Rauchalarm.
Dieser soll natürlich immer aktiv sein.
Alle HM-Rauchmelder sind als Sensoren mit Wirkung "Auslösen" im Modul eingebunden Rauch_Thomas_Buero:smoke-Alarm_.*
weiterhin ist ein Sensordummy für Alarm7 als Alarmwiderruf aktiv.
Bis jetzt habe ich den Alarm7 immer auf der Modulseite einmalig im Button (Schärfen / Armed) aktiviert und das Häkchen war eigentlich immer drin.
Nun ist mir mal aufgefallen das der Haken nach einem "Sve fhem.cfg raus ist.
wie kann ich sicher gehen das der Alarm7 immer aktiv ist?
Meine Alarmanlage dagegen wird per HM-Schlüsselschalter aktiviert/deaktivert.
LG Thomas
Auch eine Frage:
Nach Betätigen des 'Set Parameters'-Buttons hat die Sensor-/Aktor-Tabelle das Aussehen von Bild1.
Nach Seitenrefresh oder Raumwechsel ist alles ok entsprechend Bild2.
Stört nicht weiter. Meine Frage ist nur, ob ich evtl. etwas falsch eingetragen habe.
Es gibt Einträge im Logfile, die ich mir nicht erklären kann:
2018.03.03 17:08:53 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2018.03.03 17:08:54 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2018.03.03 17:08:55 1: Error: >< has no TYPE, but following keys: >READINGS<
oder so etwas nach Server-Neustart:
2018.03.03 12:31:52 3: [MeineAlarmanlage V3.12] Added hidden room 'AlarmRoom' to WEB_192.168.178.22_51789
2018.03.03 12:31:52 3: [MeineAlarmanlage V3.12] Added hidden room 'AlarmRoom' to WEB_192.168.178.22_51791
2018.03.03 12:31:52 3: CUL_HM set Gong statusRequest
2018.03.03 12:31:53 1: PERL WARNING: Use of uninitialized value $name in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1087.
2018.03.03 12:31:53 1: PERL WARNING: Use of uninitialized value $sizep in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1087.
2018.03.03 12:31:53 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2018.03.03 12:31:53 1: PERL WARNING: Use of uninitialized value $name in substitution (s///) at ./FHEM/95_Alarm.pm line 1089.
2018.03.03 12:31:53 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4154.
2018.03.03 12:31:53 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1112.
2018.03.03 12:31:53 1: PERL WARNING: Use of uninitialized value $name in hash element at ./FHEM/95_Alarm.pm line 1113.
2018.03.03 12:31:53 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1138.
2018.03.03 12:31:53 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1140.
2018.03.03 12:31:53 1: PERL WARNING: Use of uninitialized value $val in string eq at ./FHEM/95_Alarm.pm line 1142.
2018.03.03 12:31:53 3: CUL_HM set HM_Empf11 statusRequest
2018.03.03 12:31:54 1: [Alarm_widget] name= gstate=disarmed dstate=-------- sizep=
2018.03.03 12:31:54 1: Error: >< has no TYPE, but following keys: >READINGS<
Hi, ich muss noch einmal Fragen da ich große Probleme mit dem scharfschalten des Moduls habe.
nach einem "shutdown restart" sind alle eigentlich vorher scharfgeschalteten Level wieder unscharf.
Ich dachte mal gelesen zu haben das in einer Modul Version mal etwas eingebaut wurde das die Levels nach dem Neustart beibehalten werden.
Jetzt habe ich etwas von einem "AlarmFile" gelesen. Scheinbar wird in dieses der letzte Stand vor dem restart gespeichert. Richtig!?
Das Alarm Modul lief jetzt 2 Jahre lang und ich habe nichts außer die Updates verändert.
Im Forum finde ich auch keine Anleitung oder Infos zu dem "AlarmFile"
folgende Fehlermeldungen fliegen bei mir im Log ein.
2018.03.06 10:25:13.644 1: PERL WARNING: Use of uninitialized value $xec in string eq at ./FHEM/95_Alarm.pm line 612, <GEN329> line 1.
2018.03.06 10:25:13.753 1: PERL WARNING: Use of uninitialized value $xval in string eq at ./FHEM/95_Alarm.pm line 1356, <GEN329> line 1.
2018.03.06 10:25:15.076 1: PERL WARNING: Use of uninitialized value $xval in string eq at ./FHEM/95_Alarm.pm line 1356, <GEN347> line 1.
2018.03.06 10:25:20.096 1: PERL WARNING: Use of uninitialized value $xec in string eq at ./FHEM/95_Alarm.pm line 612, <GEN379> line 1.
2018.03.06 10:25:20.208 1: PERL WARNING: Use of uninitialized value $xval in string eq at ./FHEM/95_Alarm.pm line 1356, <GEN379> line 1.
2018.03.06 10:30:22.114 1: PERL WARNING: Use of uninitialized value $xval in string eq at ./FHEM/95_Alarm.pm line 1356, <GEN863> line 1.
2018.03.06 10:30:22.820 1: PERL WARNING: Use of uninitialized value $xval in string eq at ./FHEM/95_Alarm.pm line 1356, <GEN866> line 1.
2018.03.06 10:33:39.557 1: PERL WARNING: Use of uninitialized value $xec in string eq at ./FHEM/95_Alarm.pm line 612, <GEN28> line 2.
LG Thomas
Hallo Thomas,
willkommen im Club. Leider sind wir keine 300, sondern nur 2. Du scheinst ähnliches "Problem", wie ich zu haben.
Du kannst ja mal den Code-Vorschlag von mir vom 25.02. 20:21 ausprobieren. In der Funktion Alarm_save($) einfach die Zuweisung für my $date ändern in
my $date = TimeNow();
Das AlarmFile befindet sich im fhem-Verzeichnung bzw. in der configDB. Bei mir war das leider immer leer (habe keine ConfigDB). Korrekt sollte das ein JSON-String drin stehen.
Viele Grüße
Knut
Zitat von: knuthildebrandt am 06 März 2018, 10:43:37
Hallo Thomas,
willkommen im Club. Leider sind wir keine 300, sondern nur 2. Du scheinst ähnliches "Problem", wie ich zu haben.
Du kannst ja mal den Code-Vorschlag von mir vom 25.02. 20:21 ausprobieren. In der Funktion Alarm_save($) einfach die Zuweisung für my $date ändern in
my $date = TimeNow();
Das AlarmFile befindet sich im fhem-Verzeichnung bzw. in der configDB. Bei mir war das leider immer leer (habe keine ConfigDB). Korrekt sollte das ein JSON-String drin stehen.
Viele Grüße
Knut
Hallo Knut,
vielen Dank dafür nun geht es alles wieder.
- in das AlarmFile wird geschrieben
- nach einem restart bleiben alle Level jetzt scharf
Zitat von: Prof. Dr. Peter Henning am 26 Februar 2018, 11:41:16
Allerdings werde ich keinen Code ins Modul übernehmen, um unverstandene Probleme zu lösen.
LG
pah
Hallo pah,
kannst du bitte noch eine Hilfelstellung geben, zwar funktioniert es jetzt mit Knut seiner .pm Änderung aber nach einem Modul Update wäre das Problem wieder das gleiche.
Was mache ich als Laie falsch?
LG Thomas
ZitatLeider sind wir keine 300, sondern nur 2.
tja, dann heb ich auch mal die Hand, als zumindest teilweise Betroffene.
Die armed/disarmed settings der Alarmlevel werden bei mir nach "shutdown restart" zwar wiederhergestellt.
Das AlarmFILE ist allerdings leer, und in der "Alarm System" view sind die checkboxen unchecked (obwohl sie eigentlich checked sein müßten!)
In den level1-7 readings des Alarm Objekts steht jedoch der korrekte Zustand wie vor dem restart.
Ich habe Knut's Änderung an der Alarm_save eingebaut, damit funktionierts wunderbar.
Bei mir gibts auch keine configDB, möglicherweise hängts ja damit zusammen.
Zitat von: Wetterhexe am 06 März 2018, 14:15:53
Die armed/disarmed settings der Alarmlevel werden bei mir nach "shutdown restart" zwar wiederhergestellt.
In den level1-7 readings des Alarm Objekts steht jedoch der korrekte Zustand wie vor dem restart.
Ja die sind optisch wiederhergestellt, aber wenn du mal einen Alarm getestet hast, hast du gemerkt das kein Alarm ausgelößt wird, auch wenn es in den settings steht!
Zitat von: Wetterhexe am 06 März 2018, 14:15:53
Das AlarmFILE ist allerdings leer, und in der "Alarm System" view sind die checkboxen unchecked (obwohl sie eigentlich checked sein müßten!)
Genau wie bei mir.
Muss ich mir mal ansehen, bin aber gerade erst aus dem Urlaub zurück und habe nächste Woche Semesterbeginn. Geduld bitte.
LG
pah
Die Probleme mit dem leeren AlarmFile ollten mit der eben eingecheckten Version 4.05 behoben sein.
LG
pah
Hallo pah,
nur kurze Nachfrage Interesse halber: Woran lag es jetzt, dass es bei dir funktionierte und bei mir z.B. nicht?
Viele Grüße
Knut
gerade festgestellt: Der Link in der Commandref auf die englische Doku führt bei mir ins Leere.
https://fhem.de/fhem/docs/commandref.html#Alarm (https://fhem.de/fhem/docs/commandref.html#Alarm)
Der Link sollte lauten:
https://fhem.de/commandref.html#Alarm (https://fhem.de/commandref.html#Alarm)
Das Problem ist, dass die Perl-Funktion, die beim Update aufgerufen wird und die Commandref zusammenstrickt, diese crosslinks entweder korrekt für die lokale Installation macht, oder korrekt für die unter fhem.de. Ich habe mich entschlossen, die lokale Installation zu bevorzugen. Da funktioniert der Link problemlos.
Also in diesem Fall: Klassisches PAL
LG
pah
sollte das nicht mittlerweile über die generierten DE / EN Knöpfe funktionieren??
(muß ich zu Hause nachher mal versuchen....)
Hallol wie kann ich bei UNSCHARF / DEAKTIVIERT das Alarmlevel oder ähnliches hinzufügen ?
Ich lasse mir eine Push Schicken wenn der Alarm Deaktiviert ist. Jedoch habe ich 8 Alarm Level.
Hintergrund:
Ich plane das meine Kamera Software bei Ausfall der Kamera per WEB CMD befehl in einem Dummy Schreibt. Dieser löst einen Alarm aus.
Nun kann die Software bei Verbindung auch einen befehl schicken. Diesen möchte ich gerne zum Wiederruf nutzen.
Ich will also nicht Manuell den Alarmlevel zurücksetzen.
Nun habe ich aber das Problem das ich eine Push bekomme bei Wiederruf diesen aber NICHT zuordnen kann $event .. scheint dort nicht zu funktionieren.
Jemand eine Idee ?
Notlösung es ohne Alam Modul zu machen...
Jemand eine Idee?
Ich bin nicht sicher, ob ich das richtig verstanden habe. Aber dennoch versuche ich mal eine Erklärung meines Vorgehens. Ich habe nämlich auch eine IP-Kamera, die leider im Abstand mehrerer Monate, dann aber natürlich genau während einem längeren Urlaub, den Kontakt im Netz verliert. Früher hatte ich eine einfache Schaltsteckdose, die morgens um 5:00 Uhr für 5 Minuten aus ging.
Diese habe ich nun durch eine FHEM-gesteuerte Schaltsteckdose ersetzt. Und die Kontrolle, ob die Kamera noch Kontakt hat, läuft über ping, der Neustart ggf. mittels watchdog. Also komplett unabhängig vom Alarm-Modul.
ja ich hab es nun auch erstmal so gemacht. Ist glaube ich einfacher als das Alarm Modul für so etwas zu nutzen ;)
Trotzdem wäre es schön wenn man $name oder ähnliches auch bei unscharf /scharf arbeiten könnte da ich gerne wüsste WAS oder WELCHES Level unscharf geschaltet wurde. Bekomme immer eine Push
Hallo,
ich versuche mich gerade an der Zustandserkennung Alarmlevel 4. Testweise habe ich aus dem Wiki die "sub HouseOpen" in meine 99_myUtils.pm kopiert und die dort angegeben Sensoren und Actoren als dummys angelegt und als Sensoren/Actoren auch im hiddenRoom konfiguriert.
Die 95_Alarm.pm und die alarm.js sind auf dem aktuellen Stand.
Nun erhalte ich nachfolgende Ausgaben:
im FileLog:
2018.03.30 00:52:45 1: [Alarm 4] will be armed from alarmSensor web with event button, delay 0:59
2018.03.30 00:53:44 3: [Alarm 4] armed from alarmSensor web with event delay
2018.03.30 00:53:44 3: alarm4.arm.dly: [Alarm 4] armed from alarmSensor web with event delay
2018.03.30 00:55:35 3: [Alarm 4] raised from device WZ.T with event open
2018.03.30 00:56:10 1: sendEmail RCP: xxxxxxxxxxxxxxxxxxxx
2018.03.30 00:56:10 1: sendEmail Subject: Alarm
2018.03.30 00:56:10 1: sendEmail Text: Test WZ.T offen
2018.03.30 00:56:10 1: sendEmail returned: Mar 30 00:56:10 raspberrypi sendEmail[15895]: Email was sent successfully!
2018.03.30 00:57:34 1: PERL WARNING: Use of uninitialized value $value{"BK.F"} in string ne at ./FHEM/99_myUtils.pm line 111.
2018.03.30 00:57:34 3: eval: {HouseOpen()}
2018.03.30 00:57:34 1: PERL WARNING: Use of uninitialized value $value{"WK.F"} in string ne at ./FHEM/99_myUtils.pm line 115.
2018.03.30 00:57:34 3: eval: {HouseOpen()}
2018.03.30 00:57:34 1: PERL WARNING: Use of uninitialized value $value{"VK.T"} in string ne at ./FHEM/99_myUtils.pm line 119.
2018.03.30 00:57:34 3: eval: {HouseOpen()}
2018.03.30 00:57:34 1: PERL WARNING: Use of uninitialized value $value{"WZ.T"} in string ne at ./FHEM/99_myUtils.pm line 123.
2018.03.30 00:57:34 3: eval: {HouseOpen()}
2018.03.30 00:57:35 3: alarm4dly1: VK/WZ Tür + BK/WK Fenster
Warum kommen die PERL Warnungen? Meine Dummys zeigen "open" und "closed", in der "sub HouseOpen" habe ich "closed" stehen (Groß-/Kleinschreibung identisch).
im EventLog:
2018-03-30 00:53:44 Alarm Alarmanlage level4: armed
2018-03-30 00:55:34 Alarm Alarmanlage level4: WZ.T
2018-03-30 00:55:34 Alarm Alarmanlage short: Test WZ.T offen
2018-03-30 00:55:34 Alarm Alarmanlage 0 1 2 3 4 5 6 7 Test WZ.T offen
2018-03-30 00:55:34 at alarm4dly1 Next: 00:57:34
2018-03-30 00:55:35 Global global DEFINED alarm4dly1
2018-03-30 00:55:35 at alarm4dly2 Next: 00:56:10
2018-03-30 00:55:35 Global global DEFINED alarm4dly2
2018-03-30 00:55:35 dummy WZ.T open
2018-03-30 00:57:34 at TFOpen.delay Next: 00:58:04
2018-03-30 00:57:35 Global global DEFINED TFOpen.delay
2018-03-30 00:57:35 at TFClose.delay Next: 00:58:05
2018-03-30 00:57:35 Global global DEFINED TFClose.delay
2018-03-30 00:58:04 dummy TFOpen.warn VK/WZ T / BK/WK F
2018-03-30 00:58:05 dummy TFClose.warn no
2018-03-30 01:00:09 dummy WZ.T closed
Das Schließen des WZ.T wird im EventLog noch angezeigt, aber der Alarm bleibt bestehen. Die Anzeige "dummy TFOpen.warn VK/WZ T / BK/WK F" verwirrt mich auch, da doch eigentlich nur das tatsächlich offene Device angezeigt werden soll.
Kann eventuell jemand helfen? Besten Dank.
Hallo zusammen,
ich finde die Idee des Moduls wirklich sehr gut umgesetzt. Scheinbar habe ich jedoch noch Anfänger-Startschwierigkeiten, die vermutlich aus einem Missverständnis der Syntax stammen.
Ich versuche im Anfang eine Telegram Nachricht bei Bewegung an einem HM Bewegungsmelder zu versenden, leider ohne Erfolg.
Meine aktuellen Testeinstellungen sind:
Alarm 0 von 0 bis 23:59 Uhr ist Armed.
Sensor1
Name: [BM_OG_Flur_Motion]
RegExp: [BM_OG_Flur_Motion.*]
Action: [Raise]
Sensor2
Name: [BM_OG_Flur_Btn_01]
RegExp: [BM_OG_Flur_Btn_01.*]
Action: [Cancel]
Actor
Name: [Mybot]
set Action: [set Merschbot message Test]
unset action: leer
delay: [0:05]
Wenn ich den Bewegungsmelder teste, erhalte ich folgendes Event
CUL_HM BM_OG_Flur_Motion motion
Es wird jedoch keine Nachricht ausgelöst.
Der Mybot funktioniert in anderen Anwendungsfällen (z.B. beim scharf schalten der Alarmanlage) ohne Probleme.
Hoffe ihr könnt mir weiterhelfen.
Schönes Wochenende noch
Christian
RegExp => BM_OG_Flur_Motion:motion
funktioniert ohne Probleme.
LG
pah
Hallo pah!
Sind in der aktuellen Version die Attribute level?xec noch nötig, oder darf ich sie (ohne die Funktion zu beeinträchtigen) mit
deleteattr AAA level\dxec
löschen?
LG
Rainer
Gute Frage - benötigt werden sie nicht mehr, allerdings habe ich sie auch noch drinstehen.
Sie hätten aber bei der Einführung des neuen Formates automatisch gelöscht werden sollen - hmmm.
Lass mich mal bei mir probieren, ob das Nebenwirkungen hat.
Edit: Ist geschehen. Löschen der Attribute levelXxec (sollte schon vor längerer Zeit automatisch geschehen sein, ist aber offenbar nicht passiert) hat keinen negativen Einfluss. Kann man gerne manuell machen.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 05 Juni 2018, 15:47:18
...Ist geschehen. Löschen der Attribute levelXxec (sollte schon vor längerer Zeit automatisch geschehen sein, ist aber offenbar nicht passiert) hat keinen negativen Einfluss. Kann man gerne manuell machen.
...
OK, danke!
Hallo zusammen.
Ich hab mich jetzt auch mal an das Modul heran getraut.
Nach der Konfiguration und vermeindlich erfolgreichm scharf stellen des Alarms, kommt eben dieser nicht.
Mir ist aufgefallen das auch kein Raum mit dem Namen Alarm erzeugt wird wie es in der Commandref beschrieben ist.
Ich hab jetzt schon das Modul gelöscht und neu gezogen. Leider hats nicht geholfen.
Hat eventuell jemand eine Idee woran es liegen könnte?
Grüße
Ohne genauere Informationen über das Alarmdevice sicher nicht...
LG
pah
Hätte ja sein können das jemand schon ähnliche Probleme hatte...
Internals:
NAME Alarmanlage
NR 175
STATE 0
TYPE Alarm
VERSION 4.05
DATA:
savedate 2018-06-19 16:51:58
armstate:
level0 disarmed
level1 disarmed
level2 disarmed
level3 disarmed
level4 disarmed
level5 disarmed
level6 disarmed
level7 disarmed
READINGS:
2018-06-19 16:51:58 level0 disarmed
2018-06-19 16:42:27 level1 disarmed
2018-06-19 16:42:27 level2 disarmed
2018-06-19 16:42:27 level3 disarmed
2018-06-19 16:42:27 level4 disarmed
2018-06-19 16:42:27 level5 disarmed
2018-06-19 16:42:27 level6 disarmed
2018-06-19 16:42:27 level7 disarmed
2018-06-19 16:18:20 lockstate unlocked
2018-06-19 16:51:58 savedate 2018-06-19 16:51:58
2018-06-19 15:52:09 short 0
2018-06-19 16:51:58 state 0
Attributes:
armact set pushbullet message armed
armdelay 0:01
armwait set pushbullet message will be armed
cancelact set pushbullet message Canceled
disarmact set pushbullet message disarmed
level0end 0
level0msg funktioniert
level0start 0
level0xec armed
level1end 0
level1msg 0
level1start 0
level1xec disarmed
level2end 0
level2msg 0
level2start 0
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
Was benötigst du noch?
Die Pushbullets kommen immer an. Aber der Aktor wird nicht ausgeführt und der Raum "Alarm" wird nicht angelegt.
Grüße
Das ganze nochmal armed. Ich bekomme keine Meldung wenn ich den Dummy schalte.
Internals:
NAME Alarmanlage
NR 175
STATE 0
TYPE Alarm
VERSION 4.05
DATA:
savedate 2018-06-20 06:34:12
armstate:
level0 armed
level1 disarmed
level2 disarmed
level3 disarmed
level4 disarmed
level5 disarmed
level6 disarmed
level7 disarmed
READINGS:
2018-06-20 06:34:12 level0 armed
2018-06-19 16:42:27 level1 disarmed
2018-06-19 16:42:27 level2 disarmed
2018-06-19 16:42:27 level3 disarmed
2018-06-19 16:42:27 level4 disarmed
2018-06-19 16:42:27 level5 disarmed
2018-06-19 16:42:27 level6 disarmed
2018-06-19 16:42:27 level7 disarmed
2018-06-19 16:18:20 lockstate unlocked
2018-06-20 06:34:12 savedate 2018-06-20 06:34:12
2018-06-19 15:52:09 short 0
2018-06-20 06:34:25 state 0
Attributes:
armact set pushbullet message armed
armdelay 0:01
armwait set pushbullet message will be armed
cancelact set pushbullet message Canceled
disarmact set pushbullet message disarmed
level0end 0
level0msg funktioniert
level0start 0
level0xec armed
level1end 0
level1msg 0
level1start 0
level1xec disarmed
level2end 0
level2msg 0
level2start 0
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
Hast du mal dein log kontrolliert und evtl. hochgedreht. Auf verbose 5 ist das Modul sehr gesprächig.
Grüße
Das einzige was er da meldet ist das die Alarmanlage armed is. Wenn ich dann den Dummy on setze, passiert nichts.
2018.06.20 07:55:02 2: HMCCU: [CCU2] Updated devices. Success=13 Failed=1
2018.06.20 07:55:32 3: GHoma_d36e70 unknown message: 000dfe010ac03523d36e700000001f0e5bb5
2018.06.20 07:55:34 3: GHoma_d35572 unknown message: 000dfe010ac03523d355720000001f255bb5
2018.06.20 08:09:49 1: [Alarm 0] will be armed from alarmSensor web with event button, delay 0:01
2018.06.20 08:09:50 3: [Alarm 0] armed from alarmSensor web with event delay
2018.06.20 08:09:50 3: alarm0.arm.dly: [Alarm 0] armed from alarmSensor web with event delay
2018.06.20 08:10:19 3: CCURPC: CB2001 Received 500 events from CCU since last check
2018.06.20 08:14:16 1: [Alarm 0] will be armed from alarmSensor web with event button, delay 0:01
2018.06.20 08:14:17 3: [Alarm 0] armed from alarmSensor web with event delay
2018.06.20 08:14:17 3: alarm0.arm.dly: [Alarm 0] armed from alarmSensor web with event delay
jump to the top
Ich sehe keine level0onact- u./o. level0offact-Attribute, kein gültiges level0end ???
Was soll dann wohl passieren ? ::)
Ich kann nur spekulieren, dass Du keine Actors u./o. Se-t/Unset-Action oder Level-Zeiten definiert hast.
Schau noch einmal ins Wiki, ob Deine Definition wirklich vollständig ist.
Grüße Markus
Zitat von: DerBaer am 20 Juni 2018, 08:15:48
Das einzige was er da meldet ist das die Alarmanlage armed is. Wenn ich dann den Dummy on setze, passiert nichts.
2018.06.20 07:55:02 2: HMCCU: [CCU2] Updated devices. Success=13 Failed=1
2018.06.20 07:55:32 3: GHoma_d36e70 unknown message: 000dfe010ac03523d36e700000001f0e5bb5
2018.06.20 07:55:34 3: GHoma_d35572 unknown message: 000dfe010ac03523d355720000001f255bb5
2018.06.20 08:09:49 1: [Alarm 0] will be armed from alarmSensor web with event button, delay 0:01
2018.06.20 08:09:50 3: [Alarm 0] armed from alarmSensor web with event delay
2018.06.20 08:09:50 3: alarm0.arm.dly: [Alarm 0] armed from alarmSensor web with event delay
2018.06.20 08:10:19 3: CCURPC: CB2001 Received 500 events from CCU since last check
2018.06.20 08:14:16 1: [Alarm 0] will be armed from alarmSensor web with event button, delay 0:01
2018.06.20 08:14:17 3: [Alarm 0] armed from alarmSensor web with event delay
2018.06.20 08:14:17 3: alarm0.arm.dly: [Alarm 0] armed from alarmSensor web with event delay
jump to the top
Deswegen meine Bitte, das Modul auf verbose 5 hoch zu drehen. Du wirst dich wundern, wie viele Infos dich urplötzlich anspringen!
Grüße
Zitat von: Esjay am 20 Juni 2018, 09:01:09
Deswegen meine Bitte, das Modul auf verbose 5 hoch zu drehen. Du wirst dich wundern, wie viele Infos dich urplötzlich anspringen!
Grüße
Das ist bereits Verbose 5 ???
ZitatIch sehe keine level0onact- u./o. level0offact-Attribute, kein gültiges level0end ???
Was soll dann wohl passieren ? ::)
Ich kann nur spekulieren, dass Du keine Actors u./o. Se-t/Unset-Action oder Level-Zeiten definiert hast.
Schau noch einmal ins Wiki, ob Deine Definition wirklich vollständig ist.
Grüße Markus
Das war tatsächlich auch der Fehler.
Im Wiki ist aber nicht beschrieben das ich eine Zeit vorgeben muss. Da ist immer nur die rede von man kann.
ZitatIm Wiki ist aber nicht beschrieben das ich eine Zeit vorgeben muss
Ach nein - und in welchem Zeitraum sollte die Anlage dann aktiv sein ??? ::) ::)
pah
Ich muss jetzt schon mal sagen das bei manchen die Formulierung ihrer Hilfestellung schon etwas zu wünschen übrig lässt.
Vielleicht sollte man aufhören davon auszugehen das jeder der hier im Forum schreibt ein absoluter Volldepp oder Vorschulkind ist.
Klar gibt's viele Deppen, das ändert aber nichts das man einfach sachlich vorgeht.
Seids mir ned bös wenn ich das sag, aber bis auf Markus hat keiner helfen können, auch nicht das Wiki.
Der war im übrigen auch der einzige der sachlich an meine Frage rangegangen is.
Danke Markus und dem Rest wünsch ich noch nen schönen Tag...
Zitat von: Prof. Dr. Peter Henning am 20 Juni 2018, 09:17:42
Ach nein - und in welchem Zeitraum sollte die Anlage dann aktiv sein ??? ::) ::)
pah
Wenn ich keine Zeit vorgebe, dann geh ich davon aus das ich die Alarmanlage manuell scharf stelle und sie so lang scharf bleibt bis ich sie manuell wieder entschärfe.
Ich denke, das reicht jetzt wieder mal. >:(
Erst keine Informationen liefern, dann Andere grundlos der Unsachlichkeit beschuldigen, und dann auch noch motzig werden. Statt freundlich darauf hinzuweisen, dass für Nutzer, die gerne "Annahmen" tätigen und "von Dingen ausgehen" (um nicht die V-Vokabeln des Schreibers zu verwenden) der Hinweis nötig wäre, dass eine Zeitangabe gemacht werden muss.
Vorschlag: Dieses Modul bitte nicht nutzen, das ist für eine andere Zielgruppe geschrieben worden.
pah
Zitat von: Prof. Dr. Peter Henning am 20 Juni 2018, 09:32:26
Ich denke, das reicht jetzt wieder mal. >:(
Erst keine Informationen liefern, dann Andere grundlos der Unsachlichkeit beschuldigen, und dann auch noch motzig werden. Statt freundlich darauf hinzuweisen, dass für Nutzer, die gerne "Annahmen" tätigen und "von Dingen ausgehen" (um nicht die V-Vokabeln des Schreibers zu verwenden) der Hinweis nötig wäre, dass eine Zeitangabe gemacht werden muss.
Vorschlag: Dieses Modul bitte nicht nutzen, das ist für eine andere Zielgruppe geschrieben worden.
pah
Ich Informationen geliefert, ich hab auch gefragt was noch benötigt wird. In den Kopf anderer Menschen kann ich nicht sehen, deswegen entschuldige ich mich das ich nicht erahnen konnte was für Infos benötigt werden.
Wenn man sich die Arbeit macht und ein Modul entwickelt, dann sollte man sich mit solchen Situation auseinandersetzen.
Wie gesagt vom Prof. DR. Sonstwem hab ich keine Hilfe erhalten, nur nutzloses gerede.
Das das Wiki nicht eindeutig ist, dafür kann ich sicherlich nix. :)
Zitat von: Prof. Dr. Peter Henning am 20 Juni 2018, 09:32:26
Vorschlag: Dieses Modul bitte nicht nutzen, das ist für eine andere Zielgruppe geschrieben worden.
pah
Von welcher "Zielgruppe" reden wir denn hier genau?
Jetzt belasst es doch dabei: das Problem ist gelöst.
Das Alarm-Modul ist sicherlich eins der außergewöhnlichsten(aber auch besten !) Module. Da ist es auch schwierig universelle Anleitungen für die individuellen User zu schreiben.
Meine Empfehlung: Die Beispiele aus dem Wiki für die ersten Schritte nutzen, um ein besseres Verständnis der Funktionsweise zu entwickeln. Und nicht versuchen direkt die produktiv gewünschte Definition aufzubauen, sondern mit dem Modul und seinen Parametern zu "spielen".
Und das Wiki lässt sich durch jedermann verbessern ;)
Zitatnutzloses gerede
Nun, damit erübrigt sich jede Art der Hilfe.
pah
Hallo,
erstmal wirklich ein sehr gutes Modul (Danke dafür), klar nicht einfach zu verstehen zum Anfang aber nach ner weile hat man es raus wie es funktioniert.
Zu meiner Frage, ist auch möglich das Wochentags gesteuert einzustellen?
Jetzt hab ich es so, das ich von 18:30 Uhr Abends bis 6:30Uhr Frühs Benachrichtigungen erhalte wenn irgendein Sensor auslöst. So ist aber jeden Tag gleich,
ich bräuchte das es Samstag schon 12:30 scharf schaltet und Sonntags komplett scharf ist bis Montag früh um 6:30 Uhr.
Habe nichts weiter in dem Modul gefunden wie man das realisieren könnte.
Hab es jetzt erstmal über das Weekday Modul laufen, um es so zu schalten wie es soll, wär aber natürlich toll wenn es nur über das Modul laufen würde.
Danke schon mal im vorraus.
gruß
Ronny
Bisher ist keine Wochentagssteuerung vorgesehen. Könnte man sicher einbauen - ich habe aber im Moment andere Baustellen.
Außerdem habe ich so etwas mit dem Modul YAAHM realisiert - damit kann man ganz verschiedene Tagesprofile realisieren. Zu meinem Tagesprofil gehört beispielsweise, dass die zugehörige Helper-Funktion beim Zeitübergang Nacht das Haus komplett sichert.
Damit könnte man also auch ganz komfortabel tagesunterschiedliche Alarmsituationen einstellen.
LG
pah
Danke für die Antwort :),
ich werde mir mal das Yaahm ansehen.
Gruß
Ronny
Gesendet von iPhone mit Tapatalk
Steht auch im Wiki.
LG
pah
Hallo,
Ich beschäftige mich gerade mit dem Alarmanlagen-Modul. Bislang klappt es schon sehr gut.Jetzt hätte ich aber eine Frage zum Aktor.
Ist es möglich einen Aktor, in meinem Fall "Telegram" unterschiedlich für mehrere Alarmgruppen zu definieren?
Ich möchte folgendes Realisieren
- wird Alarmgruppe 0 ausgelöst (alle Fenster) soll sofort eine Nachricht über Telegram verschickt werden
- wird Alarmgruppe 1 ausgelöst (Eingangstür) soll die Nachricht erst nach 1 Minute versendet werden, damit man die Alarmanlage erst deaktiveren kann
Aktiviere ich also als Aktor den TelegramBot ist dieser nur einmal in der Aktorenliste vorhanden. Ich kann diesen dann zwar für alle Alarmgruppen aktivieren, es gilt aber immer die gleiche Nachricht sowie die gleiche Verzögerungszeit.
Gibt es dafür eine Lösung ohne jetzt für jede Alarmgruppe einen eigenen Dummy anlegen zu müssen?
Nein.
LG
pah
Zitat von: Antimaster am 01 August 2018, 11:30:40
Hallo,
Ich beschäftige mich gerade mit dem Alarmanlagen-Modul. Bislang klappt es schon sehr gut.Jetzt hätte ich aber eine Frage zum Aktor.
Ist es möglich einen Aktor, in meinem Fall "Telegram" unterschiedlich für mehrere Alarmgruppen zu definieren?
Ich möchte folgendes Realisieren
- wird Alarmgruppe 0 ausgelöst (alle Fenster) soll sofort eine Nachricht über Telegram verschickt werden
- wird Alarmgruppe 1 ausgelöst (Eingangstür) soll die Nachricht erst nach 1 Minute versendet werden, damit man die Alarmanlage erst deaktiveren kann
Aktiviere ich also als Aktor den TelegramBot ist dieser nur einmal in der Aktorenliste vorhanden. Ich kann diesen dann zwar für alle Alarmgruppen aktivieren, es gilt aber immer die gleiche Nachricht sowie die gleiche Verzögerungszeit.
Gibt es dafür eine Lösung ohne jetzt für jede Alarmgruppe einen eigenen Dummy anlegen zu müssen?
Zitat von: Prof. Dr. Peter Henning am 01 August 2018, 11:42:56
Nein.
LG
pah
Ich bin mir nicht ganz sicher, aber sollte dies nicht mit einem readingsProxy zu machen sein? Somit könnte man Telegram 2 mal in die Liste der Aktoren aufnehmen. Der Rest ist dann Config.
Grüße
Warum readingsProxy, der Ressourcen frisst ? Dummy ist viel einfacher.
LG
pah
Ich habe gerade ein Update des Moduls gebaut (Achtung: Datei alarm.js nicht vergessen !).
Neuerungen:
1.Für jeden Alarmlevel kann man jetzt zusätzlich zur Zeitspanne eine Bedingung angeben. Nur wenn der Wert der Bedingung bei einem Perl-eval() den Wert "1" ergibt, wird der Alarm ausgelöst.
2. Für jeden Alarmlevel gibt es jetzt einen (einstellbaren) automatischen Widerruf. Sorgt unter Anderem dafür, dass sich nicht die Nachbarn mit Mistgabeln und Dreschflegeln vor dem Haus versammeln.
Da es sich hierbei um die Änderung eines sicherheitsrelevanten Systems handelt, bitte erst einmal mit testen (Dateien hängen hier dran), bevor ich das ins Repository spiele.
LG
pah
Edit: Ist eingecheckt.
Hallo.
Obwohl ich eine Zeitspanne von 2 Stunden eingetragen habe, wird mein Actor (dummy) mit dem Set Action Befehl {Alarm_Exec('Alarmanlage',2,'Al2_aus','dummy','off')} jede Minute ausgelöst.
Ich habe seit längerem kein Update durchgeführt, kann aber nicht sagen welche Version ich vorher hatte, nur so viel, das diese Glocke noch nicht vorhanden war.
Woran kann das liegen ?
Zweite Frage:
Klicke ich auf "Set Parameters" sehe ich oben einige Fehlermeldungen: unknown attribute level7xec, wobei es sehr schnell von 1 bis 7 durchläuft.
Ist bei update (weil ich ja sicherlich einige Versionen übersprungen habe) etwas durcheinander geraten ?
Aktuelle Version 5.0
Edit:
Ich habe gesehen, das nun eine "AutoCancel" Möglichkeit besteht.
Da ich aber verschiedene Zustände verwende (bei schönem Wetter darf das Fenster länger auf bleiben als bei niedrigen Temperaturen) habe ich per notify eine temperaturabhängige Rücksetzung des AlarmLevel2 eingebaut. Das hatte auch alles so funktioniert. AutoCancel steht hier auf 0:00 wie vorgegeben und ist denke ich damit abgeschaltet.
Das nur als Info.
Edit2:
Eine Testzeit mit 4 Minuten hat nun doch funktioniert.
Auch 59 minuten funktioniert, gebe ich 01:00:00 ein, wird jede Minute der AlarmLevel2 zurück gesetzt
Die Attribute gibt es schon seit einem Jahr nicht mehr ...
Format für die Zeiten HH:MM
LG
pah
Ok.
Ist das denn ein Problem ? Im eigentlichen Alarm Device sehe ich davon weder was unter "Readings" noch unter "Attributes" und auch nicht in der fhem.cfg
Woher kommt das?
Zeit:
Im Alarm Modul selber steht aber:
Delay
[hh:]mm:ss
Bei einem normalen Actor (dummy der per set...on geschaltet wird) geht das seltsamerweise auch mit 01:00:00 also 1h. Bei dem mit diesem {Alarm_Exec('.... anscheinend nicht.
ZitatIst das denn ein Problem ? Im eigentlichen Alarm Device sehe ich davon weder was unter "Readings" noch unter "Attributes" und auch nicht in der fhem.cfg
Woher kommt das?
Die Attribute "level[0-9]xec" enthielten die gegenwärtige Konfiguration: Welche Level sind scharf, welche nicht ? Diese Konfiguration liegt seit ca. 1einem Jahr in einer separaten Datei "AlarmFILE" (Edit: dieser Satz war unpräzise formuliert)
LG
pah
Ich habe ein Backup zurück gespielt, mit der Alarm Version 4.05
Hier erscheinen keine Fehlermeldungen wenn ich auf "Set Parameters" klicke.
Führe ich ein FHEM update aus, habe ich die aktuelle Version 5.0 und wieder die Meldungen
AlarmLevel 5-7 verwende ich nicht.
Ich kann aber nicht erkennen, ob auch AlarmLevel 0-4 als Fehler angezeigt werden.
Im Log tauchen andere Meldungen auf, wie: "[Alarm 5] Will not be executed due to wrong time spec 0 for level5start" was ja normal ist, da unbenutzt.
Und "[Alarm] Settings |set Test_Alarm on|set Test_Alarm off|00:05 incomplete for alarmActor Test_Alarm", dort ist etwas eingetragen, aber kein AlarmLevel angeklickt.
Die Zeiteinstellung bei "Actors" [hh]:mm:ss funktioniert auch in 4.05 nur mit Minuten.
Das nur als Info, mit Minuten bis 59:00 funktioniert es.
ZitatFühre ich ein FHEM update aus, habe ich die aktuelle Version 5.0 und wieder die Meldungen
excludefromupdate ist die Lösung. Allerdings, wie gesagt: 4.05 ist uralt.
LG
pah
Hallo,
nach langer Zeit habe ich mich heute nochmal mit dem Thema Alarmanlage beschäftigt, und habe versucht mir eine Testanlage mit einem Sensor und einem Aktor einzurichten, allerdings funktioniert sie nicht, und ich habe im Log jede Menge meldungen.
Was hab ich da falsch gemacht?
2018.09.22 20:06:24.328 1: PERL WARNING: Use of uninitialized value $xval in string eq at ./FHEM/95_Alarm.pm line 1389.
2018.09.22 20:06:24.329 3: eval: {Alarm_Html("Alarmanlage")}
2018.09.22 20:06:24.329 1: stacktrace:
2018.09.22 20:06:24.329 1: main::__ANON__ called by ./FHEM/95_Alarm.pm (1389)
2018.09.22 20:06:24.330 1: main::Alarm_Html called by (eval 6929) (1)
2018.09.22 20:06:24.330 1: (eval) called by fhem.pl (1115)
2018.09.22 20:06:24.330 1: main::AnalyzePerlCommand called by ./FHEM/98_weblink.pm (99)
2018.09.22 20:06:24.330 1: main::weblink_FwFn called by ./FHEM/01_FHEMWEB.pm (1927)
2018.09.22 20:06:24.331 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (1081)
2018.09.22 20:06:24.331 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (533)
2018.09.22 20:06:24.331 1: main::FW_Read called by fhem.pl (3597)
2018.09.22 20:06:24.331 1: main::CallFn called by fhem.pl (726)
2018.09.22 20:06:24.347 1: [Alarm] Settings |||0:00 incomplete for alarmActor Alexa_aussen
2018.09.22 20:06:24.350 1: [Alarm] Settings |||0:00 incomplete for alarmActor Flur_EG
2018.09.22 20:06:24.351 1: [Alarm] Settings |||0:00 incomplete for alarmActor FritzDect_Wohnzimmerschrank
2018.09.22 20:06:24.352 1: [Alarm] Settings |||0:00 incomplete for alarmActor Funkschalter_Keller_Licht
2018.09.22 20:06:24.354 1: [Alarm] Settings |||0:00 incomplete for alarmActor Keller
2018.09.22 20:06:24.356 1: [Alarm] Settings |||0:00 incomplete for alarmActor Kinderzimmer_Mila
2018.09.22 20:06:24.357 1: [Alarm] Settings |||0:00 incomplete for alarmActor LED_Leiste_Bett
2018.09.22 20:06:24.357 1: [Alarm] Settings |||0:00 incomplete for alarmActor Licht
2018.09.22 20:06:24.359 1: [Alarm] Settings |||0:00 incomplete for alarmActor Rauchmelder_Kinderzimmer_Laya
2018.09.22 20:06:24.360 1: [Alarm] Settings |||0:00 incomplete for alarmActor Steckdose_Buero_Schrank_Licht
2018.09.22 20:06:24.361 1: [Alarm] Settings |||0:00 incomplete for alarmActor Steckdose_Stehlampe_Schlafzimmer
Internals:
NAME Alarmanlage
NR 354
STATE O------- 0
TYPE Alarm
VERSION 5.0
DATA:
savedate 2018-09-22 19:54:59
armstate:
level0 armed
Helper:
DBLOG:
level0:
myDbLog:
TIME 1537638899.04824
VALUE armed
savedate:
myDbLog:
TIME 1537638899.11859
VALUE 2018-09-22 19:54:59
state:
myDbLog:
TIME 1537640179.0304
VALUE O------- 0
READINGS:
2018-09-22 19:54:58 level0 armed
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
2018-09-22 20:03:01 lockstate unlocked
2018-09-22 19:54:59 savedate 2018-09-22 19:54:59
2017-11-04 21:58:36 short 0
2018-09-22 20:16:19 state O------- 0
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 05:30
level0msg Einbruch
level0offact set Android_Tablett_Wohnzimmer ttsMsg Alarm wurde zurückgesetzt;
level0onact set Android_Tablett_Wohnzimmer ttsMsg Alarm wurde ausgelöst;
level0start 20:05
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 --
level6start 0:00
level7autocan 0:00
level7cond 1
level7end 23:59
level7msg --
level7start 0:00
room AlarmRoom
statedisplay simple
HM - ich zähle 11, nicht 1 Aktor. Und bei den meisten sind eben die Settings nicht komplett. Also entweder die Settings in der Oberfläche des Alarmmoduls komplettieren, oder das Attribut "alarmDevice" löschen.
LG
pah
Nach einem Update bekomme ich folgende Meldungen:
Messages collected while initializing FHEM:
configfile: AAA: unknown attribute level0xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level1xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level2xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level3xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level4xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level5xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level6xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level7xec. Type 'attr AAA ?' for a detailed list.
Autosave deactivated
Wie schon oben gesagt: Diese Attribute gibt es seit langer Zeit nicht mehr. Wohl ewig kein Update gemacht ;D
LG
pah
Ich mache jede Woche ein Update, nachdem ich zuvor eine Sicherung gemacht habe.
Habe gerade noch ein paar interessante Readings in AAA gefunden, die im Dezember 2017 zum letzten Mal aktualisiert wurden... ???
level3)
level3)')}
level3)}}
Hast Du eine Idee, wie ich die gelöscht bekomme?
Danke.
An diesem Teil der Moduls wurde aber seit Monaten nichts geändert.
LG
pah
Die Attribute konnte ich löschen, die Readings nicht....
Die (unschädlichen) Fehlermeldungen beim Start sollten wegfallen, wenn man /opt/fhem/www/pgm2/alarm.js durch die anliegende Datei ersetzt.
LG
pah
Die Meldungen waren nach dem Löschen der Attribute und einem Neustart weg.
Jetzt müsste ich nur noch die Reading-Leichen weg bekommen...
::) ::) => deletereading
pah
Wenn's so einfach wäre.... ;)
Bad regexp level3): Unmatched ) in regex; marked by <-- HERE in m/level3) <-- HERE / at fhem.pl line 2263
Mit deletereading AAA level3* habe ich mir level und level3 gelöscht... ;D
Zitat von: Prof. Dr. Peter Henning am 23 September 2018, 04:46:33
HM - ich zähle 11, nicht 1 Aktor. Und bei den meisten sind eben die Settings nicht komplett. Also entweder die Settings in der Oberfläche des Alarmmoduls komplettieren, oder das Attribut "alarmDevice" löschen.
LG
pah
Das heißt jedes Device welches das Attribut "alarmDevice" hat, muss auch zwangsläufig in der Alarmanlage dann konfiguriert werden? Wieso wenn ich fragen darf`? Beispiel, ich habe ein neues Device, was ich irgendwann mal mit in die Alarmanlage einbauen möchte, aber aktuell wieso auch immer erstmal nur in Fhem nutzen möchte, dann geb ich diesem doch bei der einrichtung in Fhem schon das Attribut mit bei der erst Konfiguration, damit ich es nicht später machen muss......
Ja, dadurch das du dem Modul mitteilst, dass es sich um ein AlarmDevice handelt, erwartet es eine Konfiguration.
Für Geräte die Du nicht direkt nutzen möchtest das AlarmDevice nicht setzten.
Macht auch irgendwie Sinn. ( persönliche Meinung )
Zitat von: Beetle2003 am 24 September 2018, 07:07:34
Ja, dadurch das du dem Modul mitteilst, dass es sich um ein AlarmDevice handelt, erwartet es eine Konfiguration.
Für Geräte die Du nicht direkt nutzen möchtest das AlarmDevice nicht setzten.
Macht auch irgendwie Sinn. ( persönliche Meinung )
Hi, danke für deine Aufklärung, allerdings teile ich deine Meinung dazu nicht :-)
Bringt mir aber auch nichts, ist ja nun mal dann im Modul so vorgesehen und ich muss damit leben.....
Ich hab die Anlage dann jetzt "umgebaut", im Log habe ich aber trotzdem diese Meldungen:
2018.09.24 19:34:49.804 1: PERL WARNING: Use of uninitialized value $xval in string eq at ./FHEM/95_Alarm.pm line 1389.
2018.09.24 19:34:49.804 3: eval: {Alarm_Html("Alarmanlage")}
2018.09.24 19:34:49.805 1: stacktrace:
2018.09.24 19:34:49.805 1: main::__ANON__ called by ./FHEM/95_Alarm.pm (1389)
2018.09.24 19:34:49.805 1: main::Alarm_Html called by (eval 148857) (1)
2018.09.24 19:34:49.805 1: (eval) called by fhem.pl (1115)
2018.09.24 19:34:49.806 1: main::AnalyzePerlCommand called by ./FHEM/98_weblink.pm (99)
2018.09.24 19:34:49.806 1: main::weblink_FwFn called by ./FHEM/01_FHEMWEB.pm (1927)
2018.09.24 19:34:49.806 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (1081)
2018.09.24 19:34:49.806 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (533)
2018.09.24 19:34:49.807 1: main::FW_Read called by fhem.pl (3597)
2018.09.24 19:34:49.807 1: main::CallFn called by fhem.pl (726)
2018.09.24 19:35:18.211 3: [Alarm 0] Created cancel notifier
2018.09.24 19:35:18.783 3: [Alarm 0] Created raise notifier
2018.09.24 19:35:19.621 1: [Alarm 1] No "Cancel" device defined, level will be ignored
2018.09.24 19:35:19.632 1: [Alarm 2] No "Cancel" device defined, level will be ignored
2018.09.24 19:35:19.643 1: [Alarm 3] No "Cancel" device defined, level will be ignored
2018.09.24 19:35:19.654 1: [Alarm 4] No "Cancel" device defined, level will be ignored
2018.09.24 19:35:19.665 1: [Alarm 5] No "Cancel" device defined, level will be ignored
2018.09.24 19:35:19.676 1: [Alarm 6] No "Cancel" device defined, level will be ignored
2018.09.24 19:35:19.687 1: [Alarm 7] No "Cancel" device defined, level will be ignored
Internals:
NAME Alarmanlage
NR 354
STATE O------- 0
TYPE Alarm
VERSION 5.0
DATA:
savedate 2018-09-22 19:54:59
armstate:
level0 armed
Helper:
DBLOG:
level0:
myDbLog:
TIME 1537638899.04824
VALUE armed
savedate:
myDbLog:
TIME 1537638899.11859
VALUE 2018-09-22 19:54:59
state:
myDbLog:
TIME 1537810620.0385
VALUE O------- 0
READINGS:
2018-09-22 19:54:58 level0 armed
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
2018-09-22 20:03:01 lockstate unlocked
2018-09-22 19:54:59 savedate 2018-09-22 19:54:59
2017-11-04 21:58:36 short 0
2018-09-24 19:37:00 state O------- 0
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 05:30
level0msg Einbruch
level0offact set Android_Tablett_Wohnzimmer ttsMsg Alarm wurde zurückgesetzt;
level0onact set Android_Tablett_Wohnzimmer ttsMsg Alarm wurde ausgelöst;
level0start 20:05
level1autocan 0:00
level1cond 1
level1end 23:59
level1msg --
level1offact
level1onact ;;;;;;;;;;;
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 --
level6start 0:00
level7autocan 0:00
level7cond 1
level7end 23:59
level7msg --
level7start 0:00
room AlarmRoom
statedisplay simple
ZitatHi, danke für deine Aufklärung, allerdings teile ich deine Meinung dazu nicht
Aber ich, und damit ist das Thema abgehakt.
Und die "Meldungen" kommen eben daher, dass es sich um eine unvollständige Konfiguration handelt.
LG
pah
N'Abend Peter,
nachdem ich heute Abend ein paar neue Rauchmelder installiert und als Sensoren definiert habe, kamen beim Parameter setzen wieder die Fehlermeldungen mit den unknown attribute level1xec. Type 'attr AAA ?' for a detailed list..... und danach stand das im Log:
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor kf_Rauchmelder_2
2018.09.24 21:02:48 1: PERL WARNING: Use of uninitialized value in index at ./FHEM/95_Alarm.pm line 1414.
2018.09.24 21:02:48 3: eval: {Alarm_Html("AAA")}
2018.09.24 21:02:48 1: PERL WARNING: Use of uninitialized value $aval[1] in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1417.
2018.09.24 21:02:48 3: eval: {Alarm_Html("AAA")}
2018.09.24 21:02:48 1: PERL WARNING: Use of uninitialized value $aval[2] in concatenation (.) or string at ./FHEM/95_Alarm.pm line 1418.
2018.09.24 21:02:48 3: eval: {Alarm_Html("AAA")}
2018.09.24 21:02:48 1: PERL WARNING: Use of uninitialized value $aval[3] in string eq at ./FHEM/95_Alarm.pm line 1419.
2018.09.24 21:02:48 3: eval: {Alarm_Html("AAA")}
2018.09.24 21:02:48 1: PERL WARNING: Use of uninitialized value $aval[3] in string eq at ./FHEM/95_Alarm.pm line 1421.
2018.09.24 21:02:48 3: eval: {Alarm_Html("AAA")}
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor kl_Rauchmelder
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor sz_Rauchmelder
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor kf_Rauchmelder_2
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor kl_Rauchmelder
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor sz_Rauchmelder
2018.09.24 21:02:49 1: [Alarm] Settings incomplete for alarmSensor kf_Rauchmelder_2
2018.09.24 21:02:49 1: [Alarm] Settings incomplete for alarmSensor kl_Rauchmelder
2018.09.24 21:02:49 1: [Alarm] Settings incomplete for alarmSensor sz_Rauchmelder
2018.09.24 21:07:51 1: [Alarm] State locked, cannot create new notifiers
Deine Hilfe ist herzlich willkommen.
Vielen Dank.
Meine Hilfe ist willkommen. Wobei denn, beim Lesen ? Hier steht doch alles drin:
Zitat[Alarm] Settings incomplete for alarmSensor kl_Rauchmelder
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor sz_Rauchmelder
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor kf_Rauchmelder_2
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor kl_Rauchmelder
2018.09.24 21:02:48 1: [Alarm] Settings incomplete for alarmSensor sz_Rauchmelder
2018.09.24 21:02:49 1: [Alarm] Settings incomplete for alarmSensor kf_Rauchmelder_2
2018.09.24 21:02:49 1: [Alarm] Settings incomplete for alarmSensor kl_Rauchmelder
2018.09.24 21:02:49 1: [Alarm] Settings incomplete for alarmSensor sz_Rauchmelder
2018.09.24 21:07:51 1: [Alarm] State locked, cannot create new notifiers
LG
pah
Ich kann nicht mehr als die Felder ausfüllen. Das mache ich jetzt bei ca. 40 Geräten seit 10 Monaten ohne Probleme.
Und jetzt willst Du mir sagen, dass ich das nicht mehr richtig kann?
Außerdem ist das Modul im Zustand "locked"
ZitatState locked, cannot create new notifiers
LG
pah
Wer macht denn sowas?
Ich probier's mal mit unlock.
Wenn ich das Attribut lockstate auf unlocked setze, kommen dieselben Fehlermeldungen.
Das Reading lockstate steht auf 0.
Ich wundere mich über die alten Attribute level1xec bis level7xec. Die haben die letzten Monate keine Rolle gespielt und sind erst mit dem Update wieder aufgetaucht.
Sicher, dass alarm.js aktuell ist ?
LG
pah
Wo bekomme ich die aktuelle Version her?
Gruß
Meine alarm.js ist vom 23.09.18 11:09 Uhr.
Das könnte der Zeitpunkt meines Updates sein.
Zitat von: Prof. Dr. Peter Henning am 23 September 2018, 12:15:48
Die (unschädlichen) Fehlermeldungen beim Start sollten wegfallen, wenn man /opt/fhem/www/pgm2/alarm.js durch die anliegende Datei ersetzt.
LG
pah
Zitat von: Mave am 25 September 2018, 09:25:20
Meine alarm.js ist vom 23.09.18 11:09 Uhr.
Das könnte der Zeitpunkt meines Updates sein.
Laut deiner Aussage, ist die in dem Post aktueller!
Ja, jetzt hab ich's kapiert.
Mit der alarm.js aus dem Post sind die Fehlermeldungen weg.
Das lockstate Problem besteht nachwievor.
Das waren keine Fehlermeldungen, sondern Warnungen. Ist ein Unterschied.
Lockstate-Problem: Glaub ich eigentlich nicht. Einfach mal auf locked setzen, und wieder zurück.
LG
pah
Hat leider nichts gebracht. Meldung kommt trotzdem.
Auf was muss denn das Reading lockstate stehen? Ist 0 richtig?
unlocked
Internals:
NAME AlarmAnlage
NR 104
STATE --------
TYPE Alarm
VERSION 5.0
DATA:
savedate 2018-09-24 12:36:44
armstate:
level0 disarmed
level1 disarmed
level2 disarmed
level3 disarmed
READINGS:
2017-05-26 20:42:36 level 0
2018-09-24 17:52:05 level0 disarmed
2018-09-24 17:52:05 level1 disarmed
2018-09-24 17:52:05 level2 disarmed
2018-09-24 17:52:05 level3 disarmed
2018-01-21 20:16:17 level4 disarmed
2018-01-21 20:16:17 level5 disarmed
2018-01-21 20:16:17 level6 disarmed
2018-01-21 20:16:17 level7 disarmed
2018-09-25 20:24:38 lockstate unlocked
2018-09-24 17:51:43 savedate 2018-09-24 12:36:44
2018-07-07 13:24:32 short
2018-09-24 19:05:54 state --------
locked
Internals:
NAME AlarmAnlage
NR 104
STATE --------
TYPE Alarm
VERSION 5.0
DATA:
savedate 2018-09-24 12:36:44
armstate:
level0 disarmed
level1 disarmed
level2 disarmed
level3 disarmed
READINGS:
2017-05-26 20:42:36 level 0
2018-09-24 17:52:05 level0 disarmed
2018-09-24 17:52:05 level1 disarmed
2018-09-24 17:52:05 level2 disarmed
2018-09-24 17:52:05 level3 disarmed
2018-01-21 20:16:17 level4 disarmed
2018-01-21 20:16:17 level5 disarmed
2018-01-21 20:16:17 level6 disarmed
2018-01-21 20:16:17 level7 disarmed
2018-09-25 20:25:49 lockstate locked
2018-09-24 17:51:43 savedate 2018-09-24 12:36:44
2018-07-07 13:24:32 short
2018-09-24 19:05:54 state --------
Grüße
Zitat von: Prof. Dr. Peter Henning am 24 September 2018, 20:26:52
Aber ich, und damit ist das Thema abgehakt.
Hatte nichts anderes dazu gesagt, nur eine andere Meinung!
Zitat
Und die "Meldungen" kommen eben daher, dass es sich um eine unvollständige Konfiguration handelt.
LG
pah
Wäre dir sehr verbunden, wenn du mir etwas genauer meinen Fehler erläutern könntest, ich hab doch die definierten Devices eingebunden, und nur einen Alarmlevel konfiguriert........
Vielen Dank @Esjay
Bei mir ist lockstate 0
Internals:
NAME AAA
NR 146
STATE --OO---O widerrufen durch: web
TYPE Alarm
VERSION 5.0
DATA:
savedate 2018-09-25 08:31:40
armstate:
level0 disarmed
level1 disarmed
level2 armed
level3 armed
level4 disarmed
level5 disarmed
level6 disarmed
level7 armed
READINGS:
2018-09-23 12:09:03 level 0
2018-09-25 12:28:01 level0 disarmed
2018-09-25 12:28:01 level1 disarmed
2018-09-25 12:28:01 level2 armed
2018-09-25 19:47:54 level3 armed
2018-09-25 12:28:01 level4 disarmed
2018-09-25 12:28:01 level5 disarmed
2018-09-25 12:28:01 level6 disarmed
2018-09-25 12:28:01 level7 armed
2018-09-23 12:09:51 lockstate 0
2018-09-25 12:27:34 savedate 2018-09-25 08:31:40
2018-09-25 19:47:54 short
2018-09-25 19:47:54 state --OO---O widerrufen durch: web
@Tommy82: Ich sehe keine Meldung, die mich beunruhigt.
Die Warnung wegen des nicht initialisierten $xval fange ich im nächsten Release noch ab - das ist eine Lücke, die entsteht, wenn nur ein Alarmlevel definiert wird. Die anderen Meldungen sind ganz korrekt: Alarmlevel werden ignoriert, wenn es kein Device für das Widerrufen gibt.
LG
pah
OK, super, das wollte ich hören:-)
Dann guck ich mal ob es jetzt so funktioniert wie ich es mir vorstelle.
Danke für die Unterstützung und das Modul!
Nachdem ich lockstate mit setreading auf unlocked gesetzt habe, scheint es zu funktionieren.
So ganz rund lief das Update offensichtlich nicht.
ZitatSo ganz rund lief das Update offensichtlich nicht.
>:(
Das ist Mäkelei, denn bei rund 300 anderen Nutzern ging es offenbar problemlos.
pah
Vielleicht habe ich die Antwort auf meine Frage auf den mittlerweile beachtlichen knapp 80 Seiten überlesen - ich verfolge das ganze nur recht sporadisch, da das Modul bei mir sein Jahren mittlerweile ohne Probleme läuft (nutze allerdings bisher immer noch ausschließlich einen Alarm-Level). Dennoch drängt sich mir hin und wieder die Frage auf:
Kann das Modul mit allen seinen automatisch angelegten Verknüpfungen auch entfernt werden oder ist dafür ein manuelles Eingreifen unvermeidlich?
Um keine Missverständnisse zu verursachen: Ich will nicht auf das Modul verzichten. Lediglich habe ich zeitweise an anderen Stellen Probleme und bin dabei, meine Hauptinstallation auf mehrere Installationen zu verteilen. Und da würde ich beispielsweise das Alarm-Modul auch auf eine andere Instanz verlagern.
Ein restloses Entfernen ist möglich.
1.Löschen des Device sollte den Weblink löschen, also den Eintrag im FHEM-Menü.
2.Notify müssen manuell gelöscht werden, die haben die Bezeichnung "alarm<level>.(on|off|arm|disarm).N" und stehen alle in dem <alarmpublicroom>
3.Die UserAttr bei den einzelnen Devices müssen ebenfalls manuell gelöscht werden - ich wollte nicht automatisch in fremden Devices herumlöschen.
4.Bei der Übertragung auf eine andere FHEM-Installation sollte man AlarmFILE nicht vergessen.
LG
pah
Besten Dank. Klingt alles machbar.
Hi,
hab nochmal eine Frage zur Bedienung
Ich habe die Anlage jetzt wie auf dem Bild zu sehen Konfiguriert, demnach wäre doch wenn ich es richtig verstehe die Alarmanlage immer zwischen 21:18 und 5:30 Uhr aktiv oder sehe ich das falsch?
Jetzt hatte ich eigentlich gedacht aufgrund der "Kopf" konfig, das immer 5 Minuten vor der Aktivierung in dem Fall um 21:13 die Ansage kommt Alarmanlage wird in 5 Minuten scharf geschaltet
und dann 5 Minuten später Alarmanlage ist scharf geschaltet
, allerdings ist das nicht der Fall.
Die Ansage kommt nur wenn ich den Haken bei "Schärfen" entferne/setze.
Ist mein gedanke falsch das immer 5 Min vorm Scharfschalten die Ansage kommt?
Danke
Zitat von: Tommy82 am 27 September 2018, 19:53:07
Ist mein gedanke falsch das immer 5 Min vorm Scharfschalten die Ansage kommt?
Ja, die Aktionen werden nur beim Schärfen/Unschärfen ausgeführt - z.Bsp. Haken klicken. Der konfigurierte Zeitrahmen triggert das nicht.
Peter
Hallo Peter!
Ich möchte mich ganz herzlich für dieses tolle Modul bedanken. Ich hab bisher ein selbstgeschriebenes Alarm-Script verwendet und das ... naja, hatte doch manchmal seine Macken.
Nach einigem Experimentieren mit Dummydevices erkennt man schnell die Funktionen und das Modul funktioniert nun auch "in Produktion" stabil und zuverlässig!
Durch die große Anzahl an Alarm-Levels bin ich sofort reingekippt und habe diese auch ausgenützt - einen Level für Sabotagemeldungen, Dead Devices steigen sprunghaft an, der Zutrittsbereich ist ein eigener Level (Verzögerung für den Bereich zur Deaktivierung der Alarmanlage über Taster und RFID Reader) sowie alle anderen Melder im Haus die ohne Verzögerung anschlagen, ...
Dann noch Wasser und Rauchmelder, Batteriestatus kann man ja auch gleich abdecken ...
Daraus ergibt sich für mich folgendes Problem: Für alle Levels gibt es nur einmalig die Actions für Arming, Disarming und Cancelling und diese werden auch für jeden aktivierten Level ausgeführt.
Daraus ergibt sich:
Bei der Scharfschaltung der Alarmanlage werden in meinem Fall auf einmal vier Levels aktiviert, z.B. Arm soll die externe Sirene kurz anschlagen lassen --> alle Actions werden vier mal ausgeführt, sie Sirene schlägt vier mal an.
Arming/Disarming von Levels, die eigentlich nicht mit der Alarmanlage zu tun haben (Batteriestatus, Wasser/Rauchmelder) lösen ebenfalls die Actions aus.
Bevor ich jetzt beginne mir hier etwas eigenes außerhalb vom Modul über die Readings zu überlegen, wollt ich fragen, ob Du vielleicht Pläne in der Richtung hast? Ev. eine Checkbox pro Level (Deactivate Actions)?
Nochmal vielen Dank für die großartige Arbeit!
Liebe Grüße,
Kurt
Hm.
Bei mir läuft das so, dass eigentlich nur ein Level (nämlich die wirklich Einbruchsmeldeanlage...) mal scharf, mal unscharf ist. Alle anderen sind immer scharf und werden nur über Zeiten und die (neuere) boolesche Bedingung in der Aktivität gesteuert.
Es stimmt, dass dies ein wenig inkonsequent ist. Ich mach mir mal Gedanken darüber.
LG
pah
Hi,
hat hier vielleicht einer eine idee was ich falsch gemacht habe bei meinem Versuch meine Alarmanlage auch in die FTUI zu integrieren!?
https://forum.fhem.de/index.php/topic,91512.msg841560.html#msg841560
Danke
Siehe meinen Post dort.
LG
pah
Gelösst. nach einem Neustart ist die Meldung weg. Komisch...
Zitat von: Mave am 23 September 2018, 11:34:12
Nach einem Update bekomme ich folgende Meldungen:
Messages collected while initializing FHEM:
configfile: AAA: unknown attribute level0xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level1xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level2xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level3xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level4xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level5xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level6xec. Type 'attr AAA ?' for a detailed list.
AAA: unknown attribute level7xec. Type 'attr AAA ?' for a detailed list.
Autosave deactivated
Hallo,
habe das selbe Problem nach dem fhem Update wie Mave:
Messages collected while initializing FHEM:
configfile: HausMeldung: unknown attribute level0xec. Type 'attr HausMeldung ?' for a detailed list.
HausMeldung: unknown attribute level1xec. Type 'attr HausMeldung ?' for a detailed list.
HausMeldung: unknown attribute level2xec. Type 'attr HausMeldung ?' for a detailed list.
HausMeldung: unknown attribute level3xec. Type 'attr HausMeldung ?' for a detailed list.
HausMeldung: unknown attribute level4xec. Type 'attr HausMeldung ?' for a detailed list.
HausMeldung: unknown attribute level5xec. Type 'attr HausMeldung ?' for a detailed list.
HausMeldung: unknown attribute level6xec. Type 'attr HausMeldung ?' for a detailed list.
HausMeldung: unknown attribute level7xec. Type 'attr HausMeldung ?' for a detailed list.
HausMeldung: unknown attribute ?, choose one of alias comment eventMap group room suppressReading userReadings verbose lockstate testbutton statedisplay noicons iconmap disarmcolor armwaitcolor armcolor alarmcolor armdelay armwait armact disarmact cancelact level0cond level0start level0end level0autocan level0msg level0onact level0offact level1cond level1start level1end level1autocan level1msg level1onact level1offact level2cond level2start level2end level2autocan level2msg level2onact level2offact level3cond level3start level3end level3autocan level3msg level3onact level3offact level4cond level4start level4end level4autocan level4msg level4onact level4offact level5cond level5start level5end level5autocan level5msg level5onact level5offact level6cond level6start level6end level6autocan level6msg level6onact level6offact level7cond level7start level7end level7autocan level7msg level7onact level7offact alarmDevice alarmSettings alexaName alexaRoom cmdIcon devStateIcon devStateStyle fm_type fp_EG fp_EGsmall genericDeviceType homebridgeMapping icon sortby webCmd webCmdLabel widgetOverride userattr
Allerdings finde ich nirgends die genannten Attribute, auch eine Suche über die fhem.cfg bringt keinen Treffer. Hat jemand eine Idee, woher das kommt und was ich tun kann um die Meldung abzustellen? Danke
Hallo,
hast du den lockstate auf unlocked gestellt und anschließend set paraetets durchgeführt
Save config. Und Neustart hat bei mir geholfen
Hallo,
eine Frage beschäftigt mich noch
Ich habe für die Haustür eine Verzögerung eingebaut
Diese funktioniert nicht habe es per doif programmiert
Hat jemand eine Lösung für mich. Ist sicherlich nur ein Gedankenfehler
Danke
Zitat von: Beetle2003 am 15 Oktober 2018, 16:13:33
Hallo,
hast du den lockstate auf unlocked gestellt und anschließend set paraetets durchgeführt
Save config. Und Neustart hat bei mir geholfen
danke, bei mir reichte ein Neustart, unlocked war schon aktiv...
Hello,
Today I moved my FHEM configuration to a new Raspberry. I did his by installing first a new FHEM installation and then copy fhem.cfg, several .gplot and 99_myutils. For most part this did the trick but I still have one issue, when I click on the 'Alarm System' menu option it opens an empty room (AlarmRoom). The alarms itself work properly but the gui that normally shows when clicking on this menu option doesn't show.
Did I forget to copy something from my old environment?
Thanks,
Alex
Hi Alex,
I fixed the same behaviour with going back to an older 01_FHEMWEB.pm.
To get a better understanding what caused that behaviour I checked the changes made to 01_FHEMWEB.pm since the last update.
code at line 1824 was changed from return 0 if(!$FW_room);
to return 0 if(!$FW_room ||
($FW_hiddenroom{$FW_room} &&
AttrVal($FW_wname, "defaultRoom", "") ne $FW_room)); #92433
Since I did not found an alternative way short time I restored the old version.
Maybe someone can give us a hint to solve it within the frontend.
The change was based on this request: https://forum.fhem.de/index.php/topic,92433.0.html
Hopefully that helps for now.
Greets Newbee
Hi Newbee,
Thanks, made the change in 01_FHEMWEB.pm and it works again.
I assume this module will be overwritten with the next update but at least I know how to fix it temporarily.
Alex
I'll look at this a.s.a.p.
Regards
pah
Achtung:
Der Fehler wird derzeit beim Update eingebaut. Wenn er auftritt, bitte auf die alte Version von 01_FHEMWEB zurückgehen.
Problem ist in Arbeit.
LG
pah
Tut wieder....nach Update auf neueste 01_FHEMWEB Version.
Rudi König hat die Änderung wieder rückgängig gemacht, das Problem ist für den Moment behoben. Er möchte sie aber doch wieder einführen. Bitte deshalb hier an der
Abstimmung beteiliigen:
https://forum.fhem.de/index.php/topic,92615.0.html
LG
pah
Edit: Ist erledigt, eine andere Lösung wurde gefunden.
Hallo zusammen,
meine Alarmanlage läuft schon eine Weile, jetzt mußte ich wieder mal ran.
Bei der Konfiguration der Alarmlevel habe ich jetzt eine Spalte "Condition" entdeckt. Was kann man denn damit machen bzw. was steuert dann diese Bedingung und welche Werte/Ausdrücke sind gültig (0,1,true,false...)?
Ich weiß nicht wie neu die ist, im Wiki/commandref habe ich zu Condition nix gefunden. Ich habe Version 5.0 (95_Alarm.pm rev. 17344 vom 2018-09-14 14:05:23)
Danke und Gruß
Roland
Siehe Post #1127...
Mal schnell geantwortet mit Tapatalk
Zitat von: arne.dien am 06 November 2018, 21:46:52
Siehe Post #1127...
Falls sich der Tip auf meine Frage (#1185) bezieht: Dort steht nix von "Condition"... Die Suche nach "condition" im thread bringt 4 Treffer inkl. meiner Frage. Die Fundstellen zeigen nur auf user-linstings.
Gruß Roland
Das neue Modul AutoShuttersControl kann nun
https://forum.fhem.de/index.php/topic,92628.0.html
Zitat
d.) Kann man (für Abschreckungszwecke bei der Alarmierung) einen Rollladen (oder alle Rollläden) mal um 5% bewegen, und nach 1 Minute wieder zurück?
War ein persönlicher Wunsch von pah :)
Zitat von: hauwech am 07 November 2018, 13:00:19
Falls sich der Tip auf meine Frage (#1185) bezieht: Dort steht nix von "Condition"... Die Suche nach "condition" im thread bringt 4 Treffer inkl. meiner Frage. Die Fundstellen zeigen nur auf user-linstings.
Gruß Roland
OK,
es war ein anderer Post:
Zitat von: Prof. Dr. Peter Henning am 06 September 2018, 17:47:11
Ich habe gerade ein Update des Moduls gebaut (Achtung: Datei alarm.js nicht vergessen !).
Neuerungen:
1.Für jeden Alarmlevel kann man jetzt zusätzlich zur Zeitspanne eine Bedingung angeben. Nur wenn der Wert der Bedingung bei einem Perl-eval() den Wert "1" ergibt, wird der Alarm ausgelöst.
2. Für jeden Alarmlevel gibt es jetzt einen (einstellbaren) automatischen Widerruf. Sorgt unter Anderem dafür, dass sich nicht die Nachbarn mit Mistgabeln und Dreschflegeln vor dem Haus versammeln.
Da es sich hierbei um die Änderung eines sicherheitsrelevanten Systems handelt, bitte erst einmal mit testen (Dateien hängen hier dran), bevor ich das ins Repository spiele.
LG
pah
Edit: Ist eingecheckt.
Dort heißt es halt nicht "condition" sondern "Bedingung"...
ZitatDort heißt es halt nicht "condition" sondern "Bedingung"...
Na, dann würde ich doch mal das globale Attribut language setzen.
Im Übrigen ist die Bedingung eine Frage der Benutzung des Moduls, in der CommandRef steht eindeutig der Hinweis auf das
Zitatdeutsche
Wiki.
LG
pah
Hallo!
Kann man als AutoCancel Zeit des AlarmLevels auch Zeiten kleiner eine Minute angeben?
LG
Rainer
Aber natürlich, indem man Sekunden mit angibt. Also 0:00:10 => 10 Sekunden
LG
pah
Zitat von: Prof. Dr. Peter Henning am 09 November 2018, 19:26:47
Aber natürlich, indem man Sekunden mit angibt. Also 0:00:10 => 10 Sekunden
LG
pah
Danke für die Auskunft!
LG
Rainer
Hallo in die Runde.
Vielen Dank für das klasse Modul und die guten Anleitungen im Wiki.
Ich habe eine Frage, zu der ich auf den 80 Seiten hier im Forum zum Modul keine Antwort finden konnte.
Wenn ich einen Homematic Funktaster zum Ein- und Ausschalten der Alarmanlage verwenden möchte, klappt das soweit wunderbar. Beide Kanäle sind als Sensoren angelegt. Kanal 1 = scharf schalten, Kanal 2 = entschärfen.
Meine Überlegung war nun, den Schalter Kanal 2 bei kurzem und bei langem Betätigen für die Steuerung der Alarmanalge zu nutzen. Kurzes Drücken: "entschärfen", langes Drücken "widerrufen" des Alarms.
Gibt es eine Möglichkeit den Taster doppelt als Sensor in der Alarmanlage anzulegen? Oder müsste ich das irgendwie in das Feld "Notify on RegExp" einpflegen?
Vielen Dank im Voraus
Ralf
Schau dir readingsProxy an. Damit sollte dein Vorhaben möglich sein. Ich bin aber auch der Meinung, dass ein paar Seiten zurück eine ähnliche Anfrage gestellt wurde, ich ebenfalls auf den readingsProxy verwiesen habe, und pah noch eine Alternative aufgezeigt hat.
Grüße
Hallo Ralf!
Genau, du brauchst in der "AlarmSystem" Seite eine Zeile, wo du in der Spalte "Notify by RegExp" deine Bedingung eintragen kannst.
Eine Zeile entsteht für jedes Device, das im Attribut alarmDevice "Sensor" stehen hat.
Der einfachste Weg dort hin wäre ein Device vom Type "dummy", mit beliebigen, aber aussagekräftigem Namen mit dem genennten Attribut anzulegen!
Die einzige Funktion dieses Dummy ist es einen Platz bereitzustellen in dem das Alarm Modul seine Konfiguration (Attribut alarmSettings) ablegen kann.
Fertig!
Und ja, die Bedingung in der Spalte "Notify by RegExp" muß nichts mit dem Device, das die Zeile gereriert zu tun haben!
LG
Rainer
Hallo Rainer,
vielen Dank für die verständliche Antwort.
ZitatUnd ja, die Bedingung in der Spalte "Notify by RegExp" muß nichts mit dem Device, das die Zeile gereriert zu tun haben!
Manchmal sitzt man als "Hobby-Bastler" davor und sieht vor lauter Wald die Bäume nicht. Einfache und praktikable Lösung mit dem Dummy. Mit etwas mehr Routine wäre ich da vielleicht auch selbst drauf gekommen.
Mein Frau kann jetzt über das Funkdisplay die Alarmanlage an und ausschalten aus dem Bett... Family happy ;-)
Danke für die Tipps
Ralf
Und wenn man seine Systemsprache auf Deutsch gesetzt hat, steht dort auch "Auslösung durch RegExp"...
LG
pah
Hallo Zusammen,
ich habe da noch ein paar Fragen zu dem Modul.
Laut der WIKI Dokumentantion gibt es folgende Variablen:
$NAME vird durch den Namen des auslösenden Devices ersetzt
$EVENT wird durch den kompletten Event ersetzt
$EVTPART1... wird durch den 1. Teilstring des Events gefüllt, etc.
$SHORT wird durch die vollständige Kurznachricht der Alarmauslösung ersetzt.
Jedoch scheint es so zumindest für die Inhalt der Variable $EVTPART1 so zu sein, dass der Inhalt nicht dem "Message Part 1" entspricht!
Der Inhalt von $EVTPART1 scheint "ON" zu sein.
Gibt es noch neine genauere Dokumentationen zu allen Variablen und deren Inhalte?
Können diese Variablen und die Inhalte im Betrieb angezeigt werden?
Dazu habe ich noch folgendes Problem:
Mit dem Modul "SIP" und einer Fritzbox möchte ich über das alarm Modul mehrere Telefonanrufe tätigen (falls ein Empfänger nicht abhebt)
soll der nächste in der Liste. angerufen werden.
Folgendes als ACTOR definiert funktioniert jedoch nur als Anruf zu einer Telefonnummer: (hier im Beispiel mit zwei internen Nummern **610 und **1)
{fhem ('set FB7490SIP call **610 40 !Hallo hier ist die Alarmanlage $SHORT *-1')
Was nicht im Alarm Modul geht ist, mehrere hintereinander anrufen:
{fhem ('set FB7490SIP call **610 40 !Hallo hier ist die Alarmanlage $SHORT *-1');{fhem ('set FB7490SIP call **1 40 !Hallo Hier ist die Alarmanlage $SHORT *-1')}
oder das:
{fhem ('set FB7490SIP call **610 40 !Hallo Hier ist die Alarmanlage $SHORT *-1; set FB7490SIP call **1 40 !Hallo Hier ist die Alarmanlage $SHORT *-1')}
{fhem ("set FB7490SIP call **610 40 !Hallo Hier ist die Alarmanlage $SHORT *-1; set FB7490SIP call **1 40 !Hallo Hier ist die Alarmanlage $SHORT *-1")}
funktionieren nicht bzw. es wird nur die letzte Nummer **1 angegrufen.
Mit einem Dummy und einem Notify habe ich es jedoch hinbekommen, dass beide oder mehrere Nummern nacheinander angerufen werden.
Da habe ich jedoch das Problem, ich habe die Variablen und deren Inhalte nicht! Es gehen nur statische Texte.
--------------------------------
define Alarm_telD dummy
attr Alarm_telD alarmDevice Actor
attr Alarm_telD setList on off
attr Alarm_telD useSetExtensions 1
attr Alarm_telD webCmd on:off
define nAlarm_tel_an notify Alarm_telD:on.* {fhem ("set FB7490SIP call **610 40 !Hallo Hier ist die Alarmanlage *-1; set FB7490SIP call **1 40 !Hallo Hier ist die Alarmanlage *-1")}
--------------------------------
Kann mir da jemand Bitte weiterhelfen?
Ich würde im ersten Beispiel mal die Klammern zählen.
LG
pah
DANKE
Die eine geschweifte Klammer habe ich übersehen.
funktioniert jetzt.
Jetzt würde mich nur noch die Inhalte der Variablen interressieren.
Bzw. wie kann ich Sie mir ansehen und ggf. in ein dummy übernehmen.
Im WIKI stehen nur die unteren Informationen.
------8><--- snip ----8><---
$NAME wird durch den Namen des auslösenden Devices ersetzt
$EVENT wird durch den kompletten Event ersetzt
$EVTPART1... wird durch den 1. Teilstring des Events gefüllt, etc.
$SHORT wird durch die vollständige Kurznachricht der Alarmauslösung ersetzt
------8><--- snap ----8><---
Das SIP Modul liefert bei den Variablen "$EVENT" und "$EVTPART1" jeweils nur ein "ON" als Sprachausgabe zurück.
Was ich schon festgestellt habe ist, dass dss SIP Modul mit der Sprachausgabe anhält, wenn ein Punkt im Text vorkommt.
Daher interresiert mich der vollständige Inhalt der Variablen.
Bzw. ob es noch weitere Variablen gibt, die ich ggf. benutzen kann.
DANKE
geordi11
Hallo zusammen,
ich erhalte die Fehlermeldung
alarm.js line 102:
Das Objekt unterstützt die Eigenschaft oder Methode "getElementsByClassName" nicht
Weiß aber nicht genau wie ich diese abstellen kann - habe nichts dazu gefunden
Kann mir hier jemand helfen???
Vielen Dank
DJ-Mix
Welche Version von alarm.js ?
LG
pah
Hallo,
anbei das List
Internals:
NAME AAA
NR 288
STATE --O---O-
TYPE Alarm
VERSION 5.0
DATA:
savedate 2018-12-13 08:58:30
armstate:
level0 disarmed
level1 disarmed
level2 armed
level3 disarmed
level4 disarmed
level5 disarmed
level6 armed
level7 disarmed
READINGS:
2018-12-12 15:32:35 level0 disarmed
2018-12-12 15:32:35 level1 disarmed
2018-12-13 09:03:13 level2 armed
2018-12-12 15:32:35 level3 disarmed
2018-12-12 15:32:35 level4 disarmed
2018-12-12 15:32:35 level5 disarmed
2018-12-13 09:03:13 level6 armed
2018-12-12 15:32:35 level7 disarmed
2018-12-13 08:32:53 lockstate locked
2018-12-13 08:58:30 savedate 2018-12-13 08:58:30
2018-12-13 09:03:13 short
2018-12-13 13:17:00 state --O---O-
Attributes:
armact set HM_28DF1E_Mp3 playTone 50
armdelay 0:30
armwait set HM_28DF1E_Mp3 playTone 49
cancelact set HM_28DF1E_Mp3 playTone 48
disarmact set HM_28DF1E_Mp3 playTone 51
level0autocan 0:00
level0cond 1
level0end 23:59
level0msg --
level0offact 1
level0onact 1
level0start 0:00
level1autocan 0:00
level1cond 1
level1end 23:59
level1msg %
level1offact 1
level1onact 1
level1start 0:00
level2autocan 0:00
level2cond 1
level2end 23:59
level2msg schwach
level2offact set HM_28DF1E_Led off;
level2onact defmod alarm2dly1 at +00:00:01 set HM_28DF1E_Led on;
level2start 0:00
level3autocan 0:00
level3cond 1
level3end 23:59
level3msg --
level3offact 1
level3onact 1
level3start 0:00
level4autocan 0:00
level4cond 1
level4end 23:59
level4msg offen
level4offact 1
level4onact 1
level4start 0:00
level5autocan 0:00
level5cond 1
level5end 23:59
level5msg Zugang
level5offact 1
level5onact 1
level5start 0:00
level6autocan 0:00
level6cond 1
level6end 23:59
level6msg Einbruch
level6offact set HM_28DF1E_Led off;
level6onact defmod alarm6dly1 at +00:00:01 set HM_28DF1E_Led on;
level6start 0:00
level7autocan 0:00
level7cond 1
level7end 23:59
level7msg Gefahr!
level7offact 1
level7onact 1
level7start 0:00
room AlarmRoom
statedisplay simple
und von Alarm.js
// alarm.js
// Version 5.01
// See 95_Alarm for licensing
Danke
VG
DJ-Mix
Nach dem Listing hatte niemand gefragt.
Bei dieser Meldung handelt es sich um ein Problem zwischen JavaScript und dem eingebundenen SVG.
Die bunten Kästchen unter der Glocke im AlarmWidget
><rect class="arec" width="10" height="10" x="5" y="35" fill="#53f3c7" stroke="black"/>
werden als Klasse "arec" adressiert. Das ist laut Spezifikation zulässig, in Firefox geht das auch problemlos.
Wenn das in einem anderen Browser nicht geht: Browserhersteller kontaktieren und Beschwerde einreichen.
LG
pah
habe irgendwie auch das Problem das die Verzögerung nicht funktioniert. Ich habe einige Actoren da scheint das zu klappen aber ein Dummy der diverse Lichter einschaltet der Reagiert SOFORT !
Hier ein List vom dummy
Internals:
NAME ALLE_LICHTER_AN
NR 836
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm0,alarm5,|set strom_hannibal_dect on;set led_durchreiche on;set lampe_unterstand on;set lampe_reitplatz_untertsand on;set lampe_wiese_misthaufen on||01:40
room Alarm
Hi,
ich würde gerne einen AmazonDash Button zum zurücksetzen der Alarmanlage nutzen, nur irgendwie weiss ich nicht wie ich das damit hinbekomme, das reading der MacAdresse steht immer auf "short" und nur das Datum/die Zeit aktualisieren sich beim Drücken des Dash Buttons.
Wie könnte ich das realisieren?
Danke
Der DashButton sieht so aus:
Internals:
CFGFN
CONNECTS 1
FD 18
LAST_CONNECT 2018-12-23 12:42:30
NAME DashButtonAlarm
NR 3756
NTFY_ORDER 50-DashButtonAlarm
PORT 6767
STATE listening
TYPE dash_dhcp
Helper:
DBLOG:
50-f5-3g-6f-6e-71:
myDbLog:
TIME 1545565653.54409
VALUE short
state:
myDbLog:
TIME 1545565350.37063
VALUE listening
READINGS:
2018-12-23 12:47:33 50-f5-3g-6f-6e-71 short
2018-12-23 12:42:30 state listening
helper:
devAliases:
Attributes:
alarmDevice Sensor
allowed 50:F5:3G:6F:6E:71
group Hardeware
port 6767
room Wohnzimmer
Zitat von: Tommy82 am 23 Dezember 2018, 13:14:41
Hi,
ich würde gerne einen AmazonDash Button zum zurücksetzen der Alarmanlage nutzen, nur irgendwie weiss ich nicht wie ich das damit hinbekomme, das reading der MacAdresse steht immer auf "short" und nur das Datum/die Zeit aktualisieren sich beim Drücken des Dash Buttons.
Wie könnte ich das realisieren?
Danke
...
Es müsste reichen in der Spalte "Notify by RegExp" den Namen des Devices, also "DashButtonAlarm" einzutragen.
Hallo zusammen,
ich hab die freien Tage genutzt, um die einzelnen Warnungen diverser Sensoren über das Modul zusammenzufassen. Dabei bin ich über eine Kleinigkeit gestolpert.
Ich hab einen HM-SEC-WDS-2 (Homematic Wassersensor) im Einsatz. Logik sollte sein:
- bei "damp" oder "wet" Alarm auslösen
- bei "dry" Alarm zurücksetzen
Zuerst wollte ich das direkt über den Status des Sensors lösen, dabei bin ich aber gescheitert. Mit der Wiki-Anleitung hab ich das dann über 2 Dummys und 2 notify hinbekommen.
So richtig elegant erscheint mir diese Lösung aber nicht :(
Geht das schöner?
Ich hatte hier als Ansatz: Status ist entweder "dry" --> zurücksetzen, oder nicht --> auslösen
Hab ich mich verständlich ausgedrückt?
vielen Dank für eure Hilfe!
Hallo zusammen,
ich scheitere gerade schon länger an der OpenHouse-Routine.
Ich habe den Code aus dem Wiki
if( $main::value{'BK.F'} ne "Closed" ){
angepasst an meine Nomenklatur (das Device heißt WZ.Tuersensor.L und der state ist closed, wenn es verschlossen ist).
if( $main::value{'WZ.Tuersensor.L'} ne 'closed' ){
Leider werden jedoch alle Tuersensoren konsequent als nicht verschlossen gewertet - also ist vermutlich in "meinem" if ein Fehler. Kann mir da jemand einen Tipp geben, wie ich den nachvollziehen kann? Kann ich z.B. den value, den die Routine liest auch irgendwie auslesen, damit ich schauen kann, woran es scheitert?
Vielen Dank und Grüße, Mario
Mein Tipp: Sich ein wenig mit den Grundlagen von Perl befassen, und nur Code abtippen, den man auch versteht. Einfach statt
$main::value{'BK.F'}
einsetzen
Value("BK.F")
LG
pah
Vielen Dank! Das klappt. Hatte bei meinen Anpassungsversuchen Value nicht groß geschrieben...
Hast Du ggf. noch ein Stichwort, was das $main::value{} macht und eine Lektüreempfehlung für einen (fhem-)praxisnahen Leitfaden zu Perl? Sonst steige ich nach "Hallo Welt" vermutlich wieder aus.
Gruß, Mario
https://wiki.selfhtml.org/wiki/Perl
LG
pah
Leider ist das Problem immer noch das die Auslösewartezeit Ignoriert wird bei allelichteran ..
Liegt es an der Trennung der Befehle ? Bei Alarmauslösung werden ohne Wartezeit alle Lichter eingeschaltet :(
Hier nochmal ein list:
Internals:
NAME ALLE_LICHTER_AN
NR 835
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm0,alarm5,|set strom_hannibal_dect on;set led_durchreiche on;set lampe_unterstand on;set lampe_reitplatz_untertsand on;set lampe_wiese_misthaufen on||01:40
room Alarm
Hi,
ich habe heute diese Meldung im Log
2019.01.09 16:34:21.346 1: PERL WARNING: Use of uninitialized value $xval in string eq at ./FHEM/95_Alarm.pm line 1389.
2019.01.09 16:34:21.347 3: eval: {Alarm_Html("Alarmanlage")}
2019.01.09 16:34:21.347 1: stacktrace:
2019.01.09 16:34:21.348 1: main::__ANON__ called by ./FHEM/95_Alarm.pm (1389)
2019.01.09 16:34:21.348 1: main::Alarm_Html called by (eval 26951) (1)
2019.01.09 16:34:21.348 1: (eval) called by fhem.pl (1117)
2019.01.09 16:34:21.349 1: main::AnalyzePerlCommand called by ./FHEM/98_weblink.pm (99)
2019.01.09 16:34:21.349 1: main::weblink_FwFn called by ./FHEM/01_FHEMWEB.pm (1948)
2019.01.09 16:34:21.349 1: main::FW_showRoom called by ./FHEM/01_FHEMWEB.pm (1097)
2019.01.09 16:34:21.350 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (548)
2019.01.09 16:34:21.350 1: main::FW_Read called by fhem.pl (3610)
2019.01.09 16:34:21.350 1: main::CallFn called by fhem.pl (727)
Woher kommt das, bzw. was muss ich tun?
Ich bitte darum, einige Fragen für mich zu beantworten.
1. Bedingung für die Alarm Level (Funktion habe ich verstanden). Syntax nicht (bitte nicht auf Pearl Kurs verweisen. Habe ich schon im Sinn) Könnte ich bitte einige Beispiele von Pearl Code bekommen, die hier sinnvoll sind und funktionieren
==> zum Beispiel aus dem Modul Residents 8) 8). Dort gibt es das reading "residentsTotalGuests" und das reading "residentsHome".
Immer wenn die Summe aus den beiden readings 0 ist (niemand zu Hause) soll der Alarm scharf geschalten werden, also die Bedingung den Wert 1 erhalten. Ich habe verstanden, dass diese Bedingung ein neues Feature ist und deshalb noch nicht im Wiki mit "Beispielen auftaucht.
2. Im wiki steht bei den Beispielen einige Male der Hinweis:Zitat(Diese Zeile wird vom Modul 95_Alarm.pm automatisch erzeugt)
bedeutet dies, dass man dies bei der Dummy Definition nicht beachten muss und einfach ignorieren. Das Modul Alarm setzt diese Attribute etc. beim Setzten und Schärfen. Korrekt? Passt aber irgendwie nicht in meine 3. Frage:
3. DebianMail Beispiel Alarmierung per SMS
attr Mail.alarm alarmSettings alarm6,alarm7,|{DebianMail(<mailadresse>,'Alarm','$SHORT'}||30 (Vom Modul 95_Alarm.pm automatisch erzeugt)
Muss die <mailadresse> hier nicht in ' ..' stehen? Die Set Action {DebianMail('haus..} muss ich doch weiterhin selbst überlegen und einfügen. "Alarm" weiss ja nicht, dass ich ein Mail schicken will.
4. Ich bitte um Hinweis, wie ich bei Alarm laute Musik zusätzlich zur Sirene abspielen kann. Nur eine BitteIch finde den Gong nicht so .. ::) ::)
Idee ist, dass ich meine "Raumfeld" Geräte (Multiroom WLAN Lautsprecher von Teufel) mit Spotify (Playlist) zu verknüpfen und laut aufdrehen. Hab mich auch schon eingelesen in Spotify und Raumfeld. Spotify müsste machbar sein, für mich. Raumfeld (multiroom wifi-System von Teufel) wird zwar im Forum besprochen, ist für mich aufgrund mangelhafter Kenntnisse (speziell Linux) nicht konfigurierbar. Hat jemand noch eine Idee?
Meine Alarmanlage habe ich bisher durch Wiki und den 81 Seiten Forum weit gebracht. Danke. Gute Arbeit.
1. Zuerst einmal: Es heißt Perl, nicht Pearl. Weiterhin: Ich kann es wegen meiner beruflichen Last derzeit nicht stemmen, mir neue Beispiele auszudenken, bitte um Verständnis - das kann ggf. jemand anders beisteuern.
2. Ja.
3.
ZitatMuss die <mailadresse> hier nicht in ' ..' stehen?
Das ist eine Frage der Schreibweise. <mailadresse> ist ein String und
ENTHÄLT natürlich die '-Zeichen.
4. Sicher geht das.
LG
pah
Danke pah,
toll wäre, wenn ich aus dem Forum noch einen Hinweis bekommen könnte:
1. Es geht um die Bedingung nach dem Alarmlevel , es gut um das Perl-eval().
Ich möchte einen Alarm Level davon abhängig machen, ob jemand "erlaubtes" im Hause sind. Residents kombiniert mit Geofancy passt hier sehr gut.
Ich habe verschiedene Reading, wobei der !! state "home" am Besten passt. Falls das reading von Bewohner: (Bewohner:state ne home) ist, dann ist kein Bewohner und kein erlaubter Gast im Hause und dann soll dieser Alarm scharf werden.
Aber wie sag ich es dem Kinde. Ich bin (noch nicht) kein Perl Programmierer, leider. Man könnte auch die readings "residentsTotalGuestsPresent" und "residentsTotalPresent" des devices "Bewohner addieren, falls die Summe ist, ==> scharf stellen. "home" gefällt mir besser
Hab mal die wichtigsten Teile des List Bewohner angehängt:
Internals:
CHANGED
DURATIONTIMER 1547153558.31711
GUESTS KERSTIN,PATRICK,TOBIAS
NAME Bewohner
NOTIFYDEV global,MARGIT,UWE,KERSTIN,PATRICK,TOBIAS
NR 66
NTFY_ORDER 50-Bewohner
READY 1
ROOMMATES MARGIT,UWE
STATE home
TYPE RESIDENTS
READINGS:
2019-01-01 17:41:10 residentsTotalGuestsPresent 0
2019-01-10 16:35:46 residentsTotalPresent 1
2019-01-10 16:35:46 state home
TIMER:
Bewohner_DurationTimer:
HASH Bewohner
MODIFIER DurationTimer
NAME Bewohner_DurationTimer
Attributes:
DbLogExclude .*
alias Residents
devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
group Home State
icon control_building_filled
room Residents
webCmd state
Meine Idee für das Perl-eval war: {Bewohner:state eq home}
2. Eine weitere Frage bezieht sich auf das Beispiel "Zustandsprüfung Fenster und Türen" im Wiki, das ich gerne verstehen und modifiziert verwenden möchte. Auch um Perl zu lernen.
Sehe ich das richtig:
alle .F (z.B. Ke_WE.F) sind Fensterkontakte und alle .T (z.B. Ha:T) sind Türkontakte.
Diese werden dann in dem geprüft, ob sie ne "closed" sind. Einzeln. Hier kann man dann auch seine Türkontakte/Fensterkontakte einbauen.
Wie das if funktioniert, verstehe ich nicht. z.B. was macht main::Value{ .. und was bedeutet der Ausdruck "Ke_Ws/" (speziell der /).
Ich denke, wenn ich das if verstanden habe, kann ich den Rest erarbeiten.
Fände ich ganz prima, wenn ihr mir da weiterhelfen könntet. Merci.
Hallo,
zu dem Punkt 1 meiner letzten Anfrage (vorgehendes Post von Gestern) "Perl-eval" für die Bedingung zum Setzten des Alarms bin ich weitergekommen. In der FHEM Kommandozeile bekomme ich mit meinem Perl-Eval die korrekten Werte, aber "Alarm" weigert sich noch.
Meine Perl-Eval sieht so aus:
{ReadingsNum ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1} ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1}
Ich habe diese mit den {} in der FHEM Kommondozeile getestet und es kommen die korrekte Werte :
Kein Wert, falls der Ausdruck vor dem == nicht gleich 0 ist und 1 wenn der Ausdruck 0 ist. Also genau das, was ich will.
Setzte ich dies in dies genauso in den ALARM - "Bedingungsfeld" ein, so bleibt der Ausdruck auch nach Parameter setzen und fhem speichern erhalten.
Wechsele ich aber einmal in einen anderen Raum und kehre zur Alarmanlage wieder zurück, so steht nur noch der Ausdruck
{ReadingsNum (
in dem Bedingungsfeld.
Auch wenn ich das Blank zwischen ReadingsNum und "(" weglasse, keine Änderung.
Wo kann ich nachlesen, was ich falsch gemacht habe.
Vielleicht kann ja nochmal jemand bei meinem Problem helfen... Liegt es an den mehrerern Befehlen ? Reicht das ; nicht zum trennen ?
Danke
Zitat von: ChrisW am 06 Januar 2019, 14:48:24
Leider ist das Problem immer noch das die Auslösewartezeit Ignoriert wird bei allelichteran ..
Liegt es an der Trennung der Befehle ? Bei Alarmauslösung werden ohne Wartezeit alle Lichter eingeschaltet :(
Hier nochmal ein list:
Internals:
NAME ALLE_LICHTER_AN
NR 835
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm0,alarm5,|set strom_hannibal_dect on;set led_durchreiche on;set lampe_unterstand on;set lampe_reitplatz_untertsand on;set lampe_wiese_misthaufen on||01:40
room Alarm
Hi ChrisW,
ich bin auch gerade erstmals beim Aufbau des Modules "Alarm" und amit nicht der Erfahrene. Aber einige Erfahrung hab ich schon gemacht.
Dein Problem verstehe ich nicht, kannst es noch etwas ausführlicher mit Daten schildern?
Hast du in deiner Abwednung irgendwann erfpgleich die "Bedingung" für das "Schärfen" eines Alarms verwendet?. Falls Ja, kannst du mir bitte eine solche Zukommen lassen. Da hänge ich gerade.
Hallo,
zwischenzeitlich bin ich auch mit meiner 2. Frage weitergekommen.
Zitat2. Eine weitere Frage bezieht sich auf das Beispiel "Zustandsprüfung Fenster und Türen" im Wiki, das ich gerne verstehen und modifiziert verwenden möchte. Auch um Perl zu lernen.
Sehe ich das richtig:
alle .F (z.B. Ke_WE.F) sind Fensterkontakte und alle .T (z.B. Ha:T) sind Türkontakte.
Diese werden dann in dem geprüft, ob sie ne "closed" sind. Einzeln. Hier kann man dann auch seine Türkontakte/Fensterkontakte einbauen.
Wie das if funktioniert, verstehe ich nicht. z.B. was macht main::Value{ .. und was bedeutet der Ausdruck "Ke_Ws/" (speziell der /).
Ich denke, wenn ich das if verstanden habe, kann ich den Rest erarbeiten.
Das Modul HouseOpen habe ich verstanden und bei mir angepasst. Tür und Fensterkontakte habe ich auf das System T. und F. System gebracht, ansonsten passt ja das alarmSettings nicht.
Aber dazu genau meine Frage, die sich jetzt stellt, ist wichtig für mich, auch wenn ich HouseOpen nicht unbedingt benötige:
Die REGEX für
TFOpen.warn
muss ja von mir gesetzt werden:
TFOpen.warn:.*[TF].*|$EVENT|on
(prüft, ob ein Tür oder Fensterkontakt in dem String (offen) steht und setzt dann nochmals
TFOpen.warn
, der setzt dann über $Event den Alarm 4, der dann mit 10 minütiger Verzögerung HouseOpen() nochmals startet.
Es tritt hier ein vergleichbarer Fall auf, als bei meinem bereits beschrieben Problem mit der Alarmbedingung:
Ich setzte den korrekten Wert :
TFOpen.warn:.*[TF].*|$EVENT|on
in das dafür vorgesehene Eingabe- Feld "
ZitatAuslösung durch RegExp" des TFOpen.warn
ein , es wird auch eingetragen, ich speichere sowohl "Parameter setzen" als auch save config. Immer noch der korrekte Wert.
Ich wechsle kurz in ein anderes Zimmer und zurück und das RegExp hat sich verändert:
TFOpen.warn:.*[TF].*
Im TFOpen.warn device steht als attr. alarmSettings:
alarm4,|TFOpen.warn:.*[TF].*|EVENT|on|$EVENT|on
also ein |EVENT| mehr, für mich syntaktisch nicht zu erklären.
Mit keiner dieser beiden Regex (meine Vermutung) wird der Alarm wieder gestartet.
Mache ich hier einen grundlegenden Denkfehler?
Hier nochmals das komplette Listung von TFOpen.warn:
Internals:
NAME TFOpen.warn
NR 185
STATE SCHLAFT Tür
TYPE dummy
READINGS:
2019-01-13 22:11:05 state SCHLAFT Tür
Attributes:
DbLogExclude .*
alarmDevice Sensor
alarmSettings alarm4,|TFOpen.warn:.*[TF].*|EVENT|on|$EVENT|on
group windowDetector
room Alarm
Ich habe ja einen ähnlichen Effekt bei der Bedingung eines Alarmlevels. Beide Phänomene bekomme ich nicht in den Griff.
Ich hole mein erstes Thema "Bedingung" zum Schärfen des Alarms nochmals hoch, dass alles zusammen in einer Nachricht ist:
Zitatzu dem Punkt 1 meiner letzten Anfrage (vorgehendes Post von Gestern) "Perl-eval" für die Bedingung zum Setzten des Alarms bin ich weitergekommen. In der FHEM Kommandozeile bekomme ich mit meinem Perl-Eval die korrekten Werte, aber "Alarm" weigert sich noch.
Meine Perl-Eval sieht so aus:
Code: [Auswählen]
{ReadingsNum ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1} ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1}
Ich habe diese mit den {} in der FHEM Kommondozeile getestet und es kommen die korrekte Werte :
Kein Wert, falls der Ausdruck vor dem == nicht gleich 0 ist und 1 wenn der Ausdruck 0 ist. Also genau das, was ich will.
Setzte ich dies in dies genauso in den ALARM - "Bedingungsfeld" ein, so bleibt der Ausdruck auch nach Parameter setzen und fhem speichern erhalten.
Wechsele ich aber einmal in einen anderen Raum und kehre zur Alarmanlage wieder zurück, so steht nur noch der Ausdruck
Code: [Auswählen]
{ReadingsNum (
in dem Bedingungsfeld.
Auch wenn ich das Blank zwischen ReadingsNum und "(" weglasse, keine Änderung.
Wo kann ich nachlesen, was ich falsch gemacht habe.
Dies sind auch zwei Punkte, vor denen ich jetzt kapituliere.
Achtung, bei den notify-Devices gilt nur ein eingeschränkter Satz von Regeln für reguläre Ausdrücke. Ich habe mir deshalb erlaubt, die |-Zeichen als Trenner in dem Attribut zu verwenden. Wenn man sie also in einem regulären Ausdruck einsetzen will: \| sollte gehen.
LG
pah
Hi
war leider noch nicht die Lösung:
Inhaltlich richtig sollte sein.
TFOpen.warn:.*[TF].*|$EVENT|on
gemäss der aktuellen Post setze ich jetzt ein:
TFOpen.warn:.*[TF].*\|$EVENT\|on
Angezeigt wird dann nach dem Abspeichern:
TFOpen.warn:.*[TF].*\
in den alarmsettings von TFOpen.warn steht dann
alarm4,|TFOpen.warn:.*[TF].*\|$EVENT\|on|$EVENT|on
Es verändert sich beim Abspeichern auch der Nachrichtenteil 1 des TFOpen.warn von
$EVENT
auf
$EVENT\
Für meine Bedingung für den Alarm sehe ich in dem Vorschlag keine Handhabe. In dem Perl code:
{ReadingsNum ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1} ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1}
ist aus meiner Sicht kein
Zitat|-Zeichen
Ich habe "Prosa" weggelassen, da für den Leser so übersichtlicher. Oben ist ja alles erklärt, sollte aber auch so klar sein.
Ich habe aber nicht die Zeit, mich durch seitenlange Posts zu wühlen, sorry.
LG
pah
Das war ja der Hintergrund, warum ich alles nochmals zusammengeschrieben und zum Drüberfliegen zusammengefasst habe. Wie soll ich es vorbereiten? Mach ich gerne .
Hallo, vielen Dank für die Rückmeldung, anbei die Koplettinformation komprimiert. Verstehe den Hintergrund.
1. "Bedingung" für einen Alaramlevel als Perl-Code. Perl-Code ist in der FHEM-Kommandozeileverifiziert, zeigt keine Syntayfehler und liefert die korrekten Ergebnisse aus der FHEM Kommandozeile:
{ReadingsNum ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1} ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1}
Nach dem | Parameter setzen | Save config | Wechsel und Zurückwechsel des Raumes Alarmanlage| zeigt sich als Perl-Code in der Bedingsspalte für den Alarm:
{ReadingsNum (
2. Auslösung durch RegExp im Bereich Sensoren für das Beispiel Kontrollrunde "Öffnung von Fenstern oder Türen" im https://wiki.fhem.de/wiki/Modul_Alarm.Beispiel wurde identisch übernommen, die Tür und Fensternamen jedoch geändert, Systemmatic beibehalten.
Der String für "Auflösung durch RegExp" für das dummy TFOpen.warn wird nach | Parammeter setzen | Save config | Wechsel und Zurückwechsel des Raumes Alarmanlage von
TFOpen.warn:.*[TF].*|$EVENT|on
nach
TFOpen.warn:.*[TF].*
verändert. der Vorschlag mit dem
Zitat|-Zeichen
bringt folgende Veränderung. Der String wird dann von
TFOpen.warn:.*[TF].*\|$EVENT\|on
nach
TFOpen.warn:.*[TF].*\
verändert.
Im attr alarmsettings von TFOpen.warn steht:
alarm4,|TFOpen.warn:.*[TF].*\|$EVENT\|on|$EVENT|on
. Auch wird der Message Part 1 von
$EVENT
nach
$EVENT\
verändert.
Vielen Dank für die Bearbeitung.
Hallo,
fehlt noch Information von meiner Seite. Liefere ich gerne nach. Merci Uwe
Hallo Uwe!
So ganz verstehe ich dein Problem auch nicht, aber was ich verstehe ist, dass deine Bedingung ein "|"-Symbol beinhaltet und das Alarm-Modul damit nicht umgehen kann.
Dieses Thema wurde hier im Thread bereits vor einem Jahr besprochen:
https://forum.fhem.de/index.php/topic,26893.msg746113.html#msg746113 (https://forum.fhem.de/index.php/topic,26893.msg746113.html#msg746113) (und folgende)
Anscheinend hat das "Escapen" von reservierten Symbolen im Alarm-Modul noch nicht die Testphase verlassen.
Als Workaround würde ich die, im Alarm-Modul nicht funktionierende, Abfrage auslagern in, entweder in ein Notify, das wiederum das Ergebnis in z.B. ein Dummy schreibt, oder ein userReading im abzufragenden Device und im Alarm-Modul dann nur mehr den (einfachen) Wert des Dummies bzw. des userReadings abfragen
LG
Rainer.
Hallo gamauf,
danke für die Antwort.
Ich sehe nicht, dass meine Bedingung (Punkt 1) ein | beinhaltet. Es soll sich ja um einen "Perl-Code" handeln. Wenn das Ergebnis des Perl-Codes ist, so wird der Alarm geschärft.
{ReadingsNum ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1} ("Bewohner","residentsHome","-1") + ReadingsNum ("Bewohner","residentsTotalGuestsPresent","-1") == 1}
Mein Punkt 2 (Auslösung durch RegExp im Bereich Sensoren für das Beispiel Kontrollrunde "Öffnung von Fenstern oder Türen" im https://wiki.fhem.de/wiki/Modul_Alarm) hingegen beinhaltet ein |. Dies ist aber exakt das Beispiel aus dem WIKI.
TFOpen.warn:.*[TF].*|$EVENT|on
Ich gehe davon aus, dass dieses Beispiel getestet worden ist.
Deshalb auch meine Frage, habe ich irgendwo einen grundlegenden Denkfehler? Ich suche den Fehler bei mir.
Auch die Antwort von pah:
ZitatAchtung, bei den notify-Devices gilt nur ein eingeschränkter Satz von Regeln für reguläre Ausdrücke. Ich habe mir deshalb erlaubt, die |-Zeichen als Trenner in dem Attribut zu verwenden. Wenn man sie also in einem regulären Ausdruck einsetzen will: \| sollte gehen.
besagt , dass es gehen müsste.
Aber nochmals, danke dass du dich darum kümmerst. Parallel versuche ich mich mit der alternativen Lösung.
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
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.
Leute, Leute, ... irgendwo in der Doku steht schwarz auf weiß: Nicht " verwenden, sondern '
LG
pah
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.
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.
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.
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.
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
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
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
Nein, scharf oder unscharf ist unabhängig davon. Bedingung für Auslösung: scharf UND innerhalb der angebenenen Zeitspanne.
LG
pah
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?
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?
Ja.
LG
pah
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
Naja, das Alarmmodul muss erkennen, welches Event von dem Button generiert wird. Sprich du musst den regex passend setzen.
Bei dem Dummy der "on" kann z.B "Dummy:on" oder ":.*"
Je nachdem, auf welches Event du reagieren möchtest!
Grüße
Alarmauslösung bei Neustart (z.B. Stromausfall).
Ich habe bei dem Neustart von FHEM bei geschärftem Alarm regelmässig eine Auslösung des Alarmes durch den Homematic Bewegungsmelder.
Was kann ich tun, um dies zu verhindern? Ich hab 30 sec Schärfzeit eingestellt.
Im Logfile sehe ich:
019.03.09 16:03:54 1: sendEmail Text: Diele Bewegung Falter Einbruch Abwesend
2019.03.09 16:03:54 1: PERL WARNING: Use of uninitialized value $attach in concatenation (.) or string at ./FHEM/99_myUtils.pm line 37
Davor ist nichts, was auf Alarm etc. Die ersten Aktionen beim Neustart sind ca. 40 sec früher:
2019.03.09 16:03:15 3: telnetPort: port 7072 opened
2019.03.09 16:03:15 3: WEB: port 8083 opened
Schärfzeit auf 1 Minuten stellen, hilft das?
Hallo UweUwe,
ich stelle soeben etwas ähnliches fest.
Wenn die Anlage aktiv ist und der Server startet neu, kommt die Anlage nicht in den Überwachungsmodus zurück. Ich habe eine Zeit von 1 Minute eingestellt, damit ich das Haus noch verlassen kann.
Ist die Minute vorbei und der Server startet im Aktivierten Zustand neu, so bleibt die Anlage im Waitmodus.
Hat jemand eine Lösung? Habe ich etwas falsch gemacht?
Danke für alle Hinweise.
@Uweuwe:
ZitatSchärfzeit auf 1 Minuten stellen, hilft das?
Vermute: Nein. Hier wird beim Systemstart vom BM ein Event ausgelöst, der in der dann schon etwas eher aktiven Alarmanlage den Alarm triggert.
Ich wüsste gerne, wann genau diese Triggerung erfolgt (verbose höher setzen, damit man dies im Log sieht !) Und bitte zusätzlich
define FHEMStart notify global:INITIALIZED {Log 1,"=================> FHEM IST GESTARTET"}
definieren. Evtl. kann ich da eine Sicherung einbauen, die dafür sorgt, dass die Scharfstellung erst wieder aktiv ist, wenn das System komplett läuft.
@Beetle2003:
ZitatHabe ich etwas falsch gemacht?
Ja. Wahrscheinlich die Parameter nicht gesichert.
LG
pah
Hallo,
ich fange an, mich mit dem Modul zu beschäftigen, welches vermutlich optimal für meine Bedürfnisse passt. Da ich im Wiki nichts Konkretes dazu gefunden habe, folgende Frage:
Wenn ich im Winter bei geschlossenem Fenster schlafe, dann soll das Öffnen des Fensters einen Einbruchsalarm auslösen. Wenn das Fenster aber beim Zubettgehen im Sommer schon offen ist, dann möchte ich nicht, das dann gleich ein Einbruchsalarm ausgelöst wird. Kann ich einen Tipp bekommen, wie ich das programmieren muss?
Einen lieben Gruß
Jürgen
Na ja, wenn das Fenster schon offen ist, wir ja kein Event ausgelöst.
Stellt man die Alarmanlage beim Zubettgehen erst scharf, oder erfolgt der Öffnungsvorgang außerhalb der Start/Ende-Zeiten des Alarmkanals, gibt es auch keinen Alarm. Außerdem könnte man als "Bedigung" für eine Alarmauslösung noch eintragen, dass kein Sommer sein darf.
LG
pah
Danke, soweit klar. Ich habe nun auch schon einiges programmiert und es tut was es soll - bis auf eines:
Als Aktor habe ich eine laute Glocke, die aber nicht sofort läuten soll, sondern erst nach einer Verzögerung. Eingestellt habe ich es wie in dem beigefügten Bild. Allerdings läutet die Glocke sofort nachdem der Alarm durch einen Türkontakt ausgelöst wurde und nicht (testweise) 10 Minuten später.
Was ist mein Verständnisproblem?
Einen lieben Gruß
Jürgen
Gibt es einen Grund, dass die Unscharf-Aktion die Variablen $NAME $EVENT mit den entsprechenden Devicenamen der Sensoren und dessen Event ersetzt jedoch die Warte-Aktion oder bspw. die Widerruf-Aktion nicht obwohl diese auch durch Sensoren angesteuert werden?
Die Unscharf-Aktion "set telegram message Alarmanlage unscharf $NAME $EVENT" erzeugt die Telegram Nachricht: Alarmanlage unscharf <Device> <state>
Die Widerruf-Aktion "set telegram message Alarmanlage widerrufen $NAME $EVENT" erzeugt die Telegram Nachricht: Alarmanlage widerrufen $NAME $EVENT
Hallo,
ich würde im Alarmmodul (Version: 95_Alarm.pm:0.173440/2018-09-14) gerne den Default-Raum "Alarm" ändern. Nach der englischen Dokumentation geht dies über:
attr <name> publicroom <string>
Room name for public alarm room (containing sensor/actor devices), default: Alarm
Ich finde bei mir jedoch in der Attributsliste weder "publicroom" noch "hiddenroom". Ich habe über "userattr" testweise das Attribut "publicroom" angelegt und anschließend mit einem Raumnamen besetzt. Dies war jedoch erfolglos.
Meine FHEM-Installation ist auf aktuellem Stand.
Was mache ich falsch? Danke für entsprechende Hinweise.
Zitat von: WW am 04 September 2019, 18:19:39
Hallo,
ich würde im Alarmmodul (Version: 95_Alarm.pm:0.173440/2018-09-14) gerne den Default-Raum "Alarm" ändern. Nach der englischen Dokumentation geht dies über:
attr <name> publicroom <string>
Room name for public alarm room (containing sensor/actor devices), default: Alarm
Ich finde bei mir jedoch in der Attributsliste weder "publicroom" noch "hiddenroom". Ich habe über "userattr" testweise das Attribut "publicroom" angelegt und anschließend mit einem Raumnamen besetzt. Dies war jedoch erfolglos.
Meine FHEM-Installation ist auf aktuellem Stand.
Was mache ich falsch? Danke für entsprechende Hinweise.
Hallo,
es gibt das Attribut room. Wenn dieses über die Webgui geändert werden soll so erscheint eine Liste aller angelegten Räume.
Dort findest Du den Raum hidden. Alles was diesem Raum zugeordnet ist, ist versteckt.
Gruss
Da habe ich mich wohl mißverständlich ausgedrückt: Ich meine nicht die Raumzuordnung für das Alarmdevice selbst, sondern die Raumzuordnung für die mit "Parameter setzen" erzeugten "alarmNotifier", die dafaultmässig dem Raum "Alarm" zugeordnet werden.
EDIT: Weitere Verfeinerung der Frage:
Auszüge aus "95_Alarm.pm:
#########################
# Global variables
my $alarmlinkname = "Alarms"; # link text
my $alarmhiddenroom = "AlarmRoom"; # hidden room
my $alarmpublicroom = "Alarm"; # public room
my $alarmno = 8;
my $alarmversion = "5.0";
sub Alarm_Initialize ($) {
...
my $attst = "lockstate:locked,unlocked testbutton:0,1 statedisplay:simple,color,table,none noicons iconmap disarmcolor ".
"armwaitcolor armcolor alarmcolor armdelay armwait armact disarmact cancelact";[/b]
for( my $level=0;$level<$alarmno;$level++ ){
$attst .=" level".$level."cond level".$level."start level".$level."end level".$level."autocan level".$level."msg level".$level."onact level".$level."offact ";
}
$hash->{AttrList} = $attst;
$alarmpublicroom = defined($attr{$name}{"publicroom"}) ? $attr{$name}{"publicroom"} : $alarmpublicroom;
und
sub Alarm_CreateNotifiers($){
...
for( my $level=0;$level<$alarmno;$level++ ){
...
CommandAttr (undef,'alarm'.$level.'.on.N room '.$alarmpublicroom);
...
CommandAttr (undef,'alarm'.$level.'.arm.N room '.$alarmpublicroom);
...
CommandAttr (undef,'alarm'.$level.'.disarm.N room '.$alarmpublicroom);
Für mich sieht das so aus:
Unter der Variablen "$alarmpublicroom" wird der Raum angegeben, in den die automatisch erzeugten alarmNotifier bei der Erstellung abgelegt werden. Diese Variable kann über das Attribut "publicroom" überschrieben werden und wird dann bei der Erstellung der Alarmnotifier angewendet. Leider steht das Attribut "publicroom" nicht in der Attributliste und lässt sich daher nicht anwenden.
Habe ich irgendwo einen Denkfehler?
Hallo Zusammen,
meine in der Vergangenheit funktionierende Konfiguration löst keine Alarme mehr aus.
Es ist jetzt erst aufgefallen, da in den letzten 13 Monaten immer jemand zu Hause war und nie scharf geschaltet wurde.
Ist etwas am Aufbau der RegExp geändert worden ? Bei einem Kontakt Sensor (HM-SEC-SC-2) den ich an einer Tür habe
sah das RegExp immer so aus Garage_Sensor:open
Es ist egal mit welchem Sensor ich aktuell versuche den Alarm manuell auszulösen,
es wird kein Alarm ausgelöst.
Danke für eure Hilfe
Mirco
Äh - nö. Keine Änderung.
LG
pah
Hast du die Alarme mal neu generiert? Schraub mal das Log hoch, und löse den Kontakt aus..Das Modul ist sehr Aussagekräftig wenn du bspw. verbose auf 5 setzt.
Was heißt manuell genau? Gehst du über trigger, oder trennst du wirklich die Hardware?
Grüße
Hallo zusammen,
mir ist heute aufgefallen dass in meinem Alarm room unter readings => level 1,2,3.... nur sporadisch aktuelle readings angezeigt werden.
Teilweise sind die Einträge ziemlich alt.
Ich nutze das Alarm Modul schon ein paar Jahre. Funktioniert einwandfrei.
Wollte heute per notify ein paar Abfragen zum Status generieren. Die Readings zeigen aber ständig off...?!
Kann mir jemand einen Tipp geben wie ich die readings aktualisiert bekomme.
Ich nutze die 2.5.
Danke
Gruss Tom
Ich habe eine andere Lösung gefunden, die mir jedoch nicht gefällt.
Es geht nur um eine Statusanzeige des Alarms auf dem TabletUI
+*00:05:00 { my$t0 = AttrVal("Alarmi","level0xec",""); if ($t0 eq "disarmed") { fhem ("set UG_GT_status_dummy off")} else { fhem ("set UG_GT_status_dummy on")} }
Funktioniert so.
Was ich nicht lösen konnte, dass das notify auf den Alarmstatus reagiert.
Funktioniert nur als Trigger
Trigger Alarmi.* { if (AttrVal("Alarmi","level0xec","") eq "disarmed") { fhem("set UG_GT_switch off")} }
was muss ich ändern damit das notify anspringt ?
Gruss Tom
Hallo,
ich versuche gerade das Modul zum Laufen zu bringen und scheitere leider komplett.
Auch nach stundenlanger Recherche komme ich nicht weiter, obwohl ich eine vermeintlich einfache Funktion darstellen möchte:
- Aktivierung der Alarm-Funktion über Switch (Tradfri-Status) z.B. bei Verlassen des Hauses
- wenn Alarm aktiv, dann Überwachung verschiedener Fenster/Tür-Sensoren (Xiaomi)
- Cancel-Option des Alarms über Switch (Tradfri-Status) z.B. bei Rückkehr innerhalb von 30 sek
- bei erkannter Alarm-Situation "Sirene" über Sonos auslösen
- Deaktivierung der Alarm-Funktion über Switch (Tradfri-Status)
Es wird in den posts immer wieder von schönen Beispielen gesprochen - ausser dem Wiki-Eintrag, den ich offenbar nicht verstehe, finde ich nichts...kann bitte jemand ein Beispiel verlinken?
Im Wiki sind auch die Befehle auf Grund der kurzen Felder oftmals abgeschnitten - hilft mir leider auch nicht.
Von Perl habe ich keine Ahnung - müsste ich aber vermutlich auch nicht haben, wenn ich mich auf die wenigen beschriebenen Situationen beschränken würde.
Wenn mir irgendjemand ein einfaches Beispiel erläutern könnte, wäre ich sehr dankbar...
Grüße,
Ian
Zitat von: TimToni am 05 Oktober 2019, 14:39:17
Ich habe eine andere Lösung gefunden, die mir jedoch nicht gefällt.
Es geht nur um eine Statusanzeige des Alarms auf dem TabletUI
+*00:05:00 { my$t0 = AttrVal("Alarmi","level0xec",""); if ($t0 eq "disarmed") { fhem ("set UG_GT_status_dummy off")} else { fhem ("set UG_GT_status_dummy on")} }
Funktioniert so.
Was ich nicht lösen konnte, dass das notify auf den Alarmstatus reagiert.
Funktioniert nur als Trigger
Trigger Alarmi.* { if (AttrVal("Alarmi","level0xec","") eq "disarmed") { fhem("set UG_GT_switch off")} }
was muss ich ändern damit das notify anspringt ?
Gruss Tom
UPDATE - gelöst -
Ist dieser Forenteil geschlossen, oder war die Frage zu einfach oder hätte sie in das Anfängerforum gehört ...?
Die Regexp für das notify muss lauten
global:ATTR.Alarmi.level0xec.* {}
Tom 8)
Zitat von: noom0815 am 03 November 2019, 01:28:43
Hallo,
ich versuche gerade das Modul zum Laufen zu bringen und scheitere leider komplett.
Auch nach stundenlanger Recherche komme ich nicht weiter, obwohl ich eine vermeintlich einfache Funktion darstellen möchte:
- Aktivierung der Alarm-Funktion über Switch (Tradfri-Status) z.B. bei Verlassen des Hauses
- wenn Alarm aktiv, dann Überwachung verschiedener Fenster/Tür-Sensoren (Xiaomi)
- Cancel-Option des Alarms über Switch (Tradfri-Status) z.B. bei Rückkehr innerhalb von 30 sek
- bei erkannter Alarm-Situation "Sirene" über Sonos auslösen
- Deaktivierung der Alarm-Funktion über Switch (Tradfri-Status)
Es wird in den posts immer wieder von schönen Beispielen gesprochen - ausser dem Wiki-Eintrag, den ich offenbar nicht verstehe, finde ich nichts...kann bitte jemand ein Beispiel verlinken?
Im Wiki sind auch die Befehle auf Grund der kurzen Felder oftmals abgeschnitten - hilft mir leider auch nicht.
Von Perl habe ich keine Ahnung - müsste ich aber vermutlich auch nicht haben, wenn ich mich auf die wenigen beschriebenen Situationen beschränken würde.
Wenn mir irgendjemand ein einfaches Beispiel erläutern könnte, wäre ich sehr dankbar...
Grüße,
Ian
Servus Ian,
ich bin kein Profi, jedoch ist die Fragestellung viel zu allgemein.
Da musst Du genauer beschreiben was nicht funktioniert.
Dann auch Fehler im Log beachten. Z.B. verbose auf 5 setzen um das Problem zu verstehen und einzugrenzen.
Was gerne übersehen wird beim Alarmmodul => das Reading lockstate = unlocked
Gruss Tom
Hallo TimToni,
das einzige, was funktioniert, sind die Ansagen unter Wait/Arm/Disarm/Cancel, sobald man irgendwo einen Haken bei Arm setzt bzw. wieder wegnimmt.
- Die condition ist hierbei per default "1" - diese müsste ich nach meinem Verständnis z.B. durch eine Schalterbedingung ["Aktivierung der Alarm-Funktion über Switch (Tradfri-Status)"] ersetzen, oder nicht? Ist im Wiki nicht beschrieben. Falls ja: wie lautet ein entsprechender beispielhafter Perl-Befehl für einen Schalter-Status?
- Oder muss ein dauerhaft aktivierter Alarm durch einen Sensor erst deaktiviert werden? Wie lautet hierfür ein einfacher Perl-Befehl, der nur einen Schaltzustand abfragt? [Punkt "Deaktivierung der Alarm-Funktion über Switch (Tradfri-Status)"]
- eine spezifische Sensor-Meldung soll im ARMED Fall einen Alarm RAISEN - z.B. ein Fenster Sensor wechselt nach offen. Dazu müsste der Sensor beim entsprechenden Alarm-Level ein Haken und eine RegExp bekommen - funktioniert bei mir auch nicht [Punkt "wenn Alarm aktiv, dann Überwachung verschiedener Fenster/Tür-Sensoren (Xiaomi)]; wie würde ein entsprechender einfacher Perl-Befehl aussehen?
- ALARM soll erst nach Delayzeit starten, um noch rechtzeitig deaktivieren zu können. Muss vermutlich auch über Sensor erfolgen, aber wie kann man hier z.B. verschiedene STATES abfragen (verschiedene Schalterstellungen ein und desselben Sensors...[Punkt "Cancel-Option des Alarms über Switch (Tradfri-Status)"])? Pro Sensor kann ja nur eine RegExp angegeben werden, oder?
- als Aktor soll eine Sirene über Sonos abgespielt werden....sollte ich hinbekommen, wenn das Grundprinzip klar ist [Punkt "bei erkannter Alarm-Situation "Sirene" über Sonos auslösen"]
Der Readingstate ist unlocked - funktioniert aber trotzdem nichts, deshalb gibt es auch keine Fehler im Log... :-\
Ich hoffe, dass die Probleme etwas klarer beschrieben sind...
Danke und Grüße,
Ian
Servus Ian,
Zitatdas einzige, was funktioniert, sind die Ansagen unter Wait/Arm/Disarm/Cancel, sobald man irgendwo einen Haken bei Arm setzt bzw. wieder wegnimmt.
Dann schau mal im EventMonitor nach ob die Alarme tatsächlich gesetzt werden => so sieht das bei mir aus
Global global ATTR Alarmi level0xec armed
Dann weisst Du schon mal ob der Alarm aktiv ist oder nicht.
ZitatOder muss ein dauerhaft aktivierter Alarm durch einen Sensor erst deaktiviert werden? Wie lautet hierfür ein einfacher Perl-Befehl, der nur einen Schaltzustand abfragt? [Punkt "Deaktivierung der Alarm-Funktion über Switch (Tradfri-Status)"]
Wenn der Alarm aktiv ist, ist er aktiv. Dies kannst Du erstmal nur über settings - Armed/Cancel verändern, sprich wieder ausschalten.
Wenn Du das über Sensoren, Schaltern, etc. machen willst, musst Du ihm das sagen.
Ich steuere z.B. über ein externes Codeschloss den Alarmstatus. Da hast Du alle Möglichkeiten.
Für ein notify dass auf den Alarm_Status reagiert, schaust Du in meinen vorigen Posts nach, da steht eigentlich, wie ich meine, das wichtigste dazu drin.
Mir hat für das Verständnis in dieser Sache sehr viel geholfen, Grundlagen natürlich erstmal dies hier
https://wiki.fhem.de/wiki/Modul_Alarm (https://wiki.fhem.de/wiki/Modul_Alarm)
Und vor allem dies hier https://wiki.fhem.de/wiki/Event (https://wiki.fhem.de/wiki/Event)
Zitat- ALARM soll erst nach Delayzeit starten,
Unter settings => Verzögerung Alarm aktiv
Unter actors => Alarmverzögerung für jeden Aktor separat
Am besten konzentrierst Du dich darauf, mit z.B. einem Türkontaktschalter einen Alarm auszulösen, der dann z.B. einen Dummy aktiviert. Dann funktioniert zumindest die Grundstruktur. Dann kannst Du weiterbauen...
Ich hoffe das hilft erstmal.
Gruss Tom
Hallo TimToni,
beim Einschalten des jeweiligen alarms erscheint im EventMonitor
Alarm Test level0: armed
Dies sagt aber nur aus, dass ein Event stattgefunden hat, oder? Warum ist es bei mir kein Global ATTR?
Hier das Event, welches einen Alarm auslösen soll:
2019-11-04 20:02:17 HUEDevice Fenster_Terrasse open
Kein Ahnung, was man eingeben muss, damit hier irgendwas passiert...gibt es keine Beispiele, die eine kompletten Programmablauf zeigen?
Also eine Sensor-Definition, die eine Aktor-Reaktion auslöst...z.B. oben genannter Sensor soll ein Lampe einschalten...
Anscheinend bin ich der einzige, der das Modul bzw. die Logik dahinter nicht blickt...
Gruß,
Ian
Warum das bei dir ohne global attr erscheint kann ich dir nicht sagen. Bei mir läuft das schon seit Jahren. Hatte am Anfang auch Probleme das zum Laufen zu bekommen.
Du musst da eigentlich nicht viel machen damit etwas passiert.
Wenn Du das noch nicht gesehen hast,
Im wiki, modul_alarm, siehe link vormail
siehst Du unter dem Bild alarm_sensors => deine Sensoren. Aber auch nur dann wenn Du sie als Attribut / alarmdevice / sensor angelegt hast.
Wenn Du das hinbekommen hast musst Du deinen Alarm Level festlegen => 0-7
und ein Regexp eintragen (Notify on Regexp steht da) => z.B. OG_TK_Wozi:open
Eine Message kannst Du anlegen, musst Du aber nicht.
Jetzt noch eine Action => Raise
Weiter unten unter Actors wieder den zugehörigen Alarm Level auswählen + Set Action (was soll passieren ? z.B. Rauchmelder an (unset / aus))
Einen Actor für Cancel hast Du eingerichtet ? Wenn nicht bitte das Wiki lesen, steht alles drin.
So sollte es funktionieren.
Gruss Tom
Hallo TimToni,
irgendwie habe ich das Gefühl, dass wir ein wenig aneinander vorbei diskutieren... ;)
Aber wenigstens möchtest Du mir helfen - Danke hierfür!
"Wenn Du das noch nicht gesehen hast,
Im wiki, modul_alarm, siehe link vormail
siehst Du unter dem Bild alarm_sensors => deine Sensoren. Aber auch nur dann wenn Du sie als Attribut / alarmdevice / sensor angelegt hast."
=> habe ich gemacht, ist klar
"Wenn Du das hinbekommen hast musst Du deinen Alarm Level festlegen => 0-7"
=> habe ich gemacht, ist klar
"und ein Regexp eintragen (Notify on Regexp steht da) => z.B. OG_TK_Wozi:open"
=> evtl. liegt hier der Hund begraben, da ich mir nicht sicher bin, in welchem Format die RegExp eingegeben werden muss...wie würde sie für MEIN Beispiel lauten?
Fenster_Terrasse:open, HUEDevice Fenster_Terrasse:open und die identischen Befehle in der Form {fhem("Fenster_Terrasse:open")} funktionieren nicht...
"Jetzt noch eine Action => Raise"
=> klar
"Weiter unten unter Actors wieder den zugehörigen Alarm Level auswählen + Set Action (was soll passieren ? z.B. Rauchmelder an (unset / aus))"
=> gleiches wie oben: vermutlich liegt es an falschen Format; woher weiß man, welches Format der Befehl (in fhem lautete dieser z.B. set Lampe on) haben muss?
"Einen Actor für Cancel hast Du eingerichtet ? Wenn nicht bitte das Wiki lesen, steht alles drin."
=> ja: ein Schalter (evtl. wieder Format Problem?) schaltet zum Test alle Alarme auf disarmed
Was mache ich falsch?
Moin,
wenn Du zitierst bitte "Zitat einfügen" liest sich einfacher.
Zitat"und ein Regexp eintragen (Notify on Regexp steht da) => z.B. OG_TK_Wozi:open"
=> evtl. liegt hier der Hund begraben, da ich mir nicht sicher bin, in welchem Format die RegExp eingegeben werden muss...wie würde sie für MEIN Beispiel lauten?
Fenster_Terrasse:open, HUEDevice Fenster_Terrasse:open und die identischen Befehle in der Form {fhem("Fenster_Terrasse:open")} funktionieren nicht...
Das Format ist dein "device:aktion" - mehr nicht.
Du brauchst bei "Sensors" nichts mit {fhem...} machen (zumindest nicht bei einem Fensterkontakt), da reicht das device:aktion
Das gleiche bei den "Actors". Da reicht z.B. set device on.
Prüfe ob deine Alarm notifiers auch gefüllt sind => alarmNotifier
Im EventMonitor schauen was passiert wenn Du deinen Actor betätigst....
Die eingetragenen Alarm Level unter Sensors musst Du mit "Set Alarms" eintragen sonst wird es auch nix.
Mehr fällt mir erstmal nicht ein.
Gruss Tom
Servus Tom,
es liegt vermutlich an den fehlenden alarmNotifier(n)....
Es werden offenbar trotz unlock und deactivate keine angelegt-dachte bisher, die wären evtl. im hiddenroom, sind sie aber auch nicht.
Weisst du, warum diese nicht angelegt werden?
Grüße, Ian
-Set Alarms- hast Du gemacht nachdem Du die -Sensors- und -Actors- Liste gefüllt hast ?
Soweit habe ich dir alles gesagt was ich prüfen würde.
Evt. hat noch jemand einen Ansatz, es lesen sicher einige mit ;) ?
Gruss Tom
Hallo,
anbei meine test settings...alarm.js ist auch installiert - was fehlt sonst noch bzw. was ist falsch?
Danke für einen Hinweis,
Ian
Hi Ian,
wenn ich es richtig gesehen habe, fehlt Dir ein Cancel-Sensor. Ich habe dazu ein device für alle Alarm-Level. Im Action-drop-down der Zeile muss dann Cancel stehen.
Grüße Markus
Hallo Markus,
besten Dank für den Tip - ich habe keine Ahnung, warum das drop-down aus Disarm stand.
Muss ich vermutlich während meiner Testerei versehentlich eingestellt haben - echt dämlich... :-\
Auf jeden Fall hat dies dazu geführt, dass die notifies angelegt wurden.
Ich habe jetzt allerdings wieder ca. 1h alles mögliche getestet, um das Modul zum Laufen zu bringen und mir auch noch mehrmals den Wiki Eintrag durchgelesen und keinen Fehler entdeckt....und seit ein paar Minuten läuft das Modul, ohne dass ich noch weitere Änderungen vorgenommen hätte.
Mir ist ein Rätsel, warum es zunächst nicht funktioniert hat - egal, Hauptsache es geht jetzt...
Auch wenn hier einige Leser sicherlich (zu recht) schmunzeln, danke ich Dir und Tom für eure Hilfe!
Grüße,
Ian
Hallo Zusammen,
ich nutze das Modul 95_Alarm und habe folgendes Problem: Beim Umscharfschalten (Disarm) habe ich eine Verzögerung von 3 Sekunden. im Loggfile erhalte ich folgende Einträge
2019.11.13 08:00:32 1: define alarm0.disarm.T at +00:00:03: Usage: define <name> at [timespec or datespec] <command>
2019.11.13 08:00:32 3: define alarm0.disarm.T at +00:00:03 ; set GPIO16_LED_Gelb off; set GPIO19_LED_Gruen on : Usage: define <name> at [timespec or datespec] <command>
2019.11.13 08:00:32 3: alarm0.disarm.N return value: [Alarm 0] disarmed from alarmSensor AlarmAusSequence with event trigger
Ich möchte die Verzögerung löschen (auf Null setzen). Wo/Wie kann ich das tun?
Guten Abend,
ich bastel gerade ein wenig mit dem Alarmmodul herum. Wirklich sehr komfortabel zu bedienen und einzurichten.
Ich habe beim Einsatz festgestellt, dass das ganze System auf Alarm steht, wenn ein Alarm ausgelöst wurde. Das hat zur Folge, dass keine weiteren Alarme mehr registriert werden.
Bei mir liegt das Problem darin, dass ich verschiedene Bewegungssensoren auslese. Einer von denen erkennt aktuell "dummerweise" auch den Weg zur Toilette, was zur Folge hat, dass der Alarm dann auch ausgelöst werden würde...
Meine Frage ist nun, ob es eine Möglichkeit gibt, den Alarm nach einer gewissen Zeit zu widerrufen, oder ob ich dafür einen Timer setzen muss?
Ich freue mich auf Eure Antworten!
Hallo,
im Alarm System gibt es zu jedem Alarm (0-7) rechts neben den Spalten Start und End die Spalte AutoCancel. Wenn Du dort z.B. 0:02 einträgst, wird der Alarm automatisch nach 2 Minuten gecanceled.
Viele Grüße
Jens
Abgesehen davon werden Alarme höherer Priorität immer noch erkannt.
Und ob man nun als Alarmdevice einen Sensor auf dem Weg zur Toilette definieren sollte, wage ich zu bezweifeln.
LG
pah
Hallo Jens, die Spalte habe ich tatsächlich gekonnt überlesen. Danke!
Hallo Peter, der Weg zur Toilette führt leider entlang einer Empore, die über dem Flur liegt. Eigentlich sollte nur der Flur überwacht werden. Ich muss da nochmal schauen, wie ich den Sensor etwas anders ausrichte, um das zu verhindern.
Danke Dir auf jeden Fall auch für die Entwicklung dieses Moduls!
Viele Grüße
Hallo,
hab das Modul Alarm an 3 unterschiedlichen Orten im Einsatz. Läuft zuverlässig und bin sehr zufrieden, seit > 1 Jahren.
In sehr selten Fällen löst man versehentlich einen Alarm aus, z.B. wenn Geofancy aus nicht erklärbaren Gründen die Alarmanlage nicht "unscharf" schält (wahrscheinlich ein Problem im Mobilfunknetz). Ich bekomme zwar auf das Handy eine entsprechende Meldung, immer kontrolliert man aber nicht. Auch die Kinder laufen mal rein.
Das Resultat ist aber fatal, da ich 2 externe dicke Sirenen habe.
Jetzt die Frage: wie schaltet ihr schnell solche "Fehlalarme" ab, falls ihr vor Ort seit.
Es sollte schnell , sicher und intuitiv sein. Intuitiv deshalb, weil zwischen den Fehlalarmlöschungen schon mal Monate liegen. Man vergisst schwierige Tastendrücken (lange, kurz, etc) schon mal.
Wie habt ihr das gelöst?
Merci
einfache Funkfernbedienung. Am besten mit nur einem Knopf. Für die eingeweihten am bekannten Ort schnell auffind- u. sicher bedienbar. Der Bösewicht hat bei plötzlichem Höllenlärm kaum die Muße minutenlang nach der Fb zu suchen. Ich behaupte, dass der "gewöhnliche" Bösewicht noch nicht einmal auf die Idee kommt.
Ich hatte hierfür zuerst einen Schlüsselschalter mit einem Funkmodul.
Hierüber würde die Anlage geschärft bzw entschärft.
Im Sommer bin ich auf RFID Kartenleser umgestiegen und diese in einer CCU angelernt und weiter an FHEM.
Das funktioniert zuverlässig.
Ich bin ein Freund der RFIDs geworden in Verbindung mit CCU, da dort die Karten leicht wieder entfernt werden können.
Danke hierfür an Jerome.
Hallo, vielen Dank für die Antworten.
@ KölnSolar: ich hatte die Funkfernbedienungen und im Einsatz. Ich nehme an, du meinst eine HM-RC-4-3. Da hast du Tasten. Theoretisch kann man auf alle 4 das gleiche Kommando legen.
Was benutzt du zum "Auschalten": Widerrufen oder Entschärfen?
@ RFID ist sicherlich auch eine gute Möglichkeit, könntest du mir bitte noch weitere Hinweise zukommen lassen?
Vielen Dank
Zitat von: UweUwe am 09 Januar 2020, 12:30:28
Hallo, vielen Dank für die Antworten.
@ KölnSolar: ich hatte die Funkfernbedienungen und im Einsatz. Ich nehme an, du meinst eine HM-RC-4-3. Da hast du Tasten. Theoretisch kann man auf alle 4 das gleiche Kommando legen.
Was benutzt du zum "Auschalten": Widerrufen oder Entschärfen?
@ RFID ist sicherlich auch eine gute Möglichkeit, könntest du mir bitte noch weitere Hinweise zukommen lassen?
Vielen Dank
Hallo,
ich baue diese Leser
https://github.com/jp112sdl/HB-UNI-Sen-RFID-RC
Für den Aussenbereich habe ich mir bei Conrad ein Gehäuse 85x56x26 bestellt und versorge die Elektronik mit 5V Netzteilen.
ZitatWiderrufen oder Entschärfen?
Lässt sich gar nicht so beantworten. Kommt ja auch auf die eigene Implementierung an. Entschärfen ist aber sicherlich der richtigere Weg, sonst löst sie ja direkt wieder aus. Wenn das aber gewünscht ist, solltest Du Dir überlegen mit Autocancel zu arbeiten. Muss man ja eigentlich wg. gesetzlicher Bestimmung sowieso. Also Alarm wird ausgelöst -> Sirenen -> Autocancel nach x Sek. -> Sirenen verstummen, Alarm bleibt scharf, neue Auslösung löst wieder die Sirenen aus
Bei mir ist es kein HM aber auch 4-Knopf. Gute Idee, die dann gleich zu belegen.
Ich habe dafür in jeder Etage einen zentralen Taster, der normalerweise eine andere Funktion hat.
LG
pah
Zitat von: plin am 03 Januar 2017, 10:09:01
Hallo pah,
unter 'Sensors' werden die Devices mit ihrem Device-Namen angezeigt. Die habe ich so belassen wie sie beim Pairen angelegt wurden (also z.B. HM_471111). Die sprechenden Namen habe ich über Aliase definiert. Lassen sich die Alias- statt der Devicenamen anzeigen (sofern definiert)?
LG Peter
Ich habe auch gerade mit dem Alarm-Modul angefangen. Mal wieder eine Klasse Arbeit, was ehrenamtlich hier geleistet wird!
Jedoch fiel mir beim ersten Schritt schon auf, dass nicht die Aliases der Devices verwendet werden.
Sollte dies mitlerweile gehen?
Ich habe Version "Alarm.version => 5.0"
So, jetzt bin ich wieder einmal in ein Problem gerannt:
Ich habe einen Alarmsensor definiert, der leider den Alarm Level 6 nicht wie gewünscht triggert/auslöst.
Hier die Def vom Sensor (DOIF im Perl Mode):
Internals:
DEF subs {
sub $SELF_DebugMessage {
my ($Message)=@_;
my $MODUL="$SELF";
my $senddebugmessages = AttrVal("$SELF","senddebugmessages","");
## Debug gewünscht?
if ($senddebugmessages eq "1") {
fhem("msg push @[Messages.Type:mt_Alarmanlage] '$MODUL': Message: $Message");
}
Log 3, $MODUL.": "."Aktion: $Message";
}
}
## WebCmd
{ if (["^$SELF$:^Ein$"]) {
## Status
set_State("on");
set_Reading("count","0","1");
}
}
{ if (["^$SELF$:^Aus$"]) {
## Status
set_State("off");
set_Reading("count","0","1");
}
}
## Benachrichtigung bei Auslösung PIR && AAA aktiv
{ if (!([$SELF:state] eq "off") ## nicht deaktiviert
and ([AAA:level6] eq "armed") ## Alarmanlage scharf
and (["^PIR:^digitalInput:.0$"]) ## beliebiger PIR löst aus
) {
## $SELF_DebugMessage("Bewegungsmelder '$DEVICE' hat ausgelöst");
## Anzahl Auslösungen hochzählen
my $count = get_Reading("count") + 1;
set_Reading("count",$count,"1");
}
}
## alle 3 Minuten Anzahl Auslösungen verringern
{[+00:03]; ## alle 3 Minuten
if (!([$SELF:state] eq "off") ## DOIF enabled
and ([AAA:level6] eq "armed") ## Alarmanlage scharf
) {
## Anzahl Auslösungen verringern
my $count = get_Reading("count");
if ($count gt 0) {
$count = $count - 1;
set_Reading("count",$count,"1");
## $SELF_DebugMessage("Count: $count");
}
}
}
FUUID 5ddc27cd-f33f-d09e-b232-f115be10e4d744cb
MODEL Perl
NAME di_p_PIR_Monitoring
NOTIFYDEV global,di_p_PIR_Monitoring,AAA,PIR.*
NR 657
NTFY_ORDER 50-di_p_PIR_Monitoring
STATE on
TYPE DOIF
VERSION 20500 2019-11-12 17:54:48
OLDREADINGS:
READINGS:
2020-01-22 20:54:35 Device AAA
2020-01-22 20:53:16 alarm 1
2020-01-22 20:52:41 block_01 executed
2020-01-22 20:52:40 block_02 executed
2020-01-22 20:54:35 block_03 executed
2020-01-22 20:56:05 block_04 executed
2020-01-22 20:53:16 count 5
2020-01-22 20:54:35 e_AAA_level6 disarmed
2020-01-22 20:50:05 mode enabled
2020-01-22 20:52:41 state on
2020-01-22 20:56:05 timer_01_c04 22.01.2020 20:59:05
Regex:
accu:
cond:
:
0:
"^di_p_PIR_Monitoring$:^Ein$" ^di_p_PIR_Monitoring$:^Ein$
1:
"^di_p_PIR_Monitoring$:^Aus$" ^di_p_PIR_Monitoring$:^Aus$
2:
"^PIR:^digitalInput:.0$" ^PIR:^digitalInput:.0$
3:
AAA:
0:
1:
2:
level6 ^AAA$:^level6:
3:
level6 ^AAA$:^level6:
di_p_PIR_Monitoring:
0:
1:
2:
state ^di_p_PIR_Monitoring$:^state:
3:
state ^di_p_PIR_Monitoring$:^state:
event_Readings:
di_p_PIR_Monitoring:
alarm:
count ^di_p_PIR_Monitoring$:^count:
attr:
cmdState:
condition:
0 if (::EventDoIf('^di_p_PIR_Monitoring$',$hash,'^Ein$',0)) {
set_State("on");
set_Reading("count","0","1");
}
1 if (::EventDoIf('^di_p_PIR_Monitoring$',$hash,'^Aus$',0)) {
set_State("off");
set_Reading("count","0","1");
}
2 if (!(::ReadingValDoIf($hash,'di_p_PIR_Monitoring','state') eq "off") and (::ReadingValDoIf($hash,'AAA','level6') eq "armed") and (::EventDoIf('^PIR',$hash,'^digitalInput:.0$',0)) ) {
my $count = get_Reading("count") + 1;
set_Reading("count",$count,"1");
}
3 ::DOIF_time_once($hash,0,$wday); if (!(::ReadingValDoIf($hash,'di_p_PIR_Monitoring','state') eq "off") and (::ReadingValDoIf($hash,'AAA','level6') eq "armed") ) {
my $count = get_Reading("count");
if ($count gt 0) {
$count = $count - 1;
set_Reading("count",$count,"1");
}
}
days:
event_Readings:
alarm ((::ReadingValDoIf($hash,'di_p_PIR_Monitoring','count') >= 3)?1:0)
helper:
DEVFILTER ^global$|^di_p_PIR_Monitoring$|^PIR|^AAA$
NOTIFYDEV global|di_p_PIR_Monitoring|PIR.*|AAA
event timer_1
globalinit 1
last_timer 1
sleeptimer -1
triggerDev
triggerEvents:
timer_1
triggerEventsState:
timer_1
internals:
interval:
intervalfunc:
localtime:
0 1579723145
perlblock:
0
1
2
3
readings:
all di_p_PIR_Monitoring:state AAA:level6
realtime:
0 20:59:05
time:
0 +00:03
timeCond:
0 3
timer:
0 0
timers:
3 0
trigger:
triggertime:
1579723145:
localtime 1579723145
hash:
uiState:
uiTable:
Attributes:
alarmDevice Sensor
alarmSettings alarm6,|di_p_PIR_Monitoring:alarm:.1|Sammelsensor PIRs|on
alias Sensor Auslösung Bewegungsmelder
devStateIcon on:ios-on-blue:Aus : off:ios-off:Ein H.*:control_arrow_up R.*:control_arrow_down .*:noIcon
event-on-change-reading .*
event_Readings alarm:(([di_p_PIR_Monitoring:count] >= 3)?1:0),
group Sensor
icon helper_doif
room Erdgeschoss->Flur,Erdgeschoss->Windfang,Erdgeschoss->Wohnzimmer,Infrastruktur->Alarmanlage
senddebugmessages 1
userattr senddebugmessages
webCmd Ein:Aus
Auf das event_Reading 'alarm' soll dabei getriggert werden, das Event kommt auch:
2020-01-22 20:52:46 DOIF di_p_PIR_Monitoring count: 3
2020-01-22 20:52:46 DOIF di_p_PIR_Monitoring alarm: 1
2020-01-22 20:52:58 DOIF di_p_PIR_Monitoring count: 4
Und die RegEx 'di_p_PIR_Monitoring:alarm:.1' sieht für mich auch OK aus...
Hier noch der relevante Teil aus dem Log (AAA war zum Zeitpunkt auf verbose 5):
2020.01.22 21:05:17 3: get TYPE=msgDialog:FILTER=NAME!=meta_Dialog:FILTER=allowed=.*(rr_Peter|everyone).* trigger : IS Alarmanlage
Außenanlagen
OG Christine
OG Cornelia
KG HAR
IS Jalousien
IS FHEM
EG Wohnzimmer
2020.01.22 21:05:18 3: msg rr_Peter: ID=1579723517.99673.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='(Außenanlagen) (EG Wohnzimmer) (IS Alarmanlage) (IS FHEM) (IS Jalousien) (KG HAR) (OG Christine) (OG Cornelia)
(abbrechen)
(beenden)
Ich kann folgendes für dich tun:'
2020.01.22 21:05:22 3: msg rr_Peter: ID=1579723522.16268.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='(Alarmanlage Ein)
(Globaler Abbruch)
(Rauchmelder Alarm Aus)
(Send Status Alarmanlage (L6))
(Send Status Alarmanlage (ALL))
(Send Status Fenster)
(Send Status Türen)
(abbrechen)
Menü IS Alarmanlage'
2020.01.22 21:06:01 3: myUtils: Alarm_Wait_Action()
2020.01.22 21:06:01 3: CUL_HM set Gong.EG.Flur_MP3 playTone 011 1 10
2020.01.22 21:06:01 3: CUL_HM set Gong.EG.Flur_LED led orangeL 10
2020.01.22 21:06:01 3: msg rr_Peter: ID=1579723561.17343.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage wird in Kürze scharf geschaltet.'
2020.01.22 21:06:01 3: msg rr_Yvonne: ID=1579723561.17343.2 TYPE=push ROUTE=TeleBot RECIPIENT=@310283471 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage wird in Kürze scharf geschaltet.'
2020.01.22 21:06:01 3: msg rr_Christine: ID=1579723561.17343.3 TYPE=push ROUTE=TeleBot RECIPIENT=@505691751 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage wird in Kürze scharf geschaltet.'
2020.01.22 21:06:01 3: msg rr_Cornelia: ID=1579723561.17343.4 TYPE=push ROUTE=TeleBot RECIPIENT=@558795122 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage wird in Kürze scharf geschaltet.'
2020.01.22 21:06:01 3: myUtils: msgType: mt_Alarmanlage, Message : Die Alarmanlage wird in Kürze scharf geschaltet.
2020.01.22 21:06:01 1: [Alarm 6] will be armed from alarmSensor web with event button, delay 0:30
2020.01.22 21:06:01 3: msg rr_Peter: ID=1579723561.24078.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='(Q)
Alarmanlage eingeschalten.'
2020.01.22 21:06:31 3: myUtils: Alarm_Arm_Action()
2020.01.22 21:06:31 3: CUL_HM set Gong.EG.Flur_MP3 playTone 013 1 10
2020.01.22 21:06:31 3: CUL_HM set Gong.EG.Flur_LED led greenL 10
2020.01.22 21:06:31 3: msg rr_Peter: ID=1579723591.11937.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist scharf geschaltet.'
2020.01.22 21:06:31 3: msg rr_Yvonne: ID=1579723591.11937.2 TYPE=push ROUTE=TeleBot RECIPIENT=@310283471 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist scharf geschaltet.'
2020.01.22 21:06:31 3: msg rr_Christine: ID=1579723591.11937.3 TYPE=push ROUTE=TeleBot RECIPIENT=@505691751 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist scharf geschaltet.'
2020.01.22 21:06:31 3: msg rr_Cornelia: ID=1579723591.11937.4 TYPE=push ROUTE=TeleBot RECIPIENT=@558795122 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist scharf geschaltet.'
2020.01.22 21:06:31 3: myUtils: msgType: mt_Alarmanlage, Message : Die Alarmanlage ist scharf geschaltet.
2020.01.22 21:06:31 3: [Alarm 6] armed from alarmSensor web with event delay
2020.01.22 21:06:31 3: alarm6.arm.dly: [Alarm 6] armed from alarmSensor web with event delay
2020.01.22 21:06:37 3: get TYPE=msgDialog:FILTER=NAME!=meta_Dialog:FILTER=allowed=.*(rr_Peter|everyone).* trigger : IS Alarmanlage
Außenanlagen
OG Christine
OG Cornelia
KG HAR
IS Jalousien
IS FHEM
EG Wohnzimmer
2020.01.22 21:06:37 3: msg rr_Peter: ID=1579723597.23551.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='(Außenanlagen) (EG Wohnzimmer) (IS Alarmanlage) (IS FHEM) (IS Jalousien) (KG HAR) (OG Christine) (OG Cornelia)
(abbrechen)
(beenden)
Ich kann folgendes für dich tun:'
2020.01.22 21:06:40 3: msg rr_Peter: ID=1579723600.35775.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='(Alarmanlage Aus)
(Globaler Abbruch)
(Rauchmelder Alarm Aus)
(Send Status Alarmanlage (L6))
(Send Status Alarmanlage (ALL))
(Send Status Fenster)
(Send Status Türen)
(abbrechen)
Menü IS Alarmanlage'
2020.01.22 21:06:48 3: Setze PIR 'PIR_EG_Flur' Reading 'count' auf 6529
2020.01.22 21:06:52 3: Setze PIR 'PIR_EG_Windfang' Reading 'count' auf 3482
2020.01.22 21:06:52 3: Setze PIR 'PIR_EG_WZ' Reading 'count' auf 18427
2020.01.22 21:06:58 3: Setze PIR 'PIR_EG_WZ' Reading 'count' auf 18428
2020.01.22 21:07:00 3: Setze PIR 'PIR_EG_Flur' Reading 'count' auf 6530
2020.01.22 21:07:27 3: Setze PIR 'PIR_EG_Flur' Reading 'count' auf 6531
2020.01.22 21:07:27 3: Setze PIR 'PIR_EG_WZ' Reading 'count' auf 18429
2020.01.22 21:07:33 3: msg rr_Peter: ID=1579723653.09757.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='Schwellwert PIR Auslösungen für Alarm erreicht'
2020.01.22 21:07:33 3: Setze PIR 'PIR_EG_Flur' Reading 'count' auf 6532
2020.01.22 21:07:40 3: Setze PIR 'PIR_EG_WZ' Reading 'count' auf 18430
2020.01.22 21:07:46 3: msg rr_Peter: ID=1579723666.95057.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='(Q)
Alarmanlage ausgeschalten.'
2020.01.22 21:07:49 3: myUtils: Alarm_DisArm_Action()
2020.01.22 21:07:49 3: msg rr_Peter: ID=1579723669.78143.1 TYPE=push ROUTE=TeleBot RECIPIENT=@168363762 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist unscharf geschaltet.'
2020.01.22 21:07:49 3: msg rr_Yvonne: ID=1579723669.78143.2 TYPE=push ROUTE=TeleBot RECIPIENT=@310283471 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist unscharf geschaltet.'
2020.01.22 21:07:49 3: msg rr_Christine: ID=1579723669.78143.3 TYPE=push ROUTE=TeleBot RECIPIENT=@505691751 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist unscharf geschaltet.'
2020.01.22 21:07:49 3: msg rr_Cornelia: ID=1579723669.78143.4 TYPE=push ROUTE=TeleBot RECIPIENT=@558795122 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist unscharf geschaltet.'
2020.01.22 21:07:49 3: myUtils: msgType: mt_Alarmanlage, Message : Die Alarmanlage ist unscharf geschaltet.
2020.01.22 21:07:49 3: Setze PIR 'PIR_EG_Flur' Reading 'count' auf 6533
Geschärft/entschärft habe ich mit Telegram; der Hinweis 'Schwellwert PIR Auslösungen für Alarm erreicht' im Log zeigt den Zeitpunkt, an dem das Event getriggert wurde. Abgefangen habe ich es mit folgendem Konstrukt:
Internals:
CFGFN
DEF ([di_p_PIR_Monitoring:"^alarm:.1$"]) (msg push @rr_Peter Schwellwert PIR Auslösungen für Alarm erreicht)
FUUID 5e28ad96-f33f-d09e-dc63-9e58f56980587650
MODEL FHEM
NAME di_PIR_Benachrichtigung
NOTIFYDEV global,di_p_PIR_Monitoring
NR 861661
NTFY_ORDER 50-di_PIR_Benachrichtigung
STATE initialized
TYPE DOIF
VERSION 20500 2019-11-12 17:54:48
READINGS:
2020-01-22 21:16:23 cmd 0
2020-01-22 21:16:23 mode enabled
2020-01-22 21:16:23 state initialized
Regex:
accu:
cond:
di_p_PIR_Monitoring:
0:
&STATE ^di_p_PIR_Monitoring$
condition:
0 ::EventDoIf('di_p_PIR_Monitoring',$hash,'^alarm:.1$',1)
do:
0:
0 msg push @rr_Peter Schwellwert PIR Auslösungen für Alarm erreicht
1:
helper:
DEVFILTER ^global$|^di_p_PIR_Monitoring$
NOTIFYDEV global|di_p_PIR_Monitoring
globalinit 1
last_timer 0
sleeptimer -1
trigger:
all di_p_PIR_Monitoring
uiState:
uiTable:
Attributes:
alias Benachrichtigung Auslösung Alarmanlage durch PIR
devStateIcon on:ios-on-blue:Aus : off:ios-off:Ein H.*:control_arrow_up R.*:control_arrow_down .*:noIcon
disable 0
group Benachrichtigung
icon helper_doif
room Infrastruktur->Alarmanlage
Ich mache bestimmt wieder einen <dämlichen> Fehler; wobei - wenn ich die PIRs direkt als Device abfrage mittels 'PIR_EG_Flur:digitalInput:.0' - also die gleiche Syntax - wird Level 6 getriggert;hm?!?
Danke für's Erhellen,
Peter
Zitat von: PSI69 am 22 Januar 2020, 21:23:49
Ich mache bestimmt wieder einen <dämlichen> Fehler; wobei - wenn ich die PIRs direkt als Device abfrage mittels 'PIR_EG_Flur:digitalInput:.0' - also die gleiche Syntax - wird Level 6 getriggert;hm?!?
Kein Fehler - ich habe das DOIF umgebaut und nutze nun ein 'normales' Reading im DOIF mit selbem Namen/Inhalt anstatt des DOIF event_Readings. Damit klappt alles - warum nicht mit dem event_Reading - keine Ahnung! Laut Eventmonitor kam das Event ja...
Tschau Peter
Hallo,
gibt es bei unser Anwender, die für "Alarm" ein funktionierendes Homebridemapping definieren konnten. Ich würde gerne über Alexa einige Einstellungen am Alarm machen, z.B. einzelne Alarme scharf stellen. Über den Weg eines dummies funkltioniert dies, eleganter ist aber homebridgemapping.
Merci
Hallo,
ich habe mehrere Sensoren, welche die Readings "PIR" - "Bewegung" oder "Ruhe" und Reading "Fenster" -"auf" oder "zu" liefern. Jetzt möchte ich im Modul Alarm auf beide Redings des Devices unterschiedlich reagieren, hab ja aber das device nur ein Mal aufgelistet ?
Gibt's dafür eine Lösung ? ::)
Beispiel Sensor
Internals:
CFGFN /opt/fhem/config/40_Alarmanlage.cfg
CODE 103
DEF 103
LASTInputDev nanoCUL
MSGCNT 341
NAME Alarm3
NR 427
RSSI -70
STATE 0
TYPE CUL_TCM97001
lastH 0
lastT 1586767674
nanoCUL_MSGCNT 341
nanoCUL_RAWMSG s67008FAA4008; 496: 9904
nanoCUL_TIME 2020-04-13 10:47:54
READINGS:
2020-04-13 10:47:54 Batterie 3.8
2020-04-13 10:47:54 Fenster zu
2020-04-13 10:47:54 Helligkeit 143
2020-04-13 10:47:54 PIR Ruhe
2020-04-13 10:47:54 state 0
2020-02-29 13:50:04 temperature 0.0
Attributes:
alarmDevice Sensor
alarmSettings |||on
alias Kueche
devStateIcon 0:message_ok 2:fts_window_2w_open_r 1:IR 3:Wecker.Immer
event-on-change-reading .*
group Alarmanlage
icon it_camera
model Eigen
room Alarm
sortby 2
Leg dir ein ReadingsProxy an, oder schreib dir eine Funktion.
Grüße
Nein, dafür reicht ein dummes "Dummy"-Device!
Wie und warum ist hier im Thread schon mehrfach (unter anderem von mir) erwähnt. Bitte selber suchen!
Grüße!
Hallo zusammen,
ich habe ein Problem damit meine Alarmanlage ein bzw. auszuschalten aus meiner TabletUI heraus. Ich weiss nicht so richtig wo das Thema hingehört hier in diesen Bereich oder in den Bereich TabletUI. Da habe ich das Problem zuerst gepostet.
https://forum.fhem.de/index.php/topic,110847.msg1049968.html#msg1049968
Entschuldigt bitte das Doppelposting. Vielleicht könnte das jemand für mich löschen. Oder kann ich das selbst tun ?
Also das Einschalten der Alarmanlage funktioniert. Ausschalten nicht. Orientiert habe ich mich am Wiki und diesem Code:
<!-- Alarm -->
<li data-row="2" data-col="8" data-sizey="1" data-sizex="1">
<header>Alarmanlage</header>
<div data-type="switch"
data-states='["armed","armwait","disarmed"]'
data-icons='["fa-lock","fa-unlock","fa-unlock"]'
data-background-colors='["red","red","green"]'
data-device="Alarmanlage"
data-get="level0"
data-get-on='["armed","armwait"]'
data-get-off="disarmed"
data-set-on="armed 0"
data-set-off="disarmed 0"
data-on-background-color="red"
data-off-background-color="green"
style="padding-top:20px">
</div>
</li>
Weiterhin ist mir aufgefallen dass das Einschalten nur klappt wenn ich einen Alarmlevel mitgebe. Was ist aber wenn ich mehrere Levels definiert und aktiv habe? Geht dass dann nicht?
Ich habe so recht keine Idee wo das Problem ist. Mein Data-Device heisst Alarmanlage. Zusätzlich habe ich mit aufgenommen:
data-set-off="disarmed 0"
Funktionieren tut dass quasi aber nicht.
Habt ihr eine Idee ???
Grüße und Danke für eure Hilfe im Voraus
sxx128
Mach Dich erst einmal vertraut mit dem Modul im Webinterface. Erst danach die "Optik" mit TabletUI.
ZitatWeiterhin ist mir aufgefallen dass das Einschalten nur klappt wenn ich einen Alarmlevel mitgebe.
Korrekt. Jeder level hat eine eigenständige Bedeutung, weshalb armed, disarmed u. canceled je level ausgeführt werden.
Levelübergreifend gibt es das nicht.
Grüße Markus
Hallo zusammen,
Ich glaube mein Problem ist hier eher das FTUI Widget Switch als das Modul Alarm.
Herausgefunden habe ich anhand des Wiki das es da wohl Abhängigkeiten gibt zwischen zwischen data-get-on und data-set-on. Verstanden habe ich das aber nicht. Könnte mir das bitte jemand erklären ???
Grüße
und Danke
sxx128
Hallo zusammen,
ich hoffe, ihr könnt mir auf die schnelle helfen :-)
Ich habe mir mit dem Modul hier eine Alarmanlage "gebaut", jedoch habe ich bei dem Punkt "notify by regex" ein Problem.
Als Sensor habe ich einen Wemos d1 mini mit einem PIR im Einsatz. Dieser funktioniert auch brav und sendet per MQTT seinen Zustand (0 oder 1).
In der Alarmanlage unter dem Punkt "notify by regex" habe ich dort einfach den Namen des Sensors "MQTT2_ESPClient_F4_CF_A2_XX_XX_XX" eingetragen.
Aktiviere ich nun die Alarmanlage, löst diese auch bei Bewegung aus.
Nun zum Problem:
Ich habe einen weiteren Wemos mit einem PIR UND einem DHT Sensor (für Temp und Luftfeutchtigkeit). Auch dieser funktioniert problemlos und sendet, zusätzlich zur Temperatur, den Zustand bei Bewegung (0 oder 1). Wenn ich nun dieses Device mit dem Namen "MQTT2_ESPClient_F4_CF_A2_YY_YY_YY" unter dem Punkt "notify by regex" eintrage, passiert *trommelwirbel* nichts.
Ich habe es auch u.a. mit dem reading versucht
MQTT2_ESPClient_F4_CF_A2_YY_YY_YY:Bewegung: 1
oder
MQTT2_ESPClient_F4_CF_A2_YY_YY_YY Bewegung: 1
oder
MQTT2_ESPClient_F4_CF_A2_YY_YY_YY:Bewegung
oder
.*MQTT2_ESPClient_F4_CF_A2_YY_YY_YY
Das ganze leider ohne Erfolg.
Im Eventmonitor kommt bei Bewegung bei beiden Sensoren , bis auf den unterschliedlichen Namen, das gleiche Event
2020-06-11 12:36:15 MQTT2_DEVICE MQTT2_ESPClient_F4_CF_A2_YY_YY_YY Bewegung: 1
Wo liegt da bitte der Fehler?
Beste Grüße
Den Alarmlevel noch nicht vollständig/richtig konfiguriert ? Dazu testweise mal regexp u. Aktoren der beiden Alarmlevel tauschen oder in den nicht funktionierenden Daten des funktionierenden einsetzen ? :-\
Grüße Markus
Hatte ich auch schon versucht. Hab die Devices einfach getauscht und auch mal beide laufen lassen. Alarm wird aber nur durch den ersten ausgelöst.
defmod alarm1.on.N notify (MQTT2_ESPClient_F4_CF_A2_XX_XX_XX)|(MQTT2_ESPClient_F4_CF_A2_YY_YY_YY) {main::Alarm_Exec("Alaramanlage",1,"$NAME","$EVENT","on")}
Dann dürfte es also nicht am Modul liegen.
Im Sinne von "Finde den Fehler durch Vereinfachung" würd ich es nun mit einem eigenen notify testen. Irgendwo muss der Fehler lokal bei Dir liegen. :(
Stimmt. Tipp: einfachere Device-Namen, das trägt sehr zur Klarheit bei...
LG
pah
Ich habe es jetzt doch lösen können.
Das Feld "Message Part |" war beim zweiten Device nicht befüllt. Dabei habe ich gedacht, es ist optional....
Trotzdem Danke.
Beste Grüße
Das ist Unsinn, natürlich kann man das leer lassen. Bitte die Anleitung lesen.
LG
pah
Was soll ich sagen....Ich habe die Anleitung gelesen. Daher bin ich auch davon ausgegangen. Es ist aber nun mal so.
Wenn das Feld leer ist, funktioniert es nicht. Wenn ich etwas hineinschreibe, dann schon.
Beste Grüße
Nein, so ist es nicht.
pah
Gibt es ausser dem Wiki noch eine detailierte Anleitung? Mir geht es speziell um die einzelnen Alarmlevel. Haben diese von Haus aus unterschiedliche Funktionen?
Gruß
Marco
Ich kenne keine andere Anleitung und ich glaube auch nicht, dass die Alarmlevel unterschiedliche Funktionen haben.
Ja, es gibt eine weitere ausführliche Anleitung in den SmartHome Hacks.
Und, wie auch schon in den Dokumentationen zu lesen: Selbstverständlich haben die Alarmlevel unterschiedliche Bedeutung - je höher de Level, desto wichtiger der Alarm, höhere Aktivierungslevel haben damit Präferenz.
Beispielsweise kann man Level 7 für echte Gefahren verwenden: Rauch, Wasser etc.
Level 6 dient bei mir dem Einbruchsalarm, usw. bis runter auf Level 0 => Irgendein Gerät müsste mal überprüft werden.
LG
pah
@Mad: Unkenntnis ist keine Schande. Man sollte aber vielleicht nicht damit werben.
Hi pah,
ich nutze Dein tolles Modul ja schon seit der Entwicklung. Aber das
ZitatUnd selbstverständlich haben die Alarmlevel unterschiedliche Bedeutung - je höher de Level, desto wichtiger der Alarm, höhere Aktivierungslevel haben damit Präferenz.
ist mir auch neu. Zumal doch hinter jedem level nur ein notify bei Ereigniseintritt die "Set Action" auslöst. Daher sehe ich dann keine Priorität der verschiedenen level aus technischer Sicht. Kannst Du das bitte etwas näher erläutern wie sich die level technisch in ihrer Priorität unterscheiden.
Grüße Markus
Semantisch gibt es diesen Unterschied schon immer, und das soll auch so bleiben. Darum heißt es ja "Level", und nicht "Number", verwendet wurde also eine ordinale statt einer nominalen Informationscodierung.
Technisch gibt es derzeit keinen Unterschied mehr - das habe ich zwischenzeitlich mal herausgeworfen. Wird aber wieder kommen. Use Case: Wer will schon, dass bei Feueralarm auch noch der Einbruchsalarm losgeht, wenn man zur Haustür rausrennt.
LG
pah
OK, danke, verstehe.
Zitat von: Prof. Dr. Peter Henning am 24 Juni 2020, 05:01:59
Ja, es gibt eine weitere ausführliche Anleitung in den SmartHome Hacks.
Und, wie auch schon in den Dokumentationen zu lesen: Selbstverständlich haben die Alarmlevel unterschiedliche Bedeutung - je höher de Level, desto wichtiger der Alarm, höhere Aktivierungslevel haben damit Präferenz.
Beispielsweise kann man Level 7 für echte Gefahren verwenden: Rauch, Wasser etc.
Level 6 dient bei mir dem Einbruchsalarm, usw. bis runter auf Level 0 => Irgendein Gerät müsste mal überprüft werden.
LG
pah
@Mad: Unkenntnis ist keine Schande. Man sollte aber vielleicht nicht damit werben.
Auf welcher Seite ist die ausführliche Anleitung im Buch zu finden?
So um die Seite 180ff. sind zwar einige Bilder, die interessanten Syntax-Beschreibungen sind auf diesen aber leider nicht vollständig abgebildet und die Bilder bilden den aktuellen Modulstand auch keineswegs ab.
Mir erscheint eine Aktualisierung der Doku nach 10 Releasewechseln durchaus auch sinnvoll. Das schafft im Übrigen mittelfristig Freizeit, da weniger Fragen von den vermeintlichen Deppen gestellt werden müssen.
ZitatDas schafft im Übrigen mittelfristig Freizeit
Herzlichen Dank für das Angebot, Ich werde mich melden, wenn ich Hilfe bei der Organisation meiner Work-Life-Balance benötige.
pah
Kein Problem. Immer gerne!
Und wo gibt es eine detaillierte (im Sinne von "verständlich") Anleitung (siehe auch Frage vom 22 Juni 2020, 09:10:14)?
Zitat von: firebladerx52 am 22 Juni 2020, 09:10:14
Gibt es ausser dem Wiki noch eine detailierte Anleitung? Mir geht es speziell um die einzelnen Alarmlevel. Haben diese von Haus aus unterschiedliche Funktionen?
Gruß
Marco
Guten Abend,
versuche mich seit einigen Tagen in das Alarm Modul einzulesen und zu testen. Habe es aktuell geschafft, den Alarm über dummy Devices zu starten, canceln oder deaktivieren. Zum Auslösen habe ich ein dummy als Actor gesetzt und dieses als Raise verknüpft. Wenn ich diesen Alarm nun auslöse, bekomme ich im Log aber nur die Meldung
2020.07.19 19:57:49 1: [Alarm 7] Cannot be executed due to condition {Alarm 7} not equal to 1 for level0cond
Ich habe als Actor ein dummy "d_AlarmAktor" und im Alarm Modul dieses mit dem AlarmLevel 7 hinterlegt...
Ich habe jetzt nochmal getestete (Screenshot 2+3), leider keine änderung... Verbose auf 5 zeigt mir im Logfile jetzt auch keine wirklichen "fehler"...
In das Feld "Condition" - oder bei deutscher Spracheinstellung "Bedingung" gehört nicht "Alarm 7", sondern eine Boolesche Größe. Wenn deren Wert nicht 1 ist, kann der Alarm nicht ausgelöst werden. Steht so auch in der CommandRef, bitte lesen.
Ergo: Wenn dieses Feature nicht gebraucht wird, einfach eine 1 hineinschreiben...
LG
pah
Danke pah! Das war es, nun läuft es ...
Bei der Nutzung des "Bedingung" Feldes ist mir folgende Merkwürdigkeit aufgefallen:
Ich gebe hier z.B.: {Value("Regensensor_Rain") eq "rain"} ein.
Dann "Parameter setzen" und "Save config".
Dann schaue ich in der fhem.cfg nach und die Bedingung ist dort auch schön abgelegt.
Wenn ich anschließend zur Alarmanlage zurückkehre, dann ist die Bedingung auf 7 Zeichen abgeschnitten, es steht dort also nur noch {Value(
Ändere ich irgendwelche andere Parameter und benutze dann erenut "Parameter setzen" und "Save config", dann wird der abgeschnittene Ausdruck auch in die fhem.cfg übernommen. Ich muss also jedes Mal, wenn ich etwas ändere, die Bedingung auf Vollständigkeit überprüfen, damit sie mir nicht zerschossen abgespeichert wird. Gottseidank habe ich derzeit nur eine Bedingung im Einsatz. (Auf Level1, habe noch nicht getestet, ob sich die Felder für die anderen Levels genauso verhalten)
Is it a bug, or is it a feature? Oder mache ich etwas falsch?
Ansonsten gefällt mir das Modul sehr gut und es macht für meinen Zwecke genau das, was es soll. :-)
Viele Grüße
Eberhard
Asche auf mein Haupt!
Beim zweiten Lese-Durchgang der ganzen Posts in diesem Thread habe ich die Antwort gefunden.
Sorry!
vy 73
Eberhard
Zitat von: Prof. Dr. Peter Henning am 10 Januar 2015, 18:10:46
Das hat nichts mit der Länge zu tun. Versuch mal 'short' statt "short".
LG
pah
@DK8JV:
' statt " verwenden.
LG
DF5FR aka pah
Hallo pah,
ich habe mit dem Hinzufügen eines Aktors ('AlarmLevel3Actor2') derzeit ein Problem, es geht um Level 3, in der cfg erfolgt beim 'Parameter setzen' unter 'level3onact' kein defmod Eintrag (mit dem at und den 30 Minuten Verzögerung) für selbigen, er wird sozusagen bei Eintritt in den Level ohne Verzögerung ausgeführt:
Internals:
FUUID 5c433c81-f33f-739f-f717-38d63708c7e9c0ed
NAME AAA
NR 479
STATE 0 1 2 3 4 5 6 7
TYPE Alarm
VERSION 5.0
DATA:
savedate 2020-09-19 13:56:20
armstate:
level0 disarmed
level1 disarmed
level2 armed
level3 armed
level4 armed
level5 armed
level6 disarmed
level7 armed
READINGS:
2016-12-09 20:12:12 level 0
2020-09-22 15:19:42 level0 disarmed
2020-09-22 15:19:42 level1 disarmed
2020-09-22 15:19:42 level2 armed
2020-09-22 15:19:42 level3 armed
2020-09-22 15:19:42 level4 armed
2020-09-22 15:19:42 level5 armed
2020-09-22 15:19:42 level6 disarmed
2020-09-22 15:19:42 level7 armed
2016-12-09 20:28:59 lockstate unlocked
2020-09-22 15:19:24 savedate 2020-09-19 13:56:20
2020-09-22 15:05:47 short
2020-09-22 15:20:23 state 0 1 2 3 4 5 6 7
Attributes:
alias Alarmanlage
armact {Alarm_Arm_Action()}
armdelay 0:30
armwait {Alarm_Wait_Action()}
cancelact {Alarm_Cancel_Action()}
disarmact {Alarm_DisArm_Action()}
icon security
level0autocan 0:00
level0cond 1
level0end 23:59
level0msg NICHT DEFINIERT
level0offact 1
level0onact 1
level0start 00:00
level1autocan 0:00
level1cond 1
level1end 23:59
level1msg NICHT DEFINIERT
level1offact 1
level1onact 1
level1start 00:00
level2autocan 0:00
level2cond 1
level2end 23:59
level2msg schwach
level2offact
level2onact {Level_2_AlarmFired_Actor()};defmod alarm2dly1 at +00:05:00 {Level_2_AlarmFired_Actor_AutoCancel()};
level2start 00:00
level3autocan 0:00
level3cond 1
level3end 23:59
level3msg offen
level3offact
level3onact defmod alarm3dly1 at +00:15:00 {Level_3_AlarmFired_Actor()};{Level_3_AlarmFired_Actor2()};defmod alarm3dly2 at +00:45:00 {Level_3_AlarmFired_Actor3()};
level3start 00:00
level4autocan 0:00
level4cond 1
level4end 23:59
level4msg offen
level4offact
level4onact defmod alarm4dly1 at +00:15:00 {Level_4_AlarmFired_Actor()};{Level_4_AlarmFired_Actor_AutoCancel()};
level4start 22:00
level5autocan 0:00
level5cond 1
level5end 05:00
level5msg Zugang
level5offact {Level_5_AlarmFired_Actor_Unset()};
level5onact defmod alarm5dly1 at +00:01:10 {Level_5_AlarmFired_Actor()};defmod alarm5dly2 at +00:04:00 {Level_5_AlarmFired_Actor_AutoCancel()};defmod alarm5dly3 at +00:00:03 {Level_5_AlarmFired_PreActor()};
level5start 00:00
level6autocan 0:00
level6cond 1
level6end 23:59
level6msg Einbruch
level6offact {Level_6_AlarmFired_Actor_Unset()};
level6onact defmod alarm6dly1 at +00:01:10 {Level_6_AlarmFired_Actor()};defmod alarm6dly2 at +00:04:00 {Level_6_AlarmFired_Actor_AutoCancel()};defmod alarm6dly3 at +00:00:03 {Level_6_AlarmFired_PreActor()};defmod alarm6dly4 at +00:00:55 {Level_6_AlarmFired_PreActor2()};defmod alarm6dly5 at +00:01:30 {Level_6_AlarmFired_Sirene_Actor()};
level6start 00:00
level7autocan 0:00
level7cond 1
level7end 23:59
level7msg Gefahr! ⚠
level7offact {Level_7_AlarmFired_Actor_Unset()};
level7onact {Level_7_AlarmFired_Actor()};defmod alarm7dly1 at +00:02:30 {Level_7_AlarmFired_Actor_AutoCancel()};
level7start 00:00
lockstate unlocked
room Infrastruktur->Alarmanlage
statedisplay color
verbose 4
List vom Aktor:
Internals:
FUUID 5f69f86f-f33f-d09e-531b-d013713dd023e330
NAME AlarmLevel3Actor2
NR 715
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm3,|{Level_3_AlarmFired_Actor2()}||30:00
alias Alarm Level 3 Actor 2 (F Bad Offen)
group alarmActor
room Infrastruktur->Alarmanlage
Deaktiviere ich Level 3 für den Aktor, wird 'level3onact' für die anderen beiden Aktoren des Levels korrekt erzeugt:
level3onact defmod alarm3dly1 at +00:15:00 {Level_3_AlarmFired_Actor()};defmod alarm3dly2 at +00:45:00 {Level_3_AlarmFired_Actor3()};
Die Anzahl der Attoren kann es ja nicht sein - mit Level 6 überschreite ich die 3 vom Level 3 ja deutlich... Besagten Aktor habe ich schon mehrfach neu erstellt und konfiguriert - selbes Ergebnis. FHEM ist aktuell.
Habe ich Tomaten auf den Augen?
Danke Peter
[EDIT]
Ich bin noch einmal durch die einzelnen Level gegangen; auch der hier passt nicht - es fehlt das 'at' vor meinem AutoCancel - Aufruf:
level4onact defmod alarm4dly1 at +00:15:00 {Level_4_AlarmFired_Actor()};{Level_4_AlarmFired_Actor_AutoCancel()};
Hier der Aktor:
Internals:
FUUID 5f3cf212-f33f-d09e-0b98-02ac182dedf52709
NAME AlarmLevel4ActorAutoCancel
NR 713
STATE ???
TYPE dummy
Attributes:
alarmDevice Actor
alarmSettings alarm4,|{Level_4_AlarmFired_Actor_AutoCancel()}||02:00:00
alias Alarm Level 4 Actor AutoCancel (F/T Offen)
group alarmActor
room Infrastruktur->Alarmanlage
Bug oder Fehler meinerseits? Ich sehe nur keinen, leider...
Peter
[EDIT2]
Es sind die Zeitangaben, trage ich beim 2.Aktor von Level 3 ebenfalls '15:00' statt '30:00' ein, erfolgt dies hier:
defmod alarm3dly1 at +00:15:00 {Level_3_AlarmFired_Actor()};defmod alarm3dly2 at +00:15:00 {Level_3_AlarmFired_Actor2()};defmod alarm3dly3 at +00:45:00 {Level_3_AlarmFired_Actor3()};
Bei Änderung in 30 Minuten, dann wieder das hier:
defmod alarm3dly1 at +00:15:00 {Level_3_AlarmFired_Actor()};{Level_3_AlarmFired_Actor2()};defmod alarm3dly2 at +00:45:00 {Level_3_AlarmFired_Actor3()};
Ich habe mir jetzt geholfen, indem ich nach dem Setzen der Parameter manuell die beiden Attribute für die Level 3 und 4 auf die richtigen Werte setze.
@pah
Das sollte doch bis zum nächsten Setzen der Parameter ohne Nebenwirkungen funktionieren?
Peter
Hmm. Schwer nachzuvollziehen - was sagt die Kiste denn, wenn eine nur minimal abweichende Zeitangabe, sagen wir 15:01 eingesetzt wurde?
LG
pah
15:01 klappt:
defmod alarm3dly1 at +00:15:00 {Level_3_AlarmFired_Actor()};defmod alarm3dly2 at +00:15:01 {Level_3_AlarmFired_Actor2()};defmod alarm3dly3 at +00:45:00 {Level_3_AlarmFired_Actor3()};
20:00 wiederum nicht, dito 02:00:00:
defmod alarm3dly1 at +00:15:00 {Level_3_AlarmFired_Actor()};{Level_3_AlarmFired_Actor2()};defmod alarm3dly2 at +00:45:00 {Level_3_AlarmFired_Actor3()};
Peter
[EDIT]
Falls relevant: bei mir läuft Buster mit den Patches Stand 04.09.20...
[EDIT2]
... Patches Stand Heute jetzt - Problem besteht weiter.
Ich habe da auch noch mal eine Frage zu dem Modul. Wie ist es denn möglich, das ich ein Gerät / Device mehrfach verwende? Bsp habe ich einen Taster, der mehrere Werte liefert, ich aber so ja nur einen abfragen kann im Modul. Oder auch, habe ich ein dummy zum aktivieren des Alarmes bsp über das Pinpad in FTUI, kann ich von dem dummy ja nur einen Wert abfragen, geht das irgendwie anders noch?
Zitat von: Fillip am 23 September 2020, 16:15:32
Ich habe da auch noch mal eine Frage zu dem Modul. Wie ist es denn möglich, das ich ein Gerät / Device mehrfach verwende? Bsp habe ich einen Taster, der mehrere Werte liefert, ich aber so ja nur einen abfragen kann im Modul. Oder auch, habe ich ein dummy zum aktivieren des Alarmes bsp über das Pinpad in FTUI, kann ich von dem dummy ja nur einen Wert abfragen, geht das irgendwie anders noch?
Jedes FHEM Device kann etweder Sensor oder Aktor für AAA sein - ist es Sensor gibt es nur eine RegEx. Leg einfach beliebig viele Dummys an, konfiguriere sie als Sensor und lege die RegEx so, dass sie auf das Event reangiert, auf das Du wartest...
Peter
Bei einem dummy mag das ja gehen, nur bei bsp einem Hue Taster ist es etwas komplizierter :o
ZitatBei einem dummy mag das ja gehen, nur bei bsp einem Hue Taster ist es etwas komplizierter
Sorry, aber das ist einfach Quatsch.
Der Dummy dient nur dazu, einen zusätzlichen Eintrag in der Sensoren- bzw. Aktorentabelle von Alarm zu schaffen - das Device selbst ist bedeutungslos.
pah
Das heißt dann, wenn ich das so richtig versteh, habe ich bsp einen Hue Taster der den State 1001, 2001, 3001 und 4001 beim tippen haben kann, das ich mir einmal das Gerät selbst als Sensor definiere, darauf dann auf das 1001 reagiere, für die anderen states dann jeweils ein dummy erstellen muss welches dann über ein notify getriggert wird, welche dann auch jeweils als Sensoren eingebunden werden?
Bitte readingsProxy anschauen, dann kann alles vom Original Device übernommen werden.
Grüße
Zitat von: Esjay am 23 September 2020, 20:20:41
Bitte readingsProxy anschauen, dann kann alles vom Original Device übernommen werden.
Grüße
Super danke, das war der Denkanstoß ;D
Nein!
Weder notify, noch readingsproxy!
Das dummy device dient nur als Speicherplatz für das regex!
Das device, auf das getriggert wird, steht im regex!
Dummy ist nur der "container" fürs regex!
So isses.
LG
pah
Hallo zusammen,
ich habe mich jetzt intensiv in das Modul Alarm eingelesen, z.B. Wiki, Forum. Ich tue mich jedoch noch etwas schwer zu verstehen, für welche Anwendungsfälle das Modul geeinget ist.
Derzeit habe ich etliche DOIF, die Devices überwachen und nach bestimmten Kriterien dann etwas auslösen, z.B. folgende
Wenn Abwesend -> Lichter zufällig schalten.
Wenn Abwesend und Haustüre geöffnet -> Flurlicht an und Telegram Nachricht (später soll dann der Rauchmelder Alarm geben)
Wenn Wassersensor warnt -> Telegram Nachricht
Wenn Rauchmelder warnt -> Telegram Nachricht
Wenn Batteriestand von diversen Geräten low -> Telegram Nachricht
Jeden Tag 0:05 -> Config speichern
Bei Abwesenheit jeden Tag 0:05 -> alle Lichter aus
Bei Anwesenheit und Nachts und Bewegungsmelder aktiv -> Licht 2 Minuten an
Jetzt Frage ich mich, ob ich lieber das Alarm-Modul nutzen oder meine alte "Strategie" über einzelne DOIF weiterverfolgen soll?
Um das Modula mal zu testen, hatte ich mir den Batterie-Check als Use Case vorgenommen, für den ich aktuell das folgende DOIF nutze:
define di_batt_chk DOIF ([":battery: low"] and [?$SELF:B_$DEVICE] ne "low")\
(set teleBot message Batterie leer: $DEVICE, setreading $SELF B_$DEVICE low)\
DOELSEIF ([":battery: ok"] and [?$SELF:B_$DEVICE] ne "ok")\
(setreading $SELF B_$DEVICE ok)
setuuid di_batt_chk xxxxxx
attr di_batt_chk do always
Dabei habe ich mir die Frage gestellt, wie ich am Besten vorgehe: (1) das Notify-Bsp aus dem Wiki (2) mein DOIF einbauen oder (3) alles über das Alarmmodul.
zu 3) Ich würde einfach jedes Device mit einem Batteriestatus als Sensor anlegen und auf ein niedriges Batterielevel checken lassen. Bei Alarm würde ich per Actor den Telebot ansteuern, eine Nachricht schicken und den Alarm wieder automatisch canceln, damit eine neue Meldung kommt, falls gleichzeitig ein anderer Sensor einen niedrigen Batteriestand hat.
Jetzt meine Frage. (3) sind zwar viele manuelle Schritte, aber im Alarm Modul sehr transparent und auch noch 1 Jahr später schnell nachvollziehbar.
Wofür benötige ich denn überhaupt das Alarm Modul, wenn ich (1) oder (2) nehme? Wäre das nicht überflüssig? Oder was ist der Vorteil?
einen Schönen Sonntag noch
derTim
Ob jemand das Modul nutzen will, muss er selbst entscheiden - dazu werde ich mich nicht äußern.
Zitatzu 3) Ich würde einfach jedes Device mit einem Batteriestatus als Sensor anlegen und auf ein niedriges Batterielevel checken lassen. Bei Alarm würde ich per Actor den Telebot ansteuern, eine Nachricht schicken und den Alarm wieder automatisch canceln, damit eine neue Meldung kommt, falls gleichzeitig ein anderer Sensor einen niedrigen Batteriestand hat.
Das ist Käse. Das geht nämlich für alle Devices gemeinsam mit einer Instanz von monitoring:
define Devices.battery monitoring .*:battery:.low .*:battery:.ok
Das Alarm-Modul überwacht nur Devices.battery.
LG
pah
Danke für die schnelle Antwort. Mir ist schon klar, dass jeder für sich entscheiden muss, ob man das Modul nutzt möchte. Genau aus dem Grund möchte ich ja verstehen, wo die Vorteile gegenüber "meiner" DOIF Sammlung sind bzw. ob das Modul überhaupt als sinnvolle Alternative geeignet ist.
Zitat von: Prof. Dr. Peter Henning am 11 Oktober 2020, 17:59:54
...
Das ist Käse. Das geht nämlich für alle Devices gemeinsam mit einer Instanz von monitoring:
define Devices.battery monitoring .*:battery:.low .*:battery:.ok
Das Alarm-Modul überwacht nur Devices.battery.
...
An meinem DOIF sieht man ja ganz schön, dass es auch eleganter bzw. für alle Devices gemeinsam geht. Einfacher nachvollziehbar oder besser zu Pflegen (insb. bei Devices mit anderen Nomenklatur) wäre es über den unter 3) beschriebenen Weg.
Wie gesagt, ich versuche ja nur besser zu Verstehen welchen Vorteil mir das Modul bringt und wo es mir das Leben einfacher machen kann. Darum geht es ja auch bei SmartHome ;)
Hi,
Geben:
https://wiki.fhem.de/wiki/Alarm_und_FTUI
Kann es sein, dass es im Abschnitt Optional: Aktivieren der Alarmanlage durch das Tablet-UI einen kleinen Fehler gibt ?
data-get-off="disarmed" müsste doch data-get-off="disarmed 0" sein ?
Nehmen:
Kann man bei der arm action unter settings irgendwie auf das Alarm level Bezug nehmen ?
Möchte Ausgeben welcher Level scharf geschaltet wurde.
Gibt es hier einen Bug ?
Ich trage im Alarm-System eine Condition für Alarm Level 1 ein.
level1cond
{Value("AAA.notcritical") eq "1"}
Nach SetParameters und Save bleibt im Alarmsystem nur noch
{Value(
übrig. Der Rest wird abgeschnitten. Im Alarm AAA steht noch die gesamte Condition.
Bei der nächsten Änderung und Save dann auch im Alarm abgeschnitten.
Vergleichende Abfragen werden in der Bedingung, mit Perl-Operatoren ==, !=, <, <=, >, >= bei Zahlen und mit eq, ne, lt, le, gt, ge, =~, !~ bei Zeichenketten angegeben.
Test it.
Grüße
Wenn ich mir recht erinnere sind das Problem in diesem Fall die doppelten Anführungszeichen; versuch mal einfache Anführungszeichen. Also ' und nicht ".
@wlp100: RTFM. Bitte.
pah
Zitat von: Esjay am 24 November 2020, 18:34:11
Vergleichende Abfragen werden in der Bedingung, mit Perl-Operatoren ==, !=, <, <=, >, >= bei Zahlen und mit eq, ne, lt, le, gt, ge, =~, !~ bei Zeichenketten angegeben.
Test it.
Grüße
Verstehe ich nicht, habe dich eq benutzt.
Zitat von: Wolle02 am 24 November 2020, 19:17:11
Wenn ich mir recht erinnere sind das Problem in diesem Fall die doppelten Anführungszeichen; versuch mal einfache Anführungszeichen. Also ' und nicht ".
Danke hat geholfen
Hallo,
ich hatte bisher die HM-SEC-SC-2 an den Türen und Fenstern verbaut. Die Funktion der Türüberwachung ist damit gegeben.
Nun habe och angefangen die Türen mit dem HM-SEC-RHS-2 zu bestücken und die vorhandenen Kontakte für andere Dinge zu verwenden.
Es ergeben sich zwei Fragen:
1. Kann ich die vorhandene Konfiguration von Fensterkontakt_Kinderzimmer1:open in Fensterkontakt_Kinderzimmer1:open||Fensterkontakt_Kinderzimmer1:tilted
ändern, damit beide Zustände abgefragt werden?
2. Wie stelle ich mit dem neuen Kontakt fest, ob das Fenster bei einem Einbruch geöffnet wurde?
Das Fenster wird sicherlich nicht durch verdrehen des Griffs geöffnet ( so meine Annahme )!
Danke für neue Ideen.
1.Fensterkontakt_Kinderzimmer1:((open)|(tilted))
2.Richtig, der Einbrecher wird in der Regel mit einem Schraubendreher den Flügel aushebeln und NICHT den Griff betätigen. Türgriffsensoren sind darum gut, um den durch Hausbewohner verursachten Status der Türen und Fenster zu überwachen - aber weniger als Einbruchswarner.
LG
pah
Zitat von: Prof. Dr. Peter Henning am 30 November 2020, 05:29:49
1.Fensterkontakt_Kinderzimmer1:((open)|(tilted))
2.Richtig, der Einbrecher wird in der Regel mit einem Schraubendreher den Flügel aushebeln und NICHT den Griff betätigen. Türgriffsensoren sind darum gut, um den durch Hausbewohner verursachten Status der Türen und Fenster zu überwachen - aber weniger als Einbruchswarner.
LG
pah
Guten Morgen,
Vielen Dank für die Hilfestellung.
So, dann mal hallöchen.
Nach 90 Seiten in diesem Thread hat man einiges gelesen ;)
Leider scheiterts aktuell schon am download der aktuellen Modulversion ebenso wie dem aufrufen der im Wiki verlinkten Doku bei SmartHome Hacks.
Beides kann ich nicht aufrufen.
Wurden die Dateien verschoben, aus dem Verkehr gezogen, etc?
Grüße
Sven
Nein, alles da. Derzeit benutzt > 300 Personen.
LG
pah
Zitat von: SvenPoetschke am 06 Januar 2021, 14:28:00
So, dann mal hallöchen.
Nach 90 Seiten in diesem Thread hat man einiges gelesen ;)
Leider scheiterts aktuell schon am download der aktuellen Modulversion ebenso wie dem aufrufen der im Wiki verlinkten Doku bei SmartHome Hacks.
Beides kann ich nicht aufrufen.
Wurden die Dateien verschoben, aus dem Verkehr gezogen, etc?
Grüße
Sven
Ich behaupte mal, dass die Dateien bereits mit Fhem ausgeliefert werden. Was sagt denn das Log wenn du die Alarmanlage definierst.
Zitat von: Prof. Dr. Peter Henning am 06 Januar 2021, 14:31:14
Nein, alles da. Derzeit benutzt > 300 Personen.
LG
pah
Das stimmt nicht ganz. Der Link im Wiki führt zu folgendem --> dpunkt.verlag Error 404 Uups! Diese Seite wurde nicht gefunden.
https://dpunkt.de/buecher/12387/9783960090120-smarthome-hacks.html
Grüße
Jou,
Modul wird standardmäßig mit geladen.
Gut zu wissen🙈
Dennoch bleibt die detaillierte Anleitung aktuell nicht erreichbar😢🤷🏼♂️
@pah, ist ne neue Version geplant oder learning by doing?☺️
Grüße
Sven
ZitatDas stimmt nicht ganz
>:( >:(
Selbstverständlich ist alles da - die Anleitung im Wiki und das Modul. Die Anleitung im Wiki ist auch hinreichend aktuell, um damit das Modul zu verwenden - und die Commandref ist immer aktuell. Der Link hat auch niemals auf den Inhalt des Buches geführt, sondern nur auf die Infoseite von dpunkt. Also was soll diese unsinnige Behauptung?
pah
Edit: Wie man am folgenden Post sieht, geht es bei der genannten Behauptung nicht um die Sache.
Die Aussage, "alles da" bezogen auf die ursprünglich von Sven angenommene Verlinkungen, ist schlicht und ergreifend falsch.
Ganz einfach.
Man hätte ja auch direkt darauf hinweisen können, dass der Link nicht zu einer Dokumentation führt.
Aber nein, lieber eine Antwort raus hauen, welche dem Fragenden nicht weiter hilft.
Grüße
Nachdem ich einmal darüber geschlafen habe: Der letzte dümmliche Post von Esjay hat mich bewogen, den Thread nach mehr als 6 Jahren zu schließen.
pah