NEWS
Hilfe bei request -> http Umstellung Sonos Sprachausgabe
-
Hallo,
kann mir jemand an diesen Beispiel zeigen wie ich die neuen Bausteine richtig verwende?
hier die Ausgangssituation:
Code:
@haus-automatisierung kannst du mir einen Tipp zur Anwendung der neuen Blocke in diesen Fall geben?
-
@xbit Klar, habe ich überall ausführlich erklärt. Was fehlt dir?
https://www.youtube.com/watch?v=dS6vkX6Mvjo
Gibt ja auch sonst auch schon viele Threads mit Beispielen dazu.
-
ich bekomme nach Ablauf des Timeout folgenden Log Eintrag:
Get
javascript.0 16:33:21.108 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute istSonntag der 04.08.2024 es ist 16 Uhr 33, Die Außentemperatur beträgt 22,2°C /de-de, error=socket hang up)
Post
javascript.0 16:39:42.940 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpPost(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute istSonntag der 04.08.2024 es ist 16 Uhr 39, Die Außentemperatur beträgt 22,5°C /de-de, error=timeout of 10000ms exceeded)
gebe ich die URL im Browser ein erfolgt die Sprachausgabe am Lautsprecher.
-
Wie sieht denn das Blockly jetzt aus??
-
Code:
KA ob es so richtig ist er soll ja nur die URL so aufrufen ich benötige kein Ergebnis von der URL.
-
@xbit Warum nimmst Du POST? Vorher war es doch auch ein GET-Request
-
@haus-automatisierung
Hat auch ein Fehler gemeldet.javascript.0 16:33:21.108 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute istSonntag der 04.08.2024 es ist 16 Uhr 33, Die Außentemperatur beträgt 22,2°C /de-de, error=socket hang up)
Vermutlich falsch konfiguriert
-
Weil ich getestet habe woran es liegt...
Habe es gefunden... die URL wird nicht aufgerufen sobald man "erstelle Text aus" verwendet.
Wird alles in einer Textzeile ohne Variable mit http-Get Baustein gemacht kommt auch die Ansage.
Ich benötige aber die Variablen...
-
@xbit Das ergibt technisch aber keinen Sinn, weil der Code von innen nach außen aufgelöst wird. Der httpGet Block weiß also nichtmal dass der Text aus einzelnen Bestandteilen zusammengesetzt wurde.
Eventuell liegt es an einem fehlenden urlEncoding. Kann sein dass das alte request Paket das automatisch gemacht hat. Müsste ich in Ruhe testen.
Aber dann dürfte es auch nicht gehen, wenn der gleiche String als Url direkt genutzt wird
-
Blockly in JS ohne "erstelle Text aus"
// Infoansage Morgens httpGet('http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute istSonntag der 04.08.2024 es ist 16 Uhr 39, Die Außentemperatur beträgt 22,5°C /de-de', { timeout: 20000, responseType: 'text' }, async (err, response) => { console.info(err); });
Blockly in JS mit "erstelle Text aus"
// Infoansage Morgens httpGet((['http://192.168.1.251:5005/K%C3%BCche/say/','Guten Morgen Heute ist','Sonntag',' der ','04.08.2024',' es ist ','16',' Uhr ','39',' Die Außentemperatur beträgt ','22,5','°C','/de-de'].join('')), { timeout: 20000, responseType: 'text' }, async (err, response) => { console.info(err); });
-
@xbit sagte: Blockly in JS mit "erstelle Text aus"
Da kommt der gleiche Text raus (ohne die zwei Kommata).
EDIT: Erstelle mal die URL mit Textzusammensetzung in eine Variable und übergebe die Variable an httpGet().@haus-automatisierung
Kann es sein, dass httpGet() die zusätzliche runde Klammer stört? -
danke @paul53 habe ich auch schon gemacht.
es geht dann ein mal danach wieder nicht starte ich das Script ein paar mal neu geht es wieder 1 mal... jedoch kommt die Sprachausgabe immer 2 mal hintereinander.
Log:
javascript.0 19:06:42.995 info Stopping script script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test javascript.0 19:06:43.041 info Start JavaScript script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test (Blockly) javascript.0 19:06:43.044 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 6 ,Die Außentemperatur beträgt 21,5 °C/de-de javascript.0 19:06:43.045 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 19:07:09.859 info Stopping script script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test javascript.0 19:07:09.906 info Start JavaScript script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test (Blockly) javascript.0 19:07:09.914 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 7 ,Die Außentemperatur beträgt 21,5 °C/de-de javascript.0 19:07:09.916 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 19:07:11.063 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 7 ,Die Außentemperatur beträgt 21,5 °C/de-de, error=socket hang up) javascript.0 19:07:15.799 info Stopping script script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test javascript.0 19:07:15.848 info Start JavaScript script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test (Blockly) javascript.0 19:07:15.851 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 7 ,Die Außentemperatur beträgt 21,5 °C/de-de javascript.0 19:07:15.852 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 19:07:15.853 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 7 ,Die Außentemperatur beträgt 21,5 °C/de-de, error=connect ECONNREFUSED 192.168.1.251:5005) javascript.0 19:07:20.967 info Stopping script script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test javascript.0 19:07:21.014 info Start JavaScript script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test (Blockly) javascript.0 19:07:21.022 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 7 ,Die Außentemperatur beträgt 21,5 °C/de-de javascript.0 19:07:21.024 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 19:07:21.025 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 7 ,Die Außentemperatur beträgt 21,5 °C/de-de, error=connect ECONNREFUSED 192.168.1.251:5005) javascript.0 19:07:26.840 info Stopping script script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test javascript.0 19:07:26.936 info Start JavaScript script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test (Blockly) javascript.0 19:07:26.939 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 7 ,Die Außentemperatur beträgt 21,5 °C/de-de javascript.0 19:07:26.940 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 19:08:07.100 info Stopping script script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test javascript.0 19:08:07.238 info Start JavaScript script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test (Blockly) javascript.0 19:08:07.248 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 8 ,Die Außentemperatur beträgt 21,5 °C/de-de javascript.0 19:08:07.249 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 19:08:08.574 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 8 ,Die Außentemperatur beträgt 21,5 °C/de-de, error=socket hang up) javascript.0 19:08:18.406 info Stopping script script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test javascript.0 19:08:18.496 info Start JavaScript script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test (Blockly) javascript.0 19:08:18.499 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 8 ,Die Außentemperatur beträgt 21,5 °C/de-de javascript.0 19:08:18.500 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 19:08:18.502 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 8 ,Die Außentemperatur beträgt 21,5 °C/de-de, error=connect ECONNREFUSED 192.168.1.251:5005) javascript.0 19:08:20.327 info Stopping script script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test javascript.0 19:08:20.482 info Start JavaScript script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test (Blockly) javascript.0 19:08:20.485 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist Sonntag der 04.08.2024 es ist 19 Uhr 8 ,Die Außentemperatur beträgt 21,5 °C/de-de javascript.0 19:08:20.486 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
da wo der error fehlt geht es (halt 2x hintereinander)
-
Da ich immer noch an einer Lösung suche...
Kann es sein, dass der Timeout nicht lang genug wartet?
Ich habe 200ms und auch 500ms eingestellt bekomme aber nach 1ms die Meldung das die 500ms überschritten sind.Habe für diesen Text das Blockly wie folgt aufgebaut:
Log:
javascript.0 20:06:57.237 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist /de-de, error=timeout of 200ms exceeded) javascript.0 20:06:57.237 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: Status Code: null javascript.0 20:06:57.237 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: Antwortzeit: undefined javascript.0 20:06:57.237 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: response headers: [object Object] javascript.0 20:06:57.237 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: Fehlermeldung: timeout of 200ms exceeded javascript.0 20:07:11.688 info Stopping script script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test javascript.0 20:07:11.791 info Start JavaScript script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test (Blockly) javascript.0 20:07:11.801 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 20:07:12.301 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist /de-de, error=timeout of 500ms exceeded) javascript.0 20:07:12.302 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: Status Code: null javascript.0 20:07:12.302 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: Antwortzeit: undefined javascript.0 20:07:12.302 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: response headers: [object Object] javascript.0 20:07:12.302 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: Fehlermeldung: timeout of 500ms exceeded
Irgendwie ist immer eine andere Meldung....
-
@xbit Kannst Du mal die Leerzeichen mit %20 ersetzen?
http://192.168.1.251:5005/K%C3%BCche/say/Guten%20Morgen%2C%20Heute%20ist%20/de-de
Klappt es dann?
-
geht leider auch nicht.
Ich muss aber dazu sagten das trotz der Fehlermeldung mit der Zeitüberschreitung der Text abgespielt wird.
aber wenn der Text länger wird klappt es nicht mehr.
Ich habe auch schon alle Sonderzeichen raus gemacht auch ohne Erfolg. -
@xbit Hab es gerade mal getestet und bekomme keinen Fehler. Timeout 5 Sek.
-
ich mit 5 sec auch nicht aber wenn das Script um 20:06:57.237 Startet und die Fehlermeldung 20:06:57.237 kommt das 200ms überschritten sind kann doch was nicht stimmen oder?
aber wenn du auch Sonos hast und die http-api kannst du da nicht mal das Blockly bei dir testen?
-
@xbit Da liegen doch exakt 500ms zwischen:
javascript.0 20:07:11.801 info script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 20:07:12.301 error script.js.common.0_userdata_0_.Testbereich.Sprechausgabe_Sonos_Test: httpGet(url=http://192.168.1.251:5005/K%C3%BCche/say/Guten Morgen, Heute ist /de-de, error=timeout of 500ms exceeded)
-
ja hast du recht bin bei dem testen schon ganz durch...
Falls es möglich ist, da du ja augenscheinlich auch die Sonos http api hast könntest du ja mal den Code aus Post 1 testen ob er geht muss ja nur die IP und der Raumname geändert werden und eventuell die Außentemperatur ausschalten.
Ansonsten müsste ich dann einen anderen Weg suchen um wieder die verschiedenen Ansagen zu erhalten.
EDIT Sorry hier der Code oben ist ja der alte...
-
@xbit
Den Fehler "error=socket hang up" habe ich auch manchmal. Und zwar dann, wenn ich mehrere Befehle hintereinander abfeuere, z.b. wenn ich dir Lautstärke schrittweise verändere.
Das hat meines Wissens aber nicht mi blockly zu tun oder mit dem httpget Block, sonder an sonos selbst. Ich habe diese Probleme erst seitdem ich damals die neues Software, die nur Probleme macht, installiert habe. Mit der alten Software hatte ich mit meinen blocklys nie Probleme gehabt.