NEWS
gotify - eine flinke selfhosted Alternative zu Pushover&Co.
-
seit längerer Zeit sende ich mir wichtige Nachrichten und Alarmmeldungen aus iobroker mit pushover, telegram und anderen Diensten auf mein Handy. Diese Dienste sind entweder kostenpflichtig, werden von unerwünschten Organisationen mitgelesen und/oder weisen erhebliche Latenz auf. Deshalb suchte ich eine bessere Alternative und wurde mit Gotify fündig. Dieses System besteht aus einem open source server, den man sich auf einem eigenen Webspace installieren kann und einer App für Android-Handys. Die Installation beschränkt sich im Wesentlichen auf das downloaden und starten einer binary. Die Push-Nachrichten werden per http-post an die rest-api des gotify-servers abgesetzt, was mit iobroker skripting sehr einfach zu bewerkstelligen ist. Für diejenigen, die Wert auf ein flinkes und sicheres (SSL) self hosted System Wert legen, ist dies sicher ideal.
Weitere Info auf https://gotify.net
https://hub.docker.com/r/gotify/server
https://webworxshop.com/self-hosted-push-notifications-with-gotify-and-home-assistant/?pk_campaign=hass-community -
Hey & Hallo...
ich habe seit ein paar Tagen auch eine Gotify-Instanz am laufen und würde diese gerne nun als Ersatz für verschickte Meldungen nutzen, die bislang immer an Telegram gingen.
Hast Du einen Tipp für mich bzw. ein Beispielscript, wie man das umsetzen kann.
So richtig verstehe ich diese Api und das Scripting dazu nicht.. -
mal eine frage - ich nutze zum handy pushover und zum iobroker server den iot service über iot adapter
wo muss den dieser server stehen - lokal (z.b proxmox) oder bei einem hoster(extern)
-
Ich hab Gotify in einem Docker-container in einer Proxmox-VM zuhause laufen.
Hab das ganze dann hinter einem Webserver mit ReverseProxy liegen, wo eine Domain wie zB. gotify.meinedomain.tld hinterlegt ist, so dass ich auch Push-Meldungen bekomme, wenn ich unterwegs bin.Ansonsten würde ich ja nur Meldungen erhalten, wenn ich zuhause bin,
-
also müßte es mit proxmox (ohne docker) und myfritz (als offizielle adresse) möglich sein
-
Naja... Proxmox ist ja nur eine Plattform, auf der Du virtuelle Maschinen verwalten kannst.
Du brauchst also schon eine VM, die auf Proxmox läuft, um so ein Vorhaben umzusetzen.
Wie das dann mit der myfritz-adresse läuft usw weiß ich nicht, da ich damit einfach keine Erfahrungen habe. Eine reine Portweiterleitung auf Gotify halte ich nicht für zielführend, weil Du dort keine HTTPS/Let's Encrypt Sicherheit hast, sofern ich das beurteilen kann.
Aber hier haben andere User sicher mehr Erfahrungen. -
@nocci ja, war mir klar, das ich einen container oder vm brauche - wohl mit apache2 (der regelt dann das reverse proxy - so wie ich es verstanden habe) und dem gotify server
hier hat sich jmd ausgelassen, wie man das mit der fritzbox machen kann - https://tinkerblog.net/sicherer-zugriff-von-ausserhalb/
scheint aber ein größeres project zu werden, bis das alles sicher ist und läuft - letztlich kann man nur hoffen, dass diese anleitung mit erfolg läuft - wenn nicht, muss erstmal "unendlich" gegoogelt werden
-
@nocci ... um genau zu sein, ich habe ein script direkt auf der homematic-zentrale laufen, dies um die Latenz-zeit möglichst niedrig zu halten. Im Grunde ist das ein curl-aufruf, der sicher auch in iobroker zu bewerkstelligen ist.
curl "https://mein.server.com:8088/message?token=xxxxxxxxxxxxxxxx" -F "title=my title" -F "message=my message" -F "priority=5"
den Aufruf kannst du auf der linux konsole testweise direkt eingeben. (mit den eigenen Daten natürlich).
-
@liv-in-sky also ich hab den gotify-server gehostet aber es geht natürlich auch ein eigener Server zuhause, wenn der mittels dyndns vom internet aus erreichbar ist. (Portweiterleitung, SSL empfehlenswert).
-
@nocci hier ein Beispiel für iobroker javascript.
//--------------Gotify skript //--------------start on({id: "hm-rpc.3.bewegungsmelder.xyz}, function (dp) { if(dp.state.val) log('Bewegung erkannt'); //-------------- // zusätzliches NPM Module axios bei der Javascript Instanz einfügen const axios = require("axios"); //--------------timestamp var ts = new Date(); ts = formatDate(ts, "hh:mm") + " \t"; //--------------ende timestamp var url = "https://own server.com:8088/message?token=123433333333cgy"; var bodyFormData = { title: ts , message: "Alarm mittels iobroker skript", priority: 5 }; axios({ method: "post", headers: { "Content-Type": "application/json" }, url: url, data: bodyFormData }) .then(function(response) { console.log(response.data); }) .catch(function(error) { if (!error.response) { console.log(error); } else { console.log(error.response.data); } }); });
-
Ich habe jetzt auch eine VM mit Gotify laufen (Nginx Reverse Proxy). Funktioniert hervorragend. Der Aufruf von ioBroker aus funktioniert bei mir über die intere IP der VM und als Server in der App habe ich den externen Aufruf auf Gotify (subdomain.meineDomain.xy) eingetragen. SSL + sichere PW für den Account sollte für den externen Aufruf verpflichtend sein. Es ist auch nicht schwer, eine Website über Let's Encrypt mit einem passenden Zertifikat zu versorgen.
Der Aufruf eine Pushmitteilung zu senden habe ich mittels Blockly über den exec Baustein realisiert.Bei "Text" einfach den Link im Post von starfish einfügen und anpassen.
-
Wow... ich danke Euch vielmals für die Hilfe.
Das hat mich wirklich weiter gebracht und ich bin sehr dankbar dafür.... und es tut mir leid, dass ich mich erst jetzt wieder melde, da ich zwischenzeitlich mit einem Umzug zu tun hatte.