1
0
ansible-home-assistant/configuration/configuration.yaml
2022-11-14 23:39:48 +01:00

610 lines
16 KiB
YAML

# Configure a default setup of Home Assistant (frontend, api, etc)
alert: !include alert.yaml
automation: !include automations.yaml
#cloud:
config:
counter:
dhcp:
energy:
frontend:
themes: !include_dir_merge_named themes
homeassistant:
customize: !include customize.yaml
history:
http:
use_x_forwarded_for: true
trusted_proxies:
- 192.168.50.100
- 192.168.50.101
- 192.168.50.102
- 192.168.50.103
- 192.168.50.104
ip_ban_enabled: false
login_attempts_threshold: 5
image:
input_boolean:
3d_printer_timelapse:
name: "3D printer timelapse"
icon: "mdi:camera-burst"
pc_caffeine:
name: "PC Caffeine"
icon: "mdi:desktop-tower-monitor"
pc_sleeping:
name: "PC sleeping"
icon: "mdi:desktop-tower-monitor"
sleep_mode:
name: "Sleep mode"
icon: "mdi:weather-night"
vacation_mode:
name: "Vacation mode"
icon: "mdi:beach"
vacuum_office:
name: "Vacuum Office"
icon: "mdi:chair-rolling"
vacuum_living_room:
name: "Vacuum Living room"
icon: "mdi:sofa"
vacuum_table_area:
name: "Vacuum Table area"
icon: "mdi:table-furniture"
vacuum_kitchen:
name: "Vacuum Kitchen"
icon: "mdi:pot-mix"
vacuum_hallway:
name: "Vacuum Hallway"
icon: "mdi:foot-print"
vacuum_bedroom:
name: "Vacuum Bedroom"
icon: "mdi:bed-empty"
vacuum_bathroom:
name: "Vacuum Bathroom"
icon: "mdi:shower"
vacuum_vacuumed_today:
name: "Vacuumed today"
icon: "mdi:robot-vacuum"
washing_machine_done:
name: "Washing machine done"
icon: "mdi:washing-machine"
input_datetime:
alarm:
name: "Alarm time"
icon: "mdi:bell-sleep"
has_date: true
has_time: true
day_mode:
name: "Day mode time"
icon: "mdi:weather-sunset"
has_date: false
has_time: true
sleep_mode:
name: "Sleep mode time"
icon: "mdi:weather-night"
has_date: false
has_time: true
input_number:
power_price:
name: "Power Price"
icon: "mdi:transmission-tower"
min: 0
max: 2
step: 0.01
unit_of_measurement: zł/kWh
input_select:
home_mode:
name: Home mode
options:
- Day
- Night
- Party
- Away
icon: "mdi:home"
input_text:
bathroom_playlist:
name: Bathroom playlist
icon: "mdi:folder-music-outline"
logbook:
network:
map:
media_source:
mobile_app:
my:
person:
python_script:
recorder:
db_url: !secret mysql_url
scene: !include scenes.yaml
script: !include scripts.yaml
ssdp:
stream:
sun:
system_health:
#tag:
timer:
webhook:
zeroconf:
zone:
#powercalc:
# Text to speech
tts:
- platform: google_translate
cache: true
base_url: http://192.168.60.100:8123
group: !include groups.yaml
zha:
custom_quirks_path: /config/zha_custom_quirks
zigpy_config:
network:
channel: 15
ota:
ikea_provider: true
ledvance_provider: true
otau_directory: /config/ota
ios:
actions:
- name: "Intercom button"
background_color: "#000000"
label:
text: "Intercom button"
color: "#ffffff"
icon:
icon: door-closed-lock
color: "#ffffff"
- name: "Door Lock Toggle"
background_color: "#000000"
label:
text: "Door Lock"
color: "#ffffff"
icon:
icon: lock-open
color: "#ffffff"
- name: "Good Night"
background_color: "#000000"
label:
text: "Good Night"
color: "#9e9e9e"
icon:
icon: weather-night
color: "#9e9e9e"
- name: "Good Morning"
background_color: "#000000"
label:
text: "Good Morning"
color: "#ff9800"
icon:
icon: weather-sunny
color: "#ff9800"
- name: "Leave Home"
background_color: "#000000"
label:
text: "Leave Home"
color: "#ffffff"
icon:
icon: home-export-outline
color: "#ffffff"
- name: "Arrive Home"
background_color: "#000000"
label:
text: "Arrive Home"
color: "#ffffff"
icon:
icon: home-import-outline
color: "#ffffff"
#zoneminder:
# - host: zoneminder.grondek.pl
# ssl: true
# verify_ssl: true
# path_zms: /zm/cgi-bin/nph-zms
# path: /zm/
#camera:
# - platform: zoneminder
# - platform: generic
# name: '3D Printer Camera'
# still_image_url: https://192.168.110.11:8554/currentpic.cgi
# stream_source: rtsp://192.168.110.11:8554/unicast
# rtsp_transport: udp
# verify_ssl: false
# scan_interval: 5
# - platform: generic
# name: 'Kitchen Direct'
# still_image_url: https://root:root@192.168.110.12/cgi-bin/currentpic.cgi
# stream_source: rtsp://192.168.110.12:8554/unicast
# rtsp_transport: udp
# verify_ssl: false
# scan_interval: 5
# - platform: generic
# name: 'Hallway Direct'
# still_image_url: https://192.168.110.13:8554/currentpic.cgi
# stream_source: rtsp://192.168.110.13:8554/unicast
# rtsp_transport: udp
# verify_ssl: false
# scan_interval: 5
alarm_control_panel:
- platform: manual
name: Home Alarm
delay_time: 30
arming_time: 30
trigger_time: 120
notify:
- platform: nfandroidtv
name: Shield
host: 192.168.60.18
color: black
- platform: sms
name: sms_notification
recipient: !secret phone_number
media_player:
- platform: androidtv
name: Bedroom ATV
device_class: androidtv
host: 192.168.60.17
adbkey: "/config/android/adbkey"
- platform: androidtv
name: nVidia Shield
device_class: androidtv
host: 192.168.60.18
adbkey: "/config/android/adbkey"
# exclude_unnamed_apps: true
apps:
com.google.android.leanbacklauncher: AndroidTV Launcher
com.netflix.ninja: Netflix
com.liskovsoft.smarttubetv.beta: SmartTube
tv.twitch.android.app: Twitch
org.mozilla.firefox: Firefox
com.tvp.vodtv.tv: TVP VOD
pl.redefine.ipla: IPLA
com.amazon.amazonvideo.livingroom: Prime Video
eu.hbogo.androidtv.production: HBO GO
com.formulaone.production: F1TV
state_detection_rules:
'com.netflix.ninja':
- 'media_session_state'
'com.amazon.amazonvideo.livingroom':
- 'media_session_state'
'eu.hbogo.androidtv.production':
- 'media_session_state'
shell_command:
pc_poweroff: 'ssh -i /config/.ssh/id_rsa -o UserKnownHostsFile=/config/.ssh/known_hosts home-assistant@192.168.50.21 sudo /sbin/poweroff'
pc_suspend: 'ssh -i /config/.ssh/id_rsa -o UserKnownHostsFile=/config/.ssh/known_hosts home-assistant@192.168.50.21 sudo /usr/sbin/pm-suspend'
rest_command:
octoprint_connect:
url: 'http://192.168.50.6:5000/api/connection'
method: post
content_type: 'application/json'
headers:
X-Api-Key: !secret octoprint_api_key
payload: |
{
"command": "connect"
}
rest:
- scan_interval: 43200 # 12h
resource: 'https://warszawa19115.pl/harmonogramy-wywozu-odpadow?p_p_id=portalCKMjunkschedules_WAR_portalCKMjunkschedulesportlet_INSTANCE_o5AIb2mimbRJ&p_p_lifecycle=2&p_p_state=normal&p_p_mode=view&p_p_resource_id=ajaxResourceURL&p_p_cacheability=cacheLevelPage&p_p_col_id=column-1&p_p_col_count=1'
method: POST
payload: '_portalCKMjunkschedules_WAR_portalCKMjunkschedulesportlet_INSTANCE_o5AIb2mimbRJ_addressPointId=76748040'
headers:
Content-Type: 'application/x-www-form-urlencoded'
sensor:
- name: "Address"
value_template: "{{ value_json[0].adres }}"
- name: "Garbage Collection BIO"
device_class: 'timestamp'
value_template: "{{ value_json[0].harmonogramy[1].data }}"
json_attributes_path: "$.[0].harmonogramy.[1].frakcja"
json_attributes:
- id_frakcja
- kod
- nazwa
- opis
- name: "Garbage Collection Metal & Plastics"
device_class: 'timestamp'
value_template: "{{ value_json[0].harmonogramy[2].data }}"
json_attributes_path: "$.[0].harmonogramy.[2].frakcja"
json_attributes:
- id_frakcja
- kod
- nazwa
- opis
- name: "Garbage Collection Paper"
device_class: 'timestamp'
value_template: "{{ value_json[0].harmonogramy[3].data }}"
json_attributes_path: "$.[0].harmonogramy.[3].frakcja"
json_attributes:
- id_frakcja
- kod
- nazwa
- opis
- name: "Garbage Collection Glass"
device_class: 'timestamp'
value_template: "{{ value_json[0].harmonogramy[4].data }}"
json_attributes_path: "$.[0].harmonogramy.[4].frakcja"
json_attributes:
- id_frakcja
- kod
- nazwa
- opis
- name: "Garbage Collection Furniture"
device_class: 'timestamp'
value_template: "{{ value_json[0].harmonogramy[6].data }}"
json_attributes_path: "$.[0].harmonogramy.[6].frakcja"
json_attributes:
- id_frakcja
- kod
- nazwa
- opis
- name: "Garbage Collection Mixed"
device_class: 'timestamp'
value_template: "{{ value_json[0].harmonogramy[7].data }}"
json_attributes_path: "$.[0].harmonogramy.[7].frakcja"
json_attributes:
- id_frakcja
- kod
- nazwa
- opis
calendar:
- platform: caldav
url: https://cloud.grondek.pl/remote.php/dav
username: pgrondek
password: !secret nextcloud_token
custom_calendars:
- name: "Sleep"
calendar: "Automations"
search: "Sleep"
- name: "Wakeup"
calendar: "Automations"
search: "Wakeup"
- name: "Caffeine free time"
calendar: "Automations"
search: "Caffeine free"
- platform: caldav
url: https://cloud.grondek.pl/remote.php/dav
username: pgrondek
password: !secret nextcloud_token
calendars:
- "2021 FIA Formula One World Championship Race Calendar"
#ble_monitor:
# # Xiaomi BT Sensors
# decimals: 1
# period: 60
# log_spikes: False
# use_median: False
# active_scan: False
# bt_interface: 'DC:A6:32:F6:63:C3'
# report_unknown: False
# discovery: False
# devices:
# - name: 'Toothbrush'
# mac: '50:33:8b:1b:a1:9f'
# - name: 'Bedroom sensor [BLE]'
# mac: '58:2D:34:3B:67:B0'
# - name: 'Filament Sensor'
# mac: 'A4:C1:38:EC:AE:6B'
# - name: 'Computer Cave sensor'
# mac: 'A4:C1:38:05:3D:AF'
# - name: 'Bathroom sensor [BLE]'
# mac: 'A4:C1:38:49:30:DF'
# - name: 'Rack sensor'
# mac: 'A4:C1:38:5E:F8:84'
# - name: 'Kettle'
# mac: '7C:49:EB:30:61:CE'
# - name: 'Thuja Plant 1'
# mac: 'C4:7C:8D:6C:5B:25'
# - name: 'Thuja Plant 2'
# mac: 'C4:7C:8D:6C:9F:C6'
# - name: 'Thuja Plant 3'
# mac: 'C4:7C:8D:6C:9F:9B'
# - name: 'Living Room Plant 1'
# mac: 'C4:7C:8D:6C:59:D0'
# - name: 'Living Room Plant 2'
# mac: 'C4:7C:8D:6C:59:D5'
# - name: 'Weight Scale'
# mac: 'C8:47:8C:D9:6F:96'
# - name: 'Freezer'
# mac: 'A4:C1:38:67:C8:76'
sensor:
- platform: systemmonitor
resources:
- type: memory_use
- type: memory_free
- type: swap_use
- type: swap_free
- type: load_1m
- type: load_5m
- type: load_15m
- type: processor_use
- type: processor_temperature
- type: ipv4_address
arg: "eth0"
- type: ipv6_address
arg: "eth0"
- type: network_in
arg: "eth0"
- type: network_out
arg: "eth0"
- type: throughput_network_in
arg: "eth0"
- type: throughput_network_out
arg: "eth0"
- type: packets_in
arg: "eth0"
- type: packets_out
arg: "eth0"
# SNMP
- platform: snmp
name: "Router eth0 link speed"
host: 192.168.60.1
community: home
baseoid: 1.3.6.1.2.1.2.2.1.5.4
accept_errors: true
unit_of_measurement: "Mbits"
value_template: "{{((value | int) / 1000000) | int}}"
- platform: snmp
name: "Router eth1 link speed"
host: 192.168.60.1
community: home
baseoid: 1.3.6.1.2.1.2.2.1.5.5
accept_errors: true
unit_of_measurement: "Mbits"
value_template: "{{((value | int) / 1000000) | int}}"
- platform: snmp
name: "Router eth2 link speed"
host: 192.168.60.1
community: home
baseoid: 1.3.6.1.2.1.2.2.1.5.6
accept_errors: true
unit_of_measurement: "Mbits"
value_template: "{{((value | int) / 1000000) | int}}"
- platform: snmp
name: "Router eth3 link speed"
host: 192.168.60.1
community: home
baseoid: 1.3.6.1.2.1.2.2.1.5.7
accept_errors: true
unit_of_measurement: "Mbits"
value_template: "{{((value | int) / 1000000) | int}}"
- platform: snmp
name: "Router eth4 link speed"
host: 192.168.60.1
community: home
baseoid: 1.3.6.1.2.1.2.2.1.5.8
accept_errors: true
unit_of_measurement: "Mbits"
value_template: "{{((value | int) / 1000000) | int}}"
- platform: snmp
version: 2c
name: "Router uptime"
host: 192.168.60.1
community: home
baseoid: 1.3.6.1.2.1.25.1.1.0
accept_errors: true
value_template: >-
{% set timetick = value | int %}
{% set minutes = ((timetick % 360000) / 6000) | int%}
{% set hours = ((timetick % 8640000) / 360000) | int %}
{% set days = (timetick / 8640000) | int %}
{%- if timetick < 6000 -%}
Less than a minute
{%- else -%}
{%- if days > 0 -%}
{%- if days == 1 -%}
1 day
{%- else -%}
{{ days }} days
{%- endif -%}
{%- endif -%}
{%- if hours > 0 -%}
{%- if days > 0 -%}
{{ ', ' }}
{%- endif -%}
{%- if hours == 1 -%}
1 hr
{%- else -%}
{{ hours }} hrs
{%- endif -%}
{%- endif -%}
{%- if minutes > 0 -%}
{%- if days > 0 or hours > 0 -%}
{{ ', ' }}
{%- endif -%}
{%- if minutes == 1 -%}
1 min
{%- else -%}
{{ minutes }} min
{%- endif -%}
{%- endif -%}
{%- endif -%}
# Power
- platform: integration
name: "3D printer energy Total"
unit_prefix: k
unit_time: h
source: sensor.3d_printer_electric_consumption_w
- platform: integration
source: sensor.rack_outlet_electrical_measurement
name: "Rack outlet energy Total"
unit_prefix: k
unit_time: h
- platform: integration
name: "Printer energy Total"
unit_prefix: k
unit_time: h
source: sensor.printer_power
- platform: integration
name: "Washing machine energy Total"
unit_prefix: k
unit_time: h
source: sensor.washing_machine_electrical_measurement
- platform: integration
name: "Computer energy Total"
unit_prefix: k
unit_time: h
source: sensor.computer_outlet_electrical_measurement
# # Powercalc
# - platform: powercalc
# create_group: Kitchen lights
# include:
# area: Kitchen
# - platform: powercalc
# create_group: Bedroom lights
# entities:
# - entity_id: light.bedroom_1
# - entity_id: light.bedroom_2
# - entity_id: light.bed_lamp_left
# - entity_id: light.bed_lamp_right
# - entity_id: light.bed_lightstrip
binary_sensor:
- name: Hulk Ping
platform: ping
host: 192.168.50.21
- name: Banner Ping
platform: ping
host: 192.168.50.22
- name: Hawkeye Ping
platform: ping
host: 192.168.50.23
switch:
# - platform: zoneminder
# command_on: Modect
# command_off: Monitor
# Wake On LAN
- platform: wake_on_lan
name: 'Hulk WoL'
mac: '24:4b:fe:05:e2:8b'
broadcast_address: 192.168.50.254
cover:
- platform: group
name: Bedroom Blinds
entities:
- cover.bedroom_blind_left
- cover.bedroom_blind_right
- platform: group
name: Dining Blinds
entities:
- cover.dining_blind_left
- cover.dining_blind_middle
- cover.dining_blind_right
- cover.dining_blind_back
- platform: group
name: Office Blinds
entities:
- cover.office_blind_left
- cover.office_blind_right