foreach-Schleife: aktuelles Listenelement überspringen
Moderator: Co-Administratoren
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: foreach-Schleife: aktuelles Listenelement überspringen
Naja, es kann ja zu einer id mehr als eine laufende Verzögerung geben....
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: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: foreach-Schleife: aktuelles Listenelement überspringen
Irgendwie habe ich das gar nicht mehr verfolgt, aber gibt es mittlerweile eigentlich die integrierte Delay-Funktion als Skriptbefehl?
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: foreach-Schleife: aktuelles Listenelement überspringen
bei der raspel ja, bei der ccu3 nein
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: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: foreach-Schleife: aktuelles Listenelement überspringen
Dann wird's Zeit, dass eQ-3 das mal implementiert. Oder ich hole mir doch mal so 'ne Raspel und verticke die CCU3 wieder. Allerdings möchte ich, dass meine Skripte auf allen aktuellen Systemen laufen. Daher bin ich mit der original CCU3 als limitierendes Element wohl doch besser aufgestellt.
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
- jmaus
- Beiträge: 9862
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 464 Mal
- Danksagung erhalten: 1880 Mal
- Kontaktdaten:
Re: foreach-Schleife: aktuelles Listenelement überspringen
Bitte mal ein konkretes Beispiel geben, stecke da gerade nicht so drin und daher wäre es hilfreich das etwas detaillierter mit Beispielen zu beschreiben.
Das ergibt in der Tat Sinn und sollte auch machtbar sein. Mach doch dafür bitte mal im GitHub ein separates Ticket für auf und dann vergess ich das auch nicht wenn ich das nächste mal wieder an ReGaHss sitze.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
Das wäre in der Tat schön ja. Hatte mir es auch im Prinzip bereits angeschaut. Problem dabei ist, das es nicht ganz klar ist wo genau man jetzt die entsprechende RegEx Funktionalität einbauen sollten und bis jetzt hab ich auch noch keine freie RegEx Bibliothek in C++ gefunden die auch lizenztechnisch zu ReGaHss passt. Aber auch dafür kannst du natürlich gerne mal ein GitHub Ticket aufmachen damit man das auf dem Schirm behält.4.regex
RaspberryMatic 3.75.7.20240420 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: foreach-Schleife: aktuelles Listenelement überspringen
wenn man in scripten listen von Objecten erstellt,bearbeitet, auswertet geht das bisher nur mit dem selbstgenieren von OT_ENUM Objekten oder OT_XMLNODE Objecten. das die rega aber kein try finally bzw try catch exception handling beherrscht, bleiben bei einem Runtime Error leichen zurück.
ein idarry kann auch derartiges bearbeiten und liesse sich , so die Theorie, lokal anlegen.
allerdings führt ein derartiger versuch:
Code: Alles auswählen
idarray test;
test.Add (950);
Code: Alles auswählen
May 27 09:29:22 homematic-ccu2 local0.err ReGaHss: ERROR: ScriptRuntimeError: idarray test;^M test.Add (950);^M [ExecError():iseESPexec.cpp:12798]
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: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: foreach-Schleife: aktuelles Listenelement überspringen
Also ich fände es cool, wenn man mit .Contains() auch zwei Listen vergleichen könnte.
Beispiel:
Für vergleich1 kommt dann als Resultat "true\tfalse\tfalse\tfalse\ttrue", während sich für vergleich 2 "false\ttrue\ttrue" ergibt.
Könnte mir hier auch auf entsprechende Weise ein .Find() vorstellen, dass im ersten Fall "1\t-1\t-1\t-1\t5" und im zweiten Fall "-1\t2\t-1" ausgibt.
Die Resultatslisten müssten sich dann mit einer foreach-Schleife abarbeiten lassen.
Von Matlab her kenne ich noch das Programmieren mit Vektoren und Matrizen. Das war ofmals sehr komfortabel. Wäre aber wohl für die ReGaHSS etwas zu viel verlangt, auch wenn der obige Listenvergleich in diese Richtung geht.
Beispiel:
Code: Alles auswählen
string list1 = "Bier\tCola\tFanta\Sprite\tApfelschorle";
string list2 = "Sprudel\tBier\tApfelschorle";
boolean vergleich1 = list1.Contains(list2);
boolean vergleich2 = list2.Contains(list1);
Könnte mir hier auch auf entsprechende Weise ein .Find() vorstellen, dass im ersten Fall "1\t-1\t-1\t-1\t5" und im zweiten Fall "-1\t2\t-1" ausgibt.
Die Resultatslisten müssten sich dann mit einer foreach-Schleife abarbeiten lassen.
Von Matlab her kenne ich noch das Programmieren mit Vektoren und Matrizen. Das war ofmals sehr komfortabel. Wäre aber wohl für die ReGaHSS etwas zu viel verlangt, auch wenn der obige Listenvergleich in diese Richtung geht.
Zuletzt geändert von dtp am 28.05.2020, 07:51, insgesamt 1-mal geändert.
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
- Black
- Beiträge: 5480
- Registriert: 12.09.2015, 22:31
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Wegberg
- Hat sich bedankt: 424 Mal
- Danksagung erhalten: 1074 Mal
- Kontaktdaten:
Re: foreach-Schleife: aktuelles Listenelement überspringen
Matrixberechnungen auf einer ccu wo das dingen noch nicht mal punkt vor strichrechnung kennt ?
Hmmmm.
Black
Hmmmm.
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: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: foreach-Schleife: aktuelles Listenelement überspringen
Okay, vielleicht etwas weit her geholt.
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 10660
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 321 Mal
- Danksagung erhalten: 501 Mal
Re: foreach-Schleife: aktuelles Listenelement überspringen
Was ich mir ansonsten noch wünschen würde, wäre, dass ich ein beliebiges Listenelement durch einen anderen Eintrag ersetzen kann.
Also z.B.
ergibt dann "a\tb\tc\tu\te".
Auch schön wäre, wenn ich einfach ein neues Listenelement einfügen könnte:
ergibt "a\tb\tc\tu\td\te".
Und natürlich entfernen:
ergibt "a\tb\td\te".
Also z.B.
Code: Alles auswählen
string list = "a\tb\tc\td\te";
list = list.Replace(3, "u");
WriteLine(list);
Auch schön wäre, wenn ich einfach ein neues Listenelement einfügen könnte:
Code: Alles auswählen
string list = "a\tb\tc\td\te";
list = list.Insert(3, "u");
WriteLine(list);
Und natürlich entfernen:
Code: Alles auswählen
string list = "a\tb\tc\td\te";
list = list.Delete(3);
WriteLine(list);
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.