Fixes
This commit is contained in:
@@ -9,7 +9,7 @@ yaml = YAML()
|
||||
def get_config():
|
||||
return {
|
||||
'bedroom': {
|
||||
'ir_host': 'bedroompi',
|
||||
'ir_host': 'bedroompi.fritz.box',
|
||||
'media_player': 'media_player.bedroompi',
|
||||
'group': 'group.bedroom',
|
||||
|
||||
@@ -73,7 +73,7 @@ def get_config():
|
||||
}
|
||||
},
|
||||
'living_area': {
|
||||
'ir_host': 'kitchenpi',
|
||||
'ir_host': 'kitchenpi.fritz.box',
|
||||
'media_player': 'media_player.kitchenpi',
|
||||
'group': 'group.living_area',
|
||||
|
||||
@@ -97,9 +97,8 @@ def get_config():
|
||||
}
|
||||
},
|
||||
'first_floor_dining_room': {
|
||||
'ir_host': 'esszimmerradio',
|
||||
'ir_host': 'esszimmerradio.fritz.box',
|
||||
'media_player': 'media_player.esszimmer',
|
||||
'group': 'first_floor',
|
||||
'mapping': {
|
||||
'btn_1': '[radio] Bayern 1',
|
||||
'btn_2': '[radio] Bayern 2',
|
||||
@@ -114,7 +113,25 @@ def get_config():
|
||||
'btn_0': '[playlist] Weihnachten mit den Wiener Sängerknaben',
|
||||
'key_numeric_pound': '[playlist] SammlungGeorg',
|
||||
}
|
||||
}
|
||||
},
|
||||
'first_floor_living_room': {
|
||||
'ir_host': 'musikserverwohnzimmeroben.fritz.box',
|
||||
'media_player': 'media_player.wohnzimmer',
|
||||
'mapping': {
|
||||
'btn_1': '[radio] Bayern 1',
|
||||
'btn_2': '[radio] Bayern 2',
|
||||
'btn_3': '[radio] BR Heimat',
|
||||
'btn_4': '[radio] Bayern+',
|
||||
'btn_5': '[radio] B 5 Aktuell',
|
||||
'btn_6': '[radio] BR-Klassik',
|
||||
'btn_7': '[playlist] Gesammelte Weihnachtslieder',
|
||||
'btn_8': '[playlist] Harmonic Brass Christmas',
|
||||
'btn_9': '[playlist] German Brass Christmas',
|
||||
'key_numeric_star': '[playlist] Weihnachten mit den Wiener Sängerknaben',
|
||||
'btn_0': '[playlist] Weihnachten mit den Wiener Sängerknaben',
|
||||
'key_numeric_pound': '[playlist] SammlungGeorg',
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -131,8 +148,6 @@ def split_description(d):
|
||||
|
||||
def automation_from_config(ir_description):
|
||||
ir_host = ir_description['ir_host']
|
||||
media_player = ir_description['media_player']
|
||||
group = ir_description['group']
|
||||
|
||||
result = []
|
||||
for key, description in ir_description['mapping'].items():
|
||||
@@ -143,14 +158,17 @@ def automation_from_config(ir_description):
|
||||
elif isinstance(description, str):
|
||||
function, value = split_description(description)
|
||||
if function == 'playlist':
|
||||
media_player = ir_description['media_player']
|
||||
action = service('media_player.play_media', media_player,
|
||||
media_content_id=value, media_content_type='music')
|
||||
elif function == 'radio':
|
||||
media_player = ir_description['media_player']
|
||||
action = service('media_player.play_media', media_player,
|
||||
media_content_id=value, media_content_type='channel')
|
||||
elif function == 'scene':
|
||||
action = service('scene.turn_on', 'scene.' + value)
|
||||
elif function == 'timed_light_off':
|
||||
group = ir_description['group']
|
||||
action = service('light.turn_off', group, transition=str(60 * int(value)))
|
||||
else:
|
||||
raise ValueError("Invalid prefix " + function)
|
||||
@@ -277,10 +295,15 @@ def default_music_controls(device_group, ir_host):
|
||||
|
||||
def create_rules(folder):
|
||||
for name, data in get_config().items():
|
||||
rules = automation_from_config(data)
|
||||
rules += default_light_controls(data['group'], data['ir_host'])
|
||||
rules += default_music_controls(data['media_player'], data['ir_host'])
|
||||
rules += default_shutter_controls(data['group'], data['ir_host'])
|
||||
rules = []
|
||||
rules += automation_from_config(data)
|
||||
|
||||
if 'group' in data:
|
||||
rules += default_shutter_controls(data['group'], data['ir_host'])
|
||||
rules += default_light_controls(data['group'], data['ir_host'])
|
||||
if 'media_player' in data:
|
||||
rules += default_music_controls(data['media_player'], data['ir_host'])
|
||||
|
||||
file_name = os.path.join(folder, "ir_" + name + '.yaml')
|
||||
with open(file_name, 'w') as f:
|
||||
f.write("# Dont' edit manually! this is generated!\n\n")
|
||||
|
||||
Reference in New Issue
Block a user