Webaufruf einer externen App auswerten

Begonnen von darkness, 13 Februar 2022, 10:17:31

Vorheriges Thema - Nächstes Thema

darkness

Guten Morgen zusammen.
Ich habe auf dem Smartphone eine App, welche die Möglichkeit eines Hooks in Form eines Webaufrufs durchführen kann. Diese kann per GET oder POST erfolgen

GET: https://meineFHEMAdresse?parameter1=1&parameter2=2
POST: https://meineFHEMAdresse {"parameter1":"parameter1","parameter2":"parameter2"}

Gibt es eine Möglichkeit diesen Aufruf in FHEM auszuwerten? Gerne die Möglichkeit des POST-Aufrufes und das die Payload dann in Readings geschrieben wird.

Die Auswertung usw innerhalb von FHEM soll dann extra erfolgen.

MadMax-FHEM

Mit Post weiß ich nicht aber du kannst doch JEDEN fhem Befehl (auch set / setreading / ...) per HTTP an fhem schicken.

ABER: du musst csrfToken beachten! Und: setzen auf "none" ist KEINE Lösung (mMn), wenn dann mind. "fixer Token"...

Siehe u.a.: https://wiki.fhem.de/wiki/CsrfToken-HowTo

Fhem muss nat. erreichbar sein, würde ich (persönlich) über I-Net nur per vpn machen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Otto123

https://wiki.fhem.de/wiki/CsrfToken-HowTo

Wenn von außen und ohne vpn (würde ich nie machen!) dann unbedingt mit https und Anmeldung an FHEM.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

darkness

#3
Ein Zugriff von Ausserhalb ist nicht vorgesehen.
Aber auch mittels Csrf-Token klappt nicht.

Konkret handelt es sich um eine Alarmapp von der Feuerwehr. Im Falle einer Alarmierung kann durch die App der Link aufgerufen und Parameter übergeben werden.
Leider fällt aber auch die Tokenlösung aus.

Daher hatte ich auf eine Möglichkeit gehofft FHEM einfach die Werte zu schreiben und dann weiter zu verarbeiten.


Hier ein wenig zum Hintergrund:
https://alamos-support.atlassian.net/wiki/spaces/documentation/pages/2406318090/Allgemeine+Webhooks

MadMax-FHEM

#4
Zitat von: darkness am 13 Februar 2022, 11:42:09
Aber auch mittels Csrf-Token klappt nicht.

Heißt was?

Hilft nicht, dir zu helfen ;)


Zitat von: darkness am 13 Februar 2022, 11:42:09
Konkret handelt es sich um eine Alarmapp von der Feuerwehr. Im Falle einer Alarmierung kann durch die App der Link aufgerufen und Parameter übergeben werden.
Leider fällt aber auch die Tokenlösung aus.

Siehe oben: mit "Token-Lösung" meinst du csrf? Warum scheidet die aus? -> hilft uns nicht dir zu helfen!


Zitat von: darkness am 13 Februar 2022, 11:42:09
Daher hatte ich auf eine Möglichkeit gehofft FHEM einfach die Werte zu schreiben und dann weiter zu verarbeiten.

Geht doch ganz einfach (siehe 2x verlinkter ;)  Wiki!):

z.B. einen dummy anlegen (wenn kein anderes Device schon da ist), dann per HTTP-Aufruf z.B. ein Reading setzen:


http://hostname:8083/fhem?cmd=setreading%20DummyName%20Readingname%20Wert&fwcsrf=csrf_196525024154371


Du musst nat. ein FHEMWEB haben (kannst ja einfach eines genau für diesen Zweck anlgen / würde ich so tun!), wo eben der Token "csrf_196525024154371" vergeben ist...

Dann wird bei Aufruf dieser url (kannst du ja einfach im Browser testen) der Wert des Readings "Readingname" des Dummy "DummyName" auf "Wert" gesetzt.
Dann ein noify auf GENAU DAS und fhem reagiert darauf und tut was du willst (sofern es fhem möglich ist ;):)

EDIT: ich hab mir mal deinen Link angesehen. Sollte doch damit gehen? Sieht aus wie IFTTT Webhook. Hat bei mir (als ich das mal zum Spaß genutzt hab) wunderbar funktioniert. Einfach dort wo www.example.com steht obigen Aufruf (nat. angepasst auf deine Umgebung) eingeben (ich würde die Haken bzgl. Einheiten etc. mal alle rausnehmen EDIT: würde ich DEFINITIV! rausnehmen! Die "Vorschau" muss so aussehen, wie es bei dir im Browser funktioniert [Anmerkung: csrf-Token im Browser ANGEBEN! ansonsten macht der Browser es ja "richtig" und "handelt mit fhem den richtigen aus", das kann dein Webhook ja nicht, daher: fixer Token!) und gut is... Also sollte...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

darkness

Ahh, jetzt hat es klick gemacht.

Ich gebe in der App nicht nur die URL ein sondern die URL inkl. ?cmd=setreading.... Daher auch Einheitenkennung und Stichwort deaktivieren.

Aber wenn ich genau die Parameter Einheitenkennung und Stichwort weiterverarbeiten möchte. Funktioniert dieser weg nicht mehr da ja an "meine" URL dann nochmal Parameter angehangen werden.


MadMax-FHEM

Zitat von: darkness am 13 Februar 2022, 13:43:40
Aber wenn ich genau die Parameter Einheitenkennung und Stichwort weiterverarbeiten möchte. Funktioniert dieser weg nicht mehr da ja an "meine" URL dann nochmal Parameter angehangen werden.

Ja, das geht nicht, da ja fhem nicht einfach alles versteht...

Wenn du Einheiten und Stichwort brauchst, dann wird das so nicht gehen...
...und ich hab dafür auch erst mal keine Idee...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Otto123

Zitat von: darkness am 13 Februar 2022, 13:43:40
Aber wenn ich genau die Parameter Einheitenkennung und Stichwort weiterverarbeiten möchte. Funktioniert dieser weg nicht mehr da ja an "meine" URL dann nochmal Parameter angehangen werden.
Versteh ich nicht, schreib doch am Ende die Parameter Einheitenkennung und Stichwort in ein readings und verarbeite die in FHEM? Oder was ist denn der Plan?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

MadMax-FHEM

Das ist ja grandios...
EDIT: da hab ich wieder nicht weit genug gedacht... ;)

Es wird ja immer hinten angehangen?
Einfach den Parameter csrfToken vorziehen und dann den setreading...

Dann landet das einfach als Wert im Reading, sollte...
Ist zwar nicht soo schön aber sollte gehen...

Auseinanderdröseln (falls nötig) dann in fhem...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)