Sync commit

This commit is contained in:
Maximilian Giller 2025-01-11 01:17:12 +01:00
parent f9fdffbdbd
commit 142439b7c3
8 changed files with 22 additions and 11 deletions

View file

@ -1,5 +1,5 @@
import logging import logging
from mash.core.bridge import Bridge from core import Bridge
from phue import Bridge as phueBridge from phue import Bridge as phueBridge
from time import sleep from time import sleep

View file

@ -1,13 +1,8 @@
from mash.core.entities.light import Light from core import Entity
from mash.core.utilities.glow import Glow
class HueLight(Light): class HueLight(Entity):
def __init__( def __init__(
self, *, id: str, name: str, room: str, groups: list[str] = ... self, *, id: str, name: str, room: str, groups: list[str] = ...
) -> None: ) -> None:
super().__init__(id=id, name=name, room=room, groups=groups) 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

View file

@ -1,4 +1,4 @@
from core.entity import Entity from core import Entity
import requests as r import requests as r

View file

@ -1,2 +1,2 @@
from .zigbee2mqtt_bridge import Z2mBridge from .zigbee2mqtt_bridge import Z2mBridge
from .entities.contact_sensor_z2m import ContactSensorZ2M from .contact_sensor_z2m import ContactSensorZ2M

View file

@ -1,6 +1,6 @@
import logging import logging
from typing import Optional from typing import Optional
from core.bridge import Bridge from core import Bridge
import paho.mqtt.client as mqtt import paho.mqtt.client as mqtt
import json import json

View file

@ -7,6 +7,7 @@ class Entity:
self._room = room self._room = room
self._device_type = device_type self._device_type = device_type
self._groups = set(groups) self._groups = set(groups)
self.__is_on__: bool | None = None
@property @property
def id(self) -> str: def id(self) -> str:
@ -30,3 +31,18 @@ class Entity:
def __str__(self) -> str: def __str__(self) -> str:
return f"{self.name} [{self.id}, type {self.device_type}, room {self.room}, in {len(self.groups)} groups]" 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?