Push Nachrichten

Hallo,

ich bin zurzeit damit beschäftigt die Pushnachrichten zu implementieren.

Bei Tür und Fenster Öffnung geht auch schon alles!

Leider komme ich bei den Rauchmeldern nicht voran. Hättet ihr vielleicht noch einen Hinweis?

Bei Rauch soll der Push kommen und gleichzeitig anzeigen bei welchem Gerät der Alarm ausgelöst hat.

Vielen Dank. Robert

Hier mal der Code:

var val = dom.GetObject(„ch.Device“).Value();

string APIKey = ‚ESY:‘ # dom.GetObject(‚PushKeySmartphone‘).Value();

string event = ‚Achtung Alarm‘;

string PushText = ‚Es brennt!‘ # val;

string stdout;
string stderr;
string teilstr;
string sendtext = „“;
string sendevent = „“;

foreach(teilstr, event.Split(" „)) {
sendevent = sendevent # „+“ # teilstr;
}
foreach(teilstr, PushText.Split(“ ")) {
sendtext = sendtext # „+“ # teilstr;
}

system.Exec(’/bin/sh /etc/config/addons/mh/prowl.sh ’ # APIKey # ’ ’ # sendevent # ’ ’ # sendtext, &stdout, &stderr);

Hallo @otti21,

es hängt ganz davon ab was für ein Gerät Du genau verwendest.

Bei IP Rauchwarnmeldern kannst Du den Status wie folgt herausfinden:

var val = dom.GetObject("HmIP-RF.000A55699D6016:1.SMOKE_DETECTOR_ALARM_STATUS").Value();

Natürlich musst Du die Seriennummer durch Deine ersetzen.

PS: Wenn Du nur ein Programm mit mehreren Auslösern hast, kannst Du das auslösende Gerät wie folgt herausfinden:

string ausloeser = dom.GetObject((dom.GetObject((dom.GetObject("$src$")).Channel())).Device());

– Eddy

Hi Eddy, also wenn ich das Sript wie folgt verwende, zeigt er mir per Push Meldung auch das Gerät an?

string APIKey = ‚ESY:‘ # dom.GetObject(‚PushKeySmartphone‘).Value();

string event = ‚Achtung Alarm‘;

string PushText = ‚Es brennt!‘;

string ausloeser = dom.GetObject((dom.GetObject((dom.GetObject("$src$")).Channel())).Device());

string stdout;
string stderr;
string teilstr;
string sendtext = „“;
string sendevent = „“;

foreach(teilstr, event.Split(" „)) {
sendevent = sendevent # „+“ # teilstr;
}
foreach(teilstr, PushText.Split(“ ")) {
sendtext = sendtext # „+“ # teilstr;
}

system.Exec(’/bin/sh /etc/config/addons/mh/prowl.sh ’ # APIKey # ’ ’ # sendevent # ’ ’ # sendtext, &stdout, &stderr);

Hallo @otti21,

wenn Deine „WENN“-Bedingung korrekt ist, wird die Variable „ausloeser“ den Namen des auslösenden Gerätes beinhalten. Natürlich musst Du die Variable dann auch an die Nachricht anhängen.

Beispiel:

string APIKey = "ESY:" # dom.GetObject("PushKeySmartphone").Value();

string ausloeser = dom.GetObject((dom.GetObject((dom.GetObject("$src$")).Channel())).Device());

string event = "Achtung Alarm";
string PushText = "Es brennt - ausloesende Geraet: " # ausloeser;

string stdout;
string stderr;
string teilstr;
string sendtext = "";
string sendevent = "";

foreach(teilstr, event.Split(" ")) {
    sendevent = sendevent # "+" # teilstr;
}
foreach(teilstr, PushText.Split(" ")) {
    sendtext = sendtext # "+" # teilstr;
}

system.Exec(’/bin/sh /etc/config/addons/mh/prowl.sh ’ # APIKey # ’ ’ # sendevent # ’ ’ # sendtext, &stdout, &stderr);

– Eddy

Ein Beitrag wurde in ein neues Thema verschoben: Fragen zum Skript auf einer CCU