Skip to content

Instantly share code, notes, and snippets.

@otzen
Last active January 15, 2022 20:32
Show Gist options
  • Save otzen/46558a0049e97e9f590c465764c87cd2 to your computer and use it in GitHub Desktop.
Save otzen/46558a0049e97e9f590c465764c87cd2 to your computer and use it in GitHub Desktop.
Et par hjæpe scripts til at genere nogle kedelige yaml scripts.
sensors = [
("A4:C1:38:74:3F:F5", "Loftrum"),
("A4:C1:38:F5:F6:EB", "Gang over trappe"),
("A4:C1:38:96:3D:6C", "Gæsteværelse"),
("A4:C1:38:50:91:07", "Kontor nord"),
("A4:C1:38:FE:6C:B2", "Kontor syd"),
("A4:C1:38:0A:C9:2D", "Garage"),
("A4:C1:38:53:34:39", "Gang ved trappe"),
("A4:C1:38:B8:7A:2A", "Børneværelse"),
("A4:C1:38:79:7F:8D", "Badeværelse"),
("A4:C1:38:8C:12:DD", "Soveværelse"),
("A4:C1:38:6C:F6:F1", "Gang ved fyr"),
("A4:C1:38:BF:73:11", "Køkken"),
("A4:C1:38:EB:60:1A", "Spisekammer"),
("A4:C1:38:A3:C3:FA", "Stue"),
("A4:C1:38:0B:F2:21", "Værksted 1"),
("A4:C1:38:2C:EA:09", "Værksted 2"),
]
hubs = [
("loft-nord", [0, 1, 2]),
("loft-syd", [3, 4, 5]),
("sovevaerelse", [6, 7, 8, 9]),
("koekken", [10, 11, 12, 13,14, 15])
]
for hub in hubs:
print(f'# {hub[0]} sensorer')
print('sensor:')
# Sensors
for sensorIdx in hub[1]:
sensor = sensors[sensorIdx]
print(' - platform: xiaomi_lywsd03mmc')
print(f' mac_address: "{sensor[0]}"')
print(' bindkey: "eef418daf699a0c188f3bfd17e4565dA"')
print(' temperature:')
print(f' name: "{sensor[1]} temperatur"')
print(' humidity:')
print(f' name: "{sensor[1]} fugt"')
print(' battery_level:')
print(f' name: "{sensor[1]} batteri"')
print()
#signal monitorer
print(f'# signal monitorer')
for sensor in sensors:
print(f' - platform: ble_rssi')
print(f' mac_address: "{sensor[0]}"')
print(f' name: "{sensor[1]} signal på {hub[0]}"')
print()
print(''' # wifi monitor
- platform: wifi_signal
name: "WiFi Signal"
update_interval: 600s
''')
print('''
-------------------------------------------------------------------------
''')
sensors = [
("A4:C1:38:74:3F:F5", "Loftrum"), # 0
("A4:C1:38:F5:F6:EB", "Gang over trappe"), # 1
("A4:C1:38:96:3D:6C", "Gæsteværelse"), # 2
("A4:C1:38:50:91:07", "Kontor nord"), # 3
("A4:C1:38:FE:6C:B2", "Kontor syd"), # 4
("A4:C1:38:0A:C9:2D", "Garage"), # 5
("A4:C1:38:53:34:39", "Gang ved trappe"), # 6
("A4:C1:38:B8:7A:2A", "Børneværelse"), # 7
("A4:C1:38:79:7F:8D", "Badeværelse"), # 8
("A4:C1:38:8C:12:DD", "Soveværelse"), # 9
("A4:C1:38:6C:F6:F1", "Gang ved fyr"), # 10
("A4:C1:38:BF:73:11", "Køkken"), # 11
("A4:C1:38:EB:60:1A", "Spisekammer"), # 12
("A4:C1:38:A3:C3:FA", "Stue"), # 13
("A4:C1:38:0B:F2:21", "Værksted 1"), # 14
("A4:C1:38:2C:EA:09", "Værksted 2"), # 15
]
rooms = [
('Badeværelse', [8]),
('Børenværelse', [7]),
('Gæsteværelse', [2]),
('Kontor', [3, 4]),
('Køkken', [11, 12]),
('Soveværelse', [9]),
('Stue', [13, 14, 15]),
('Ude', [0, 5]),
('Værksted', [14]),
('Alle', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]),
]
hubs = [
("loft-nord", [0, 1, 2]),
("loft-syd", [3, 4, 5]),
("sovevaerelse", [6, 7, 8, 9]),
("koekken", [10, 11, 12, 13, 14, 15])
]
def lcode(infield) -> str:
data = ''
for i in infield:
if i == u'Æ':
data = data + 'AE'
elif i == 'æ':
data = data + 'ae'
elif i == 'Ø':
data = data + 'OE'
elif i == 'ø':
data = data + 'oe'
elif i == 'Å': # Ö
data = data + 'AA'
elif i == 'å':
data = data + 'aa'
elif i == ' ':
data = data + '_'
else:
data = data + i
return data
def make_yaml():
print('title: tg56 temperaturer')
print('views:')
for room in rooms:
print(f' - title: {room[0]}')
print(f' path: {lcode(room[0]).lower()}')
print(f' type: sidebar')
# print(f' badges:')
# for sensidx in room[1]:
# sensor_name = lcode(sensors[sensidx][0]).lower()
# print(f' - entity: sensor.{sensor_name}_temperatur')
# print(f' - entity: sensor.{sensor_name}_fugt')
# print(f' - entity: sensor.{sensor_name}_batteri')
print(f' cards:')
for dur in [('Døgn', 2),('Uge', 7), ('Måned', 31),('År',365)]:
print(f' - type: history-graph')
print(f' entities:')
print(f' title: {dur[0]}')
for sensidx in room[1]:
sensor_name = lcode(sensors[sensidx][1]).lower()
print(f' - entity: sensor.{sensor_name}_temperatur')
print(f' - entity: sensor.{sensor_name}_fugt')
print(f' - entity: sensor.{sensor_name}_batteri')
print(f' hours_to_show: {dur[1] * 24}')
print(f' refresh_interval: 0')
if __name__ == '__main__':
make_yaml()
title: tg56 temperaturer
views:
- title: badeværelse
path: badevarelse
badges:
- entity: sensor.badevaerelse_temperatur
- entity: sensor.badevaerelse_fugt
- entity: sensor.badevaerelse_batteri
cards:
- type: history-graph
entities:
- entity: sensor.badevaerelse_temperatur
- entity: sensor.badevaerelse_fugt
- entity: sensor.badevaerelse_batteri
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.badevaerelse_batteri
hours_to_show: 8760
refresh_interval: 24
- title: børneværelse
path: b-varelse
badges:
- entity: sensor.bornevaerelse_temperatur
- entity: sensor.bornevaerelse_fugt
- entity: sensor.bornevaerelse_batteri
cards:
- type: history-graph
entities:
- entity: sensor.bornevaerelse_temperatur
- entity: sensor.bornevaerelse_fugt
- entity: sensor.bornevaerelse_batteri
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.bornevaerelse_batteri
hours_to_show: 8760
refresh_interval: 0
- title: Gang
path: gang
badges:
- entity: sensor.gang_ved_fyr_temperatur
- entity: sensor.gang_ved_trappe_temperatur
- entity: sensor.gang_over_trappe_temperatur
- entity: sensor.gang_ved_fyr_fugt
- entity: sensor.gang_ved_trappe_fugt
- entity: sensor.gang_over_trappe_fugt
- entity: sensor.gang_ved_fyr_batteri
- entity: sensor.gang_ved_trappe_batteri
- entity: sensor.gang_over_trappe_batteri
cards:
- type: history-graph
entities:
- entity: sensor.gang_ved_fyr_temperatur
- entity: sensor.gang_ved_trappe_temperatur
- entity: sensor.gang_over_trappe_temperatur
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.gang_ved_fyr_fugt
- entity: sensor.gang_ved_trappe_fugt
- entity: sensor.gang_over_trappe_fugt
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.gang_ved_fyr_batteri
- entity: sensor.gang_ved_trappe_batteri
- entity: sensor.gang_over_trappe_batteri
hours_to_show: 8760
refresh_interval: 24
- path: default_view
title: gæsteværelse
badges:
- entity: sensor.gaestevaerelse_temperatur
- entity: sensor.gaestevaerelse_fugt
- entity: sensor.gaestevaerelse_batteri
cards:
- type: history-graph
entities:
- entity: sensor.gaestevaerelse_temperatur
- entity: sensor.gaestevaerelse_fugt
- entity: sensor.gaestevaerelse_batteri
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.gaestevaerelse_batteri
hours_to_show: 8760
refresh_interval: 0
- title: Kontor
path: kontor
type: sidebar
badges:
- entity: sensor.kontor_nord_temperatur
- entity: sensor.kontor_syd_temperatur
- entity: sensor.kontor_nord_fugt
- entity: sensor.kontor_syd_fugt
- entity: sensor.kontor_nord_batteri
- entity: sensor.kontor_syd_batteri
cards:
- type: history-graph
entities:
- entity: sensor.kontor_nord_temperatur
- entity: sensor.kontor_syd_temperatur
- entity: sensor.kontor_nord_fugt
- entity: sensor.kontor_syd_fugt
- entity: sensor.kontor_nord_batteri
- entity: sensor.kontor_syd_batteri
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.kontor_nord_batteri
- entity: sensor.kontor_syd_batteri
hours_to_show: 8760
refresh_interval: 24
- title: køkken
path: kokken
type: sidebar
badges:
- entity: sensor.koekken_temperatur
- entity: sensor.spisekammer_temperatur
- entity: sensor.koekken_fugt
- entity: sensor.spisekammer_fugt
- entity: sensor.koekken_batteri
- entity: sensor.spisekammer_batteri
cards:
- type: history-graph
entities:
- entity: sensor.koekken_temperatur
- entity: sensor.spisekammer_temperatur
- entity: sensor.koekken_fugt
- entity: sensor.spisekammer_fugt
- entity: sensor.koekken_batteri
- entity: sensor.spisekammer_batteri
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.koekken_batteri
- entity: sensor.spisekammer_batteri
hours_to_show: 8760
refresh_interval: 24
- type: history-graph
entities:
- entity: sensor.koekken_temperatur
- entity: sensor.koekken_fugt
- entity: sensor.koekken_batteri
- entity: sensor.spisekammer_temperatur
- entity: sensor.spisekammer_fugt
- entity: sensor.spisekammer_batteri
hours_to_show: 720
refresh_interval: 0
title: Måned
- title: soveværelse
path: sovevarelse
badges:
- entity: sensor.sovevaerelse_temperatur
- entity: sensor.sovevaerelse_fugt
- entity: sensor.sovevaerelse_batteri
cards:
- type: history-graph
entities:
- entity: sensor.sovevaerelse_temperatur
- entity: sensor.sovevaerelse_fugt
- entity: sensor.sovevaerelse_batteri
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.sovevaerelse_batteri
hours_to_show: 8760
refresh_interval: 24
- title: stue
path: stue
badges:
- entity: sensor.stue_temperatur
- entity: sensor.vaerksted_1_temperatur
- entity: sensor.vaerksted_2_temperatur
- entity: sensor.stue_fugt
- entity: sensor.vaerksted_1_fugt
- entity: sensor.vaerksted_2_fugt
- entity: sensor.stue_batteri
- entity: sensor.vaerksted_1_batteri
- entity: sensor.vaerksted_2_batteri
cards:
- type: history-graph
entities:
- entity: sensor.stue_temperatur
- entity: sensor.vaerksted_1_temperatur
- entity: sensor.vaerksted_2_temperatur
- entity: sensor.stue_fugt
- entity: sensor.vaerksted_1_fugt
- entity: sensor.vaerksted_2_fugt
- entity: sensor.stue_batteri
- entity: sensor.vaerksted_1_batteri
- entity: sensor.vaerksted_2_batteri
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.stue_batteri
- entity: sensor.vaerksted_1_batteri
- entity: sensor.vaerksted_2_batteri
hours_to_show: 8760
refresh_interval: 24
- title: Ude
path: ude
badges:
- entity: sensor.loftrum_temperatur
- entity: sensor.garage_temperatur
- entity: sensor.loftrum_fugt
- entity: sensor.garage_fugt
- entity: sensor.loftrum_batteri
- entity: sensor.garage_batteri
cards:
- type: history-graph
entities:
- entity: sensor.loftrum_temperatur
- entity: sensor.garage_temperatur
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.loftrum_fugt
- entity: sensor.garage_fugt
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.loftrum_batteri
- entity: sensor.garage_batteri
hours_to_show: 8760
refresh_interval: 24
- title: Værksted
path: varksted
badges:
- entity: sensor.vaerksted_1_temperature
- entity: sensor.vaerksted_1_humidity
- entity: sensor.vaerksted_1_battery_level
cards:
- type: history-graph
entities:
- entity: sensor.vaerksted_1_temperature
- entity: sensor.vaerksted_1_humidity
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.vaerksted_1_battery_level
hours_to_show: 8760
refresh_interval: 24
- type: media-control
entity: media_player.v_radio
- title: Alle
path: alle
badges:
- entity: sensor.badevaerelse_temperatur
- entity: sensor.bornevaerelse_temperatur
- entity: sensor.gang_ved_fyr_temperatur
- entity: sensor.gang_ved_trappe_temperatur
- entity: sensor.gang_over_trappe_temperatur
- entity: sensor.gaestevaerelse_temperatur
- entity: sensor.kontor_nord_temperatur
- entity: sensor.kontor_syd_temperatur
- entity: sensor.koekken_temperatur
- entity: sensor.spisekammer_temperatur
- entity: sensor.stue_temperatur
- entity: sensor.vaerksted_1_temperatur
- entity: sensor.vaerksted_2_temperatur
- entity: sensor.loftrum_temperatur
- entity: sensor.garage_temperatur
- entity: sensor.badevaerelse_fugt
- entity: sensor.bornevaerelse_fugt
- entity: sensor.gang_ved_fyr_fugt
- entity: sensor.gang_ved_trappe_fugt
- entity: sensor.gang_over_trappe_fugt
- entity: sensor.gaestevaerelse_fugt
- entity: sensor.kontor_nord_fugt
- entity: sensor.kontor_syd_fugt
- entity: sensor.koekken_fugt
- entity: sensor.spisekammer_fugt
- entity: sensor.stue_fugt
- entity: sensor.vaerksted_1_fugt
- entity: sensor.vaerksted_2_fugt
- entity: sensor.loftrum_fugt
- entity: sensor.garage_fugt
- entity: sensor.badevaerelse_batteri
- entity: sensor.bornevaerelse_batteri
- entity: sensor.gang_ved_fyr_batteri
- entity: sensor.gang_ved_trappe_batteri
- entity: sensor.gang_over_trappe_batteri
- entity: sensor.gaestevaerelse_batteri
- entity: sensor.kontor_nord_batteri
- entity: sensor.kontor_syd_batteri
- entity: sensor.koekken_batteri
- entity: sensor.spisekammer_batteri
- entity: sensor.stue_batteri
- entity: sensor.vaerksted_1_batteri
- entity: sensor.vaerksted_2_batteri
- entity: sensor.loftrum_batteri
- entity: sensor.garage_batteri
cards:
- type: history-graph
entities:
- entity: sensor.badevaerelse_temperatur
- entity: sensor.badevaerelse_fugt
- entity: sensor.bornevaerelse_temperatur
- entity: sensor.bornevaerelse_fugt
- entity: sensor.gang_ved_fyr_temperatur
- entity: sensor.gang_ved_trappe_temperatur
- entity: sensor.gang_over_trappe_temperatur
- entity: sensor.gang_ved_fyr_fugt
- entity: sensor.gang_ved_trappe_fugt
- entity: sensor.gang_over_trappe_fugt
- entity: sensor.gaestevaerelse_temperatur
- entity: sensor.gaestevaerelse_fugt
- entity: sensor.kontor_nord_temperatur
- entity: sensor.kontor_syd_temperatur
- entity: sensor.kontor_nord_fugt
- entity: sensor.kontor_syd_fugt
- entity: sensor.koekken_temperatur
- entity: sensor.spisekammer_temperatur
- entity: sensor.koekken_fugt
- entity: sensor.spisekammer_fugt
- entity: sensor.sovevaerelse_temperatur
- entity: sensor.sovevaerelse_fugt
- entity: sensor.stue_temperatur
- entity: sensor.vaerksted_1_temperatur
- entity: sensor.vaerksted_2_temperatur
- entity: sensor.stue_fugt
- entity: sensor.vaerksted_1_fugt
- entity: sensor.vaerksted_2_fugt
- entity: sensor.loftrum_temperatur
- entity: sensor.garage_temperatur
- entity: sensor.loftrum_fugt
- entity: sensor.garage_fugt
hours_to_show: 48
refresh_interval: 0
- type: history-graph
entities:
- entity: sensor.badevaerelse_batteri
- entity: sensor.badevaerelse_batteri
- entity: sensor.bornevaerelse_batteri
- entity: sensor.gang_ved_fyr_batteri
- entity: sensor.gang_ved_trappe_batteri
- entity: sensor.gang_over_trappe_batteri
- entity: sensor.kontor_nord_batteri
- entity: sensor.kontor_syd_batteri
- entity: sensor.koekken_batteri
- entity: sensor.spisekammer_batteri
- entity: sensor.sovevaerelse_batteri
- entity: sensor.stue_batteri
- entity: sensor.vaerksted_1_batteri
- entity: sensor.vaerksted_2_batteri
- entity: sensor.loftrum_batteri
- entity: sensor.garage_batteri
hours_to_show: 8760
refresh_interval: 24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment