Compare commits
8 Commits
0.10.4-con
...
0.10.10-co
| Author | SHA1 | Date | |
|---|---|---|---|
|
5346d1b72c
|
|||
|
d8780b1790
|
|||
|
3d5010b4a1
|
|||
|
b471ab5edc
|
|||
|
3e0a1b49ab
|
|||
|
befdc8a46c
|
|||
|
da16c59238
|
|||
|
5f3185894d
|
@@ -19,6 +19,7 @@ from apps.abstraction.vendors import (
|
||||
tasmota,
|
||||
hottis_pv_modbus,
|
||||
hottis_wago_modbus,
|
||||
hottis_wifi_relay,
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -42,6 +43,7 @@ for vendor_name, vendor_module in [
|
||||
("tasmota", tasmota),
|
||||
("hottis_pv_modbus", hottis_pv_modbus),
|
||||
("hottis_wago_modbus", hottis_wago_modbus),
|
||||
("hottis_wifi_relay", hottis_wifi_relay),
|
||||
]:
|
||||
for (device_type, direction), handler in vendor_module.HANDLERS.items():
|
||||
key = (device_type, vendor_name, direction)
|
||||
|
||||
38
apps/abstraction/vendors/hottis_wifi_relay.py
vendored
Normal file
38
apps/abstraction/vendors/hottis_wifi_relay.py
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
"""Hottis WiFi Relay vendor transformations."""
|
||||
|
||||
import logging
|
||||
from typing import Any
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def transform_relay_to_vendor(payload: dict[str, Any]) -> str:
|
||||
"""Transform abstract relay payload to Hottis WiFi Relay format.
|
||||
|
||||
Hottis WiFi Relay expects plain text 'on' or 'off' (not JSON).
|
||||
|
||||
Example:
|
||||
- Abstract: {'power': 'on'}
|
||||
- Hottis WiFi Relay: 'ON'
|
||||
"""
|
||||
power = payload.get("power", "off").upper()
|
||||
return power
|
||||
|
||||
|
||||
def transform_relay_to_abstract(payload: str) -> dict[str, Any]:
|
||||
"""Transform Hottis WiFi Relay relay payload to abstract format.
|
||||
|
||||
Hottis WiFi Relay sends plain text 'on' or 'off'.
|
||||
|
||||
Example:
|
||||
- Hottis WiFi Relay: 'ON'
|
||||
- Abstract: {'power': 'on'}
|
||||
"""
|
||||
return {"power": payload.strip().lower()}
|
||||
|
||||
|
||||
# Registry of handlers for this vendor
|
||||
HANDLERS = {
|
||||
("relay", "to_vendor"): transform_relay_to_vendor,
|
||||
("relay", "to_abstract"): transform_relay_to_abstract,
|
||||
}
|
||||
@@ -747,16 +747,6 @@ 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
|
||||
name: Terrasse
|
||||
type: relay
|
||||
@@ -829,7 +819,7 @@ devices:
|
||||
topics:
|
||||
set: "cmnd/tasmota/01/POWER"
|
||||
state: "stat/tasmota/01/POWER"
|
||||
- device_id: schrank_flur_haustür
|
||||
- device_id: schrank_flur_haustuer
|
||||
name: Schrank Flur Haustür
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
@@ -908,3 +898,65 @@ devices:
|
||||
topics:
|
||||
set: "pulsegen/command/10/21"
|
||||
state: "pulsegen/status/10"
|
||||
- device_id: waschkueche_licht
|
||||
name: Waschküche Licht
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
technology: hottis_wago_modbus
|
||||
features:
|
||||
power: true
|
||||
topics:
|
||||
set: "pulsegen/command/8/22"
|
||||
state: "pulsegen/status/8"
|
||||
- device_id: werkstatt_licht
|
||||
name: Werkstatt Licht
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
technology: hottis_wago_modbus
|
||||
features:
|
||||
power: true
|
||||
topics:
|
||||
set: "pulsegen/command/7/19"
|
||||
state: "pulsegen/status/7"
|
||||
- device_id: sportzimmer_licht
|
||||
name: Sportzimmer Licht
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
technology: hottis_wago_modbus
|
||||
features:
|
||||
power: true
|
||||
topics:
|
||||
set: "pulsegen/command/9/20"
|
||||
state: "pulsegen/status/9"
|
||||
- device_id: deckenlampe_patty
|
||||
name: Deckenlampe Patty
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
technology: hottis_wago_modbus
|
||||
features:
|
||||
power: true
|
||||
topics:
|
||||
set: "pulsegen/command/4/16"
|
||||
state: "pulsegen/status/4"
|
||||
- device_id: regallampe_esszimmer
|
||||
name: Regallampe Esszimmer
|
||||
type: relay
|
||||
cap_version: "relay@1.0.0"
|
||||
technology: hottis_wifi_relay
|
||||
features:
|
||||
power: true
|
||||
topics:
|
||||
set: "IoT/WifiRelay1/State"
|
||||
state: "IoT/WifiRelay1/State"
|
||||
|
||||
- device_id: herdlicht
|
||||
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: 🌡️
|
||||
@@ -176,23 +180,27 @@ rooms:
|
||||
icon: 💡
|
||||
rank: 160
|
||||
- device_id: schranklicht_hinten_patty
|
||||
title: Schranklicht hinten Patty
|
||||
title: Schranklicht hinten
|
||||
icon: 💡
|
||||
rank: 170
|
||||
- device_id: schranklicht_vorne_patty
|
||||
title: Schranklicht vorne Patty
|
||||
title: Schranklicht vorne
|
||||
icon: 💡
|
||||
rank: 180
|
||||
- device_id: kugellampe_patty
|
||||
title: Kugellampe Patty
|
||||
title: Kugellampe
|
||||
icon: 💡
|
||||
rank: 181
|
||||
- device_id: licht_schreibtisch_patty
|
||||
title: Licht Schreibtisch Patty
|
||||
title: Licht Schreibtisch
|
||||
icon: 💡
|
||||
rank: 182
|
||||
- device_id: deckenlampe_patty
|
||||
title: Deckenlampe
|
||||
icon: 💡
|
||||
rank: 183
|
||||
- device_id: thermostat_patty
|
||||
title: Thermostat Patty
|
||||
title: Thermostat
|
||||
icon: 🌡️
|
||||
rank: 185
|
||||
- device_id: kontakt_patty_garten_rechts
|
||||
@@ -245,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
|
||||
@@ -272,6 +280,10 @@ rooms:
|
||||
title: Sportlicht am Fernseher, Studierzimmer
|
||||
icon: 🏃
|
||||
rank: 260
|
||||
- device_id: sportzimmer_licht
|
||||
title: Deckenlampe
|
||||
icon: 💡
|
||||
rank: 262
|
||||
- device_id: sensor_sportzimmer
|
||||
title: Temperatur & Luftfeuchte
|
||||
icon: 🌡️
|
||||
@@ -313,6 +325,11 @@ rooms:
|
||||
title: Temperatur & Luftfeuchte
|
||||
icon: 🌡️
|
||||
rank: 290
|
||||
- device_id: waschkueche_licht
|
||||
title: Waschküche Licht
|
||||
icon: 💡
|
||||
rank: 340
|
||||
|
||||
- id: outdoor
|
||||
name: Outdoor
|
||||
devices:
|
||||
@@ -346,6 +363,11 @@ rooms:
|
||||
title: Keller Flur Licht
|
||||
icon: 💡
|
||||
rank: 330
|
||||
- device_id: werkstatt_licht
|
||||
title: Werkstatt Licht
|
||||
icon: 💡
|
||||
rank: 350
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user