http Seite nicht blockierend aufrufen

Begonnen von Chris_XXX, 19 Mai 2021, 20:34:04

Vorheriges Thema - Nächstes Thema

Chris_XXX

Hallo zusammen,

gibt es eine Möglichkeit aus FHEM heraus eine http Seite nicht blockierend aufzurufen?
Ich hatte nur die Idee das über OS Ebene zu lösen mit qx oder system. Aber dann landet er output entweder im Logfile (wo er nicht hin soll) oder es wird blockierend. Blockierend ist aber nicht gut da die Seite ziemlich lange braucht.
Eigentlich brauch ich den Output nicht wirklich - es muss nur die Seite aufgerufen werden.
Jemand eine Idee?

Viele Grüße
Christian


Otto123

#1
Hi,

mit "FHEM Befehl" ist es nicht blockierend. Und mit wget -q ist es normalerweise still  :)

Also probier das in der FHEM Kommandozeile. Die "" gehören dazu!!!
"wget -qO - http://deineSeite/ > /dev/null 2>&1"

Geht sicher eleganter - aber vielleicht ist es ja ok.

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

Frank_Huber

Könnte man doch auch mit den httputils machen, oder?
Ich schicke so zumindest per http Aufruf ir Befehle.

{GetHttpFile("192.168.12.184","/json?plain=[{'data':'A8B47','type':'SONY','length':20}],[{'data':'A8B47','type':'SONY','length':20}]");;return undef}

Chris_XXX

Also das von Otto funktioniert schon ganz gut. Nur kann ich ihm nicht abgewöhnen das er den Output immer irgendwo hin schreiben will. Entweder auf OS Ebene oder ins logfile. Seeeehr mitteilungsbedürftig.

Und der Vorschlag von dir Frank ist wenn ich das richtig gelesen habe blockierend.

MadMax-FHEM

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)

Christoph Morrison

Einfach ein HTTMOD-Device ohne irgendwelche der Auswerte-Attribute gesetzt?

Otto123

Zitat von: Chris_XXX am 19 Mai 2021, 21:44:21
Also das von Otto funktioniert schon ganz gut. Nur kann ich ihm nicht abgewöhnen das er den Output immer irgendwo hin schreiben will. Entweder auf OS Ebene oder ins logfile. Seeeehr mitteilungsbedürftig.
Ja das habe ich mir fast gedacht, das Problem ist die Umleitung bei dieser Art Befehl.
Wenn Du die Zeile einfach in eine Scriptdatei MeinScript schreibst
wget -qO - http://deineSeite/ > /dev/null 2>&1
und diese dann mit (kompletten Pfad zu MeinScript verwenden)
"bash MeinScript"
aufrufst sollte es ohne jeden Output gehen.

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

Chris_XXX

Erstmal herzlichen Dank für eure Vorschläge.
Das von Otto wäre wohl die, die ich am ehesten kapiere. Ist aber etwas "dezentral"
Weiß jemand wie man mit HttpUtils_NonblockingGet einfach eine URL aufruft? Das Wiki habe ich mir angesehen... sehr sehr viele Parameter.
Und zu guter Letzt: Das HTTPMod Device: Wie triggere ich das an das es nach einem bestimmten Event eine Website aufruft?




betateilchen

#8
Zitat von: Chris_XXX am 20 Mai 2021, 21:26:39
Das von Otto wäre wohl die, die ich am ehesten kapiere. Ist aber etwas "dezentral"

noch eine Alternative mit wget:

wget -o /dev/null -O /dev/null http://irgendwas


Zitat von: Chris_XXX am 20 Mai 2021, 21:26:39
Weiß jemand wie man mit HttpUtils_NonblockingGet einfach eine URL aufruft? Das Wiki habe ich mir angesehen... sehr sehr viele Parameter.

Die meisten Parameter sind optional, verpflichtend sind m.W. nur url und callback, wobei callback auch eine leere Funktion sein darf.

HttpUtils_NonblockingGet( {url=>"http://irgendwas", callback=> sub {} } )

Zitat von: Chris_XXX am 20 Mai 2021, 21:26:39
Und zu guter Letzt: Das HTTPMod Device: Wie triggere ich das an das es nach einem bestimmten Event eine Website aufruft?

set <httpmod-device> reread
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Chris_XXX

Die letzte Möglichkeit mit set <httpmod-device> reread klingt am besten für das was ich vor habe. Aber:
Unknown argument reread, choose one of attrTemplate
Ich habe auch nur die Möglichkeit ein "attrTemplate" auszwählen. Gibt es da einen anderen Trick um das httpmod Device nochmal aufzurufen? Beim anlegen gebe ich ja normalerweise mit in welchem Abstand es abgerufen werden soll. Ich will es ja nur nach einem bestimmten Ereignis abrufen...

MadMax-FHEM

Wie aktuell ist dein fhem?

Wenn nicht aktuell, dann musst du ein Attribut setzen (ich schau mal welches das war), damit reread kommt...

Ansonsten (also fhem aktuell) sollte es eigentlich angeboten werden...

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)

Chris_XXX

Hi Joachim,
also ich bin jetzt nicht auf dem heutigen Stand... grob geschätzte habe ich vor einem Monat das letzte Update gemacht?

VG
Chrisitan

MadMax-FHEM

Ein Monat sollte eigentlich aktuell genug sein...
Komisch...
Poste doch mal ein list...

Ansonsten:

Zitat von: wiki httpmod
enableControlSet
enables the built in set commands interval, stop, start, reread, upgradeAttributes, storeKeyValue

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)

Chris_XXX

#13
Hi Joachim,
so schauts aus:


Internals:
   BUSY       0
   DEF        http://111.222.333.444:5000/get_vehicleinfo/xyzabc123 120
   FUUID      603e3c7d-f33f-4f30-5958-c2c10570edaadf80
   Interval   120
   MainURL    http://111.222.333.444:5000/get_vehicleinfo/xyzabc123
   ModuleVersion 4.1.08 - 1.4.2021
   NAME       Corsa
   NOTIFYDEV  global
   NR         310
   NTFY_ORDER 50-Corsa
   STATE      Ladung: 46.0 Prozent 110.00 km Reichweite
   TYPE       HTTPMOD
   value     
   CompiledRegexes:
   Helper:
     DBLOG:
       energy_01_level:
         DBLogging:
           TIME       1622099608.90467
           VALUE      46
       timed_odometer_mileage:
         DBLogging:
           TIME       1622043205.72071
           VALUE      2320.8
   HttpUtils:
     NAME       
     addr       http://111.222.333.444:5000
     auth       0
     buf       
     code       200
     conn       
     data       
     displayurl http://111.222.333.444:5000/get_vehicleinfo/xyzabc123
     header     
     host       111.222.333.444
     httpheader HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 1514
Access-Control-Allow-Origin: *
Server: Werkzeug/1.0.1 Python/3.7.3
Date: Thu, 27 May 2021 08:13:28 GMT
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    5000
     hu_portSfx :5000
     ignoreredirects 1
     loglevel   4
     path       /get_vehicleinfo/xyzabc123
     protocol   http
     redirects  0
     timeout    2
     url        http://111.222.333.444:5000/get_vehicleinfo/xyzabc123
     sslargs:
   QUEUE:
   READINGS:
     2021-05-27 10:13:28   Ladung          46.0
     2021-05-27 10:13:28   battery_current 0
     2021-05-27 10:13:28   battery_voltage 91
     2021-05-27 10:13:28   energy_01_autonomy 110
     2021-05-27 10:13:28   energy_01_charging_charging_mode Slow
     2021-05-27 10:13:28   energy_01_charging_charging_rate 0
     2021-05-27 10:13:28   energy_01_charging_next_delayed_time PT14H23M
     2021-05-27 10:13:28   energy_01_charging_plugged 1
     2021-05-27 10:13:28   energy_01_charging_remaining_time PT0S
     2021-05-27 10:13:28   energy_01_charging_status InProgress
     2021-05-27 10:13:28   energy_01_level 46
     2021-05-27 10:13:28   energy_01_type  Electric
     2021-05-27 10:13:28   energy_01_updated_at 2021-05-27 07:58:30+00:00
     2021-04-20 13:45:50   kinetic_moving  0
     2021-04-20 13:45:50   last_position_geometry_coordinates_0 11.10979
     2021-04-20 13:45:50   last_position_geometry_coordinates_1 49.72449
     2021-04-20 13:45:50   last_position_geometry_coordinates_2 341
     2021-05-27 10:13:28   last_position_geometry_type Point
     2021-04-19 12:23:46   last_position_properties_heading 0
     2021-04-19 12:35:47   last_position_properties_signal_quality 9
     2021-04-20 13:45:50   last_position_properties_type Aquire
     2021-04-20 13:45:50   last_position_properties_updated_at 2021-04-19 10:37:41+00:00
     2021-05-27 10:13:28   last_position_type Feature
     2021-05-27 10:13:28   links__self_href https://api.groupe-psa.com/connectedcar/v4/user/vehicles/1566c684c5655686153316861544451304d5463774d44456a497a4e6d4f574e694d6d4d344d5751794e5459324e4746684d324668597a63794e7a67314d54517a4f546c694e6d566b5a4449334d7a51324e7a466d4d4745305957566d5a4445335a44566b4f575a6959574d794d324d3d/status
     2021-05-27 10:13:28   preconditionning_air_conditioning_status Disabled
     2021-05-27 10:13:28   preconditionning_air_conditioning_updated_at 2021-05-27 07:58:30+00:00
     2021-05-27 10:13:28   privacy_state   None
     2021-05-27 10:13:28   service_type    Electric
     2021-05-27 10:13:28   service_updated_at 2021-05-06 08:09:54+00:00
     2021-05-27 10:13:28   timed_odometer_mileage 2320.8
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        http://111.222.333.444:5000/get_vehicleinfo/xyzabc123
   defptr:
     readingBase:
       Ladung     reading
       battery_current reading
       battery_voltage reading
       energy_01_autonomy reading
       energy_01_charging_charging_mode reading
       energy_01_charging_charging_rate reading
       energy_01_charging_next_delayed_time reading
       energy_01_charging_plugged reading
       energy_01_charging_remaining_time reading
       energy_01_charging_status reading
       energy_01_level reading
       energy_01_type reading
       energy_01_updated_at reading
       last_position_geometry_type reading
       last_position_type reading
       links__self_href reading
       preconditionning_air_conditioning_status reading
       preconditionning_air_conditioning_updated_at reading
       privacy_state reading
       service_type reading
       service_updated_at reading
       timed_odometer_mileage reading
     readingNum:
       Ladung     01
       battery_current unknown
       battery_voltage unknown
       energy_01_autonomy unknown
       energy_01_charging_charging_mode unknown
       energy_01_charging_charging_rate unknown
       energy_01_charging_next_delayed_time unknown
       energy_01_charging_plugged unknown
       energy_01_charging_remaining_time unknown
       energy_01_charging_status unknown
       energy_01_level unknown
       energy_01_type unknown
       energy_01_updated_at unknown
       last_position_geometry_type unknown
       last_position_type unknown
       links__self_href unknown
       preconditionning_air_conditioning_status unknown
       preconditionning_air_conditioning_updated_at unknown
       privacy_state unknown
       service_type unknown
       service_updated_at unknown
       timed_odometer_mileage unknown
     readingOutdated:
     requestReadings:
       update:
         Ladung     reading 01
         battery_current reading unknown
         battery_voltage reading unknown
         energy_01_autonomy reading unknown
         energy_01_charging_charging_mode reading unknown
         energy_01_charging_charging_rate reading unknown
         energy_01_charging_next_delayed_time reading unknown
         energy_01_charging_plugged reading unknown
         energy_01_charging_remaining_time reading unknown
         energy_01_charging_status reading unknown
         energy_01_level reading unknown
         energy_01_type reading unknown
         energy_01_updated_at reading unknown
         last_position_geometry_type reading unknown
         last_position_type reading unknown
         links__self_href reading unknown
         preconditionning_air_conditioning_status reading unknown
         preconditionning_air_conditioning_updated_at reading unknown
         privacy_state reading unknown
         service_type reading unknown
         service_updated_at reading unknown
         timed_odometer_mileage reading unknown
Attributes:
   DbLogExclude .*
   DbLogInclude timed_odometer_mileage,energy_01_level
   enableControlSet 0
   event-on-change-reading timed_odometer_mileage:2,energy_01_level,energy_01_autonomy,energy_01_charging_status,energy_01_charging_plugged
   extractAllJSON 1
   reading01Name Ladung
   reading01Regex "level": ([\d\.\d]+)
   room       E-Auto
   showBody   0
   stateFormat {sprintf("Ladung: %.1f Prozent %.2f km Reichweite", ReadingsVal($name,"energy_01_level",undef), ReadingsVal($name,"energy_01_autonomy",undef))}
   verbose    0



VG
Christian

Chris_XXX

Aber mit dem setzen des Attiburts enableControlSet taucht es auf. Danke dir!