Ich suche einfach nur "URL senden"...

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

Vorheriges Thema - Nächstes Thema

Otto123

Zitat von: ch.eick am 14 Januar 2019, 14:31:51
Sorry, ich wollte nicht stören.

HTTPMOD war zu Beginn ja auch als Möglichkeit im Gespräch.

Viele Grüße
   Christian .... ich bin dann mal raus :-)
Nein so war das gar nicht gemeint! Sorry.
Ich wollte sagen in meinem Text geht es nicht um HTTPMOD
Ich wollte nicht, dass der TE die Codezeile wieder einfach in die HTTPMOD Definition packt.

Du hast absolut recht mit dem was Du sagst. Ich wollte es ganz einfach. Wenn es nur die URL ist, dann hätte der Test eigentlich was tun müssen. Aber offenbar ist es nicht nur eine URL.

Ich wollte auch nicht stören, HTTPMOD ist mir zu kompliziert....  ;)

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

Thomas24568

Den Link zur engl. Wikipedia habe ich mir angesehen. Und auch so grob verstanden. Und leider muß ich sagen: Englisch, zusätzliches unbekanntes Programm: Nein danke, zu aufwändig.

Gegenfrage: Kennst du "Pi-Hole"? ( https://pi-hole.net ) Das scheint sowas ähnliches zu sein, dafür gibt es deutsche Anleitungen (u.a. im Kofler, 5. Auflage (https://www.amazon.de/dp/3836265192/ref=pe_3044161_185740101_TE_item ), und in der c't). Bisher habe ich die Funktion dieses Programms nur überflogen, aber im Webinterface scheint es ähnliches anzuzeigen. WEnn dem so ist würde ich mich damit beschäftigen, auch wenn die ursprüngliche Frage dann erst später (Wochen?) beantwortet werden wird.

Thomas24568

Ich habe noch was festgestellt:

2019.01.14 12:01:30 5: homee_sz_fenster_auf: set called with reread
2019.01.14 12:01:30 4: homee_sz_fenster_auf: GetUpdate called (reread)
2019.01.14 15:09:41 5: homee_sz_fenster_auf: UpdateHintList called
2019.01.14 15:09:41 5: homee_sz_fenster_auf: UpdateHintList: setlist = interval reread:noArg stop:noArg start:noArg upgradeAttributes:noArg storeKeyValue FensterAuf:noArg
2019.01.14 15:09:41 5: homee_sz_fenster_auf: UpdateHintList: getlist =
2019.01.14 15:09:42 3: ZWave got config for vision/zd2102.xml from ./FHEM/lib/openzwave_deviceconfig.xml.gz


Die Zeilen von 12:01 sind Reaktionen wenn ich im Browserfenster von FHEM bin, aber auf dem Mac. Die Zeilen vom 15:0x sind Reaktionen wenn ich den Browser auf der RaspPi-Oberfläche nutze. Warum sind die Log-Einträge unterschiedlich?

ch.eick

Zitat von: Thomas24568 am 14 Januar 2019, 14:43:42
Den Link zur engl. Wikipedia habe ich mir angesehen. Und auch so grob verstanden. Und leider muß ich sagen: Englisch, zusätzliches unbekanntes Programm: Nein danke, zu aufwändig.

Gegenfrage: Kennst du "Pi-Hole"? ( https://pi-hole.net ) Das scheint sowas ähnliches zu sein, dafür gibt es deutsche Anleitungen (u.a. im Kofler, 5. Auflage (https://www.amazon.de/dp/3836265192/ref=pe_3044161_185740101_TE_item ), und in der c't). Bisher habe ich die Funktion dieses Programms nur überflogen, aber im Webinterface scheint es ähnliches anzuzeigen. WEnn dem so ist würde ich mich damit beschäftigen, auch wenn die ursprüngliche Frage dann erst später (Wochen?) beantwortet werden wird.

So wie ich das sehe ist pi-hole eher ein Proxy, um Werbung oder unerwünschte Inhalte heraus zu filtern. Das ist eine andere Baustelle.

Burp Suite dient zum Mitschneiden von Kommunikation zwischen z.B dem Browser und einem Web Server.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hallo Otto

Zitat von: Otto123 am 14 Januar 2019, 14:35:03

Ich wollte auch nicht stören, HTTPMOD ist mir zu kompliziert....  ;)

Gruß Otto

Alles gut, viele Wege führen nach Rom.

HTTPMOD ist halt sehr flexibel und mächtig in den Möglichkeiten. Ich habe in den letzten Wochen bereits zwei Schnittstellen damit eingebunden. Die Beispiele findest Du unter "vallox_cloud", eine kontrollierte Wohnraum Lüftung und unter "DvLIR", einem Lesekopf für den Stromzähler.
Ich habe hier besonders wert darauf gelegt keine bisher noch nicht vorhandenen HW Schnittstellen zu verwenden, sondern das im LAN befindliche WEB Interface.

Viele Grüße
      Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

MadMax-FHEM

Funktioniert denn das hier auf der "Linux-Console"?

wget -q http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf


Bzw. andersrum (wie Otto schon geschrieben/gefragt hat):

Hast du einen Aufruf, der per wget oder curl funktioniert?!

Wenn du den hast ist es einfach...
...denn dann musst du den "nur" in Anführungszeichen packen (evtl. noch IM AUFRUF enthaltene Anführungszeichen durch "einfache" '  ' ersetzen oder "maskieren" \"  ) und an ein Notify packen:

define nSendHTTP Device:RegEx "HIER DEN AUFRUF DER AUF DER LINUX CONSOLE FUNKTIONIERT"

Ansonsten musst du eben mit Browser oder Sniffermitteln herausbekommen, was genau nötig ist: Anmeldung, Cookies, bestimmte Header, ...
...dazu dienen die genannten "Tools"...

Gleiches gilt für HTTPMOD (wenn du das verwendest), dort wird halt einiges in die url gesteckt und andere Dinge per Attribut "gesteuert"/"eingestellt"...

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)

Thomas24568

#36
Zitat von: MadMax-FHEM am 14 Januar 2019, 18:21:38
Funktioniert denn das hier auf der "Linux-Console"?
...

Hast du einen Aufruf, der per wget oder curl funktioniert?!

...

pi@raspberrypi:~ $ wget -q http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf
[1] 6430


per ssh vom Mac auf den Pi: nur den Zahlencode als Antwort erhalten, das angesprochene Gerät hat nicht reagiert.

Per VPN vom Mac auf das Terminal des Pi's: Gleiche Zahlenantwort, auch keine Reaktion des adressierten Gerätes.

(ohne wget -q) direkt am Pi, Browser, Adresszeile: Funktioniert.

curl (Mac-Terminal auf Pi-Terminal per ssh):

Mini:~ th$ curl http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf
[1] 96593


Auch nur so eine komische Zahlenantwort ohne das das adressierte Gerät reagiert. (Ich hoffe das ich das Beispiel aus https://wiki.ubuntuusers.de/cURL/ oben richtig umgesetzt habe).

Noch ein Test, vom Mac-Terminal:

Mini:~ th$ curl http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf
[2] 96701
[1]   Exit 127                wget -q http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ
Mini:~ th$ OK


Soweit ich erkenne wird curl auf wget -q umgesetzt und TARA! das adressierte Gerät reagiert wie gewünscht... Allerdings kann ich keine Erklärung finden, warum es vom Mac-Terminal aus geht, vom Pi-Terminal aus nicht.

Nachtrag: Ein erneutes Senden (vom Mac-Terminal aus) hat wieder KEINE Reaktion hervorgerufen. Ich versteh das nicht...

ch.eick

Hallo Thomas,

wie ich schon geschrieben hatte machen wget und curl etwas mehr im Hintergrund. Beide bedienen auch das http Protokoll mit cookies, header, ... Ich hatte das mit meinen Experimenten mit der Vallox Cloud auch. Ein wget ging, ein curl auch, aber es gab immer wieder Merkwürdigkeiten.
So wie ich es verstanden habe reagiert das Gerät am besten, wenn Du es vom Browser aus ansprichst.
Da Dir die Burp Suite nicht zusagt könntest Du z.B. im Mozilla Browser unter "Extras | WebEntwickler | Netzwerkanalyse"
die Kommunikation zum Zielgerät anschauen. Dort solltest Du die Header und Cookies, sowie eventuelle Daten sehen können.
Die Zahlencodes werden wahrscheinlich Fehlermeldungen vom Gerät sein.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Thomas24568

Moin!

Heute mal wieder etwas Zeit für diese Baustelle...

Ich habe in Firefox (hoffe, das war mit Mozialla gemeint) die Einstellung gefunden und die URL dann ausprobiert. Das Ergebnis ist im angehängtem Bild. Allerdings kann *ich* daraus keine neue Erkenntnis gewinnen. Im Fenster Cookie steht nur "Keine Cookies verwendet", in Parameter das was in der URL genauso drinsteht und ein paar Zeiten. Vielleicht hilft es dir?


ch.eick

Moin,

wenn Du den HTTPMOD weiter verfolgen solltest, dann setzt Du bei den set**Header[1-*] die Anfragekopfzeilen (Header) für den Test erst mal alle. Später kannst Du Sie, wenn es laufen sollte, dann einen nach dem Anderen wieder entfernen.

z.B. set homee_sz set01Header1 Accept-Encoding: gzip, deflate

Den Header User-Agent kannst Du weg lassen, weil HTTPMOD den selber setzt.

Achtung, ein Semikolon muss bei der Eingabe verdoppelt werden aus ; wird dann ;; wenn Du es in der Kommandozeile eintippst/kopierst.

Bitte gib dann mal eine klare Aussage, welchen Ansatz Du verfolgen möchtest, HTTPMOD oder wget/curl als Systemaufruf.
Es kann auch noch ein Unterschied sein, ob Du wget/curl vom Mac oder vom RPi verwendest.

Viele Grüße
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Thomas24568

Moin!

Nach der Definition in der Command-Ref sieht HttpMod einfacher aus. Es sind einfach weniger Parameter...

Trotzdem verstehe ich dein Text von heute 10 Uhr nicht (vielleicht nachdem ich mir das morgen noch mal in Ruhe durchlese). Also noch keine ausführliche Erklärung notwendig...

Gruß

ch.eick

#41
Guten Morgen Thomas,

ich konnte es wieder nicht lassen :-)

Hier sind Deine Definitionen, als Vorschlag von mir, für den ersten Test. Das kannst Du einzeln in die Kommandozeile kopieren und erhältst hinterher einen Raum "Fenster" mit dem Gerät "homee", dass das Modul HTTPMOD verwendet.

defmod homee HTTPMOD none 0

attr homee enableControlSet 1
attr homee httpVersion 1.1

attr homee set01Name fenster_sz
attr homee set01IMap Sz_fenster_auf:auf, Sz_fenster_zu:zu

attr homee set01URL http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=$val

attr homee setHeader1 Accept: text/html,application/xhtml+xm...plication/xml;;q=0.9,*/*;;q=0.8        <<<<<< Ich denke die "..." wurden in Deinem Bild beim Anzeigen gekürzt!!! Bitte schau Dir das Feld noch mal genau an.
attr homee setHeader2 Accept-Encoding: gzip, deflate
attr homee setHeader3 Accept-Languge: de,en-US;;q=0.7,en;;q=0.3
attr homee setHeader4 Connection: keep-alive
attr homee setHeader5 Upgrade-insecure-Requests: 1

attr homee showBody 1
attr homee showError 1
attr homee verbose 5

attr homee room Fenster

Eventuell hier mal die Konfiguration speichern.

Nun kannst Du es mal aufrufen...

set homee fenster_sz auf
set homee fenster_sz zu

Hierbei ist "fenster_sz" der Name für den Aufruf von set01URL. Ich nehme an, "sz" bedeutet bei Dir Schlafzimmer, weshalb ich zu meiner beispielhaften Namensgebung gekommen bin.

Gerät  homee    ich vermute, das ist die Brücke zu all Deinen homee Aktoren/Sensoren
Aktor  fenster_sz
Befehl auf/zu   

Mein Log zeigt dann folgendes, da ich natürlich kein homee Gerät habe

2019.01.22 08:08:17 5: homee: set called with fenster_sz auf
2019.01.22 08:08:17 5: homee: set found option fenster_sz in attribute set01Name
2019.01.22 08:08:17 5: homee: MapConvert called from Set converted auf to Sz_fenster_auf with reversed map auf:Sz_fenster_auf, zu:Sz_fenster_zu,
2019.01.22 08:08:17 4: homee: set will now set fenster_sz -> Sz_fenster_auf
2019.01.22 08:08:17 4: homee: AddToQueue adds set01, initial queue len: 0
2019.01.22 08:08:17 5: homee: AddToQueue adds type set01 to URL http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=$val, no data, header Accept: text/html,application/xhtml+xm...plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Languge: de,en-US;q=0.7,en;q=0.3
Connection: keep-alive
Upgrade-insecure-Requests: 1, retry 0
2019.01.22 08:08:17 5: homee: HandleSendQueue called, qlen = 1
2019.01.22 08:08:17 4: homee: HandleSendQueue sends request type set01 to URL http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf, No Data,
header: Accept: text/html,application/xhtml+xm...plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Languge: de,en-US;q=0.7,en;q=0.3
Connection: keep-alive
Upgrade-insecure-Requests: 1
timeout 2
2019.01.22 08:08:17 5: HttpUtils url=http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_auf
2019.01.22 08:08:17 4: IP: 192.168.180.160 -> 192.168.180.160
2019.01.22 08:08:19 3: homee: Read callback: Error: connect to http://192.168.180.160:7681 timed out
2019.01.22 08:08:19 4: homee: Read callback: request type was set01 retry 0, body empty
2019.01.22 08:08:19 5: homee: ExtractSid called, context set, num 01
2019.01.22 08:08:19 4: homee: CheckAuth decided no authentication required


2019.01.22 08:09:44 5: homee: set called with fenster_sz zu
2019.01.22 08:09:44 5: homee: set found option fenster_sz in attribute set01Name
2019.01.22 08:09:44 5: homee: MapConvert called from Set converted zu to Sz_fenster_zu with reversed map auf:Sz_fenster_auf, zu:Sz_fenster_zu,
2019.01.22 08:09:44 4: homee: set will now set fenster_sz -> Sz_fenster_zu
2019.01.22 08:09:44 4: homee: AddToQueue adds set01, initial queue len: 0
2019.01.22 08:09:44 5: homee: AddToQueue adds type set01 to URL http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=$val, no data, header Accept: text/html,application/xhtml+xm...plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Languge: de,en-US;q=0.7,en;q=0.3
Connection: keep-alive
Upgrade-insecure-Requests: 1, retry 0
2019.01.22 08:09:44 5: homee: HandleSendQueue called, qlen = 1
2019.01.22 08:09:44 4: homee: HandleSendQueue sends request type set01 to URL http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_zu, No Data,
header: Accept: text/html,application/xhtml+xm...plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Languge: de,en-US;q=0.7,en;q=0.3
Connection: keep-alive
Upgrade-insecure-Requests: 1
timeout 2
2019.01.22 08:09:44 5: HttpUtils url=http://192.168.180.160:7681/api/v2/webhook_trigger?webhooks_key=NJBGOCUENTGSIWZDWDYHSJZMUIXWPNUHRCXINVAXDRFXIBKIIKZZTVVJVFTVPWSJ&event=Sz_fenster_zu
2019.01.22 08:09:44 4: IP: 192.168.180.160 -> 192.168.180.160
2019.01.22 08:09:46 3: homee: Read callback: Error: connect to http://192.168.180.160:7681 timed out
2019.01.22 08:09:46 4: homee: Read callback: request type was set01 retry 0, body empty
2019.01.22 08:09:46 5: homee: ExtractSid called, context set, num 01
2019.01.22 08:09:46 4: homee: CheckAuth decided no authentication required

Du siehst hier, dass auf/zu mit set01IMap zu dem fehlenden Teil der set01URL ( $val ) umgesetzt wird und dann in die URL eingefügt wird. Die gesetzten Header gelten für alle HTML Aufrufe.

Ich freue mich auf Deine Rückmeldung inklusive dem Log Ausschnitt.

Viele Grüße
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hallo Thomas,

hat es geklappt?

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Schade, ein update wäre echt toll gewesen.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Tomk

Wirklich schade... ich bin gerade auch auf der Suche den Home Mode meiner NAS über einen Webhook von Fhem ein/auszuschalten. Bei mir funktioniert es leider auch nicht mit wget und escapten Sonderzeichen... gibt es mittlerweile was besseres?