Ankündigung

Einklappen
Keine Ankündigung bisher.

Node Red und MDT LED Controller mit RGBW

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

    Node Red und MDT LED Controller mit RGBW

    Hallo Leute,
    ich habe mittlerweile alle Lampen, Dimmer, Fensterkontakte und Rolladen mit Lüftungsfunktion ganz gut im Griff (bin noch Anfänger).
    Habe auch ein Node Red mit Dashboard am laufen und kann alles vom Handy aus steuern.
    Aber ich habe jetzt einen MDT-LED-Controller AKD-0424R.02 dazu bekommen. Mit einem MDT-Gladtaster kann ich die RGBW-LEDs auch super steuern.
    Aber ich scheitere total bei Node Red. Ich habe vom Dashboard den Colour Picker ausgewählt und auf HSV gestellt. Im Log erscheint dann folgendes hsv(xxx, xx%, xx%). Aber wie bekomme ich das nun richtig in den KNX-Node?
    Hat da vielleicht einer eine Idee oder ein Beispiel für mich?

    Viele Grüße
    meister888

    #2
    zerlegen und in die drei Einzelwerte nummerisch übertragen. wahrscheinlich besser ein function node und aus skripten. Es ist halt blöd wenn da in dem Node drei Werte aber in 2 verschiedenen Datentypen raus kommen. Einmal wohl 0-255 und zweimal 0-99%. wären es alles drei Prozente oder besser 0-255 Werte wäre es ja einfacher.

    mit welchem Node hast Du denn die Kommunikation mit dem KNX gebaut, gibt es da eine HSV/RGB Funktionsvorlage?
    ----------------------------------------------------------------------------------
    "Der Hauptgrund für Stress ist der tägliche Kontakt mit Idioten."
    Albert Einstein

    Kommentar


      #3
      Sorry, bin erst heute wieder dazu gekommen mich um mein Problem zu kümmern.
      Aus dem Color-Picker kommt folgendes: hsv(xxx, xx%, xx%), 1x "0-360°" und 2x "0-100%".
      Die Node zur Kommunikation zum KNX (KNX-Ultimate) bzw. der Aktor erwartet einen DPT232.600 mit { red: 152, green: 77, blue: 72 } auch wenn es HSV ist.
      Kann man nicht die 3 Werte separieren, umrechnen auf 0-255 und dann an den Bus schicken???

      Ich hoffe ihr habt ein paar Ideen oder Beispiele für mich. Bin nämlich noch nicht so tief in der Materie.

      Viele Grüße
      meister888

      Kommentar


        #4
        Also ich meine ich hätte damals aus dem Colorpicker nen RGB bekommen ... kann mich zumindest nicht an manuelles Umrechnen erinnern.

        Davon ab: Ich bin von NodeRed's eigenem Colorpicker mittlerweile weg, weil der im Dashboard immer wie ein Fremdkörper aussah und für mich nicht zufriedenstellend war. Ich nutze mittlerweile den node-red-contrib-ui-iro-color-picker. Der ist deutlich flexibler zu konfigurieren und braucht im Dashboard auch (je nach Einstellung) nicht soviel Platz, da er auch nur die aktuelle Auswahl anzeigen kann und bei klick/drauftippen dann quasi ein Popup mit dem HSV-Picker zeigt. Die einzigen Konvertierungen die damit dann noch vorher (KNX zu Picker) und nachher (Picker zu KNX) nötig sind: KNX Ultimate nennt die Felder red,green,blue, der Picker r,g,b.

        /EDIT: Gerade nachgeschaut, NodeRed's Colorpicker kann man auf rgb-Kommunikation umstellen.
        Chris

        Kommentar


          #5
          Hi,

          ich nutze leider nur Python, aber auch dafür gibt es eine "function Node". Versuch mal folgeden Code:
          Code:
          import colorsys
          
          def hsv_2_rgb(h,s,v):
              return tuple(round(i * 255) for i in colorsys.hsv_to_rgb(h/360,s/100,v/100))
          
          return hsv_2_rgb(311,55,88) # hier die HSV Werte als Integer

          Edit: Syntax korrigiert.
          Zuletzt geändert von elektrofly; 12.07.2022, 11:05.

          Kommentar


            #6
            Hi,

            habe die Python-Funktion-Node ausprobiert, habe aber am Ausgang kein Ergebnis. Mache wahrscheinlich etwas falsch.
            Nun habe ich aber mal den node-red-contrib-ui-iro-color-picker ausprobiert.
            Wenn ich diesen auf HSV stelle, bekomme ich folgendes Ergebnis: msg.payload : Object { h: 345, s: 95, v: 60 }

            Bekomme ich dieses vielleicht einfacher umgerechnet und in die Form msg.payload : Object { red: 244, green: 242, blue: 153 }?

            Kommentar


              #7
              Wenn du RGB willst, warum stellst du dann jeweils HSV ein? Beide Picker können von Haus aus RGB an den Schnittstellen.
              Chris

              Kommentar


                #8
                Habe HSV genommen, da es über den Glastater auch nur über HSV geht.
                Habe jetzt parallel die Gruppenadressen für RGBW angelegt.
                Vom KNX-Bus kommt dann folgendes: { red: 10, green: 20, blue: 30, white: 0, mR: 1, mG: 1, mB: 1, mW: 1 }
                Aus dem Picker kommt: { r: 31, g: 30, b: 0, w: 44 }
                Also muss ich auch hier das Objekt bearbeiten.
                Das Teil bringt mich irgendwie zur Verzweifelung...

                Kommentar


                  #9
                  Umbenennen der Felder, geht sogar mit dem Switch-Node.
                  Hier mal mein Setup für eine RGB-Steuerung:
                  Code:
                  [
                      {
                          "id": "4be2fe4c.2cadf",
                          "type": "knxUltimate",
                          "z": "c5252a3.54270d8",
                          "server": "3490cbfd.0b01f4",
                          "topic": "1/6/4",
                          "outputtopic": "",
                          "dpt": "232.600",
                          "initialread": false,
                          "notifyreadrequest": false,
                          "notifyresponse": true,
                          "notifywrite": true,
                          "notifyreadrequestalsorespondtobus": false,
                          "notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
                          "listenallga": false,
                          "name": "WZ RGB RF RGB Farbe",
                          "outputtype": "write",
                          "outputRBE": false,
                          "inputRBE": false,
                          "x": 150,
                          "y": 440,
                          "wires": [
                              [
                                  "e6d4a004.c090b"
                              ]
                          ]
                      },
                      {
                          "id": "e6d4a004.c090b",
                          "type": "change",
                          "z": "c5252a3.54270d8",
                          "name": "Rename",
                          "rules": [
                              {
                                  "t": "move",
                                  "p": "payload.red",
                                  "pt": "msg",
                                  "to": "payload.r",
                                  "tot": "msg"
                              },
                              {
                                  "t": "move",
                                  "p": "payload.green",
                                  "pt": "msg",
                                  "to": "payload.g",
                                  "tot": "msg"
                              },
                              {
                                  "t": "move",
                                  "p": "payload.blue",
                                  "pt": "msg",
                                  "to": "payload.b",
                                  "tot": "msg"
                              }
                          ],
                          "action": "",
                          "property": "",
                          "from": "",
                          "to": "",
                          "reg": false,
                          "x": 360,
                          "y": 440,
                          "wires": [
                              [
                                  "66f297200c9c297b"
                              ]
                          ]
                      },
                      {
                          "id": "457aa4f6.8b3a8c",
                          "type": "change",
                          "z": "c5252a3.54270d8",
                          "name": "Rename",
                          "rules": [
                              {
                                  "t": "move",
                                  "p": "payload.r",
                                  "pt": "msg",
                                  "to": "payload.red",
                                  "tot": "msg"
                              },
                              {
                                  "t": "move",
                                  "p": "payload.g",
                                  "pt": "msg",
                                  "to": "payload.green",
                                  "tot": "msg"
                              },
                              {
                                  "t": "move",
                                  "p": "payload.b",
                                  "pt": "msg",
                                  "to": "payload.blue",
                                  "tot": "msg"
                              }
                          ],
                          "action": "",
                          "property": "",
                          "from": "",
                          "to": "",
                          "reg": false,
                          "x": 680,
                          "y": 440,
                          "wires": [
                              [
                                  "fec97f21.b07c1",
                                  "177865e1.65355a"
                              ]
                          ]
                      },
                      {
                          "id": "fec97f21.b07c1",
                          "type": "knxUltimate",
                          "z": "c5252a3.54270d8",
                          "server": "3490cbfd.0b01f4",
                          "topic": "1/6/4",
                          "outputtopic": "",
                          "dpt": "232.600",
                          "initialread": false,
                          "notifyreadrequest": false,
                          "notifyresponse": false,
                          "notifywrite": true,
                          "notifyreadrequestalsorespondtobus": false,
                          "notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
                          "listenallga": false,
                          "name": "WZ RGB RF RGB Farbe",
                          "outputtype": "write",
                          "outputRBE": false,
                          "inputRBE": false,
                          "x": 930,
                          "y": 440,
                          "wires": [
                              []
                          ]
                      },
                      {
                          "id": "66f297200c9c297b",
                          "type": "ui_iro-color-picker",
                          "z": "c5252a3.54270d8",
                          "group": "d9464aad.fbf3a8",
                          "order": 4,
                          "width": "6",
                          "height": "1",
                          "name": "RGB Stripe",
                          "label": "  RGB Stripe",
                          "placement": "left",
                          "hAlign": "flex-start",
                          "vAlign": "center",
                          "stateField": "payload",
                          "enableField": "enable",
                          "layoutDirection": "vertical",
                          "widgetIndent": "3",
                          "buttonWidth": "7",
                          "pickerType": "popupCW",
                          "popupWidth": "6",
                          "popupHeight": 0,
                          "pickerSize": "100",
                          "backgroundDim": "50",
                          "backgroundColor": "#000000",
                          "backgroundVariable": false,
                          "components": [
                              {
                                  "options": {
                                      "borderColor": "#000000",
                                      "borderWidth": 2,
                                      "wheelLightness": false,
                                      "wheelAngle": 0,
                                      "wheelDirection": "anticlockwise",
                                      "minTemperature": 3000,
                                      "maxTemperature": 6000
                                  },
                                  "componentId": "picker"
                              },
                              {
                                  "options": {
                                      "borderColor": "#000000",
                                      "borderWidth": 0,
                                      "sliderType": "value",
                                      "minTemperature": 3000,
                                      "maxTemperature": 6000
                                  },
                                  "componentId": "slider"
                              },
                              {
                                  "options": {
                                      "borderColor": "#000000",
                                      "borderWidth": 0,
                                      "sliderType": "kelvin",
                                      "minTemperature": 3000,
                                      "maxTemperature": 6000
                                  },
                                  "componentId": "slider"
                              }
                          ],
                          "format": "hex",
                          "outFormat": "rgb",
                          "dynOutput": "input:move",
                          "outputConfirmed": false,
                          "outputLimit": "2",
                          "passthru": false,
                          "topic": "topic",
                          "topicType": "msg",
                          "iroColorValue": "#ff0000",
                          "x": 510,
                          "y": 440,
                          "wires": [
                              [
                                  "457aa4f6.8b3a8c"
                              ]
                          ]
                      },
                      {
                          "id": "d9464aad.fbf3a8",
                          "type": "ui_group",
                          "name": " ",
                          "tab": "21dfd046.ca7aa",
                          "order": 1,
                          "disp": true,
                          "width": "10",
                          "collapse": false
                      },
                      {
                          "id": "21dfd046.ca7aa",
                          "type": "ui_tab",
                          "name": "Wohnzimmer",
                          "icon": "dashboard",
                          "order": 3,
                          "disabled": false,
                          "hidden": false
                      }
                  ]
                  Chris

                  Kommentar


                    #10
                    Ich habe aber einen RGBW-Stipe.
                    Habe aber jetzt mit der Switch-Node meine HSV-Felder umbenannt.
                    Nun reagiert mein Aktor zumindest schon einmal auf Eingaben in Node Red.
                    Nur die Werte müssten noch umgerechnet werden.

                    Kommentar


                      #11
                      Zitat von Meister888 Beitrag anzeigen
                      habe aber am Ausgang kein Ergebnis. Mache wahrscheinlich etwas falsch.
                      Oder der Code den ich dir gegeben habe ist dalsch. Hab es lange nicht mehr gemacht und grade kein NodeRed da mit dem ich testen kann.

                      Wenn du möchtest kannst du mal folgendes probieren und den debug output zeigen. Der Code sollte zur msg (nicht payload) die 3 Farben als R,G und B hinzufügen.
                      Code:
                      import colorsys
                      
                      def hsv_2_rgb(h,s,v):
                          return tuple(round(i * 255) for i in colorsys.hsv_to_rgb(h/360,s/100,v/100))
                      
                      msg["R"], msg["G"], msg["B"] = hsv_2_rgb(311,55,88)
                      
                      return msg

                      Kommentar


                        #12
                        Wenn ich die Python-Node mit deinem Code direkt hinter den Colour-Picker hänge kommt im Debug-Output folgendes.

                        msg.payload : Object
                        { h: 132, s: 54, v: 54 }

                        Und zwar vor und hinter der Python-Node identisch!

                        Kommentar


                          #13
                          Jepp, weil du msg.payload ausgibst.
                          Ich schrieb ja:
                          Zitat von elektrofly Beitrag anzeigen
                          Der Code sollte zur msg (nicht payload)
                          😉

                          Stelle die debug node mal um auf komplette Nachricht ausgeben, dann sollten auch die R,G und B werte abgehangen werden.
                          Ich kann leider nicht wissen wie Du die Werte zurück ans KNX gibst bzw. wie die "msg" im Node Red formatiert werden muss.

                          Kommentar


                            #14
                            Dann kommt folgendes:

                            msg : Object
                            object
                            B: 0
                            G: 0
                            _msgid: "929e663f263ee61f"
                            socketid: "Vl7lzbEc7EfP8DmIAADw"
                            R: 0

                            payload: object
                            h: 73
                            s: 78
                            v: 89

                            Kommentar


                              #15
                              Habe den Code folgendermaßen eingefügt.


                              Python-Node.jpg

                              Kommentar

                              Lädt...
                              X