NEWS
JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine
-
@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". -
@haus-automatisierung
Ich habe überall 0 ms eingetragen und jetzt bekomme ich wieder den Fehler 2000ms timeout obwohl ich 2000 nicht eingestellt habe. -
Hallo,
ich möchte mit den neuen Baustein HTTP Get einen Befehl an meinen Yamaha Receiver senden.
Beim start des Skript funktioniert das auch, aber dann nicht mehr. Löse das Skript via Button DP aus. -
@sigi234 sagte: Löse das Skript via Button DP aus.
Dann packe den HTTP-Block in den Trigger auf "ist wahr".
-
@paul53 sagte in JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine:
@sigi234 sagte: Löse das Skript via Button DP aus.
Dann packe den HTTP-Block in den Trigger auf "ist wahr".
Danke , funktioniert muss halt immer 2 mal klicken.
-
@sigi234 sagte: muss halt immer 2 mal klicken.
Dieser Button toggled den DP-Wert. Dann triggere besser auf "wurde aktualisiert".
-
@haus-automatisierung sagte: request ist ja leider schon lange deprecated
Ich habe in Version 7.9.4 festgestellt, dass für
request
wieder require('request') erforderlich ist. Habe PR für die Funktions-Doku erstellt. -
@paul53 Danke, ja eigentlich ist die Idee das direkt mit den neuen Funktionen zu ersetzen sodass man möglichst keine Abhängigkeiten in den Scripts hat