[hoffentlich dieses mal gelöst] Externer HTTPS aufruf

Begonnen von mrb, 20 Februar 2022, 10:44:51

Vorheriges Thema - Nächstes Thema

mrb

Hallo Forum,

da jetzt mein hm-Problem gelöst ist habe ich eine nächste Frage.
Ich habe zwei Überwachungskameras die über IFTTT getriggert werden können und bis vor kurzem(ca 1/2 Jahr aber schon her) hat das auch funktioniert. Mein fhem soll durch einen Homematic-Bewegungsmelder eine IFTTT aktion auslösen und der trigger wird auch korrekt ausgelöst, aber eine Site wie früher nicht ausgelöst. Ich hatte folgendes in meier FhemConfig
GA_Bewegungsmelder2:motion https://maker.ifttt.com/trigger/ArloXXXXX/key/xxxxx

und das hat 1a funktioniert. Jetzt funktioniert nur noch der eine Bewegunsmelder, aber der andere nicht mehr. Ich habe schon brav geegoogelt und einen Externen Aufruf per GetHttpFile gefunden, aber da scheint ja anscheinend HTTPS nicht zu funktionieren. GetHttpsFile gibt es nicht :(
über wget wie auf diversen seiten geht es auch nicht
{system('wget --quiet - \"https://maker.ifttt.com/trigger/ArloXXXXX/key/xxxxx\"')}
war mein Aufruf und da kommt nur -1 zurück und der IFTTT wird nicht ausgelöst :(

Also wie schon im Betreff geschrieben muss ich "einfach" nur ne HTTPS Seite aufrufen. Das Netz ist voll von HTTP aufrufen aber leider kein HTTPS

mrb


mrb

nur noch irgendwie den kompletten output ins dev null schieben.
so wird gerade das log mit  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100    45  100    45    0     0    195      0 --:--:-- --:--:-- --:--:--   19
zugemüllt

mrb

zum xten mal selbstantwort :D


{qx(curl https://maker.ifttt.com/trigger/Arloxxxxx/with/key/xxxxx > /dev/null 2>&1> /dev/null)}


Komplett:
bewegungsmelder:motion {qx(curl https://maker.ifttt.com/trigger/Arloxxx/with/key/xxxx > /dev/null 2>&1> /dev/null)}

MadMax-FHEM

Damit du dir nicht ständig selbst antworten musst ;)

Das hier ans Ende

2>&1 > /dev/null


reicht, um Fehler und Ausgaben nach /dev/null zu schicken ;)

Dass dein "Konstrukt" fhem blockiert solange der https-Aufruf "unterwegs" ist, ist dir bewusst?

Evtl. noch ein '&' anfügen -> send to background...

Oder einfach den "curl-Aufruf" in Anführungszeichen, dann blockiert auch nichts...

Siehe: https://heinz-otto.blogspot.com/2018/02/in-fhem-externe-programme-aufrufen.html

system() liefert immer -1 zurück. Wenn dann lag es am Unterschied zwischen wget und curl... D.h. ein curl statt dem wget in system() hätte verm. auch funktioniert...
...aber ebenso blockiert.

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)

mrb

also so wie ich dich verstehe joachim wäre das hier nicht im background und besser:
Bewegungsmelder:motion &"{qx(curl https://maker.ifttt.com/trigger/Arloxxx/with/key/xxx > /dev/null 2>&1> /dev/null)}"
richtig?

mrb

Zitat von: MadMax-FHEM am 20 Februar 2022, 12:52:35
Damit du dir nicht ständig selbst antworten musst ;)

Das hier ans Ende

2>&1 > /dev/null


reicht, um Fehler und Ausgaben nach /dev/null zu schicken ;)

Dass dein "Konstrukt" fhem blockiert solange der https-Aufruf "unterwegs" ist, ist dir bewusst?
ich weiß. Leider

Zitat von: MadMax-FHEM am 20 Februar 2022, 12:52:35
Evtl. noch ein '&' anfügen -> send to background...

Oder einfach den "curl-Aufruf" in Anführungszeichen, dann blockiert auch nichts...
wie genau meinst du das dann?
so dann? "{qx(curl https://maker.ifttt.com/trigger/Arloxxx/with/key/xxx > /dev/null 2>&1> /dev/null)}"

CoolTux

curl kennt die Option -s für silent
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

mrb

Zitat von: CoolTux am 20 Februar 2022, 14:20:50
curl kennt die Option -s für silent
stimmt, aber dann hast du ja immer noch das > /dev/null nötig

Guybrush

wieso nicht einfach so?

{HttpUtils_NonblockingGet(url=>"https://maker.ifttt.com/trigger/Arloxxx/with/key/xxx")}


MadMax-FHEM

Zitat von: mrb am 20 Februar 2022, 13:49:48
also so wie ich dich verstehe joachim wäre das hier nicht im background und besser:
Bewegungsmelder:motion &"{qx(curl https://maker.ifttt.com/trigger/Arloxxx/with/key/xxx > /dev/null 2>&1> /dev/null)}"
richtig?

Ein '&' ANFÜGEN nicht VORNE dran machen ;)

Also so:


Bewegungsmelder:motion {qx(curl https://maker.ifttt.com/trigger/Arloxxx/with/key/xxx 2>&1 > /dev/null &)}

(sofern dein geposteter "Code" tut)

Und warum die Anführungszeichen um einen PERL-Aufruf?
Da gehören nur die geschweiften Klammern eben für: "wechsle nach Perl", siehe: https://wiki.fhem.de/wiki/Klammerebenen

Den Link zu Otto hast du mal gelesen?

Anmerkung von CoolTux hilft auch...

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)

mrb

Zitat von: MadMax-FHEM am 20 Februar 2022, 14:29:21
Ein '&' ANFÜGEN nicht VORNE dran machen ;)

Also so:


Bewegungsmelder:motion {qx(curl https://maker.ifttt.com/trigger/Arloxxx/with/key/xxx 2>&1 > /dev/null &)}

(sofern dein geposteter "Code" tut)

Und warum die Anführungszeichen um einen PERL-Aufruf?
Da gehören nur die geschweiften Klammern eben für: "wechsle nach Perl", siehe: https://wiki.fhem.de/wiki/Klammerebenen

Den Link zu Otto hast du mal gelesen?

Anmerkung von CoolTux hilft auch...

Gruß, Joachim
ja hab ich überflogen auf der suche nach der Sperre, aber da steht ja nix über die sperre auflösen oder ich bin blind. Danke für den hinweis

mrb

#12
Zitat von: Guybrush am 20 Februar 2022, 14:27:49
wieso nicht einfach so?

{HttpUtils_NonblockingGet(url=>"https://maker.ifttt.com/trigger/Arloxxx/with/key/xxx")}


also bei mir läuft das nicht oder ich bin zu blöd. hast du vielleicht eine "myUtils" NonblockingGet?

MadMax-FHEM

Zitat von: mrb am 20 Februar 2022, 14:35:58
ja hab ich überflogen auf der suche nach der Sperre, aber da steht ja nix über die sperre auflösen oder ich bin blind. Danke für den hinweis

Steht doch gleich zu Beginn:
Zitat
Es gibt drei FHEM Kommandotypen, sie unterscheiden sich in der Verwendung der "Klammer"

    FHEM Befehl - keine Klammer
    "Shell Befehl" - doppelte Anführungszeichen (blockiert FHEM nicht)
    {Perl Befehl} - geschweifte Klammer (kann FHEM blockieren)

Was du nutzt ist Perl-Befehl -> kann blockieren...

Dann: du nutzt eben einen synchronen (ohne '&' -> Background) Systemaufruf -> aus "kann blockieren" wird dann eben "blockiert"... ;)

Kann man ändern indem man den Systemaufruf einfach in Anführungszeichen steckt und zwar NUR den Systemaufruf NICHT den Perl-Aufruf (inkl. System-Aufruf)...
...oder eben den synchronen Systemaufruf "in den Hintergrund" schickt -> '&' anhängen (Linux Shell)...

Bzgl. NonBlocking_Get: https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_NonblockingGet

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)

mrb

#14
Zitat von: MadMax-FHEM am 20 Februar 2022, 15:02:15
Steht doch gleich zu Beginn:
okay. sorry.

Zitat von: MadMax-FHEM am 20 Februar 2022, 15:02:15
Dann: du nutzt eben einen synchronen (ohne '&' -> Background) Systemaufruf -> aus "kann blockieren" wird dann eben "blockiert"... ;)

Kann man ändern indem man den Systemaufruf einfach in Anführungszeichen steckt und zwar NUR den Systemaufruf NICHT den Perl-Aufruf (inkl. System-Aufruf)...
...oder eben den synchronen Systemaufruf "in den Hintergrund" schickt -> '&' anhängen (Linux Shell)...

Bzgl. NonBlocking_Get: https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_NonblockingGet
habe jetzt deinen ersten und zweiten vorschlag gewählt (doppelt gemoppelt hält besser, oder?)
sieht dann so für mich jetzt aus
"curl https://maker.ifttt.com/trigger/Arloxxx/with/key/xxxx > /dev/null 2>&1> /dev/null &"

das nonblockingget habe ich wie ihr seht verworfen da es nicht funktioniert hat