Zigbee2MQTT Programmcode PicoC Script

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Kuestennerd
    Azubi
    • 14.11.2024
    • 3

    #1

    Zigbee2MQTT Programmcode PicoC Script

    Hey zusammen,

    ich habe vor längerer Zeit Hue rausgeschmissen und durch Zigbee2MQTT ersetzt um mehr Auswahl bei den Lampen zu haben und konnte dadurch das Script nicht mehr verwenden. Darauf basierend habe ich einen neuen Code erstellt und wollte ihn euch zur Verfügung stellen. Seitdem ich das Script laufen habe reagieren die Lampen zuverlässiger und die Seiten sind viel aufgeräumter.

    Die Lampen habe ich mit einem Merker mit dem Typ TEXT angeschlossen und konnten so einfach übernommen werden. Der Ausgang vom Lichtbaustein ist:
    RGB(W) - Lumitech DMX.
    Dimmer - Dimmer 0-100 %
    Ein/Aus - Schalter

    Es lassen sich damit in Z2MQTT sowohl einzelne Lampen als auch Gruppen ansteuern - Sofern die Gruppe aus den selben Lampen besteht.

    Bei Fragen oder Anregungen sagt gerne bescheid

    EDIT: Datei korrigiert
    Angehängte Dateien
    Zuletzt geändert von Kuestennerd; 23.12.2024, 22:18.
  • Markuslox
    Azubi
    • 13.01.2024
    • 3

    #2
    Hi,
    das ist genau was ich suche.
    Ich nutze einen Loxberry als MQTT Broker, muss ich da nicht den Username und das Passwort im Programmstein bzw der IP Adresse mit angeben?
    Wenn ja dann wie?
    Lieben Gruß.

    Kommentar

    • dkieslinger
      Smart Home'r
      • 29.01.2021
      • 93

      #3
      Hey zusammen,
      ich nutze einen Transformer im MQTT-Broker auf dem Loxberry.

      Das Script im Anhang muss nur in das Verzeichnis /opt/loxberry/bin/mqtt/transform/custom/udpin. Danach den Broker einmal neustarten.

      Dann muss nur noch ein virtueller Ausgang für den Virberry angelegt werden.
      Adresse /dev/udp/<IP_DES_LOXBERRY>/11884
      Ausgangsbefehl lautet bei Befehlt EIN (analog):
      publish zigbee_light haus/device/light/kleider/decke <v>

      wobei "haus/device/light/kleider/decke" der name im Zigbee2MQTT ist.

      Fertig. Finde übersichtlicher geht es nicht in der Config...
      Klicke auf die Grafik für eine vergrößerte Ansicht

Name: grafik.png
Ansichten: 283
Größe: 11,1 KB
ID: 448841

      Weitere Parameter können am Ende angegeben werden, z.B.
      publish zigbee_light dach/device/light/naeh/decke_rgbw1 <v> rgb power_on
      -> eine RGBW Lampe mit der Option power_on

      Mögliche Optionen:
      rgb -> RGB-Lampe
      min -> default 153
      max -> default 370
      remember -> remember_state
      power_on -> power_on_behavior = previous

      Transition ist immer 0.5

      Viel Spaß damit

      Kommentar


      • hismastersvoice
        hismastersvoice kommentierte
        Kommentar bearbeiten
        Habe das Skript mal versucht...

        Mit RGB und CCT läuft es wie gewünscht.
        Wenn ich aber eine Hue habe die nur 0-254 (0-100%) bekomme ich es nicht hin.
        Wie muss der Lichtbaustein konfiguriert sein um eine 0-100% Leuchte zu betreiben?

      • dkieslinger
        dkieslinger kommentierte
        Kommentar bearbeiten
        Einfarbig? Zugegeben habe ich überall nur CCT bzw. RGB. In dem Script aus dem letzten Posting ist auch eine 0-100 Einteilung.
        Hab ich nicht in meinem Script. Sollte aber leicht rein gehen.
    • Markuslox
      Azubi
      • 13.01.2024
      • 3

      #4
      Zitat von Kuestennerd
      Hey zusammen,

      ich habe vor längerer Zeit Hue rausgeschmissen und durch Zigbee2MQTT ersetzt um mehr Auswahl bei den Lampen zu haben und konnte dadurch das Script nicht mehr verwenden. Darauf basierend habe ich einen neuen Code erstellt und wollte ihn euch zur Verfügung stellen. Seitdem ich das Script laufen habe reagieren die Lampen zuverlässiger und die Seiten sind viel aufgeräumter.

      Die Lampen habe ich mit einem Merker mit dem Typ TEXT angeschlossen und konnten so einfach übernommen werden. Der Ausgang vom Lichtbaustein ist Lumitech DMX. Es lassen sich damit in Z2MQTT sowohl einzelne Lampen als auch Gruppen ansteuern - Sofern die Gruppe aus den selben Lampen besteht.

      Bei Fragen oder Anregungen sagt gerne bescheid

      Achtung in deinem Script ist ein Fehler drin. Habe jetzt mehrere Stunden versucht es zum laufen zu bringen bis mir dann aufgefallen ist dass bei Lampe 1 in der Zeile mit "cct_max[0] = 0:" ein Doppelpunkt am ende statt einem Semikolon ist. Wenn man es ändert funktioniert es super. Danke nochmals!!!

      Kommentar

      • Kuestennerd
        Azubi
        • 14.11.2024
        • 3

        #5
        Hey, danke für die Rückmeldungen Habe fix die angepasste Version hochgeladen. Wollte euch nicht ärgern

        Kommentar

        • bürgili
          Azubi
          • 04.11.2018
          • 1

          #6
          Zitat von dkieslinger
          Hey zusammen,
          ich nutze einen Transformer im MQTT-Broker auf dem Loxberry.

          Das Script im Anhang muss nur in das Verzeichnis /opt/loxberry/bin/mqtt/transform/custom/udpin. Danach den Broker einmal neustarten.

          ....
          Hi zusammen,
          ich hab bisher auch immer alles mit Logiken in der Config gemacht, was mit unterschiedlichen Leuchtentypen bald sehr voll, komplex und umständlich wurde.

          Inspiriert von diesem Thread und dem Script aus dem Beitrag von dkieslinger hab ich mich daran gemacht den Transformator für mich zu erweitern um die unterschiedlichen Leuchtentypen- um jetzt beim zusammenschreiben des Forumsbeitrages zu bemerken, dass schon jemand schneller war und es das schon fertig gegeben hätte 😉

          Hier der Link zum Zigbee LED- Transformer, der im Grunde genau das gleiche macht wie mein aufgebohrtes Script:



          Damit können neben tuneable white und RGB auch normale Dimmbaren LED und RGBW angesteuert werden.

          Funktioniert bei mir perfekt mit Tuya und Ikea Leuchten und Dimmern, sogar zuverlässiger und schneller als zuvor. Und die Config ist auch plötzlich wieder komplett leer ohne die Logiken 😊

          Danke fürs zeigen, hätte ich diese Transformatoren doch nur früher für mich entdeckt!

          Kommentar

          • Andi910
            Azubi
            • In den letzten 3 Wochen
            • 1

            #7
            [QUOTE=Kuestennerd;n446728]Hey zusammen,

            ich habe vor längerer Zeit Hue rausgeschmissen und durch Zigbee2MQTT ersetzt...

            Hi, auch ich suche genau sowas, Ikea RGBW Leuchten über Zigbee2MQTT aus Loxone ansteuern. Ich komme aber nicht weiter. Das PicoC-Script will nichts auf UDP ausgeben.
            Ich habe vor der Zeile stream_write(stream, message, strlen(message));
            ein printf eingebaut: printf("PicoC LED stream_write: %s/set %s", message);
            es wird folgendes ins def.log geschrieben:
            PicoC LED stream_write: zigbee2mqtt/WZ_Spot_alle/set {"color": {"r": 255, "g": 25, "b": 38}, "brightness": 255, "transition": 1}/set XXX
            -> mir fehlt da vorangestellt "/dev/udp/<IP>/<Port>/", oder sehe ich das falsch?
            Leider verstehe ich den Code nicht komplett, weiter unten meine ich, dass IP und Port in den String "device" eingebaut wird. Aber scheinbar geht es beim Stream_Write verloren.

            An den (Text)-Ausgang des Programm-Bausteins muss ich doch keinen virtuellen Port mehr anschließen, oder doch?

            Kann mir jemand helfen?

            Kommentar


            • Kuestennerd
              Kuestennerd kommentierte
              Kommentar bearbeiten
              Hey, ich kann das gerade nicht prüfen, aber wenn ich mich richtig erinnere kommen oben die Daten rein (IP) und das Script baut eine Verbindung auf. Dadurch kann der Befehl einzeln gesendet werden.

              An den Baustein muss nichts mehr an den Ausgang. Hast du bereits geprüft, ob du mittels Bausteine die Lampe ansteuern kannst?
          • TomekWaw
            LoxBus Spammer
            • 25.07.2019
            • 438

            #8
            Kuestennerd Thank you for your script.
            I have a question though. I have Aqara bulb (turnable white) that works with this script mostly ok, but I can't turn it off.
            Brightness 0 turns it off for friction of second and than the bulb turns itself on again.
            AFAIK this is a common issue with some bulbs that don't turn off with brightness 0 only, but they also seem to require state turned off.
            I'm trying to figure it out in the script how to add this but pico-c is looks like black magic to me


            Zuletzt geändert von TomekWaw; vor 19 Stunden.
            Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

            Kommentar

            • TomekWaw
              LoxBus Spammer
              • 25.07.2019
              • 438

              #9
              This very same bulb works well with standard logic blocks:
              a) Formula, to calculate Brightness
              b) Formula, to calculate Kelvin
              c) Scaler, to transform Kelvin to Zigbee CT values (eg. range 163-370)
              d) Status block feeded with those input values:
              ---> I1 = Brightness from a)
              ---> I2 = CT rescaled from c)
              ---> I3= static value (eg. "1 "),
              that sends payload value as such:

              { "brightness": 0, "transition": <v3>, "color_temp": <v2>, "state":"OFF" } - if I1 / brightness is 0
              { "brightness": <v1>, "transition": <v3>, "color_temp": <v2> } - otherwise

              So it seems that this wonderful picoC script lacks state OFF when light is to be turned off by brightness.
              Noch ein oder zwei Jahre mit Loxone und ich werde Deutsch sprechen

              Kommentar

              Lädt...