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
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
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}
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.
Dann eben die non-blocking-Variante ;)
https://wiki.fhem.de/wiki/HttpUtils#HttpUtils_NonblockingGet
EDIT: evtl. auch https://forum.fhem.de/index.php?topic=112140.0
Gruß, Joachim
Einfach ein HTTMOD-Device ohne irgendwelche der Auswerte-Attribute gesetzt?
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
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?
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
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...
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
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
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
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
Aber mit dem setzen des Attiburts enableControlSet taucht es auf. Danke dir!
Ok, na dann... :)
Nächstes Mal (oder auch dieses Mal schon per "Nachbearbeitung") bitte in "code -Tags" posten (das '#' im "Menü")...
Gruß, Joachim
Und nochwas gelerent :)
Danke dir!
VG
Christian