Moin,
da ich zu meinem Vorhaben nicht wirklich viel gefunden habe, dachte ich mir, ich stelle meine aktuelle Sonntagsbastelei hier kurz vor. Natürlich mit dem Hintergedanken, dass sie unter Euren kritischen Augen nur besser werden kann und dass der eine oder andere vielleicht auch etwas damit anfangen kann.
Zuerst mal kurz zum Problem:
RGB LEDs werden via DALI vom MDT Dali Gateway gesteuert. Die Ansteuerung erfolgt über 3Byte RGB. Das Gateway kann alternativ auch HSV, aber nicht beides gleichzeitig.
Ein BJE Comfort Panel und MDT Glastaster 2 sollen jeweils die Steuerung übernehmen. Hier liegt das Problem: BJE spricht nur RGB, die Glastaster nur HSV.
Also erstmal die Items konfigurieren:
Schritt 1:
Der Glastaster verändert die Werte für Hue, Saturation und Value nicht als Wertedimmer, sondern über normale 4 Bit Diagramme. Also habe ich erstmal drei virtuelle Dimmer als Logiken gebaut. Ich zeige hier nur Hue und Saturation, Value ist ja dasselbe Vorgehen wie Saturation.
Wie ihr seht, habe ich mir künstliche Hilfe geholt. Für einen Wenig-Programmierer wie mich ein echter Segen.
Ich mache mich jetzt an die Umrechnung, ihr könnt bis hier ja gerne schonmal Feedback geben
Beste Grüße
Unknown User
da ich zu meinem Vorhaben nicht wirklich viel gefunden habe, dachte ich mir, ich stelle meine aktuelle Sonntagsbastelei hier kurz vor. Natürlich mit dem Hintergedanken, dass sie unter Euren kritischen Augen nur besser werden kann und dass der eine oder andere vielleicht auch etwas damit anfangen kann.
Zuerst mal kurz zum Problem:
RGB LEDs werden via DALI vom MDT Dali Gateway gesteuert. Die Ansteuerung erfolgt über 3Byte RGB. Das Gateway kann alternativ auch HSV, aber nicht beides gleichzeitig.
Ein BJE Comfort Panel und MDT Glastaster 2 sollen jeweils die Steuerung übernehmen. Hier liegt das Problem: BJE spricht nur RGB, die Glastaster nur HSV.
Also erstmal die Items konfigurieren:
Code:
# wz_voute.yaml %YAML 1.1 --- wohnzimmer: voute: schalten: name: Voute schalten type: bool knx_dpt: 1.001 knx_send: 2/0/18 knx_listen: 2/0/20 dimmen: name: Voute dimmen type: foo knx_dpt: 3.007 knx_send: 2/0/19 absolut: name: Voute absolut dimmen type: num knx_dpt: 5.001 knx_send: 2/0/23 knx_listen: 2/0/24 rgb: name: Voute RGB-Wert type: num knx_dpt: 232.600 knx_send: 2/0/21 knx_listen: 2/0/22 hue_wert: name: Voute Farbton type: num knx_dpt: 5.003 knx_send: 2/0/30 hue_dimmen: name: Voute Farbton relativ type: foo knx_dpt: 3.007 knx_listen: 2/0/31 sat_wert: name: Voute Sättigung type: num knx_dpt: 5.001 knx_send: 2/0/32 sat_dimmen: name: Voute Sättigung relativ type: foo knx_dpt: 3.007 knx_listen: 2/0/33 val_wert: name: Voute Helligkeit type: num knx_dpt: 5.001 knx_send: 2/0/34 val_dimmen: name: Voute Helligkeit relativ type: foo knx_dpt: 3.007 knx_listen: 2/0/35
Der Glastaster verändert die Werte für Hue, Saturation und Value nicht als Wertedimmer, sondern über normale 4 Bit Diagramme. Also habe ich erstmal drei virtuelle Dimmer als Logiken gebaut. Ich zeige hier nur Hue und Saturation, Value ist ja dasselbe Vorgehen wie Saturation.
Code:
#!/usr/bin/env python3 # # This file contains a logic for use with SmartHomeNG # # Name of the logic: wz_dimmer_h.py # # This logic performs the following function(s): # # Aktualisiert den DPT 5.003 Hue Wert über ein 3.007 Telegramm # von Gentlemanunlike und ChatGPT # The following triggers should be defined in ../etc/logic.yaml: # watch_item ist das jeweilige Dimmtelegramm # watch_item = wohnzimmer.voute.hue_dimmen # # Variablenkonfiguration Wert = sh.wohnzimmer.voute.hue_wert() #Wert der gedimmt werden soll Schritt = sh.wohnzimmer.voute.hue_dimmen() #Dimmtelegramm Schrittweite = 3 #Dimmgeschwindigkeit # Dimmfunktion def rel_dimmen(Wert, Schritt, Schrittweite): # Berechnen des Dimmwerts basierend auf dem Schritt if Schritt == 0: return Wert # Keine Änderung # Dimmwert verringern if Schritt < 8: neuer_wert = Wert - Schrittweite return neuer_wert % 256 # Zyklisch durchlaufen # Dimmwert erhöhen elif Schritt < 15: neuer_wert = Wert + Schrittweite return neuer_wert % 256 # Zyklisch durchlaufen # Maximale Helligkeit else: return Wert # Keine Änderung neuer_wert = rel_dimmen(Wert, Schritt, Schrittweite) sh.wohnzimmer.voute.hue_wert(neuer_wert)
Code:
#!/usr/bin/env python3 # # This file contains a logic for use with SmartHomeNG # # Name of the logic: wz_dimmer_s.py # # This logic performs the following function(s): # # Aktualisiert den DPT 5.001 Sat Wert über ein 3.007 Telegramm # von Gentlemanunlike und ChatGPT # The following triggers should be defined in ../etc/logic.yaml: # watch_item ist das jeweilige Dimmtelegramm # watch_item = wohnzimmer.voute.sat_dimmen # # Variablenkonfiguration Wert = sh.wohnzimmer.voute.sat_wert() #Wert der gedimmt werden soll Schritt = sh.wohnzimmer.voute.sat_dimmen() #Dimmtelegramm Schrittweite = 3 #Dimmgeschwindigkeit # Dimmfunktion def rel_dimmen(Wert, Schritt, Schrittweite): # Berechnen des Dimmwerts basierend auf dem Schritt if Schritt == 0: return Wert # Keine Änderung # Dimmwert verringern if Schritt < 8: return Wert - Schrittweite if Wert >= Schrittweite else 0 # Dimmwert erhöhen elif Schritt < 15: return Wert + Schrittweite if Wert + Schrittweite <= 100 else 100 # Maximale Helligkeit else: return Wert # Keine Änderung neuer_wert = rel_dimmen(Wert, Schritt, Schrittweite) sh.wohnzimmer.voute.sat_wert(neuer_wert)
Ich mache mich jetzt an die Umrechnung, ihr könnt bis hier ja gerne schonmal Feedback geben
Beste Grüße
Unknown User
Kommentar