Link/Skript-Sammlung

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Script Probleme (überarbeitete Skripts)

Beitrag von alchy » 22.12.2015, 08:27

koppenho hat geschrieben: 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.
auch ne schöne Interpretation. Diese Aussage wage ich allerdings anzuzweifeln. :lol:
koppenho hat geschrieben: Als zweite Maßnahme eventuell noch kurze Variablennamen verwenden um den Resourcen-Verbrauch gering zu halten. Und das war's schon.
^^ dito
koppenho hat geschrieben: Interessant. Unerwartet. eq-3 schafft es immer wieder mich zu überraschen. :(
EQ3 hat *IMHO* einfach ein Problem, da das Beschriebene nicht immer nachvollziehbar & reproduzierbar ist.
Ich habe es nun schon zur Genüge geschrieben.
Ich scripte bekanntlich mehr als genug, aber dieses beschriebene Problem ist mir noch nie untergekommen. Meine Uptime seit Neuinstallation der CCU2 ist eigentlich nur von mir und meinen Fehlern abhängig.

Damit will ich nicht sagen, das es kein Problem gäbe.
Aber es ist mit ziemlicher Sicherheit KEIN allgemeiner Fehler / Bug der nachvollziehbar überall auftritt.
Also wird er wahrscheinlich "als Fehler der VOR dem System" sitzt behandelt. :wink:

Alchy

Blacklist................... almost full
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.

Monck
Beiträge: 170
Registriert: 13.03.2011, 22:07
Danksagung erhalten: 1 Mal

Re: Script Probleme (überarbeitete Skripts)

Beitrag von Monck » 22.12.2015, 09:30

Aber es ist mit ziemlicher Sicherheit KEIN allgemeiner Fehler / Bug der nachvollziehbar überall auftritt.
Also wird er wahrscheinlich "als Fehler der VOR dem System" sitzt behandelt.
Genau das ist das Problem, es wird immer abgetan mit, 'das Problem sitzt davor'.
Damals beim Fehler mit den Datenpunkten war es genauso - und es war ein allgemeiner Fehler :twisted:

Es wurde ebenfalls bereits zur Genüge geschrieben, dass dieser Fehler erst ab einer gewissen Komplexität auftritt.
Außerdem ist er nachvollziehbar, es wurden zahlreiche Backups eingesandt, wenn der Wille da wäre, gäbe es auch eine Lösung dafür.
Allerdings kämpfen wir erst seit 18 Monaten damit, EQ3 hat also noch ein wenig Zeit :twisted:

Komplexe Systeme auf der Basis von HM ist eben ein Problem...

Benutzeravatar
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)

Beitrag von koppenho » 22.12.2015, 13:18

alchy hat geschrieben:Ich scripte bekanntlich mehr als genug, aber dieses beschriebene Problem ist mir noch nie untergekommen. Meine Uptime seit Neuinstallation der CCU2 ist eigentlich nur von mir und meinen Fehlern abhängig.

Damit will ich nicht sagen, das es kein Problem gäbe.
Aber es ist mit ziemlicher Sicherheit KEIN allgemeiner Fehler / Bug der nachvollziehbar überall auftritt.
Also wird er wahrscheinlich "als Fehler der VOR dem System" sitzt behandelt. :wink:
Ich, der vor dem System sitzt, wird sich etwas ausdenken, so dass alle den Fehler auf dem eigenen System provozieren können... sobald ich etwas Zeit habe. Dann werden alle Skeptiker sehen, dass es ein allgemeiner Fehler ist.
eq-3 zähle ich dabei nicht zu den Skeptikern, sondern eher zu den Ungläubigen.

Keine Angst, Alchy, Deinen Beitrag habe ich nicht persönlich genommen. Als Informatiker kenne ich das: man sieht ein Problem, aber andere erkennen die Gefahr nicht.
--
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
--------------------------------------------

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Script Probleme (überarbeitete Skripts)

Beitrag von alchy » 22.12.2015, 13:37

koppenho hat geschrieben: Ich, der vor dem System sitzt, wird sich etwas ausdenken, so dass alle den Fehler auf dem eigenen System provozieren können... sobald ich etwas Zeit habe. Dann werden alle Skeptiker sehen, dass es ein allgemeiner Fehler ist.
eq-3 zähle ich dabei nicht zu den Skeptikern, sondern eher zu den Ungläubigen.
gerne doch. Ich würde mich sogar darüber freuen.
koppenho hat geschrieben: Keine Angst, Alchy, Deinen Beitrag habe ich nicht persönlich genommen. Als Informatiker kenne ich das: man sieht ein Problem, aber andere erkennen die Gefahr nicht.
1. habe ich keine Angst :mrgreen:
2. Was wäre auch persönlich zu nehmen?

Aber erkläre mir mal Deine Aussage - das ein präfix tmp die Variablen automatisch am Ende eines Scriptes löscht und dadurch keine Leichen zurückbleiben.

Alchy

Blacklist................... almost full
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.

Benutzeravatar
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)

Beitrag von AndiN » 22.12.2015, 14:26

Nur ganz kurz von mir mein Senf dazu.

Für einen Laien sieht es eher so aus: Anzahl der Variablen.

Ich habe jetzt noch maximal 52 Variablen. Früher vermutlich mehr. Aber auch da gehen die Cracks hin und bezeichnen die Aussage als Voodoo. Denke was Alchy sagt stimmt schon: Der Fehler ist zwar bekannt, aber kann irgendwie nicht reproduziert werden.

Komischerweise tritt der immer beim Service-Skript, Feiertagsskript oder Unwetter auf. Alles Skripte mit mehr wie 10 Variablen. Aber auch nur sporadisch und meistens,nachdem eins erneuert wurde.

Aber dafür stecke ich nicht weit genug in der CCU drin.

;-)

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

Benutzeravatar
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)

Beitrag von koppenho » 22.12.2015, 23:39

alchy hat geschrieben:Aber erkläre mir mal Deine Aussage - das ein präfix tmp die Variablen automatisch am Ende eines Scriptes löscht und dadurch keine Leichen zurückbleiben.
Hmmm, ja, erklär' ich gerne, ...
Aber...
Ich habe gerade versucht das Problem mit den Scriptvariablen, das ich im Sommer hatte, nochmal nachzustellen. Ich hatte damals alle von anderen hier im Forum schon mehrfach beschriebenen Symptome wie ...
  • Früher funktionierende Skripte haben Syntaxfehler, obwohl nix geändert wurde.
  • "integer zufallszahl = 1597644; WriteLine(zufallszahl)" funktioniert in "Script testen" nicht. Ändert man den Variablennamen "zufallszahl" auf "z", dann geht's.
...selbst beobachten können.
Ich schaffe es nun aber nicht mehr das Problem zu reproduzieren. Ich nahm an, dass das leicht geht.
Anscheinend habe ich gerade erfahren, was die Bezeichnung "sporadisch auftretender Fehler" in dem Zusammenhang bedeutet. :(

Die Symptome habe ich damals wie folgt erfolgreich :!: bekämpft:
  • Alle Programme analysiert und diejenigen herausgesucht mit den meisten Variablendefinitionen bzw. den längsten Variablennamen.
  • In diesen Programmen habe ich alle Variablennamen durch extrem kurze Variablennamen ersetzt (meist nur ein Zeichen lang). Anfangs musste ich noch nach jeder Änderung neu booten, da ich sonst die Programme nicht ändern konnte
Nachdem ich auf diese Weise ca. 20 Programme gekürzt hatte, fluschte wieder alles ohne Syntaxfehler in den logs. Ich habe dann noch zur Sichereit ein paar weitere Programme in gleicher Weise modifziert.

Die in diesem Forum häufig geäußerte Aussage ist für mich offenbar zutreffend: der Speicherplatz für Variablennamen ist begrenzt. So sieht es zumindest für mich aus.
Ferner vermute ich, ...
  • ... dass die Begrenzung nur innerhalb einer rega_script-Instanz (tclrega) gilt. Alle im WebUI hinterlegten Scripte und die "Script testen"-Funktion verwenden diesselbe rega_script-Instanz.
  • ... dass der HM Script Executor oder Anwendungen wie in http://www.wikimatic.de/wiki/HomeMatic_Script je eine eigene rega_script-Instanz verwenden mit einem unabhängigem Speicher für Variablennamen.
Das macht es etwas schwierig, das Problem nachzuvollziehen.

Nachdem ich neulich hier im Forum in vielen neueren Scripten Variablennamen mit Präfix "tmp" gesehen habe, nahm ich an, dass das ein Workaround für das Problem "Variablen werden nach Ende eines Scripts nicht mehr freigegeben" sei.
Da aber in diesem Thread aus meiner ursprünglichen Frage eine größere Diskussion entstanden ist, stellt sich für mich erneut die Frage, weshalb einige Script-Autoren den Präfix "tmp" verwenden für Variablennamen?
Ist das nun ein Workaround für irgendetwas oder gibt's einen anderen Grund?
--
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
--------------------------------------------

Elec
Beiträge: 356
Registriert: 18.03.2015, 14:01
Wohnort: Bochum
Danksagung erhalten: 1 Mal

Re: Script Probleme (überarbeitete Skripts)

Beitrag von Elec » 23.12.2015, 01:18

Das Problem ist, dass bisher niemand erklären kann, warum ein Lösungsansatz funktioniert.
Auch mein Ansatz funktioniert - einmalige Variablendefinition bei CCU-Neustart, keine Typ Änderung in Scripten, keine Mehrfachnutzung. Ich habe über 100 Variablen in Gebrauch und mit durchaus langen Namen wie z.B. "string-wetter-windgeschwindigkeit".

Das läuft nun seit ca. zwei Monaten völlig störungsfrei obwohl ich alle paar Tage an den Scripten rumfummle.

Es ist aber auch reproduzierbar! Als mir die Idee mit der Erstinitialisierung kam und das auch funktionierte, habe ich das noch mal Rückgängig gemacht, CCU neu gestartet und nach zwei Tagen war der Fehler wieder da. Dann wieder die Erstinitialisierung aktiviert, CCU neu gestartet und seither kein Fehler mehr.
Erst nach diesem Test hatte ich meinen Lösungsansatz hier vorgestellt.

Warum DAS funktioniert, weiß ich allerdings auch nicht :-)

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Script Probleme (überarbeitete Skripts)

Beitrag von alchy » 23.12.2015, 01:35

alchy hat geschrieben: Aber erkläre mir mal Deine Aussage - das ein präfix tmp die Variablen automatisch am Ende eines Scriptes löscht und dadurch keine Leichen zurückbleiben.
koppenho hat geschrieben: Hmmm, ja, erklär' ich gerne, ...
....
Nachdem ich neulich hier im Forum in vielen neueren Scripten Variablennamen mit Präfix "tmp" gesehen habe, nahm ich an, dass das ein Workaround für das Problem "Variablen werden nach Ende eines Scripts nicht mehr freigegeben" sei.
....
Ich schaffe es nun aber nicht mehr das Problem zu reproduzieren. Ich nahm an, dass das leicht geht.
....
Und damit bleibe ich bei meiner Aussage von >> oben <<.
koppenho hat geschrieben: ....
weshalb einige Script-Autoren den Präfix "tmp" verwenden für Variablennamen?
Ist das nun ein Workaround für irgendetwas oder gibt's einen anderen Grund?
Das kann und wird dir AndiN bestimmt erklären, obwohl er es ja in den verlinkten Threads schon oft getan hat. Er ist, soweit ich das so mitbekommen habe, der Vorreiter dieses Workarounds.
*IMHO* ist es egal.ob du tmp davor schreibst oder xyz oder nix.
Die Idee ist einfach, nicht immer wieder neue Variablennamen zu erzeugen, sondern in jedem Script dieselben zu verwenden. Das ABC war zu schnell alle....
Mit Ressourcen schonend umzugehen ist o.k. In gewisser Weise gehe ich durchaus auch mit.

Nicht das wir uns falsch verstehen. :!:
Nichts liegt mir ferner, als es nicht anzuerkennen, wenn jemand sich darüber Gedanken macht.

Auch ich habe schon Beispiele hier veröffentlich, wo ich bewußt auf Variablen verzichtet habe. Auch will ich überhaupt nicht sagen, das EQ3 nicht genug Fehler auszubügeln hat ! Ich bin bestimmt nicht zufrieden und voll des Lobes über alles ( >> H I E R << >> H I E R << >> H I E R << >> H I E R<<.... )
Und da sind Sachen dabei die durchaus reproduzierbar sind, und nicht behoben werden. :wink:

Ich weiß eigentlich nicht genau, ob ich mich freuen oder ärgern soll, das ich dieses Scriptproblem noch nicht hatte.

Alchy

[KLUGSCHEIS]
koppenho hat geschrieben: "integer zufallszahl = 1597644; WriteLine(zufallszahl)" funktioniert in "Script testen" nicht.
streng genommen fehlt da auch ein ;
[/KLUGSCHEIS]

Blacklist................... almost full
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.

Benutzeravatar
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)

Beitrag von AndiN » 23.12.2015, 07:31

Hallo,

ich möchte mich nicht mit fremden Federn schmücken. Der Vorreiter war wer Anders. Hier. Ich habe nur anstelle von Buchstaben bewusst tmp genommen, da man diese schön in den Skripten suchen und finden kann. (wer sucht schon gerne den Buchstaben a in einem Skript, wenn er die Variable haben möchte)?

Meine Skripte habe ich nur veröffentlicht, weil ich es für sinnvoll gehalten habe, dass andere User, die auch den Effekt haben einfach via Copy & Paste die modifizierten Skripte testen können, ohne sich selbst die Arbeit des Umschreibens machen zu müssen.

Vielleicht ist es in der Tat die Länge der Namen. Dann würde meine Lösung passen. Aber Elec hat einen anderen Lösungsansatz mit langen Namen. Der funktioniert auch. Und das ist genau das Problem. Keiner weiß was Genaues. Außer, dass durch die Maßnahmen die Fehler weg waren. Also gilt weiterhin Try & Error, bis jemand die Idee hat.

Wünsche Euch schöne Feiertage.

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

Benutzeravatar
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)

Beitrag von AndiN » 23.12.2015, 09:34

Habe jetzt eine Abstimmung eingefügt, damit ich weiß, ob die Veröffentlichung sinnvoll war (für mich und für denjenigen der die Fehler vorher hatte).

Bin gespannt.

Danke Euch für Euer Feedback.

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

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“