Script "alle Lichter aus" und Rückkehr Automodus Heizung- Duty Cycle

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

Antworten
Benutzeravatar
tbs.stbr
Beiträge: 39
Registriert: 17.12.2018, 20:54

Script "alle Lichter aus" und Rückkehr Automodus Heizung- Duty Cycle

Beitrag von tbs.stbr » 04.12.2019, 09:35

Hallo,

ich optimiere gerade meinen Duty Cycle, da dieser oft hoch ist 75-90 und dann Probleme auftauchen.

Eigentlich bin ich der Meinung, dass meine Einstellungen gut sind.
Also was über direkte Verknüpfungen möglich ist, läuft über direkte Verknüpfungen also bspw. Bewegungsmelder oder Funktaster <-> Licht.

Was mir jetzt noch übrig bleibt sind zwei Sachen, bei denen mir die Kenntnis fehlt:

1.) Ein script welches auf Tastendruck abends alle Lichter ausschaltet. Meine Frage hier ist: "Testet das Script vorab, welche Lichter bereits ausgeschaltet sind, damit keine Lampen angesprochen werden, die bereits aus sind?"

Code: Alles auswählen

string liste = "Licht";
! Dont touch behind this Line
string index;       
foreach (index, liste) {
object sec = dom.GetObject(index);
if (sec) {
string itemId;
foreach(itemId, sec.EnumUsedIDs()) {
var item = dom.GetObject(itemId);
if (item.IsTypeOf(OT_CHANNEL)) {
var device = dom.GetObject(item.Device());
var hssType = item.HssType();
if ( (hssType == "SWITCH") && (item.DPByHssDP("STATE").Value()) ) {item.DPByHssDP("STATE").State(0);}
if ( (hssType == "DIMMER") && (item.DPByHssDP("LEVEL").Value()) ) {item.DPByHssDP("LEVEL").State(0.0);}
if ( (hssType == "SWITCH_VIRTUAL_RECEIVER") && (item.DPByHssDP("STATE").Value()) ) {item.DPByHssDP("STATE").State(0);}
if ( (hssType == "DIMMER_VIRTUAL_RECEIVER") && (item.DPByHssDP("LEVEL").Value()) ) {item.DPByHssDP("LEVEL").State(0);}
if ( (hssType == "VIRTUAL_DIMMER") && (item.DPByHssDP("LEVEL").Value()) ) {item.DPByHssDP("LEVEL").State(0);}
if ( (hssType == "DIGITAL_OUTPUT") && (item.DPByHssDP("STATE").Value()) ) {item.DPByHssDP("STATE").State(0);}
}
}
}
}
2.) Ich habe irgendwann mal ein Programm erstellt, welches abends die Heizungen im Haus wieder auf Normaltemperatur einstellt. Der Grund dafür war wohl, dass ich nicht wollte, dass eine Heizung versehentlich tagelang auf 30 Grad läuft, weil jemand die manuell erhöht hat. Meine Frage hier ist also: "Wie kann ich erreichen, dass alle Heizungen im Haus Nachts wieder in den Automodus wechseln?"
--------------------------------------------
732 Kanäle in 145 Geräten und 48 CUxD-Kanäle in 3 CUxD-Geräten:
2x HM-OU-CFM-TW, 1x HmIP-BSL, 2x CUX28, 2x HmIP-ASIR-O, 3x HmIP-SMO, 14x HmIP-BSM, 12x HMIP-eTRV, 3x HmIP-HEATING, 4x HM-LC-Sw4-WM, 3x HM-LC-Sw2-FM, 8x HmIP-SRH, 14x HmIP-SWDO-I, 6x HMIP-SWDO, 1x CUX40, 7x HMIP-PS, 2x HmIP-FSM16, 5x HmIP-eTRV-C, 2x HmIP-eTRV-2, 5x HmIP-FSM, 1x HmIP-SLO, 1x HmIP-RCV-50, 1x HM-Sen-EP, 9x HM-LC-Sw1-FM, 5x HMIP-WRC2, 2x HmIP-WRC6, 1x HM-Sec-TiS, 15x HmIP-SWSD, 1x HM-Sen-RD-O, 1x HM-PB-4Dis-WM-2, 5x HmIP-WTH-2, 10x HmIP-SWD
--------------------------------------------

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

Re: Script "alle Lichter aus" und Rückkehr Automodus Heizung- Duty Cycle

Beitrag von dtp » 04.12.2019, 10:20

Zu 1. Ja, das Skript fragt den aktuellen Status ab.

Hier mal meine Lösung, die den Vorteil bietet, dass man mehrere Gewerke gleichzeitig ansprechen und einzelne Geräte ausnehmen kann. Den Teil mit der Push-Benachrichtigung kann man ja raus nehmen, wenn man es nicht möchte. Sähe dann in der abgespeckten Version so aus:

Code: Alles auswählen

! Aktoren für bestimmte Gewerke ausschalten
! Version 2.4a, Autor: dtp 

! ----- Listen der Gewerke (trennen mit "\t", alle Gewerke oder Räume: "alle") -----
string tradeList = "Licht\t
                    Verbraucher";  

! ----- Liste der Geräte, die nicht ausgeschaltet werden sollen (trennen mit "\t") -----
string exList = "DG Schlafzimmer Dimmer Kanal 2\t
                 EG Garage Licht\t
                 EG Flur Tablet Sender Wohnzimmer\t
                 EG Flur Tablet Schaltzustand Wohnzimmer\t
                 EG Flur Tablet Schalter Wohnzimmer\t
                 UG Büro Dimmer Kanal 2\t
                 UG HWR Waschmaschine Schalter\t
                 UG HWR Trockner Schalter"; 

! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################

! +++++ Deklaration weiterer Variablen +++++
string trade; string channelName;

! +++++ Skriptkern +++++
if(tradeList == "alle"){tradeList = dom.GetObject(ID_FUNCTIONS).EnumNames();}

foreach(trade, tradeList){
  trade = trade.Trim();
  if(dom.GetObject(ID_FUNCTIONS).Get(trade)){
    foreach(channelName, (dom.GetObject(ID_FUNCTIONS).Get(trade)).EnumUsedNames()){
      if(!exList.Contains(channelName)){
        if((dom.GetObject(ID_CHANNELS).Get(channelName)).DPByHssDP("STATE").Value()){
          (dom.GetObject(ID_CHANNELS).Get(channelName)).DPByHssDP("STATE").State(0); 
        }
        if((dom.GetObject(ID_CHANNELS).Get(channelName)).DPByHssDP("LEVEL").Value()){
          (dom.GetObject(ID_CHANNELS).Get(channelName)).DPByHssDP("LEVEL").State(0.0); 
        }
      }
    }
  }
}
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
tbs.stbr
Beiträge: 39
Registriert: 17.12.2018, 20:54

Re: Script "alle Lichter aus" und Rückkehr Automodus Heizung- Duty Cycle

Beitrag von tbs.stbr » 04.12.2019, 10:39

Super, Danke.
Dann habe ich vermutlich einen recht dicken Brocken erschlagen und mein Duty Cycle erholt sich hoffentlich etwas.
--------------------------------------------
732 Kanäle in 145 Geräten und 48 CUxD-Kanäle in 3 CUxD-Geräten:
2x HM-OU-CFM-TW, 1x HmIP-BSL, 2x CUX28, 2x HmIP-ASIR-O, 3x HmIP-SMO, 14x HmIP-BSM, 12x HMIP-eTRV, 3x HmIP-HEATING, 4x HM-LC-Sw4-WM, 3x HM-LC-Sw2-FM, 8x HmIP-SRH, 14x HmIP-SWDO-I, 6x HMIP-SWDO, 1x CUX40, 7x HMIP-PS, 2x HmIP-FSM16, 5x HmIP-eTRV-C, 2x HmIP-eTRV-2, 5x HmIP-FSM, 1x HmIP-SLO, 1x HmIP-RCV-50, 1x HM-Sen-EP, 9x HM-LC-Sw1-FM, 5x HMIP-WRC2, 2x HmIP-WRC6, 1x HM-Sec-TiS, 15x HmIP-SWSD, 1x HM-Sen-RD-O, 1x HM-PB-4Dis-WM-2, 5x HmIP-WTH-2, 10x HmIP-SWD
--------------------------------------------

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

Re: Script "alle Lichter aus" und Rückkehr Automodus Heizung- Duty Cycle

Beitrag von jp112sdl » 04.12.2019, 11:31

Wäre es nicht am sinnvollsten, alle zu schaltenden Licht-Aktoren mit einer (1) virtuellen CCU-Taste direkt zu verknüpfen und im Programm dann nur diese eine Taste auszulösen?

Dann ist es egal, ob da 2 oder 20 Geräte geschaltet werden müssen - es braucht nur 1 Funktelegramm.

VG,
Jérôme ☕️

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

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

Re: Script "alle Lichter aus" und Rückkehr Automodus Heizung- Duty Cycle

Beitrag von dtp » 04.12.2019, 11:43

jp112sdl hat geschrieben:
04.12.2019, 11:31
Dann ist es egal, ob da 2 oder 20 Geräte geschaltet werden müssen - es braucht nur 1 Funktelegramm.
Ist das wirklich so? Selbst mit einer virtuellen Taste muss die CCU doch jede Funkkomponente einzeln ansprechen, oder nicht?

Falls ja, dann wäre es evtl. besser, einen realen Funktaster mit allen anderen Geräten direkt zu verknüpfen, so dass die CCU nur diesen einen Funktaster anspricht.

Andererseits werden bei uns nur gerade mal maximal vier bis fünf Geräte bei Abwesenheit ausgeschaltet. Der Rest ist entweder eh aus, oder soll an bleiben. Das hatte also bisher nie irgendeinen großen Einfluss auf den DC. Wenn bei TO der DC so hoch ist, dann vermute ich eher eine andere Ursache für das Problem.
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: 12115
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2150 Mal
Kontaktdaten:

Re: Script "alle Lichter aus" und Rückkehr Automodus Heizung- Duty Cycle

Beitrag von jp112sdl » 04.12.2019, 11:57

dtp hat geschrieben:
04.12.2019, 11:43
Selbst mit einer virtuellen Taste muss die CCU doch jede Funkkomponente einzeln ansprechen, oder nicht?
Nein, es wird nur 1 Broadcast gesendet. Das ist der große Vorteil von 1:n Direktverknüpfungen.
Nur wenn ein ACK eines Gerätes ausbleibt, wird nochmals gesendet.
Das Telegramm enthält auch einen message counter, so dass Geräte, die beim ersten Mal schon erfolgreich geschaltet wurden, nicht noch mal schalten, bzw erneut unnötig ein ACK zurücksenden.
dtp hat geschrieben:
04.12.2019, 11:43
Andererseits werden bei uns nur gerade mal maximal vier bis fünf Geräte bei Abwesenheit ausgeschaltet.
Ja bei euch... aber beim TE? ;)

VG,
Jérôme ☕️

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

Benutzeravatar
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: Script "alle Lichter aus" und Rückkehr Automodus Heizung- Duty Cycle

Beitrag von Black » 04.12.2019, 12:14

Ich hab mal ein tcl script veröffentlicht, welches u.a. über Gewerke bzw Räume laufen kann und State, die nicht den angegebenen Zustand haben,mit zeitversatz auf diesen Zustand setzen.

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

Benutzeravatar
tbs.stbr
Beiträge: 39
Registriert: 17.12.2018, 20:54

Re: Script "alle Lichter aus" und Rückkehr Automodus Heizung- Duty Cycle

Beitrag von tbs.stbr » 04.12.2019, 12:38

jp112sdl hat geschrieben:
04.12.2019, 11:57
Ja bei euch... aber beim TE? ;)
Also im Gewerk Licht habe ich 129 Einträge. Davon sidn 57 als Sender und 72 als Empfänger deklariert.
Ich hoffe jetzt mal einfach, dass es das war, weil ich sonst nicht weiß, was ich noch optimieren kann um den DC im Zaum zu halten.
--------------------------------------------
732 Kanäle in 145 Geräten und 48 CUxD-Kanäle in 3 CUxD-Geräten:
2x HM-OU-CFM-TW, 1x HmIP-BSL, 2x CUX28, 2x HmIP-ASIR-O, 3x HmIP-SMO, 14x HmIP-BSM, 12x HMIP-eTRV, 3x HmIP-HEATING, 4x HM-LC-Sw4-WM, 3x HM-LC-Sw2-FM, 8x HmIP-SRH, 14x HmIP-SWDO-I, 6x HMIP-SWDO, 1x CUX40, 7x HMIP-PS, 2x HmIP-FSM16, 5x HmIP-eTRV-C, 2x HmIP-eTRV-2, 5x HmIP-FSM, 1x HmIP-SLO, 1x HmIP-RCV-50, 1x HM-Sen-EP, 9x HM-LC-Sw1-FM, 5x HMIP-WRC2, 2x HmIP-WRC6, 1x HM-Sec-TiS, 15x HmIP-SWSD, 1x HM-Sen-RD-O, 1x HM-PB-4Dis-WM-2, 5x HmIP-WTH-2, 10x HmIP-SWD
--------------------------------------------

Antworten

Zurück zu „HomeMatic allgemein“