NEWS
JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine
-
senden ohne Daten so ?
-
@ralla66 Post Request ohne Daten?
-
genau, sollte per Get und Post gehen nach Web Api OpenDTU
OpenDTU -
@ralla66 Pack mal
null
da rein. Also keinen Leerstring. -
leider nein,
wird der Body Leer mit gesendet ? -
@ralla66 sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:
leider nein,
Gerade getestet, funktioniert.
-
ich schau mal morgen mit Wireshark nach
-
@ralla66 Du wollest einen leeren Post-Request und jetzt kommt die andere Seite damit nicht klar und möchte Werte?
Was rufst Du auf? Die ntp config? Die braucht doch Werte für die Konfiguration - laut Doku:
curl -u "admin:password" http://192.168.10.10/api/ntp/config -d 'data={"ntp_server":"my.own.ntp.server.home","ntp_timezone":"CET-1CEST,M3.5.0,M10.5.0/3","ntp_timezone_descr":"Europe/Berlin"}' {"type":"success","message":"Settings saved!"}
Ich suche mal nicht weiter, gerne erklären wo der Fehler im JavaScript liegt mit einem funktionierenden Beispiel in curl.
-
Danke soweit,
hatte auch die npt time getestet.
Schaue mal weiter, dann kann nur die Anfrage falsch sein. -
@haus-automatisierung mit 7.9.4 funktioniert basic auth nun
DANKE! -
@haus-automatisierung Bie diesem Block zum Reboot eines Sonoff mit Tasmota FW kommt eine Fehlermeldung
09:24:16.358 info javascript.0 (1952275) script.js.test.Test: httpGet({"method":"get","url":"http://192.168.2.77/cm?cmnd=Restart%2099&user=admin&password=gzJIi3ab","responseType":"text","responseEncoding":"utf8","timeout":2000,"headers":{"User-Agent":"Mozilla/5.0 (X11; Linux i686; rv:109.0) Gecko/20100101 Firefox/121.0"}}) 09:24:18.604 error javascript.0 (1952275) script.js.test.Test: maxContentLength size of -1 exceeded
-
@diginix sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:
Bie diesem Block zum Reboot eines Sonoff mit Tasmota FW
Welche FW Version? Dann kann ich das mal testen.
PS: Warum nicht per MQTT?
-
@haus-automatisierung
Den timeout auf z.b. 4000 zu erhöhen, bringt leider auch nichts. Hast du noch eine andere Idee? -
@jwerlsdf sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:
Hast du noch eine andere Idee?
Schauen warum der Request so lange läuft und z.B. mal mit curl testen was zurück kommt (und wann).
-
@haus-automatisierung FW: 13.4.0(lite) und die Sonoff hängen alle am sonoff Adapter und nicht am mqtt. Hab noch nicht geschaut ob es da auch ein Topic gibt den man für den Reboot schreiben kann.
Konnte auf die Schnelle kein Objekt unter sonoff.0.%device% für reboot finden.
-
@diginix sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:
Bie diesem Block zum Reboot eines Sonoff mit Tasmota FW kommt eine Fehlermeldung
Sieht so aus als wäre das ein Bug in Axios, wenn die Verbindung einfach geschlossen wird (was scheinbar beim Restart passiert). Das heißt, Tasmota antwortet da nicht sauber. Siehe auch
https://github.com/axios/axios/issues/5286
Wenn ich das mit curl mache, dann wartet der auch ewig auf ein Ergebnis, ohne dass die Verbindung sauber geschlossen wird. Muss ich dann manuell abbrechen.
Kann ich also nicht beheben - muss Tasmota tun.
curl -vvv "http://10.10.9.241/cm?cmnd=Restart%2099" * Trying 10.10.9.241:80... * Connected to 10.10.9.241 (10.10.9.241) port 80 (#0) > GET /cm?cmnd=Restart%2099 HTTP/1.1 > Host: 10.10.9.241 > User-Agent: curl/7.88.1 > Accept: */* > < HTTP/1.1 200 OK < Content-Type: application/json < Server: Tasmota/13.4.0 (ESP8285N08) < Cache-Control: no-cache, no-store, must-revalidate < Pragma: no-cache < Expires: -1 < Accept-Ranges: none < Transfer-Encoding: chunked < Connection: close < ^C
-
Wenn ich
Restart 1
(1 = restart device with configuration saved to flash) nutze, klappt das übrigens und ich bekomme auch einen vernünftigen Response:{"Restart":"Restarting"
-
@haus-automatisierung Danke für den Test!
Dann stelle ich bei allen mal aufrestart 1
um. Dann kann ich mir data sogar noch ausgeben lassen. Restart 99 ist halt ohne Config speichern, aber da die sich ja zu dem Zeitpunkt auch nicht geändert hat, sollte es mit 1 statt 99 auch keine Nachteile haben. -
@haus-automatisierung
Ok, ich habe es getestet.
Noch einmal zum Szenario: Der Befehl lässt eine MP3 über Sonos API abspielen.
In der Konsole bekomme ich ein "status": :succees" sobald das Lied FERTIG abgespielt ist.Jetzt das Problem: Wenn ich den timeout so hoch stelle wie das Lied z.b. 20sek, bekomme ich keinen timeout Fehler mehr, aber mein restliches Skript ist damit obsolet, da direkt nach dem Befehl die 3 Sekunden Pause und dann die weiteren Befehle kommen würden, was aber durch den hohen timeout nicht mehr geht. Ich hoffe, ich konnte das Problem verständlich erklären?!
-
@jwerlsdf sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:
da direkt nach dem Befehl die 3 Sekunden Pause und dann die weiteren Befehle kommen würden, was aber durch den hohen timeout nicht mehr geht.
Warum sollte das nicht gehen?! Das Script wartet nicht auf den http Response (deswegen ja der callback). Und läuft in der Zeit weiter durch.
Du kannst bei Timeout auch
0
eintragen, dann ist es "unbegrenzt".