Howto - zentrales Beschattungssteuerungsprogramm zBSP (per zPNP)

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

Moderator: Co-Administratoren

MartinBr
Beiträge: 393
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 8 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von MartinBr » 16.04.2019, 09:26

Heute Abend gibt es einen neuen Testbericht. Ich starte dann Karfreitag die CCU einmal durch, damit die vorhandene Beschattung über den Urlaub sauber funktioniert.
Ostern geht es dann in Urlaub.
Gruß
Martin
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200

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

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von dtp » 16.04.2019, 09:40

MartinBr hat geschrieben:
16.04.2019, 09:26
Ostern geht es dann in Urlaub.
Bei uns auch. :wink:
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: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von dtp » 16.04.2019, 15:36

Hier noch mal die Ausgabe eines Testlaufs mit der 2.0.5beta mit folgendem aufrufenden Skript:

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 (einzelne Beschattungsgeräte mit "\t" trennen). 
! 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|open100lock|gt";
string blindsList = "DG Schlafzimmer Rollladen Terrassentür|40||ne\t
                             EG Küche Rollladen Fenster|40||ne\t
                             EG Wohnzimmer Rollladen Fenster|40||lt\t
                             EG Wohnzimmer Rollladen Terrassentür|40|tilt30|gt\t
                             OG Gästezimmer Rollladen FFFenster|40|open20|ne\t
                             OG Zimmer Jona Rollladen Fenster|40|tilt10open100|ge\t
                             OG Zimmer Lina Rollladen Fenster groß|40|lock|ne\t
                             UG Büro Rollladen Fenster|40|open20lock|le";

! +++++ Globale Werte für Behanghöhe bzw. Ausfahrwert, Korrekturwert, Bediensperre und Auslösebedingung +++++
! Wenn gesetzt, sind keine lokalen Werte in blindsList notwendig bzw. werden diese ignoriert 
! Stets nach dem Muster "Behanghöhe|Korrekturwert(tilt_open_)Bediensperre(lock/unlock)|Auslösebedingung(ne/gt/ge/lt/le)";
! ausfüllen.
! TESTLAUF: "test" in Parameter Behanghöhe einfügen -> es erfolgt keine Auslösung der Beschattungsgeräte.
! Abspeichern der aktuellen Werte: "safe" in Parameter Behanghöhe einfügen.
! Laden zuvor gespeicherter Werte: "load" in Parameter Behanghöhe einfügen -> Werte in "blindsList" und "blindsGlobalValues" werden ignoriert.
! Beispiel: blindsGlobalValues = "testsafe50|tilt20open100";
string blindsGlobalValues = "testsafe"; !"" 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();
zBSS_Pushover.jpg
zBSS_Systemvariablen.jpg
Wie man sieht, wurde das Beschattungsgerät "OG Gästezimmer Rollladen FFFenster" falsch geschrieben. Daher die Meldung in Rot, dass der Gerätename nicht existiert.

Durch Setzen des globalen Parameters "safe" wurden die Werte für alle existierenden Geräte in der Systemvariablen "CCU SV Beschattung Vorliste" gespeichert. Diese können nun durch den Parameter "load" innerhalb des im zBSS definierten Ladezeitfensters wieder aufgerufen werden. Ist das Zeitfenster abgelaufen, werden die Werte aus den Systemvariablen "CCU SV Beschattung Liste" und, falls gesetzt, "CCU SV Beschattung Globalwerte" verwendet.

Für die beiden letzten Beschattungsgeräte wurde mit "lock" die lokale Bediensperre aktiviert, so dass die Aktoren nicht mehr über die Schaltwippe bedienbar sind.

Die Farben der Hinweise zu den einzelnen Beschattungsgeräten geben Hinweise auf den Öffnungszustand. Orange: offen, Blau: gekippt, Grün: geschlossen, Rot: kein Sensor bzw. Beschattungsgerät gefunden. "Keine Auslösung" bedeutet, dass die gesetzte Auslösebedingung nicht erfüllt wurde.
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.

MartinBr
Beiträge: 393
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 8 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von MartinBr » 16.04.2019, 19:23

dtp hat geschrieben:
16.04.2019, 07:19
MartinBr hat geschrieben:
16.04.2019, 06:57
Wäre es denkbar, in dem Script den Namen mit angehängter Kanalnummer einzugeben?
Also <Ankleidezimmer Fenster Rollladen:4> und <HWR Fenster Rollladen:1>?
Das würde dann den automatischen Zugriff auf die Tür- und Fenstersensoren verkomplizieren, da jeder seinen Kanälen andere Namen gibt. Ich z.B. bevorzuge ein "Kanal" statt dem Doppelpunkt.

Ich schaue noch mal, woran es hakt.

Du hattest vor kurzem mal geschrieben, dass du mit dem nachfolgenden Skript deine Aktoren erfolgreich ansteuern konntest:

Code: Alles auswählen

string blindName = "Name des Beschattungsaktors";
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.4);
  }
}
Dann sollte es mit diesem Skript eigentlich auch funktionieren:

Code: Alles auswählen

string blindName = "Name des Beschattungsaktors";
real blindValue = 40.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);
  }
}
Wenn du magst, kannst du es auch noch mal mit der 2.0.5beta testen. Damit sollten zumindest die Fehlermeldungen im Syslog nicht mehr auftreten. Zudem gibt dir diese Version nun eine Meldung per Push-Nachricht aus, wenn ein Gerät unter dem entsprechenden Namen nicht gefunden werden kann. Gibt es keinen entsprechenden Fenstersensor zum Rollladenaktor, wird der zugehörige Beschattungswert nun weiß dargestellt.

Ich befürchte, ich muss mir doch noch einen HmIP-BROLL kaufen. :roll: Sonst wird das hier im Thread ein zu langes Hin und Her. 8) Oder hat jemand im Raum Stuttgart zufällig einen übrig, den er mir testweise zur Verfügung stellen kann. Möchte ungerne einen bei Amazon kaufen, um ihn dann nach zwei Wochen wieder zurückzugeben. Denn brauchen tue ich den Aktor nicht wirklich.

Gruß,

Thorsten
Hallo Thorsten,

ich habe die Version 2.05Beta eingestellt. Dann alle Systemvariablen gelöscht und über das Script neu erstellen lassen.

Dann habe ich jeweils einen EnOcean und den Broll über das zweite Script angesteuert.

Ergebnis: Es funktioniert.

Im Log stehen aber immer noch Fehler:

Code: Alles auswählen

Apr 16 19:12:20 homematic-raspi local0.err ReGaHss: ERROR: ScriptRuntimeError: ! Skript zur zentralen Beschattungssteuerung zBSS ! Achtung: zur Berücksichtigung der Korrekturwerte dürfen sich die Beschattungsnamen nur durch den Ausdruck ! "closureBlinds" von den Namen der Fenster und Türen unterscheiden, z.B. für closureBlinds = "Rollladen" ! Fenstername: "EG Wohnzimmer Fenster" <-> Rollladenname: "EG Wohnzimmer Rollladen Fenster" ! Version 2.0.5beta, Autor: dtp  ! +++++ Charakteristische Bezeichnung der 
eschattungsgeräte +++++ string closureBlinds = "Rollladen";  string closureAwnings = "Markise";  ! +++++ Ausfahrwert für Markisen invertieren (true: ja, false: nein) +++++ boolean invertAwnings = true;  ! +++++ Korrekturwerte im Falle gekippter oder geöffneter Fenster und Türen (true: Offset, false: Absolut) +++++ boolean offsetFlag = true;  ! +++++ Erlaubtes Zeitfenster in Sekunden zum Laden der zuletzt in svBlindsListPrev gespeicherten Werte (0: kein Zeitfenster) +++++ integer loadPeriod = 1000;  ! ++++
 Namen der für die Besc
Apr 16 19:12:20 homematic-raspi local0.err ReGaHss: ERROR: ScriptRuntimeError: ! Skript zur zentralen Beschattungssteuerung zBSS ! Achtung: zur Berücksichtigung der Korrekturwerte dürfen sich die Beschattungsnamen nur durch den Ausdruck ! "closureBlinds" von den Namen der Fenster und Türen unterscheiden, z.B. für closureBlinds = "Rollladen" ! Fenstername: "EG Wohnzimmer Fenster" <-> Rollladenname: "EG Wohnzimmer Rollladen Fenster" ! Version 2.0.5beta, Autor: dtp  ! +++++ Charakteristische Bezeichnung der 
eschattungsgeräte +++++ string closureBlinds = "Rollladen";  string closureAwnings = "Markise";  ! +++++ Ausfahrwert für Markisen invertieren (true: ja, false: nein) +++++ boolean invertAwnings = true;  ! +++++ Korrekturwerte im Falle gekippter oder geöffneter Fenster und Türen (true: Offset, false: Absolut) +++++ boolean offsetFlag = true;  ! +++++ Erlaubtes Zeitfenster in Sekunden zum Laden der zuletzt in svBlindsListPrev gespeicherten Werte (0: kein Zeitfenster) +++++ integer loadPeriod = 1000;  ! ++++
 Namen der für die Besc
Ich werde dann mal die Startscripte anpassen.

Den Rest später

Gruß
Martin
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200

MartinBr
Beiträge: 393
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 8 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von MartinBr » 16.04.2019, 19:45

Ich habe doch noch das Script gestartet.

Ergebnis:
Alle EnOcean lassen sich darüber rauf und runter fahren.
Negativ: Der Lock Parameter funktioniert hier nicht. Das Rollo fährt danach, auch bei Handsteuerung nur in 10% Schritten.

Der BROLL fährt überhaupt nicht hoch oder runter.
Edit: Der BROLL erscheint auch nicht in der Pushmeldung

Ich muss jetzt erstmal den Lock aus einem Aktor wieder rausbringen.
Edit: Ist gelöst, Parameter "unlock" auf den Aktor gesetzt.

Gruß
Martin
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200

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

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von dtp » 17.04.2019, 07:20

Hallo Martin,
MartinBr hat geschrieben:
16.04.2019, 19:45
Ich habe doch noch das Script gestartet.
Welches? 8)
MartinBr hat geschrieben:
16.04.2019, 19:45
Alle EnOcean lassen sich darüber rauf und runter fahren.
Das ist schon mal gut.
MartinBr hat geschrieben:
16.04.2019, 19:45
Negativ: Der Lock Parameter funktioniert hier nicht. Das Rollo fährt danach, auch bei Handsteuerung nur in 10% Schritten.
Das hatte ich ehrlich gesagt auch gar nicht erwartet, weil ich nicht weiß, ob diese Funktion von den EnOcean-Aktoren über CUxD überhaupt unterstützt wird. Scheint aber zumindest in Ansätzen so zu sein. Aber ich bräuchte hier die genauen von CUxD angelegten Datenpunkte, um das sauber implementieren zu können.
MartinBr hat geschrieben:
16.04.2019, 19:45
Ich muss jetzt erstmal den Lock aus einem Aktor wieder rausbringen.
Edit: Ist gelöst, Parameter "unlock" auf den Aktor gesetzt.
Da bin ich aber froh, dass das darüber funktioniert hat.

MartinBr hat geschrieben:
16.04.2019, 19:45
Der BROLL fährt überhaupt nicht hoch oder runter.
Edit: Der BROLL erscheint auch nicht in der Pushmeldung
Frage: Gibt es denn einen Hinweis in der Push-Meldung, dass der Gerätename nicht existiert? Wenn nicht, dann liegt das Problem an anderer Stelle.
MartinBr hat geschrieben:
16.04.2019, 19:23
Dann habe ich jeweils einen EnOcean und den Broll über das zweite Script angesteuert.

Ergebnis: Es funktioniert.
Das heißt, dass es grundsätzlich schon mal funktioniert. Ich muss wohl noch mal prüfen, ob dem Aktor im zBSS wirklich ein real-Wert übergeben wird.

Vielleicht kaufe ich mir nach Ostern doch mal einen BROLL zum Probieren. Oder ich bekomme ihn anderweitig. Schaun mer mal.

Bis dann,

Thorsten
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.

MartinBr
Beiträge: 393
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 8 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von MartinBr » 17.04.2019, 14:07

dtp hat geschrieben:
17.04.2019, 07:20
Hallo Martin,
MartinBr hat geschrieben:
16.04.2019, 19:45
Ich habe doch noch das Script gestartet.
Welches? 8)
Antwort: Das zBSP Version 2.05Beta und mein Testscript. Das hatte ich schon mal gepostet.
MartinBr hat geschrieben:
16.04.2019, 19:45
Alle EnOcean lassen sich darüber rauf und runter fahren.
Das ist schon mal gut.
MartinBr hat geschrieben:
16.04.2019, 19:45
Negativ: Der Lock Parameter funktioniert hier nicht. Das Rollo fährt danach, auch bei Handsteuerung nur in 10% Schritten.
Das hatte ich ehrlich gesagt auch gar nicht erwartet, weil ich nicht weiß, ob diese Funktion von den EnOcean-Aktoren über CUxD überhaupt unterstützt wird. Scheint aber zumindest in Ansätzen so zu sein. Aber ich bräuchte hier die genauen von CUxD angelegten Datenpunkte, um das sauber implementieren zu können.

Antwort: Doch funktioniert!! Ich musste nur Unlock eingeben! :D

MartinBr hat geschrieben:
16.04.2019, 19:45
Ich muss jetzt erstmal den Lock aus einem Aktor wieder rausbringen.
Edit: Ist gelöst, Parameter "unlock" auf den Aktor gesetzt.
Da bin ich aber froh, dass das darüber funktioniert hat.

MartinBr hat geschrieben:
16.04.2019, 19:45
Der BROLL fährt überhaupt nicht hoch oder runter.
Edit: Der BROLL erscheint auch nicht in der Pushmeldung
Frage: Gibt es denn einen Hinweis in der Push-Meldung, dass der Gerätename nicht existiert? Wenn nicht, dann liegt das Problem an anderer Stelle.
Antwort: Leider nicht, der wird überhaupt nicht erwähnt.
MartinBr hat geschrieben:
16.04.2019, 19:23
Dann habe ich jeweils einen EnOcean und den Broll über das zweite Script angesteuert.

Ergebnis: Es funktioniert.
Das heißt, dass es grundsätzlich schon mal funktioniert. Ich muss wohl noch mal prüfen, ob dem Aktor im zBSS wirklich ein real-Wert übergeben wird.

Vielleicht kaufe ich mir nach Ostern doch mal einen BROLL zum Probieren. Oder ich bekomme ihn anderweitig. Schaun mer mal.

Bis dann,

Thorsten
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200

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

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von dtp » 17.04.2019, 16:42

Wenn du magst, kannst du es noch mal mit der Version 2.0.6beta versuchen. Die hat gegenüber der 2.0.5beta zwei kleinere Änderungen erfahren.

Vielleicht kann ich das Skript demnächst mit einem "eigenen" BROLL testen. Das würde einiges vereinfachen, denke ich.
Zuletzt geändert von dtp am 30.04.2019, 15:53, 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.

MartinBr
Beiträge: 393
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 8 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von MartinBr » 17.04.2019, 17:20

Hallo Thorsten,
du bist ja fleißig dabei :D

Ich werden Morgen meine CCU mal komplett durchstarten, so dass ich beruhigt in Urlaub fahren kann.

Am 27.4. kann (und werde) ich dann weiter testen.

Vielen Dank hier für deine Arbeit.

Frohe Osten

Martin
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200

Saschag
Beiträge: 87
Registriert: 23.03.2015, 22:45
Hat sich bedankt: 5 Mal
Danksagung erhalten: 2 Mal

Re: Howto - zentrales Beschattungssteuerungsprogramm (zBSP) V1.2

Beitrag von Saschag » 19.04.2019, 22:23

Siehe unten
Zuletzt geändert von Saschag am 20.04.2019, 23:05, insgesamt 1-mal geändert.

Antworten

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