Hallo und schönen guten Tag,
seit ca. 4 Wochen beschäftige ich mich mit dem Thema FHEM und Alarmanlage. Ich habe schon einige Hürden hinter mir, im Moment scheitere ich an folgenden Problem und finde auch mit vielen Suchen keinen Ansatz. Ich habe diverse Fensterkontakt, die einen Einbruch melden können. Per Zeitfunktion wird die Alarmanlage scharf geschalten und das DOIF n_Alarm_Tuer sendet mir auch brav eine Nachricht.
Der Wunsch ist jetzt zu wissen welche Tür den Alarm auslöst. Ich habe dazu einen Dummy "Wer" definiert, STATE wird mit dem entsprechenden Wert belegt, das funktioniert auch noch. Die Frage ist jetzt wie kann ich den aktuellen Wert von WER "STATE" per message versenden?
define Wer dummy
define n_Wer notify n_Tuer_auf:cmd_event:.* set Wer %EVTPART1
define n_Alarm_Tuer DOIF (([Alarm_scharf] eq "ja") and ([Tuer_auf] eq "ja"))(set Alarm ja;;set telegramS message Einbruch Tür Wer: $state)
Momentan schauen die Befehle wie beschrieben aus. Ich erhalte die folgende Meldung gesendet "Einbruch Tür Wer: $state" Da sollte aber stehen Einbruch Tür XXX
Ich danke jetzt schon allen, die mir antworten.
Stefan
Die Befehlsreferenz gibt auf die meisten Fragen eine Antwort ;)
Schau mal unter den Perl-Besonderheiten und den Erläuterungen zum set-Befehl nach.
Wo hast Du dieses Beispiel her?
set telegramS message Einbruch Tür Wer: $state
Konntest Du die Antwort finden?
Nebenbei: Setz Deinen Code bitte in Code Tags, dann ist er lesbarer.
Hallo Ellert.
ich bin nicht nur bei FHEM neu, sondern auch im Forum. Das mit den Code Tags habe ich jetzt gefunden. :)
Die Lösung für mein Problem leider noch nicht!
set telegramS message Einbruch Tür
Diese Nachricht funktioniert. Ich möchte aber den Wert aus dem Dummy "Wer", der dort in STATE steht hinter Einbruch ausgeben.
Gruß S.
Was er meint ist hier: http://fhem.de/commandref_DE.html#perl besonders auf Sachen wie "Value" und "ReadingsVal" achten.
Weiterhin kann ich dir dieses Modul empfehlen: http://fhem.de/commandref.html#Alarm Da kannste dir die Arbeit sparen und hast noch viele andere tollen Funktionen ;)
Zitat von: SHOFHEM am 04 August 2016, 21:59:43
Hallo Ellert.
ich bin nicht nur bei FHEM neu, sondern auch im Forum. Das mit den Code Tags habe ich jetzt gefunden. :)
Die Lösung für mein Problem leider noch nicht!
set telegramS message Einbruch Tür
Diese Nachricht funktioniert. Ich möchte aber den Wert aus dem Dummy "Wer", der dort in STATE steht hinter Einbruch ausgeben.
Gruß S.
Willst Du das Internal verwenden oder das Reading des Gerätestatus?
Was ist der Grund, dass die Angaben in der Befehlsreferenz nicht geholfen haben?
Zitat von: SHOFHEM am 04 August 2016, 19:36:04
Hallo und schönen guten Tag,
seit ca. 4 Wochen beschäftige ich mich mit dem Thema FHEM und Alarmanlage. Ich habe schon einige Hürden hinter mir, im Moment scheitere ich an folgenden Problem und finde auch mit vielen Suchen keinen Ansatz. Ich habe diverse Fensterkontakt, die einen Einbruch melden können. Per Zeitfunktion wird die Alarmanlage scharf geschalten und das DOIF n_Alarm_Tuer sendet mir auch brav eine Nachricht.
Der Wunsch ist jetzt zu wissen welche Tür den Alarm auslöst. Ich habe dazu einen Dummy "Wer" definiert, STATE wird mit dem entsprechenden Wert belegt, das funktioniert auch noch. Die Frage ist jetzt wie kann ich den aktuellen Wert von WER "STATE" per message versenden?
define Wer dummy
define n_Wer notify n_Tuer_auf:cmd_event:.* set Wer %EVTPART1
define n_Alarm_Tuer DOIF (([Alarm_scharf] eq "ja") and ([Tuer_auf] eq "ja"))(set Alarm ja;;set telegramS message Einbruch Tür Wer: $state)
Momentan schauen die Befehle wie beschrieben aus. Ich erhalte die folgende Meldung gesendet "Einbruch Tür Wer: $state" Da sollte aber stehen Einbruch Tür XXX
Ich danke jetzt schon allen, die mir antworten.
Stefan
statt $state müsstest du [Wer] verwenden. Allerdings lässt sich dein notify sicherlich auch gleich mit DOIF abdecken.
Gruß
Damian
Hallo Damian,
vielen Dank für deine Antwort. Wie gesagt ich bin Newbie und hab noch so meine Probleme.
der Code sieht jetzt so aus.
define n_Alarm_Tuer DOIF (([Alarm_scharf] eq "ja") and ([Tuer_auf] eq "ja"))(set Alarm ja;;set telegramS message Einbruch Tür [n_Wer])
Die Meldung die ich erhalte lautet "Einbruch Tür 2016-08-05 09:14:54"
Welche Argumente muss ich noch anfügen, dass STATE angezeigt wird?
VIIIEEELLLLEN Dank
S.
Hallo Ellert,
ich dachte das Internal und das Reading haben den identischen Wert (siehe Bild Antwort an Damian). Nach dem letzten Test habe ich gelernt, dass das nicht so ist. Ich möchte das Internal STATE auslesen.
Gruß Stefan
Warum schreibst Du [n_Wer] wenn Du [Wer] wissen willst?
Hallo Otto,
vielen Dank für den Tipp, da hatte sich bei mir im Kopf was quergelegt.
Jetzt klappts!!
Danke an alle
Stefan
P.S. Muss ich um den Forumregeln zu entsprechen etwas am Status des Beitrages ändern??
den Post Titel auf [erledigt] setzen.
Freut mich, dass es geklappt hat. Und wie du siehst führen viele Wege nach Rom :)
Zitatden Post Titel auf [erledigt] setzen.
Mir hat man gesagt "auf [gelöst] setzen". So sieht man es auch oft. Wäre schon und übersichtlich, wenn man da einheitlich bliebe.
Ob das den Bock fett macht? Man kann froh sein, wenn es überhaupt geändert wird :)