Hauptmenü

HTTPMOD -> Timed Out ERROR

Begonnen von Robothaler, 23 Dezember 2018, 14:20:01

Vorheriges Thema - Nächstes Thema

Robothaler

Hallo zusammen,

ich beschäftige mich erst seit kurzem mit FHEM.
Inspiriert hat mich eine Eigenbau-Poolsteuerung die ich im Netz gefunden habe.
Diese basiert auf einem Arduino mit dem PH-, ORP und Temperatur-Sensoren ausgewertet werden.
Die Verbindung zu FHEM funktioniert über ein Ethernet-Shield (W5100) das mittels HTTPMOD ausgelesen wird.

Soweit funktioniert das auch alles ganz gut.
Nun will ich aber nicht nur einen Temperatur-Sensor damit auswerten sondern gleich mehrere.
Wenn ich 4 Sensoren sende werden die Werte anstandslos ausgelesen und übernommen.

Sobald ich einen 5. Sensor einbinde erhalte ich plötzlich folgende Fehlermeldungen:

LAST_ERROR    read from http://192.168.178.10:80 timed out

Ich habe schon mit den timeout-Werten in FHEM gespielt, aber leider ohne Erfolg.

Nachstehend findet ihr den Code-Ausschnitt aus FHEM:

define poolduino HTTPMOD http://192.168.178.10/getvalues 10
attr poolduino userattr event-min-interval event-on-change-reading event-on-update-reading reading04Name reading04Regex reading05Name reading05Regex reading06Name reading06Regex reading07Name reading07Regex reading08Name reading08Regex reading09Name reading09Regex stateFormat timeout userReadings verbose
attr poolduino event-min-interval state:60
attr poolduino get1CheckAllReadings 1
attr poolduino reading04Name ph
attr poolduino reading04Regex ph: ([0-9.]+)
attr poolduino reading05Name orp
attr poolduino reading05Regex orp: ([0-9.]+)
attr poolduino reading06Name TempWaterMess
attr poolduino reading06Regex TempWaterMess: ([0-9.]+)
attr poolduino reading07Name pressure
attr poolduino reading07Regex pressure: ([0-9.\-]+)
attr poolduino reading08Name flow
attr poolduino reading08Regex flow: ([0-9.]+)
attr poolduino reading09Name flow2
attr poolduino reading09Regex flow2: ([0-9.]+)
attr poolduino room STARTPAGE,POOL
attr poolduino stateFormat {sprintf("ph: %.2f, orp: %.1f mV, TempWaterMess: %.1f°;C, pressure: %.0f mbar, flow: %.0f %%, flow2: %.0f %%", ReadingsVal($name,"ph",0), ReadingsVal($name,"orp",0), ReadingsVal($name,"TempWaterMess",0), ReadingsVal($name,"pressure",0), ReadingsVal($name,"flow",0), ReadingsVal($name,"flow2",0))}
attr poolduino timeout 8
attr poolduino userReadings state {sprintf("T: %.1f ph: %.2f orp: %.1f P: %.0f F: %.0f F2: %.0f", ReadingsVal($name,"TempWaterMess",0), ReadingsVal($name,"ph",0), ReadingsVal($name,"orp",0), ReadingsVal($name,"pressure",0), ReadingsVal($name,"flow",0), ReadingsVal($name,"flow2",0))}
attr poolduino showBody 1
attr poolduino showError 1
attr poolduino showMatched 1
attr poolduino verbose 5


Und das ist der Wert der in buf geschrieben wird:

HTTP/1.1 200 OK
Content-Type: text/plain
Connection: close

pressure: 6 flow: 0 TempWaterPool: 23.37 TempWaterMess: 23.50 TempWaterAus: 23.37 Temp-outside: 23.37 TempAirSun: 23.50 TempWaterWP:


Vielleicht kann mir jemand helfen, ich sehe den Fehler leider nicht.

Grüße,
Jürgen

MadMax-FHEM

#1
Warum frägst du die Werte alle 10s ab?
Ist das notwendig?
Wenn ja: warum!?

EDIT: da macht der timeout von 8s ja nicht so wirklich Sinn...

Vielleicht kommt da dein Arduino-Web (nehme ich mal an) nicht mehr hinterher, wenn 5 Sensoren dran hängen...

Wie sind denn die Sensoren an den Arduino angebunden?
Wie werden sie ausgelesen?
Gibt es beim Abfragen der Sensoren "Wartezeiten"?

EDIT2: warum fängst du erst mit Reading04 an?

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)