Neues Modul für Alarmanlage

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

Vorheriges Thema - Nächstes Thema

plin

#525
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.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

justme1968

set WhatsApp send 4916xxxxxxxx Alarm: [Alarmanlage:short]
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

plin

#527
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
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

Prof. Dr. Peter Henning

ZitatTrotzdem möchte ich gerne im Sinne einer Anregung vortragen

Abgelehnt, und jetzt reicht es bitte.

pah

plin

FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

plin

#530
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.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

plin

#531
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

FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

gamauf

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

sixpack

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.

Praktiker

@ Sixpack
Du darfst keine " verwenden nimm stattdessen '
Damit geht es.

Grüße
Praktiker

sixpack

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:) :(

plin

@sixpack:

Reicht dir vielleicht ein


set pushover msg 'ALARM' [Alarmanlage:short] '1'


?
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

sixpack

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 ....

plin

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]
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

sixpack

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...