diff --git a/src/bridges/hue/hue_bridge.py b/src/bridges/hue/hue_bridge.py index fcad9cc..dfe3d07 100644 --- a/src/bridges/hue/hue_bridge.py +++ b/src/bridges/hue/hue_bridge.py @@ -1,5 +1,5 @@ import logging -from mash.core.bridge import Bridge +from core import Bridge from phue import Bridge as phueBridge from time import sleep diff --git a/src/bridges/hue/hue_light.py b/src/bridges/hue/hue_light.py index 132dcda..55b134e 100644 --- a/src/bridges/hue/hue_light.py +++ b/src/bridges/hue/hue_light.py @@ -1,13 +1,8 @@ -from mash.core.entities.light import Light -from mash.core.utilities.glow import Glow +from core import Entity -class HueLight(Light): +class HueLight(Entity): def __init__( self, *, id: str, name: str, room: str, groups: list[str] = ... ) -> None: super().__init__(id=id, name=name, room=room, groups=groups) - - def __on_change__(self, current_on: bool, current_glow: Glow): - pass - # TODO: Requires reference to bridge diff --git a/src/matrixclock/__init__.py b/src/bridges/matrixclock/__init__.py similarity index 100% rename from src/matrixclock/__init__.py rename to src/bridges/matrixclock/__init__.py diff --git a/src/matrixclock/matrixclock_entity.py b/src/bridges/matrixclock/matrixclock_entity.py similarity index 98% rename from src/matrixclock/matrixclock_entity.py rename to src/bridges/matrixclock/matrixclock_entity.py index fd2c885..0690f90 100644 --- a/src/matrixclock/matrixclock_entity.py +++ b/src/bridges/matrixclock/matrixclock_entity.py @@ -1,4 +1,4 @@ -from core.entity import Entity +from core import Entity import requests as r diff --git a/src/bridges/z2m/__init__.py b/src/bridges/z2m/__init__.py index af0742f..7430d37 100644 --- a/src/bridges/z2m/__init__.py +++ b/src/bridges/z2m/__init__.py @@ -1,2 +1,2 @@ from .zigbee2mqtt_bridge import Z2mBridge -from .entities.contact_sensor_z2m import ContactSensorZ2M +from .contact_sensor_z2m import ContactSensorZ2M diff --git a/src/bridges/z2m/entities/contact_sensor_z2m.py b/src/bridges/z2m/contact_sensor_z2m.py similarity index 100% rename from src/bridges/z2m/entities/contact_sensor_z2m.py rename to src/bridges/z2m/contact_sensor_z2m.py diff --git a/src/bridges/z2m/zigbee2mqtt_bridge.py b/src/bridges/z2m/zigbee2mqtt_bridge.py index ed7560c..8d69ef2 100644 --- a/src/bridges/z2m/zigbee2mqtt_bridge.py +++ b/src/bridges/z2m/zigbee2mqtt_bridge.py @@ -1,6 +1,6 @@ import logging from typing import Optional -from core.bridge import Bridge +from core import Bridge import paho.mqtt.client as mqtt import json diff --git a/src/core/entity.py b/src/core/entity.py index 317980b..088370e 100644 --- a/src/core/entity.py +++ b/src/core/entity.py @@ -7,6 +7,7 @@ class Entity: self._room = room self._device_type = device_type self._groups = set(groups) + self.__is_on__: bool | None = None @property def id(self) -> str: @@ -30,3 +31,18 @@ class Entity: def __str__(self) -> str: return f"{self.name} [{self.id}, type {self.device_type}, room {self.room}, in {len(self.groups)} groups]" + + def toggle_state(self): + """Turns entity on, if off, and vice versa, if supported.""" + if self.__is_on__ == False: # Neither True nor None + self.turn_on() + else: + self.turn_off() + + def turn_on(self): + """Turns entity on, if action supported.""" + self.__is_on__ = True # TODO: What if action unsuccessful? + + def turn_off(self): + """Turns entity on, if action supported.""" + self.__is_on__ = False # TODO: What if action unsuccessful?