Feature Request - Sprung aus Skript-Schleife

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

Moderator: Co-Administratoren

Antworten
dtp
Beiträge: 10660
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 321 Mal
Danksagung erhalten: 501 Mal

Feature Request - Sprung aus Skript-Schleife

Beitrag von dtp » 09.05.2019, 16:22

Hallo,

im HM-Skript gibt es ja bekanntlich den Befehl "quit", mit dem man ein Skript vorzeitig beenden kann.

Ich hatte mir jedoch schon häufiger eine Funktion gewünscht, mit der ich bei Erfüllung einer Bedingung vorzeitig aus einer Schleife springen kann. Wäre sowas möglich zu implementieren?

Gruß,

Thorsten

PS.: War mir nicht ganz sicher, wo ich diesen Feature Request am besten posten sollte. Vermutlich auch noch mal in GitHub für die RaspberryMatic. 8)
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

Benutzeravatar
jmaus
Beiträge: 9865
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 464 Mal
Danksagung erhalten: 1883 Mal
Kontaktdaten:

Re: Feature Request - Sprung aus Skript-Schleife

Beitrag von jmaus » 09.05.2019, 19:54

dtp hat geschrieben:
09.05.2019, 16:22
im HM-Skript gibt es ja bekanntlich den Befehl "quit", mit dem man ein Skript vorzeitig beenden kann.

Ich hatte mir jedoch schon häufiger eine Funktion gewünscht, mit der ich bei Erfüllung einer Bedingung vorzeitig aus einer Schleife springen kann. Wäre sowas möglich zu implementieren?
Na? Hat da jemand nicht die ChangeLogs von RaspberryMatic studiert ;) Denn das von dir gewünschte gibt es bereits seit einiger Zeit in RaspberryMatic bzw. ReGaHss, siehe:

https://github.com/jens-maus/RaspberryM ... 1.20181222
https://github.com/jens-maus/RaspberryMatic/issues/224

Siehe:
implemented missing break and continue statements to break out of while() and foreach() loops and to also continue with the next iteration like this is commonly performed in other script languages (#224).
Und in der Tat gibt es die ReGa Version in der das Implementiert wurde (R1.00.0388.0204) auch seit geraumer Zeit in der CCU3 Firmware.

Ab dieser ReGaHss Version kannst du jetzt in while() und foreach() schleifen "break" als statement für das abbrechen der iteration nutzen wie ds in C/C++ der Fall ist. Und auch gibt es seit dem ein "continue" statement um sofort zur nächsten Iteration zu gehen.
PS.: War mir nicht ganz sicher, wo ich diesen Feature Request am besten posten sollte. Vermutlich auch noch mal in GitHub für die RaspberryMatic. 8)
So ist es. Denn der Issuetracker im GitHub von RaspberryMatic wird momentan auch für ReGaHss und WebUI Feature/Issue Meldungen verwendet.
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
koppenho
Beiträge: 227
Registriert: 27.12.2013, 09:12
Wohnort: Bad Neustadt, Deutschland
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Feature Request - ReGa-Script Dokumentation

Beitrag von koppenho » 11.05.2019, 13:55

jmaus hat geschrieben:
09.05.2019, 19:54
Na? Hat da jemand nicht die ChangeLogs von RaspberryMatic studiert ;) Denn das von dir gewünschte gibt es bereits seit einiger Zeit in RaspberryMatic bzw. ReGaHss,
[...]
Und in der Tat gibt es die ReGa Version in der das Implementiert wurde (R1.00.0388.0204) auch seit geraumer Zeit in der CCU3 Firmware.
Den Smiley habe ich nicht übersehen, dennoch möchte ich hier einem Kommentar loswerden. Oder genauer: einen Wunsch äußern.
Jens, Du machst eine vorbildliche Arbeit und dokumentierst auch ausführlich jede Änderung. Ein dickes Lob dafür.

Trotzdem finde ich finde es sehr schwierig den vielen Neuerungen und Änderungen zu folgen. Mal ist hier ein neuer ReGa-Befehl dokumentiert und dort steht etwas über ein geändertes Verhalten. Da übersieht man schnell mal etwas.

Was ich vermisse ist eine Übersicht, in der z.B. alle Methoden, Funktionen, Konstanten, etc. der ReGa aufgelistet sind, am Besten mit einem Anwendungsbeispiel und Hinweisen, ab welcher Version das Feature implementiert wurde oder in welcher Version ein Kommando defekt war.

Einen Ansatz dazu gab es vor längerer Zeit mal als "Inoffizielle HomeMatic Script Referenz" in Form eines Wiki von Daniel Herberg. Seine Seite scheint eingeschlafen und in Vergessenheit geraten offensichtlich aus Mangel an Beiträgen anderer. Das Thema ist für eine Person auch zu viel.

Egal, etwas in dieser Art wünsche ich mir. Das wäre auch eine tolle Referenz für ReGa-Scripting-Anfänger (von den veralteten eQ-3-PDFs mal abgesehen).

Was meint Ihr dazu? Bin ich der Einzige, der ein Problem mit der Informationsbeschaffung hat?
Wenn nicht, wie könnten wir das lösen? Vorschläge?
--
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
--------------------------------------------

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Feature Request - ReGa-Script Dokumentation

Beitrag von hobbyquaker » 11.05.2019, 14:16

koppenho hat geschrieben:
11.05.2019, 13:55
Wenn nicht, wie könnten wir das lösen? Vorschläge?
Das hast Du doch schon selbst beantwortet:
koppenho hat geschrieben:
11.05.2019, 13:55
Einen Ansatz dazu gab es vor längerer Zeit mal als "Inoffizielle HomeMatic Script Referenz" in Form eines Wiki von Daniel Herberg. Seine Seite scheint eingeschlafen und in Vergessenheit geraten offensichtlich aus Mangel an Beiträgen anderer. Das Thema ist für eine Person auch zu viel.
Einfach das Wiki pflegen :-) Das Problem das ich dabei sehe: Die allermeisten Leute wollen halt "konsumieren", kaum einer hat Lust auch etwas Zeit zu investieren. Bei der Frage ob das Wiki "eingeschlafen" oder "in Vergessenheit geraten" ist entsteht dann halt ein Henne-Ei-Problem ;-)
Diese Referenz war übrigens auch nicht die Arbeit eines Einzelnen, wenn ich mich recht entsinne haben wir da von 2011 bis ~2014 zu fünft dran gearbeitet. Leider sind bei einer Migration des Wikis viele der Methodendokus überschrieben worden, die müsste man alle wieder fixen.
Meiner Meinung nach ist es aber auch egal wie wenig man ändert - und wenn man nur eine Methode alle paar Monate mal dokumentiert, oder einfach nur eine leere Seite für bisher nicht erwähnte Methoden ergänzt, oder auch nur die ein oder andere kleine Fehlerkorrektur vornimmt - es ist alles besser als Nichts.
Stand Heute ist das nun mal die "vollständigste" Homematic Script Referenz die zur Verfügung steht (von nicht für Jedermann zugänglichen und nur für Windows verfügbaren Tools mal abgesehen) - daher denke ich: wenn dann sollte man daran weiterarbeiten und keine neue Baustelle aufmachen. (Just my 2 Cent, ich selbst hab kein Interesse an Regascript)

Antworten

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