ScriptRuntimeError - Wie die Ursache finden

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

ibein
Beiträge: 72
Registriert: 21.01.2015, 14:06

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von ibein » 03.04.2019, 20:26

Danke für die Rückmeldung; die Fehlermeldung sieht so aus:

Code: Alles auswählen

ERROR: ScriptRuntimeError: var t = system.Date("%H:%M:%S");#012var x = dom.GetObject("Timestamps_BWM_Pforte").Value();#012var y = dom.GetObject("Taster_BWM_Pforte").Value();#012var z;#012if (y == true) { z = 'xxx'; }#012if (y == false) { z = 'Bewegung erkannt'; }#012dom.GetObject("Timestamps_BWM_Pforte").State(x + " " +  t + " " + z);#012WriteLine(x + " " +  t + " " + z); [ExecError():iseESPexec.cpp:12664]
Ich habe das "+" gegen "#" getauscht, ich hoffe, dass das dann schon der Fehler war!

Und eine weitere, die ich bekomme:

Code: Alles auswählen

Bad cast: std::bad_cast
Ich vermute, dass die beiden Fehler nicht zusammenhängen...

alchy
Beiträge: 8602
Registriert: 24.02.2011, 01:34
Hat sich bedankt: 6 Mal
Danksagung erhalten: 55 Mal

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von alchy » 03.04.2019, 21:28

ibein hat geschrieben:
03.04.2019, 20:26
Ich habe das "+" gegen "#" getauscht, ich hoffe, dass das dann schon der Fehler war!
Auch wenn es richtig ist bei der >>string concatenation << lieber # zu verwenden wird dies nicht die Ursache für die Fehlermeldung sein.

Alchy

...................
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

ibein
Beiträge: 72
Registriert: 21.01.2015, 14:06

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von ibein » 03.04.2019, 22:23

Das stimmt, er tritt weiter auf...

alchy
Beiträge: 8602
Registriert: 24.02.2011, 01:34
Hat sich bedankt: 6 Mal
Danksagung erhalten: 55 Mal

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von alchy » 03.04.2019, 22:58

Sag ich ja. :wink:

Dein Script, welches du hier im Forum gepostet hast, würde auf der CCU durchlaufen. (Auch wenn man sicher etwas "optimieren" könnte.

Glaskugel Nr.1: WENN es die Objekte die du im Script verwendest korrekt auf der CCU geben würde, würde das Script durchlaufen.

Glaskugel Nr2: Deine Fehlermeldung suggeriert mit aber:
das das gepostete Script nicht das verwendete Script ist. Denn in der Fehlermeldung befindet sich weiterer Code:

var t = system.Date("%H:%M:%S");#012var x = dom.GetObject("Timestamps_BWM_Pforte").Value();#012var y =....

Das könnte von einer falschen Codierung oder einfacher durch einen falschen Editor passieren. Schon oft gesagt, 1:1 aus Forum kopieren ohne Zwischenspeichern in Editoren wie MS Wordpad oder andere ungeeignete Programme.

Alchy

...................
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

ibein
Beiträge: 72
Registriert: 21.01.2015, 14:06

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von ibein » 03.04.2019, 23:40

Das Script ist so tatsächlich im Programm vorhanden; die Fehlermeldung habe ich aus dem Log kopiert, dass auf meinem QNAP-NAS (Syslog-Server) gespeichert ist. Wenn ich das Log betrachte, ist es voll mit diesen Einträgen... (#n)

An welchen Stellen kann ich denn weiter suchen? Ich habe weitere Programme, in denen das Script abgewandelt mit anderer SysVar läuft, dort gibt es keine Probleme!
Dateianhänge
Bildschirmfoto 2019-04-03 um 23.39.04.png

alchy
Beiträge: 8602
Registriert: 24.02.2011, 01:34
Hat sich bedankt: 6 Mal
Danksagung erhalten: 55 Mal

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von alchy » 04.04.2019, 08:09

Nur weil du es nicht siehst, ist es auch nicht da. :wink: Nur weil in einem Fenster ein Steuerzeichen nicht sichtbar ist, muss es deswegen auch nicht vorhanden sein.

Nimm das Script aus dem Forum und führe es direkt unter Script testen aus oder im Executer.....
Direkt danach schaust du ins Fehlerprotokoll AUF DER CCU ob ein Fehler VON DIESER AUSFÜHRUNG auftaucht. Wenn ein Fehler dabei auftaucht, liegt es daran das eines deiner im Script verwendeten Objekte (Systemvariablen im Script) nicht bzw. falsch vorhanden ist. Dann dies abklären.

Dann kontrollierst du das Fehlerprotokoll auf dem Nas. Sind da Steuerzeichen innerhalb der Fehlermeldung enthalten, dann solltest du dringend abklären wie dein SYSlogserver die erhaltenen Protokolle codiert. Das macht keinen Sinn und verwirrt, wenn Protokolle umcodiert werden.

Schlussendlich schreibst du augenscheinlich mit dem Script einen Zeitstempel in eine Stringvariable abhängig vom Zustand einer Logikvariable.
Ist das korrekt?? Wie wird das Script getriggert??
Ich denke mal, du solltest das Vorgehen überdenken und vielleicht gleich anders machen.

Alchy

...................
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

ibein
Beiträge: 72
Registriert: 21.01.2015, 14:06

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von ibein » 04.04.2019, 23:23

Dankeschön, ich kam heute leider nicht dazu. Bin aber gestern Abend bereits bis zu einer SysVar vorgestoßen, die scheinbar die Probleme bereitet, konnte es aber nicht zu Ende bringen.

Wie wäre das Schreiben der Zeitstempel denn eleganter? Ich möchte die angefallenen Stempel des Tages protokollieren...

Eine weitere Frage: diesen Fehler konnte ich ebenfalls nicht finden, finde auch in der Suche nichts: „Bad cast: std::bad_cast“

Hast du eine Ahnung, was die Quelle sein könnte?

alchy
Beiträge: 8602
Registriert: 24.02.2011, 01:34
Hat sich bedankt: 6 Mal
Danksagung erhalten: 55 Mal

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von alchy » 05.04.2019, 08:37

ibein hat geschrieben:
04.04.2019, 23:23
Bin aber gestern Abend bereits bis zu einer SysVar vorgestoßen, die scheinbar die Probleme bereitet, konnte es aber nicht zu Ende bringen.
Da kann ich nicht helfen. Du musst selber dafür sorgen, das du nur Objekte in deinen Scripten verwendest, welche es auch gibt.
ibein hat geschrieben:
04.04.2019, 23:23
Wie wäre das Schreiben der Zeitstempel denn eleganter? Ich möchte die angefallenen Stempel des Tages protokollieren...
Du hast meine Fragen nicht beantwortet, stellst aber die nächste Frage. So funktioniert das nicht.
Wie sieht das Programm aus, was das Script aufruft?
ibein hat geschrieben:
04.04.2019, 23:23
Eine weitere Frage: diesen Fehler konnte ich ebenfalls nicht finden, finde auch in der Suche nichts: „Bad cast: std::bad_cast“
Warum sich so viele User ein "alles loggen" an tun um dann verzweifelt zu sein wenn sie dann die Meldungen nicht deuten können, werde ich auch nicht verstehen. :roll:
Ein Bad Cast wird so nicht einfach drin stehen im Log, oder? Da steht etwas davor (sehr oft multimac) etwas dahinter....
Aber hier geht es ja um einen ScriptruntimeError und nicht um eine Warnung.

Alchy

...................
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

ibein
Beiträge: 72
Registriert: 21.01.2015, 14:06

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von ibein » 05.04.2019, 10:36

Bezüglich der Systemvariable: ich habe nur Variablen genutzt, die tatsächlich vorhanden sind; habe dies mehrfach penibel geprüft! Deswegen habe ich heute Morgen die alte gelöscht, eine neue erstellt und diese eingebunden. Seitdem ist scheinbar Ruhe... aus meiner Sicht merkwürdig!

Das Programm wird von einem herkömmlichen Bewegungsmelder (mit einem HM-MOD-EM-8 dahinter) getriggert; sobald zu bestimmten Zeiten Bewegung vom Sensor erkannt wird möchte ich das protokollieren (alle Bewegungen innerhalb des Zeitraumes)! Ich bin gerade dabei, dieses zu optimieren (das WebUI-Programm) und wäre deswegen für Hilfe/Ideen für das Script sehr dankbar...

Zum Thema „Bad cast: std::bad_cast“ und allgemein dem Logging habe ich vor ein paar Tagen erst das Logging im NAS aktiviert und war dann wegen der Meldungen irritiert, da mein NAS jede Menge E-Mails geschickt hat :lol: Ich habe die Filter-Einstellungen für die E-Mail-Benachrichtigungen nun auf Error umgestellt... das weitere Tuning sollte dann Richtung Formatierung/Konvertierung gehen... habe leider noch keine Einstellungen bzw. Angaben dazu gefunden. Suche da weiter...

Benutzeravatar
jmaus
Beiträge: 4968
Registriert: 17.02.2015, 14:45
Wohnort: Dresden
Hat sich bedankt: 6 Mal
Danksagung erhalten: 61 Mal
Kontaktdaten:

Re: ScriptRuntimeError - Wie die Ursache finden

Beitrag von jmaus » 05.04.2019, 10:48

ibein hat geschrieben:
05.04.2019, 10:36
Zum Thema „Bad cast: std::bad_cast“ und allgemein dem Logging habe ich vor ein paar Tagen erst das Logging im NAS aktiviert und war dann wegen der Meldungen irritiert...
Die "Bad cast: std::bad_cast" multimac Meldung kannst du getrost ignorieren. Die wird in einer der nächsten Firmwareversionen dann auch verschwunden sein.
RaspberryMatic 3.47.18.20190918 @ TinkerS mit ~160 HomeMatic Geräten + ioBroker – GitHubPayPalTwitter

Antworten

Zurück zu „RaspberryMatic“