mit großer Hilfe aus dem Forum, habe ich mir vor ca. einem halben Jahr ein Script zusammengebastelt, dass bei Abwesenheit prüft, ob noch Lichter an sind, die eingeschalteten Licher in einen String packt und diesen String per PushOver an mein Handy schickt.
Nun habe ich festgestellt, dass die Pushnachricht zwar rausgeht, jedoch der String leer ist, also nicht mit den Namen der eingeschalteten Lichter befüllt wird.
Ich nutze eine CCU 2.
Für jede Hilfe bin ich Euch sehr dankbar.
Das Bild des Programms ist angehängt.
Mein Code:
Code: Alles auswählen
!Ist noch Licht an?...Pushover
!------------------------------
var gLicht = dom.GetObject("Lichter");
string i;
string list = "Licht an: ";
integer cnton;
integer Anzahl;
integer lastLight;
if (gLicht)
{
foreach(i, gLicht.EnumIDs())
{
var item = dom.GetObject(i);
var levl = item.DPByHssDP('LEVEL');
if ((levl) && (levl.Value()>0))
{
list=list + item.Name() + ",";
cnton=cnton+1;
}
var stat = item.DPByHssDP('STATE');
if ((stat) && (stat.Value()>0))
{
list=list + item.Name() + ",";
cnton=cnton+1;
}
}
}
!Pushover Teil
!--------------------
!__Pushover Keys
string po_api_user="XXX";
string po_api_token="YYY";
!__Nachricht
string po_title="Licht noch an...";
string po_message=list;
string po_sound="pushover";
string po_priority="0";
!___Nur benoetigt wenn Prioritaet auf Emergency (2) gesetzt ist
string po_retry="30";
string po_expires="3600";
!___Erlaeuterungen
! Sounds: pushover, bike, bugle, cashregister, classical, cosmic, falling, gamelan, incoming, intermission, magic, mechanical, pianobar, siren, spacealarm, tugboat, alien, climb, persistent, echo, updown, none
!Prioritaeten: 0=Normal; 1=High (AudioVibration auch waehrend quiet hour); 2=Emergency (Meldung Muss bestätigt werden, solange sound/Vibration); -1=Low ; -2=Lowest
! Bei Prio 2: po_retry gibt an (in sekunden), wie hauefig eine Nachricht vom Server geschickt wird (z.B. alle 30s)
! Bei Prio 2: po_expires gibt an (in Sekunden), wie lange nachrichten geschickt werden sollen. Bestätigt der User, stoppt die Benachrichtigung. Beispiel: Alle 30 sekunden wird eine Nachricht geschickt, das passiert eine Stunde lang (1 Stunde = 3600 sekunden).
! Ä wird ersetzt durch %C3%84
! ä wird ersetzt durch %C3%A4
! Ö wird ersetzt durch %C3%96
! ö wird ersetzt durch %C3%B6
! Ü wird ersetzt durch %C3%9C
! ü wird ersetzt durch %C3%BC
!------ NICHT MODIFIZIEREN-------
string po_request;
if(po_priority=="2"){
po_request="/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"token=" # po_api_token # "&user=" # po_api_user # "&title=" # po_title # "&priority="# po_priority # "&sound=" # po_sound # "&retry="# po_retry # "&expire=" # po_expires # "&message=" # po_message # "\" https://api.pushover.net/1/messages.json";
}
else{
po_request="/usr/local/addons/cuxd/curl -X POST -k -H \"Content-Type: application/x-www-form-urlencoded\" -d \"token=" # po_api_token # "&user=" # po_api_user # "&title=" # po_title # "&priority="# po_priority # "&sound=" # po_sound # "&message=" # po_message # "\" https://api.pushover.net/1/messages.json";
}
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(po_request);