Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
6c284fa1f6
|
|||
|
5346d1b72c
|
|||
|
d8780b1790
|
|||
|
3d5010b4a1
|
|||
|
b471ab5edc
|
|||
|
3e0a1b49ab
|
18
apps/abstraction/vendors/hottis_wifi_relay.py
vendored
18
apps/abstraction/vendors/hottis_wifi_relay.py
vendored
@@ -1,4 +1,4 @@
|
||||
"""Shelly vendor transformations."""
|
||||
"""Hottis WiFi Relay vendor transformations."""
|
||||
|
||||
import logging
|
||||
from typing import Any
|
||||
@@ -7,28 +7,28 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def transform_relay_to_vendor(payload: dict[str, Any]) -> str:
|
||||
"""Transform abstract relay payload to Shelly format.
|
||||
"""Transform abstract relay payload to Hottis WiFi Relay format.
|
||||
|
||||
Shelly expects plain text 'on' or 'off' (not JSON).
|
||||
Hottis WiFi Relay expects plain text 'on' or 'off' (not JSON).
|
||||
|
||||
Example:
|
||||
- Abstract: {'power': 'on'}
|
||||
- Shelly: 'on'
|
||||
- Hottis WiFi Relay: 'ON'
|
||||
"""
|
||||
power = payload.get("power", "off")
|
||||
power = payload.get("power", "off").upper()
|
||||
return power
|
||||
|
||||
|
||||
def transform_relay_to_abstract(payload: str) -> dict[str, Any]:
|
||||
"""Transform Shelly relay payload to abstract format.
|
||||
"""Transform Hottis WiFi Relay relay payload to abstract format.
|
||||
|
||||
Shelly sends plain text 'on' or 'off'.
|
||||
Hottis WiFi Relay sends plain text 'on' or 'off'.
|
||||
|
||||
Example:
|
||||
- Shelly: 'on'
|
||||
- Hottis WiFi Relay: 'ON'
|
||||
- Abstract: {'power': 'on'}
|
||||
"""
|
||||
return {"power": payload.strip()}
|
||||
return {"power": payload.strip().lower()}
|
||||
|
||||
|
||||
# Registry of handlers for this vendor
|
||||
|
||||
@@ -51,6 +51,9 @@ logger = logging.getLogger(__name__)
|
||||
# Will be populated from Redis pub/sub messages
|
||||
device_states: dict[str, dict[str, Any]] = {}
|
||||
|
||||
# Devices configuration cache (loaded once at startup)
|
||||
devices_cache: list[dict[str, Any]] = []
|
||||
|
||||
# Background task reference
|
||||
background_task: asyncio.Task | None = None
|
||||
|
||||
@@ -117,15 +120,6 @@ async def get_device_layout(device_id: str):
|
||||
}
|
||||
raise HTTPException(status_code=404, detail="Device layout not found")
|
||||
|
||||
@app.on_event("startup")
|
||||
async def startup_event():
|
||||
"""Include routers after app is initialized to avoid circular imports."""
|
||||
from apps.api.routes.groups_scenes import router as groups_scenes_router
|
||||
from apps.api.routes.rooms import router as rooms_router
|
||||
|
||||
app.include_router(groups_scenes_router, prefix="")
|
||||
app.include_router(rooms_router, prefix="")
|
||||
|
||||
|
||||
@app.get("/health")
|
||||
async def health() -> dict[str, str]:
|
||||
@@ -190,7 +184,22 @@ async def redis_state_listener():
|
||||
@app.on_event("startup")
|
||||
async def startup_event():
|
||||
"""Start background tasks on application startup."""
|
||||
global background_task
|
||||
global background_task, devices_cache
|
||||
|
||||
# Include routers
|
||||
from apps.api.routes.groups_scenes import router as groups_scenes_router
|
||||
from apps.api.routes.rooms import router as rooms_router
|
||||
|
||||
app.include_router(groups_scenes_router, prefix="")
|
||||
app.include_router(rooms_router, prefix="")
|
||||
|
||||
# Load and validate devices configuration
|
||||
try:
|
||||
devices_cache = load_devices_from_file()
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to load devices configuration: {e}")
|
||||
raise # Fatal error - application will not start
|
||||
|
||||
background_task = asyncio.create_task(redis_state_listener())
|
||||
logger.info("Started background Redis state listener")
|
||||
|
||||
@@ -238,32 +247,62 @@ class DeviceInfo(BaseModel):
|
||||
device_id: str
|
||||
type: str
|
||||
name: str
|
||||
homekit_aid: int
|
||||
features: dict[str, Any] = {}
|
||||
|
||||
|
||||
# Configuration helpers
|
||||
def load_devices() -> list[dict[str, Any]]:
|
||||
"""Load devices from configuration file.
|
||||
def load_devices_from_file() -> list[dict[str, Any]]:
|
||||
"""Load devices from configuration file and validate.
|
||||
|
||||
Returns:
|
||||
list: List of device configurations
|
||||
|
||||
Raises:
|
||||
FileNotFoundError: If devices.yaml doesn't exist
|
||||
KeyError: If any device is missing required homekit_aid field
|
||||
ValueError: If devices.yaml is invalid or contains duplicate homekit_aid values
|
||||
"""
|
||||
config_path = Path(__file__).parent.parent.parent / "config" / "devices.yaml"
|
||||
|
||||
if not config_path.exists():
|
||||
return []
|
||||
raise FileNotFoundError(f"devices.yaml not found at {config_path}")
|
||||
|
||||
with open(config_path, "r") as f:
|
||||
config = yaml.safe_load(f)
|
||||
|
||||
if not config or "devices" not in config:
|
||||
raise ValueError("devices.yaml must contain 'devices' key")
|
||||
|
||||
# Normalize device entries: accept both 'id' and 'device_id', use 'device_id' internally
|
||||
devices = config.get("devices", [])
|
||||
for device in devices:
|
||||
device["device_id"] = device.pop("device_id", device.pop("id", None))
|
||||
|
||||
# Validate required homekit_aid field
|
||||
if "homekit_aid" not in device:
|
||||
raise KeyError(f"Device {device.get('device_id', 'unknown')} is missing required 'homekit_aid' field")
|
||||
|
||||
# Validate unique homekit_aid values
|
||||
aids = [d["homekit_aid"] for d in devices]
|
||||
if len(aids) != len(set(aids)):
|
||||
duplicates = [aid for aid in aids if aids.count(aid) > 1]
|
||||
raise ValueError(f"Duplicate homekit_aid values found: {set(duplicates)}")
|
||||
|
||||
logger.info(f"Loaded {len(devices)} devices with unique homekit_aid values (range: {min(aids)}-{max(aids)})")
|
||||
|
||||
return devices
|
||||
|
||||
|
||||
def load_devices() -> list[dict[str, Any]]:
|
||||
"""Get devices from in-memory cache.
|
||||
|
||||
Returns:
|
||||
list: List of device configurations (loaded at startup)
|
||||
"""
|
||||
return devices_cache
|
||||
|
||||
|
||||
def get_mqtt_settings() -> tuple[str, int]:
|
||||
"""Get MQTT broker settings from environment.
|
||||
|
||||
@@ -391,6 +430,7 @@ async def get_device(device_id: str) -> DeviceInfo:
|
||||
device_id=device["device_id"],
|
||||
type=device["type"],
|
||||
name=device.get("name", device["device_id"]),
|
||||
homekit_aid=device["homekit_aid"],
|
||||
features=device.get("features", {})
|
||||
)
|
||||
|
||||
@@ -409,6 +449,7 @@ async def get_devices() -> list[DeviceInfo]:
|
||||
device_id=device["device_id"],
|
||||
type=device["type"],
|
||||
name=device.get("name", device["device_id"]),
|
||||
homekit_aid=device["homekit_aid"],
|
||||
features=device.get("features", {})
|
||||
)
|
||||
for device in devices
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
version: 1
|
||||
devices:
|
||||
- device_id: lampe_semeniere_wohnzimmer
|
||||
homekit_aid: 2
|
||||
name: Semeniere
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -16,6 +17,7 @@ devices:
|
||||
model: "AC10691"
|
||||
vendor: "OSRAM"
|
||||
- device_id: stehlampe_esszimmer_spiegel
|
||||
homekit_aid: 3
|
||||
name: Stehlampe Spiegel
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -27,6 +29,7 @@ devices:
|
||||
state: "zigbee2mqtt/0x001788010d06ea09"
|
||||
set: "zigbee2mqtt/0x001788010d06ea09/set"
|
||||
- device_id: stehlampe_esszimmer_schrank
|
||||
homekit_aid: 4
|
||||
name: Stehlampe Schrank
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -38,6 +41,7 @@ devices:
|
||||
state: "zigbee2mqtt/0x001788010d09176c"
|
||||
set: "zigbee2mqtt/0x001788010d09176c/set"
|
||||
- device_id: grosse_lampe_wohnzimmer
|
||||
homekit_aid: 5
|
||||
name: grosse Lampe
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -53,6 +57,7 @@ devices:
|
||||
model: "AC10691"
|
||||
vendor: "OSRAM"
|
||||
- device_id: lampe_naehtischchen_wohnzimmer
|
||||
homekit_aid: 6
|
||||
name: Nähtischchen
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -68,6 +73,7 @@ devices:
|
||||
model: "HG06337"
|
||||
vendor: "Lidl"
|
||||
- device_id: kleine_lampe_links_esszimmer
|
||||
homekit_aid: 7
|
||||
name: kleine Lampe
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -83,6 +89,7 @@ devices:
|
||||
model: "AC10691"
|
||||
vendor: "OSRAM"
|
||||
- device_id: leselampe_esszimmer
|
||||
homekit_aid: 8
|
||||
name: Leselampe
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -99,6 +106,7 @@ devices:
|
||||
model: "LED1842G3"
|
||||
vendor: "IKEA"
|
||||
- device_id: medusalampe_schlafzimmer
|
||||
homekit_aid: 9
|
||||
name: Medusa-Lampe
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -114,6 +122,7 @@ devices:
|
||||
model: "AC10691"
|
||||
vendor: "OSRAM"
|
||||
- device_id: sportlicht_am_fernseher_studierzimmer
|
||||
homekit_aid: 10
|
||||
type: light
|
||||
name: am Fernseher
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -131,6 +140,7 @@ devices:
|
||||
model: "LED1733G7"
|
||||
vendor: "IKEA"
|
||||
- device_id: deckenlampe_schlafzimmer
|
||||
homekit_aid: 11
|
||||
name: Deckenlampe
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -147,6 +157,7 @@ devices:
|
||||
model: "8718699688882"
|
||||
vendor: "Philips"
|
||||
- device_id: bettlicht_wolfgang
|
||||
homekit_aid: 12
|
||||
name: Bettlicht Wolfgang
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -163,6 +174,7 @@ devices:
|
||||
model: "9290020399"
|
||||
vendor: "Philips"
|
||||
- device_id: bettlicht_patty
|
||||
homekit_aid: 13
|
||||
name: Bettlicht Patty
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -179,6 +191,7 @@ devices:
|
||||
model: "9290020399"
|
||||
vendor: "Philips"
|
||||
- device_id: schranklicht_hinten_patty
|
||||
homekit_aid: 14
|
||||
name: Schranklicht hinten
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -195,6 +208,7 @@ devices:
|
||||
model: "8718699673147"
|
||||
vendor: "Philips"
|
||||
- device_id: schranklicht_vorne_patty
|
||||
homekit_aid: 15
|
||||
name: Schranklicht vorne
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -210,6 +224,7 @@ devices:
|
||||
model: "AC10691"
|
||||
vendor: "OSRAM"
|
||||
- device_id: leselampe_patty
|
||||
homekit_aid: 16
|
||||
name: Leselampe
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -226,6 +241,7 @@ devices:
|
||||
model: "8718699673147"
|
||||
vendor: "Philips"
|
||||
- device_id: deckenlampe_esszimmer
|
||||
homekit_aid: 17
|
||||
name: Deckenlampe
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -242,6 +258,7 @@ devices:
|
||||
model: "929002241201"
|
||||
vendor: "Philips"
|
||||
- device_id: deckenlampe_flur_oben
|
||||
homekit_aid: 18
|
||||
name: Deckenlampe oben
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -259,6 +276,7 @@ devices:
|
||||
model: "929003099001"
|
||||
vendor: "Philips"
|
||||
- device_id: kueche_deckenlampe
|
||||
homekit_aid: 19
|
||||
name: Deckenlampe
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -275,6 +293,7 @@ devices:
|
||||
model: "929002469202"
|
||||
vendor: "Philips"
|
||||
- device_id: sportlicht_tisch
|
||||
homekit_aid: 20
|
||||
name: am Tisch
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -291,6 +310,7 @@ devices:
|
||||
model: "4058075729063"
|
||||
vendor: "LEDVANCE"
|
||||
- device_id: sportlicht_regal
|
||||
homekit_aid: 21
|
||||
name: am Regal
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -307,6 +327,7 @@ devices:
|
||||
model: "4058075729063"
|
||||
vendor: "LEDVANCE"
|
||||
- device_id: licht_flur_oben_am_spiegel
|
||||
homekit_aid: 22
|
||||
name: Spiegel
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -324,6 +345,7 @@ devices:
|
||||
model: "LED1732G11"
|
||||
vendor: "IKEA"
|
||||
- device_id: experimentlabtest
|
||||
homekit_aid: 23
|
||||
name: Test Lampe
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -340,6 +362,7 @@ devices:
|
||||
model: "4058075208421"
|
||||
vendor: "LEDVANCE"
|
||||
- device_id: thermostat_wolfgang
|
||||
homekit_aid: 24
|
||||
name: Heizung
|
||||
type: thermostat
|
||||
cap_version: "thermostat@1.0.0"
|
||||
@@ -359,6 +382,7 @@ devices:
|
||||
model: "GS361A-H04"
|
||||
vendor: "Siterwell"
|
||||
- device_id: thermostat_kueche
|
||||
homekit_aid: 25
|
||||
name: Heizung
|
||||
type: thermostat
|
||||
cap_version: "thermostat@1.0.0"
|
||||
@@ -378,6 +402,7 @@ devices:
|
||||
model: "GS361A-H04"
|
||||
vendor: "Siterwell"
|
||||
- device_id: thermostat_schlafzimmer
|
||||
homekit_aid: 26
|
||||
name: Heizung
|
||||
type: thermostat
|
||||
cap_version: "thermostat@1.0.0"
|
||||
@@ -397,6 +422,7 @@ devices:
|
||||
peer_id: "42"
|
||||
channel: "1"
|
||||
- device_id: thermostat_esszimmer
|
||||
homekit_aid: 27
|
||||
name: Heizung
|
||||
type: thermostat
|
||||
cap_version: "thermostat@1.0.0"
|
||||
@@ -416,6 +442,7 @@ devices:
|
||||
peer_id: "45"
|
||||
channel: "1"
|
||||
- device_id: thermostat_wohnzimmer
|
||||
homekit_aid: 28
|
||||
name: Heizung
|
||||
type: thermostat
|
||||
cap_version: "thermostat@1.0.0"
|
||||
@@ -435,6 +462,7 @@ devices:
|
||||
peer_id: "46"
|
||||
channel: "1"
|
||||
- device_id: thermostat_patty
|
||||
homekit_aid: 29
|
||||
name: Heizung
|
||||
type: thermostat
|
||||
cap_version: "thermostat@1.0.0"
|
||||
@@ -454,6 +482,7 @@ devices:
|
||||
peer_id: "39"
|
||||
channel: "1"
|
||||
- device_id: thermostat_bad_oben
|
||||
homekit_aid: 30
|
||||
name: Heizung
|
||||
type: thermostat
|
||||
cap_version: "thermostat@1.0.0"
|
||||
@@ -473,6 +502,7 @@ devices:
|
||||
peer_id: "41"
|
||||
channel: "1"
|
||||
- device_id: thermostat_bad_unten
|
||||
homekit_aid: 31
|
||||
name: Heizung
|
||||
type: thermostat
|
||||
cap_version: "thermostat@1.0.0"
|
||||
@@ -492,6 +522,7 @@ devices:
|
||||
peer_id: "48"
|
||||
channel: "1"
|
||||
- device_id: sterne_wohnzimmer
|
||||
homekit_aid: 32
|
||||
name: Sterne
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -507,6 +538,7 @@ devices:
|
||||
model: "AC10691"
|
||||
vendor: "OSRAM"
|
||||
- device_id: kontakt_schlafzimmer_strasse
|
||||
homekit_aid: 33
|
||||
name: Fenster
|
||||
type: contact
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -515,6 +547,7 @@ devices:
|
||||
state: homegear/instance1/plain/52/1/STATE
|
||||
features: {}
|
||||
- device_id: kontakt_esszimmer_strasse_rechts
|
||||
homekit_aid: 34
|
||||
type: contact
|
||||
name: Fenster rechts
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -523,6 +556,7 @@ devices:
|
||||
state: homegear/instance1/plain/26/1/STATE
|
||||
features: {}
|
||||
- device_id: kontakt_esszimmer_strasse_links
|
||||
homekit_aid: 35
|
||||
name: Fenster links
|
||||
type: contact
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -531,6 +565,7 @@ devices:
|
||||
state: homegear/instance1/plain/27/1/STATE
|
||||
features: {}
|
||||
- device_id: kontakt_wohnzimmer_garten_rechts
|
||||
homekit_aid: 36
|
||||
name: Fenster rechts
|
||||
type: contact
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -539,6 +574,7 @@ devices:
|
||||
state: homegear/instance1/plain/28/1/STATE
|
||||
features: {}
|
||||
- device_id: kontakt_wohnzimmer_garten_links
|
||||
homekit_aid: 37
|
||||
name: Fenster links
|
||||
type: contact
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -547,6 +583,7 @@ devices:
|
||||
state: homegear/instance1/plain/29/1/STATE
|
||||
features: {}
|
||||
- device_id: kontakt_kueche_garten_fenster
|
||||
homekit_aid: 38
|
||||
name: Fenster Garten
|
||||
type: contact
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -555,6 +592,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d008b332785
|
||||
features: {}
|
||||
- device_id: kontakt_kueche_garten_tuer
|
||||
homekit_aid: 39
|
||||
type: contact
|
||||
name: Terrassentür
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -563,6 +601,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d008b332788
|
||||
features: {}
|
||||
- device_id: kontakt_kueche_strasse_rechts
|
||||
homekit_aid: 40
|
||||
name: Fenster Straße rechts
|
||||
type: contact
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -571,6 +610,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d008b151803
|
||||
features: {}
|
||||
- device_id: kontakt_kueche_strasse_links
|
||||
homekit_aid: 41
|
||||
name: Fenster Straße links
|
||||
type: contact
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -579,6 +619,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d008b331d0b
|
||||
features: {}
|
||||
- device_id: kontakt_patty_garten_rechts
|
||||
homekit_aid: 42
|
||||
type: contact
|
||||
name: Fenster Garten rechts
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -587,6 +628,8 @@ devices:
|
||||
state: homegear/instance1/plain/18/1/STATE
|
||||
features: {}
|
||||
- device_id: kontakt_patty_garten_links
|
||||
homekit_aid: 43
|
||||
homekit_aid: 43
|
||||
type: contact
|
||||
name: Fenster Garten links
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -595,6 +638,7 @@ devices:
|
||||
state: homegear/instance1/plain/22/1/STATE
|
||||
features: {}
|
||||
- device_id: kontakt_patty_strasse
|
||||
homekit_aid: 44
|
||||
type: contact
|
||||
name: Fenster Straße
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -603,6 +647,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d000af457cf
|
||||
features: {}
|
||||
- device_id: kontakt_wolfgang_garten
|
||||
homekit_aid: 45
|
||||
type: contact
|
||||
name: Fenster
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -611,6 +656,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d008b3328da
|
||||
features: {}
|
||||
- device_id: kontakt_bad_oben_strasse
|
||||
homekit_aid: 46
|
||||
type: contact
|
||||
name: Fenster
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -619,6 +665,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d008b333aec
|
||||
features: {}
|
||||
- device_id: kontakt_bad_unten_strasse
|
||||
homekit_aid: 47
|
||||
type: contact
|
||||
name: Fenster
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -627,6 +674,7 @@ devices:
|
||||
state: homegear/instance1/plain/44/1/STATE
|
||||
features: {}
|
||||
- device_id: sensor_schlafzimmer
|
||||
homekit_aid: 48
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -635,6 +683,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d00043292dc
|
||||
features: {}
|
||||
- device_id: sensor_wohnzimmer
|
||||
homekit_aid: 49
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -643,6 +692,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d0008975707
|
||||
features: {}
|
||||
- device_id: sensor_kueche
|
||||
homekit_aid: 50
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -651,6 +701,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d00083299bb
|
||||
features: {}
|
||||
- device_id: sensor_arbeitszimmer_patty
|
||||
homekit_aid: 51
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -659,6 +710,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d0003f052b7
|
||||
features: {}
|
||||
- device_id: sensor_arbeitszimmer_wolfgang
|
||||
homekit_aid: 52
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -667,6 +719,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d000543fb99
|
||||
features: {}
|
||||
- device_id: sensor_bad_oben
|
||||
homekit_aid: 53
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -675,6 +728,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d00093e8987
|
||||
features: {}
|
||||
- device_id: sensor_bad_unten
|
||||
homekit_aid: 54
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -683,6 +737,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d00093e662a
|
||||
features: {}
|
||||
- device_id: sensor_flur
|
||||
homekit_aid: 55
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -691,6 +746,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d000836ccc6
|
||||
features: {}
|
||||
- device_id: sensor_waschkueche
|
||||
homekit_aid: 56
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -699,6 +755,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d000449f3bc
|
||||
features: {}
|
||||
- device_id: sensor_sportzimmer
|
||||
homekit_aid: 57
|
||||
type: temp_humidity_sensor
|
||||
name: Thermometer
|
||||
cap_version: temp_humidity_sensor@1.0.0
|
||||
@@ -707,6 +764,7 @@ devices:
|
||||
state: zigbee2mqtt/0x00158d0009421422
|
||||
features: {}
|
||||
- device_id: licht_spuele_kueche
|
||||
homekit_aid: 58
|
||||
name: Spüle
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -717,6 +775,7 @@ devices:
|
||||
set: "shellies/shellyplug-s-DED4E4/relay/0/command"
|
||||
state: "shellies/shellyplug-s-DED4E4/relay/0"
|
||||
- device_id: putzlicht_kueche
|
||||
homekit_aid: 59
|
||||
name: Putzlicht
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -728,6 +787,7 @@ devices:
|
||||
state: "zigbee2mqtt/0xa4c138563834406c"
|
||||
set: "zigbee2mqtt/0xa4c138563834406c/set"
|
||||
- device_id: licht_schrank_esszimmer
|
||||
homekit_aid: 60
|
||||
name: Schrank
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -738,6 +798,7 @@ devices:
|
||||
set: "shellies/schrankesszimmer/relay/0/command"
|
||||
state: "shellies/schrankesszimmer/relay/0"
|
||||
- device_id: licht_regal_wohnzimmer
|
||||
homekit_aid: 61
|
||||
type: relay
|
||||
name: Regal
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -747,17 +808,8 @@ devices:
|
||||
topics:
|
||||
set: "shellies/wohnzimmer-regal/relay/0/command"
|
||||
state: "shellies/wohnzimmer-regal/relay/0"
|
||||
- device_id: licht_flur_schrank
|
||||
type: relay
|
||||
name: Schrank
|
||||
cap_version: "relay@1.0.0"
|
||||
technology: shelly
|
||||
features:
|
||||
power: true
|
||||
topics:
|
||||
set: "shellies/schrankflur/relay/0/command"
|
||||
state: "shellies/schrankflur/relay/0"
|
||||
- device_id: licht_terasse
|
||||
homekit_aid: 62
|
||||
name: Terrasse
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -768,6 +820,7 @@ devices:
|
||||
set: "shellies/lichtterasse/relay/0/command"
|
||||
state: "shellies/lichtterasse/relay/0"
|
||||
- device_id: kugellampe_patty
|
||||
homekit_aid: 63
|
||||
name: Kugellampe Patty
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -779,6 +832,7 @@ devices:
|
||||
state: "zigbee2mqtt/0xbc33acfffe21f547"
|
||||
set: "zigbee2mqtt/0xbc33acfffe21f547/set"
|
||||
- device_id: kueche_fensterbank_licht
|
||||
homekit_aid: 64
|
||||
name: Fensterbank Küche
|
||||
type: light
|
||||
cap_version: "light@1.2.0"
|
||||
@@ -790,6 +844,7 @@ devices:
|
||||
state: "zigbee2mqtt/0xf0d1b8000017515d"
|
||||
set: "zigbee2mqtt/0xf0d1b8000017515d/set"
|
||||
- device_id: licht_kommode_schlafzimmer
|
||||
homekit_aid: 65
|
||||
name: Kommode Schlafzimmer
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -800,6 +855,7 @@ devices:
|
||||
set: "cmnd/tasmota/04/POWER"
|
||||
state: "stat/tasmota/04/POWER"
|
||||
- device_id: licht_fensterbank_esszimmer
|
||||
homekit_aid: 66
|
||||
name: Fensterbank Esszimmer
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -810,6 +866,7 @@ devices:
|
||||
set: "cmnd/tasmota/02/POWER"
|
||||
state: "stat/tasmota/02/POWER"
|
||||
- device_id: licht_schreibtisch_patty
|
||||
homekit_aid: 67
|
||||
name: Schreibtisch Patty
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -820,6 +877,7 @@ devices:
|
||||
set: "cmnd/tasmota/03/POWER"
|
||||
state: "stat/tasmota/03/POWER"
|
||||
- device_id: kugeln_regal_flur
|
||||
homekit_aid: 68
|
||||
name: Kugeln Regal Flur
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -829,7 +887,8 @@ devices:
|
||||
topics:
|
||||
set: "cmnd/tasmota/01/POWER"
|
||||
state: "stat/tasmota/01/POWER"
|
||||
- device_id: schrank_flur_haustür
|
||||
- device_id: schrank_flur_haustuer
|
||||
homekit_aid: 69
|
||||
name: Schrank Flur Haustür
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -840,6 +899,7 @@ devices:
|
||||
set: "cmnd/tasmota/05/POWER"
|
||||
state: "stat/tasmota/05/POWER"
|
||||
- device_id: gartenlicht_vorne
|
||||
homekit_aid: 70
|
||||
name: Gartenlicht vorne
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -851,6 +911,7 @@ devices:
|
||||
state: "stat/tasmota/06/POWER"
|
||||
|
||||
- device_id: power_relay_caroutlet
|
||||
homekit_aid: 71
|
||||
name: Car Outlet
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -861,6 +922,7 @@ devices:
|
||||
set: "IoT/Car/Control"
|
||||
state: "IoT/Car/Control/State"
|
||||
- device_id: powermeter_caroutlet
|
||||
homekit_aid: 72
|
||||
name: Car Outlet
|
||||
type: three_phase_powermeter
|
||||
cap_version: "three_phase_powermeter@1.0.0"
|
||||
@@ -868,6 +930,7 @@ devices:
|
||||
topics:
|
||||
state: "IoT/Car/Values"
|
||||
- device_id: sensor_caroutlet
|
||||
homekit_aid: 73
|
||||
name: Car Outlet
|
||||
type: contact
|
||||
cap_version: contact_sensor@1.0.0
|
||||
@@ -876,6 +939,7 @@ devices:
|
||||
state: IoT/Car/Feedback/State
|
||||
|
||||
- device_id: schranklicht_flur_vor_kueche
|
||||
homekit_aid: 74
|
||||
name: Schranklicht Flur vor Küche
|
||||
type: light
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -886,6 +950,7 @@ devices:
|
||||
state: "zigbee2mqtt/0xf0d1b80000155a1f"
|
||||
set: "zigbee2mqtt/0xf0d1b80000155a1f/set"
|
||||
- device_id: deckenlampe_wohnzimmer
|
||||
homekit_aid: 75
|
||||
name: Deckenlampe Wohnzimmer
|
||||
type: light
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -899,6 +964,7 @@ devices:
|
||||
|
||||
|
||||
- device_id: keller_flur_licht
|
||||
homekit_aid: 76
|
||||
name: Keller Flur Licht
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -909,6 +975,7 @@ devices:
|
||||
set: "pulsegen/command/10/21"
|
||||
state: "pulsegen/status/10"
|
||||
- device_id: waschkueche_licht
|
||||
homekit_aid: 77
|
||||
name: Waschküche Licht
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -919,6 +986,7 @@ devices:
|
||||
set: "pulsegen/command/8/22"
|
||||
state: "pulsegen/status/8"
|
||||
- device_id: werkstatt_licht
|
||||
homekit_aid: 78
|
||||
name: Werkstatt Licht
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -929,6 +997,7 @@ devices:
|
||||
set: "pulsegen/command/7/19"
|
||||
state: "pulsegen/status/7"
|
||||
- device_id: sportzimmer_licht
|
||||
homekit_aid: 79
|
||||
name: Sportzimmer Licht
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -939,6 +1008,7 @@ devices:
|
||||
set: "pulsegen/command/9/20"
|
||||
state: "pulsegen/status/9"
|
||||
- device_id: deckenlampe_patty
|
||||
homekit_aid: 80
|
||||
name: Deckenlampe Patty
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -949,6 +1019,7 @@ devices:
|
||||
set: "pulsegen/command/4/16"
|
||||
state: "pulsegen/status/4"
|
||||
- device_id: regallampe_esszimmer
|
||||
homekit_aid: 81
|
||||
name: Regallampe Esszimmer
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -957,4 +1028,17 @@ devices:
|
||||
power: true
|
||||
topics:
|
||||
set: "IoT/WifiRelay1/State"
|
||||
state: "IoT/WifiRelay1/State"
|
||||
state: "IoT/WifiRelay1/State"
|
||||
|
||||
- device_id: herdlicht
|
||||
homekit_aid: 82
|
||||
name: Herdlicht
|
||||
type: light
|
||||
cap_version: "relay@1.0.0"
|
||||
technology: zigbee2mqtt
|
||||
features:
|
||||
power: true
|
||||
brightness: true
|
||||
topics:
|
||||
state: "zigbee2mqtt/herdlicht"
|
||||
set: "zigbee2mqtt/herdlicht/set"
|
||||
@@ -61,10 +61,10 @@ rooms:
|
||||
title: Stehlampe Esszimmer Schrank
|
||||
icon: 💡
|
||||
rank: 82
|
||||
# - device_id: kleine_lampe_rechts_esszimmer
|
||||
# title: kleine Lampe rechts Esszimmer
|
||||
# icon: 💡
|
||||
# rank: 90
|
||||
- device_id: regallampe_esszimmer
|
||||
title: Regallampe Esszimmer
|
||||
icon: 💡
|
||||
rank: 90
|
||||
- device_id: licht_schrank_esszimmer
|
||||
title: Schranklicht Esszimmer
|
||||
icon: 💡
|
||||
@@ -144,6 +144,10 @@ rooms:
|
||||
title: Küche Fensterbank
|
||||
icon: 💡
|
||||
rank: 144
|
||||
- device_id: herdlicht
|
||||
title: Herdlicht
|
||||
icon: 💡
|
||||
rank: 145
|
||||
- device_id: thermostat_kueche
|
||||
title: Kueche
|
||||
icon: 🌡️
|
||||
@@ -249,7 +253,7 @@ rooms:
|
||||
title: Licht oben am Spiegel
|
||||
icon: 💡
|
||||
rank: 230
|
||||
- device_id: schrank_flur_haustür
|
||||
- device_id: schrank_flur_haustuer
|
||||
title: Schranklicht an der Haustür
|
||||
icon: 💡
|
||||
rank: 231
|
||||
|
||||
Reference in New Issue
Block a user