BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Fragen zur Anbindung / Integration von VIOLET an Hausautomationssysteme.
Antworten
Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

VIOLET kann alle Benachrichtigungen, die per Email oder PUSH Nachricht versendet werden können, auch als HTTP-Request (GET oder POST) an Fremdsysteme absetzen (z.B. die eigene Hausautomation). Über diese Requests können Warnungen und Alarme dann in eigenen Systemen verarbeitet werden. Die Empfänger Schnittstelle der Hausautomation musst entsprechend selbst bereitgestellt werden (wir können dazu keinen Support bieten).

Detaillierte Beschreibung: Siehe hierzu Bedienungsanleitung, Punkt 27 ff
Fehlercode-Liste: Bedienungsanleitung, Punkt 27.2



.

tnsturm
Beiträge: 16
Registriert: 9. April 2024, 23:07
Becken Standort: Outdoor
Wasserinhalt in m³: 30
Abdeckung: Deck
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von tnsturm »

Hallo Alex,

viele "Fremdsysteme" bieten für Webhooks nur noch den Aufruf per HTTPS an... wie kann man das in der Violet konfigurieren, anscheinend wird nur HTTP angeboten?

Grüße
Torsten

Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

Netzwerkintern nur http an Port 80.
Nachdem Du weder auf local domains noch auf IP Adressen regulär gültige Zertifikate ausstellen kannst, kann das alles nur "self-signed" sein und ist damit eigentlich nicht verifizierbar.

tnsturm
Beiträge: 16
Registriert: 9. April 2024, 23:07
Becken Standort: Outdoor
Wasserinhalt in m³: 30
Abdeckung: Deck
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von tnsturm »

Homey macht das wie viele andere auch inzwischen über einen Cloudproxy... analog zum Violet Fernzugriff.
https://apps.developer.homey.app/cloud/webhooks

Du schreibst:"Netzwerkintern nur http an Port 80"... d.h. extern wie hier geht dann doch auch https?

Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

Ja, verstehe. Dafür war es aber nicht gedacht, sondern nur zur "Weitergabe" an lokale Systeme.

Über ein Cloud-System - können wir nicht supporten. Das was Homey macht, ist nur eine von ... pfff... 50 möglichen Authentifizierungsmethoden und Formatierungen (hier mit ID und SECRET, JSON formatiert, so wie es in dieser Anleitung aussieht (keine FIELD/VALUE pairs, so wie der POST in VIOLET umgesetzt ist) ... und wir müssten plötzlich alle Varianten an Formatierungen und vorallem Authentifizierungen davon supporten und unterstützen - das geht nicht.

tnsturm
Beiträge: 16
Registriert: 9. April 2024, 23:07
Becken Standort: Outdoor
Wasserinhalt in m³: 30
Abdeckung: Deck
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von tnsturm »

klar, Webhooks sind in der ganzen Breite kaum umfänglich zu unterstützen.

Ich habe noch eine andere Möglichkeit per http gefunden, das würde aber einen anderen Port als 80 erfordern...
Funktioniert denn so eine URL theoretisch, auf Anhieb hat es zumindest nicht funktioniert:
http://homey:5080/webTriggerAdv/violetmessage
Fehlermeldung bei Testnachricht in Violet: SERVER/URL NOT FOUND. ERR.CODE: ENOTFOUND
Direkt im Browser funktioniert es.

Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

hm... wenn Du das so im Browser aufrufst... siehst Du da was anderes außer "Seite nicht erreichbar"?
Eine wirklich gültige Adresse ist das ja erstmal nicht (also nur http://homey:5080... ) müsste ja zumindest mal was wie homey.local oder homey.irgendwas (was immer sie ihm beigebracht haben) ... oder am besten die IP des homey-servers (mit dann dieser Portnummer hinten dran) in Deinem Netzwerk sein?!

Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

Hab grad nochmal gekuckt (nicht getestet). Vollständige URL/IP, mit nem abweichenden Port hinten dran, sollte gehen

tnsturm
Beiträge: 16
Registriert: 9. April 2024, 23:07
Becken Standort: Outdoor
Wasserinhalt in m³: 30
Abdeckung: Deck
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von tnsturm »

Guten Morgen,

http://homey:5080 ist in der Praxis schon gültig, der lokale DNS-Server interpretiert das als Abkürzung und hängt seine eigene Domain dran:

Code: Alles auswählen

C:\> nslookup homey
Server:  fritz.box
Antwort:
Name:    homey.fritz.box
Address:  192.168.180.188
Die vollständige Adresse lautet: http://homey.fritz.box:5080/webTriggerAdv/violetmessage, der Browser bekommt dann einen Status 200 zurück (sichtbar in den Developer Tools):

Code: Alles auswählen

Anforderungs-URL: http://homey.fritz.box:5080/webTriggerAdv/violetmessage?test=112
Anforderungsmethode: GET
Statuscode: 200 AdvancedWebTrigger Acknowledged!
Remoteadresse: 192.168.180.188:5080
Ich habe in der Violet eingetragen:

Code: Alles auswählen

URL/IP zur Empfänger-API [ohne http://]:  homey.fritz.box:5080
Pfad zur Empfänger-API [inkl. '/']: /webTriggerAdv/violetmessage
Klick auf Testnachricht senden: SERVER/URL NOT FOUND. ERR.CODE: ENOTFOUND
Im Logfile des Webservers ist nichts zu sehen... also nehme ich an, der Fehler liegt nicht im Pfad sondern eher in der URL und es kommt gar nicht zum Request an den Webserver.

Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

Code: Alles auswählen

URL/IP zur Empfänger-API [ohne http://]:  homey.fritz.box:5080
Pfad zur Empfänger-API [inkl. '/']: /webTriggerAdv/violetmessage
Klick auf Testnachricht senden: SERVER/URL NOT FOUND. ERR.CODE: ENOTFOUND
Im Logfile des Webservers ist nichts zu sehen... also nehme ich an, der Fehler liegt nicht im Pfad sondern eher in der URL und es kommt gar nicht zum Request an den Webserver.
[/quote]
Na ja muss es -> sonst gäbe es keinen "ENOTFOUND" (wurde abgelehnt oder es hat generell nichts reagiert)
Verwende mal die IP und den Port, so wie ich es oben geschrieben hatte...

tnsturm
Beiträge: 16
Registriert: 9. April 2024, 23:07
Becken Standort: Outdoor
Wasserinhalt in m³: 30
Abdeckung: Deck
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von tnsturm »

IP-Adresse funktioniert leider auch nicht.

Kann man irgendwo "sehen", was die VIOLET tatsächlich aufruft?
Auf der DEBUG-Seite sieht man nur die hereinkommenden Anfragen.
Dabei ist mir aufgefallen:

NOTIFY_http_baseport: 80
NOTIFY_http_baseurl: http://192.168.180.188:5080
NOTIFY_http_enable: 1
NOTIFY_http_path: /webTriggerAdv/violetmessage
NOTIFY_http_query:
NOTIFY_http_response_error:
NOTIFY_http_response_ok:

Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

sie schickt schon das was du da eingetragen hast ... möglicherweise scheiterts aber doch am Port. Kann ich aber auf die schnelle jetzt nicht sagen.
80 kannst an dem homey nicht zum testen nehmen (und entsprechend nix angeben nach der IP)?

tnsturm
Beiträge: 16
Registriert: 9. April 2024, 23:07
Becken Standort: Outdoor
Wasserinhalt in m³: 30
Abdeckung: Deck
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von tnsturm »

http://homey.fritz.box ohne Pfad und Portangabe kann die Violet mit Erfolg aufrufen.
(Das ist die einzige URL auf Port 80, die Homey ohne Authentifizierung beantwortet mit:
{
"homeyId": "64539ff5c4b4fa0b8859697d",
"homeyVersion": "11.0.0"
}
).
Ich denke also mal, dass die Angabe einer Portnummer von der Violet falsch verwendet wird.

Leider komme ich an die Requests auf dem Port 80 nicht direkt heran bzw. es gibt auch kein Logfile, dass man einsehen könnte.

Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

und diesen /webTriggerAdv/violetmessage Pfad kannst Du nicht auch auf 80 aufrufen oder "umbiegen"? die :5080 legst Du selber fest oder ist das von denen vorgegeben? (der is eigentlich eher für VOIP "reserviert" )

Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

Hm, ja. Der Port wird überschrieben :shock:
Hatte damals ne Konfigurationsoption dafür eingebaut .... mach mal bitte das :5080 aus der Zeile raus (URL/IP zur Empfänger-API [ohne http://])

...und schreib die Port-Nummer dafür hier rein:
http://violet.local/modifyParameter.htm ... p_baseport (nur 5080... sonst nichts !!)

tnsturm
Beiträge: 16
Registriert: 9. April 2024, 23:07
Becken Standort: Outdoor
Wasserinhalt in m³: 30
Abdeckung: Deck
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von tnsturm »

also theoretisch funktioniert das, allerdings ist das Verschicken einer Testnachricht nicht einfach, da der Button "Testnachricht" den Port wieder auf 80 zurücksetzt, weil der auch die Formularinhalte neu abspeichert. 8-)
1. 06.05.2024 17:19:22 SYSTEMTASK NOTIFICATION ITEM: ID112 DONE
2. 06.05.2024 17:19:22 SYSTEMTASK NOTIFICATION HTTP REQUEST for ID112 (CODE 0000): SENT. API-RESPONSE:
3. 06.05.2024 17:19:19 USERACTION CONFIG_CHANGE NOTIFY_http_baseport (from: 5080 to: 80);
4. 06.05.2024 17:19:09 USERACTION CONFIG_CHANGE NOTIFY_http_baseport (from: 80 to: 5080);



Ich werde später mal durch schlaues Verändern der Warngrenzen bei den Sondenmessungen Warnnachrichten provozieren.

Benutzeravatar
Alex
Administrator
Beiträge: 8814
Registriert: 28. Mai 2014, 23:00
Becken Standort: Outdoor
Wasserinhalt in m³: 103
Förderleistung Pumpe: Regelbar
Abdeckung: Keine
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Wohnort: Augsburg
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von Alex »

>>da der Button "Testnachricht" den Port wieder auf 80 zurücksetzt
in dem Fall aber nur, weil Du die Seite noch offen hattest. Änder' den Port, speicher das... und dann lade auch die Seite mit den Benachrichtigungseinstellungen neu (die hat sonst immer noch den Port 80 im lokalen RAM Deines Gerätes) und schickt den dann auch mit zurück (woraufhin er wieder geändert wird)

tnsturm
Beiträge: 16
Registriert: 9. April 2024, 23:07
Becken Standort: Outdoor
Wasserinhalt in m³: 30
Abdeckung: Deck
Desinfektionsmittel: Chlor, flüssig
UV-C Anlage: Nein
Kontaktdaten:

Re: BENACHRICHTIGUNGEN PER HTTP REQUEST AN FREMDSYSTEME

Beitrag von tnsturm »

Guten Morgen…

Ahh, darauf hätte ich ich ja auch selbst kommen können, dass der Port als Hidden Field im Formular mitgeführt wird…

Jetzt funktioniert es :D
und diesen /webTriggerAdv/violetmessage Pfad kannst Du nicht auch auf 80 aufrufen oder "umbiegen"? die :5080 legst Du selber fest oder ist das von denen vorgegeben? (der is eigentlich eher für VOIP "reserviert" )
Die normalen Webhooks von Homey funktionieren nicht für diesen Fall… der eine (über HTTP) kann Werte nur über einen fixen Query-Parameter annehmen, der andere erfordert HTTPS mit Auth.

Daher habe ich eine App installiert, die einen kleinen Webserver aufzieht. Hier war Port 5080 voreingestellt, ich kann natürlich auch jeden anderen nehmen, der nicht schon von Homey benutzt wird (also auch nicht 80, 443 etc).

Vielen Dank für die Hilfe!!

Antworten