Howto - zentrales Beschattungssteuerungsprogramm zBSP (per zPNP)

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

Moderator: Co-Administratoren

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

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von dtp » 27.02.2020, 19:28

In Version 2.5.1 wurde eine kleine Änderung beim Hinweis vorgenommen, dass nach dem erneuten Ausführen der geladenen Werte keine weiteren Auslösungen notwendig waren.
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.

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

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von dtp » 23.04.2020, 18:09

Ich habe mir nun mal einen HmIP-BROLL zum Testen zugelegt. So ganz zufrieden war ich mit der bisherigen Tasten- bzw. Bediensperre nicht. Daher habe ich mir nun erst mal folgendes überlegt, was aber nur mit einer OR-Verknüpfung der Kanäle 3 bis 6 des BROLL funktionier.

Wird LOCK gesetzt, fährt der BROLL mit Kanal 4 automatisch in die Position 100 %. Gleichzeitig werden auch die Kanäle 5 und 6 auf 100 % gesetzt. Damit kann der BROLL dann nicht mehr lokal bedient werden. Mit ULCK kann die Tastensperre wieder aufgehoben werden, indem der Aktor über Kanal 4 in die gewünschte Sollposition gefahren wird und die Kanäle 5 und 6 auf 0 % gesetzt werden.

Ich weiß nicht, ob es möglich ist, die logische Verknüpfung der Kanäle per Skript zu ändern. Es gibt da zwar einen Parameter "LOGIC_COMBINATION", der das abbildet, aber ich weiß nicht, wie man den per Skript setzen kann.
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
cobbek
Beiträge: 28
Registriert: 02.04.2014, 13:47
System: CCU und Access Point
Wohnort: Gelsenkirchen
Hat sich bedankt: 3 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von cobbek » 18.05.2020, 12:32

Hallo zusammen!
Ich habe von der originalen CCU3 auf Raspberrymatic umgestellt und versuche erneut, das Beschattungssystem gangbar zu machen.

Ich bin bereits im letzten Jahr gescheitert, nun ein neuer Versuch. Vorgang wie beschrieben in der Anleitung.
Meine Taster sind die HM-LC-Bl1PBU-FM, meine FTK oder Drehsensoren HM-Sec-SC-2 bzw. HM-Sec-RHS.
Benennung ist "EG_Fenster_Rollade_Bad", "EG_Fenster_Bad" .
Der Begriff Rollade ist im Programm angepasst ;-)
Telegram bzw. das Push Nachrichtensystem läuft auf Version 4.0.1 tadellos

Ich habe alle Scripte durch in diesem HowTo keines funktioniert. Die Rollade/n gegen alle immer ganz zu bzw es bewegt sich nichts. Einzig Reaktion zeigt dieses Script

Code: Alles auswählen

string blindName = "EG_Fenster_Rollade_Bad";
string channel;

foreach(channel, (dom.GetObject(ID_DEVICES).Get(blindName)).Channels().EnumUsedNames()){
  WriteLine(channel);
  if((dom.GetObject(ID_CHANNELS).Get(channel)).DPByHssDP("LEVEL")){
    (dom.GetObject(ID_CHANNELS).Get(channel)).DPByHssDP("LEVEL").State(0.8);
  }
}
wohl auch so wie es soll, sprich auf 80%

Meine Meldung in Telegram sind so:
HM_zBSS_Telegram.png
HM_zBSS_Telegram.png (23.53 KiB) 1410 mal betrachtet
Meine SYSVar werden befüllt:
HM_zBSS_Sysvar.png
Heute morgen noch einmal alles gelöscht, neugestartet, Programm nach Anleitung installiert und mit einfachem Testscript per Test und real ausgeführt. Anzeige 0% Rolllade ganz zu.
Starte ich zb:

Code: Alles auswählen

! string blindName = "EG_Fenster_Rollade_Bad"; ! Name des Beschattungsaktors
! 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(TILTnnn OPENnnn) Bediensperre(LOCK/ULCK) Markiseninvertierung(INVA)|Auslösebedingung(ne/gt/ge/lt/le)\t
!  Beschattungsgerät|Behanghöhe|Korrekturwert(TILTnnn OPENnnn) Bediensperre(LOCK/ULCK) Markiseninvertierung(INVA)|Auslösebedingung(ne/gt/ge/lt/le)"; 
! ausfüllen (einzelne Beschattungsgeräte mit "\t" trennen). 
! TILTnnn (für gekippte Verschlüsse) bzw. OPENnnn (für offene Verschlüsse) können Ganzzahlenwerte zwischen 0 und 100 enthalten.
! INVA dient ausschließlich zur Invertierung von Markisenwerten: 100 -> 0, 0 -> 100, 80 -> 20, etc.
! 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 in blindsGlobalValues zumindest eine Behanghöhe gesetzt sein.
! Beispiel: blindsList = "EG Wohnzimmer Rollladen Fenster|70|OPEN100 LOCK|gt";
string blindsList = "EG_Fenster_Rollade_Bad|80";

! +++++ Globale Werte für Behanghöhe bzw. Ausfahrwert, Korrekturwert, Bediensperre und Auslösebedingung +++++
! Wenn gesetzt, sind keine lokalen Werte in blindsList notwendig bzw. werden ignoriert 
! Stets nach dem Muster
! "Behanghöhe|Korrekturwert(TILTnnn OPENnnn) Bediensperre(LOCK/ULCK) Markiseninvertierung(INVA)|Auslösebedingung(ne/gt/ge/lt/le)";
! ausfüllen.
! Optionale Parameter in Behanghöhe:
! "TEST" -> Testlauf, es erfolgt keine Auslösung der Beschattungsgeräte.
! "STAT" -> Status des im zBSS mit der lokalen Variablen "blindsTrade" definierten Beschattungsgewerks.
! "SAFE" -> Abspeichern der aktuellen Werte in der mit "svBlindsListPrev" definierten Systemvariablen
! "LOAD" -> Laden zuvor gespeicherter Werte (Werte in "blindsList" und "blindsGlobalValues" werden ignoriert).
! Beispiel: blindsGlobalValues = "TEST SAFE 50|TILT20 OPEN100 INVA";
string blindsGlobalValues = "TEST STAT"; !"" zur Berücksichtigung der lokalen Werte in "blindsList"

! +++++ Zusatzinformation, die als Push-Nachricht versendet werden soll +++++ 
! Beispiel: blindsMessage = "Dies ist ein Test.";  
string blindsMessage = "--"; ! "--" zur Unterdrückung von Push-Nachrichten

! +++++ Namen der für die Beschattung benötigten Systemvariablen gem. zBSS +++++
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();
werden die korrekten Stellungen in % wiedergegeben.
Telegram:
telegram 2.png

Hat da jemand noch einmal einen Denkanstoß
Danke
Gruß cobbek

Nachtrag: das geht auch:

Code: Alles auswählen

! string blindsList = "EG_Fenster_Rolllade_Bad";

string blindName = "EG_Fenster_Rolllade_Bad";
real blindValue = 25.0;
string blindChannelsList; string blindChannel;

blindChannelsList = (dom.GetObject(ID_DEVICES).Get(blindName)).Channels().EnumUsedNames();
foreach(blindChannel, blindChannelsList){
  if((dom.GetObject(ID_CHANNELS).Get(blindChannel)).DPByHssDP("LEVEL")){
    (dom.GetObject(ID_CHANNELS).Get(blindChannel)).DPByHssDP("LEVEL").State(blindValue/100);
  }
}
und es gibt keine Fehlermeldung im Log.
CCU3 | RaspberryMatic mit aktueller Firmware und vielen Geräten

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

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von dtp » 18.05.2020, 13:39

Nur auf die Schnelle. Wenn du "TEST" in der globalen Systemvarialben setzt, dann werden die Rollladenaktoren nicht angesteurt. Der Test bezieht sich nur auf die Erstellung der entsprechenden Push-Nachrichten.

Ich sehe aber gerade, dass es da noch ein Problem mit der Statusmeldung in Verbindung mit den HMIP-Aktoren gibt. Da werden alle Kanäle durchlaufen und als nicht existent anzeigt. Setze ich mich in Kürze noch mal ran.
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
cobbek
Beiträge: 28
Registriert: 02.04.2014, 13:47
System: CCU und Access Point
Wohnort: Gelsenkirchen
Hat sich bedankt: 3 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von cobbek » 18.05.2020, 15:29

Hallo und danke. Habe bei TEST aber auch ohne TEST mit Befehlen wie

Code: Alles auswählen

string blindsList = "EG_Fenster_Rolllade_Bad|40|open20|le";
oder ähnlich aber auch immer 0% in der Meldung bzw als Bewegung.

Also :

Code: Alles auswählen

! string blindName = "EG_Fenster_Rolllade_Bad";
! 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 +++++
string blindsList = "EG_Fenster_Rolllade_Bad|10|TILT20 OPEN90";

! +++++ Globale Werte für Behanghöhe bzw. Ausfahrwert, Korrekturwert, Bediensperre und Auslösebedingung +++++
string blindsGlobalValues = ""; !"" zur Berücksichtigung der lokalen Werte in "blindsList"

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

! +++++ Namen der für die Beschattung benötigten Systemvariablen gem. zBSS +++++
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();
Bild



Daher ??
Dateianhänge
2.png
1.png
CCU3 | RaspberryMatic mit aktueller Firmware und vielen Geräten

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

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von dtp » 18.05.2020, 22:16

Ein Problem könnten noch die Unterstriche als Trennzeichen in den Namen sein. Definiere mal

Code: Alles auswählen

string blindsIndicator = "Rolllade_"; 
Ich werde das in der nächsten Version 2.6 ändern, so dass man zukünftig immer das Trennzeichen (z.B. Leerzeichen, Unterstrich, etc.) vor bzw. hinter der Bezeichnung mit angeben muss. Hatte vorher im Skript immer doppelte Leerzeichen in ein einzelnes umgewandelt, was aber auch zu Problemen führte, wenn man bewusst oder versehentlich zwei Leerzeichen hintereinander gesetzt hat.

In der nächsten Version wird auch die Statusabfrage verbessert. Da kam es bisher zu einer Fehleranzeige, wenn die Kanäle anders hießen als die übergeordneten Geräte. Dies führte insbesondere bei HMIP-Aktoren zu Problemen.

Auch sitze ich noch an der lokalen Tastensperre für die HMIP-Aktoren. Das wird aber mit den virtuellen Kanälen nicht so gut zu lösen sein, wie bei den klassischen HM-Aktoren.
Zuletzt geändert von dtp am 22.05.2020, 10:17, 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.

Benutzeravatar
cobbek
Beiträge: 28
Registriert: 02.04.2014, 13:47
System: CCU und Access Point
Wohnort: Gelsenkirchen
Hat sich bedankt: 3 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von cobbek » 19.05.2020, 11:17

Hallo und Danke.

Ich habe deinen Tipp

Code: Alles auswählen

string blindsIndicator = "Rolllade_"; 
aufgenommen noch ein wenig geforscht. Dann alles gelöscht und die neue Version 2.6a eingefügt. Anschließend alle _ entfernt und nochmal die Namen der TFK mit den Rollladen verglichen und auf einen Nenner gebracht. Und dann :!: fiel mir der Fehler auf:

Code: Alles auswählen

string blindsIndicator = "Rollladen"; 
steht im Script. Und bei mir hatte sich das "n" irgendwie versteckt. :roll: :wink:

Kurz um - es läuft. Danke.

Ich möchte mich hier noch einmal an alle User in diesem Forum wenden und DANKE sagen, für die tolle Arbeit und den Support. Ohne diese ganzen Probleme und Hilfen dazu, hätte ich bzw viele andere auch , sicherlich grosse Probleme. Da ich eher ein "Bastler und Herausfinder" bin, kann ich hier nicht so dolle mit sinnvollen Hilfen dienen - leider. Aber ich bin ein stetiger Leser (meistens pro Artikel / HowTo 4x ).

Also es läuft und DANKE
CCU3 | RaspberryMatic mit aktueller Firmware und vielen Geräten

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

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von dtp » 19.05.2020, 11:37

cobbek hat geschrieben:
19.05.2020, 11:17
Also es läuft und DANKE
Freut mich. Danke für die Rückmeldung. Oftmals steckt der Fehler halt im Detail. 8)

Noch was. Werden denn jetzt auch deine Fenstersensoren erkannt? Das erkennst du daran, dass du zusätzlich eine Info über den Schließzustand der Fenster erhältst.
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
cobbek
Beiträge: 28
Registriert: 02.04.2014, 13:47
System: CCU und Access Point
Wohnort: Gelsenkirchen
Hat sich bedankt: 3 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von cobbek » 19.05.2020, 11:44

Hallo
Es erkennt die FTKs , wie sieht es mir den Drehsensoren aus. An meiner Tür sind beide verbaut. Sind die FTk überflüssig?

es sieht jetzt bei mir so aus:

Bild

Gruss
Dateianhänge
4.png
CCU3 | RaspberryMatic mit aktueller Firmware und vielen Geräten

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

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V2.5.1

Beitrag von dtp » 19.05.2020, 12:13

Mit "Drehsensoren" meinst du die Drehgriffsensoren, oder?

Das zBSS erkennt nur den Fenstersensor, der sich ausschließlich durch den unter "blindsIndicator" definierten Begriff vom Namen des Rollladenaktors unterscheidet. Und da man ja bekanntlich zwei Geräten keine identischen Namen geben kann, kann auch nur ein Sensor erkannt werden.

Ich persönlich würde hier den Drehgriffsensor bevorzugen, weil du damit eben nicht nur für geöffnete und geschlossene Fenster, sondern auch für gekippte Fenster unterschiedliche Rollladenzustände festlegen kannst. So bevorzuge ich z.B. bei gekippten Fenstern immer ein Schließen der Rollläden auf ca. 10 bis 20 %, weil dann noch eine Luftzirkulation durch die Rollladenschlitze möglich ist.

Wenn du mit der SAFE-Funktion arbeitest, werden die Rollläden auch automatisch beim Ändern des Fensterzustands innerhalb eines festlegbaren Zeitfensters nach dem Ausführen des zBSP in die entsprechende Position gefahren.

Beispiel: das zBSP erhält das Kommando, alle Rollläden im Wohnzimmer zu schließen. Da deine Terrassentür zu diesem Zeitpunkt offen steht, bleibt hier der Rollladen oben. Wenn du jetzt innerhalb des unter "loadPeriod" gesetzten Zeitintervalls die Terrassentür schließt, wird automatisch der Rollladen geschlossen. Wenn dir nun innerhalb dieses Zeitintervalls einfällt, dass du noch was im Garten vergessen hast, wird der Rolladen automatisch mit dem Öffnen der Terrassentür wieder geöffnet. Das Spiel kannst du innerhalb des Zeitintervalls beliebig oft treiben. Ausnahme: das zBSP wird zwichenzeitlich durch ein anderes Ereignis für andere Rollläden getriggert. Daher muss man hier für sich das optimale Zeitfenster finden.
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.

Antworten

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