Alle Kanäle eines Device aus Gewerk/Raum entfernen bzw hinzufügen

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

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

Alle Kanäle eines Device aus Gewerk/Raum entfernen bzw hinzufügen

Beitrag von Black » 04.04.2019, 18:52

Manche Devices haben extrem viele Kanäle. Und wenn dieses beim Anlegen mit den falschen werten vorbesetzt wurden, hat man etwas Spass beim händischen ändern.

Es geht auch mit Hilfsprogrammen wie dem SDV, aber auch mit Scripten.

der kleine 23 Zeiler hier kann alle Kanäle eines Device aus einem Raum / Gewerk entfernen und auch einem Raum Gewerk zuordnen.
eigentlich Selbsterklärend, (Hoffe ich )

Code: Alles auswählen

!- Gewerk und Raum weg
!- by Black in 2019
!- ===================
!- Hier das Device unter Get mit Namen angeben
object oDev= dom.GetObject (ID_DEVICES).Get ("HmIP-RCV-50");
string sChan;
!- Unter Get den Namen des Gewerkes oder des Raumes angeben, aus dem das Device gelöscht werden soll
!- Ansonsten nur Deklaration mit object oRoomDel;
object oRoomDel= dom.GetObject (ID_ROOMS).Get ("Haus EG");
object oFuncDel= dom.GetObject (ID_FUNCTIONS).Get ("Egal");

!- Unter Get den Namen des Gewerkes oder des Raumes angeben, dem das Device hinzugefügt werden soll
object oRoomAdd; !- =dom.GetObject (ID_ROOMS).Get ("Haus EG");
object oFuncAdd; !- =dom.GetObject (ID_FUNCTIONS).Get ("Haus EG");

if (oDev) {
foreach (sChan,oDev.Channels () ) {
   if (oRoomDel) {oRoomDel.Remove (sChan); }
   if (oFuncDel) {oFuncDel.Remove (sChan); }
   if (oRoomAdd) {oRoomAdd.Add (sChan);}
   if (oFuncAdd) {oFuncAdd.Add (sChan);}
}
WriteLine ("Done"); 
} else {
WriteLine ("Device ungültig");
}
Ist unter oRoomDel oder oFuncDel ein Object zugeordnet, so werden alle Kanäle des Devices aus diesem Raum / gewerk entfernt.
Soll nix entfernt werden, nur als Deklaration schreiben:
object oRoomDel; bzw object oFuncDel;

Ist unter oRoomAdd oder oFuncAdd ein Object zugeordnet, so werden alle Kanäle des Devices diesem Raum / gewerk zugeordnet
Soll nix zugeordnet werden, nur als Deklaration schreiben:
object oRoomAdd; bzw object oFuncAdd;

greetz, Black

Script ausführen unter Script testen oder im Script executor oder im SDV, aber vorher bitte ein BACKUP machen
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

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“