Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.1

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

Moderator: Co-Administratoren

dtp
Beiträge: 6088
Registriert: 21.09.2012, 08:09
Wohnort: Stuttgart

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von dtp » 15.03.2019, 17:55

Tägliches Beschattungsprogramm

Hier noch ein Beispiel für das von mir eingesetzte Programm zur täglichen Steuerung der Rollläden. Dieses öffnet zunächst jeden Wochentag einige Rollläden im Erdgeschoss und im Keller um 06:20 Uhr (Wenn-Zweig), um dann den Rollladen in der Küche um 07:00 Uhr hochzufahren (erster Sonst-Wenn-Zweig). Am Wochenende werden diese Rollläden gemeinsam um 07:30 Uhr geöffnet (zweiter Sonst-Wenn-Zweig). Schließlich prüft das Programm jeden Tag um 09:00 Uhr, ob im Haus noch Rollläden nicht geöffnet wurden und öffnet diese gegebenenfalls (dritter Sonst-Wenn-Zweig). Im letzten Teilprogramm (letzter Sonst-Wenn-Zweig) werden schließlich bei Dunkelheit (Helligkeit des Bewegungsmelders auf der Dachterrasse < 70) die meisten Rollläden im Haus auf jeweils vordefinierte Werte herunter gefahren.
Haus PRG Beschattung täglich 01.png
Haus PRG Beschattung täglich 02.png
Allen Teilprogrammen gemein ist, dass es zu diesen Zeitpunkten noch keine Hitzemeldung für den jeweiligen Tag gegeben haben darf. Falls doch, dann greift das zuvor vorgestellte Hitze-Programm. Zudem erfolgt die Auslösung nur, wenn die Anwesenheitssimulation nicht aktiv ist. Für die Anwesenheitssimulation gibt es eine separate Rollläden-Steuerung.

Die das zBSP aufrufenden Skripte der einzelnen Teilprogrammschritte sehen wie folgt aus.

Code: Alles auswählen

! Beschattungsgeräte steuern durch Aufruf des zBSP

! +++++ Liste der Beschattungsgeräte, Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Stets nach dem Muster "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                       "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t"). 
! Auslösebedingung für den Vergleich von Soll- und Ist-Wert
! -> ne: Soll <> Ist | gt: Soll > Ist | ge: Soll >= Ist | lt: Soll < Ist | le: Soll <= Ist
! Für gesamtes Beschattungsgewerk Aufruf per blindsList = (dom.GetObject(ID_FUNCTIONS).Get("Beschattung")).EnumUsedNames();
! -> dann muss aber blindsGlobalValues gesetzt sein.
!  -> dann muss aber blindsGlobalValues gesetzt sein.
string blindsList = "EG Wohnzimmer Rollladen Fenster\t
                     EG Wohnzimmer Rollladen Terrassentür\t
                     UG Büro Rollladen Fenster";

! +++++ Globale Werte für Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Wenn gesetzt, sind keine lokalen Werte in blindsList notwendig bzw. werden ignoriert 
! Stets nach dem Muster "Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                        Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t").
! Für TESTLAUF in Parameter Behanghöhe "test" einfügen.
string blindsGlobalValues = "100|0|gt"; !"" zur Berücksichtigung der lokalen Werte in "blindsList"

! +++++ Zusatzinformation, die als Push-Nachricht versendet werden soll +++++  
string blindsMessage = "--"; ! "--" zur Unterdrückung von Push-Nachrichten

! +++++ Namen der für die Beschattung benötigten Systemvariablen gem. zeBeS +++++
string svBlindsList = "CCU SV Beschattung Liste"; ! Liste der Beschattungsgeräte, obligatorisch
string svBlindsGlobalValues = "CCU SV Beschattung Globalwerte"; ! Globale Werte für Behanghöhen, Ausfahrwerte und Offsets, optional
string svBlindsMessage = "CCU SV Beschattung Nachricht"; ! Beschattung Nachricht, optional

! +++++ Name des zentralen Programms zur Beschattungssteuerung zBSP +++++
string zBSP = "CCU PRG Beschattung";

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

(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsList)).State(blindsList);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsGlobalValues)).State(blindsGlobalValues);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsMessage)).State(blindsMessage);

! +++++ zBSP ausführen +++++
(dom.GetObject(ID_PROGRAMS).Get(zBSP)).ProgramExecute();

Code: Alles auswählen

! Beschattungsgeräte steuern durch Aufruf des zBSP

! +++++ Liste der Beschattungsgeräte, Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Stets nach dem Muster "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                       "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t"). 
! Auslösebedingung für den Vergleich von Soll- und Ist-Wert
! -> ne: Soll <> Ist | gt: Soll > Ist | ge: Soll >= Ist | lt: Soll < Ist | le: Soll <= Ist
! Für gesamtes Beschattungsgewerk Aufruf per blindsList = (dom.GetObject(ID_FUNCTIONS).Get("Beschattung")).EnumUsedNames();
! -> dann muss aber blindsGlobalValues gesetzt sein.
!  -> dann muss aber blindsGlobalValues gesetzt sein.
string blindsList = "EG Küche Rollladen Fenster";

! +++++ Globale Werte für Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Wenn gesetzt, sind keine lokalen Werte in blindsList notwendig bzw. werden ignoriert 
! Stets nach dem Muster "Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                        Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t").
! Für TESTLAUF in Parameter Behanghöhe "test" einfügen.
string blindsGlobalValues = "100|0|gt"; !"" zur Berücksichtigung der lokalen Werte in "blindsList"

! +++++ Zusatzinformation, die als Push-Nachricht versendet werden soll +++++  
string blindsMessage = "--"; ! "--" zur Unterdrückung von Push-Nachrichten

! +++++ Namen der für die Beschattung benötigten Systemvariablen gem. zeBeS +++++
string svBlindsList = "CCU SV Beschattung Liste"; ! Liste der Beschattungsgeräte, obligatorisch
string svBlindsGlobalValues = "CCU SV Beschattung Globalwerte"; ! Globale Werte für Behanghöhen, Ausfahrwerte und Offsets, optional
string svBlindsMessage = "CCU SV Beschattung Nachricht"; ! Beschattung Nachricht, optional

! +++++ Name des zentralen Programms zur Beschattungssteuerung zBSP +++++
string zBSP = "CCU PRG Beschattung";

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

(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsList)).State(blindsList);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsGlobalValues)).State(blindsGlobalValues);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsMessage)).State(blindsMessage);

! +++++ zBSP ausführen +++++
(dom.GetObject(ID_PROGRAMS).Get(zBSP)).ProgramExecute();

Code: Alles auswählen

! Beschattungsgeräte steuern durch Aufruf des zBSP

! +++++ Liste der Beschattungsgeräte, Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Stets nach dem Muster "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                       "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t"). 
! Auslösebedingung für den Vergleich von Soll- und Ist-Wert
! -> ne: Soll <> Ist | gt: Soll > Ist | ge: Soll >= Ist | lt: Soll < Ist | le: Soll <= Ist
! Für gesamtes Beschattungsgewerk Aufruf per blindsList = (dom.GetObject(ID_FUNCTIONS).Get("Beschattung")).EnumUsedNames();
! -> dann muss aber blindsGlobalValues gesetzt sein.
!  -> dann muss aber blindsGlobalValues gesetzt sein.
string blindsList = "EG Wohnzimmer Rollladen Fenster\t
                     EG Wohnzimmer Rollladen Terrassentür\t
                     EG Küche Rollladen Fenster\t
                     UG Büro Rollladen Fenster";

! +++++ Globale Werte für Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Wenn gesetzt, sind keine lokalen Werte in blindsList notwendig bzw. werden ignoriert 
! Stets nach dem Muster "Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                        Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t").
! Für TESTLAUF in Parameter Behanghöhe "test" einfügen.
string blindsGlobalValues = "100|0|gt"; !"" zur Berücksichtigung der lokalen Werte in "blindsList"

! +++++ Zusatzinformation, die als Push-Nachricht versendet werden soll +++++  
string blindsMessage = "--"; ! "--" zur Unterdrückung von Push-Nachrichten

! +++++ Namen der für die Beschattung benötigten Systemvariablen gem. zeBeS +++++
string svBlindsList = "CCU SV Beschattung Liste"; ! Liste der Beschattungsgeräte, obligatorisch
string svBlindsGlobalValues = "CCU SV Beschattung Globalwerte"; ! Globale Werte für Behanghöhen, Ausfahrwerte und Offsets, optional
string svBlindsMessage = "CCU SV Beschattung Nachricht"; ! Beschattung Nachricht, optional

! +++++ Name des zentralen Programms zur Beschattungssteuerung zBSP +++++
string zBSP = "CCU PRG Beschattung";

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

(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsList)).State(blindsList);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsGlobalValues)).State(blindsGlobalValues);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsMessage)).State(blindsMessage);

! +++++ zBSP ausführen +++++
(dom.GetObject(ID_PROGRAMS).Get(zBSP)).ProgramExecute();

Code: Alles auswählen

! Beschattungsgeräte steuern durch Aufruf des zBSP

! +++++ Liste der Beschattungsgeräte, Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Stets nach dem Muster "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                       "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t"). 
! Auslösebedingung für den Vergleich von Soll- und Ist-Wert
! -> ne: Soll <> Ist | gt: Soll > Ist | ge: Soll >= Ist | lt: Soll < Ist | le: Soll <= Ist
! Für gesamtes Beschattungsgewerk Aufruf per blindsList = (dom.GetObject(ID_FUNCTIONS).Get("Beschattung")).EnumUsedNames();
! -> dann muss aber blindsGlobalValues gesetzt sein.
string blindsList = (dom.GetObject(ID_FUNCTIONS).Get("Beschattung")).EnumUsedNames();

! +++++ Globale Werte für Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Wenn gesetzt, sind keine lokalen Werte in blindsList notwendig bzw. werden ignoriert 
! Stets nach dem Muster "Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                        Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t").
! Für TESTLAUF in Parameter Behanghöhe "test" einfügen.
string blindsGlobalValues = "100|0|gt"; !"" zur Berücksichtigung der lokalen Werte in "blindsList"

! +++++ Zusatzinformation, die als Push-Nachricht versendet werden soll +++++  
string blindsMessage = "--"; ! "--" zur Unterdrückung von Push-Nachrichten

! +++++ Namen der für die Beschattung benötigten Systemvariablen gem. zeBeS +++++
string svBlindsList = "CCU SV Beschattung Liste"; ! Liste der Beschattungsgeräte, obligatorisch
string svBlindsGlobalValues = "CCU SV Beschattung Globalwerte"; ! Globale Werte für Behanghöhen, Ausfahrwerte und Offsets, optional
string svBlindsMessage = "CCU SV Beschattung Nachricht"; ! Beschattung Nachricht, optional

! +++++ Name des zentralen Programms zur Beschattungssteuerung zBSP +++++
string zBSP = "CCU PRG Beschattung";

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

(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsList)).State(blindsList);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsGlobalValues)).State(blindsGlobalValues);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsMessage)).State(blindsMessage);

! +++++ zBSP ausführen +++++
(dom.GetObject(ID_PROGRAMS).Get(zBSP)).ProgramExecute();

Code: Alles auswählen

! Beschattungsgeräte steuern durch Aufruf des zBSP

! +++++ Liste der Beschattungsgeräte, Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Stets nach dem Muster "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                       "Beschattungsgerät|Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t"). 
! Auslösebedingung für den Vergleich von Soll- und Ist-Wert
! -> ne: Soll <> Ist | gt: Soll > Ist | ge: Soll >= Ist | lt: Soll < Ist | le: Soll <= Ist
! Für gesamtes Beschattungsgewerk Aufruf per blindsList = (dom.GetObject(ID_FUNCTIONS).Get("Beschattung")).EnumUsedNames();
! -> dann muss aber blindsGlobalValues gesetzt sein.
!  -> dann muss aber blindsGlobalValues gesetzt sein.
string blindsList = "DG Schlafzimmer Rollladen Terrassentür|70|tilt0 open100|lt\t
                     OG Gästezimmer Rollladen Fenster|45|tilt0 open50|lt\t
                     OG Zimmer Lina Rollladen Fenster groß|45|tilt0 open50|lt\t
                     OG Zimmer Jona Rollladen Fenster|45|tilt0 open50|lt\t
                     EG Wohnzimmer Rollladen Fenster|20|tilt10 open50|lt\t
                     EG Wohnzimmer Rollladen Terrassentür|20|tilt10 open100|lt\t
                     EG Küche Rollladen Fenster|45|tilt0 open50|lt\t
                     UG Büro Rollladen Fenster|0|tilt40 open90|lt";

! +++++ Globale Werte für Behanghöhen bzw. Ausfahrwerte und Korrekturwert für geöffnete bzw. gekippte Fenster und Türen +++++
! Wenn gesetzt, sind keine lokalen Werte in blindsList notwendig bzw. werden ignoriert 
! Stets nach dem Muster "Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)\t
!                        Behanghöhe|Korrekturwert(tilt_open_) Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)" 
! ausfüllen (trennen mit "\t").
! Für TESTLAUF in Parameter Behanghöhe "test" einfügen.
string blindsGlobalValues = ""; !"" zur Berücksichtigung der lokalen Werte in "blindsList"

! +++++ Zusatzinformation, die als Push-Nachricht versendet werden soll +++++  
string blindsMessage = "Helligkeit < 70"; ! "--" zur Unterdrückung von Push-Nachrichten

! +++++ Namen der für die Beschattung benötigten Systemvariablen gem. zeBeS +++++
string svBlindsList = "CCU SV Beschattung Liste"; ! Liste der Beschattungsgeräte, obligatorisch
string svBlindsGlobalValues = "CCU SV Beschattung Globalwerte"; ! Globale Werte für Behanghöhen, Ausfahrwerte und Offsets, optional
string svBlindsMessage = "CCU SV Beschattung Nachricht"; ! Beschattung Nachricht, optional

! +++++ Name des zentralen Programms zur Beschattungssteuerung zBSP +++++
string zBSP = "CCU PRG Beschattung";

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

(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsList)).State(blindsList);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsGlobalValues)).State(blindsGlobalValues);
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svBlindsMessage)).State(blindsMessage);

! +++++ zBSP ausführen +++++
(dom.GetObject(ID_PROGRAMS).Get(zBSP)).ProgramExecute();
Da ich nicht für jede Auslösung eine Push-Nachricht benötige, habe ich diese bei den Skripten zum Öffnen der Rollläden mit

Code: Alles auswählen

string blindsMessage = "--";
unterdrückt. Nur beim Schließen der Rollläden erhalte ich eine entsprechende Push-Nachricht mit der Zusatzinformation, dass eine Helligkeit < 70 erreicht wurde.
Pushover_Beschattung70.jpg
Gruß,

Thorsten
Zuletzt geändert von dtp am 12.04.2019, 08:44, insgesamt 4-mal geändert.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container, Homebridge auf Raspberry Pi 3B+;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

MartinBr
Beiträge: 257
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von MartinBr » 16.03.2019, 18:14

Hallo Torsten,

ich beschäftige mich gerade mit deinem Beschattungsscript. Ich habe dazu eine grundlegende Frage, da ich mir mein System nicht zerschiessen möchte.

Ich betreibe eine CCU mit 11 FTKs und 10 Rollläden (Haustür ohne Rollo). Namensgebung: FTK Wohnzimmer Sued etc.
Die Rollläden heissen dann Rolllade-Kueche, Rollladen-Wohnzimmer-Sued etc.

Um dein Script einsetzen zu können, müssen diese Geräte eine einheitliche Namensgebung bekommen.

Also: Wohnzimmer-Sued Fenster. Das entsprechende Rollo damit Wohnzimmer-Sued Fenster Rollladen.

Ist das so richtig?

Kann ich nun die Geräte in der Homematic einfach umbenennen? Natürlich dann auch alle Kanäle. Wie sieht das mit den bestehenden Programmen aus? Übernehmen die den neuen Namen?

Gruß
Martin
RaspberryMatic-3.45.7 auf TinkerBoard S, CUxD 2.20, XML-1.20, ioBroker unter Debian 9, Alexa mit ioBroker, VitoComfort 200

Xel66
Beiträge: 5182
Registriert: 08.05.2013, 23:33
Wohnort: Nordwürttemberg

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von Xel66 » 16.03.2019, 18:20

MartinBr hat geschrieben:
16.03.2019, 18:14
Kann ich nun die Geräte in der Homematic einfach umbenennen?
Ja, kannst Du
MartinBr hat geschrieben:
16.03.2019, 18:14
...bestehenden Programmen aus? Übernehmen die den neuen Namen
Die CCU arbeitet intern mit numerischen IDs. Nur für die Anzeige wird diesen IDs der vom Anwender vergebene Name dargestellt. Bei Scripts, die sich auf Namen beziehen, sieht das anders aus. Hier muss der Anwender selbst Hand anlegen. Das ist auch der Grund, warum Du diese anpassen musst.

Gruß Xel66
---------------------------------------------------------------------------------
335 Kanäle in 103 Geräten und 113 CUxD-Kanäle in 23 CUxD-Geräten:
233 Programme, 189 Systemvariablen und 119 Direktverknüpfungen,
RaspberryMatic Version 3.45.5.20190330
---------------------------------------------------------------------------------

MartinBr
Beiträge: 257
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von MartinBr » 16.03.2019, 20:18

Alles klar. Ich beginne dann mal einem Raum.
Danke
Martin
RaspberryMatic-3.45.7 auf TinkerBoard S, CUxD 2.20, XML-1.20, ioBroker unter Debian 9, Alexa mit ioBroker, VitoComfort 200

dtp
Beiträge: 6088
Registriert: 21.09.2012, 08:09
Wohnort: Stuttgart

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von dtp » 18.03.2019, 08:53

MartinBr hat geschrieben:
16.03.2019, 18:14
Ich betreibe eine CCU mit 11 FTKs und 10 Rollläden (Haustür ohne Rollo). Namensgebung: FTK Wohnzimmer Sued etc.
Die Rollläden heissen dann Rolllade-Kueche, Rollladen-Wohnzimmer-Sued etc.

Um dein Script einsetzen zu können, müssen diese Geräte eine einheitliche Namensgebung bekommen.

Also: Wohnzimmer-Sued Fenster. Das entsprechende Rollo damit Wohnzimmer-Sued Fenster Rollladen.

Ist das so richtig?
Hallo Martin,

im Grunde genommen ist das so korrekt. Wichtig ist, dass der Rollladenaktor bis auf den Teilstring "Rollladen", den du aber über die lokale Variable "closureBlinds" selbst definieren kannst, denselben Teilstring aufweist, wie der zugehörige Fenstersensor.

Als Beispiel:

closureBlinds = "Rollladen";
Name des Fenstersensors: "FTK Wohnzimmer Sued"
Name des Rollladenaktors: "Rollladen-Wohnzimmer-Sued"

Das würde so nicht funktionieren, weil der Rollladenaktor Bindestriche im Namen hat und der Fenstersensor nicht. Der Zusatz "FTK" beim Fenstersensor spielt jedoch keine Rolle, solange er nicht zwischen den einzelnen Begriffen des Teilstrings "Wohnzimmer Sued" steht. Seit Version 1.2.3 des zBSS ist gilt folgendes:

Name des Fenstersensors: "FTK Wohnzimmer Sued"
Name des Rollladenaktors: "Rollladen-Wohnzimmer-Sued"
-> geht nicht

Name des Fenstersensors: "FTK-Wohnzimmer-Sued"
Name des Rollladenaktors: "Rollladen-Wohnzimmer-Sued"
-> geht nicht geht seit Version 1.2.3

Name des Fenstersensors: "Wohnzimmer Sued"
Name des Rollladenaktors: "Rollladen Wohnzimmer Sued"
-> geht

Name des Fenstersensors: "FTK Wohnzimmer Sued"
Name des Rollladenaktors: "Wohnzimmer Rollladen Sued"
-> geht

Name des Fenstersensors: "Wohnzimmer Sued"
Name des Rollladenaktors: "Wohnzimmer Sued Rollladen"
-> geht nicht geht seit Version 1.2.3

Name des Fenstersensors: "Wohnzimmer FTK Sued"
Name des Rollladenaktors: "Wohnzimmer Rollladen Sued"
-> geht nicht
Zuletzt geändert von dtp am 21.03.2019, 08:11, insgesamt 3-mal geändert.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container, Homebridge auf Raspberry Pi 3B+;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

MartinBr
Beiträge: 257
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von MartinBr » 18.03.2019, 19:46

Hallo Torsten,
vielen Dank für deine ausführliche Anleitung und Erklärung. Ich nutze ja schon einige deiner Programmierung, ich bin leider nicht so fit in Programmierung. Mein Schwerpunkt sehe ich eher in der Umsetzung und Anpassung der Logik an meine Bedürfnisse. Mein Ziel ist es, keine "Fernbedienung" für das Haus zu bauen sondern dem "Haus == Homematic" zu erklären, wie es automatisch zu reagieren hat.
Ich habe ja schon eine gut funktionierende Rollo Steuerung mit Beschattung, die im Sommer die Hitze draussen lassen soll und im Winter die Sonnenwärme ins Haus holen soll.
Ich habe mir daher für Ost, Süd und West (entsprechend den Fensterflächen) ein Auswertung nach Sonnen-Diff. Wert (Weatherman grüßt artig) und gemessen Innentemperaturen gebaut.
Ich bin gerade dabei, das ganze in deine Logik umzubauen und setze dann drei entsprechende Variablen.

Nun gut, meine Umbenennung der Geräte ist abgeschlossen.
Ergebnis:

Der Fenster-Sensor heißt <Wohnzimmer Sued Fenster>, das Rollo hat den Namen <Wohnzimmer Sued Fenster Rollladen> bekommen. Alle anderen Geräte konform.

Das sollte doch Okay sein?

Aktuell überlege ich mir noch eine Logik für das Gästezimmer. Das Rollo soll dort morgens nicht automatisch hochgehen, wenn über die Anwesenheitserkennung ein Gast detektiert wird. Weiter setze ich die Variable Arbeitstag == Ja/nein.
Das versuche ich dann auch noch einzubauen. dann brauche ich Wochenende bzw. Urlaub nicht zu berücksichtigen, da sie ja in Arbeitstag == nein einfliessen.
Also: Es ist noch eine Menge zu tun!

Gruß und Dank

Martin
RaspberryMatic-3.45.7 auf TinkerBoard S, CUxD 2.20, XML-1.20, ioBroker unter Debian 9, Alexa mit ioBroker, VitoComfort 200

dtp
Beiträge: 6088
Registriert: 21.09.2012, 08:09
Wohnort: Stuttgart

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von dtp » 19.03.2019, 08:08

MartinBr hat geschrieben:
18.03.2019, 19:46
Der Fenster-Sensor heißt <Wohnzimmer Sued Fenster>, das Rollo hat den Namen <Wohnzimmer Sued Fenster Rollladen> bekommen. Alle anderen Geräte konform.
Im Moment wird das so noch nicht funktionieren, weil "Rollladen" nicht am Ende stehen darf. Das muss ich noch ändern. Wenn du auf der sicheren Seite sein willst, dann nenne den Rollo "<Wohnzimmer Sued Rollladen Fenster>". Oder du wartest so lange, bis ich eine neue Version des Skriptes poste. Vielleicht schaffe ich das heute oder morgen noch. Derzeit habe ich nur recht viel um die Ohren.

Übrigens, das zBSP bzw. zBSS dient ja nur zur Ansteuerung der Rollläden, nicht zum Triggern. Daher kannst du als Auslöser in den jeweiligen Wenn- und Sonst-Wenn-Zweigen deiner Programme alles so verwenden, wie bisher. Abfragen über den aktuellen Zustand der jeweiligen Verschlüsse und Rolläden können aber vollständig entfallen, weil die durch das zBSS durchgeführt werden.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container, Homebridge auf Raspberry Pi 3B+;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

MartinBr
Beiträge: 257
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von MartinBr » 19.03.2019, 13:06

Hallo Thorsten,

bitte lass dir Zeit. Bei mir pressiert es nicht. Ich komme erst am Wochenende dazu, die Systemvariablen "Sonnenschutz Ost, Sonnenschutz Süd und Sonnenschutz West " zu setzen. Diese werde ich dann in den Programmen auswerten.

Das zBSP ist schon einb sehr schönes Scipt geworden. Schön, dass du es mit der Community teilst.

Gruß

Martin
RaspberryMatic-3.45.7 auf TinkerBoard S, CUxD 2.20, XML-1.20, ioBroker unter Debian 9, Alexa mit ioBroker, VitoComfort 200

dtp
Beiträge: 6088
Registriert: 21.09.2012, 08:09
Wohnort: Stuttgart

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von dtp » 21.03.2019, 08:05

Hier mal die Version 1.2.3. Mit der sollte es unabhängig davon funktionieren, wo "Rollladen" im Namen steht.

Einfach mal testen und Bescheid geben.
zBSS123.txt
(13.02 KiB) 8-mal heruntergeladen
Gruß,

Thorsten
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container, Homebridge auf Raspberry Pi 3B+;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

MartinBr
Beiträge: 257
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin

Re: Howto - zentrale Beschattungssteuerung (zBSP) V1.2

Beitrag von MartinBr » 21.03.2019, 13:02

Hallo Thorsten,
ich werde am Wochenende die Beschattung mal auf dein Script schalten.

Anbei zuerst mal meine Einstellungen für den "Sonnenschutz". Ich habe die Variablen auf deine Notation umgeschrieben, so komme ich mit der aktuellen Steuerung nicht durcheinander.

Ich setze hier beispielhaft den Sonnenschutz für Ost und West rein. Süd ist äquivalent.
Bildschirmfoto 2019-03-21 um 12.57.24.png
Bildschirmfoto 2019-03-21 um 12.56.19.png
Gruß

Martin

P.S.
Vielen Dank für die Änderung im Script
RaspberryMatic-3.45.7 auf TinkerBoard S, CUxD 2.20, XML-1.20, ioBroker unter Debian 9, Alexa mit ioBroker, VitoComfort 200

Antworten

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