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

  • whe
    antwortet
    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

    Einen Kommentar schreiben:


  • whe
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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.

    Einen Kommentar schreiben:


  • Holoman5
    antwortet
    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

    Einen Kommentar schreiben:


  • Robert
    antwortet
    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

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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).

    Einen Kommentar schreiben:


  • Robert
    antwortet
    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?

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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.

    Einen Kommentar schreiben:


  • Robert
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Was für eine Bridge nutzt Du?

    Einen Kommentar schreiben:


  • Robert
    antwortet
    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.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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)

    Einen Kommentar schreiben:


  • Robert
    antwortet
    Hallo Martin,

    danke dir für die Mühe!

    Ich habe meinen "Fehler" nun auch gefunden: ich muss "hue2_refence_light_id" (sic!) setzen - da in der Hue-App die Gruppe auch ein "ein/aus" ohne Referenzobjekt hat, dachte ich die API/Bridge würde da einen Wert (der dann zwangsweise konsistent wäre) mitliefern. Also sprich, die Hue-App gibt ja auch ein "ein/aus" an, welcher nicht von einem (von mit in smarthomeNG "frei" gewählten Objekt abhängt. Egal, funktioniert.

    Da ich das vorgeschlagene struct verwende, wäre ein "hue2_refence_light_id: ..:." in allen (automatischen) Item-Defintionen super.

    Und evtl. im nächsten Release aus "...refence..." ein "...reference..." machen. ;-)

    Grüße
    Robert

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Einen Push von der Bridge sieht das Hue API v1 nicht vor. Der kommt jetzt mit dem API v2, welches im Plugin noch nicht implementiert ist (kommt aber).
    Das API v2 wird aber nur von der 2. Generation der Hue Bridge unterstützt. Alles, was an neuen Features mit dem neuen API kommt, wird mit der alten (runden) Bridge und mit der Software Bridge DECONZ nicht funktionieren.

    Ich muss noch sehen, ob ich das API v2 in das hue2 Plugin mit rein bekomme, ohne die API v1 Kompatibilität zu verlieren, oder ob es ein neues Plugin geben muss.

    Einen Kommentar schreiben:

Lädt...
X