Skip to content

Commit

Permalink
Add Turn Off button
Browse files Browse the repository at this point in the history
  • Loading branch information
magicmatt007 committed Jan 5, 2023
1 parent 503b017 commit 4407dcf
Showing 1 changed file with 86 additions and 0 deletions.
86 changes: 86 additions & 0 deletions custom_components/v_zug/button.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
"""Platform for sensor integration."""
import logging

_LOGGER = logging.getLogger(__name__)


from homeassistant.const import Platform


from homeassistant.components.button import (
ButtonEntity,
)


from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback

from . import MyUpdateCoordinator
from .api import Api

from .const import (
DOMAIN,
)

from .base_sensors import BaseEntity

# SCAN_INTERVAL = datetime.timedelta(seconds=10)


async def async_setup_entry(
hass: HomeAssistant,
config_entry: ConfigEntry,
async_add_entities: AddEntitiesCallback,
):
"""Set up entry."""
_LOGGER.warning("Hello from sensor, async_setup_entry")

# coordinator: DataUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id]["coordinator"]
coordinator: MyUpdateCoordinator = hass.data[DOMAIN][config_entry.entry_id][
"coordinator"
]

if not coordinator.data:
return None
data: Api = coordinator.data

device_model = data.device_model
device_uuid = data.device_uuid

new_entities = []
new_entities.append(
TurnOffButton(
device_model=device_model, device_uuid=device_uuid, coordinator=coordinator
)
)
async_add_entities(new_entities)


class TurnOffButton(BaseEntity, ButtonEntity):
"""Turn Off Button"""

def __init__(self, device_model, device_uuid, coordinator: MyUpdateCoordinator):
"""Initialize the sensor. Pass coordinator to CoordinatorEntity."""
super().__init__(
device_model=device_model, device_uuid=device_uuid, coordinator=coordinator
)

# if not self.coordinator.data:
# return None
# data: Api = self.coordinator.data

self._state = None
self._attr_unique_id = f"{Platform.BUTTON}.{DOMAIN}_{device_uuid}_turn_off"
self._attr_has_entity_name = True
self._attr_name = "Turn Off"

async def async_press(self) -> None:
"""Handle the button press."""
# if self.coordinator.data is not None:
if not self.coordinator.data:
return None
data: Api = self.coordinator.data
await data.turn_off()
await self.coordinator.async_refresh()
_LOGGER.warning("Appliance turned off")

0 comments on commit 4407dcf

Please sign in to comment.