Node: pushover-node

Sers,

hab mal nen Pushover-Node gebaut, damit ich meinem Handy über pushover.net Pushnachrichten schicken kann.
Bis jetzt nur Nachrichtentext und -titel, die API gibt aber noch mehr her. Wenn gewünscht kann ich das noch implementieren.

58

Für die Hilfetexte und die Lokalisierung habe ich Funktionen benutzt, die es mir einfacher machen aber erst mit der aktuellen Nightly verfügbar sind.
Pull-Request ist erstellt und sowie @sathya den gemerged hat, sollte der node nach apt update über den Palette-Manager zu installieren sein.

So long,
p

4 Likes

Hallo,

tolle Idee, eine Schnittstelle zu Pushover zu implementieren. Vielen Dank für die Arbeit !

Habe gerade auf das neuste Nightly 0.8.0-2934 upgedatet und wollte den Node jetzt auch mal ausprobieren.
Allerdings klappt bei mir die Installation nicht und aus irgendeinem Grund kann ich nicht auf das Repository zugreifen.

Hier die Ausgabe, wenn ich versuche den Node über sudo apt install node-blue-node-pushover zu installieren:

Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Die folgenden NEUEN Pakete werden installiert:
  node-blue-node-pushover
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 5 nicht aktualisiert.
Es müssen 5.150 B an Archiven heruntergeladen werden.
Nach dieser Operation werden 32,8 kB Plattenplatz zusätzlich benutzt.
WARNUNG: Die folgenden Pakete können nicht authentifiziert werden!
  node-blue-node-pushover

Die Ausgabe von “apt update”

Holen:1 http://archive.raspberrypi.org/debian stretch InRelease [25,4 kB]
OK:2 http://raspbian.raspberrypi.org/raspbian stretch InRelease
OK:3 https://repos.influxdata.com/debian stretch InRelease
Holen:4 https://apt.node-blue.com/nightly/raspbian stretch/ InRelease [5.377 B]
Fehl:4 https://apt.node-blue.com/nightly/raspbian stretch/ InRelease
  Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 898BB4C44F646455
Paketlisten werden gelesen... Fertig
W: GPG-Fehler: https://apt.node-blue.com/nightly/raspbian stretch/ InRelease: Die folgenden Signaturen konnten nicht überprüft werden, weil ihr öffentlicher Schlüssel nicht verfügbar ist: NO_PUBKEY 898BB4C44F646455
E: The repository 'https://apt.node-blue.com/nightly/raspbian stretch/ InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Meine erste Idee war, den fehlenden Public Key manuell über
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 898BB4C44F646455
hinzuzufügen, aber das brachte leider keinen Erfolg. Oder habe ich vielleicht etwas übersehen ?

Hat hierzu jemand eine Idee ? Vielen Dank.

Viele Grüße

FiveEights

Du kannst den node einfach über “manage palette” isntallieren, so lange homegear-nodes-optional aktuell ist. Da muss @sathya was zu sagen, warum genau das mit apt-get nicht funktioniert.

Hallo,

vielen Dank für das schnelle Feedback.

Die Installation über die Node-Blue Benutzeroberfläche war natürlich auch meine erste Idee, leider erhalte ich hier das gleiche Ergebnis:

WARNUNG: Die folgenden Pakete können nicht authentifiziert werden!
  node-blue-node-pushover

Viele Grüße

FiveEights

Ok, dann muss @sathya was dazu sagen. Bei mir hatte es damals funktioniert… ist aber schon ein bisschen her…

Hallo,

ich konnte mittlerweile das Issue mit dem fehlenden Public Key des Repository lösen, weil ich zufällig in diesem Thread sinngemäß die erforderlichen Schritte gefunden habe:

Mit folgenden Kommandos war es möglich, den Key herunterzuladen:

wget https://apt.node-blue.com/Release.key
sudo apt-key add Release.key

Jetzt funktioniert auch wieder apt update ohne Fehlermeldung.

Da ich ja bisher den Pushover-Node nicht installieren konnte, hatte ich mir zum Ausprobieren einen einfachen Flow als Workaround gebaut:
Der String, der an die Pushover-API gesendet werden soll, wird in einem Template-Node als Plain-Text erstellt z.B. token=…&user=…&message={{payload}}

Hierbei steht in Payload der eigentliche Text der Meldung. Man muss nur daran denken, anstatt Leerzeichen im Meldungstext „+“ Zeichen zu verwenden.
Die Zeichenkette aus dem Template-Node wird dann über einen http-request Node mit der „POST“ Methode an Pushover gesendet.

Da jetzt allerdings der Download des Pushover-Nodes funktioniert hat, ersetze ich so langsam alle Workarounds in meinen Flows durch den „echten“ Pushover-Node.
Bis jetzt funktioniert bei mir der Pushover-Node problemlos und mir ist auch noch keine Funktionalität aufgefallen, die ich vermisse.
Man kann ja fast alles über die Pushover Webseite parametrisieren und ich finde, das ist eine echt praktische Möglichkeit, um Infos auf das Handy zu schicken.

Viele Grüße

FiveEights

1 Like

Hier kannst du die PHP-Funktion urlencode für verwenden :slight_smile:

Super, dass es jetzt funktioniert. Freue mich über Feedback vom Pushover-Node, falls du ihn doch einsetzen solltest.

Hallo

Ich habe mittlerweile zahlreiche Instanzen des Pushover-Nodes im Einsatz und bis jetzt funktioniert alles problemlos. Das ist wirklich eine sehr nützliche und kostengünstige Möglichkeit um einfach Benachrichtigungen aufs Handy zu schicken.

Zwei Kleinigkeiten sind mir bis jetzt aufgefallen:

Im Logfile wird bei mir folgende Meldung angezeigt:

Warning: Requested URL not found: node-blue/icons/pushover/pushover.png

Das Verzeichnis icons hat bei mir gar nicht existiert (Homegear version 0.8.0-3039)

Ich habe das Verzeichnis dann manuell angelegt und pushover.png von GitHub einzeln heruntergeladen und in den entsprechenden Pfad kopiert – trotzdem erscheint immer noch die Warnung.
Der gesamte Pfad lautet bei mir

/var/lib/homegear/node-blue/icons/pushover

Ich dachte, das sei einfach zu beheben aber anscheinend gibt es da noch etwas, das ich übersehen habe…

Außerdem wird bei mir gelegentlich folgende Exception erzeugt:

Script engine (/var/lib/homegear/node-blue/nodes/pushover/pushover.php, 0aefd21d.1f11ae): PHP Notice: Trying to access array offset on value of type null in /var/lib/homegear/node-blue/nodes/pushover/pushover.php on line 125

Die Push-Meldung wird aber trotzdem korrekt erzeugt. Dieses Issue tritt bei mir nur sporadisch auf und ich kann es nicht gezielt reproduzieren, deswegen kann ich nur Vermutungen anstellen.

Könnte es sein, dass die Pushover-API manchmal keine Rückmeldung sendet oder der Node diese nicht korrekt empfängt?

Viele Grüße

FiveEights

Hey, danke für das super Feedback.

Das mit dem Icon ist mir auch schon aufgefallen - also, wenn man es aus dem Repo installiert. Lokal funktioniert das bei mir. Da müsste @sathya wegen dem packagen mal draufgucken. Gebe zu, ich tu mich da schwer.

Den Fehler in Zeile 125 sollte ich aber ordentlich abfangen. Ist das einfach ein simpler flow wo es ab und zu mal auftaucht?

Hallo,

der Flow, bei dem die Exception angezeigt wird ist in der Tat ganz einfach. Es wird nur über einen Timer einer Variable gesetzt und gleichzeitig die Pushover-Message getriggert. Sonst keine besonderen Features.

Aber wie gesagt, tritt nur selten auf und ich konnte es daher nicht genauer analysieren.

Viele Grüße

FiveEights

1 Like

Hallo,

ich verwende immer noch sehr gerne den Pushover-Node um verschiedene Statusmeldungen aufs Handy zu schicken.
Das funktioniert bei mir bis jetzt problemlos und mittlerweile ist Pushover auf allen Handys der Familie im Einsatz.

Aus diesem Grund würde ich nun gerne die Möglichkeit nutzen, Push-Nachrichten gezielt auf einzelne Geräte zu schicken.
Soweit ich das auf der Pushover-Webseite gesehen habe, ist in der API hierzu der „device“ Parameter vorgesehen, aber leider ist dieser aktuell im Pushover-Node nicht Implementiert.

Wäre es möglich, den „device“ Parameter noch in den Node einzubauen, wenn das mit vertretbarem Aufwand umsetzbar ist?

Vielen Dank.

Viele Grüße

FiveEights

Sers.

Gern - muss ich mich die Tage mal drum kümmern.

@sathya: Baust du den direkt aus meinem Repo oder hast du das irgendwo geforked?

Ich habe gerade mal durch den Quellcode geschaut - Device und User sind drin, auch im Repository.

Auch wenn ich das natürlich einbauen will/würde, du kannst alernativ einfach node-red-contrib-pushover installieren. Node-red nodes laufen ja in node-blue.