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