Benennung und Anzahl von Skriptvariablen

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

Sefiroth
Beiträge: 19
Registriert: 30.12.2019, 16:34
Hat sich bedankt: 4 Mal
Danksagung erhalten: 2 Mal

Benennung und Anzahl von Skriptvariablen

Beitrag von Sefiroth » 08.01.2020, 15:25

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é
Zuletzt geändert von alchy am 17.01.2020, 20:42, insgesamt 1-mal geändert.
Grund: Titel geändert

Benutzeravatar
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

Beitrag von AndiN » 08.01.2020, 18:39

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

Beitrag von Black » 08.01.2020, 19:25

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

Xel66
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

Beitrag von Xel66 » 08.01.2020, 19:38

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

Sefiroth
Beiträge: 19
Registriert: 30.12.2019, 16:34
Hat sich bedankt: 4 Mal
Danksagung erhalten: 2 Mal

Re: Bennennung und Anzahl von Skriptvariablen

Beitrag von Sefiroth » 09.01.2020, 07:16

Danke für die schnellen Antworten! Dann kann ich ja loslegen :D

Xel66
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

Beitrag von Xel66 » 09.01.2020, 10:48

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

Benutzeravatar
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

Beitrag von jmaus » 09.01.2020, 12:10

Sefiroth hat geschrieben:
09.01.2020, 07:16
Danke für die schnellen Antworten! Dann kann ich ja loslegen :D
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 / ☕️

Benutzeravatar
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

Beitrag von jmaus » 09.01.2020, 12:11

Black hat geschrieben:
08.01.2020, 19:25
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.
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 / ☕️

Benutzeravatar
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

Beitrag von jmaus » 09.01.2020, 12:14

Xel66 hat geschrieben:
08.01.2020, 19:38
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.
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.
RaspberryMatic 3.73.9.20240130 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

ErwinH
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

Beitrag von ErwinH » 14.01.2020, 08:45

jmaus hat geschrieben:
09.01.2020, 12:10
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.
Hi Jens,
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

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“