Node Red Push-Nachricht per Synology Chat

  • Es in einem anderem Thema gefragt wurde und es eventuell hilfreich sein kann, kopiere ich meinen Text hier als neues Thema.

    Dieser ist nur aus der Erinnerung und eventuell nicht vollständig, darf aber gerne ergänzt werden, bzw. darf nachgefragt werden.

    In der Synology habe ich je Handy einen Benutzer eingerichtet, mit dem man sich dann beim Synology Chat Server anmelden kann, zudem habe ich die Gruppe "NodeRed" eingerichtet. Die Einrichtung muss auch erfolgen, wenn man sich mit dem Benutzer an der Synology angemeldet hat, wenn ich es richtig in Erinnerung habe.

    Ich greife per VPN drauf zu, sollte jedoch auch mit entsprechender Portfreigabe laufen, die ich jedoch nicht so gerne empfehle.

    Erste Zeile des Anhangs ist für die Nachricht zuständig.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    MQTT-in fragt den Status ab (einen MQTT-Broker kannst du direkt in NodeRed laufen lassen, suche nach Aedes). Die Shellies müssen dann natürlich auf diesen Broker eingerichtet werden.

    RBE lässt nur geänderte Nachrichten durch. Per MQTT bekommt man regelmäßig den Status, auch ohne Änderung dessen. Dieses fange ich damit immer gerne frühzeitig ab, damit es durch nachfolgende Nodes nicht unnötig verarbeitet werden muss.

    Delay Node begrenzt die Anzahl der Nachrichten.

    Switch Node lt. Anhang, damit nur Wert "1" durch geht.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Change Node lt. Anhang. Text entsprechend anpassen, speziell die IP der Synology und den verwendeten HTTPS-Port sowie den Token, den ich hier durch "<Token>" ersetzt habe:

    Code
    https://192.168.178.123:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=%22<Token>%22&payload={"text": "Klingel Haustür"}

    Damit wird beim Auslösen der Text "Klingel Haustür" gegesendet.

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    HTTP-Request-Node lt. Anhang (als Synology Chat im Screenshot bezeichnet).

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    Ich hoffe, dass ich das Grundlegende alles erwischt habe.

  • Ich habe eben einen Fuction-Node erstellt, der den msg.payload an Synology-Chat übermittelt. Der Change-Node muss durch diesen ersetzt werden, die Nachricht muss als msg.payload eingehen.

    In den Function-Node ist folgendes einzutragen:

    Code
    msg.method = "url";
    msg.url = "https://192.168.178.123:5001/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=%22<Token>%22&payload={%22text%22: %22"+msg.payload+"%22}";
    delete msg.payload;
    return msg;

    Text entsprechend anpassen, speziell die IP der Synology und den verwendeten HTTPS-Port sowie den Token, den ich hier durch "<Token>" ersetzt habe.

    Was ich etwas ungünstig finde ist, dass der HTTP request Node ca. 15 Sekunden senden muss, bis die Nachricht rausgeht. Ein Neustart der Synology hat dieses wieder beschleunigt.

    Einmal editiert, zuletzt von Schubbie (20. Januar 2022 um 14:28)