#!/usr/bin/env python # Copyright (c) 2022 Clément Martin > [ hifi, preamp ] preamp << MyEdge('audio') >> turntable with Cluster('Video'): tv = Television('TV') jack = Rpi4('Jack') proximus_tv = ProximusTV('Decodeur') tv << MyEdge('hdmi') << [ jack, proximus_tv ] with Cluster('Lights'): with Cluster('Salon'): lumieres_salon = [ HueBulb('Boule Salon'), HueBulb('Lustre Canapé'), HueBulb('Lustre Table'), SmartPlug('Vinyls'), SmartPlug('Mappemonde'), Tradfri('Vaisselier') ] with Cluster('Veranda'): lumieres_veranda = [ HueSpot(f'Veranda {x}') for x in range(6) ] wifi_ap << MyEdge('wifi') >> [ tv, jack, boxx, hifi ] malkovitch << MyEdge('ethernet') >> [telenet_router, proximus_router, wifi_ap] telenet_router << MyEdge('cable') >> telenet proximus_router << MyEdge('adsl') >> proximus malkovitch << MyEdge('ethernet') >> living_cpl proximus_router << MyEdge('ethernet') >> [ hue, proximus_tv ] hue << MyEdge('zigbee') >> lumieres_salon hue << MyEdge('zigbee') >> lumieres_veranda with Cluster('Bureau'): tv_bureau = Television() ecran_bureau = UltraWideScreen() walter = NUC('walter') switch = Switch('dlink') office_cpl = CPL('CPL bureau') printer = Printer() rainbow = Rpi4('Rainbow') rpi4_1 = Rpi4('RPI4/1') rpi4_2 = Rpi4('RPI4/2') rpi4_3 = Rpi4('RPI4/3') rpi4_4 = Rpi4('RPI4/4') rpi4_5 = Rpi4('RPI4/5') ps4 = PlayStation4() zippo = Storage('Zippo') lumieres_bureau = [ HueSpot('Plafond bureau 1'), HueSpot('Plafond bureau 2') ] ecran_bureau << MyEdge('hdmi') >> walter tv_bureau << MyEdge('hdmi') >> [ ps4, rainbow ] switch << MyEdge('ethernet') >> [ office_cpl, printer, walter, ps4, rainbow, rpi4_1, rpi4_2, rpi4_3, rpi4_4, rpi4_5, zippo ] with Cluster('Salle de bain'): balance = Aria('Balance') with Cluster('Cuisine'): flex2i = AudioStreamer('Flex 2i') with Cluster('Garage'): lessiveuse = WashingMachine('Lave linge') living_cpl << MyEdge('electric') >> office_cpl wifi_ap << MyEdge('ethernet') >> malkovitch wifi_ap << MyEdge('wifi') >> wifi_devices wifi_ap << MyEdge('wifi') >> balance wifi_ap << MyEdge('wifi') >> flex2i wifi_ap << MyEdge('wifi') >> lessiveuse hue << MyEdge('zigbee') >> lumieres_bureau alistair >> [ nintendo_switch, tel_alistair ] maithe >> [ tel_maithe, laptop_maithe ] clement >> [ tel_clement, laptop_clement, walter ]