!NEW Pushover Skript by Philip Kyle Boone (philip@boone.de) !Original Skript by technikkram.net !------------------------------ !__Pushover Keys string po_api_user="DEINE API USER KEY HIER"; string po_api_token="DEINE API TOKEN HIER"; var TempString = ""; var TempInt = 0; var SystemVariable = ""; ! Standard Titel setzen (ich habe absichtlich eine Statische Titel) string po_title="HomeMatic Meldung"; ! Nachricht holen string po_message=dom.GetObject("POMessage").Value(); ! Sounds (fuer Copy und Paste zur SysVar): pushover, bike, bugle, cashregister, classical, cosmic, falling, gamelan, incoming, intermission, magic, mechanical, pianobar, siren, spacealarm, tugboat, alien, climb, persistent, echo, updown, none ! Sound Wert holen TempInt = dom.GetObject("POMessageSound").Value(); ! Entsprechende Sound String ermitteln TempString = web.webGetValueFromList(dom.GetObject("POMessageSound").ValueList(), TempInt); ! Sound setzen string po_sound=TempString; !Prioritaeten: 0=Normal; 1=High (AudioVibration auch waehrend quiet hour); 2=Emergency (Meldung Muss bestätigt werden, solange sound/Vibration); -1=Low ; -2=Lowest ! (fuer Copy und Paste zur SysVar): -2;-1;0;1;2 ! Prioritaet Wert holen TempInt = dom.GetObject("POMessagePrio").Value(); ! Entsprechende Prioritaet String ermitteln TempString = web.webGetValueFromList(dom.GetObject("POMessagePrio").ValueList(), TempInt); ! Prioritaet setzen string po_priority=TempString; !___Nur benoetigt wenn Prioritaet auf Emergency (2) gesetzt ist ! Bei Prio 2: po_retry gibt an (in sekunden), wie hauefig eine Nachricht vom Server geschickt wird (z.B. alle 30s) string po_retry="30"; ! 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). string po_expires="10800"; !------ NICHT MODIFIZIEREN------- ! String für den Pushover Request string po_request; ! PoRequest je nach Prio und System Variablen setzen 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"; } ! Fuer Debug Zwecke, der PoRequest in eine Sytem Variable setzen, damit ich immer der letzte Abruf im GUI sehen kann.. var PO_Abruf = dom.GetObject("POMRequest"); PO_Abruf.State(po_request); ! Der CuX CMD Exec Gerat mit dem PoRequest zwecks ausfuehren befullen !dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(po_request); ! Fuer Debug Zwecke, der CuXD Geraet Eigenschaft "CMD_SETS" mit dem "po_request" String setzen (Notwendig fuer CMD_RETS Aufruf unten) dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State(po_request); ! CuXD Gerät Query durchführen dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1); ! CuXD Gerät Query Resultat abrufen var RequestResultat = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State(); ! Fuer Debug Zwecke, Verweis auf meine System Variable "POMResultat" holen var PO_Resultat_VAR = dom.GetObject("POMResultat"); ! Wert der Variable "POMResultat" mit dem Request Ergebnis setzen, damit ich immer der letzte Abruf Ergebnis im GUI sehen kann.. !PO_Resultat_VAR.Variable(RequestResultat); ! SysVar Zustand speichern PO_Resultat_VAR.State(RequestResultat);