foreach-Schleife: aktuelles Listenelement überspringen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

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

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von jmaus » 24.05.2020, 20:33

alchy hat geschrieben:
24.05.2020, 19:47
jmaus hat geschrieben:
24.05.2020, 00:49
Geht für sämtliche Schleifenvarianten der ReGaHss (foreach, while, etc.).
Kannst du bitte etc. diesbezüglich näher beschreiben?
Was genau willst/musst du denn wissen oder ist dir noch nicht klar? „break“ und „continue“ verhalten sich wie die gleichnamigen C Varianten und können in allen Schleifenkonstrukten (foreach, while) eingesetzt werden. Oder welche Infos fehlen dir noch?
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Matthias K.
Beiträge: 1170
Registriert: 14.02.2016, 12:32
System: Alternative CCU (auf Basis OCCU)
Wohnort: Heidenheim
Hat sich bedankt: 57 Mal
Danksagung erhalten: 225 Mal

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von Matthias K. » 24.05.2020, 20:41

Alchy wollte vermutlich wissen welche weiteren Schleifenvarianten du neben "while" und "foreach" du mit "etc." meintest. :wink:

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

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von jmaus » 24.05.2020, 20:47

scorpionking hat geschrieben:
24.05.2020, 20:41
Alchy wollte vermutlich wissen welche weiteren Schleifenvarianten du neben "while" und "foreach" du mit "etc." meintest. :wink:
Die die ich von anderen Programmiersprachen noch so im
Kopf habe ;) Hatte ja geschrieben das es für sämtliche Schleifenvarianten in ReGa funktioniert und das schließt natürlich auch nur die ein die es auch in ReGaHss gibt.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

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

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von dtp » 25.05.2020, 07:04

jmaus hat geschrieben:
24.05.2020, 20:30
Na wenn du „break“ und „continue“ als unglücklich gewählt ansiehst dann hast du anscheinend noch nie C Programmierung betrieben. Da heissen diese Statements nämlich auch und IMHO ergeben diese Namen durchaus Sinn.
"break" sehe ich nicht als unglücklich an, weil es ja das macht, was man von der Bezeichnung erwartet. Nämlich eine Schleife zu unterbrechen.
"continue" suggeriert aber, dass es nach einer vorherigen Unterbrechung wieder weitergeht. Und das ist ja eigentlich nicht das, was dieser Befehl bewirkt. Vielmehr bricht er den aktuellen Schleifendurchlauf ab und springt direkt zum nächsten.

Ist aber, wie gesagt, auch nicht so problematisch, wenn man's weiß. Insbesondere, wenn es der Nomenklatur von C entspricht. Viel wichtiger ist, dass es diesen Befehl überhaupt gibt in der Skriptsprache der ReGaHSS.

Danke für's Umsezten.

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

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von jp112sdl » 25.05.2020, 07:53

dtp hat geschrieben:
25.05.2020, 07:04
"break" sehe ich nicht als unglücklich an, weil es ja das macht, was man von der Bezeichnung erwartet. Nämlich eine Schleife zu unterbrechen.
Richtig... dann biste raus aus der Schleife
dtp hat geschrieben:
25.05.2020, 07:04
"continue" suggeriert aber, dass es nach einer vorherigen Unterbrechung wieder weitergeht.
Ergibt keinen Sinn, denn du bist ja mit break schon aus der Schleife rausgesprungen.
Anschließend innerhalb der Schleife dann noch irgendwo was mit continue erreichen zu wollen, ist aussichtslos. :wink:

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von Black » 25.05.2020, 08:03

break und continue sind sprachelemente fast aller gängiger Programmiersprachen. Auf Anhieb fällt mir da neben c noch Pascal, javascript und python ein.

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

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

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von dtp » 25.05.2020, 08:23

Ist mir schon klar, dass diese Nomenklatur so für viele Programmiersprachen gilt. Und die stammt ja sicherlich auch von native speakern. Insofern nehme ich das jetzt mal so, wie es ist. 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: 9845
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 462 Mal
Danksagung erhalten: 1863 Mal
Kontaktdaten:

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von jmaus » 25.05.2020, 08:30

dtp hat geschrieben:
25.05.2020, 08:23
Ist mir schon klar, dass diese Nomenklatur so für viele Programmiersprachen gilt. Und die stammt ja sicherlich auch von native speakern. Insofern nehme ich das jetzt mal so, wie es ist. 8)
Und daran lässt sich jetzt ohnehin nichts mehr ändern, also erübrigt sich jede weitere Diskussion darum ;)

Viel interessanter wäre zu erfahren welche Sprachkonstrukte ihr denn noch so in der Skriptsprache vermisst bzw. gerne geändert sehen würdet. Denn dann kann ich schauen ob solch eine Modifikation sinnig und auch mit vertretbarem Aufwand möglich wäre.
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

Benutzeravatar
Black
Beiträge: 5471
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 419 Mal
Danksagung erhalten: 1071 Mal
Kontaktdaten:

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von Black » 25.05.2020, 10:07

@jens: wenn du mich so fragst....

1. Initialisierbarkeit eines lokalen idarray.
2. Cleardelay (id); alle zu einer id gehörenden laufenden Verzögerungen tillen ohne einen schaltvorgang auszuführen. Sinn soll sein, ein script dass verzögert um gestartet wurde, mir der Funktion tillen zu können.
3. IsSheduled (id) Methode um abfragen zu können ob es zu einer id laufende verzögert um schedules gibt
4.regex

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

MichaelN
Beiträge: 9650
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 697 Mal
Danksagung erhalten: 1617 Mal

Re: foreach-Schleife: aktuelles Listenelement überspringen

Beitrag von MichaelN » 25.05.2020, 12:55

Black hat geschrieben:
25.05.2020, 10:07
2. Cleardelay (id); alle zu einer id gehörenden laufenden Verzögerungen tillen ohne einen schaltvorgang auszuführen. Sinn soll sein, ein script dass verzögert um gestartet wurde, mir der Funktion tillen zu können.
3. IsSheduled (id) Methode um abfragen zu können ob es zu einer id laufende verzögert um schedules gibt
Sowas fände ich auch gut. Ich würde sogar soweit gehen, das ich wissen möchte, wie lange die Verzögerung noch läuft.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Antworten

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