{"name":"PushOwer","type":"com.fibaro.binarySensor","apiVersion":"1.1","initialProperties":{"viewLayout":{"$jason":{"body":{"header":{"style":{"height":"0"},"title":"quickApp_device_645"},"sections":{"items":[]}},"head":{"title":"quickApp_device_645"}}},"uiCallbacks":[],"mainFunction":"--[[\nQuickApp um eine PushOver zu senden !\n\nVersion 1.0\n\n03.07.2020 F.Berges\n\nLegende Version :\n--------------------------\n0.0 reines Senden der minimal erforderlichen Daten\n1.0 Möglichkeit eingebaut per Szene oder per QA-Variabel\n die sendung zu kontrollieren\n mehr Dokumentiert\n\n\nFolgende Informationen soll die Sendekette endhalten, API Info von Pushover.net\n...................................................................................\nRegistrieren Sie Ihre Anwendung, legen Sie den Namen fest und laden Sie ein Symbol hoch, \nund erhalten Sie im Gegenzug ein API-Token (in unserer Dokumentation und Codebeispielenoft als APP_TOKEN bezeichnet).\nPOST eine HTTPS-Anforderung mit den folgenden Parametern: https://api.pushover.net/1/messages.json\ntoken (erforderlich) - das API-Token Ihrer Anwendung\nuser (erforderlich) - der Benutzer-/Gruppenschlüssel(nicht E-Mail-Adresse) Ihres Benutzers (oder Sie), \n sichtbar, wenn er in unserem Dashboard angemeldet ist (häufig als USER_KEY in unserer Dokumentation und Codebeispielen bezeichnet)\nmessage (erforderlich) - Ihre Nachricht\n Einige optionale Parameter können enthalten sein:\nattachment - eine Bildanlage, die mit der Nachricht gesendet werden soll; \n Weitere Informationen zum Hochladen von Dateien finden Sie unter Anhänge\ndevice - der Gerätename Ihres Benutzers, um die Nachricht direkt an dieses Gerät zu senden, \n und nicht auf allen Geräten des Benutzers (mehrere Geräte können durch ein Komma getrennt werden)\ntitle - der Titel Ihrer Nachricht, sonst wird der Name Ihrer App verwendet\nurl - eine zusätzliche URL, die Sie mit Ihrer Nachricht anzeigen können\nurl_title - ein Titel für Ihre zusätzliche URL, sonst wird nur die URL angezeigt\npriority - senden, um keine Benachrichtigung / Warnung zu generieren, immer als stille Benachrichtigung zu senden, \n als hohe Priorität anzuzeigen und die ruhigen Stunden des Benutzers zu umgehen, \n oder auch eine Bestätigung vom Benutzer zu verlangen -2-112\nsound - der Name eines der Sounds, die von Geräteclients unterstützt werden, \n um die Standard-Soundauswahl des Benutzers zu überschreiben\ntimestamp - einen Unix-Zeitstempel des Datums und der Uhrzeit Ihrer Nachricht, \n um dem Benutzer angezeigt zu werden, und nicht die Zeit, \n zu der Ihre Nachricht von unserer API empfangen wird\n\nlocal Sende_Daten = \"token=\" .. token .. \n \"&user=\" .. user .. \n \"&message=\" .. ?? .. \n \"&attachment=\" .. ?? ..\n \"&device=\" .. device .. \n \"&title=\" .. ?? ..\n \"&url=\" .. ?? ..\n \"&url_title=\" .. ?? ..\n \"&priority=\" .. priority .. \n \"&sound=\" .. sound ..\n \"×tamp=\" .. ?? ..\n...................................................................................\n\nHilfe-Quelle https://www.domotique-fibaro.fr/topic/14252-notifications-pushover-sous-hc3/?page=2\n\nBeispiel Szene :\n...................................................................................\n-- Maximal mögliche Sendedaten\n-- local sende_daten = json.encode({\"token\",\"user\",\"message\",\"attachment\",\"device\",\"title\",\"url\",\"url_title\",\"priority\",\"sound\",\"timestamp\"})\n\n-- Hier berücksichtigt !! Reihenfolge einhalten !!\n---------------------------------------------------\n-- local sende_daten = json.encode({\"title\",\"priority\",\"sound\",\"message\"})\n\n-- Das soll gesendet werden !\nlocal sende_daten = json.encode({\"Test vom HC3\",\"1\",\"alien\",\"Hier mal eine Pushover Testnachricht gesendet von meinem HC3\"})\n\n-- Nicht vergessen den richtigen QA-ID eintragen \n-- 645 ist der hier bei mir bei Euch sicher ein anderer.\n-- Auch nicht vergessen die Variabeln der QA mit den RICHTIGEN Daten füttern !\n-- token, user, device\n\nprint(\"Sendebefehl Start mit \",sende_daten) -- Das soll gesendet werden nur zur Info.\nfibaro.call(645,\"Send_PushOver\",sende_daten) -Hiermit startet Ihr den Sendevorgang\nprint(\"Sendebefehl ist raus\") -- Nur Info !\n\n--Abfragen ob die Sendung erfolgreich wahr ist einmal mit\nif fibaro.getValue (645,\"value\") == 1 then -- Versendet\n --Hier Eure Aktion\nend\n--oder mit\nif fibaro.getValue (645,\"value\") ~= 1 then -- nicht Versendet\n --Hier Eure Aktion\nend\n-- möglich.\n\n-- value ändert sich vor dem senden zu 0 und nach erfolgreichem versenden zu 1\n-- value größer als 1 ist eine Fehlermeldung\n\n-- Weiterhin bekommt ihr die Info auch in den AQ Variablen zu sehen,\n-- mit einer Delailierten Fehlermeldung\n-- Die bleibt so lange stehen bis eine Neue Sendeanforderung kommt.\n...................................................................................\n\n--]]\n\n----------------------------------------------------------------------------------\n------------------------- Ab hier bitte nichts verändern ! -----------------------\n----------------------------------------------------------------------------------\n\nfunction QuickApp:Send_PushOver(s_daten)\n--s_daten endhalten : 1=title, 2=priority, 3=sound, 4=message\n\n--print(\"Start\")\n\n-- Variablen Setzen und abholen zum senden\ntoken = tostring(self:getVariable(\"token\")) \nuser = tostring(self:getVariable(\"user\"))\ndevice = tostring(self:getVariable(\"device\"))\nself:updateProperty (\"value\", 0)\nself:setVariable(\"gesendet\",0)\nself:setVariable(\"sendefehler\",\"\")\n\n-- SendeVariabel füllen\nlocal settings = {\n -- token\n token = token,\n -- User key\n user = user,\n -- Message\n message = tostring(s_daten[4]),\n -- Device\n device = device,\n -- Title\n title = tostring(s_daten[1]),\n -- Priority\n priority = tostring(s_daten[2]),\n -- Sound \n sound = tostring(s_daten[3]),\n\n }\n\n local http = net.HTTPClient({ timeout = 5000 })\n local payload = json.encode(settings) -- umwandeln damit sie gesendet werden können\n -- print(\"payload = \", payload)\n\thttp:request(\"https://api.pushover.net/1/messages.json\", {\n options = {\n headers = {\n [\"content-type\"] = \"application/json;charset=UTF-8\"\n },\n method = \"POST\",\n data = payload\n }, \n success = function(status) -- vom Provider zurück kommenden Status auslesen\n --print(\"Status = \",status.status) \n if (tonumber(status.status) == 200) then\n print(\"Nachricht gesendet :\" ..message)\n self:updateView(\"status\", \"text\", \"Gesendete PushOver erfolgreich um : \"..os.date(\"%H:%M\",os.time())) \n self:updateView(\"message\", \"text\", message)\n self:updateProperty (\"value\", 1)\n self:setVariable(\"gesendet\",\"OK\")\n self:setVariable(\"sendefehler\",\"\")\n else \n print (\"Nachricht senden fehlgeschlagen\")\n print(\"Fehlermeldung =\",status.data)\n self:updateProperty (\"value\", 2)\n self:setVariable(\"gesendet\",\"Fehler\")\n self:setVariable(\"sendefehler\",status.data)\n end\n end,\n\t\terror = function(error) -- vom Provider zurück kommende Fehlermeldung auslesen\n print(\"Errors \",error)\n self:updateView(\"status\", \"text\", error) \n self:updateProperty (\"value\", 3)\n self:setVariable(\"gesendet\",\"Fehler\")\n self:setVariable(\"sendefehler\",error)\n end\n\t})\nend\n\nfunction QuickApp:onInit()\n self:debug(\"onInit\")\n -- Lokale Variabeln mit QA variable füllen\n token = tostring(self:getVariable(\"token\")) \n user = tostring(self:getVariable(\"user\"))\n device = tostring(self:getVariable(\"device\"))\nend\n","quickAppVariables":[{"name":"token","value":"axvr622rysaölkmfgldfmbölmdfgcjrsse3g2wvnejuzjd"},{"name":"user","value":"ukgx84qsdfvfdtc6i7yheco7oym1wfsdf4psgdci"},{"name":"device","value":"Handyapp-name"},{"name":"gesendet","value":"0"},{"name":"sendefehler","value":"\"\""}],"typeTemplateInitialized":true}}