Config: exclude for recorder, history etc
This commit is contained in:
parent
6b742948a8
commit
7e60684c69
|
@ -1,8 +1,8 @@
|
|||
|
||||
# ---------------------------------- Lights ------------------------------------
|
||||
|
||||
|
||||
|
||||
light:
|
||||
|
||||
- name: Schlafzimmer Deckenlampe
|
||||
dimmer: True
|
||||
fhem_ids:
|
||||
|
@ -41,11 +41,9 @@ light:
|
|||
fhem_ids:
|
||||
- Steckdose_Dimmer
|
||||
|
||||
# ---------------------------------- Covers ------------------------------------
|
||||
|
||||
|
||||
cover:
|
||||
|
||||
|
||||
- name: Arbeitszimmer Martin Rollo
|
||||
fhem_ids:
|
||||
- ArbeitszimmerMartin_Rollo
|
||||
|
@ -74,7 +72,8 @@ cover:
|
|||
- office_rebecca
|
||||
|
||||
|
||||
# ---------------------------------- Switches ------------------------------------
|
||||
|
||||
|
||||
|
||||
switch:
|
||||
- name: Bad Lüfter
|
||||
|
@ -86,7 +85,7 @@ switch:
|
|||
- SteckdosenSchalter
|
||||
|
||||
|
||||
# ------------------------------ Motion Sensors ------------------------------------
|
||||
|
||||
|
||||
binary_sensor:
|
||||
- name: Arbeitszimmer Martin Bewegungsmelder Batterie
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import os
|
||||
import argparse
|
||||
from util import DeviceInfo, add_to_group
|
||||
from util import DeviceInfo, add_to_group, name_to_id
|
||||
from ruamel.yaml import YAML
|
||||
import knx_conf as knx
|
||||
|
||||
|
@ -9,6 +9,18 @@ yaml = YAML()
|
|||
yaml.preserve_quotes = True
|
||||
|
||||
|
||||
fritz_box_counter_sensors = [
|
||||
'sensor.fritz_box_7490_bytes_received',
|
||||
'sensor.fritz_box_7490_bytes_sent',
|
||||
#'sensor.fritz_box_7490_kbyte_sec_received',
|
||||
#'sensor.fritz_box_7490_kbyte_sec_sent',
|
||||
'sensor.fritz_box_7490_packets_received',
|
||||
'sensor.fritz_box_7490_packets_sec_received',
|
||||
'sensor.fritz_box_7490_packets_sec_sent',
|
||||
'sensor.fritz_box_7490_packets_sent',
|
||||
]
|
||||
|
||||
|
||||
def add_knx_devices(devices, groups):
|
||||
imported_csv = knx.import_ets5_csv_file(os.path.join(script_path, 'knx_data/export_project1.csv'))
|
||||
imported_csv.update(knx.import_ets5_csv_file(os.path.join(script_path, 'knx_data/export_project2.csv')))
|
||||
|
@ -160,6 +172,55 @@ def add_light_groups(groups):
|
|||
groups.update(light_groups)
|
||||
|
||||
|
||||
def make_sensor_exclude_list(all_devices, name_fragments):
|
||||
exclude_list = []
|
||||
|
||||
def handle_sensor(s):
|
||||
name = s['name'] if 'name' in s else s['friendly_name']
|
||||
if any(t in name for t in name_fragments):
|
||||
exclude_list.append(name_to_id(name, 'sensor'))
|
||||
|
||||
for sensor_device in all_devices['sensor']:
|
||||
if 'platform' in sensor_device and sensor_device['platform'] == 'template':
|
||||
for nested_sensor_dev in sensor_device['sensors'].values():
|
||||
handle_sensor(nested_sensor_dev)
|
||||
elif 'name' in sensor_device:
|
||||
handle_sensor(sensor_device)
|
||||
else:
|
||||
raise NotImplementedError()
|
||||
return exclude_list
|
||||
|
||||
|
||||
def logbook_config(all_devices):
|
||||
sensor_excludes = ['Helligkeit', 'Betriebsstunden', 'Verbrauch', 'Bewegungsmelder']
|
||||
|
||||
exclude_list = []
|
||||
exclude_list.extend(fritz_box_counter_sensors)
|
||||
exclude_list.extend(make_sensor_exclude_list(all_devices, sensor_excludes))
|
||||
return {
|
||||
'logbook': {
|
||||
'exclude': {
|
||||
'entities': exclude_list,
|
||||
'domains': ['group']
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def recorder_config(all_devices):
|
||||
recorder_excludes = ['Betriebsstunden', 'Verbrauch mA']
|
||||
exclude_list = ['sun.sun']
|
||||
exclude_list.extend(fritz_box_counter_sensors)
|
||||
exclude_list.extend(make_sensor_exclude_list(all_devices, recorder_excludes))
|
||||
return {
|
||||
'recorder': {
|
||||
'exclude': {
|
||||
'entities': exclude_list,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def create_config(target_directory, development=False):
|
||||
groups_yaml_path = os.path.join(script_path, 'groups.yaml')
|
||||
manual_config_path = os.path.join(script_path, 'manual_config.yaml')
|
||||
|
@ -178,6 +239,9 @@ def create_config(target_directory, development=False):
|
|||
del manual_config_dict[key]
|
||||
yaml.dump(manual_config_dict, output)
|
||||
yaml.dump(all_devices, output)
|
||||
yaml.dump(logbook_config(all_devices), output)
|
||||
yaml.dump(recorder_config(all_devices), output)
|
||||
|
||||
add_light_groups(group_dict)
|
||||
|
||||
with open(os.path.join(target_directory, 'groups.yaml'), 'w') as output:
|
||||
|
|
|
@ -55,7 +55,6 @@ homekit:
|
|||
- scene
|
||||
|
||||
|
||||
recorder:
|
||||
history:
|
||||
ios:
|
||||
shopping_list:
|
||||
|
|
Loading…
Reference in New Issue