NEWS
JavaScript 7.9.0 - Neue Objekt- und HTTP-Bausteine
-
@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
-
Ich verwende öfters den Parameter : mit Ergebnissen
Wie mache ich das nun mit dem neuen Block?
Hat sich erledigt, funktioniert.
-
@haus-automatisierung Bei CRON in der Form bekomme ich in Skripten mit 7.9.4 folgenden Fehler:
ReferenceError: check_garden_door_scheduler is not defined
Selbst wenn ich den Titel im CRON ändere erscheint er nicht in den CRON Stop Block.
Bestehende Skripte zeigen optisch noch zum CRON Titel passende Titel im Stop, aber es kommt auch der ReferenceError wenn man speichert.Titel von neue Zeitplan CRON Triggern in einem komplett neuem Skript werden im Stop Block gar nicht angeboten.
Anscheinend wird keine Variable mehr vom Typ cron passend zum Zeitplan erstellt:<variable type="cron" id="check_garden_door_scheduler">check_garden_door_scheduler</variable>
Edit: Mit 7.9.3 funktioniert es problemlos.
-
kurz zur Info,
Post geht jetzt zu den Hoymiles Wechselrichtern raus, Limit wird in der WebUi gesetzt.
Code 1002 war Daten falsch gesendet.
Curl auf einem Windows 10 System muß Data in doppelten Hochzeichen gesetzt werden also
" data ...................... " sonst auch hier Code 1002
Daten Leerfeld teste ich noch per Wireshark.Geilomat,
Danke, Dankehttp://admin:blablabla@192.168.2.65/api/limit/config data={"serial":"114184210379", "limit_type":1, "limit_value":25}"