DALI4net via Modbus TCP

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    #16
    Bei der Inbetriebnahme des Teststands wurde im DALI Cockpit die aktuelle Buskonfiguration ausgelesen. Der Lunatone Dali CW-WW DT8 LED Dimmer wurde auf Anhieb korrekt erkannt und die Leuchte ließ sich über die verschiedenen Cockpit Steuerelemente problemlos ein- und ausschalten, dimmen oder in der Farbtemperatur warmweiß-kaltweiß einstellen.

    Nach einigem Herumprobieren gelang es mir dann auch mit dem QModMaster mittels Function Code 03 den aktuellen Istwert für die Dimmung des DT8 Steuergeräts auszulesen:

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: QModMaster_100%.png Ansichten: 0 Größe: 62,6 KB ID: 213063

    Merkwürdigerweise hat der DALI Bus 2 die Slave Adresse 4 (siehe das QModMaster-Fenster, das über das DALI-Cockpit-Fenster gelegt wurde). Register 9000 passt zur Adresse A0 (erste Adresse in diesem DALI Bus). Der Ist-Wert von 254 entspricht 100% Leistung des Dimmers und wird genauso auch unter "Actual Level" im DALI Cockpit angezeigt. Hier sind noch die Lese-Ergebnisse dieses Registers für 0% und 50% Leistung des Dimmers (wie man erkennt, wird nicht linear gedimmt):

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: QModMaster_0% und 50%.png Ansichten: 0 Größe: 47,8 KB ID: 213064

    Beim QModMaster sind keine höheren Functioncodes als 10 einstellbar (zumindest habe ich nicht herausgefunden, wie). Ein Schreiben von DALI4net-Registern ist somit mit dem QModMaster nicht möglich, da für das DALI4net hierfür die Functioncodes 16 oder 23 benötigt werden.
    Daher bin ich zum Simply Modbus TCP Client gewechselt, der frei einstellbare Functioncodes unterstützt, allerdings in der Testversion nach jeweils 6 Lese- oder 2 Schreibbefehlen stets neu gestartet werden muss. Das Auslesen mittels Functioncode 03 bei einer Dimmerleistung von 0,449% sieht wie folgt aus:

    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Simply Modbus Read 0,449%.png Ansichten: 0 Größe: 85,5 KB ID: 213065

    Ich konnte auch mittels Functioncode 23 den gleichen Registerwert überschreiben (zumindest wurde der Schreibbefehl ohne Fehler angenommen und auch als erfolgreich beantwortet), aber das ist natürlich nicht wirklich sinnvoll, da dieses Register nur zum Lesen vorgesehen ist und der Schreibvorgang somit keinen erkennbaren Einfluss auf die Funktion des Steuergeräts hat. Laut DALI4net Manual ist das Register 100 zum Schreiben von DALI-Befehlen zu nutzen.

    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Simply Modbus Write Register 9000 unsucessfull.png
Ansichten: 892
Größe: 86,7 KB
ID: 213067

    Zuletzt geändert von Gast; 19.09.2019, 20:03.

    Kommentar

    • Gast

      #17
      Da die Beschreibung der Modbus TCP Befehle im DALI4net Manual keine Beispiele enthält, ist es nicht gerade selbsterklärend, wie man diese zu bilden hat. Daher bin ich folgendermaßen vorgegangen:

      Im DALI Cockpit ist es möglich, einzelne Befehle (oder auch Befehlssequenzen) an alle Steuergeräte (Broadcast), Gruppen von Steuergeräten oder einzelne Steuergeräte (Einzeladresse) zu senden:

      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: DALI Cockpit Befehle.png Ansichten: 0 Größe: 84,0 KB ID: 215184


      Das DALI-Cockpit sendet diese Befehle als Modbus TCP Kommandos an das DALI4net. Diese Kommandos habe ich mit Wireshark abgefangen und analysiert. Dazu habe ich zunächst in Wireshark die WLAN Schnittstelle zum Beobachten ausgewählt:


      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Wireshark_01_Schnittstelle_wählen.png Ansichten: 0 Größe: 28,8 KB ID: 215185


      Nun habe ich mit dem DALI Cockpit einen DALI Befehl gesendet, der auch in Wireshark erscheint. Über die IP-Adresse des DALI4net habe ich die von Wireshark anzuzeigenden Datenpakete gefiltert. Somit werden mir nur noch die Pakete des DALI4net angezeigt:


      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Wireshark_02_Signale_filtern.png Ansichten: 0 Größe: 67,6 KB ID: 215186


      Nun habe ich mit dem DALI Cockpit Befehle an das Steuergerät mit der Adresse A1 im DALI Bus 2 gesendet und mir diese in Wireshark angeschaut. Zum Senden von DALI-Befehlen an das DALI4net wird der Function Code 23 verwendet. Dieser Befehl besteht aus zwei Einzelbefehlen: Zunächst wird Register 101 gelesen und anschließend Register 100 geschrieben. Letzteres ist der eigentliche Befehl zum Ansteuern einer Leuchte (bzw. ihres Steuergeräts).

      Im folgenden Bild wird zunächst die Struktur dieses Befehls durch Gegenüberstellung mit der Tabelle "Read/Write registers (FC23)" aus dem DALI4net Manual kenntlich gemacht:


      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: FC23 Send DALI Command.png Ansichten: 0 Größe: 108,4 KB ID: 215187

      Mit dem FC23 werden hier also zuerst 5 Bytes aus dem Register 101 ausgelesen und anschließend 12 Bytes in das Register 100 geschrieben. Die eigentlichen Daten, die mit dem DALI-Befehl in das Register 100 geschrieben werden (im Bild oben gold markiert) habe ich mir durch Gegenüberstellung mit den Angaben aus Abschnitt 4.6.4 "Register 100 – Write DALI-Command" des DALI4net Manuals und einigem Herumprobieren erschlossen. Das folgende Bild zeigt den Befehl "Direct Arc Power" (= Einschalten) der Leuchte mit dem Steuergerät mit der Adresse A1 mit einer Helligkeit von 199:


      Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Register 100 Write DALI Command.png Ansichten: 0 Größe: 176,9 KB ID: 215188

      Das Byte 3 mit dem Wert 03 sagt uns, das ein 16 Bit DALI Kommando gesendet wird und die zwei mal 8 Bit Daten in den Bytes 6 (DATA Mid) und 7 (DATA Low) liegen.

      Die Adressierung des Steuergeräts ist in Byte 6 enthalten. Dabei gibt es für jede Adresse im Bus zwei Werte, die jeweils ON oder OFF bedeuten, insgesamt also bei 64 Adressen pro DALI-Bus 128 verschiedene Werte (00 bis 7F) zum Ein- und Ausschalten.

      Die Helligkeit, mit der die Leuchte angesteuert werden soll, wird durch Byte 7 vorgegeben. Beim Einschalten (Direct Arc Power) können Werte zwischen 0 und 254 vorgegeben werden. Beim Ausschalten (OFF) hat das Byte 7 immer den Wert 00.
      Zuletzt geändert von Gast; 07.10.2019, 09:45.

      Kommentar

      • Gast

        #18
        Ich freue mich über das Erreichen des nächsten Meilensteins: Es ist mir gelungen, die Befehle des DALI-Cockpit nachzubilden und mittels selbst erzeugter Modbus-Befehle an das DALI4net Leuchten zu steuern.

        Zunächst war ich daran gescheitert, mittels Simply Modbus TCP Client den Befehl mit dem Functioncode 23 (vgl. vorheriger Post) zu erzeugen.

        Nach einigem Herumrätseln und -probieren hat es jedoch mit IO Ninja funktioniert (Vielen Dank an Vladimir Gladkov für den freundlichen Support!). IO Ninja erlaubt, frei konfigurierbare Pakete über alle möglichen Schnittstellen zu senden. Ich bin wie folgt vorgegangen:

        Zunächst habe ich im DALI-Cockpit die Leuchte mit der Adresse A2 mittels "Direct Arc Power" mit einer Helligkeit von 11.57% (Helligkeitsstufe 175 = AF hex) eingeschaltet und den Modbus-Befehl an das DALI4net mit Wireshark abgefangen:

        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: ON-Befehl_vom_DALICockpit_an_DALI4net.png Ansichten: 0 Größe: 70,4 KB ID: 216171

        Anschließend habe ich diesen Hex- Befehl in Wireshark ab dem TCP Transaction Identifier (512 = 0200 hex) kopiert.


        In IO Ninja habe ich eine Session mit dem TCP Connection Socket eröffnet, mich mit dem DALI4net über die IP-Adresse und den Port 502 verbunden und dann den kopierten Hex-Befehlsausschnitt im Tab "Binary" des Transmit-Moduls eingefügt, wobei ich den TCP Transaction Identifier auf 528 (02 10 hex) hochgezählt habe (was aber nicht notwendig gewesen wäre). Diesen Befehl habe ich dann mit IO-Ninja gesendet und er wurde vom DALI4net korrekt erkannt, d.h. die Leuchte wurde exakt so geschalten wie vorher vom DALI-Cockpit. Auch in Wireshark wurde der Befehl korrekt als Modbus TCP-Befehl identifiziert:


        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: ON-Befehl_von_IO_Ninja_an_DALI4net.png Ansichten: 0 Größe: 116,4 KB ID: 216172

        Somit sollte es nun möglich sein, jeden DALI-Befehl mittels DALI-Cockpit und Wireshark auszulesen, den zugehörigen Modbus TCP Befehl zu bilden und mittels IO Ninja im Teststand zu testen. Diese Befehle sollte man dann analog auch vom Loxone Miniserver versenden und damit die DALI-Leuchten schalten können. Das würde ich dann demnächst testen, wenn ich den Versuchsstand um einen Miniserver erweitert habe.
        Zuletzt geändert von Gast; 13.10.2019, 20:35.

        Kommentar

        • SebastianG
          Dumb Home'r
          • 27.05.2018
          • 10

          #19
          Hallo Gast ich schätze dein Engagement sehr, da ich genau den gleichen Weg beschreiten möchte und das Thema pausiert habe als ich noch nicht mal die Modbus-Kommunikation von Lunatone und Loxone zueinander übersetzen konnte. Dabei habe ich unseren Neubau vollständig auf DALI ausgelegt: DALI Leuchtmittel sind von Molto Luce installiert, BWM sind von Lunatone vorhanden (wobei mich das Modbus-Abfrageintervall von 5sek nun sehr erschreckt - gerne hätte ich die Dali-BWM von Loxone auswerten lassen und dann von Loxone das Dali-Licht schalten lassen - aber 3-10 Sek Verzögerung sind zu lange - daher überlege ich die Dali-BMW direkt mit den DALI-Steuerungen sprechen zu lassen). In der Zentrale ist Dali4Net installiert. In etwa 2 Wochen werde ich deine bisherigen Tipps aufgreifen und einen neuen Anlauf versuchen. Ich melde meinen Fortschritt gerne hier zurück. Wenn ich etwas bei mir testen soll, ist das auch gerne möglich.
          Hoffentlich erschließt sich aus wenigen Wireshark traces sehr bald eine Modbus-Übersetzungstabelle

          Vielen Dank für deine bisherige Forschungsarbeit ;-)

          Kommentar


          • Gast
            Gast kommentierte
            Kommentar bearbeiten
            Hi Sebastian, danke für deine Rückmeldung. Ich glaube, dass die härtesten Nüsse geknackt sind, also herauszufinden, welcher Modbus Befehl eine einzelne Adresse einer Leuchte ein- und ausschaltet bzw. dimmt. Eigentlich kannst du mit den Infos oben schon mal probieren mit dem Miniserver via Modbus zu schalten. Ich werde auch auf jeden Fall ein DALI System für das Licht installieren. Ich bekomme hoffentlich demnächst mal einen Miniserver, dann kann ich das Gesamtsystem testen und hier dokumentieren. Ich werde, wo möglich, die Sensoren direkt über Tree an Loxone anbinden um eine sofortige Reaktion zu erhalten. Allerdings kommen die Loxone BWM nicht überall infrage, da sie nicht so gut für eine Wandmontage geeignet sind (Haustiere). Es gibt aber z.B. von EPV geeignete Präsenzmelder, die sich über einen analogen (Helligkeit) und einen digitalen (Präsenz) Eingang direkt in Loxone einbinden lassen (es lassen sich da auch mehrere Sensoren eines Raumes gruppieren und auf einen gemeinsamen Eingang schalten). LG
        • Gast

          #20
          Nach längerer Pause habe ich nun meinen Teststand um einen Loxone Miniserver (MS) Gen 2, einen Touch Tree Taster, einen Bewegungsmelder Tree, zwei DALI Dimming Panels und einen DALI-RGBWW-Treiber aus der MiBoxer Serie erweitert. Später sollen noch weitere Elemente wie z. B. ein occy Smarthome Präsenzmelder hinzukommen. Letzterer soll in Durchgangsbereichen in horizontaler Ausrichtung zum Einsatz kommen, damit er nicht so leicht wie ein BWM an der Decke durch eine Katze ausgelöst wird (falls es dafür bessere Lösungen gibt, würde ich mich über einen entsprechenden Kommentar freuen).

          Klicke auf die Grafik für eine vergrößerte Ansicht  Name: IMAG5674.jpg Ansichten: 0 Größe: 2,22 MB ID: 234887

          Zunächst hatte ich probiert, das DALI4net über die vorhandene Modbus TCP Schnittstelle des MS anzusprechen. Diese scheint jedoch dafür ungeeignet, da sie nicht erlaubt einen Modbus Befehl mit dem Function Code 23 zu senden, den man für das DALI4net braucht. Auch ist die mögliche Befehlssyntax ziemlich eingeschränkt.

          Stattdessen ist es mir gelungen, das DALI4net mittels Modbus TCP über einen virtuellen Ausgang anzusteuern und somit meine Lampe über den Loxone MS ein- und auszuschalten.

          Dazu habe ich zunächst den virtuellen Ausgang unter Angabe der internen IP-Adresse des DALI4net (TCP Protokoll vorher und Port dahinter) wie folgt angelegt:

          Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Virtueller Ausgang für DALI4net.jpg Ansichten: 6 Größe: 74,6 KB ID: 234892

          Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Virtueller Befehl DALI4net.jpg Ansichten: 0 Größe: 160,8 KB ID: 234907

          Der Befehl zum Einschalten ist nun genauso aufgebaut wie in Beitrag #17 beschrieben, nur das Loxone verlangt, das jedem Byte ein "\x" als Kennung, dass es sich um einen Hex-Wert handelt, vorangestellt wird.

          Den virtuellen Ausgang habe ich dann im LoxConfig-Testmodus über einen virtuellen Eingang ein- und ausgeschaltet.

          Das Ziel einer Integrierung des DALI4net in Loxone scheint also realisierbar.
          Zuletzt geändert von Gast; 12.02.2020, 12:55.

          Kommentar

          • Gast

            #21
            Bevor ich im Detail Lösungen für einzelne Aufgaben der Lichtsteuerung mittels dali4net in einer Loxone Umgebung vorschlage, möchte ich meine Ziele für die Lichtsteuerung vorstellen (über Kommentare und Verbesserungsvorschläge von euch würde ich mich freuen). Aktuell schwebt mir folgendes Konzept vor:

            Abhängig vom Sonnenstand oder speziellen Ereignissen wird ein Betriebsmodus aktiviert, z.B.
            ○ Nacht
            ○ Morgen / Abend
            ○ Vormittag / Nachmittag
            ○ Mittag
            ○ Feueralarm
            ○ Einbruch (bei Haus im Abwesenheitsmodus)

            Für jeden Betriebsmodus wird eine passende Lichtstimmungen definiert

            Beim Einschalten des Lichts über BWM oder Schalter wird die Lichtstimmung aktiviert, die dem Betriebsmodus entspricht.

            Mit der Haupttaste am Touch kann zwischen den sonnenstandsabhängigen Stimmungen gewechselt werden.

            Fortgeschritten: In einem wählbaren Intervall wird je nach Tageszeit eine passende Farbtemperatur berechnet (ähnlich wie hier beim Lunatone
            DALI CDC Circadian Daylight control) und an alle geeigneten Lampen geschickt.

            Eine manuelle Feinjustierung von Lichtfarbe und Dimmung erfolgt bei Bedarf für ausgewählte Leuchten über ein oberhalb der Loxone Touch angeordnetes DALI Dimming Panel. Dies erlaubt zudem das Licht einzuschalten, wenn der Loxone Miniserver einmal nicht arbeiten sollte.

            Zum Einsatz kommt überwiegend weißes Licht mit veränderlicher Farbtemperatur über Wand- und Deckenleuchten und zumeist indirekte abstrahlende LED Streifen sowie vereinzelt RGBWW Streifen.
            Zuletzt geändert von Gast; 19.02.2020, 22:54.

            Kommentar

            • Gast

              #22
              Vor der Erarbeitung von Lösungen für meine konkrete Lichtsteuerung möchte ich noch einzelne DALI-Befehle darstellen um die Strukturen sichtbar zu machen. Dazu gehe ich wie folgt vor:
              1. Absenden eines Einzelbefehls aus dem DALI-Cockpit / DALI Bus / DALI-Befehle wie unter Beitrag 17 beschrieben
              2. Befehl mit Wireshark abfangen (wie im gleichen Beitrag beschrieben)
              3. Hex-Befehl aus Wireshark kopieren (re. Maus / Bytes as Hex Dump)
              4. Hex-Befehl in die angehängte Excel-Datei (Virtueller Ausgangsbefehl DALI4net.zip) einfügen. Dort kann er mit einem zweiten Befehl verglichen werden wobei die Unterschiede markiert werden. Die Excel-Datei erzeugt auch gleich den Befehl für den virtuellen Ausgang in Loxone.

              Beispiel:
              • Befehl 1: Einschalten (Direct ARC POWER) der Leuchte mit Adresse A1 im DALI-Bus 2 mit einem Helligkeitswert von 16%
              • Befehl 2: Einschalten (Direct ARC POWER) der Leuchte mit Adresse A1 im DALI-Bus 2 mit einem Helligkeitswert von 80%

              Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Vergleich DIRECT ARC POWER 16% und 80%.jpg Ansichten: 0 Größe: 297,9 KB ID: 235495

              Der Vergleich im Excel ergibt:

              Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Vergleich Excel DIRECT ARC POWER 16% und 80%.jpg Ansichten: 0 Größe: 166,7 KB ID: 235496

              Man erkennt, dass sich neben den formalen Parametern der Befehls-Header Transaction Identifier und Sequence Number nur die Helligkeit verändert hat.
              Zuletzt geändert von Gast; 15.02.2020, 12:39.

              Kommentar

              • Gast

                #23
                Befehl: UP Wirkung: Erhöht die Helligkeit um 18 Stufen
                Verwendete Position im Modbus-Befehl: Dali Mid = 2. DALI-Adresse der Leuchte, Dali Low = 1

                Anmerkung: Im Excel-File steht bei Dali Mid als Kommentar noch "Helligkeit". Das gilt aber nur für den Befehl DIRECT ARC POWER. Bei anderen Befehlen wird das Feld für andere Parameter genutzt.

                Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Befehl UP.jpg Ansichten: 0 Größe: 236,1 KB ID: 235521


                Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Befehl DOWN.jpg Ansichten: 0 Größe: 139,2 KB ID: 235524


                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Befehl RECALL MAX LEVEL.jpg
Ansichten: 778
Größe: 315,8 KB
ID: 235531

                Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Befehl RECALL MIN LEVEL.jpg
Ansichten: 777
Größe: 317,9 KB
ID: 235532
                Zuletzt geändert von Gast; 15.02.2020, 11:41.

                Kommentar

                • Gast

                  #24
                  Es lassen sich im DALI-Cockpit noch wesentlich fortgeschrittenere und komplexe Befehle - sowie zeitgesteuerte Befehlssequenzen - senden. Die Modbus-Befehle dafür spare ich mir an dieser Stelle, da sie keine direkte Auswirkung auf meine einzelne Leuchte haben (bei Bedarf kann ich ja darauf zurückkommen). Zur Information sind sie in folgender Übersicht aufgeführt:

                  Klicke auf die Grafik für eine vergrößerte Ansicht  Name: All DALI-Cockpit Commands.jpg Ansichten: 11 Größe: 390,6 KB ID: 235541
                  Zuletzt geändert von Gast; 16.02.2020, 22:27.

                  Kommentar

                  • Gast

                    #25
                    Man kann das DALI4net auch mit einem ungeeigneten Modbus-Befehl vom Miniserver aus "abschiessen". Beim Wechsel der Farbtemperatur (z.B. von warm- auf kaltweiß) wird vom DALI-Cockpit eine Kaskade von 13 Modbus-Befehlen an das DALI4net abgefeuert. Beim Herumprobieren konnte ich das DALI4net reproduzierbar mit dem vierten Befehl der erwähnten Kaskade funktionsunfähig machen. Es hat dann das DALI-Netzwerk und die verwendeten DALI-Geräte nicht mehr erkannt. In diesem Fall half nur, das Testboard (bzw. wahrscheinlich das DALI4net) vom Strom zu trennen und anschließend neu zu starten. Der Befehl lautet:

                    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Befehl Abschuss DALI4net.jpg Ansichten: 0 Größe: 182,3 KB ID: 235644

                    Auffällig sind bei diesem Befehl insbesondere die abweichenden Werte in "Control" und "Priority", welche sonst immer Null waren. Möglicherweise ist auch die Kombination der DALI-Adresse 03 (wird zum Ausschalten und für ausgewählte Befehle verwendet - siehe Beitrag 23) mit einem Dali Low Wert von 226 unverträglich. Vielleicht darf der vierte Befehl auch nur nach den drei vorangegangenen und nicht isoliert gesendet werden. Ich tippe auf letzteres, da der Befehl als Teil der Kaskade nicht zu einem Problem geführt hat.
                    Zuletzt geändert von Gast; 16.02.2020, 02:03.

                    Kommentar

                    • Gast

                      #26
                      Der DALI Device Type 8 (DT8) wurde entwickelt, um Leuchten mit weißem Licht veränderlicher Farbtemperatur über einer einzige DALI-Adresse anzusteuern. Das kann man im DALI-Cockpit auch sehr komfortabel tun. Allerdings habe ich bisher keinen einzelnen DALI-Befehl gefunden, mit dem ich die Farbtemperatur direkt manipulieren könnte. Stattdessen wird offenbar wie oben beschrieben die Veränderung der Farbtemperatur über eine Kaskade von Befehlen umgesetzt, was sich bisher für eine Steuerung aus Loxone als recht unpraktisch und auch nicht gerade trivial darstellt. Hinzu kommt, dass weder die für den Einsatz vorgesehenen DALI-Treiber noch die zugehörigen Dimming-Panels von MiBoxer DT8-fähig sind.

                      Daher werde ich zunächst mit der Steuerung für DT6-Geräte beginnen. Bei DT6 wird für jede Lichtfarbe eine eigene DALI-Adresse benötigt, im Fall von Weiß veränderlicher Farbtemperatur also eine Adresse für Warmweiß (WW) und eine für Kaltweiß (CW). Mit DT6-Geräten werden für die Ansteuerung von Tunable-White-Leuchten also doppelt so viele Adressen benötigt wie für solche mit DT8. Glücklicherweise spielt das DALI4net hier eine seiner Stärken aus: Uns stehen mit nur einem Gerät vier DALI-Busse mit insgesamt 256 Adressen zu Verfügung - mehr als genug für einen Haushalt selbst mit sehr vielen Leuchten.

                      Die Lichtstimmungen lege ich zunächst einmal willkürlich wie folgt fest (sind später im realen Objekt zu optimieren):

                      Lichtstimmung Helligkeit
                      [%]
                      Farbtemperatur
                      [K]
                      CW
                      [%]
                      WW
                      [%]
                      Nacht (Orientierungslicht) 0,05 2700 0 0,1
                      Morgen/ Abend 6 2700 0 12
                      Vormittag/ Nachmittag 35 4000 28 42
                      Mittag 55 5700 100 10


                      Für die Berechnung der erforderlichen Helligkeitswerte CW und WW starte ich mit folgenden einfachen Ansatz (Wenn jemand einen besseren parat hat, würde ich mich über einen entsprechenden Kommentar freuen):

                      H = (WW + CW)/2 (1)

                      T = (WW*TWW + CW*TCW)/(WW + CW) (2)

                      mit

                      WW….Helligkeit WW in %

                      CW… Helligkeit CW in %

                      H … Helligkeit der Mischung in %

                      TWW…Temperatur WW in K

                      TCW…Temperatur CW in K

                      T … Farbtemperatur der Mischung in K



                      Um aus den gewünschten Parametern Helligkeit H und Farbtemperatur T der Mischung die benötigten Dimmwerte WW und CW zu berechnen, stellen wir (1) um:

                      WW = 2H - CW



                      Für die physischen Eigenschaften der LEDs verwende ich TWW=2700 K und TCW=6000 K. Eingesetzt in (2) ergibt sich damit:

                      CW = H(T-2700)/1650



                      Die in der Tabelle oben angegeben Werte für CW und WW wurden auf diese Weise ermittelt.
                      Zuletzt geändert von Gast; 17.02.2020, 23:45.

                      Kommentar

                      • Gast

                        #27
                        Die Basis-Lichtsteuerung für DALI Tunable White mit DT6-Geräten sieht nun wie folgt aus:

                        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Basis Lichtsteuerung Tunable White DT6.jpg Ansichten: 0 Größe: 111,9 KB ID: 235819

                        Die Lichtstimmungen (LS) sind den Ausgängen AQ1 bis 4 zugeordnet. Für die LS "Nacht" und "Morgen/Abend" wird nur je ein Virtueller-Ausgang-Befehl (VAB) benötigt, da die CW-LEDs nicht zum Einsatz kommen. Für die LS "Vormittag/Nachmittag" und "Mittag" werden je zwei VAB benötigt. Über den Haupttaster des Touch werden die LS nacheinander durchgeschaltet.

                        Der VAB LS "Nacht" sieht wie folgt aus:

                        Klicke auf die Grafik für eine vergrößerte Ansicht  Name: VAB LS Nacht.jpg Ansichten: 12 Größe: 338,2 KB ID: 235821

                        Die relevanten Parameter für die DALI-Befehle für die einzelnen Lichtstimmungen sind in der folgenden Tabelle aufgelistet. Außer Transaction Identifier und Sequence Number, die jeweils hochgezählt werden, sind alle anderen Parameter immer gleich wie in dem oben ausführlich dargestellten Befehl.

                        Lichtstimmung CW WW
                        [%] Dali Mid Dali Low [%] Dali Mid Dali Low
                        Nacht (Orientierungslicht) 0 - - 0,1 08 01
                        Morgen/ Abend 0 - - 12 08 B0
                        Vormittag/ Nachmittag 28 06 CF 42 08 DE
                        Mittag 100 06 FE 10 08 AA
                        Aus 07 00 09 00
                        Zuletzt geändert von Gast; 18.02.2020, 22:24.

                        Kommentar

                        • ledchab
                          LoxBus Spammer
                          • 10.02.2016
                          • 423

                          #28
                          Chapeau! was du hier so machst
                          da ich momentan auch recht viel mit Dali ausprobiere verfolge ich das hier
                          hatte mal bei Loxone wegen DT8 Unterstützung angefragt ... wird wohl drüber nachgedacht aber ansonsten keine Aussage

                          Kommentar


                          • Gast
                            Gast kommentierte
                            Kommentar bearbeiten
                            Dankeschön für die Rückmeldung. Habe gar kein Gefühl dafür, wieviel Leute sich für DALI im Privatbereich interessieren. LG
                        • Gast

                          #29
                          Hier ist eine erste etwas fortgeschrittene Lichtsteuerung. Dabei wird je nach Tageszeit mit einem Klick auf den Touch Mitteltaster immer nur genau die passende Lichtstimmung ein- und ausgeschaltet. Es funktioniert, aber ich kann mir nicht vorstellen, so ein "Ungetüm" mit seinem Programmier- und Rechenaufwand für jede Tunable-White-Leuchte zu nutzen. Sie soll hier nur der Vollständigkeit halber und als Ausgangspunkt für eine elegantere und ressourcenschonendere Lösung dargestellt werden.

                          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Sequenzielle Lichtsteuerung.jpg
Ansichten: 934
Größe: 177,3 KB
ID: 236201


                          Die Impulse oder Schaltuhren ganz links erzeugen jeweils zur gewünschten Zeit einen Impuls, der den Sequenzer in der Endlos-Lichtstimmungsschleife Nacht - Morgen - Vormittag - Mittag - Nachmittag - Abend - Nacht usw. zur jeweils nächsten Position bringt. Der Sequenzer Trigger dient nur zum Testen. Die Lichtstimmungen vom Sequenzer werden mit dem Touch Mittelschalter T3 verundet und auf genau eine Lichtstimmung der Lichtsteuerung aufgeschalten. Die DALI-Befehle sind die gleichen wie in Beitrag 27 beschrieben.

                          Kommentar

                          • Gast

                            #30
                            Eine elegantere Lösung für eine Loxone-DALI Circadian Daylight Control könnte ich mir so vorstellen:
                            • Ein zentraler Berechnungsbaustein ermittelt kontinuierlich die Globalvariablen Helligkeit H und Farbtemperatur T in Abhängigkeit von der Uhrzeit
                            • Für jede Leuchte ermittelt ein Berechnungsbaustein auf der Basis der Globalvariablen H und T sowie der individuellen Variablen der Leuchte (Farbtemperatur der Warmweiß-LED TWW, der Kaltweiß-LED TCW, Anpassungsfaktor für Helligkeit fH und Farbtemperatur fT zur Berücksichtigung von Nutzervorlieben) die erforderlichen Werte für die Helligkeit der beiden Adressen WW und CW.
                            • Transaction Identifier und Sequence Number werden für jede LED-Adresse aus einer Kombination aus Adresse der Leuchte und einem Zähler (z.B. zentrale Zufallszahl) gebildet.
                            • Erhält die Lampe einen Einschaltimpuls, dann werden die Helligkeitsparameter WW und CW sowie Transaction Identifier und Sequence Number per Variable an den Virtueller-Ausgang-Befehl übergeben
                            Mit dieser Variante würden an jedem Lichtbaustein also nur noch je ein Virtueller-Ausgang-Befehl für CW und einer für WW am einzigen erforderlichen Ausgang AQ1 hängen.


                            PS: Einen guten Einstieg in das Thema "Human Centric Lighting" vermittelt dieser Leitfaden von Licht.de.
                            Zuletzt geändert von Gast; 19.02.2020, 22:57.

                            Kommentar

                            Lädt...