Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [ESPHome] Beta release

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [ESPHome] Beta release

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bigd-73 @Dutchman last edited by bigd-73

      @dutchman Alle States erscheinen jetzt in den Objekten, sehr gut.

      Light 02.PNG

      Kurz zusammengefasst:

      • state (true/false - Ein/Aus) - funktioniert
      • brightness - es kann nur der Wert 0 und 1 eingegeben werden, sollte aber 0 bis 255 sein
      • blue - es kann nur der Wert 0 und 1 eingegeben werden, sollte aber 0 bis 255 sein
      • green - es kann nur der Wert 0 und 1 eingegeben werden, sollte aber 0 bis 255 sein
      • red - es kann nur der Wert 0 und 1 eingegeben werden, sollte aber 0 bis 255 sein
      • colorTemperature - es kann nur der Wert 0 und 1 eingegeben werden, sollte aber 153 bis 500 sein (Mired)

      Ich sehe gerade Kommawerte funktionieren (0 bis 0.99). Allerdings ist diese Eingabe eher untypisch bei Helligkeits- und Farbangaben, denke ich zumindest.

      Optimal wäre noch ein zusätzlicher State der Hex Werte entgegen nimmt, also z.B. #00ff00. Eine Funktion im Adapter zerlegt den Wert in die RGB Werte und gibt es an ESPHome weiter. Ich habe das bis jetzt immer extern mit einem Skript gelöst.

      function hexToRgb(hex) {
        // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
        var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
        hex = hex.replace(shorthandRegex, function(m, r, g, b) {
          return r + r + g + g + b + b;
        });
      
        var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
        return result ? {
          r: parseInt(result[1], 16),
          g: parseInt(result[2], 16),
          b: parseInt(result[3], 16)
        } : null;
      }
      
      return (hexToRgb(hex).r) + "," + (hexToRgb(hex).g) + "," + (hexToRgb(hex).b);
      

      Vielen Dank nochmal ...

      SG
      Mario

      Dutchman 3 Replies Last reply Reply Quote 0
      • Dutchman
        Dutchman Developer Most Active Administrators @bigd-73 last edited by Dutchman

        @bigd-73 sagte in [ESPHome] Beta release:

        @dutchman Alle States erscheinen jetzt in den Objekten, sehr gut.

        cool ! dan hab ich ja doch nicht al zuviel mist gebaut im framework 🙂

        @bigd-73 sagte in [ESPHome] Beta release:

        Ich sehe gerade Kommawerte funktionieren (0 bis 0.99). Allerdings ist diese Eingabe eher untypisch bei Helligkeits- und Farbangaben, denke ich zumindest.

        hmm ok ich muss mal sehe wie das reinkommt, kannste mal bitte den adapter auf debug stellen.
        Ich brauche dan fuer die device alles hinter log Eintrag "entityStateData".

        Vermute mal muss einfach die Sachen * 100 machen, wen du 0.5 einstellst geht zb die brightness auch auf 50% ?

        @bigd-73 sagte in [ESPHome] Beta release:

        Optimal wäre noch ein zusätzlicher State der Hex Werte entgegen nimmt, also z.B. #00ff00. Eine Funktion im Adapter zerlegt den Wert in die RGB Werte und gibt es an ESPHome weiter. Ich habe das bis jetzt immer extern mit einem Skript gelöst.

        Ich habe etwas vergleichbares im WLED adapter drin, ist bissl komplizierte dafuer bitte git issue 🙂

        B 2 Replies Last reply Reply Quote 0
        • Dutchman
          Dutchman Developer Most Active Administrators @bigd-73 last edited by Dutchman

          @bigd-73 sagte in [ESPHome] Beta release:

          Optimal wäre noch ein zusätzlicher State der Hex Werte entgegen nimmt, also z.B. #00ff00. Eine Funktion im Adapter zerlegt den Wert in die RGB Werte und gibt es an ESPHome weiter. Ich habe das bis jetzt immer extern mit einem Skript gelöst.

          hast du die function zufällig auch andersrum, RGB to hex ?

          Edit : hab schon das war ja noch einfacher :/, baue ich heut abend ein 🙂

          function rgbToHex(r, g, b) {
            return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
          }
          
          B 1 Reply Last reply Reply Quote 0
          • B
            bigd-73 @Dutchman last edited by

            @dutchman jetzt warst du schneller 😁

            das hätte ich gefunden ...

            function componentToHex(c) {
            var hex = c.toString(16);
            return hex.length == 1 ? "0" + hex : hex;
            }
             
            return "#" + componentToHex(r) + componentToHex(g) + componentToHex(b);
            

            SG
            Mario

            Dutchman 1 Reply Last reply Reply Quote 1
            • B
              bigd-73 @Dutchman last edited by bigd-73

              @dutchman sagte in [ESPHome] Beta release:

              hmm ok ich muss mal sehe wie das reinkommt, kannste mal bitte den adapter auf debug stellen.
              Ich brauche dan fuer die device alles hinter log Eintrag "entityStateData".

              Diesen Befehl sende ich via mqtt (so löste/löse ich die Sache bevor du begonnen hast den Adapter zu entwickeln)
              Stripe ein, Helligkeit 100% (255), Farbe grün, kein Effekt

              {"effect":"None","state":"ON","brightness":255,"color":{"r":0,"g":255,"b":0},"white_value":0}
              

              Das kommt im Log rein

              [entityStateData] {"key":801952849,"state":true,"brightness":1,"red":0,"green":1,"blue":0,"white":0,"colorTemperature":0,"effect":"None"}
              

              weiteres Beispiel (mqtt):
              Stripe ein, Helligkeit ca. 50% (127), Farbe lila, kein Effekt

              {"effect":"None","state":"ON","brightness":127,"color":{"r":136,"g":0,"b":255},"white_value":0}
              

              Das kommt im Log rein

              [entityStateData] {"key":801952849,"state":true,"brightness":0.49803921580314636,"red":0.5333333611488342,"green":0,"blue":1,"white":0,"colorTemperature":0,"effect":"None"}
              

              SG
              Mario

              1 Reply Last reply Reply Quote 0
              • B
                bigd-73 @Dutchman last edited by bigd-73

                @dutchman sagte in [ESPHome] Beta release:

                Vermute mal muss einfach die Sachen * 100 machen, wen du 0.5 einstellst geht zb die brightness auch auf 50% ?

                genau ...

                EDIT:
                ich denke die Umrechnung lautet so: Value (Dezimalwert für ESPHome = x (Hex Value für eine Grundfarbe)/255 ---> zB.: 136/255 = 0.5333333611488342 (für obiges Beispiel aus dem Log)
                Gilt natürlich auch für die Helligkeit ...

                SG
                Mario

                1 Reply Last reply Reply Quote 0
                • B
                  bigd-73 last edited by bigd-73

                  @dutchman ... weil ich gerade beim Wünschen bin 😀

                  Optimal wäre dann noch eine weitere Funktion bzw. Abfrage im Adapter. Falls via Hex Value #ffffff (weiss) bzw. RGB Value jeweils 255 (weiss) eingegeben wird, automatisch der White Channel (State "white" in den Objekten) auf 1 geht und RGB jeweils auf 0. Das ganze natürlich auch umgekehrt. Wird eine Farbe eingegeben (nicht weiss), soll der White Channel wieder auf 0 und die RGB bzw. Hex Werte gesetzt werden.

                  Hintergrund ---> Ein "weiss" mit den drei Grundfarben gemischt ist nie ein richtig sauberes "weiss", sondern eher blaustichig. Diese Funktion sollte vielleicht über einen State in den Objekten Ein/Aus geschaltet werden können. Dann kann jeder die Farbmischung lösen wie er möchte. Hab das bisher extern über ein Script gelöst.

                  So jetzt ist schluss, zumindest vorerst ... 😇

                  Danke

                  SG
                  Mario

                  Dutchman 2 Replies Last reply Reply Quote 1
                  • Dutchman
                    Dutchman Developer Most Active Administrators @bigd-73 last edited by

                    @bigd-73 sagte in [ESPHome] Beta release:

                    @dutchman ... weil ich gerade beim Wünschen bin
                    Optimal wäre dann noch eine weitere Funktion bzw. Abfrage im Adapter. Falls via Hex Value #ffffff (weiss) bzw. RGB Value jeweils 255 (weiss) eingegeben wird, automatisch der White Channel (State "white" in den Objekten) auf 1 geht und RGB jeweils auf 0. Das ganze natürlich auch umgekehrt. Wird eine Farbe eingegeben (nicht weiss), soll der White Channel wieder auf 0 und die RGB bzw. Hex Werte gesetzt werden

                    Sollte möglich sein auch dafür bitte ein GIT issue

                    1 Reply Last reply Reply Quote 0
                    • FredF
                      FredF Most Active Forum Testing @Dutchman last edited by

                      @dutchman Die aktuellste Version 0.1.2 gerade nochmal probiert und siehe da, nun ging es. Das soll einer verstehen...

                      1 Reply Last reply Reply Quote 1
                      • Dutchman
                        Dutchman Developer Most Active Administrators @bigd-73 last edited by

                        @bigd-73 sagte in [ESPHome] Beta release:

                        Ich sehe gerade Kommawerte funktionieren (0 bis 0.99). Allerdings ist diese Eingabe eher untypisch bei Helligkeits- und Farbangaben, denke ich zumindest.

                        probier mal 0.1.3 bitte

                        B 1 Reply Last reply Reply Quote 0
                        • Dutchman
                          Dutchman Developer Most Active Administrators @bigd-73 last edited by

                          @bigd-73 sagte in [ESPHome] Beta release:

                          Optimal wäre dann noch eine weitere Funktion bzw. Abfrage im Adapter. Falls via Hex Value #ffffff (weiss) bzw. RGB Value jeweils 255 (weiss) eingegeben wird, automatisch der White Channel (State "white" in den Objekten) auf 1 geht und RGB jeweils auf 0. Das ganze natürlich auch umgekehrt. Wird eine Farbe eingegeben (nicht weiss), soll der White Channel wieder auf 0 und die RGB bzw. Hex Werte gesetzt werden.

                          hmm ja kan man machen, aber was wuerde passieren wen man nur RGB hat geht ESPHome da dan richtig mit um ?
                          Den wen ich bei RGB (nicht RGBW) den RGB auf 0 mache geht alles aus ?

                          B 1 Reply Last reply Reply Quote 0
                          • Dutchman
                            Dutchman Developer Most Active Administrators @bigd-73 last edited by Dutchman

                            @bigd-73 sagte in [ESPHome] Beta release:

                            @dutchman jetzt warst du schneller 😁

                            das hätte ich gefunden ...

                            Mario

                            falls es mal jemand gebrauchen kan, RGB > HEX und HEX > RGB :
                            (baue es morgen im adapter ein....)

                            function hexToRgb(hex) {
                                const shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
                                hex = hex.replace(shorthandRegex, function (m, r, g, b) {
                                    return r + r + g + g + b + b;
                                });
                            
                                const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
                                return result ? {
                                    red: parseInt(result[1], 16),
                                    green: parseInt(result[2], 16),
                                    blue: parseInt(result[3], 16)
                                } : null;
                            }
                            
                            function rgbToHex(r, g, b) {
                                function componentToHex(color) {
                                    const hex = color.toString(16);
                                    return hex.length == 1 ? '0' + hex : hex;
                                }
                                const hex = '#' + componentToHex(r) + componentToHex(g) + componentToHex(b);
                                return hex;
                            }
                            
                            const rgb = hexToRgb(`ff4000`) 
                            console.log(rgb)
                            
                            const hex = rgbToHex(rgb.red,rgb.blue,rgb.green) 
                            console.log(hex)
                            
                            1 Reply Last reply Reply Quote 0
                            • B
                              bigd-73 @Dutchman last edited by

                              @dutchman sagte in [ESPHome] Beta release:

                              @bigd-73 sagte in [ESPHome] Beta release:

                              Optimal wäre dann noch eine weitere Funktion bzw. Abfrage im Adapter. Falls via Hex Value #ffffff (weiss) bzw. RGB Value jeweils 255 (weiss) eingegeben wird, automatisch der White Channel (State "white" in den Objekten) auf 1 geht und RGB jeweils auf 0. Das ganze natürlich auch umgekehrt. Wird eine Farbe eingegeben (nicht weiss), soll der White Channel wieder auf 0 und die RGB bzw. Hex Werte gesetzt werden.

                              hmm ja kan man machen, aber was wuerde passieren wen man nur RGB hat geht ESPHome da dan richtig mit um ?
                              Den wen ich bei RGB (nicht RGBW) den RGB auf 0 mache geht alles aus ?

                              Guten Morgen, in der Regel wird die Anzahl der Kanäle in ESPHome in der Light Komponente definiert. Über die Config Objekte in den States könnte man den Typ abfangen. Bei RGBW müsste dann false stehen. In diesen Fall müsste man die Funktion deaktivieren. Komme leider erst heute Abend zum Testen. Screenshots reiche ich dann nach ...

                              SG
                              Mario

                              Dutchman 1 Reply Last reply Reply Quote 0
                              • Dutchman
                                Dutchman Developer Most Active Administrators @bigd-73 last edited by

                                @bigd-73 sagte in [ESPHome] Beta release:

                                Guten Morgen, in der Regel wird die Anzahl der Kanäle in ESPHome in der Light Komponente definiert. Über die Config Objekte in den States könnte man den Typ abfangen. Bei RGBW müsste dann false stehen. In diesen Fall müsste man die Funktion deaktivieren. Komme leider erst heute Abend zum Testen. Screenshots reiche ich dann nach ...

                                Moin!

                                Super danke dir genau was ich brauche dafür!
                                Ich habe nicht alle Typen in Betrieb da hilft es sehr die Infos zu bekommen man kan nicht alles selber testen 😂👍

                                B 1 Reply Last reply Reply Quote 0
                                • B
                                  bigd-73 @Dutchman last edited by bigd-73

                                  @dutchman Hier mal die verschiedenen Licht Plattformen ...

                                  monochromatic (1 Kanal - Welche Funktionen unterstützt werden sieht man schön in den Config States)

                                  light_monochromatic.PNG

                                  cwww ( 2 Kanal - Hier ist die ColorTemperature und Brightness relevant, keine RGB Farben, mireds --> 153 ww --> 500 cw)

                                  light_cwww.PNG

                                  rgb (3 Kanal - Welche Funktionen unterstützt werden sieht man schön in den Config States)

                                  light_rgb.PNG

                                  rgbw (4 Kanal - Welche Funktionen unterstützt werden sieht man schön in den Config States)

                                  light_rgbw.PNG

                                  rgbww (5 Kanal - Welche Funktionen unterstützt werden sieht man schön in den Config States)

                                  light_rgbww.PNG

                                  Es gäbe dann noch Neopixel. Aber da verwenden wir ja WLED 😀

                                  Die neue Version wird heute Abend getestet, danke.

                                  SG
                                  Mario

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    bigd-73 @Dutchman last edited by bigd-73

                                    @dutchman sagte in [ESPHome] Beta release:

                                    probier mal 0.1.3 bitte

                                    ... doch früher dazu gekommen ...

                                    Zusammenfassung (Ich teste mit einem RGBW Stripe, also colorTemperature nicht relevant, ersichtlich in den Config States):

                                    • In dieser Version ist die Value Range 0-100? Ich denke 0-255 wäre besser, weil weiter verbreitet und hex kompatibel.
                                    • Egal welche Werte ich bei RGB setze, der Stripe bleibt immer auf weiss. Also alle 3 Farben voll ein.
                                    • Der "white" State funktioniert, zumindest für Ein/Aus also 0/1
                                    • Brightness reagiert nicht. Weder bei "RGB", noch bei "white", keine Veränderung.
                                    • Schalte ich den Power "state" auf false, geht der Stripe aus. Beim einschalten gehen alle Werte auf 100. Die letzte Einstellung wird also nicht gespeichert.

                                    Nachtrag:
                                    Egal welchen State ich ändere, im Log kommt folgender Fehler ...

                                    [onStateChange] ReferenceError: writevalue is not defined
                                    

                                    SG
                                    Mario

                                    Dutchman 1 Reply Last reply Reply Quote 0
                                    • Dutchman
                                      Dutchman Developer Most Active Administrators @bigd-73 last edited by Dutchman

                                      @bigd-73 sagte in [ESPHome] Beta release:

                                      • In dieser Version ist die Value Range 0-100? Ich denke 0-255 wäre besser, weil weiter verbreitet und hex kompatibel.
                                      • Egal welche Werte ich bei RGB setze, der Stripe bleibt immer auf weiss. Also alle 3 Farben voll ein.
                                      • Brightness reagiert nicht. Weder bei "RGB", noch bei "white", keine Veränderung.
                                      • Schalte ich den Power "state" auf false, geht der Stripe aus. Beim einschalten gehen alle Werte auf 100. Die letzte Einstellung wird also nicht gespeichert.

                                      Nachtrag:
                                      Egal welchen State ich ändere, im Log kommt folgender Fehler ...

                                      [onStateChange] ReferenceError: writevalue is not defined
                                      

                                      danke, probier mall bitte v0.1.4-1, da sollte das Schreiben von brightness und RGB auch gehen (hatte nen typo im code) und die werte sind auf scale 0-255 anstatt 0-100

                                      B 1 Reply Last reply Reply Quote 0
                                      • B
                                        bigd-73 @Dutchman last edited by

                                        @dutchman sagte in [ESPHome] Beta release:

                                        danke, probier mall bitte v0.1.4-1, da sollte das Schreiben von brightness und RGB auch gehen (hatte nen typo im code) und die werte sind auf scale 0-255 anstatt 0-100

                                        danke, hier eine kurze Zusammenfassung für RGBW:

                                        • State für Power funktioniert nicht, weder ein noch ausschalten ist möglich.
                                        • Eingaben in "colorHex" werden nicht richtig angenommen bzw. dargestellt. zB.: Eingabe von #ff0000 (rot) ---> Farbe wird gesetzt - State "colorHex" wechselt auf #010000
                                          oder Eingabe von #00ff00 (grün) ---> Farbe wird gesetzt - State "colorHex" wechselt auf #000000
                                          oder Eingabe von #0000ff (blau) ---> Farbe wird gesetzt - State "colorHex" wechselt auf #000101
                                        • State "white" bleibt immer auf 1. Der Weisskanal lässt sich somit nicht schalten
                                        • Die RGB Kanäle sind alle schaltbar. Hier sollte eventuell auf keine Kommastelle gerundet werden (max. 255). Der State "colorHex" nimmt den Wert wie oben beschrieben an.
                                        • Brightness funktioniert

                                        SG
                                        Mario

                                        Dutchman 1 Reply Last reply Reply Quote 0
                                        • Dutchman
                                          Dutchman Developer Most Active Administrators @bigd-73 last edited by

                                          @bigd-73 sagte in [ESPHome] Beta release:

                                          danke, hier eine kurze Zusammenfassung für RGBW:

                                          könntest du mir mal bitte deine yaml geben mit der ligt device ?
                                          Dan kan ich das hier mal nachspielen

                                          B 1 Reply Last reply Reply Quote 0
                                          • B
                                            bigd-73 @Dutchman last edited by

                                            @dutchman sagte in [ESPHome] Beta release:

                                            könntest du mir mal bitte deine yaml geben mit der ligt device ?
                                            Dan kan ich das hier mal nachspielen

                                            natürlich ... hier mal für RGBW (4 Kanal):

                                            # #############        
                                            # output
                                            # #############      
                                            output:
                                              - platform: esp8266_pwm
                                                pin: 12
                                                frequency: 1000 Hz
                                                id: pwm_b
                                              - platform: esp8266_pwm
                                                pin: 13
                                                frequency: 1000 Hz
                                                id: pwm_g
                                              - platform: esp8266_pwm
                                                pin: 15
                                                frequency: 1000 Hz
                                                id: pwm_r
                                              - platform: esp8266_pwm
                                                pin: 14
                                                frequency: 1000 Hz
                                                id: pwm_cw
                                              - platform: esp8266_pwm
                                                pin: 16
                                                frequency: 1000 Hz
                                                id: pwm_ww
                                                
                                            # #############        
                                            # light
                                            # #############             
                                            light:
                                              - platform: rgbw
                                                name: "platform_rgbw"
                                                red: pwm_r
                                                green: pwm_g
                                                blue: pwm_b
                                                white: pwm_cw
                                            

                                            monochromatic (1 Kanal)

                                            # #############        
                                            # light
                                            # #############             
                                            light:
                                              - platform: monochromatic
                                                name: "platform_monochromatic"
                                                output: pwm_cw
                                            

                                            RGB (3 Kanal)

                                            # #############        
                                            # light
                                            # #############             
                                            light:
                                              - platform: rgb
                                                name: "platform_rgb"
                                                red: pwm_r
                                                green: pwm_g
                                                blue: pwm_b
                                            

                                            RGBWW (5 Kanal)

                                            # #############        
                                            # light
                                            # #############             
                                            light:
                                              - platform: rgbww
                                                name: "platform_rgbww"
                                                red: pwm_r
                                                green: pwm_g
                                                blue: pwm_b
                                                cold_white: pwm_cw
                                                warm_white: pwm_ww
                                                cold_white_color_temperature: 153 mireds
                                                warm_white_color_temperature: 500 mireds
                                            

                                            und noch CWWW (kaltweiss/warmweiss)

                                            # #############        
                                            # light
                                            # #############             
                                            light:
                                              - platform: cwww
                                                name: "platform_cwww"
                                                cold_white: pwm_cw
                                                warm_white: pwm_ww
                                                cold_white_color_temperature: 153 mireds
                                                warm_white_color_temperature: 500 mireds
                                            

                                            SG
                                            Mario

                                            Dutchman 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            942
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            48
                                            591
                                            116548
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo