Benennung und Anzahl von Skriptvariablen
Moderator: Co-Administratoren
-
- Beiträge: 19
- Registriert: 30.12.2019, 16:34
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 2 Mal
Benennung und Anzahl von Skriptvariablen
Hallo,
ich bin seit kurzem Besitzer einer CCU3 und sehr begeistert von den Möglichkeiten. Bevor ich mich daran setze mehrere und komplexere Skripte zu schreiben wollte ich kurz etwas nachfragen, da es mir beim Lesen der Anfängeranleitungen nicht ganz klar geworden ist. Es wäre nett wenn mir jemand kurz darauf antworten könnte.
1) Ich habe gelesen, dass man maximal 200 Skriptvariablen haben darf. Ist das noch aktuell oder ein Performance-Thema von CCU1/2? Gibt es auch eine Grenze für Systemvariablen?
2) Das Systemvariablen einzigartige Namen haben müssen und Skriptvariablen nicht wie Systemvariablen genannt werden ist klar. Das ist ja wie in jeder Programmiersprache mit globalen und lokalen Variablen. Aber dürfen Skriptvariablen in verschiedenen Skripten den gleichen Namen haben (z.B. string tmp_string = ...;") oder muss ich darauf achten, dass auch diese unterschiedlich sind? Ich hatte Skripe eigentlich als unabhängig verstanden, daher hat mich das gewundert.
Viele Grüße,
André
ich bin seit kurzem Besitzer einer CCU3 und sehr begeistert von den Möglichkeiten. Bevor ich mich daran setze mehrere und komplexere Skripte zu schreiben wollte ich kurz etwas nachfragen, da es mir beim Lesen der Anfängeranleitungen nicht ganz klar geworden ist. Es wäre nett wenn mir jemand kurz darauf antworten könnte.
1) Ich habe gelesen, dass man maximal 200 Skriptvariablen haben darf. Ist das noch aktuell oder ein Performance-Thema von CCU1/2? Gibt es auch eine Grenze für Systemvariablen?
2) Das Systemvariablen einzigartige Namen haben müssen und Skriptvariablen nicht wie Systemvariablen genannt werden ist klar. Das ist ja wie in jeder Programmiersprache mit globalen und lokalen Variablen. Aber dürfen Skriptvariablen in verschiedenen Skripten den gleichen Namen haben (z.B. string tmp_string = ...;") oder muss ich darauf achten, dass auch diese unterschiedlich sind? Ich hatte Skripe eigentlich als unabhängig verstanden, daher hat mich das gewundert.
Viele Grüße,
André
Zuletzt geändert von alchy am 17.01.2020, 20:42, insgesamt 1-mal geändert.
Grund: Titel geändert
Grund: Titel geändert
- AndiN
- Beiträge: 2621
- Registriert: 10.06.2015, 08:54
- Wohnort: Hennef
- Hat sich bedankt: 10 Mal
- Danksagung erhalten: 28 Mal
Re: Bennennung und Anzahl von Skriptvariablen
Hallo,
Erst einmal willkommen
Zu Frage Nummer eins: Nicht mehr aktuell
Zu Frage Nummer zwei: kein Problem die selben variablen in einem anderen Skript zu verwenden
Viel Spaß beim Skript erstellen
Andi
Erst einmal willkommen
Zu Frage Nummer eins: Nicht mehr aktuell
Zu Frage Nummer zwei: kein Problem die selben variablen in einem anderen Skript zu verwenden
Viel Spaß beim Skript erstellen
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
- Black
- Beiträge: 5460
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 417 Mal
- Danksagung erhalten: 1069 Mal
- Kontaktdaten:
Re: Bennennung und Anzahl von Skriptvariablen
Die 200er grenze ist schon seit geraumer zeit kein Limit mehr, dies war aber keien physikalische Speichergrenze sondern eher ein Bug.
Aber wie gesagt, ist kein Thema mehr.
Du kannst den gleichen Variablennamen in mehreren Scripten benutzen.
Und um beim Scripten mit dem wunderschönen Editor keine Hassanfälle zu bekommen gibt es auch nette externe Editoren und Hilfsprogramme:
eines davon ist <Disclaimer> Werbung für das eigene, bei nicht kommerzieller Nutzung freeware Projekt </Disclaimer> der SDV
Black
Aber wie gesagt, ist kein Thema mehr.
Du kannst den gleichen Variablennamen in mehreren Scripten benutzen.
Und um beim Scripten mit dem wunderschönen Editor keine Hassanfälle zu bekommen gibt es auch nette externe Editoren und Hilfsprogramme:
eines davon ist <Disclaimer> Werbung für das eigene, bei nicht kommerzieller Nutzung freeware Projekt </Disclaimer> der SDV
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg
Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann
Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W
technical contribution against annoying advertising
-
- Beiträge: 14066
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 577 Mal
- Danksagung erhalten: 1491 Mal
Re: Bennennung und Anzahl von Skriptvariablen
Bezüglich des Namen der Variablen noch eine Info. Variablen sind in der CCU global und behalten ihren Inhalt auch nach dem Scriptlauf bei. Darum ist es wichtig, Scriptvariablen zum Beginn des Scriptes zu deklarieren und ggf. zu leeren. Hier behält sich die CCU grundlegend anders als andere gewohnte Umgebungen.
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 14066
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 577 Mal
- Danksagung erhalten: 1491 Mal
Re: Bennennung und Anzahl von Skriptvariablen
Ist nur noch fraglich, wozu man als Einsteiger gleich mit dem Scripten anfangen muss. Für normale Automationen benötigt man das nicht. Das benötigt man lediglich für externe Abfragen (die ohne zusätzliche Sicherungsmaßnahmen aber auch recht kritisch zu sehen sind), für Berechnungen (was auch nicht die Hauptanwendung der Automation ist) und für das Handling von Strings.
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
- jmaus
- Beiträge: 9805
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 457 Mal
- Danksagung erhalten: 1848 Mal
- Kontaktdaten:
Re: Bennennung und Anzahl von Skriptvariablen
Das kannst du! Wenn du allerdings aufwendige bzw. größere Skripte erstellst sei [Eigenwerbung] natürlich auf den verbesserten Skript-Editor innerhalb von RaspberryMatic hingewiesen. Das kannst du problemlos auf einer CCU3 installieren und nutzen und bekommst damit gleich noch einen modernen CodeMirror-basierten Skripteditor mit der mit Syntax-Highlighting, usw. mitkommt.
RaspberryMatic 3.73.9.20240130 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
- jmaus
- Beiträge: 9805
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 457 Mal
- Danksagung erhalten: 1848 Mal
- Kontaktdaten:
Re: Bennennung und Anzahl von Skriptvariablen
Kleine Korrektur am Rande: Das war kein Bug, sondern eine bewusst gewählte Grenze der damaligen Entwickler die aus dem Mikrocontroller Bereich kommen und daher immer hier/da feste Grenzen gesetzt haben. Diese habe ich dann im Zuge der CCU2/CCU3 entwicklung aufgelöst und damit dann eben auch die 200er Grenze eliminiert.
RaspberryMatic 3.73.9.20240130 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
- jmaus
- Beiträge: 9805
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 457 Mal
- Danksagung erhalten: 1848 Mal
- Kontaktdaten:
Re: Bennennung und Anzahl von Skriptvariablen
Und es sei für Neuankömmlinge hier die das ggf. lesen auch noch darauf hingewiesen das man nicht versucht sein sollte Skriptvariablen über verschiedene Programme hinweg wiederzuverwenden um somit ggf. Informationen über Programme hinweg auszutauschen (dafür sollte man IMMER Systemvariablen nutzen). Auch wenn das auf den ersten Blick funktionieren mag kann das böse Effekte hervorrufen und ist so auch nicht garantiert und spezifiziert. Deshalb IMMER variablen frisch am anfang deklarieren und nur die Variablennamen innerhalb eines eigenen Skriptes nutzen die man auch deklariert hat.Xel66 hat geschrieben: ↑08.01.2020, 19:38Bezüglich des Namen der Variablen noch eine Info. Variablen sind in der CCU global und behalten ihren Inhalt auch nach dem Scriptlauf bei. Darum ist es wichtig, Scriptvariablen zum Beginn des Scriptes zu deklarieren und ggf. zu leeren. Hier behält sich die CCU grundlegend anders als andere gewohnte Umgebungen.
RaspberryMatic 3.73.9.20240130 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
-
- Beiträge: 53
- Registriert: 15.12.2018, 08:51
- Wohnort: Offenbach
- Hat sich bedankt: 7 Mal
- Danksagung erhalten: 1 Mal
Re: Bennennung und Anzahl von Skriptvariablen
Hi Jens,jmaus hat geschrieben: ↑09.01.2020, 12:10Das kannst du! Wenn du allerdings aufwendige bzw. größere Skripte erstellst sei [Eigenwerbung] natürlich auf den verbesserten Skript-Editor innerhalb von RaspberryMatic hingewiesen. Das kannst du problemlos auf einer CCU3 installieren und nutzen und bekommst damit gleich noch einen modernen CodeMirror-basierten Skripteditor mit der mit Syntax-Highlighting, usw. mitkommt.
diesen "verbesserten Script-Editor" suche ich schon seit einiger Zeit vergebens, kann ihn aber beim besten Willen nicht finden: kannst du bitte nochmal einen Link dazu posten?
Danke im Voraus,
Erwin