NEWS
Hilfe bei Skripte von request auf httpGet umbauen
-
@haus-automatisierung Sorry.
pi@Smartazamba:~ $ curl -v "http://192.168.178.138/cm?cmnd=Restart 1" * Closing connection -1 curl: (3) URL using bad/illegal format or missing URL
-
@rushmed
curl -v "http://192.168.178.138/cm?cmnd=Restart%201"
-
@haus-automatisierung sagte in Hilfe bei Skripte von request auf httpGet umbauen:
curl -v "http://192.168.178.138/cm?cmnd=Restart 1"
pi@Smartazamba:~ $ curl -v "http://192.168.178.138/cm?cmnd=Restart%201" * Trying 192.168.178.138:80... * Connected to 192.168.178.138 (192.168.178.138) port 80 (#0) > GET /cm?cmnd=Restart%201 HTTP/1.1 > Host: 192.168.178.138 > User-Agent: curl/7.88.1 > Accept: */* > < HTTP/1.1 200 OK < Content-Type: application/json < Server: Tasmota/14.1.0.1 (ESP8266EX) < Cache-Control: no-cache, no-store, must-revalidate < Pragma: no-cache < Expires: -1 < Accept-Ranges: none < Transfer-Encoding: chunked < Connection: close < * Closing connection 0 {"Restart":"Restarting"}p
Restart wir ausgeführt.
Script sendet wieder:javascript.0 22:20:34.986 error script.js.Matrix_Displays: timeout of 2000ms exceeded
Das passiert ohne Scriptneustart o.ä.. Scheinbar lauscht das Script aber empfängt nichts.
Gesendet hab' ich den Befehl per Putty. -
@rushmed sagte in Hilfe bei Skripte von request auf httpGet umbauen:
Transfer-Encoding: chunked
Könnte sein dass axios denkt dass da noch mehr kommen müsste und deswegen wartet (bis timeout). Muss ich mir mal ein Test-Setup aufbauen. Eventuell auch eine blöde Kombination in Tasmota mit Restart, dass die Verbindung dann nicht richtig geschlossen wird, weil ESP neustartet.
https://nothing-else.blog/blog/axios-timeout-for-chunked-responses
-
@haus-automatisierung Ich hab' noch eine Info:
Bringt nur:javascript.0 22:26:05.158 error script.js.Tasmota: timeout of 2000ms exceeded javascript.0 22:26:05.164 error script.js.Tasmota: timeout of 2000ms exceeded
bei drei angesprochenen Geräten von denen zwei offline sind. Hier kommt die Meldung für das Verfügbare gerät nicht. Das ist schlüssig.
Wo liegt hier der Unterschied? -
@rushmed sagte in Hilfe bei Skripte von request auf httpGet umbauen:
Wo liegt hier der Unterschied?
Andere Tasmota-Version?
-
@haus-automatisierung Oha, da passiert was, ich prüfe kurz.
Edit1:
Tasmota Development Version" Tasmota 14.1.0.1 (display)" bringt den Error.
Tasmota Master Version "Tasmota 14.1.0 (display)" bringt den Error nicht.
Super!
Werde die Devices auf die Tasmota Master umstellen.
Vielen Dank!Edit2:
Hab' mich zu früh gefreut. Der Error kommt wieder.Edit3:
Jetzt sind zwei von drei Geräten angschlossen bei der Ausführung von:
und die Errormeldung kommt nurnoch einmal. Wieder schlüssig. -
@rushmed Probiere mal
/cm?cmnd=Restart%201
Die
%20
maskieren das Leerzeichen (URL-Encoding), vielleicht liegt es daran -
@bananajoe sagte in Hilfe bei Skripte von request auf httpGet umbauen:
%20
Hat leider nicht geholfen. Die Meldung kommt dennoch.
Ich verstehe wiklich nicht warum die Meldung bei:
auftritt, aber bei:
nicht. -
Hier evtl eine zusatzinformation zum Problem
https://github.com/axios/axios/issues/5753Eine Lösung dafür hab ich allerdings nicht gesehen und gesucht
-
@oliverio Danke aber Logindaten sind für den Befehl nicht notwendig.
-
Shit falscher thread
-
bei tasmota mit dem httpget baustein bekomme ich öfters bei 2000ms einen fehler - verhindern kann ich das nur mit 4000ms timeout einstellung
das wurde schon mal diskutiert und keine lösung gefunden - meine vermutung ist eher, das die esp's irgendwie beschäftigt sind, bevor sie eine antwort senden, da 2 sek eine ewigkeit im netztraffik sind und kein thema sein sollte
ich würde auch evtl einen pause block in deine schleife einfügen - wenn man zu schnell mehrere esp' s anspricht, habe ich schon immer probleme gehabt
-
@liv-in-sky sagte in Hilfe bei Skripte von request auf httpGet umbauen:
bei tasmota mit dem httpget baustein bekomme ich öfters bei 2000ms einen fehler
ist bei mir auch so, aber erst gekommen mit dem neuen Get Baustein. Bei Request deprecated
war auch noch Ruhe im Log. Das scheint aber nicht an Tasmota zu liegen da ich die Json auch von
Esp zu Esp abhole und da läuft alles sauber.
Es sollte der Wert auf 0 gesetzt werden können für Aus. -
@rushmed der Sonoff-Adapter hat keine Funktion um beliebige Befehle zu senden, oder?
Ich nutze Tasmota nativ mit einem MQTT-Broker, da würde ich einfach unter dem Topic/cmd/gerätename/Restart
eine1
senden ... Da gibt es dann auch keine Timeoutprobleme weil der Tasmota das abonniert hat und vom Broker benachrichtigt wird -
@liv-in-sky Das Timeout zu erhöhen brigt bei mir nichts.
Wie gesagt der ESP regaiert auf den Befehl und sendet eine Antwort. Die Antwort kommt 60 ms nach Scriptstart, siehe unten.@rushmed sagte in Hilfe bei Skripte von request auf httpGet umbauen:
Hallo meine Herren,
ich muss nochmal nach dem Thema:
timeout of 2000ms exceeded
fragen.
Wenn ich diesen Block ausführe:
bekomme ich diese Antwort:javascript.0 19:17:46.172 info Start JavaScript script.js.Matrix_Displays (Blockly) javascript.0 19:17:46.207 info script.js.Matrix_Displays: registered 69 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 19:17:46.267 info script.js.Matrix_Displays: {"Restart":"Restarting"} javascript.0 19:17:50.287 error script.js.Matrix_Displays: timeout of 2000ms exceeded
Der Befehl wird auf dem (Tasmota) Gerät ausgeführt und die Antwort kommt ja augenscheinlich auch im ioBroker an. Warum kommt dann hier der Error und kann ich etwas dagegen tun?
Danke vorab.
-
@ralla66 sagte in Hilfe bei Skripte von request auf httpGet umbauen:
Bei Request deprecated
war auch noch Ruhe im Logbei mir selbes Verhalten.
@liv-in-sky
bei mir noch immer das mit dem Timeout.
Immer zur 10. Minute und zur 61. Minute.iobroker, [03.06.2024 06:00] VZ Script-Timeout über 2 Sekunden iobroker, [03.06.2024 06:01] VZ Script-Timeout über 2 Sekunden iobroker, [03.06.2024 06:10] VZ Script-Timeout über 2 Sekunden iobroker, [03.06.2024 06:20] VZ Script-Timeout über 2 Sekunden iobroker, [03.06.2024 06:30] VZ Script-Timeout über 2 Sekunden iobroker, [03.06.2024 06:40] VZ Script-Timeout über 2 Sekunden iobroker, [03.06.2024 06:50] VZ Script-Timeout über 2 Sekunden iobroker, [03.06.2024 07:00] VZ Script-Timeout über 2 Sekunden iobroker, [03.06.2024 07:01] VZ Script-Timeout über 2 Sekunden iobroker, [03.06.2024 07:10] VZ Script-Timeout über 2 Sekunden
-
Kann jemand zuverlässig die Timeouts zu Tasmota reproduzieren?
Wenn ja, bitte ich um ein Script und um die genaue Angabe der Tasmota-Version.
Am Ende läuft unter httpGet aktuell auch nur axios und es wird alles 1:1 so weitergegeben. -
@negalein bei dir wird ein pi abefragt und ich glaube du fragst im sekunden bereich - alle 10 oder so - daher ist dein fehler eher auf dem pi zu suchen - wir vermuten doch, der arbeitet da etwas ab und läßt keine verbindung zu
allein, dass das alle 10 minuten kommt, obwohl du öfters abfrägst, weißt für mich eher auf die gegenstelle hin und nicht httpget - zusätzlich nutzen wir direkt axios im script
oder täusche ich mich ?
-
Ich polle mir per javascript script den Server meiner PV Anlage und parse da Informationen runter. Das habe ich per "request" jetzt seit Jahren am Laufen, ohne jemals einen Fehler oder eine fehlerhafte Rückmeldung zu sehen. Seit Umstellung auf Get kamen regelmäßig timeouts.
Mit
httpGet(URL, {timeout: 4000}, function(error, response) {
kommen die timeouts nicht mehr einzeln, sondern nach ca. einem Tag scheinen sich die requests anzuhäufen und der Server schmiert ab.Ich baue jetzt erst mal wieder zurück auf request.