added the blue button app

This commit is contained in:
John Lancaster
2025-12-15 22:12:12 -06:00
parent 610c2b68e2
commit 699d314862
2 changed files with 42 additions and 0 deletions

View File

@@ -9,3 +9,7 @@ gone:
- light.bar
- light.h6076
- light.h6076_2
blue-button:
module: media_button
class: Button

38
apps/media_button.py Normal file
View File

@@ -0,0 +1,38 @@
from enum import Enum
from typing import Any
from appdaemon.plugins.hass import Hass
class ButtonPress(str, Enum):
SINGLE = 'single'
DOUBLE = 'double'
HOLD = 'hold'
class Button(Hass):
def initialize(self):
self.set_log_level('DEBUG')
self.listen_state(
self.handle_button,
entity_id='sensor.blue_lamp_button_action',
new=lambda s: s.strip() != '',
)
def handle_button(self, entity: str, attribute: str, old: Any, new: Any, **kwargs: Any) -> None:
match new:
case ButtonPress.SINGLE:
self.log('Single press')
self.call_service('media_player/media_play_pause', entity_id='media_player.living_room_tv')
case ButtonPress.DOUBLE:
self.log('Double')
self.call_service(
'scene/apply',
entities={
'light.bar': {'state': 'on', 'brightness': 10},
'light.living_room_stick': {'state': 'on', 'brightness': 100},
'light.server_lamp': {'state': 'on', 'brightness': 25},
},
)
case ButtonPress.HOLD:
self.log('Hold down')