Howto - zentrales Beschattungssteuerungsprogramm zBSP (per zPNP)
Moderator: Co-Administratoren
-
- 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
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
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
-
- 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) V1.2
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- 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) V1.2
Hier noch mal die Ausgabe eines Testlaufs mit der 2.0.5beta mit folgendem aufrufenden Skript:
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.
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();
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- 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
Hallo Thorsten,dtp hat geschrieben: ↑16.04.2019, 07:19Das 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:
Dann sollte es mit diesem Skript eigentlich auch funktionieren: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); } }
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.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); } }
Ich befürchte, ich muss mir doch noch einen HmIP-BROLL kaufen. Sonst wird das hier im Thread ein zu langes Hin und Her. 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
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
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
-
- 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
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
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
-
- 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) V1.2
Hallo Martin,
Vielleicht kaufe ich mir nach Ostern doch mal einen BROLL zum Probieren. Oder ich bekomme ihn anderweitig. Schaun mer mal.
Bis dann,
Thorsten
Welches?
Das ist schon mal gut.
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.
Da bin ich aber froh, dass das darüber funktioniert hat.
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.
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- 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
dtp hat geschrieben: ↑17.04.2019, 07:20Hallo Martin,
Welches?
Antwort: Das zBSP Version 2.05Beta und mein Testscript. Das hatte ich schon mal gepostet.
Das ist schon mal gut.
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!
Da bin ich aber froh, dass das darüber funktioniert hat.
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.
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
-
- 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) V1.2
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.
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.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- 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
Hallo Thorsten,
du bist ja fleißig dabei
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
du bist ja fleißig dabei
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