Mobiltelefon für Pushover zu HC3 hinzufügen

@pblacky, @eraser112
Guten Morgen
So nach etwas weitreichender recherché bin ich nun hoffentlich etwas schlauer.
Das „scheint“ nicht so ein Großes Ding zu sein.
Vorweg :
Ich muss es als QuickApp aufbauen.
Ich werde einige Sachen nicht „Variabel“ getalten

z.B
token, user, device
Das mache ich über QA Variablen so kann man die in der Konfiguration der QA ändern.
Guckst du hier

Wass kann noch so sein ?

Hier die Auswahl (von der Seite Pushover):

POST an HTTPS request to https://api.pushover.net/1/messages.json with the following parameters:

  • token (required) - your application’s API token
  • user (required) - the user/group key ( not e-mail address) of your user (or you), viewable when logged into our dashboard (often referred to as USER_KEY in our documentation and code examples)
  • message (required) - your message

Some optional parameters may be included:

  • attachment - an image attachment to send with the message; see attachments for more information on how to upload files
  • device - your user’s device name to send the message directly to that device, rather than all of the user’s devices (multiple devices may be separated by a comma)
  • title - your message’s title, otherwise your app’s name is used
  • url - a supplementary URL to show with your message
  • url_title - a title for your supplementary URL, otherwise just the URL is shown
  • priority - send as -2 to generate no notification/alert, -1 to always send as a quiet notification, 1 to display as high-priority and bypass the user’s quiet hours, or 2 to also require confirmation from the user
  • sound - the name of one of the sounds supported by device clients to override the user’s default sound choice
  • timestamp - a Unix timestamp of your message’s date and time to display to the user, rather than the time your message is received by our API

Aufruf der Funktion so :
local V1 = „Anton“
local V2 = „Berta“
local V3 = „Cäsar“
local s_daten = json.encode({„Text1“,„Text2“,V1,V2,V3,„Text3“,„Text4“,„Text5“})

for i, v in pairs(s_daten) do
print("Daten Nr. ",i,v)
end

print("Sendebefehl Start mit ",s_daten)
fibaro.call(643,„Send_PushOver“,s_daten)
print(„Sendebefehl ist raus“)

die 643 ist die ID der QA.

Muss das eine Plausibilitätsprüfung haben und einen Err-Code zurück liefern, oder einfach billig und geschmacklos Hauptsache es funktioniert ?

Wenn das so OK ist mache ich da mal mit weiter

Gruß Frank

Hallo @Berges01,
Das ging ja schnell!

1.)
Habe mir deinen Post mal durchgelesen.
Variablen technisch sollten die 3 Variablen reichen, das alte Skript kann auch nicht mehr!
2.) Plausibilitätsprüfung hatten wir in der HC2 App meines Wissens nicht, aber eine Rückmeldung ob versendet wurde oder nicht als Debug.
Weiß aber (noch) nicht wie das Debugging in einer QA funktioniert.
Kann man das irgendwie auslesen oder beim Lauf des Skriptes mitschauen? Im alten Skript sieht das so aus:

[DEBUG] 12:55:34: Saturday 27 June 2020
[DEBUG] 12:55:34: Klima EINgeschaltet (206)
[DEBUG] 12:55:34: Sound: none - Prio: -1
[DEBUG] 12:55:35: Erfolgreich versendet

Guten Morgen zusammen

So die QuickApp ist fertig und funktioniert.
War zum Glück kein Großes Ding und hat sofort funktioniert !
Die Datei runterladen, umbenennen in PushOver.fqa ab in den HC3 und ausprobieren.

Schönen Tag Euch Allen !!
Frank

PushOwer -fqa.TXT (6,4 KB)

Hallo Berges,
Vielen Dank für die rasche Umsetzung!!!
Hab das QA mal importiert und meine Variablen eingefügt. Was den Code betrifft, bin ich noch ewas unsicher wie es umgesetzt ist!
Habe unter „AKTION“ deinen Code eingefügt:

local sende_daten = json.encode({„title“,„priority“,„sound“,„message“})
–for i, v in pairs(s_daten) do
–print("Daten Nr. ",i,v)
–end
print("Sendebefehl Start mit ",sende_daten)
fibaro.call(645,„Send_PushOver“,sende_daten)
print(„Sendebefehl ist raus“)

Was kommt nun unter „Declarations“ ??

In der HC2 hab ich eine Variable mit den zu sendenden Daten befüllt und das Pushover Skript wurde dadurch getriggert , dass sich die Variable geändert hat und die Nachrich wurde gesendet.
In einem Skript aus dem man Nachrichten verschicken wollte, war das nur ein einzeiliger Code, Beispiel:

fibaro:setGlobal('PushOver',"Klima EINgeschaltet ("..SceneID.."),"..Meldung.. ",1,intermission")

Wo finde ich diese Variable „PushOver“ in deinem Skript?
Sorry dass ich etwas blöd frage, ich habe die Logik meiner HC3 noch nicht zu 100% durchschaut!!

Guten Morgen
Lade den von mir Oben geposteten QuickApp.
Dann lade den als Gerät (QuickApp).
Datei hochladen !


Danach erstelle ein Szene mit folgendem Inhalt :
Trigger:
Alle leer lassen oder den von dir gewünschten Trigger eintragen.
Aktion:

–Maximal mögliche Sendedaten

–local sende_daten = json.encode({„token“,„user“,„message“,„attachment“,„device“,„title“,„url“,„url_title“,„priority“,„sound“,„timestamp“})

–Hier berücksichtigt !! Reihenfolge einhalten !!


–local sende_daten = json.encode({„title“,„priority“,„sound“,„message“})

local sende_daten = json.encode({„Test vom HC3“,„1“,„alien“,„Hier mal eine Pushover Testnachricht gesendet von meinem HC3“})

–Das hier nur zum testen was gesendet wird!
–for i, v in pairs(s_daten) do
–print("Daten Nr. ",i,v)
–end

print("Sendebefehl Start mit ",sende_daten)
fibaro.call(645,„Send_PushOver“,sende_daten)
print(„Sendebefehl ist raus“)

So weit so Gut.
Jetzt die 645 durch die ID der grade geladenen QuickApp ersetzen.


hier steht die ! (645 bei mir).
Schaue dir die Variabelen-Kette sende_daten an da trägst du jetzt deinen gewünschten Text ein.
(Das ist hier völlig Anders als bei deinem Beispiel !)

Des Weiteren noch diese Einträge erledigen !


Diese brauchst du nur einmal eintragen.
Auch den QuickApp brauchst du nicht zu verändern das ist dabei völlig unnötig ich denke mal noch Bequemer geht es nicht.

Nur Variablen füllen und den Call machen der Rest kommt von alleine !
Denke Kontrolle kommt auch aber nur als Debug im QuickApp da ist noch Potential für Verbesserung um das auch auslesen zu können.
Ich hoffe ich habe es so erklärt das du zurecht kommst.

Grüße aus dem Sauerland
Frank

Hallo @Berges01,
Hab es gerade geschafft, das ester Pushover mit deiner QuickApp zu versenden!!
Deine Szene schickt die Daten direkt über den „json.encode“ an die QuickApp :wink:
Da hatte ich meinen Gedankenfehler, da ich dachte die Szene würde das über eine Globale Variable machen!

Man kann also entweder im Skript mit der lokalen Variable „sende_daten“ arbeiten, oder das ganze auf einen Einzeiler ohne Debug reduzieren, dann sieht es so aus:

fibaro.call(645,"Send_PushOver",json.encode({"Test vom HC3","-1","NONE","Hier mal eine Pushover Testnachricht gesendet von meinem HC3"}))

Wobei „645“ durch die ID der QuickApp ersetzt werden muss!

Der DebugCode:

for i, v in pairs(s_daten) do
  print("Daten Nr. ",i,v)
end

Hat in meinem Test einen Fehler ausgelöst:

[30.06.2020] [11:18:03] [ERROR] [SCENE12]: (load):3: bad argument #1 to 'for iterator' (table expected, got nil)

Da der Code nur für Infozwecke dient, nicht weiter schlimm, habe ihn einfach auskommentiert :wink:

Wichtig:
Was etwas „tricky“ war sind die Anführungszeichen!
Diese müssen direkt im Code händisch ersetzt werden, da sie in deinem Text anders dargestellt werden, als LUA sie erwartet…

1 „Gefällt mir“

Ich teste gerade in einigen Skripten die Pushover QA.
Beim Versenden von mehreren Nachrichten hintereinander innerhalb kurzer Zeit kommt meist nur die erste Nachricht an.
Man muss dann immer so ca. 3-4 Sek warten, bis die nächste Nachricht verschickt werden kann.
Ist das so?
Oder kann man da noch was beschleunigen?

Ich bekomme da immer nur diesen Error angezeigt: (load):1: unexpected symbol near ‚<\226>‘

Habe die Datei hochgeladen und den Inhalt in eine LUA Szene kopiert und die ID angepasst… :neutral_face:

Damit erhalte ich in der Szene zumindest keinen Fehler mehr. Aber es kommt noch nichts an. Was muss ich in der QA denn bei Mobilfunk device eintragen?

@eraser112
Hast du die ID des QA angepasst?
Die Zahl „645“ ist bei dir sicher anders!

Hallo zusammen

die ID645 ist die ID bei mir.
Schaut mal bei Euch rein, bei dem Bildschirmauschnitt von mir (oben) seht Ihr wo.
Ohne die Mobilfunk Device kannst du den Teilnehmer angeben auf der die PushOver angezeigt werden soll.
Schaut mal in der App nach da steht der Device-Name drin.
Unter den drei Strichen oben Links findet Ihr Settings.
Darunter findet Ihr den Device name.
Sorry aber ich dacht ich hätte das genug ausdokumentiert und oben beschrieben.
Mea Culpa
Gruß Frank

Das mit der Wartezeit zwischen den PushOver kann ich nicht sagen.
Das ist auch für mich Neuland.
Ich kannte das vor Euren Mails überhaupt nicht und dachte Ihr würdet das kennen.
Ich hatte vorher einen „homee“ und da gab es das nicht, der hat keine Hochsprache und damit ist das unmöglich hinzubekommen.
Eigendlich ist das ganz einfach man pacht alle Informationen in einen Json-String und sendet den an die Webadresse von PusshOver.
Dann bekommt man ein OK zurück (200) oder eine Fehlermeldung (4xx) gefolgt von einer Fehlerinfo.
Eigentlich Simpel.
Bei der Webadresse PushOver.net erhält man da genauere Info (Leider nur in Englisch).
Gruß Frank

Ihr könnt einen QA auch Debugen!
Schaut so sieht das dann aus !


In den QA unter bearbeiten reingehen und unten Links das Symbol anklicken dann geht wie bei der Szene ein Fenster auf.
Da könnt Ihr sehen was da vor sich geht.
Print´s werden angezeigt usw.
Da findet Ihr auch die Fehlermeldung wenn es denn eine Geben sollte.
Ich hoffe die Infos helfen Euch weiter wenn nicht sagt mir was ich an der QU verändern soll.
Gruss Frank

Hallo @Berges01,
Ich denke es ist ausführlich genug dokumentiert, und du hast das toll programmiert, vielen Dank!!

@eraser112
Ich weiß nicht ob du Pushover vorher schon verwendet hast.
Es ist essentiell wichtig, dass die ID des Gerätes, im Skript über die Variable „device“ EXAKT mit dem Namen übereinstimmt, den du beim Anlegen auf der Pushover Webseite angegeben hast!!!
siehe hier!


Sonst kommen die Nachrichten NICHT an!

1 „Gefällt mir“

Das ist nicht alles von mir ich hatte Hilfe siehe im Dokuteil des Programmcodes.
Ich habe bei unseren Nachbarn den Franzosen Wissen abgezogen ! :wink:
Hilfe-Quelle https://www.domotique-fibaro.fr/topic/14252-notifications-pushover-sous-hc3/?page=2
Ich kann kein Französisch und muß dafür Google bemühen oder vom Edge übersetzen lassen.
Die Seite ist sehr Aktiv und Hilfreich wenn ich das nur direkt lesen könnte.

@Berges01 …finde ich klasse von dir, dass du dich so bemühst!

1 „Gefällt mir“

Nur wenn wir uns gegenseitig helfen, wird es für alle einfacher und alle Profitieren davon.
Das Hier so wenige Ihren Senf dazu geben und den Anderen helfen wollen ist für ein Forum traurig.
Meine Programmierkenntnisse sind 30 Jahre alt und kommen aus dem Assambler,OS9 und Fortran77 also Alte Kamellen.
Moderne Sachen muss ich erst noch Lernen also genau so ein Neuling wie viele Andere hier.
Aber was ich kann, ich kann versuchen zu helfen.
Gruss Frank

1 „Gefällt mir“

Ich hatte das Mobilfunk Device falsch geschrieben, das war der Fehler.

Viiiiiielen Dank Frank!!! Und sag noch einmal, du hast nicht so viel Ahnung von Lua, oder dem HC3 oder sonst was :laughing: :rofl:

Läuft jetzt alles!!! :v:

1 „Gefällt mir“

Hallo zusammen

So das hat mir noch keine Ruhe gelassen.
Ich habe den QU noch verändert, jetzt könnt Ihr auch abfragen ob er denn versendet wurde und wenn nicht welcher Fehler vorliegt.
Das wahr bedeutend mehr Arbeit als alles Andere da es schlecht dokumentiert und stark reglementiert ist.
Schaut in den QA da habe ich das dokumentiert.
Viel Spaß beim Probieren.

Nicht vergessen !
Die Datei runterladen, umbenennen in PushOver.fqa ab in den HC3 und ausprobieren.
PushOwer-fqa.txt (8,9 KB)

Hallo Frank,
Habs gerade eingebaut!
Hab gesehen, dass es jetzt ein paar Variablen mehr gibt.
Wo kann man diese Infos abfragen?