87 lines
3.9 KiB
Python
87 lines
3.9 KiB
Python
|
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()
|