homeassistant-config/config_creation/main.py

87 lines
3.9 KiB
Python
Raw Normal View History

from util import DeviceInfo
from ruamel.yaml import YAML
import knx_conf as knx
def create_config():
lights = [
# Dimmers
DeviceInfo('Wohnzimmerlampe', 'Wohnzimmer Deckenlampe'),
DeviceInfo('EsszimmerlampeWest', 'Esszimmer Deckenlampe West'),
DeviceInfo('EsszimmerlampeMitte', 'Esszimmer Deckenlampe Mitte'),
DeviceInfo("EsszimmerWandlampe", 'Esszimmer Schrankleuchte'),
DeviceInfo("Küchenlampe", "Küche Deckenlampe"),
DeviceInfo("AussenleuchteUntenSO", "Aussen Terassenlicht"),
DeviceInfo("Gang", "Gang Licht"),
DeviceInfo("Bad", "Bad Licht"),
DeviceInfo("GangWindfang", "Gang Einganglicht"),
DeviceInfo("LichtWaschküche", "Waschküche Licht"),
# Normal lights
DeviceInfo('AussenleuchteHaustüren', 'Haustür Licht'),
DeviceInfo('AussenleuchteObenNW', 'Haustür Licht NW'),
DeviceInfo('TreppenhausLicht', "Treppenhaus Licht"),
DeviceInfo('WCLicht', "WC Licht"),
DeviceInfo('LampeVorratsraum', "Vorratsraum Licht"),
]
shutters = [
DeviceInfo('Wohnzimmer Fenster Rollo', 'Wohnzimmer Fenster Rollo'),
DeviceInfo('Terassentür Rollo', 'Wohnzimmer Terrassentür Rollo'),
DeviceInfo('Küchenfenster Rollo', 'Küche Fenster Rollo'),
DeviceInfo('Esszimmerfenster Rollo', 'Esszimmer Fenster Rollo'),
]
switches = [
# Bells
DeviceInfo("KlingelOben", "Klingel Oben"),
DeviceInfo("Klingel Innen", "Klingel Innentür"),
DeviceInfo("Klingel Aussen", "Klingen Außentür"),
# Bewegungsmelder LEDs
DeviceInfo("BewegungsmelderMitte LED", "Bewegungsmelder Mitte LED"),
DeviceInfo("BewegungsmelderWest LED", "Bewegungsmelder West LED"),
DeviceInfo("BewegungsmelderOst LED", "Bewegungsmelder Ost LED"),
]
scene_button_names = ['ObenLinks', 'ObenRechts', 'MitteLinks', 'MitteRechts', 'UntenLinks', 'UntenRechts']
scene_button_names = [(i, e) for i, e in enumerate(scene_button_names)]
switches += [DeviceInfo(f"SzeneEsszimmer{n}", "Esszimmer Szene {i}") for i, n in scene_button_names]
switches += [DeviceInfo(f"SzeneWohnzimmer{n}", "Wohnzimmer Szene {i}") for i, n in scene_button_names]
switches += [DeviceInfo(f"SzeneEingang{n}", "Eingang Szene {i}") for i, n in scene_button_names[2:]]
switches += [DeviceInfo(f"SzeneTerrassentuer{n}", "Wohnzimmer Terrassentür Szene {i}")
for i, n in scene_button_names[2: 4]]
power_plugs = [
# Vorratsraum
DeviceInfo("VorratsraumSteckdose1", "Vorratsraum Steckdose"),
DeviceInfo("VorratsraumSteckdose2", "Vorratsraum Steckdose"),
DeviceInfo("VorratsraumSteckdose3", "Gefrierschrank"),
# Waschraum
DeviceInfo("Trockner", "Trockner"),
DeviceInfo("Waschmaschine", "Waschmaschine"),
# Küche
DeviceInfo("KücheSteckdose1", "Küche Steckdose 1"),
DeviceInfo("KücheSteckdose2", "Küche Steckdose 2"),
DeviceInfo("Spülmaschine", "Spülmaschine"),
DeviceInfo("Backofen", "Backofen"),
DeviceInfo("HerdP1", "Herd Phase 1"),
DeviceInfo("HerdP2", "Herd Phase 2"),
DeviceInfo("HerdP3", "Herd Phase 3"),
# Rest
DeviceInfo("ArbeitszimmerSteckdose", "Arbeitszimmer Steckdose"),
DeviceInfo("WohnzimmerSteckdose1", "Wohnzimmer Steckdose 1"),
DeviceInfo("WohnzimmerSteckdose2", "Wohnzimmer Steckdose 2"),
]
imported_csv = knx.import_ets5_csv_file('knx_data/export_project1.csv')
imported_csv.update(knx.import_ets5_csv_file('knx_data/export_project2.csv'))
devices = {}
knx.extent(devices, knx.create_lights(lights, imported_csv))
knx.extent(devices, knx.create_shutters(shutters, imported_csv))
knx.extent(devices, knx.create_switches(switches, imported_csv))
knx.extent(devices, knx.create_power_plug(power_plugs, imported_csv))
YAML().dump(devices, open('knx_devices.yaml', 'w'))
if __name__ == '__main__':
create_config()