Link/Skript-Sammlung
Moderator: Co-Administratoren
Re: Script Probleme (überarbeitete Skripts)
Ich habe bei mir so eine Art Betriebsstundenzähler für die Heizung und einige Stromverbraucher laufen. Mit diesen Daten rechne ich den Gasverbrauch, Tankinhakt, Stromkosten usw. aus.
Wenn ich für jedes Script eigene lokale Variablenamen verwende, also für Strom Std, Tag, Woche, Monat usw. kommt beim Aufruf eines weiteren Scripts mit vielen neuen Variablen der besagte Fehler.
Nach einem Reboot läuft alles wieder eine paar Tage ohne Probleme bis dann das Spiel von vorne los geht.
Arbeite ich allerdings mit einer geringen Menge an lokalen Variablen und verwende statt dessen direkt die Systemveariablen mit dom.Getobject, laufen die Scripts einwandfrei (sind halt nicht mehr so leicht lesbar) - das jetzt seit mehreren Monaten. Wie kann man sich die Größe des freien Speichers ansehen?
Für mich ist es aus der Beobachtung heraus schon ein Speicherproblem. Es scheint so, als werden die lokalen Variablen nach Scriptende nicht freigegeben und irgendwann läuft der Speicher über.
LG Andy
Wenn ich für jedes Script eigene lokale Variablenamen verwende, also für Strom Std, Tag, Woche, Monat usw. kommt beim Aufruf eines weiteren Scripts mit vielen neuen Variablen der besagte Fehler.
Nach einem Reboot läuft alles wieder eine paar Tage ohne Probleme bis dann das Spiel von vorne los geht.
Arbeite ich allerdings mit einer geringen Menge an lokalen Variablen und verwende statt dessen direkt die Systemveariablen mit dom.Getobject, laufen die Scripts einwandfrei (sind halt nicht mehr so leicht lesbar) - das jetzt seit mehreren Monaten. Wie kann man sich die Größe des freien Speichers ansehen?
Für mich ist es aus der Beobachtung heraus schon ein Speicherproblem. Es scheint so, als werden die lokalen Variablen nach Scriptende nicht freigegeben und irgendwann läuft der Speicher über.
LG Andy
Re: Script Probleme (überarbeitete Skripts)
Auf der Status Seite von CUxD sieht man man den gesamt genutzten Speicher, das sollte aber wenig aussagekräftig sein. Das der Speicher ernsthaft voll ist kann ich mir schlecht vorestellen. Allerdings habe auch ich einige Skripte auf möglichst wenige Variablen und viel dom.Getobject umgestellt und konnte subjektiv ein stabilitäts Plus festellen. Ist natürlich alles wieder nur im Voodoo Bereich,.. uptime 3 Tage
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Script Probleme (überarbeitete Skripts)
Also bei mir läuft das System absolut stabil. Letztendlich habe ich max. 52 Variablen im Einsatz (tmpA-tmpZ und tmpA1-tmpZ1).
Inwieweit das mit der Anzahl zusammen hängt weiß ich nicht. Es gibt auch die Theorie, dass eine Variable nicht für zwei verschiedene Typen (Bsp: Mal als String, dann als Zahl und vielleicht dann auch noch als Boolean) verwendet werden darf.
So oder so. Seit dem ich das via Voodoo umgechrieben habe, habe ich 0 Probleme mehr mit den Skripts. Allerdings habe ich auch kein neues komplexes Skript mehr implementiert. DWD, Feiertag und Service all waren die Auslöser im Regelfall.
Andi
Inwieweit das mit der Anzahl zusammen hängt weiß ich nicht. Es gibt auch die Theorie, dass eine Variable nicht für zwei verschiedene Typen (Bsp: Mal als String, dann als Zahl und vielleicht dann auch noch als Boolean) verwendet werden darf.
So oder so. Seit dem ich das via Voodoo umgechrieben habe, habe ich 0 Probleme mehr mit den Skripts. Allerdings habe ich auch kein neues komplexes Skript mehr implementiert. DWD, Feiertag und Service all waren die Auslöser im Regelfall.
Andi
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Script Probleme (überarbeitete Skripts)
Auch schön...
habe nach 25 Tagen ohne Probleme meine CCU zum Absturz gebracht mit diesem Code:
Im Skript Fenster bei "Fehlerprüfung" kam eine Fehlermeldung (sinngemäß Admin Rechte wären notwendig) und dann war im Programm auch kein Skript mehr vorhanden (doof zu beschreiben).
WebUI reagierte nicht mehr.
Erst dachte ich an einen doofen Zufall. Programmzeile wieder rein und gleicher Effekt.
Mit dem "richtigen" Code läuft es ohne Probleme
Was so ein paar Klammern doch ausmachen
habe nach 25 Tagen ohne Probleme meine CCU zum Absturz gebracht mit diesem Code:
Code: Alles auswählen
if (dom.GetObject("SV_Waschmaschine").State() == 2)||dom.GetObject("SV_Waschmaschine").State() == 3){
WebUI reagierte nicht mehr.
Erst dachte ich an einen doofen Zufall. Programmzeile wieder rein und gleicher Effekt.
Mit dem "richtigen" Code läuft es ohne Probleme
Code: Alles auswählen
if((dom.GetObject("SV_Waschmaschine").State() == 2) || (dom.GetObject("SV_Waschmaschine").State() == 3)) {
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Re: Script Probleme (überarbeitete Skripts)
Sieht man doch auf einen Blick , dass zwischen dem Operator "or" also || und dem Befehl dom.GetObject die geöffnete runde Klammer fehlt.AndiN hat geschrieben:Code: Alles auswählen
if (dom.GetObject("SV_Waschmaschine").State() == 2)||dom.GetObject("SV_Waschmaschine").State() == 3){
Nicht die Anzahl von Klammern ist entscheidend, sondern ob die Klammern auch paarweise vorhanden sind.AndiN hat geschrieben: Was so ein paar Klammern doch ausmachen
.
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Script Probleme (überarbeitete Skripts)
@Badenpower: Es ging nicht um den Syntaxfehler, sondern die Tatsache, das das schon reicht um die CCU zum Absturz zu bringen.
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
- koppenho
- Beiträge: 227
- Registriert: 27.12.2013, 09:12
- Wohnort: Bad Neustadt, Deutschland
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: Script Probleme (überarbeitete Skripts)
Hallo,
darf ich hier mal kurz "offtopic" werden?
In vielen Scripten hier im Forum sehe ich neuerdings Hinweise der Art "auf tmp-Variablen umgeschrieben".
Das scheint ein Workaround für ein Scriptingproblem zu sein, bei der einmal angelegte Variablen nicht mehr freigegeben werden.
Ich habe im Forum nach der Quelle dieser Information gesucht, war aber erfolglos. Das hat doch bestimmt schon jemand dokumentiert. Könnt Ihr mir einen Link nennen?
Danke.
darf ich hier mal kurz "offtopic" werden?
In vielen Scripten hier im Forum sehe ich neuerdings Hinweise der Art "auf tmp-Variablen umgeschrieben".
Das scheint ein Workaround für ein Scriptingproblem zu sein, bei der einmal angelegte Variablen nicht mehr freigegeben werden.
Ich habe im Forum nach der Quelle dieser Information gesucht, war aber erfolglos. Das hat doch bestimmt schon jemand dokumentiert. Könnt Ihr mir einen Link nennen?
Danke.
--
Andreas
--------------------------------------------
Hauptwohnung: RaspberryMatic mit 320 Kanäle in 110 Geräten und 140 CUxD-Kanäle in 33 CUxD-Geräten
Zweitwohnung: CCU2 mit 18 Kanäle in 8 Geräten und 14 CUxD-Kanäle in 4 CUxD-Geräten
--------------------------------------------
Andreas
--------------------------------------------
Hauptwohnung: RaspberryMatic mit 320 Kanäle in 110 Geräten und 140 CUxD-Kanäle in 33 CUxD-Geräten
Zweitwohnung: CCU2 mit 18 Kanäle in 8 Geräten und 14 CUxD-Kanäle in 4 CUxD-Geräten
--------------------------------------------
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Script Probleme (überarbeitete Skripts)
Hallo,
schau mal auf der ersten Seite. Da gibt es einen Link. Da wird nur über den Effekt gesprochen und das dieser Workarround scheinbar hilft. Aber offiziell gibt es keine Information seitens des Herstellers. Letztendlich ist das REGA wohl auch nur zu gekauft ;-(
Andi
schau mal auf der ersten Seite. Da gibt es einen Link. Da wird nur über den Effekt gesprochen und das dieser Workarround scheinbar hilft. Aber offiziell gibt es keine Information seitens des Herstellers. Letztendlich ist das REGA wohl auch nur zu gekauft ;-(
Andi
Andi (Greenhorn)
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
Letzter Reboot: 17.03.24 => FW Update (Uptime:Rekord:153 Tage)
Systeminfos: Raspberry Pi3 Firmware: 3.75.6.20240316 142 Geräte
System angebunden: 3 Roomba 650 - Sprachausgabe via Home24 Media - Pocket Control - Zentrale: Asus TF103 mit Home24 Tablet
Addons: Drucken 2.5 - HQ WebUI 2.5.9 - XML-API 1.22 - CUx-Daemon 2.9.3 - E-Mail 1.7.4 - hm_pdetect 1.11 - VPN cloudmatic
Diverse Links
- koppenho
- Beiträge: 227
- Registriert: 27.12.2013, 09:12
- Wohnort: Bad Neustadt, Deutschland
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: Script Probleme (überarbeitete Skripts)
Danke Andi und hug0. Dann habe ich den Link ja doch schon gefunden. Ich hatte gehofft, dass es schon etwas mehr Informationen gibt. Klar, nicht von eq-3.AndiN hat geschrieben:schau mal auf der ersten Seite. Da gibt es einen Link. Da wird nur über den Effekt gesprochen und das dieser Workarround scheinbar hilft.
Kurz zusammengefaßt: Einfach "tmp" als Präfix vor die Variablennamen setzen und schon wird eine Variable nach Ende eines Scripts wieder gelöscht und bleibt nicht als Leiche im System. Als zweite Maßnahme eventuell noch kurze Variablennamen verwenden um den Resourcen-Verbrauch gering zu halten. Und das war's schon.
Interessant. Unerwartet. eq-3 schafft es immer wieder mich zu überraschen.
--
Andreas
--------------------------------------------
Hauptwohnung: RaspberryMatic mit 320 Kanäle in 110 Geräten und 140 CUxD-Kanäle in 33 CUxD-Geräten
Zweitwohnung: CCU2 mit 18 Kanäle in 8 Geräten und 14 CUxD-Kanäle in 4 CUxD-Geräten
--------------------------------------------
Andreas
--------------------------------------------
Hauptwohnung: RaspberryMatic mit 320 Kanäle in 110 Geräten und 140 CUxD-Kanäle in 33 CUxD-Geräten
Zweitwohnung: CCU2 mit 18 Kanäle in 8 Geräten und 14 CUxD-Kanäle in 4 CUxD-Geräten
--------------------------------------------