Ankündigung

Einklappen
Keine Ankündigung bisher.

Philips HUE Plugin (NEU) v1.0 released

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

    Hallo zusammen,

    ich besitze nun eine HUE Lampe , das EIN/Aus Schalten sowie dimmen funktioniert.

    Jedoch möchte ich den aktuellen Dimmwert in % in der Visu abrufen jedoch scheitere ich daran.

    habe die items wie folgt definiert.


    Code:
        Essen:
            Indirekt:
                name: schalten
                type: bool
                knx_dpt: 1
                knx_init: 0/1/27
                knx_send: 2/1/12
            Lampe:
                hue_lamp_id: 1
                hue_bridge_id: 0
                hue_lamp_type: 0
                AnAus:
                    type: bool
                    visu_acl: rw
                    knx_dpt: 1
                    knx_listen: 2/1/7
                    knx_send: 0/1/12
                    hue_send: 'on'
                    hue_listen: 'on'
                    dimmen:
                        type: num
                        cache: 'on'
                        hue_send: bri
                        hue_listen: bri
                        knx_send: 0/1/31
                        visu_acl: rw
                        dim:
                            type: list
                            knx_dpt: 3
                            knx_listen: 2/2/11
                            hue_dim_max: 255
                            hue_dim_step: 10
                            hue_dim_time: '0.2'

    Desweiteren würde ich gerne die Szenen der Hue abrufen wie realiesiert man das am besten?



    Danke

    Gruss Oliver

    Projektleiter Technische Gebäudeausrüstung

    Kommentar


      Ich verstehe noch nicht woran Du scheiterst. Ich habe für das dimmen die Items analog zu zu Deinen Items definiert (nur nicht als Unteritem zum Unteritem):

      Code:
      wuerfel_terrasse:
          hue_lamp_id: 11
          hue_lamp_type: 0
          type: bool
      
          onoff:
              type: bool
              hue_send: 'on'
              hue_listen: 'on'
      
           level:
              type: num
              hue_send: bri
              hue_listen: bri
              hue_transitiontime: '0.5'
      Um einen %-Wert zu erhalten, musst Du Dir dann ein Hilfsitem anlegen, welches den Wert von level (0-255) in einen Wert von 0-100 umrechnet.

      Für Hue Szenen habe ich ein Item, welchem ich den Namen der Szene (wie in Hue definiert) zuweise. Dann wird die Szene angesteuert:

      Code:
      hue_szenen:
          name: Hue Bridge Szenen
          type: str
          cache: on
          database: yes
          hue_bridge_id: 0
          hue_bridge: 0
          hue_send: scene
          enforce_updates: 'true'
      Viele Grüße
      Martin

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

      Kommentar


        Zitat von Msinn Beitrag anzeigen
        Ich verstehe noch nicht woran Du scheiterst. ....


        Um einen %-Wert zu erhalten, musst Du Dir dann ein Hilfsitem anlegen, welches den Wert von level (0-255) in einen Wert von 0-100 umrechnet.

        Sprich ich müsste mit eval ? einen Umrechner realiesieren?
        Betreffend der Szenen.

        Ich möchte gerne in der Visu die Szenen auswählen können wie baue ich dies am besten stehe gerade etwas auf dem "Schlauch"
        Gruss Oliver

        Projektleiter Technische Gebäudeausrüstung

        Kommentar


          Die habe ich mit der Hue App von Philips gebaut.
          Viele Grüße
          Martin

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

          Kommentar


            Zitat von Msinn Beitrag anzeigen
            Die habe ich mit der Hue App von Philips gebaut.
            Ich habe z.b die Szenen Tageslicht und Lesen erstellt in der HUE App.

            die Items wie folgt definiert:


            Code:
            
                Essen:
                    Indirekt:
                        name: schalten
                        type: bool
                        knx_dpt: 1
                        knx_init: 0/1/27
                        knx_send: 2/1/12
                    Lampe:
                        hue_lamp_id: 1
                        hue_bridge_id: 0
                        hue_lamp_type: 0
                        AnAus:
                            type: bool
                            visu_acl: rw
                            knx_dpt: 1
                            knx_listen: 2/1/7
                            knx_send: 0/1/12
                            hue_send: 'on'
                            hue_listen: 'on'
                            enforce_updates: 'true'
                        level:
                            type: num
                            cache: 'on'
                            hue_send: bri
                            hue_listen: bri
                            dim:
                                type: list
                                knx_dpt: 3
                                knx_listen: 2/2/11
                                hue_dim_max: 255
                                hue_dim_step: 10
                                hue_dim_time: '0.2'
                        hue_szenen:
                            name: Hue Bridge Szenen
                            type: str
                            cache: 'on'
                            database: 'yes'
                            hue_bridge_id: 0
                            hue_bridge: 0
                            hue_send: scene
                            enforce_updates: 'true'

            wenn ich nun im Backend die Szene Lesen oder Tageslicht eingebe passiert nichts.



            LOG:

            Code:
            
            
            2018-12-09  09:14:34 ERROR    plugins.hue      _request: Error: invalid value, Lesen, for parameter, scene
            2018-12-09  09:14:34 ERROR    plugins.hue      _request: Error: invalid value, Lesen, for parameter, scene
            2018-12-09  09:15:04 ERROR    plugins.hue      _request: Error: invalid value, Hell
            , for parameter, scene
            2018-12-09  09:15:04 ERROR    plugins.hue      _request: Error: invalid value, Hell
            , for parameter, scene
            2018-12-09  09:18:45 ERROR    plugins.hue      _request: Error: invalid value, Hell
            , for parameter, scene
            2018-12-09  09:19:33 ERROR    plugins.hue      _request: Error: invalid value, Tageslicht
            , for parameter, scene
            2018-12-09  09:19:33 ERROR    plugins.hue      _request: Error: invalid value, Tageslicht
            , for parameter, scene
            2018-12-09  09:19:45 ERROR    plugins.hue      _request: Error: invalid value, Lesen
            , for parameter, scene
            2018-12-09  09:19:45 ERROR    plugins.hue      _request: Error: invalid value, Lesen
            , for parameter, scene
            Gruss Oliver

            Projektleiter Technische Gebäudeausrüstung

            Kommentar


              Die Szenen haben im Hue System einen anderen Namen (der von der Software selber vergeben wird). Ich kann Dir aber aus dem Kopf nicht sagen wie ich den ermittelt habe. Nitfalls müsstest Du das Hue API bemühen.
              Viele Grüße
              Martin

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

              Kommentar


                Zitat von Msinn Beitrag anzeigen
                Die Szenen haben im Hue System einen anderen Namen (der von der Software selber vergeben wird). Ich kann Dir aber aus dem Kopf nicht sagen wie ich den ermittelt habe. Nitfalls müsstest Du das Hue API bemühen.
                Ah dann werde ich mit der API mal schauen wie die Heissen und dann schauen wie ich das in die Visu einbinden kann.


                Danke dir


                Habe nun mal die API angeworfen und folgendes Erhalten:


                Code:
                
                    "ErzKGYk7ZhXAJcM": {
                        "name": "Tageslicht",
                        "type": "GroupScene",
                        "group": "1",
                        "lights": [
                            "1"
                        ],
                        "owner": "swzWKl7VB4f7eRLxo8B96-o3xxRmzeora4BUYpFK",
                        "recycle": false,
                        "locked": false,
                        "appdata": {
                            "version": 1,
                            "data": "rcjjk_r01"
                        },
                        "picture": "",
                        "lastupdated": "2018-12-09T07:05:51",
                        "version": 2
                    }
                Wobei "ErzKGYk7ZhXAJcM" ja der Szenenname sein müsste. Wenn ich dies im Backend eingebe erhalte ich folgendes Fehler im LOG



                Code:
                
                2018-12-09  09:57:30 ERROR    plugins.hue      _request: Error: invalid value,  ErzKGYk7ZhXAJcM\n, for parameter, scene
                Zuletzt geändert von jonny7792; 09.12.2018, 10:01.
                Gruss Oliver

                Projektleiter Technische Gebäudeausrüstung

                Kommentar


                  Hier ein Beispiel wie ich das mit basic.button gemacht habe. Da siehst Du auch das Namensschema der Hue Szenen (e033b5114-on-0):

                  Code:
                  {{ basic.button(''szenen_terrasse1'', ''wohnung.terrasse.hue_szenen'', ''blau'', icon0~"light_cube.svg", ''e033b5114-on-0'', ''midi'') }}
                  Viele Grüße
                  Martin

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

                  Kommentar


                    Zitat von Msinn Beitrag anzeigen
                    Hier ein Beispiel wie ich das mit basic.button gemacht habe. Da siehst Du auch das Namensschema der Hue Szenen (e033b5114-on-0):

                    Code:
                    {{ basic.button(''szenen_terrasse1'', ''wohnung.terrasse.hue_szenen'', ''blau'', icon0~"light_cube.svg", ''e033b5114-on-0'', ''midi'') }}
                    Nachdem ich shNG neugestartet habe geht es nun seltsamer weise - Danke
                    Zuletzt geändert von jonny7792; 09.12.2018, 11:02.
                    Gruss Oliver

                    Projektleiter Technische Gebäudeausrüstung

                    Kommentar


                      Moin,

                      erstmal vielen Dank für das Plugin, die HUE Devices einfach per KNX zu steuern ist grossartig Dazu habe ich eine Frage:
                      In unserer Esstischlampe haben wir 4 Hue Birnen (als eine Gruppe in der hue App konfiguriert), welche natürlich die selben Settings erhalten sollen.
                      So wie ich es momentan im Plugin gesehen habe, muss ich aber eine hue_lamp_id angeben, sonst fliegt mir die Initialisierung um die Ohren.

                      Gibt es da derzeit eine Möglichkeit, oder muss das Plugin dazu erweitert werden?

                      Danke Euch!
                      Gruß
                      Basti

                      Kommentar


                        Hallo nochmal,

                        nach meinem Versuch gestern bin ich durch den Blick in den Plugin Code etwas schlauer geworden.
                        Dennoch bekomme ich eines noch nicht hin:

                        Meine Items:
                        Code:
                           esszimmer:
                              licht:
                                 esstischlampe:
                                    #hue_lamp_id: 1
                                    hue_group_id: 1
                                    hue_bridge_id: 0
                                    hue_lamp_type: 0
                        
                        #            bridge_name:
                        #               type: str
                        #               hue_listen: bridge_name
                        #
                        #            zigbeechannel:
                        #               type: num
                        #               hue_listen: zigbeechannel
                        #
                        #            mac:
                        #               type: str
                        #               hue_listen: mac
                        #
                        #            dhcp:
                        #               type: bool
                        #               hue_listen: dhcp
                        #
                        #            ipaddress:
                        #               type: str
                        #               hue_listen: ipaddress
                        #
                        #            netmask:
                        #               type: str
                        #               hue_listen: netmask
                        #
                        #            gateway:
                        #               type: str
                        #               hue_listen: gateway
                        #
                        #            utc:
                        #               type: str
                        #               hue_listen: UTC
                        #
                        #            localtime:
                        #               type: str
                        #               hue_listen: localtime
                        #
                        #            timezone:
                        #               type: str
                        #               hue_listen: timezone
                        #
                        #            whitelist:
                        #               type: dict
                        #               hue_listen: whitelist
                        #
                        #            bridge_swversion:
                        #               type: str
                        #               hue_listen: bridge_swversion
                        #
                        #            apiversion:
                        #               type: str
                        #               hue_listen: apiversion
                        #
                        #            swupdate:
                        #               type: dict
                        #               hue_listen: swupdate
                        #
                        #            linkbutton:
                        #               type: bool
                        #               hue_listen: linkbutton
                        #
                        #            portalservices:
                        #               type: bool
                        #               hue_listen: portalservices
                        #
                        #            portalconnection:
                        #               type: str
                        #               hue_listen: portalconnection
                        #
                        #            portalstate:
                        #               type: dict
                        #               hue_listen: portalstate
                        #
                        #
                        #
                        #            reachable:
                        #               type: bool
                        #               hue_listen: reachable
                        #
                        #
                        #            scene:
                        #               type: str
                        #               hue_send: scene
                        #               enforce_updates: 'true'
                        
                                    power:
                                       type: bool
                                       hue_send_group: 'on'
                                       hue_listen_group: 'on'
                                       knx_dpt: 1
                                       knx_cache: 0/0/61
                        
                                    bri:
                                       type: num
                                       knx_dpt: 5
                                       cache: 'on'
                                       hue_send_group: 'bri'
                                       hue_listen_group: 'bri'
                                       hue_transitionTime: '0.4'
                                       knx_send: 0/3/61
                        
                                       dim:
                                           type: list
                                           knx_dpt: 3
                                           knx_listen: 0/1/61
                                           hue_dim_max: 255
                                           hue_dim_step: 10
                                           hue_dim_time: '0.4'
                        
                                    ct:
                                       type: num
                                       hue_send_group: 'ct'
                                       hue_listen_group: 'ct'
                                       visu_acl: rw
                        
                                    sat:
                                       type: num
                                       cache: 'on'
                                       hue_send_group: 'sat'
                                       hue_listen_group: 'sat'
                        
                                    col_r:
                                       type: num
                                       cache: 'on'
                                       hue_send_group: 'col_r'
                        
                                    col_g:
                                       type: num
                                       cache: 'on'
                                       hue_send_group: 'col_g'
                        
                                    col_b:
                                       type: num
                                       cache: 'on'
                                       hue_send_group: 'col_b'
                        
                                    hue:
                                       type: num
                                       cache: 'on'
                                       hue_send_group: 'hue'
                                       hue_listen_group: 'hue'
                                       hue_transitionTime: '0.4'
                        
                                       dim:
                                          type: list
                                          #knx_dpt: 3
                                          #knx_listen: 8/0/12
                                          hue_dim_max: 65535
                                          hue_dim_step: 2000
                                          hue_dim_time: '0.4'
                        Das Dimmen funktioniert soweit mit Glastaster, ruckelt aber in der Mitte.
                        Beim Einschalten bekomme ich folgenden Output in der Konsole:
                        2018-12-16 21:00:37 INFO Main update_lamp_item: no bri item defined for restoring the brightness after swiching on again
                        Da mein bri Objekt aber ansich da sein sollte, weiß ich hier gerade nicht weiter.

                        Im Plugin Init finde ich folgendes:
                        Code:
                            def update_group_item(self, item, caller=None, source=None, dest=None):
                                # methode, die bei einer änderung des items ausgerufen wird wenn die änderung von aussen kommt, dann wird diese abgearbeitet
                                # im konkreten fall heisst das, dass der aktuelle status der betroffene lampe komplett zusammengestellt wird
                                # und anschliessen neu über die hue bridge gesetzt wird.
                        [. . . ]
                                        
                                    if hueGroupIsOn:
                                        # lampe ist an (status in sh). dann können alle befehle gesendet werden
                                        if hueSendGroup == 'on':
                                            # wenn der status in sh true ist, aber mit dem befehl on, dann muss die lampe auf der hue seite erst eingeschaltet werden
                                            if hueIndex + '.bri' in self._sendLampItems:
                                                # wenn eingeschaltet wird und ein bri item vorhanden ist, dann wird auch die hellgkeit
                                                # mit gesetzt, weil die gruppe das im ausgeschalteten zustand vergisst.
                                                self._set_group_state(hueBridgeId, hueGroupId, {'on': True, 'bri': int(self._sendLampItems[(hueIndex + '.bri')]()) , 'transitiontime': hueTransitionTime})
                                            else:
                                                # ansonst wird nur eingeschaltet
                                                self._set_group_state(hueBridgeId, hueGroupId, {'on': True , 'transitiontime': hueTransitionTime})
                                                self.logger.info('[MARKIEREN]update_lamp_item: no bri item defined for restoring the brightness after swiching on again[/MARKIEREN]')
                        Könnte es sein, dass hier noch ein Fehler im Plugin ist und fälschlicherweise auf die Lamp Items und nicht auf die Group Items gecheckt wird?

                        Danke für Eure Hilfe!

                        Gruß
                        Basti

                        Kommentar


                          Hallo zusammen,

                          habe soeben meine ersten Gehversuche mit Zigbee gewagt... Mein Hue-Gateway bzw. Zigbee-Gateway ist ein Conbee II USB Stick von Dresden Elektronik zusammen mit deren deconz-Software. Diese läuft auf dem gleichen Debian-Server wie auch meine smarthome-Instanz. Da hier auch smartVISU auf einem Apache läuft, habe ich die deconz-Software so parametriert, dass diese auf Port 81 erreichbar ist. Allerdings wird der Wert, der dem Plugin in v1.4.4 mit hue_port übergeben wird, nirgends im Plugin verwendet. Das Plugin verwendet nur Port 80. Hab dann mal Zeile 555 in der __init__.py so geändert:

                          Code:
                           url = 'http://' + self._hue_ip[int(hueBridgeId)] [B]+ ':' + self._hue_port[int(hueBridgeId)][/B] + '/api/' + self._hue_user[int(hueBridgeId)] + path
                          Die Authorisierung bei deconz scheint auch etwas speziell zu sein. Ich habe dazu via Restclient einen POST mit json

                          Code:
                          {"devicetype": "smarthome#[I]5beee547b34e73163232d582e08ff850[/I]")
                          an /api geschickt. Sofern in der devonz-Software "App verbinden" aktiv ist (funktioniert für 60 Sekunden), bekommt man als Antwort wiederum ein json:

                          Code:
                          {"username": "[I]JFE67AC46D[/I]")
                          Dieser Username muss dann dem Plugin als hue_user übergeben werden.

                          Dann scheint die Kommunikation zu funktionieren. Ich kann zumindest Gateway-Daten abrufen und eine Osram Smart+ Steckdose schalten...

                          Ich teste mal weiter ...

                          Viele Grüße
                          Bear80

                          Kommentar

                          Lädt...
                          X