Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Art-Net

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Art-Net

Geplant Angeheftet Gesperrt Verschoben Tester
144 Beiträge 14 Kommentatoren 29.0k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A Offline
    A Offline
    alexw85
    schrieb am zuletzt editiert von
    #111

    @alexw85:

    ICH HABE FERTIG, ES FUNKTIONIERT !!! :)

    Vergesst alle vorherigen Beiträge, hier nochmal zusammenfassend Anleitung und funktionierender Code der auch das Artnet Modul gescheit beendet :) Würde zwar gerne ein Bewisvideo hochladen, hab extra in VGA aufgenommen, ist aber immer noch zu groß [emoji14] Bitte ausgiebig testen und über evtl. Fehler berichten!

    Ich nenne die Art des Fadens jetzt "asynchrones Fading", ein synchrones werde ich bei Gelegenheit mal mit einbauen im Adapter. Wobei mir das jetzt hier ehrlich gesagt momentan viel besser gefällt… Gerne würde ich auch noch ein paar Cues mit einbauen, bin da nur sehr unkreativ was das angeht. Alle Farben durchlaufen ist natürlich was (und einfach), ein Kaminfeuereffekt hab ich schon mehrfach gelesen, wobei ich jetzt nicht weiß was man sich darunter vorstellt (unkreativ!) :)

    Vorarbeit:

    1. In ioBroker den Javascript Adapter installieren, falls noch nicht geschehen

    2. In den Einstellungen des Javascript Adapters bei zusätzliche NPM-Module artnet reinschreiben (Danke Rainer für den wesentlich einfacheren Weg :) )

    3. Ein neues Script anlegen (Javascript, nicht Blockly) und das hier angehängte Script hineinkopieren.

    4. Eure IP Adresse, das Universe (Standard ist 0) anpassen und starten.

    5. Beim Start werden die States angelegt. (Unter Objekte->Javascript.0->Artnet->UniverseX)

    6. Szene anlegen mit dem Szenenadapter für Rot, Grün, Blau usw. (Wichtig kein Delay, und als virtuelle Gruppe anlegen)

    7. In VIS ein RGB Colorpicker anlegen und bei Rot ID, Grün ID, Blau ID die jeweilige Szene eintragen. Ich empfehle da jetzt erstmal den einfachen Colorpicker RGB spectrum Der "farbtastic" zuckt bei mir nur wild hin und her und die Lampe dann hinterher, momentan keine Ahnung was er für Schmerzen hat?!

    8. Kucken was passiert! :)

    Hier der Code:

    `//################## Hier IP Adresse des Artnet Gateways eintragen #################//
    var options = {
        host : '192.168.178.67',   // Hier die IP Adresse eintragen
        sendAll : true
    };
    var artnet;
    //################ Hier Artnet Universe und Updatefrequenz anpassen ################//
    
    var universe = 1;           // Default Universe ist 0!
    var updatesPerSecond = 25;  // Je nachdem sind hier Werte ab 15 halbwegs flimmerfrei!
    var updateValueSkip = 2;    // Hier können Werte übersprungen werden, default ist 0!
    
    // Standartmäßig wird mit jedem Update ein DMX Wert hoch/runter gezählt, mit updateValueSkip
    // kann ein Wert hinzuaddiert werden: Beispiel: updateValueSkip = 1 -> Es wird mit jedem Update
    // ein Wert + 1 (also 2 *g*) hoch/runter gezählt, somit wird schneller, aber ruppiger gefadet!
    
    //######################## Ab hier ist alles Programmcode! #########################//
    
    var dmx = [];
    var dmxNew = [];
    var dmxOldMinMax = [];
    var dmxNewMinMax = [];
    var processing;
    var timestamp;
    var channel = 1;
    var roundValue;
    
    for (i = 0; i < '513'; i++) { 
        dmx[i] = 'null';
    }
    for (i = 0; i < '513'; i++) { 
        dmxNew[i] = 'null';
    }
    
    var main = function() {
        timestamp = Date.now();
        for (i = 0; i < '513'; i++) {
            try {
                if (getIdByName("DMX_Channel_" + i) !== undefined && i > 0) {
                    //setState("artnet.universe" + universe + "." + "DMX_Channel_" + i, '0', true);
                } else if (i > 0) {
                    createState("artnet.universe" + universe + "." + "DMX_Channel_" + i , {
                        name: 'DMX_Channel_' + i,
                        type: 'int',
                        role: 'value',
                        def: 0,
                        });
                    }
                }   catch(e){}
            }
            return updateValues();
    };
    
    var updateValues = function() {
        on({id: /^javascript\.\d\.artnet.universe/, change: "ne"}, function (obj) {
            var DMXAddress = obj.name.match(/\d+/);
            var DMXValue = parseInt(obj.state.val);
            var DMXOldValue = parseInt(obj.oldState.val);
            lastChanged = getState(obj.id).lc;
            if (typeof DMXOldValue !== "undefined" && lastChanged > (timestamp + 3000)) {
            console.log("DMX" + DMXAddress + " hat sich von " + DMXOldValue + " auf " + DMXValue + " geändert!");
            dmxOldMinMax[DMXAddress] = DMXOldValue;
            dmxNewMinMax[DMXAddress] = DMXValue;
            dmxNew[DMXAddress] = DMXValue;
            dmx[DMXAddress] = DMXOldValue;
            clearTimeout(processing);
            waitForSending();
            }
        });
    };
    
    var waitForSending = function() {
        processing = setTimeout(function(){ return executeArtnet() }, 500);
    };
    
    var executeArtnet = function() {
        artnet = require('artnet')(options);
        dmxNewMinValue = dmxNewMinMax.reduce(function(a, b) {
            return Math.min(a, b);
        });
        dmxNewMaxValue = dmxNewMinMax.reduce(function(a, b) {
            return Math.max(a, b);
        });
        dmxOldMinValue = dmxOldMinMax.reduce(function(a, b) {
            return Math.min(a, b);
        });
        dmxOldMaxValue = dmxOldMinMax.reduce(function(a, b) {
            return Math.max(a, b);
        });
        dmxMaxValue = Math.max(dmxNewMaxValue, dmxOldMaxValue);
        dmxMinValue = Math.min(dmxNewMinValue, dmxOldMinValue);
        //console.log("dmxMaxValue: " + dmxMaxValue + " dmxMinValue: " + dmxMinValue);
    
        roundsCalc = Math.round((dmxMaxValue - dmxMinValue)/(updateValueSkip + 1));
        roundValue = 1 + updateValueSkip;
        rounds = Math.abs(roundsCalc);
        var r = 0;
        runArtnet();
        function runArtnet () {
            setTimeout(function () {
                artnetStep();
                r++;
                if (r < rounds) {
                    runArtnet();
                } else {
                    console.log("artnetEnde: " + dmxNew.slice(1));
                    console.log("round: " + r);
                    artnet.set(universe, channel , dmxNew.slice(1));
                    return closingArtnet();
                }         
            }, (1000/updatesPerSecond));
        }
    };
    
    var artnetStep = function() {
        for (i = 0; i < '513'; i++) {
            if (i > 0) {
                if (dmx[i] < dmxNew[i]) {
                    if (dmx[i] + roundValue > 255) {
                        dmx[i] = 255;
                    } else if (dmx[i] == dmxNew[i] ) {
                        dmx[i] = dmxNew[i];
                    } else {
                        dmx[i] = dmx[i] + roundValue;
                    }
                }
                if (dmx[i] > dmxNew[i]) {
                    if (dmx[i] - roundValue <= 0) {
                        dmx[i] = 0;
                    } else if (dmx[i] == dmxNew[i] ) {
                        dmx[i] = dmxNew[i];
                    } else {
                        dmx[i] = dmx[i] - roundValue;
                    }
                }
            }
        }
        console.log("artnetStep: " + dmx.slice(1));
    return artnet.set(universe, channel , dmx.slice(1));
    };
    
    var closingArtnet = function() {
        var dmxOldMinMax = [];
        var dmxNewMinMax = [];
        setTimeout(function(){ return artnet.close() }, 500);
    };
    
    main();`Hab jetzt noch ein Problem mit Slidern die mit jedem Zucker Werte ändern, das muss ich noch abfangen sonst stürzt das Script irgendwann ab und macht komische Werte, da bin ich noch dran! [emoji26] Vieleicht gibts heute wieder ein Update... [emoji16]
    
    Gesendet von meinem SM-T819 mit Tapatalk[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
    ``` ` 
    1 Antwort Letzte Antwort
    0
    • N Offline
      N Offline
      nibblerrick
      schrieb am zuletzt editiert von
      #112

      Sollst du wohl hinbekommen :-D

      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        alexw85
        schrieb am zuletzt editiert von
        #113

        So, lässt sich jetzt nicht mehr von nervösen Slidern etc. beeindrucken, sondern wartet 500ms bis das Zucken aufhört, stoppt da wo er ist und macht mit dem neuen dann weiter! :)

        Is garnet soo einfach wie ich anfangs dachte…. :lol:

        `//################## Hier IP Adresse des Artnet Gateways eintragen #################//
        var options = {
            host : '192.168.178.67',   // Hier die IP Adresse eintragen
            sendAll : true
        };
        var artnet;
        //################ Hier Artnet Universe und Updatefrequenz anpassen ################//
        
        var universe = 0;           // Default Universe ist 0!
        var updatesPerSecond = 25;  // Je nachdem sind hier Werte ab 15 halbwegs flimmerfrei!
        var updateValueSkip = 1;    // Hier können Werte übersprungen werden, default ist 0!
        
        // Standartmäßig wird mit jedem Update ein DMX Wert hoch/runter gezählt, mit updateValueSkip
        // kann ein Wert hinzuaddiert werden: Beispiel: updateValueSkip = 1 -> Es wird mit jedem Update
        // ein Wert + 1 (also 2 *g*) hoch/runter gezählt, somit wird schneller, aber ruppiger gefadet!
        
        //######################## Ab hier ist alles Programmcode! #########################//
        
        var dmx = [];
        var dmxNew = [];
        var dmxNewPending = [];
        
        var roundValue;
        var rounds;
        var isRunning = 0;
        var r;
        var pending;
        var stopExecution;
        
        function filterNull(noNull) {
            return noNull >= 0;
        }
        
        var initialize = function() {
        
            for (i = 0; i < '513'; i++) { 
                dmx[i] = 'null';
                dmxNew[i] = 'null';
                dmxNewPending[i] = 'null';
        
                try {
                    if (getIdByName("DMX_Channel_" + i) !== undefined) {
                        if (getState("artnet.universe" + universe + ".DMX_Channel_" + i).val > 0) {
                        dmx[i] = getState("artnet.universe" + universe + ".DMX_Channel_" + i).val;
                        }
                    } else if (i > 0) {
                        createState("artnet.universe" + universe + "." + "DMX_Channel_" + i , {
                            name: 'DMX_Channel_' + i,
                            type: 'int',
                            role: 'value',
                            def: 0,
                        });
                        if (i == 512) {
                            console.log("States wurden angelegt!");
                        }
                    }
                }   catch(e){}
            }   
        return idle();
        };
        
        function idle() {
        
            var DMXAddress;
            var DMXNewValue;
        
        on({id: /^javascript\.\d\.artnet.universe/, change: "ne"}, function (obj) {
        
            DMXAddress = obj.name.match(/\d+/);
            DMXNewValue = parseInt(obj.state.val);
            dmxNewPending[DMXAddress] = DMXNewValue;
            clearTimeout(pending);
            updateValues();
        });
        
        }
        
        var updateValues = function() {
        
            pending = setTimeout(function () {
                    if (dmxNew != dmxNewPending) {
                        if (isRunning) {
                            stopExecution = 1;
                            clearTimeout(pending);
                            return updateValues();
                        } if (!isRunning) {
                            stopExecution = 0;
                            dmxNew = dmxNewPending.slice();
                            for (i = 0; i < '513'; i++) { 
                                if (dmx[i] == 'null' && dmxNew[i] != 'null') {
                                dmx[i] = 0;
                                }
                            }
                            return executeArtnet();
                        }
                    }
                },500);
        };
        
        var executeArtnet = function() {
            isRunning = 1;
            artnet = require('artnet')(options);
        
            var dmxOldMinMax = [];
            var dmxNewMinMax = [];
        
            dmxOldMinMax = dmx.slice(1);
            dmxNewMinMax = dmxNew.slice(1);
        
            dmxNewMinValue = Math.min(...dmxNew.filter(filterNull));
            dmxNewMaxValue = Math.max(...dmxNew.filter(filterNull));
            dmxOldMinValue = Math.min(...dmx.filter(filterNull));
            dmxOldMaxValue =  Math.max(...dmx.filter(filterNull));
        
            dmxMaxValue = Math.max(dmxNewMaxValue, dmxOldMaxValue);
            dmxMinValue = Math.min(dmxNewMinValue, dmxOldMinValue);
        
            roundsCalc = Math.round((dmxMaxValue - dmxMinValue)/(updateValueSkip + 1));
            roundValue = 1 + updateValueSkip;
            rounds = Math.abs(roundsCalc);
            r = 0;
            return runArtnet();
        };
        
        var runArtnet = function() {
        
            setTimeout( function() {
                artnetStep();
                r++;
                if (stopExecution) {
                    return closeArtnet();
                } 
                if (r <= rounds + 1) {
                    return runArtnet();
                } if (r > rounds) {
                    return closeArtnet();
                }        
            },(1000/updatesPerSecond));
        };
        
        function artnetStep() {
            for (i = 0; i < '513'; i++) {
                if (i > 0 && dmxNew != 'null') {
                    if (dmx[i] < dmxNew[i]) {
                        if (dmx[i] + roundValue > 255) {
                            dmx[i] = 255;
                        } else if (dmx[i] == dmxNew[i]) {
                            dmx[i] = dmxNew[i];
                        //} else if (dmx[i] == 'null') {
                            //dmx[i] = 1 + roundValue;
                        } else {
                            dmx[i] = dmx[i] + roundValue;
                        }
                    }
                    if (dmx[i] > dmxNew[i]) {
                        if (dmx[i] - roundValue <= 0) {
                            dmx[i] = 0;
                        //} else if (dmx[i] == dmxNew[i] || dmx[i] == 'null') {
                        } else if (dmx[i] == dmxNew[i]) {
                            dmx[i] = dmxNew[i];
                        } else {
                            dmx[i] = dmx[i] - roundValue;
                        }
                    }
                }
            }
        return artnet.set(universe, 1 , dmx.slice(1));
        }
        
        var closeArtnet = function() {
            artnet.close();
            isRunning = 0;
            return;
        };
        
        initialize();` [/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
        
        1 Antwort Letzte Antwort
        0
        • A Offline
          A Offline
          alexw85
          schrieb am zuletzt editiert von
          #114

          Jetzt frage ich mich halt trotzdem noch wieso dieser blöde farbtastic Colorpicker bei mir so rumzappelt, hat da jemand eine Erklärung? An meinem Script kanns eigentlich nicht liegen und das es nicht auf Hexwerte umrechnet dürfte auch relativ egal sein, oder? Oder isses weil ich noch kein Ack sende??? Der RGB spectrum funktioniert ja auch einwandfrei, sieht aber net so schön aus und ist umständlicher zu bedienen… :?:

          1 Antwort Letzte Antwort
          0
          • Q Offline
            Q Offline
            Qlink
            schrieb am zuletzt editiert von
            #115

            Hi Alex,

            gibts zu dem artnet adapter schon was neues ?

            Kommt der irgendwann auch in die admin Oberfläche als neue Version zum installieren per Webbrowser ?

            Beste Grüße

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              alexw85
              schrieb am zuletzt editiert von
              #116

              @Qlink:

              Hi Alex,

              gibts zu dem artnet adapter schon was neues ?

              Kommt der irgendwann auch in die admin Oberfläche als neue Version zum installieren per Webbrowser ?

              Beste Grüße ` Ja kommt noch, allerdings wird das dieses Jahr nix mehr! :)

              Aber das Javascript sollte funktionieren, habe bis jetzt noch keine Klagen und weitere Wünsche gehört!

              Ich bastel jetzt gerade noch an einem Script für Bacnet, (etwas kompliziert das Ganze) dann gehts an die Adapter für Artnet, Resol Vbus und hoffentlich auch Bacnet :)

              Gesendet von meinem SM-T819 mit Tapatalk

              1 Antwort Letzte Antwort
              0
              • smileS Offline
                smileS Offline
                smile
                schrieb am zuletzt editiert von
                #117

                Ich will hier auch nochmal ganz starkes Interesse daran bekunden, dass der Art Net Adapter nicht ausstirbt / vernachlässigt wird.

                Ich bin gerade dabei eine Brücke herzustellen von io.broker zu verschiedeneen DMX Licht Softwares / DMX Controllern.

                Da können sehr interessante Dinge bei herauskommen, denn insbesondere richtig spannende Installationen benötigen viele Kanäle und eine gute Steuerung - das kann meistens nur eine entsprchende Licht Software liefern, wie sie für Veranstaltungen aber auch Architekturbeleuchtung gedacht ist.

                Ich habe bei verschiedenen Herstellern nun bereits angefragt und stehe mit denen in Kontakt um die Möglichkeiten zu ergründen io.broker mit einer professionellen Licht Software zu verbinden.

                Wenn das geht dann können wir seeehr schicke Sachen damit machen.

                Daher - auch ich würde mich sehr freuen wenn der Art Net Adapter weiterentickelt wird, denn der spielt ein wichtige Rolle bei dem Thema.


                io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

                Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  alexw85
                  schrieb am zuletzt editiert von
                  #118

                  @smile:

                  Ich will hier auch nochmal ganz starkes Interesse daran bekunden, dass der Art Net Adapter nicht ausstirbt / vernachlässigt wird.

                  Ich bin gerade dabei eine Brücke herzustellen von io.broker zu verschiedeneen DMX Licht Softwares / DMX Controllern.

                  Da können sehr interessante Dinge bei herauskommen, denn insbesondere richtig spannende Installationen benötigen viele Kanäle und eine gute Steuerung - das kann meistens nur eine entsprchende Licht Software liefern, wie sie für Veranstaltungen aber auch Architekturbeleuchtung gedacht ist.

                  Ich habe bei verschiedenen Herstellern nun bereits angefragt und stehe mit denen in Kontakt um die Möglichkeiten zu ergründen io.broker mit einer professionellen Licht Software zu verbinden.

                  Wenn das geht dann können wir seeehr schicke Sachen damit machen.

                  Daher - auch ich würde mich sehr freuen wenn der Art Net Adapter weiterentickelt wird, denn der spielt ein wichtige Rolle bei dem Thema. `

                  Hallo smile,

                  ich kann dir folgen, du meinst wir machen der GrandMA bald konkurrenz? :)

                  Aber ich vermisse hier so ein wenig Feedback ob das was ich da programmiert habe auch bei anderen funktioniert, obs gut oder schlecht ist, was noch fehlt usw. Der Adapter kommt definitiv, ein lauffähiges Script ist aber schon da. Welche funktionen stellst du dir denn beim Artnetcontroller vor?

                  Gesendet von meinem SM-T819 mit Tapatalk

                  1 Antwort Letzte Antwort
                  0
                  • smileS Offline
                    smileS Offline
                    smile
                    schrieb am zuletzt editiert von
                    #119

                    Hey Alex, ich habe jetzt ein bisschen was an Hardware bestellt um den bisherigen Art-Net Adapter damit zu testen (und die entsprechenden Softwares gleich dazu).

                    Ich bekomme schon Feedback von den Herstellern und langsam wird ein Schuh draus.

                    Ich denke dass man nachher für ca. 150€ investieren kann um 4 DMX Universen mit einer Vielzahl an Szenen, Shows, Abläufen etc. über io.broker steuern und triggern zu können. Das wird super :D

                    Dein lauffähges Script habe ich noch nicht getestet, zum einen bin ich leider nicht so der Scripter sondern mache in io.broker eigentlich alles in Blockly (dafür damit aber auch viel^^) aber wenn ich die DMX Hardware hier habe dann werd ich da sicher auch mal nen Versuch wagen.

                    Funktionstechnisch sinnvoll erscheinen mir momentan folgendes:

                    • Intervall für alle Geräte gleichzeitig einstellbar (ist sonst bei jedem einzelnen je nach Anzahl ganz schönes geclicke)

                    • Integration in Blockly (oben genannter Grund, denke das würde auch einige andere offener machen damit rumzutesten)

                    • Unterstützung für mehrere Universen (geht evtl. schon sorry falls ich das übersehen habe)

                    Das bezieht sich jetzt aufs Script / und den Adapter.

                    Vielleicht macht hier mittelfristig eine Zusammenlegung Sinn?

                    Funktionsideen direkt zum Script gebe ich gern wenn ich das ausgiebig getestet habe.

                    Ich kümmere mich derweil weiter um die Konnektivität zu den angesprochenen Hardwares / Softwares…

                    Super Arbeit von allen Beteiligten! Danke! :!:

                    :)


                    io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

                    Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

                    1 Antwort Letzte Antwort
                    0
                    • Q Offline
                      Q Offline
                      Qlink
                      schrieb am zuletzt editiert von
                      #120

                      @Qlink:

                      Hi Bluefox,

                      gibts schon Fortschritte beim Artnet Adapter bezüglich einer colorpicker (Farbwahlrad) Lösung in mobile ?

                      Es wäre auch toll wenn es für jede Farbe wahlweise einen Ein/Aus Toggle Button geben würde, den man zusätzlich zu den Schiebereglner einblenden kann.

                      Genial wären auch Buttons für vorgefertigte Playlisten/Programme, die bei Betätigung z.B. einen Kaminfeuereffekt, einen Wasserfalleffekt oder einen permanenten langsamen smoothen Farbwechsel starten.

                      Beste Grüße `

                      1 Antwort Letzte Antwort
                      0
                      • A Offline
                        A Offline
                        alexw85
                        schrieb am zuletzt editiert von
                        #121

                        @smile:

                        Hey Alex, ich habe jetzt ein bisschen was an Hardware bestellt um den bisherigen Art-Net Adapter damit zu testen (und die entsprechenden Softwares gleich dazu).

                        Ich bekomme schon Feedback von den Herstellern und langsam wird ein Schuh draus.

                        Ich denke dass man nachher für ca. 150€ investieren kann um 4 DMX Universen mit einer Vielzahl an Szenen, Shows, Abläufen etc. über io.broker steuern und triggern zu können. Das wird super :D

                        Dein lauffähges Script habe ich noch nicht getestet, zum einen bin ich leider nicht so der Scripter sondern mache in io.broker eigentlich alles in Blockly (dafür damit aber auch viel^^) aber wenn ich die DMX Hardware hier habe dann werd ich da sicher auch mal nen Versuch wagen.

                        Funktionstechnisch sinnvoll erscheinen mir momentan folgendes:

                        • Intervall für alle Geräte gleichzeitig einstellbar (ist sonst bei jedem einzelnen je nach Anzahl ganz schönes geclicke)

                        • Integration in Blockly (oben genannter Grund, denke das würde auch einige andere offener machen damit rumzutesten)

                        • Unterstützung für mehrere Universen (geht evtl. schon sorry falls ich das übersehen habe)

                        Das bezieht sich jetzt aufs Script / und den Adapter.

                        Vielleicht macht hier mittelfristig eine Zusammenlegung Sinn?

                        Funktionsideen direkt zum Script gebe ich gern wenn ich das ausgiebig getestet habe.

                        Ich kümmere mich derweil weiter um die Konnektivität zu den angesprochenen Hardwares / Softwares…

                        Super Arbeit von allen Beteiligten! Danke! :!:

                        :) ` Hallo Smile,

                        also ich habe einen Raspberry als Artnet Node, da gibts die Software OLA (OpenLightingArchitecture) und für paar Euro auch ne fertige RS485 Platine über die man dann DMX schicken kann. Aber was jetzt letztendlich aus Artnet DMX macht ist egal.

                        Das Script ist immer für ein Universum zuständig, willst du mehr Universen, muss das Script mehrmals laufen.

                        Wertänderungen werden momentan folgendermaßen durchgeführt:

                        Im Script lege ich mit updatesPerSecond fest wie oft Wertänderungen pro Sekunde gesendet werden.

                        Mit der Variable updateValueSkip lege ich fest um wieviel mehr als 1 sich der Wert mit jedem Update erhöht oder verringert. Standard ist 0, liegt der Wert bei 1 wird mit jedem Update der Wert um 1 + 1 (=2) geändert, liegt der Wert bei 2, wird mit jedem Update der Wert um 1 + 2 (=3) geändert usw.

                        Beispiel:

                        DMX Adresse 1 wird von 0 auf 100 geändert

                        DMX Adresse 2 wird von 0 auf 255 geändert

                        DMX Adresse 3 wird von 0 auf 50 geändert

                        DMX Adresse 4 wird von 0 auf 25 geändert

                        updatesPerSecond: 25

                        updateValueSkip: 1

                        Dauer bis zum erreichen der Zielwerte

                        DMX1 = 2 Sekunden

                        DMX2 = 5 Sekunden

                        DMX3 = 1 Sekunde

                        DMX4 = 0,5 Sekunden

                        Das gibt momentan natürlich Farbeffekte die ich persönlich eher positiv als negativ sehe, aber da denke ich mir noch ne andere Formel zum rechnen aus wenn ich mal ein paar ruhige Minuten habe! :)

                        Mit Blockly ist das aber leider nicht abzubilden, dafür wird da viel zu viel gerechnet usw.

                        Gesendet von meinem SM-G955F mit Tapatalk

                        1 Antwort Letzte Antwort
                        0
                        • Q Offline
                          Q Offline
                          Qlink
                          schrieb am zuletzt editiert von
                          #122

                          Ich habe mir bei aliexpress ebenfalls noch einen DMX -> 0-10V Decoder geholt, um damit meine LEDs dimmen zu können.

                          https://www.aliexpress.com/item/DMX512- … 0.0.xHf1uN

                          Bin aber noch nicht dazu gekommen das Ding zu verkabeln bzw. zu montieren...

                          Ansonsten wären meine Anregungen 2 Posts weiter oben eine super Sache, wenn sich das im Adapter wiederfindet ...

                          Beste Grüße

                          1 Antwort Letzte Antwort
                          0
                          • A Offline
                            A Offline
                            AndyUM61
                            schrieb am zuletzt editiert von
                            #123

                            @Qlink:

                            Ich habe mir bei aliexpress ebenfalls noch einen DMX -> 0-10V Decoder geholt, um damit meine LEDs dimmen zu können. `

                            Hallo,

                            da ich das Ganze hier mal so mitverfolge…

                            Aber du weißt schon, dass ein 0-10V Lichtsystem nichts mit LED-Dimmer zu tun hat!?

                            LED´s werden in der Regel über PWM gedimmt.

                            ... es sei denn, du hast eine 0-10V-Lichtsteuerung.

                            Internette Grüße
                            Andy

                            RaspberryMatic (Raspberry Pi3), CUxD, ioBroker (Synology/ Docker)

                            1 Antwort Letzte Antwort
                            0
                            • A Offline
                              A Offline
                              alexw85
                              schrieb am zuletzt editiert von
                              #124

                              @Qlink:

                              Ich habe mir bei aliexpress ebenfalls noch einen DMX -> 0-10V Decoder geholt, um damit meine LEDs dimmen zu können.

                              https://www.aliexpress.com/item/DMX512- … 0.0.xHf1uN

                              Bin aber noch nicht dazu gekommen das Ding zu verkabeln bzw. zu montieren...

                              Ansonsten wären meine Anregungen 2 Posts weiter oben eine super Sache, wenn sich das im Adapter wiederfindet ...

                              Beste Grüße ` Der Adapter der existiert hat leider mit dem Script nicht viel zu tun, das Script nutzt lediglich den selben Artnet Protokoll Stack von hobbyquaker wie der Adapter. Ich hab das neu geschrieben weil der Adapter mit mehr als einer Wertänderung gleichzeitig nicht klar kommt, das Script sendet das komplette Universe und arbeitet komplett anders und ermöglicht flüssiges Faden eines ganzen Universes und gruppieren mehrer Adressen über den Szenenadapter.

                              Für den Adapter hab ich einige Ideen, warte aber auf ein paar Anregungen die ja wohl jetzt langsam kommen! :)

                              Gesendet von meinem SM-G955F mit Tapatalk

                              1 Antwort Letzte Antwort
                              0
                              • A Offline
                                A Offline
                                AndyUM61
                                schrieb am zuletzt editiert von
                                #125

                                Hallo,

                                das mit dem DMX ist schon eine tolle Sache.

                                Das wird mir zwar meist erst kurz vor Weihnachten bewusst, aber immerhin;).

                                Also ich "versuche" das derzeit folgendermaßen (vielleicht mal nur als Anregung)…

                                Ich verwende zur Steuerung von diversen WS2812B-Stripes ArtnetDMX-Nodes.

                                Diese Nodes sind meist auf Basis eines ESP8266-WiFi Moduls (z.B. WEMOS D mini) von mir mit einer entsprechenden Software bespielt.

                                z.B ESP8266_ArtNetNode https://github.com/mtongnz/ESP8266_ArtNetNode_v2

                                Mit diesen Nodes kann ich mehrere Universen steuern, jede LED einzeln (jeweils 3 Channels, R, G, B) .

                                Jedes Node verfügt über eine eigene IP und ein vorgegebenes StartUnivers.

                                Als Software verwende ich die LED MatrixControl-Software Jinx! (Windows).

                                Dort sind die einzelnen Stripes in einer entsprechend großen Matrix angeordnet und entsprechend der Anordnung im Raum gepatcht.

                                Mit dieser Software lassen sich super Scenen erstellen und eben auch abspielen.

                                Der entscheidende Punkt in Bezug auf ioBroker ist aber der, dass sich diese Software über das Universe 14 fernsteuern lässt.
                                518_jinx_.jpg

                                Ich habe mir nun mit Hilfe des ArtNet-Adapters eine kleine Fernsteuerung gebastelt mit der ich Jinx! steuern kann.
                                518_artnet-adapter.jpg
                                Das funktioniert derzeit leider etwas "träge" aber es funktioniert.

                                Der Haken ist, dass ich keine Fading-Funktion brauche, sonder nur einfache Werte in das Univers 14, auf die Channels 1-7 schicken möchte.

                                Damit sind aber schon mal ziemlich viele Möglichkeiten gegeben.

                                Der Nachteil: Jinx! muss auf einem PC, bei mir dem Server, laufen.
                                518_dmx-view.jpg

                                Unabhängig davon könnte ich natürlich jedes Node auch über das DMX-Script ansteuern.

                                Internette Grüße
                                Andy

                                RaspberryMatic (Raspberry Pi3), CUxD, ioBroker (Synology/ Docker)

                                1 Antwort Letzte Antwort
                                0
                                • A Offline
                                  A Offline
                                  alexw85
                                  schrieb am zuletzt editiert von
                                  #126

                                  @AndyUM61:

                                  Hallo,

                                  das mit dem DMX ist schon eine tolle Sache.

                                  Das wird mir zwar meist erst kurz vor Weihnachten bewusst, aber immerhin;).

                                  Also ich "versuche" das derzeit folgendermaßen (vielleicht mal nur als Anregung)…

                                  Ich verwende zur Steuerung von diversen WS2812B-Stripes ArtnetDMX-Nodes.

                                  Diese Nodes sind meist auf Basis eines ESP8266-WiFi Moduls (z.B. WEMOS D mini) von mir mit einer entsprechenden Software bespielt.

                                  z.B ESP8266_ArtNetNode https://github.com/mtongnz/ESP8266_ArtNetNode_v2

                                  Mit diesen Nodes kann ich mehrere Universen steuern, jede LED einzeln (jeweils 3 Channels, R, G, B) .

                                  Jedes Node verfügt über eine eigene IP und ein vorgegebenes StartUnivers.

                                  Als Software verwende ich die LED MatrixControl-Software Jinx! (Windows).

                                  Dort sind die einzelnen Stripes in einer entsprechend großen Matrix angeordnet und entsprechend der Anordnung im Raum gepatcht.

                                  Mit dieser Software lassen sich super Scenen erstellen und eben auch abspielen.

                                  Der entscheidende Punkt in Bezug auf ioBroker ist aber der, dass sich diese Software über das Universe 14 fernsteuern lässt.
                                  filename="Jinx!.jpg" index="2">~~

                                  Ich habe mir nun mit Hilfe des ArtNet-Adapters eine kleine Fernsteuerung gebastelt mit der ich Jinx! steuern kann.
                                  filename="ArtNet-Adapter.jpg" index="0">~~
                                  Das funktioniert derzeit leider etwas "träge" aber es funktioniert.

                                  Der Haken ist, dass ich keine Fading-Funktion brauche, sonder nur einfache Werte in das Univers 14, auf die Channels 1-7 schicken möchte.

                                  Damit sind aber schon mal ziemlich viele Möglichkeiten gegeben.

                                  Der Nachteil: Jinx! muss auf einem PC, bei mir dem Server, laufen.
                                  filename="DMX-View.jpg" index="1">~~

                                  Unabhängig davon könnte ich natürlich jedes Node auch über das DMX-Script ansteuern. ` Jetzt wirds aber interessant hier! :) Sowas in iobroker abzubilden lassen wir jetzt lieber mal, viel zu viele Datenpunkte die sich viel zu schnell ändern, wobei möglich ist alles wenn man es richtig angeht! NodeJS Module dafür gibts schon einige. Für Jinx gibts auch Alternativen für Linux, Raspberry und Arduino, die können die ja sogar direkt ansteuern, aber wird wohl dann nicht so komfortabel wie in Windows wenns um Effekte erstellen geht. Einen Rechner mit Windows würde ich mir trotzdem nicht hinstellen deswegen, es sei denn man bastelt was mit einem Intel Nuc. Der könnte dann iobroker und Jinx und und und gleichzeitig sein… :) Die Leds finde ich im übrigen sehr interessant, für die ganze Wohnung isses zwar auch wenns schon Hammer wäre nix, weil viel zu teuer, aber so eine Wand wär schon ne Überlegung wert. Stell mir gerade vor wie ich in VIS auf dem Tablet ein Bild an die Wand male! :) Oder eine Uhr laufen lasse, den Wetterbericht, Musikvisualisierung, oder einfach ein paar schöne Farbeffekte...

                                  Bei meinem Script könnte man den Wert updateValusSkip auf 255 stellen, dann springt er sofort zum angestrebten wert! Aber das Skript ist auch etwas träge, es wartet nämlich eine vorgegebene Zeit (müsste jetzt nachschauen was ich reingeschrieben habe, meine aber 500ms) bis der Szenenadapter fertig ist, könnte man aber auch rausnehmen.

                                  Gesendet von meinem SM-T819 mit Tapatalk

                                  1 Antwort Letzte Antwort
                                  0
                                  • smileS Offline
                                    smileS Offline
                                    smile
                                    schrieb am zuletzt editiert von
                                    #127

                                    @AndyUM61

                                    Ja coole Sache mit Jinx und genau der Ansatz den du daufzeigst den verfolge ich auch.

                                    io.broker wird dabei als Trigger genutzt um vorgefertigte Szenen abzuspielen. Ich halte das für den richtigen Weg.

                                    Bei Ulrich Radig gibt es Art Net Adapter für 30€

                                    http://shop.ulrichradig.de/Bausaetze/DM … usatz.html

                                    Bei mir läuft auf dem Windows Server die DMX Software, io.broker, ein IR Trans Server, IP Symcon, Überwachungskamere Software. Dann lohnt sich also schon langsam ein kleines Windows PC ;-)

                                    Mit den dmx Softwares lassen sich einfach so hervorragend schöne Effekte erzielen, die mit io.broker Art Net Adapter sehr aufwändig zu programmieren wären.

                                    Was nicht heißt dass es nicht Sinn macht den auch weiterzuentwickeln und weitere Funktionen zu geben. Ganz im Gegenteil, je nach Anwendungsfall und Bedarf wird es irgendwann eine Schnittstelle geben bis zu welchem Punkt der Art-Net Adapter alleine ausreicht und ab wann der Einsatz einer DMX Software Sinn macht.

                                    Bezüglich des Scriptes und Blockly: Ist es möglich nach und nach für die wichtigsten Scriptbausteine Blöcke zu erstellen? Das wäre eine tolle Sache!

                                    Neue dmx Hardware und Software kommt wohl die nächsten 2 Wochen an. Update folgt. :-)

                                    Dann wird auf jeden Fall ein bisschen was feines programmiert. Und natürlich mit io.broker gesteuert.

                                    Paar Anregungen findet ihr schonmal hier:

                                    http://forum.iobroker.net/viewtopic.php ... ead#unread


                                    io.broker @ debian @ virtualbox @ Windows 10 Pro / Node 18.17.1, npm 9.6.7 / CCU3 / IR.Trans Server / Daslight 4 / Mobotix IP Cams / Qnap NAS / Sonos /

                                    Mein Rolladen - Blockly: https://forum.iobroker.net/topic/6442/das-ultimative-markisen-rolladen-blockly-script

                                    1 Antwort Letzte Antwort
                                    0
                                    • A Offline
                                      A Offline
                                      alexw85
                                      schrieb am zuletzt editiert von
                                      #128

                                      Ich hab da was sehr interessantes gefunden zum Thema was auf Raspberrys läuft und evtl. auch in VIS eingebunden werden könnte. Mit dem Artnet Adapter hat das jetzt aber nichtmehr viel zu tun! :)

                                      Gesendet von meinem SM-T819 mit Tapatalk

                                      1 Antwort Letzte Antwort
                                      0
                                      • Q Offline
                                        Q Offline
                                        Qlink
                                        schrieb am zuletzt editiert von
                                        #129

                                        @AndyUM61:

                                        @Qlink:

                                        Ich habe mir bei aliexpress ebenfalls noch einen DMX -> 0-10V Decoder geholt, um damit meine LEDs dimmen zu können. `

                                        Hallo,

                                        da ich das Ganze hier mal so mitverfolge…

                                        Aber du weißt schon, dass ein 0-10V Lichtsystem nichts mit LED-Dimmer zu tun hat!?

                                        LED´s werden in der Regel über PWM gedimmt.

                                        ... es sei denn, du hast eine 0-10V-Lichtsteuerung. `

                                        Das hängt immer vom LED Treiber/Trafo abhängig.

                                        Meine Wohnzimmer und Esszimmer Leuchten haben diesen LED Trafo vorgeschalten:

                                        http://www.maffei-licht.de/tci/db/TCI_J … 122680.pdf

                                        Der hat einen 0-10V Eingang zum regulieren der Helligkeit der angeschlossenen LEDs.

                                        Das sollte also eigentlich schon klappen mit dem DMX -> 0-10V Decoder ...

                                        Ich hatte übrigens auch den ART Net von Ulrich Radig bei mir im Einsatz. Leider hat der bei einem Stromausfall vor 3 Monaten nach guten 2 Jahren Einsatz das zeitliche gesegnet.

                                        Ich habe ihn dann mit diesem hier https://www.soliled.com/shop/en/rgb-led ... 24vdc.html ersetzt. Funktioniert super.

                                        Als RGBW Controller verwende ich 2 von Ulrich Radig und 2 von diesen hier: https://www.aliexpress.com/item/4-CH-Co ... 0.0.jgVoMR

                                        Beste Grüße

                                        1 Antwort Letzte Antwort
                                        0
                                        • U Offline
                                          U Offline
                                          umatech
                                          schrieb am zuletzt editiert von
                                          #130

                                          Hallo allerseits !!

                                          Alles läuft super, kann alles ansteuern was ich mag, mit nur einem Mangel: Woher kommt diese enorm hohe Latenz von ca. 3sec. ??

                                          Bei OpenHab ändert sich das angesteuerte Gerät in Echtzeit … hier leider mit ca. 3sec Verzögerung ??? Irgendwelche Einstellungen dazu habe ich leider nicht gefunden ...

                                          Lässt sich da grundsätzlich was machen oder eher nicht ??

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          304

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe