Skip to content

Commit

Permalink
hue3: Code cleanup and documentation fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
msinn committed May 4, 2024
1 parent babcb34 commit 25935a2
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 83 deletions.
31 changes: 2 additions & 29 deletions hue3/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -518,9 +518,6 @@ def parse_item(self, item):
config_data['transition_time'] = self.get_iattr_value(item.conf, 'hue3_transition_time')

config_data['name'] = '' # to be filled during initialization of v2bridge
#if self.has_iattr(item.conf, 'hue3_reference_light_id'):
# if config_data['resource'] == "group":
# config_data['hue3_reference_light_id'] = self.get_iattr_value(item.conf, 'hue3_reference_light_id')

config_data['item'] = item

Expand All @@ -533,10 +530,6 @@ def parse_item(self, item):
conf_data['id'] = self.get_iattr_value(item.conf, 'hue3_id')
conf_data['resource'] = self.get_iattr_value(item.conf, 'hue3_resource')
conf_data['function'] = self.get_iattr_value(item.conf, 'hue3_function')
# TODO: reference_light_id auf sinnhaftigkeit prüfen
if self.has_iattr(item.conf, 'hue3_reference_light_id'):
if conf_data['resource'] == "group":
conf_data['hue3_reference_light_id'] = self.get_iattr_value(item.conf, 'hue3_reference_light_id')

conf_data['item'] = item
# store config in plugin_items
Expand All @@ -545,13 +538,11 @@ def parse_item(self, item):
if conf_data['resource'] == 'group':
# bridge updates are allways scheduled
self.logger.debug("parse_item: configured group item = {}".format(conf_data))
# Ende alt

self.add_item(item, mapping=mapping, config_data_dict=config_data, updating=True)
return self.update_item

if 'hue3_dpt3_dim' in item.conf:
return self.dimDPT3


def parse_logic(self, logic):
"""
Expand All @@ -562,24 +553,6 @@ def parse_logic(self, logic):
pass


def dimDPT3(self, item, caller=None, source=None, dest=None):
# Evaluation of the list values for the KNX data
# [1] for dimming
# [0] for direction
parent = item.return_parent()

if item()[1] == 1:
# dimmen
if item()[0] == 1:
# up
parent(254, self.get_shortname()+"dpt3")
else:
# down
parent(-254, self.get_shortname()+"dpt3")
else:
parent(0, self.get_shortname()+"dpt3")


def update_item(self, item, caller=None, source=None, dest=None):
"""
Item has been updated
Expand Down Expand Up @@ -742,7 +715,7 @@ def update_group_from_item(self, config_data, item):
transition_time = int(float(transition_time)*1000)
self.run_asyncio_coro(self.v2bridge.groups.grouped_light.set_state(config_data['id'], on, bri, xy, ct, transition_time=transition_time))
elif config_data['function'] == 'bri_inc':
self.logger.warning(f"Groups: {config_data['function']} not implemented")
self.logger.warning(f"Groups: {config_data['function']} not implemented in aiohue")
elif config_data['function'] == 'alert':
self.logger.warning(f"Groups: {config_data['function']} not implemented")
elif config_data['function'] == 'effect':
Expand Down
12 changes: 0 additions & 12 deletions hue3/plugin.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -195,18 +195,6 @@ item_attributes:
de: "Zeit für Übergang (in sec)"
en: "Time for transition (in sec)"

hue3_dpt3_dim:
type: bool
description:
de: "Aktiviert DPT3 dimmen"
en: "Enabled DPT3 dimming"

hue3_reference_light_id:
type: str
description:
de: "ID der des referenzwert gebenden Lichtes. Nur möglich wenn resource == group"
en: "ID of the light giving the reference value. Only possible if resource == group"


item_structs:
# Definition of item-structure templates for this plugin (enter 'item_structs: NONE', if section should be empty)
Expand Down
84 changes: 42 additions & 42 deletions hue3/user_doc.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
.. index:: Plugins; hue_apiv2
.. index:: hue_apiv2 hue
.. index:: Plugins; hue3
.. index:: hue3 hue

=========
hue_apiv2
=========
====
hue3
====

.. image:: webif/static/img/plugin_logo.png
:alt: plugin logo
Expand Down Expand Up @@ -59,7 +59,7 @@ Konfiguration
Die grundlegende Konfiguration des Plugins selbst, erfolgt durch das Web Interface des Plugins. Mit dem Web Interface
kann die Verbindung zu einer Bridge hergestellt werden kann. Optionale weitere Einstellungen
(z.B. default_transitionTime) können über die Admin GUI vorgenommen werden. Diese Parameter und die Informationen
zur Item-spezifischen Konfiguration des Plugins sind unter :doc:`/plugins_doc/config/hue_apiv2` beschrieben.
zur Item-spezifischen Konfiguration des Plugins sind unter :doc:`/plugins_doc/config/hue3` beschrieben.

|
Expand Down Expand Up @@ -99,25 +99,25 @@ Leuchten Templates vom Plugin mitgeliefert.

Grundsätzliche Item Definitionen für Leuchten:

- **hue_apiv2.light** - Standard Definition für Philips Hue Leuchten
- **hue_apiv2.light_ww** - Standard Definition für Philips Warmwhite Leuchten
- **hue_apiv2.light_xy** - Standard Definition für Leuchten, die kein **sat** und **hue** unterstützt, sondern nur **xy**
- **hue3.light** - Standard Definition für Philips Hue Leuchten
- **hue3.light_ww** - Standard Definition für Philips Warmwhite Leuchten
- **hue3.light_xy** - Standard Definition für Leuchten, die kein **sat** und **hue** unterstützt, sondern nur **xy**

Erweiterte Item Definitionen für oben genannten Leuchten-Typen:

- **hue_apiv2.light_extended**
- **hue_apiv2.light_ww_extended**
- **hue_apiv2.light_xy_extended**
- **hue3.light_extended**
- **hue3.light_ww_extended**
- **hue3.light_xy_extended**


Ein Item für eine Hue Leuchte kann einfach folgendermaßen konfiguriert werden, indem nur die Id der zu
steuernden Leuchts als ``hue_apiv2_id`` angegeben wird:
steuernden Leuchts als ``hue3_id`` angegeben wird:

.. code-block:: yaml
test_leuchte:
hue_apiv2_id: d299371e-098d-4836-9669-d8ad3b5043c0
struct: hue_apiv2.light
hue3_id: d299371e-098d-4836-9669-d8ad3b5043c0
struct: hue3.light
Damit werden zum Item ``test_leuchte`` unter anderem die Sub-Items ``onoff``, ``level``, ``xy`` und ``ct`` definiert
und passend konfiguriert.
Expand All @@ -127,38 +127,38 @@ Das hat die selbe Wirkung, als hätte man ohne Struktur Template folgende Item-K
.. code-block:: yaml
test_leuchte:
hue_apiv2_id: d299371e-098d-4836-9669-d8ad3b5043c0
hue3_id: d299371e-098d-4836-9669-d8ad3b5043c0
name: Vorlage-Struktur für eine Hue Leuchte
type: foo
hue_apiv2_resource: light
hue3_resource: light
onoff:
type: bool
hue_apiv2_resource: ..:.
hue_apiv2_id: ..:.
hue_apiv2_function: on
hue3_resource: ..:.
hue3_id: ..:.
hue3_function: on
level:
type: num
hue_apiv2_resource: ..:.
hue_apiv2_id: ..:.
hue_apiv2_function: bri
hue3_resource: ..:.
hue3_id: ..:.
hue3_function: bri
xy:
type: num
hue_apiv2_resource: ..:.
hue_apiv2_id: ..:.
hue_apiv2_function: xy
hue3_resource: ..:.
hue3_id: ..:.
hue3_function: xy
ct:
type: num
hue_apiv2_resource: ..:.
hue_apiv2_id: ..:.
hue_apiv2_function: ct
hue3_resource: ..:.
hue3_id: ..:.
hue3_function: ct
Das Struktur Template **hue_apiv2.light_extended** definiert zusätzlich noch die Sub-Items ``light_name``, ``reachable``,
Das Struktur Template **hue3.light_extended** definiert zusätzlich noch die Sub-Items ``light_name``, ``reachable``,
``colormode``, ``xy``, ``light_type``, ``modelid`` und ``swversion``. Die Sub-Items
``reachable``, ``colormode``, ``light_type``, ``modelid`` und ``swversion`` können nur aus der Bridge gelesen
werden. Änderungen an dem Item werden von der Bridge ignoriert.
Expand All @@ -167,16 +167,16 @@ werden. Änderungen an dem Item werden von der Bridge ignoriert.
Item Attribute
--------------

Das Plugin verwendet die Item Attribute: ``hue_apiv2_id``, ``hue_apiv2_resource``, ``hue_apiv2_function``
und ``hue_apiv2_transition_time``.
Das Plugin verwendet die Item Attribute: ``hue3_id``, ``hue3_resource``, ``hue3_function``
und ``hue3_transition_time``.

Mit ``hue_apiv2_resource`` wird festgelegt, auf welche Resource der Bridge zugegriffen werden soll: ``light``, ``group``,
Mit ``hue3_resource`` wird festgelegt, auf welche Resource der Bridge zugegriffen werden soll: ``light``, ``group``,
``scene``, ``sensor``, ``button`` oder ``device_power``.

Mit ``hue_apiv2_id`` wird festgelegt auf welche Resource des gewählten Typs zugegriffen werden soll. Die Id kann im
Mit ``hue3_id`` wird festgelegt auf welche Resource des gewählten Typs zugegriffen werden soll. Die Id kann im
Web Interface im Tab des entsprechenden Resource-Typs nachgesehen werden.

Mit ``hue_apiv2_function`` wird festgelegt, welche Funktion der gewählten Resource abgefragt oder gesteuert werden soll.
Mit ``hue3_function`` wird festgelegt, welche Funktion der gewählten Resource abgefragt oder gesteuert werden soll.
Für den Resource-Typ ``light`` sind die folgenden Funktionen implementiert (einige erlauben nur die Abfrage):

- ``on``
Expand All @@ -198,7 +198,7 @@ Für den Resource-Typ ``light`` sind die folgenden Funktionen implementiert (ein


Die vollständige Übersicht über die unterstützen Funktionen und die Datentypen dazu kann auf der
Seite :doc:`/plugins_doc/config/hue_apiv2` in der Beschreibung des Item Attributes ``hue_apiv2_function`` nachgelesen
Seite :doc:`/plugins_doc/config/hue3` in der Beschreibung des Item Attributes ``hue3_function`` nachgelesen
werden.

Um zum Beospiel den Namen der Leuchte mit der Id d299371e-098d-4836-9669-d8ad3b5043c0 abzufragen, muss ein Item
Expand All @@ -208,17 +208,17 @@ folgendermaßen konfiguriert werden:
leuchten_name:
type: str
hue_apiv2_resource: light
hue_apiv2_id: d299371e-098d-4836-9669-d8ad3b5043c0
hue_apiv2_function: name
hue3_resource: light
hue3_id: d299371e-098d-4836-9669-d8ad3b5043c0
hue3_function: name
|
Web Interface
=============

Das hue_apiv2 Plugin verfügt über ein Webinterface, mit dessen Hilfe die Items die das Plugin nutzen
Das hue3 Plugin verfügt über ein Webinterface, mit dessen Hilfe die Items die das Plugin nutzen
übersichtlich dargestellt werden. Außerdem können Informationen zu den Devices angezeigt werden,
die an der Hue Brigde angemeldet sind.

Expand All @@ -229,8 +229,8 @@ Aufruf des Webinterfaces
Das Plugin kann aus der Admin GUI (von der Seite Plugins/Plugin Liste aus) aufgerufen werden. Dazu auf der Seite
in der entsprechenden Zeile das Icon in der Spalte **Web Interface** anklicken.

Außerdem kann das Webinterface direkt über ``http://smarthome.local:8383/plugin/hue_apiv2`` bzw.
``http://smarthome.local:8383/plugin/hue_apiv2_<Instanz>`` aufgerufen werden.
Außerdem kann das Webinterface direkt über ``http://smarthome.local:8383/plugin/hue3`` bzw.
``http://smarthome.local:8383/plugin/hue3_<Instanz>`` aufgerufen werden.

|
Expand Down

0 comments on commit 25935a2

Please sign in to comment.