debug, change readme and example configs

This commit is contained in:
illuzn
2022-05-30 15:52:11 +09:30
parent 9bb9fcc23b
commit 38030e4a81
3 changed files with 18 additions and 3 deletions

View File

@@ -379,6 +379,7 @@ key | optional | type | default | description
`sleepTimeout` | True | integer | `20` | Timeout for the screen to enter screensaver, to disable screensaver use 0 `sleepTimeout` | True | integer | `20` | Timeout for the screen to enter screensaver, to disable screensaver use 0
`sleepBrightness` | True | integer/complex | `20` | Brightness for the screen to enter screensaver, see example below for complex/scheduled config. `sleepBrightness` | True | integer/complex | `20` | Brightness for the screen to enter screensaver, see example below for complex/scheduled config.
`sleepTracking` | True | string | None | Forces screensaver brightness to 0 in case entity state is not_home or off, can be a group, person or device_tracker entity. `sleepTracking` | True | string | None | Forces screensaver brightness to 0 in case entity state is not_home or off, can be a group, person or device_tracker entity.
`sleepOverride` | True | complex | None | Allows overriding of the sleepBrightness if entity state is on, true or home. Overrides sleepBrightness but sleepTracking takes precedence.
`locale` | True | string | `en_US` | Used by babel to determinante Date format on screensaver, also used for localization. `locale` | True | string | `en_US` | Used by babel to determinante Date format on screensaver, also used for localization.
`dateFormatBabel` | True | string | `full` | formatting options on https://babel.pocoo.org/en/latest/dates.html?highlight=name%20of%20day#date-fields `dateFormatBabel` | True | string | `full` | formatting options on https://babel.pocoo.org/en/latest/dates.html?highlight=name%20of%20day#date-fields
`timeFormat` | True | string | `%H:%M` | Time Format on screensaver. Substring after `?` is displayed in a seperate smaller textbox. Useful for 12h time format with AM/PM <pre>`"%I:%M ?%p"`</pre> `timeFormat` | True | string | `%H:%M` | Time Format on screensaver. Substring after `?` is displayed in a seperate smaller textbox. Useful for 12h time format with AM/PM <pre>`"%I:%M ?%p"`</pre>
@@ -536,6 +537,9 @@ It is possible to schedule a brightness change for the screen at specific times.
value: 0 value: 0
``` ```
`sleepTracking` overrides this setting and sets the brightness to 0 if the state of the configured Home Assistant entity is `off` or `not_home`. You may also use a [Home Assistant group](https://www.home-assistant.io/integrations/group) to track multiple entities.
`sleepOverride` overrides sleepBrightness but does not take precedence over sleepTracking. This is useful if, for example, you want your NSPanel to be brighter than usual if your light is on or if you want to override a panel dimming if you are in the room.
#### Override Icons or Names #### Override Icons or Names

View File

@@ -8,6 +8,10 @@ nspanel-1:
updateMode: "auto-notify" updateMode: "auto-notify"
sleepTimeout: 20 sleepTimeout: 20
#sleepBrightness: 10 #sleepBrightness: 10
sleepTracking: device_tracker.amihome
sleepOverride:
entity: sensor.isthelighton
brightness: 99
sleepBrightness: sleepBrightness:
- time: "7:00:00" - time: "7:00:00"
value: 10 value: 10

View File

@@ -45,7 +45,8 @@ class LuiController(object):
# call update_screensaver_brightness on entity configured in sleepOverride # call update_screensaver_brightness on entity configured in sleepOverride
sleepOverride = self._config.get("sleepOverride") sleepOverride = self._config.get("sleepOverride")
if sleepOverride is not None and sleepOverride["entity"] is not None and sleepOverride["brightness"] is not None and self._ha_api.entity_exists(sleepOverride["entity"]): if sleepOverride is not None and type(sleepOverride) is dict and sleepOverride["entity"] is not None and sleepOverride["brightness"] is not None and self._ha_api.entity_exists(sleepOverride["entity"]):
self._ha_api.log(f"Configuring Sleep Override. Config is {sleepOverride}")
self._ha_api.listen_state(self.update_screensaver_brightness_state_callback, entity_id=sleepOverride["entity"]) self._ha_api.listen_state(self.update_screensaver_brightness_state_callback, entity_id=sleepOverride["entity"])
# register callback for state changes on tracked value # register callback for state changes on tracked value
@@ -78,13 +79,19 @@ class LuiController(object):
def update_screensaver_brightness(self, kwargs): def update_screensaver_brightness(self, kwargs):
bst = self._config.get("sleepTracking") bst = self._config.get("sleepTracking")
sleepOverride = self._config.get("sleepOverride") sleepOverride = self._config.get("sleepOverride")
if sleepOverride is not None and type(sleepOverride) is dict:
sOEntity = sleepOverride["entity"]
sOBrightness = sleepOverride["brightness"]
brightness = 0 brightness = 0
if bst is not None and self._ha_api.entity_exists(bst) and self._ha_api.get_entity(bst).state in ["not_home", "off"]: if bst is not None and self._ha_api.entity_exists(bst) and self._ha_api.get_entity(bst).state in ["not_home", "off"]:
self._ha_api.log(f"sleepTracking setting brightness to 0")
brightness = 0 brightness = 0
elif sleepOverride is not None and sleepOverride["entity"] is not None and sleepOverride["brightness"] is not None and self._ha_api.entity_exists(sleepOverride["entity"]) and self._ha_api.get_entity(sleepOverride["entity"]) in ["on", "true", "home"]: elif sOEntity is not None and sOBrightness is not None and self._ha_api.entity_exists(sOEntity) and self._ha_api.get_entity(sOEntity).state in ["on", "true", "home"]:
brightness = sleepOverride["brightness"] self._ha_api.log(f"sleepOverride setting brightness to {sOBrightness}")
brightness = sOBrightness
else: else:
self.current_screensaver_brightness = kwargs['value'] self.current_screensaver_brightness = kwargs['value']