Ankündigung

Einklappen
Keine Ankündigung bisher.

Support Thread für das hue2 Plugin

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

    Zitat von Robert Beitrag anzeigen
    Da ich das vorgeschlagene struct verwende, wäre ein "hue2_refence_light_id: ..:." in allen (automatischen) Item-Defintionen super.
    Ist doch drin.

    Das Item Attribut heisst in der struct übrigens hue2_id und nicht hue2_refence_light_id.

    Wo hast Du denn eine struct mit hue2_refence_light_id​ her?

    Du musst nur im übergeordneten Item die hue_id angeben. In den darunter liegenden Sub Items ist das Attribut mit ..:. vorbelegt (.. = nehme aus dem Parent Item, . = das namensgleiche Attribut)
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      Folgende "Hacks" brauchte ich jetzt auch nach Konsultation von Doku und Quellcode des Plugins:

      - für ein "reachable" einer Gruppe (z.B. Antenne im smartVISU Widget) reicht es nicht, eine "hue2_refence_light_id" anzugeben, da das Plugin per se kein "reachable" für Groups vorsieht:

      aus dem Plugin-Code:
      Code:
          hue_group_action_values          = ['on', 'bri', 'hue', 'sat', 'ct', 'xy', 'bri_inc', 'colormode', 'alert', 'effect']
          hue_light_action_writable_values = ['on', 'bri', 'hue', 'sat', 'ct', 'xy', 'bri_inc']
          hue_light_state_values           = ['on', 'bri', 'hue', 'sat', 'ct', 'xy', 'colormode', 'reachable', 'alert', 'effect']
          hue_light_state_writable_values  = ['on', 'bri', 'hue', 'sat', 'ct', 'xy', 'alert', 'effect']
      
      ​    hue_group_action_values          = ['on', 'bri', 'hue', 'sat', 'ct', 'xy', 'bri_inc', 'colormode', 'alert', 'effect']
      ​
      daher ist hier der Umweg über eine "light" resource, deren hue2_id = ..:hue2_refence_light_id ist, notwendig.

      - da in einem item struct vom typ "group" eben keine Vererbung von "hue2_refence_light_id" vorgesehen ist, müssen die halt "händisch" hinzugefügt werden:

      aus der plugin.yaml:
      Code:
          group:
              name: Vorlage-Struktur für eine Hue Gruppe
      
              type: foo
              hue2_resource@instance: group
              #hue2_id@instance: 1
      
              onoff:
                  type: bool
                  enforce_updates: True
                  hue2_resource@instance: ..:.
                  hue2_id@instance: ..:.
                  hue2_function@instance: on
      
      ​
      hier "fehlt" ein "hue2_refence_light_id@instance: ..:."

      Daher benötige ich - gerne Tipps wie kürzer - folgende Definitionen
      Code:
          Lumibaer:
              hue2_id: 7
              struct: hue2.light_extended
              # available to Alexa by HUE skill
      
              onoff:
                  knx_dpt: 1
                  knx_listen: 0/4/2        
      
          Deckenleuchte:
              hue2_id: 3
              struct: hue2.group
              hue2_refence_light_id: 9
      
              onoff:
                  hue2_refence_light_id: ..:.
      
                  knx_dpt: 1
                  knx_send: 1/2/11
                  knx_listen:
                  - 1/2/11
                  - 0/4/2
                  knx_status: 1/2/14
      
              level:
                  hue2_refence_light_id: ..:.
      
                  knx_dpt: 5
                  knx_send: 1/2/13
                  knx_listen: 1/2/13
      
                  dim:
                      type: list
                      enforce_updates: 'true'
                      initial_value: [0, 0]
                      knx_dpt: 3
                      knx_listen: 1/2/12
                      on_update: .. = min(sh...() + 4*value[1], 255) if (value[0] == 1) else max (sh...() - 4*value[1], 0)
      
              hue:
                  hue2_refence_light_id: ..:.
      
              sat:
                  hue2_refence_light_id: ..:.
      
              ct:
                  hue2_refence_light_id: ..:.
      
              colormode:
                  hue2_refence_light_id: ..:.
      
              xy:
                  hue2_refence_light_id: ..:.
      
              reachable:
                  type: bool
                  hue2_resource: light
                  hue2_id: ..:hue2_refence_light_id
                  hue2_function: reachable
       ​
      Zuletzt geändert von Robert; 18.12.2022, 14:29.

      Kommentar


        Laut der Hue API Doku ist reachable nur für lights und nicht für groups definiert.

        Was für eine Bridge nutzt Du?
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          Hi Martin!

          Zitat von Msinn Beitrag anzeigen
          Laut der Hue API Doku ist reachable nur für lights und nicht für groups definiert.
          Du wirst da völlig Recht mit haben. Aber evtl. wäre es eine Option, wenn man an anderer Stelle für "ein/aus" etc. ein Referenz-Objekt akzeptiert, das auch für "Reachable" zu tun. Mit meiner Item-Definition geht's natürlich auch in 4 Zeilen.

          Zitat von Msinn Beitrag anzeigen
          Was für eine Bridge nutzt Du?
          HTML-Code:
             Philips hue bridge 2015 v2   1.53.0  ​
          Es funktioniert jetzt alles super - wollte nur Feedback geben bzgl. möglicher "hue2_refence_light_id" Vererbung in structs, dem reachable und dem Typo. Alles funktioniert super. Evtl. den PR anschauen - über den sind glaube ich ein paar Leute in der Vergangenheit gestolpert da selbst mit harter Defintion der Bridge sich das Plugin an der Exception weghängt.

          Kommentar


            Das Attribut hue2_refence_light_id ist mit einem PR dazu gekommen. Ich kenne das weiter nicht. Da hat der PR Autor wohl vergessen die structs in der plugin.yaml zu pflegen.

            Die Probleme mit der Discovery können gut sein. Ich habe die Discovery vor einiger Zeit kurzfristig ändern müssen, weil Philips eine alte Form der Discovery bereits abgeschaltet hat, als sie die Bridge der ersten Generation für obsolet erklärten.
            Viele Grüße
            Martin

            There is no cloud. It's only someone else's computer.

            Kommentar


              Okay, ein letztes - weil du mich jetzt neugierig gemacht hast:

              grafik.png
              Da gibt's bei der "group" zwei Zustände "all_on" und "any_on" - schätze "any_on" ist das was ich such[t]e - bekommt man das deiner Meinung nach halbwegs intelligent verwendet um den onoff Zustand einer Group zu aktualisieren?

              Kommentar


                Da muss ich mal rein schauen. all_on und any_on waren mir noch nicht über den Weg gelaufen. Bei der Implementierung muss ich dann vorsichtig sein, das das wohl nur für die Bridge v2 funtioniert. Die Bridge v1 und die Software Bridge DECONZ unterstützen nur ein erheblich älteres v1 API (nur die 1.18 und nicht die 1.53 die Du in der neueren Bridge hast).
                Viele Grüße
                Martin

                There is no cloud. It's only someone else's computer.

                Kommentar


                  Hallo Martin,

                  wie das so ist, packt es einen dann und man macht immer weiter:

                  Habe jetzt in https://github.com/smarthomeNG/plugins/pull/667 alles reingepackt:

                  - Fix der Service discovery
                  - Fix der Typos mit "hue2_refence_light_id" und weitere (unwichtige) Typos
                  - (defensive!) Nutzung von "any_on" wenn in dem Item kein "hue2_reference_light_id" definiert ist (bricht also nicht alte Konfigurationen) - siehe auch Anmerkungen im PR.

                  Denke das sollte auch funktionieren/sicher sein, wenn die alten Bridges das nicht können... (da Exceptions gefangen werden und auf None überall überprüft wird).

                  Grüße
                  Robert

                  Kommentar


                    Hallo!

                    hat vlt. jemand für mich ein Beispiel für die Item YAML von einem Hue Bewegungsmelder?

                    Bekomm das irgendwie nicht hin und hab dazu auch nix gefunden.

                    Gibt es eine Struktur wie bei den Leuchten? (hab auch nix gefunden)

                    Im Hue2 Plugin wird er angezeigt.
                    hue_sensor.jpg

                    Kommentar


                      Mit einem Beispiel für einen Bewegungsmelder kann ich Dir leider nicht weiter helfen. (Ich habe nur Leuchten im Einsatz)

                      Zu Deiner Frage
                      Zitat von Holoman5 Beitrag anzeigen
                      Gibt es eine Struktur wie bei den Leuchten?
                      In der Admin GUI werden im Menü unter Items/Struktur Templates alle geladenen Strukturen, sortiert nach den Plugins welche sie definierten, angezeigt.

                      ...und: Da gibt es bisher nur Strukturen, die die Leuchten und Gruppen von Leuchten abbilden.

                      Ein Ansatz, wie Du Dich dem Thema nähern kannst habe ich:

                      Schau im Web Interface für das Hue2 Plugin im Tab Hue Sensoren mal, was dort unter Konfiguration für den Bewegungsmelder steht. Ich vermute, da müsste unter anderen 'on': True oder 'on': False​ stehen.

                      Meine Vermutung ist, dass der Wert für 'on' True bei erkannter Bewegung ist und False, bei keiner Bewegung.

                      In diesem Fall könntest Du Dir zum Test ein Item folgendermaßen einrichten:

                      Code:
                      bewegungsmelder:
                          type: bool
                          hue2_resource: sensor
                          hue2_function: on
                          hue2_id: 46
                      Das sollte (als möglicher Ansatz) so auch aus der Konfigurationsdokumentation des Plugins hervorgehen.
                      Viele Grüße
                      Martin

                      There is no cloud. It's only someone else's computer.

                      Kommentar


                        damit übe ich auch gerade, das Wesentliche habe ich.
                        schicke gleich meine item Konfiguration, wenn's fertig ist

                        Kommentar


                          sorry, gebe es für heute auf nach gefühlten 100 Tests.
                          das plugin liefert keine Werte für die Items; bei den Lampen geht's einwandfrei.
                          ich bleibe bei meiner Logic, die per HTTP die Werte abfragt, das funktioniert schon seit ein paar Jahren:
                          Code:
                          # HUE Sensor 1
                          import urllib.request
                          import json
                          
                          myurl = "http://192.168.178.50/api/..................../sensors"
                          
                          req = urllib.request.urlopen(myurl)
                          data = req.read().decode('UTF-8')
                          
                          j = json.loads(data)
                          
                          sh.DG.Galerie.Sensor.daylight(j['1']['state']['daylight'])
                          sh.DG.Galerie.Sensor.temperature(j['2']['state']['temperature'])
                          sh.DG.Galerie.Sensor.presence(j['3']['state']['presence'])
                          sh.DG.Galerie.Sensor.Motion(j['3']['config']['on'])
                          sh.DG.Galerie.Sensor.Battery(j['3']['config']['battery'])
                          sh.DG.Galerie.Sensor.lightlevel(j['4']['state']['lightlevel'])
                          auch ein loglevel DEBUG beim HUE2 plugin hilft nicht wirklich weiter.

                          Kommentar


                            m.E. müssten die Item definition für den Sensor so aussehen:
                            Code:
                                    Sensor:
                                        name: HueS1
                                        hue2_resource: sensor
                            
                                        daylight:
                                            name: Daylight
                                            type: bool
                                            hue2_resource: sensor
                                            hue2_function: daylight
                                            hue2_id: 1
                            
                                        temperature:
                                            name: Temperatur
                                            type: num
                                            hue2_resource: sensor
                                            hue2_function: temperature
                                            hue2_id: 2
                                            cache: 'on'
                                            eval: round(value / 100, 1)
                                            database: 'init'
                                            sv_widget: "{{ plot.period('item', 'item', 'max', '24h', '', '', '', '', 'Luft', '', '', '', '1h') }}"
                            
                                        presence:
                                            name: Presence
                                            type: bool
                                            hue2_resource: sensor
                                            hue2_function: presence
                                            hue2_id: 3
                                            
                                        lightlevel:
                                            name: Helligkeit
                                            type: num
                                            cache: 'on'
                                            hue2_resource: sensor
                                            hue2_function: lightlevel
                                            hue2_id: 4
                                            database: 'init'
                                            sv_widget: "{{ plot.period('item', 'item', 'max', '72h', '', '', '', '', 'Licht', '', '', '', '1h') }}"
                            dann fehlen aber wohl META Daten; finde aber nicht wo so etwas definiert ist:
                            Code:
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: DG.Gastl.Steckdose.AnAus
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: DG.Gastl.Steckdose.reachable
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: DG.Galerie.Licht.Decke.AnAus
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: DG.Galerie.Licht.Decke.dimmen
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: DG.Galerie.Licht.Decke.reachable
                            2023-01-21  12:13:18 WARNING  lib.metadata        Item 'DG.Galerie.Sensor.daylight', attribute 'hue2_function': Invalid value 'daylight' for attribute 'hue2_function' -> using '' instead (defined in Dachgeschoss.yaml)
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: Daylight
                            2023-01-21  12:13:18 WARNING  lib.metadata        Item 'DG.Galerie.Sensor.temperature', attribute 'hue2_function': Invalid value 'temperature' for attribute 'hue2_function' -> using '' instead (defined in Dachgeschoss.yaml)
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: Temperatur
                            2023-01-21  12:13:18 WARNING  lib.metadata        Item 'DG.Galerie.Sensor.presence', attribute 'hue2_function': Invalid value 'presence' for attribute 'hue2_function' -> using '' instead (defined in Dachgeschoss.yaml)
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: Presence
                            2023-01-21  12:13:18 WARNING  lib.metadata        Item 'DG.Galerie.Sensor.lightlevel', attribute 'hue2_function': Invalid value 'lightlevel' for attribute 'hue2_function' -> using '' instead (defined in Dachgeschoss.yaml)
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: Helligkeit
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: EG.Wohnen.Licht.Stehle.AnAus
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: EG.Wohnen.Licht.Stehle.dimmen
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: EG.Wohnen.Licht.Sideboard.AnAus
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: EG.Wohnen.Licht.Sideboard.dimmen
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: EG.Wohnen.Licht.Lowboard.AnAus
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: EG.Wohnen.Licht.Lowboard.dimmen
                            2023-01-21  12:13:18 DEBUG    plugins.hue2        parse item: EG.Diele.Eingang.AnAus
                            in der Doku steht ja auch folgendes:
                            image.png

                            Kommentar


                              Die Metadaten sind in der Datei plugin.yaml im Verzeichnis des jeweiligen Plugins definiert.

                              Du könntest zum Test die entsprechenden Funktionen mal ergänzen.

                              Im Abschnitt item_attributes: gibt es den Eintrag hue2_function:
                              Dort werden unter dem key valid_list: dir gültigen Werte hinterlegt und unter valid_list_description: wird die Beschreibung für die gültigen Werte hinterlegt. (Diese Beschreibungen dienen zur automatischen Erstellung Konfigurationsdoku des Plugins.

                              Wenn das bei Dir funktioniert, würde ich die Werte und Beschreibungen im Plugin ergänzen. Das ganze Sensor Thema bin ich nicht angegangen, da ich keine Sensoren habe/nutze.
                              Viele Grüße
                              Martin

                              There is no cloud. It's only someone else's computer.

                              Kommentar


                                es reicht wohl nicht in der datei plugin.yaml die functions zu ergänzen:
                                Code:
                                          - alert
                                          - effect
                                          - daylight
                                          - temperature
                                          - presence
                                          - lightlevel
                                aber die warnings verschwinden dadurch schon mal.
                                nur: warum wird die Item Struktur nicht richtig aufgelöst ?
                                Code:
                                2023-01-21  12:47:04 DEBUG    plugins.hue2        parse item: DG.Galerie.Licht.Decke.AnAus
                                2023-01-21  12:47:04 DEBUG    plugins.hue2        parse item: DG.Galerie.Licht.Decke.dimmen
                                2023-01-21  12:47:04 DEBUG    plugins.hue2        parse item: DG.Galerie.Licht.Decke.reachable
                                2023-01-21  12:47:04 DEBUG    plugins.hue2        parse item: Daylight
                                2023-01-21  12:47:04 DEBUG    plugins.hue2        parse item: Temperatur
                                2023-01-21  12:47:04 DEBUG    plugins.hue2        parse item: Presence
                                2023-01-21  12:47:04 DEBUG    plugins.hue2        parse item: Helligkeit
                                2023-01-21  12:47:04 DEBUG    plugins.hue2        parse item: EG.Wohnen.Licht.Stehle.AnAus
                                2023-01-21  12:47:04 DEBUG    plugins.hue2        parse item: EG.Wohnen.Licht.Stehle.dimmen
                                da bin ich jetzt am Ende mit meinem Latein.

                                Kommentar

                                Lädt...
                                X