Ich suche einfach nur "URL senden"...

Begonnen von Thomas24568, 05 Januar 2019, 20:18:24

Vorheriges Thema - Nächstes Thema

Thomas24568

Moin!

Ich suche nur eine einfache Möglichkeit, eine URL zu versenden:

http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUJXWPNUHRCUINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf

In der Anleitung zu FHEM ist HTTPMOD so beschrieben:

Define
define <name> HTTPMOD <URL> <Interval>

The module connects to the given URL every Interval seconds, sends optional headers and data and then parses the response.
URL can be "none" and Interval can be 0 if you prefer to only query data manually with a get command and not automatically in a defined interval.

Example:

define PM HTTPMOD http://mypoolmanager/cgi-bin/webgui.fcgi 60

Also müßte folgendes doch funktionieren:

define homee_sz_fenster_auf HTTPMOD http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf 0

Funktioniert aber nicht, obwohl der Event-Monitor die Ausführung bestätigt. Woran liegt es?

Nur als Info: Die URL im Browser eingegeben funktioniert auf Empfängerseite, der key ist geändert.

KernSani

Hi,

was sagt den das Log bei verbose 5?

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Thomas24568

2019.01.05 20:36:14 5: Starting notify loop for global, 1 event(s), first is ATTR global verbose 5
2019.01.05 20:36:14 5: End notify loop for global
2019.01.05 20:36:14 4: WEB_192.168.180.110_60923 GET /fhem?fw_id=128; BUFLEN:0
2019.01.05 20:36:14 4: WEB: /fhem?fw_id=128 / RL:1414 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2019.01.05 20:36:14 4: WEB_192.168.180.110_60923 GET /fhem?XHR=1&inform=type=status;filter=;since=1546716973;fmt=JSON&fw_id=128×tamp=1546716973958; BUFLEN:0
2019.01.05 20:36:17 4: WEB_192.168.180.110_60924 POST /fhem?cmd=save&XHR=1&fwcsrf=csrf_330810213176241&fw_id=128; BUFLEN:0
2019.01.05 20:36:17 5: Cmd: >save<
2019.01.05 20:36:18 5: Starting notify loop for global, 1 event(s), first is SAVE
2019.01.05 20:36:18 5: createNotifyHash
2019.01.05 20:36:18 5: End notify loop for global
2019.01.05 20:36:18 4: WEB: /fhem?cmd=save&XHR=1&fwcsrf=csrf_330810213176241&fw_id=128 / RL:52 / text/plain; charset=UTF-8 / Content-Encoding: gzip
/
2019.01.05 20:36:30 4: Connection closed for WEB_192.168.180.110_60925: EOF
2019.01.05 20:36:30 4: Connection closed for WEB_192.168.180.110_60926: EOF
2019.01.05 20:36:40 4: Connection closed for WEB_192.168.180.110_60923: EOF
2019.01.05 20:36:40 4: WEB_192.168.180.110_60924 POST /fhem&fw_id=128&fwcsrf=csrf_330810213176241&cmd=trigger+homee_sz_fenster_zu; BUFLEN:0
2019.01.05 20:36:40 5: Cmd: >trigger homee_sz_fenster_zu<
2019.01.05 20:36:40 5: Starting notify loop for homee_sz_fenster_zu, 1 event(s), first is
2019.01.05 20:36:40 5: End notify loop for homee_sz_fenster_zu
2019.01.05 20:36:40 4: WEB_192.168.180.110_60924 GET /fhem?fw_id=128; BUFLEN:0
2019.01.05 20:36:40 4: WEB: /fhem?fw_id=128 / RL:1410 / text/html; charset=UTF-8 / Content-Encoding: gzip
/
2019.01.05 20:36:40 4: WEB_192.168.180.110_60924 GET /fhem?XHR=1&inform=type=status;filter=;since=1546716999;fmt=JSON&fw_id=128×tamp=1546716999777; BUFLEN:0
2019.01.05 20:36:42 4: Connection closed for WEB_192.168.180.110_60924: EOF
2019.01.05 20:36:42 4: Connection accepted from WEB_192.168.180.110_60937
2019.01.05 20:36:42 4: WEB_192.168.180.110_60937 GET /fhem/FileLog_logWrapper?dev=Logfile&type=text&file=fhem-2019-01.log; BUFLEN:0

jump to the top

KernSani

Bitte verbose 5 in dem HTTPMOD Device setzen, nicht global.

Dann den HTTPMOD-Aufruf triggern und die relevanten Log-Einträge posten. Am besten auch noch ein list des HTTPMOD Devices.

wenn du aber wirklich nur einen request an eine URL schicken möchtest (und nicht etwa die Rückgabe auswerten möchtest) ist HTTPMOD vielleicht ein bisschen zu viel..., da würde doch z.B. ein wget auf Betriebssystem-Ebene ausreichen...



RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Thomas24568

Ich brauche keine Antwort, die gesendete URL ist der Auslöser (Webhook) für ein anderes Gerät. Die URL hat selbst als Auslöser einen Fensterkontakt, daher muß die URL aus FHEM heraus gesendet werden.

Internals:
   DEF        http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf 0
   Interval   0
   MainURL    http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf
   ModuleVersion 3.5.4 - 9.11.2018
   NAME       homee_sz_fenster_auf
   NR         111
   STATE      ???
   TRIGGERTIME 0
   TRIGGERTIME_FMT
   TYPE       HTTPMOD
Attributes:


Irgendwie ist mein Logfile jetzt defekt - seit 20 Min kein Eintrag mehr. attr verbose 3 ist doch der Normalzustand, oder?

MadMax-FHEM

Evtl. sowas:


define nFensterAuf notify Fenster:opened "wget -q http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf"


Beim wget also bzgl. Anführungszeichen (ob der http noch mal in Anführungszeichen muss, wenn dann in dem Fall besser nur "Einfache", also '  ' ) bin ich jetzt nicht sicher...

Kann auch grad nicht testen, da unterwegs..

Die Namen und Regex des Notify halt noch anpassen...

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)

ThoTo

Schau dir diesen Beitrag von mir an:
https://forum.fhem.de/index.php/topic,56782.msg769520.html#msg769520

Ich mache den HTTP Request via HttpUtils_NonblockingGet

LG Thomas
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

mwllgr

#7
Hallo Thomas,

wenn du unbedingt HTTPMOD verwenden willst: Soweit ich weiß musst du get oder set verwenden, wenn du als Interval 0 eingibst.
Als URL am besten none eingeben, da du die URLs dann einzeln in set/get-Attributen eintragen kannst, falls du später mal mehr Aktionen einbinden willst.
In dem Fall ist set meine ich logischer, weil ja eine Aktion ausgeführt wird, vermute ich zumindest. Auch sets können bei HTTPMOD ausgewertet werden, dies müsste jedoch per Attribut setXXParseResponse 1 aktiviert werden.

Versuch mal folgendes:

define homee_sz_fenster_auf HTTPMOD none 0
attr homee_sz_fenster_auf set00Name FensterAuf
attr homee_sz_fenster_auf set00URL http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf
attr homee_sz_fenster_auf set00NoArg 1


Das define kannst du auch im Nachhinein mit einem Klick auf "DEF" ändern: Dort einfach none 0 eintragen.

Normalerweise kann dann mit
set homee_sz_fenster_auf FensterAuf
die URL vom FHEM-Server abgerufen/aufgerufen werden.

Falls mehr Aktionen mit dem Fenster/Gerät per HTTP ausgeführt werden können wäre es ratsam, das Gerät z.B. in "homee_sz_fenster" umzubenennen. (rename homee_sz_fenster_auf homee_sz_fenster)
Das set kannst du ja dann einfach "open" nennen und hast so Spielraum für weitere Fenster-Aktionen per HTTPMOD. Ich empfehle die Dokumentation im Wiki: https://wiki.fhem.de/wiki/HTTPMOD.

Grüße und viel Erfolg!

MadMax-FHEM

Ein

set homee_sz_fenster_auf reread


mit dem "normalen" HTTPMOD und der 0 (damit nicht automatisch abgefragt wird) sollte genauso gehen...

Zitat von: help HTTPMOD
Set-Commands
- reread
      request the defined URL and try to parse it just like the automatic update would do it every Interval seconds without modifying the running timer.

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)

mwllgr

#9
Zitat von: MadMax-FHEM am 07 Januar 2019, 22:13:23
Ein

set homee_sz_fenster_auf reread


mit dem "normalen" HTTPMOD und der 0 (damit nicht automatisch abgefragt wird) sollte genauso gehen...

Gruß, Joachim

Ja, dann ist es jedoch noch wichtig dass
attr homee_sz_fenster_auf enableControlSet 1
aktiviert ist.

Die obige Lösung ist halt übersichtlicher, wenn er noch andere Aktionen damit ausführen will, oder?
Zum Schluss weiß man nicht mehr, was mit reread überhaupt gemacht wird. (Außer natürlich es steht im Gerätenamen...)

MadMax-FHEM

YES! ;)

Also:

attr homee_sz_fenster_auf enableControlSet 1


Und ja klar: wenn mehr als ein Kommando dann macht das natürlich sehr viel Sinn...

Gruß und danke (wieder was gelernt), 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)

Thomas24568

Zitat von: MadMax-FHEM am 05 Januar 2019, 21:20:23
Evtl. sowas:


define nFensterAuf notify Fenster:opened "wget -q http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf"


Beim wget also bzgl. Anführungszeichen (ob der http noch mal in Anführungszeichen muss, wenn dann in dem Fall besser nur "Einfache", also '  ' ) bin ich jetzt nicht sicher...

Kann auch grad nicht testen, da unterwegs..

Die Namen und Regex des Notify halt noch anpassen...

Gruß, Joachim

Ich habe nun mal wieder etwas Zeit für das Problem. Komischerweise funktionieren beide Versionen (wget mit einfachen oder doppelten Anführungzeichen) nicht:

2019.01.09 19:44:39 1: configfile: Unknown module 'wget
Unknown module "wget

(Direkt aus  dem Logfile kopiert).

Thomas24568

Zitat von: ThoTo am 06 Januar 2019, 20:12:40
Schau dir diesen Beitrag von mir an:
https://forum.fhem.de/index.php/topic,56782.msg769520.html#msg769520

Ich mache den HTTP Request via HttpUtils_NonblockingGet

LG Thomas

Habe ich mir angesehen. Httpmod hatte ich ja schon probiert, wget funktioniert auch nicht korrekt, und den vorletzten Beitrag verstehe ich nicht (Syntax). Allerdings sieht mir das auch schon etwas zu abgehoben aus nur um eine URL zu versenden.

MadMax-FHEM

Zitat von: Thomas24568 am 14 Januar 2019, 11:20:30
Ich habe nun mal wieder etwas Zeit für das Problem. Komischerweise funktionieren beide Versionen (wget mit einfachen oder doppelten Anführungzeichen) nicht:

2019.01.09 19:44:39 1: configfile: Unknown module 'wget
Unknown module "wget

(Direkt aus  dem Logfile kopiert).

Ich teste heute Abend noch mal...

Und hab ja geschrieben, dass es sein kann, dass noch um das http:// usw. Anführungszeichen müssen...

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

Hi,
Die Fehlermeldung ist unlogisch.
Zitat2019.01.09 19:44:39 1: configfile: Unknown module 'wget
Unknown module "wget

Mach mal bitte list nFensterAuf
Und poste das Ergebnis.

Gruß Otto
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