Hallo allerseits,
ich bin mir nicht ganz schlüssig, ob dieses Thema hier reingehört oder eher zu den Modulen...
Da ich momentan damit kämpfe, meine 1wire-Sensoren über OWServer wieder komplett funktionsfähig zu bekommen (s. separater Thread https://forum.fhem.de/index.php?topic=139123.0), versuche ich nun einen Workaround über HTTPMOD.
Leider funktioniert das nur sehr eingeschränkt; im fhem.log taucht beim Versuch, die Werte (bzw. URL) abzurufen:
Read callback: Error: read from http://localhost:2121 timed out
Ein Abruf der URL direkt auf der Linux-Shell mit wget liefert direkt den HTML-Code, und auch wenn ich von einem PC aus die URL aufrufe (dann mit FQDN statt localhost), bekomme ich innerhalb von 1-2 Sekunden die Seite von owhttpd geliefert.
Irgendwo scheine ich also ein Timing-Problem zu haben; SEHR gelegentlich kommt dann doch mal ein erfolgreicher Versuch zustande.
define 90TempNord HTTPMOD http://localhost:2121/28.B684DE030000 300
attr 90TempNord reading1Name temperature
attr 90TempNord reading1Regex <TR><TD><B>latesttemp</B></TD><TD>([\d\.]+)</TD></TR>
attr 90TempNord room Heizung,OWDevice
attr 90TempNord stateFormat {sprintf("%.1f",ReadingsVal($name,"temperature",0))."°C"}
# BUSY 0
# CFGFN
# DEF http://localhost:2121/28.B684DE030000 300
# FUUID 67273b8a-f33f-e35a-3dca-d7b2ab941822e9b2
# Interval 300
# MainURL http://localhost:2121/28.B684DE030000
# ModuleVersion 4.2.0 - 11.8.2023
# NAME 90TempNord
# NOTIFYDEV global
# NR 1563
# NTFY_ORDER 50-90TempNord
# STATE 0.0°C
# TYPE HTTPMOD
# value
# CompiledRegexes:
# HttpUtils:
# NAME
# addr http://localhost:2121
# auth 0
# buf
# data
# displayurl http://localhost:2121/28.B684DE030000
# header
# host localhost
# httpversion 1.0
# ignoreredirects 1
# loglevel 4
# path /28.B684DE030000
# protocol http
# redirects 0
# timeout 2
# url http://localhost:2121/28.B684DE030000
# sslargs:
# QUEUE:
# READINGS:
# REQUEST:
# context reading
# data
# header
# ignoreredirects 0
# num unknown
# retryCount 0
# type update
# url http://localhost:2121/28.B684DE030000
#
setstate 90TempNord 0.0°C
Update:
ich hab den timeout mal auf 30 Sekunden gestellt, dann klappt zumindest der "reread" meistens.
Leider kachelt der owhttpd gelegentlich ab; ich vermute mal, weil die Anfragen gemäß "interval" alle geballt gleichzeitig kommen :-(
...noch ein Update: nachdem ich interval nun etwas entzerrt habe, sodass nicht immer gleich 10 Anfragen gleichzeitig reinkommen, sieht das Ganze erstmal stabil aus. Damit komm ich über den Winter und schau in Ruhe, wie ich die 1wire-Werte wieder über OWFS oder mit anderen Busmastern über OWX reinbekomme.
VG
Matze
Zitat von: wolliballa73 am 03 November 2024, 10:51:43Update:
ich hab den timeout mal auf 30 Sekunden gestellt, dann klappt zumindest der "reread" meistens.
Leider kachelt der owhttpd gelegentlich ab; ich vermute mal, weil die Anfragen gemäß "interval" alle geballt gleichzeitig kommen :-(
Es ist eigentlich ein ziemlich dummer Fehler. Dies ist wirklich schwer zu vermeiden, wenn es auftritt.