NEWS
Update v8.3.1 fehlerhafte Skripte
-
@haus-automatisierung Vielen Dank für die Antwort und die Bearbeitung des Skriptes, was mir an den Stellen mit "request" dann in der Übersetzung geholfen hat. Mit der Änderung der Variablen würde ich mich dann später beschäftigen ... Ich habe versucht, die geänderte Schreibweise zu übernehmen, bekomme jetzt eine Fehlermeldung, dass kein Inhalt drin ist.
Könnte es daranliegen, dass die NAS aktuell keine Antwort durch ihre Überlastung geben kann?
Zuvor hatte ich "console.log" hinter der Variablen stehen, da erhielt ich
2024-06-09 20:28:46.008 error script.js.Homedingskacke.Fehler: timeout of 2000ms exceeded javascript.0 2024-06-09 20:28:46.008 info script.js.Homedingskacke.Fehler: null
Codeauszug:
httpGet(url_login, function(err, response){ console.log('data: ', response.data); console.error('Error: ',err); var my_sid = JSON.parse(response.data).data.sid; ...
Fehlermeldung dazu:
avascript.0 2024-06-09 20:32:06.530 error at processTimers (node:internal/timers:512:7) javascript.0 2024-06-09 20:32:06.529 error at listOnTimeout (node:internal/timers:538:9) javascript.0 2024-06-09 20:32:06.529 error at runNextTicks (node:internal/process/task_queues:60:5) javascript.0 2024-06-09 20:32:06.529 error at /opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1217:38 javascript.0 2024-06-09 20:32:06.529 error at Object.<anonymous> (script.js.Homedingskacke.Fehler:243:47) javascript.0 2024-06-09 20:32:06.528 error Error in callback: TypeError: Cannot read properties of null (reading 'data') javascript.0 2024-06-09 20:32:06.526 error script.js.Homedingskacke.Fehler: Error: javascript.0 2024-06-09 20:32:06.525 info script.js.Homedingskacke.Fehler: data:
Viele Grüße!
-
@peterpan sagte in Update v8.3.1 fehlerhafte Skripte:
rror at Object.<anonymous> (script.js.Homedingskacke.Fehler:243:47)
und was steht an dieser Stelle?
Möglicherweise ist der Timeout zu kurz und dies ein Folgefehler weil kein data.response kommt
-
@homoran Ja, für viele sicher offensichtlich und auch ich hatte gefunden, dass man request gegen httpget tauschen muss. Aber für mich ist es schon mit Unsicherheit behaftet, dann dies auch aus request.get zu übertragen. Ich gebe dir recht, aber als jemand, der sich aus Skript-Schnipsel aus dem Forum ernährt, ist vieles erst einmal nicht so offensichtlich.
-
@homoran Es ist dann die Zeile nach der Variablen my_sid:
var url_GetSnapshot = iplong + 'entry.cgi?version=9&id='+cameraID+'&api="SYNO.SurveillanceStation.Camera"&method="GetSnapshot"&profileType=1&_sid=' + my_sid;
-
@peterpan sagte in Update v8.3.1 fehlerhafte Skripte:
Könnte es daranliegen, dass die NAS aktuell keine Antwort durch ihre Überlastung geben kann?
Du kannst den Timeout auch mitgeben und erhöhen. Siehe Link oben zur Doku.
-
@peterpan sagte in Update v8.3.1 fehlerhafte Skripte:
Es ist dann die Zeile
und wo ist Position 47? (incl. Einrückung)
ist am Handy schwer abzuzählen. -
@homoran sagte in Update v8.3.1 fehlerhafte Skripte:
@peterpan sagte in Update v8.3.1 fehlerhafte Skripte:
Es ist dann die Zeile
und wo ist Position 47? (incl. Einrückung)
ist am Handy schwer abzuzählen.Hi, tut mir leid, ich bin im Skript verrutscht, die ist die richtige Zeile:
var my_sid = JSON.parse(response.data).data.sid;
Position ist das zweite "data".
-
@peterpan sagte in Update v8.3.1 fehlerhafte Skripte:
Position ist das zweite "data".
dann wird
@homoran sagte in Update v8.3.1 fehlerhafte Skripte:
dies ein Folgefehler weil kein response.data kommt
sein.
-
@homoran @haus-automatisierung
@homoran sagte in Update v8.3.1 fehlerhafte Skripte:
dies ein Folgefehler weil kein response.data kommt
sein.
Ich habe jetzt wieder zu einer NAS Kontakt und das timeout hoch gesetzt. Es ist klar das "response.data" leer.
javascript.0 2024-06-09 21:49:08.474 info script.js.Homedingskacke.Fehler: mysid: javascript.0 2024-06-09 21:49:08.473 error script.js.Homedingskacke.Fehler: Error: javascript.0 2024-06-09 21:49:08.470 info script.js.Homedingskacke.Fehler: data:
Ich versuche mich morgen und vermutlich die Tage mit Ersetzung der Variablen.
Ganz lieben Dank für eure Unterstützung!
Viele Grüße
-
@peterpan Hab das Script oben nochmal angepasst. Waren teilweise irgendwelche Anführungszeichen um die GET-Parameter (warum das? und warum nur bei manchen?).
-
@haus-automatisierung sagte in Update v8.3.1 fehlerhafte Skripte:
@peterpan Hab das Script oben nochmal angepasst. Waren teilweise irgendwelche Anführungszeichen um die GET-Parameter (warum das? und warum nur bei manchen?).
Besten Dank, schaue ich mir in Ruhe an, da brauche ich etwas mehr Zeit für. Bezüglich der Anführungszeichen sind die Skripte ein wenig historisch gewachsen (und nicht von mir nachgezogen).
Viele Grüße
-
@homoran @haus-automatisierung
Ich wollte jetzt doch auch nach längerer Zeit ein kurzes Feedback geben.
Es lag am timeout, welches ich jetzt noch etwas höher gestellt habe, ich hatte zuvor das Script auf das Minimum reduziert und dann mit der verlinkten Anleitung und mit eurer Skriptbearbeitung alles wieder ans Laufen bekommen. Ebenso habe ich das Error-Handling eingefügt und die Anführungszeichen sind nicht mehr da :). Herzlichen Dank dafür!!
VG
-
Moin!
Geht bei Dir die //2.3.34.8 TakeSnapshot method noch?
Habe am Wochenende DSM auf 7.2.2 upgedatetd und in diesem Zuge wurde auch die SurvillanceStation upgedated...
sietdem geht obige Funktion bei mir nicht mehr...- sid holen geht
- Snapshot anzeigen geht
Nur einen Snapshot speichern und die Nummer zurückzubekommen geht nicht mehr...
bis denne
Mr.Lee -
Hi Mr.Lee,
ich bin auch auf DMS 7.2.2. Ich hole mir nach Einloggen an der Surveillance Station den Snapshot (Abschnitt 2.3.4.5) und speichere ihn im home-Verzeichnis des iobrokers, damit ich mit pushover dieses Bild mit einer Nachricht aufs Handy bekomme. Weiterhin speichere ein kleinen Film auf der NAS (Abschnitt 2.3.10.1) als "Backup". Allerdings finde ich auch kein Bild nach Abschnitt 2.3.34.8, also TakeSnapshot.
Muss ich mir anschauen - falls du eine Lösung finden solltest, würd ich mich über eine Info freuen.
VG peterpan
-
@mrlee
Hi Mr.Lee,const url_Snapshot = `${iplong}entry.cgi?camId=${cameraID}&version=1&blSave=true&api=SYNO.SurveillanceStation.SnapShot&dsId=0&method=TakeSnapshot&_sid=${my_sid}`; const url_Snapshot2 = `${iplong}SurveillanceStation/ThirdParty/SnapShot/Take/v1?camId=${cameraID}&_sid=${my_sid}`;
Durch Austausch von url_Snapshot durch url_Snapshot2 funktioniert es bei mir wieder, dass im entsprechenden Suveillance-Verzeichnis ein Bild gespeichert wird. Es scheint, dass in der API-Beschreibung sämtliche Befehle nach dem neuem Muster umgeschrieben wurden, d.h., hier müssten diese auch nachgezogen werden.
VG peterpan
-
@peterpan sagte in Update v8.3.1 fehlerhafte Skripte:
d.h., hier müssten diese auch nachgezogen werden.
Gibt es dazu schon einen Issue auf GitHub?
-
Hi, mit "Nachziehen" meinte ich eher Nachziehen in meinem ganz oben aufgeführten Skript bzw. in der Anpassung, bei der ihr mir im Juni geholfen hattet - im Fall, dass jemand es in Verwendung hat. Wenn ich allerdings irgendwo etwas dokumentieren kann/soll, mache ich das.
-
@peterpan Achso, ich dachte dafür gibt es auch einen Adapter. Das Problem an diesen Scripts im Forum ist ja, dass davon schnell zig verschiedene Versionen (in teilweise sehr alten Threads) existieren, welche nicht aktuell gehalten werden und die Leute das nach wie vor kopieren und nutzen möchten.