Add config
21
.gitignore
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Disallow all
|
||||||
|
/*
|
||||||
|
|
||||||
|
# Allow
|
||||||
|
!*.yaml
|
||||||
|
!*.jpg
|
||||||
|
!*.png
|
||||||
|
!.gitignore
|
||||||
|
!*.md
|
||||||
|
!/automations/
|
||||||
|
!/lovelace-views/
|
||||||
|
!/sensors/
|
||||||
|
!/www/
|
||||||
|
|
||||||
|
# "Force" Disallow
|
||||||
|
.storage/
|
||||||
|
android/
|
||||||
|
|
||||||
|
ip_bans.yaml
|
||||||
|
secrets.yaml
|
||||||
|
known_devices.yaml
|
40
README.md
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
# Home Assistant Config
|
||||||
|
My configuration for Home Assistant
|
||||||
|
|
||||||
|
## Hardware
|
||||||
|
* [Raspberry Pi 3 B+](https://amzn.to/2Hgynln)
|
||||||
|
|
||||||
|
For my used hardware devices see the section [Devices](#devices).
|
||||||
|
|
||||||
|
## Software
|
||||||
|
I use the following software, running in docker containers, on my Raspberry Pi:
|
||||||
|
|
||||||
|
* [Home Assistant](https://www.home-assistant.io/)
|
||||||
|
* [Caddy](https://caddyserver.com/) - as SSL proxy
|
||||||
|
* [Mosquitto](https://mosquitto.org/) - as MQTT broker
|
||||||
|
* The ["TICK-Stack"](https://www.influxdata.com/)
|
||||||
|
* Telegraf - to grab different data @home
|
||||||
|
* Influxdb - to persist the data
|
||||||
|
* Chronograf - for detailed fancy dashboards and logs
|
||||||
|
* Kapacitor - for hardware alarms and some sensor alarms
|
||||||
|
|
||||||
|
## Used External Services
|
||||||
|
* Alexa (via Alexa Home Skill and AWS Lambda function)
|
||||||
|
* Google/Youtube API
|
||||||
|
* Instagram API
|
||||||
|
* Openweathermap
|
||||||
|
* Spotify
|
||||||
|
* Telegram
|
||||||
|
|
||||||
|
## Devices
|
||||||
|
* [Amazon Echo Dot](https://amzn.to/2RvLxzE), 5x
|
||||||
|
* ESP32 + DHT22 - selfmade Hygrometers, 2x
|
||||||
|
* [Harmony Hub Elite](https://amzn.to/2RM29SY)
|
||||||
|
* Milight light bulbs, 7x
|
||||||
|
* Milight wifi bridge
|
||||||
|
* Xiaomi Mija Hygrometer
|
||||||
|
* [Xiaomi Smart Scale](https://amzn.to/2QPsv1H)
|
||||||
|
* [Yi Home Camera 1080p](https://amzn.to/2SYhoW6) - with [custom firmware and mqtt add-on](https://github.com/fbrinker/yi-hack-mqtt)
|
||||||
|
* ...
|
||||||
|
|
||||||
|
Work in progress. Not all of them are integrated yet.
|
38
alexa.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# Display Categories: https://developer.amazon.com/de/docs/device-apis/alexa-discovery.html#display-categories
|
||||||
|
smart_home:
|
||||||
|
endpoint: https://api.amazonalexa.com/v3/events
|
||||||
|
client_id: !secret alexa_client_id
|
||||||
|
client_secret: !secret alexa_client_secret
|
||||||
|
filter:
|
||||||
|
include_entities:
|
||||||
|
- light.ambilight
|
||||||
|
- switch.livingroom_music
|
||||||
|
- switch.livingroom_netflix
|
||||||
|
- switch.harmony_firetv
|
||||||
|
- switch.harmony_steamlink
|
||||||
|
- switch.harmony_playstation
|
||||||
|
# include_domains:
|
||||||
|
# - switch
|
||||||
|
# exclude_entities:
|
||||||
|
# - switch.outside
|
||||||
|
entity_config:
|
||||||
|
# switch.stairs:
|
||||||
|
# display_categories: LIGHT
|
||||||
|
light.ambilight:
|
||||||
|
name: Ambilight
|
||||||
|
description: Wohnzimmer - TV Ambilight
|
||||||
|
switch.livingroom_music:
|
||||||
|
name: Musik
|
||||||
|
description: Wohnzimmer - Musik
|
||||||
|
switch.livingroom_netflix:
|
||||||
|
name: Netflix
|
||||||
|
description: Wohnzimmer - Netflix
|
||||||
|
switch.harmony_firetv:
|
||||||
|
name: Fernseher
|
||||||
|
description: Harmony - FireTV
|
||||||
|
switch.harmony_steamlink:
|
||||||
|
name: Konsole
|
||||||
|
description: Harmony - SteamLink
|
||||||
|
switch.harmony_playstation:
|
||||||
|
name: Playstation
|
||||||
|
description: Harmony - Playstation
|
19
automations/alarm.yaml
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
- id: bedroom_alarm_clock
|
||||||
|
alias: bedroom alarm clock
|
||||||
|
trigger:
|
||||||
|
platform: template
|
||||||
|
value_template: "{{ states('sensor.time') == (states.input_datetime.bedroom_alarm_clock_time.attributes.timestamp | int | timestamp_custom('%H:%M', False)) }}"
|
||||||
|
condition:
|
||||||
|
condition: and
|
||||||
|
conditions:
|
||||||
|
- condition: state
|
||||||
|
entity_id: binary_sensor.workday_sensor
|
||||||
|
state: 'on'
|
||||||
|
- condition: sun
|
||||||
|
before: sunrise
|
||||||
|
action:
|
||||||
|
- service: notify.telegram_group
|
||||||
|
data:
|
||||||
|
title: 'Guten Morgen!'
|
||||||
|
message: 'Langsam dürft ihr wach werden. Es wird bald Zeit aufzustehen... :)'
|
||||||
|
|
9
automations/hassio.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
- alias: Update notifications
|
||||||
|
trigger:
|
||||||
|
- platform: state
|
||||||
|
entity_id: updater.updater
|
||||||
|
action:
|
||||||
|
service: notify.telegram_group
|
||||||
|
data_template:
|
||||||
|
title: 'Neuer Home Assistant Release'
|
||||||
|
message: "Home Assistant {{ states.updater.updater.state }} ist nun verfügbar."
|
13
automations/humidity.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
- alias: Dachboden Luftfeuchtigkeit
|
||||||
|
trigger:
|
||||||
|
platform: numeric_state
|
||||||
|
entity_id: sensor.attic_humidity
|
||||||
|
below: 35
|
||||||
|
above: 65
|
||||||
|
for:
|
||||||
|
minutes: 3
|
||||||
|
action:
|
||||||
|
service: notify.telegram_group
|
||||||
|
data:
|
||||||
|
title: 'Bitte den Dachboden lüften!'
|
||||||
|
message: 'Die Luftfeuchtigkeit liegt mit {{ states.sensor.livingroom_humidity.state }}% außerhalb des Grenzbereichs.'
|
30
automations/livingroom.yaml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
- alias: Ambilight an (HDMI)
|
||||||
|
trigger:
|
||||||
|
platform: state
|
||||||
|
entity_id: switch.harmony_firetv, switch.harmony_steamlink, switch.harmony_playstation
|
||||||
|
to: 'on'
|
||||||
|
action:
|
||||||
|
service: light.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: light.ambilight
|
||||||
|
effect: HDMI
|
||||||
|
|
||||||
|
- alias: Ambilight an
|
||||||
|
trigger:
|
||||||
|
platform: state
|
||||||
|
entity_id: switch.harmony_music_bt
|
||||||
|
to: 'on'
|
||||||
|
action:
|
||||||
|
service: light.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: light.ambilight
|
||||||
|
|
||||||
|
- alias: Ambilight aus
|
||||||
|
trigger:
|
||||||
|
platform: state
|
||||||
|
entity_id: switch.harmony_music_bt, switch.harmony_firetv, switch.harmony_steamlink, switch.harmony_playstation
|
||||||
|
to: 'off'
|
||||||
|
action:
|
||||||
|
service: light.turn_off
|
||||||
|
data:
|
||||||
|
entity_id: light.ambilight
|
178
configuration.yaml
Normal file
@ -0,0 +1,178 @@
|
|||||||
|
homeassistant:
|
||||||
|
name: Home
|
||||||
|
latitude: !secret home_lat
|
||||||
|
longitude: !secret home_long
|
||||||
|
elevation: !secret home_elevation
|
||||||
|
unit_system: metric
|
||||||
|
time_zone: Europe/Berlin
|
||||||
|
# customize: !include_dir_merge_named customizations/
|
||||||
|
|
||||||
|
http:
|
||||||
|
ip_ban_enabled: true
|
||||||
|
login_attempts_threshold: 5
|
||||||
|
use_x_forwarded_for: true
|
||||||
|
trusted_proxies:
|
||||||
|
- 127.0.0.1
|
||||||
|
- ::1
|
||||||
|
trusted_networks:
|
||||||
|
- 192.168.0.0/16
|
||||||
|
- fd00::/8
|
||||||
|
|
||||||
|
lovelace:
|
||||||
|
mode: yaml
|
||||||
|
|
||||||
|
zone:
|
||||||
|
- name: !secret work1_name
|
||||||
|
latitude: !secret work1_lat
|
||||||
|
longitude: !secret work1_long
|
||||||
|
radius: 250
|
||||||
|
icon: mdi:briefcase
|
||||||
|
|
||||||
|
config:
|
||||||
|
|
||||||
|
updater:
|
||||||
|
|
||||||
|
#discovery:
|
||||||
|
|
||||||
|
history:
|
||||||
|
|
||||||
|
logbook:
|
||||||
|
|
||||||
|
recorder:
|
||||||
|
|
||||||
|
influxdb:
|
||||||
|
host: !secret influxdb
|
||||||
|
database: home_assistant
|
||||||
|
max_retries: 3
|
||||||
|
include:
|
||||||
|
entities:
|
||||||
|
- device_tracker.mobile_fb
|
||||||
|
- sensor.attic_heatIndex
|
||||||
|
- sensor.attic_humidity
|
||||||
|
- sensor.attic_temperature
|
||||||
|
# - sensor.bathroom_hygrometer_battery
|
||||||
|
# - sensor.bathroom_hygrometer_humidity
|
||||||
|
# - sensor.bathroom_hygrometer_temperature
|
||||||
|
# - sensor.livingroom_heatindex
|
||||||
|
# - sensor.livingroom_humidity
|
||||||
|
# - sensor.livingroom_temperature
|
||||||
|
# Youtube
|
||||||
|
- sensor.youtube_beauty
|
||||||
|
- sensor.youtube_beauty_videos
|
||||||
|
- sensor.youtube_beauty_views
|
||||||
|
- sensor.youtube_mtb
|
||||||
|
- sensor.youtube_mtb_videos
|
||||||
|
- sensor.youtube_mtb_views
|
||||||
|
# Instagram
|
||||||
|
- sensor.instagram_beauty
|
||||||
|
- sensor.instagram_beauty_follows
|
||||||
|
- sensor.instagram_beauty_media
|
||||||
|
- sensor.instagram_fb
|
||||||
|
- sensor.instagram_fb_follows
|
||||||
|
- sensor.instagram_fb_media
|
||||||
|
- sensor.instagram_franky
|
||||||
|
- sensor.instagram_franky_follows
|
||||||
|
- sensor.instagram_franky_media
|
||||||
|
- sensor.instagram_mtb
|
||||||
|
- sensor.instagram_mtb_follows
|
||||||
|
- sensor.instagram_mtb_media
|
||||||
|
|
||||||
|
map:
|
||||||
|
|
||||||
|
mqtt:
|
||||||
|
broker: !secret mqtt_broker_ip
|
||||||
|
username: !secret mqtt_username
|
||||||
|
password: !secret mqtt_password
|
||||||
|
|
||||||
|
telegram_bot:
|
||||||
|
- platform: broadcast
|
||||||
|
api_key: !secret telegram_bot
|
||||||
|
allowed_chat_ids:
|
||||||
|
- !secret telegram_chat_fb
|
||||||
|
- !secret telegram_chat_group
|
||||||
|
|
||||||
|
notify:
|
||||||
|
- name: telegram_group
|
||||||
|
platform: telegram
|
||||||
|
chat_id: !secret telegram_chat_group
|
||||||
|
|
||||||
|
device_tracker:
|
||||||
|
|
||||||
|
media_player:
|
||||||
|
- platform: spotify
|
||||||
|
client_id: !secret spotify_client_id
|
||||||
|
client_secret: !secret spotify_client_secret
|
||||||
|
- platform: firetv
|
||||||
|
name: Fire TV
|
||||||
|
host: !secret firetv_ip
|
||||||
|
adbkey: !secret adbkey
|
||||||
|
get_source: true
|
||||||
|
get_sources: true
|
||||||
|
|
||||||
|
remote:
|
||||||
|
- platform: harmony
|
||||||
|
name: Livingroom Harmony
|
||||||
|
host: !secret harmonyhub_ip
|
||||||
|
|
||||||
|
sun:
|
||||||
|
|
||||||
|
light:
|
||||||
|
- platform: hyperion
|
||||||
|
name: Ambilight
|
||||||
|
host: !secret ambilight_ip
|
||||||
|
|
||||||
|
binary_sensor:
|
||||||
|
- platform: workday
|
||||||
|
country: DE
|
||||||
|
province: NW
|
||||||
|
workdays: [ mon, tue, wed, thu, fri ]
|
||||||
|
- platform: mqtt
|
||||||
|
state_topic: /home/camera/yihome1/motion/state
|
||||||
|
name: YiHome1 Alarm
|
||||||
|
payload_on: 1
|
||||||
|
payload_off: 0
|
||||||
|
|
||||||
|
weather:
|
||||||
|
- platform: openweathermap
|
||||||
|
friendly_name: Vorhersage
|
||||||
|
api_key: !secret openweathermap
|
||||||
|
|
||||||
|
#octoprint:
|
||||||
|
# host: !secret octoprint_ip
|
||||||
|
# api_key: !secret octoprint_api_key
|
||||||
|
# bed: true
|
||||||
|
# number_of_tools: 1
|
||||||
|
|
||||||
|
ffmpeg:
|
||||||
|
ffmpeg_bin: /usr/bin/ffmpeg
|
||||||
|
|
||||||
|
camera:
|
||||||
|
- platform: yi
|
||||||
|
name: YiHome1
|
||||||
|
host: !secret yihome1
|
||||||
|
password: !secret yihome1_password
|
||||||
|
ffmpeg_arguments: '-pred 1 -vf scale=800:450'
|
||||||
|
- platform: mqtt
|
||||||
|
name: YiHome1-Mqtt
|
||||||
|
topic: /home/camera/yihome1/motion/photo
|
||||||
|
# - platform: mjpeg
|
||||||
|
# name: octoprint_webcam
|
||||||
|
# mjpeg_url: !secret octoprint_cam_url
|
||||||
|
# - platform: local_file
|
||||||
|
#name: elisey_shocked
|
||||||
|
#friendly_name: Schlechtes Wetter
|
||||||
|
#file_path: /local/elisey_shocked.png
|
||||||
|
|
||||||
|
input_datetime:
|
||||||
|
bedroom_alarm_clock_time:
|
||||||
|
name: Wecker
|
||||||
|
has_date: false
|
||||||
|
has_time: true
|
||||||
|
|
||||||
|
#alert: !include alerts.yaml
|
||||||
|
alexa: !include alexa.yaml
|
||||||
|
automation: !include_dir_merge_list automations/
|
||||||
|
#scene: !include scenes.yaml
|
||||||
|
script: !include scripts.yaml
|
||||||
|
sensor: !include_dir_merge_list sensors/
|
||||||
|
switch: !include switches.yaml
|
10
lovelace-views/cctv.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
icon: mdi:cctv
|
||||||
|
path: cctv
|
||||||
|
cards:
|
||||||
|
- type: picture-entity
|
||||||
|
name: Haustür
|
||||||
|
entity: camera.yihome1
|
||||||
|
- type: picture-entity
|
||||||
|
name: Haustür Alarm Image
|
||||||
|
entity: binary_sensor.yihome1_alarm
|
||||||
|
camera_image: camera.yihome1_alarm
|
28
lovelace-views/devices.yaml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
icon: mdi:cellphone-link
|
||||||
|
path: devices
|
||||||
|
cards:
|
||||||
|
- type: horizontal-stack
|
||||||
|
cards:
|
||||||
|
- type: entities
|
||||||
|
title: Handy Florian
|
||||||
|
show_header_toggle: false
|
||||||
|
entities:
|
||||||
|
- entity: device_tracker.mobile_fb
|
||||||
|
name: Standort
|
||||||
|
- entity: sensor.mobile_fb_battery
|
||||||
|
name: Akku
|
||||||
|
icon: mdi:battery
|
||||||
|
- entity: sensor.mobile_fb_callstate
|
||||||
|
name: Anrufstatus
|
||||||
|
- type: entities
|
||||||
|
title: Handy Jenny
|
||||||
|
show_header_toggle: false
|
||||||
|
entities:
|
||||||
|
- entity: device_tracker.mobile_fb
|
||||||
|
name: Standort
|
||||||
|
- entity: sensor.mobile_fb_battery
|
||||||
|
name: Akku
|
||||||
|
icon: mdi:battery
|
||||||
|
- entity: sensor.mobile_fb_callstate
|
||||||
|
name: Anrufstatus
|
||||||
|
|
13
lovelace-views/humidity.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
icon: mdi:water-percent
|
||||||
|
path: humidity
|
||||||
|
cards:
|
||||||
|
- type: history-graph
|
||||||
|
title: 'Dachboden'
|
||||||
|
refresh_interval: 30
|
||||||
|
entities:
|
||||||
|
- entity: sensor.attic_temperature
|
||||||
|
name: Temperatur
|
||||||
|
- entity: sensor.attic_heatIndex
|
||||||
|
name: Gefühlt
|
||||||
|
- entity: sensor.attic_humidity
|
||||||
|
name: Luftfeuchtigkeit
|
56
lovelace-views/instagram.yaml
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
icon: mdi:instagram
|
||||||
|
path: instagram
|
||||||
|
cards:
|
||||||
|
- type: vertical-stack
|
||||||
|
cards:
|
||||||
|
- type: picture
|
||||||
|
image: /local/avatars/jenny-bty.jpg
|
||||||
|
- type: sensor
|
||||||
|
entity: sensor.instagram_beauty
|
||||||
|
icon: mdi:heart
|
||||||
|
graph: line
|
||||||
|
- type: glance
|
||||||
|
entities:
|
||||||
|
- entity: sensor.instagram_beauty_media
|
||||||
|
name: Beiträge
|
||||||
|
icon: mdi:image-multiple
|
||||||
|
- entity: sensor.instagram_beauty_follows
|
||||||
|
name: Abonniert
|
||||||
|
icon: mdi:account-multiple
|
||||||
|
- type: glance
|
||||||
|
title: frankyowski
|
||||||
|
show_name: false
|
||||||
|
entities:
|
||||||
|
- entity: sensor.instagram_franky
|
||||||
|
icon: mdi:heart
|
||||||
|
- entity: sensor.instagram_franky_media
|
||||||
|
icon: mdi:image-multiple
|
||||||
|
- entity: sensor.instagram_franky_follows
|
||||||
|
icon: mdi:account-multiple
|
||||||
|
|
||||||
|
- type: vertical-stack
|
||||||
|
cards:
|
||||||
|
- type: picture
|
||||||
|
image: /local/avatars/flo-mtb.jpg
|
||||||
|
- type: sensor
|
||||||
|
entity: sensor.instagram_mtb
|
||||||
|
icon: mdi:heart
|
||||||
|
graph: line
|
||||||
|
- type: glance
|
||||||
|
entities:
|
||||||
|
- entity: sensor.instagram_mtb_media
|
||||||
|
name: Beiträge
|
||||||
|
icon: mdi:image-multiple
|
||||||
|
- entity: sensor.instagram_mtb_follows
|
||||||
|
name: Abonniert
|
||||||
|
icon: mdi:account-multiple
|
||||||
|
- type: glance
|
||||||
|
title: _fbrinker
|
||||||
|
show_name: false
|
||||||
|
entities:
|
||||||
|
- entity: sensor.instagram_fb
|
||||||
|
icon: mdi:heart
|
||||||
|
- entity: sensor.instagram_fb_media
|
||||||
|
icon: mdi:image-multiple
|
||||||
|
- entity: sensor.instagram_fb_follows
|
||||||
|
icon: mdi:account-multiple
|
64
lovelace-views/livingroom.yaml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
title: Wohnzimmer
|
||||||
|
path: livingroom
|
||||||
|
panel: true
|
||||||
|
cards:
|
||||||
|
- type: horizontal-stack
|
||||||
|
cards:
|
||||||
|
- type: vertical-stack
|
||||||
|
cards:
|
||||||
|
- type: picture-glance
|
||||||
|
title: Harmony
|
||||||
|
entities:
|
||||||
|
- entity: switch.harmony_firetv
|
||||||
|
icon: mdi:television
|
||||||
|
- entity: switch.harmony_music_bt
|
||||||
|
icon: mdi:bluetooth-audio
|
||||||
|
- entity: switch.harmony_steamlink
|
||||||
|
icon: mdi:steam
|
||||||
|
- entity: switch.harmony_playstation
|
||||||
|
icon: mdi:playstation
|
||||||
|
state_image:
|
||||||
|
"PowerOff": /local/images/power.jpg
|
||||||
|
"Fire TV sehen": /local/images/firetv.jpg
|
||||||
|
"Musik Bluetooth": /local/images/music.jpg
|
||||||
|
"SteamLink": /local/images/steamlink.jpg
|
||||||
|
"PlayStation": /local/images/playstation.jpg
|
||||||
|
entity: sensor.harmony_activity
|
||||||
|
|
||||||
|
- type: conditional
|
||||||
|
conditions:
|
||||||
|
- entity: sensor.harmony_activity
|
||||||
|
state: "Musik Bluetooth"
|
||||||
|
card:
|
||||||
|
type: media-control
|
||||||
|
entity: media_player.spotify
|
||||||
|
|
||||||
|
- type: vertical-stack
|
||||||
|
cards:
|
||||||
|
- type: picture-glance
|
||||||
|
title: Denon AVR
|
||||||
|
entities:
|
||||||
|
- entity: switch.harmony_mute
|
||||||
|
icon: mdi:volume-off
|
||||||
|
- entity: switch.harmony_power
|
||||||
|
icon: mdi:power
|
||||||
|
image: /local/images/denon.jpg
|
||||||
|
state_image:
|
||||||
|
"PowerOff": /local/images/denon-bw.jpg
|
||||||
|
entity: sensor.harmony_activity
|
||||||
|
|
||||||
|
- type: conditional
|
||||||
|
conditions:
|
||||||
|
- entity: sensor.harmony_activity
|
||||||
|
state_not: "PowerOff"
|
||||||
|
card:
|
||||||
|
type: horizontal-stack
|
||||||
|
cards:
|
||||||
|
- type: entity-button
|
||||||
|
entity: switch.harmony_volume_down
|
||||||
|
name: Leiser
|
||||||
|
icon: mdi:volume-minus
|
||||||
|
- type: entity-button
|
||||||
|
entity: switch.harmony_volume_up
|
||||||
|
name: Lauter
|
||||||
|
icon: mdi:volume-plus
|
22
lovelace-views/overview.yaml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
title: Übersicht
|
||||||
|
path: overview
|
||||||
|
cards:
|
||||||
|
- type: weather-forecast
|
||||||
|
entity: weather.openweathermap
|
||||||
|
- type: glance
|
||||||
|
title: Luftfeuchtigkeit
|
||||||
|
show_name: true
|
||||||
|
show_state: true
|
||||||
|
entities:
|
||||||
|
- sensor.attic_humidity
|
||||||
|
- type: vertical-stack
|
||||||
|
cards:
|
||||||
|
- type: map
|
||||||
|
aspect_ratio: 16:9
|
||||||
|
default_zoom: 15
|
||||||
|
entities:
|
||||||
|
- zone.home
|
||||||
|
- type: glance
|
||||||
|
title: Geräte
|
||||||
|
entities:
|
||||||
|
- device_tracker.mobile_fb
|
8
lovelace-views/spotify.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
icon: mdi:spotify
|
||||||
|
path: spotify
|
||||||
|
cards:
|
||||||
|
- type: media-control
|
||||||
|
entity: media_player.spotify
|
||||||
|
- type: glance
|
||||||
|
entities:
|
||||||
|
- light.ambilight
|
55
scripts.yaml
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
livingroom_music_on:
|
||||||
|
alias: Wohnzimmer Musik - An
|
||||||
|
sequence:
|
||||||
|
- service: light.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: light.ambilight
|
||||||
|
# brightness: 255
|
||||||
|
# rgb_color: [255,125,0]
|
||||||
|
rgb_color: [0,255,62] # Spotify Green
|
||||||
|
brightness: 130
|
||||||
|
- service: switch.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: switch.harmony_music_bt
|
||||||
|
- service: media_player.select_source
|
||||||
|
data:
|
||||||
|
entity_id: media_player.spotify
|
||||||
|
source: Wohnzimmer
|
||||||
|
# We have to wait for the AVR establishing a BT connection to the Dot
|
||||||
|
- delay:
|
||||||
|
seconds: 15
|
||||||
|
- service: media_player.media_play
|
||||||
|
data:
|
||||||
|
entity_id: media_player.spotify
|
||||||
|
|
||||||
|
livingroom_music_off:
|
||||||
|
alias: Wohnzimmer Musik - Aus
|
||||||
|
sequence:
|
||||||
|
- service: media_player.media_pause
|
||||||
|
data:
|
||||||
|
entity_id: media_player.spotify
|
||||||
|
- service: switch.turn_off
|
||||||
|
data:
|
||||||
|
entity_id: switch.harmony_music_bt
|
||||||
|
|
||||||
|
livingroom_netflix_on:
|
||||||
|
alias: Netflix
|
||||||
|
sequence:
|
||||||
|
- service: switch.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: switch.harmony_firetv
|
||||||
|
- delay:
|
||||||
|
seconds: 6
|
||||||
|
- service: media_player.select_source
|
||||||
|
data:
|
||||||
|
entity_id: media_player.fire_tv
|
||||||
|
source: com.netflix.ninja
|
||||||
|
- delay:
|
||||||
|
seconds: 3
|
||||||
|
- service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
command:
|
||||||
|
- Ok
|
||||||
|
device: 42849848 #FireTv
|
||||||
|
delay_secs: 0.6
|
8
sensors/hygrometer.yaml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#- platform: mitemp_bt
|
||||||
|
# name: Bathroom Hygrometer
|
||||||
|
# mac: "4C:65:A8:DC:4D:B2"
|
||||||
|
# monitored_conditions:
|
||||||
|
# - temperature
|
||||||
|
# - humidity
|
||||||
|
# - battery
|
||||||
|
|
9
sensors/livingroom.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
- platform: template
|
||||||
|
sensors:
|
||||||
|
harmony_activity:
|
||||||
|
value_template: >
|
||||||
|
{% if is_state("remote.livingroom_harmony", 'on') %}
|
||||||
|
{{ states.remote.livingroom_harmony.attributes.current_activity }}
|
||||||
|
{% else %}
|
||||||
|
PowerOff
|
||||||
|
{% endif %}
|
10
sensors/misc.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
- platform: time_date
|
||||||
|
display_options:
|
||||||
|
- 'time'
|
||||||
|
- 'date'
|
||||||
|
- 'date_time'
|
||||||
|
- 'time_date'
|
||||||
|
- 'time_utc'
|
||||||
|
- 'beat'
|
||||||
|
|
||||||
|
- platform: dnsip
|
35
sensors/mqtt.yaml
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
- platform: mqtt
|
||||||
|
name: "mobile_fb_battery"
|
||||||
|
state_topic: "homeassistant/sensor/android_mobile_fb_battery/state"
|
||||||
|
unit_of_measurement: '%'
|
||||||
|
value_template: "{{ value_json.level }}"
|
||||||
|
json_attributes:
|
||||||
|
- voltage
|
||||||
|
- temperature
|
||||||
|
- status
|
||||||
|
- power
|
||||||
|
- health
|
||||||
|
- technology
|
||||||
|
|
||||||
|
- platform: mqtt
|
||||||
|
name: "mobile_fb_callstate"
|
||||||
|
state_topic: "homeassistant/sensor/android_mobile_fb_callstate/state"
|
||||||
|
value_template: "{{ value_json.state }}"
|
||||||
|
json_attributes:
|
||||||
|
- icon
|
||||||
|
|
||||||
|
- platform: mqtt
|
||||||
|
name: "Attic Humidity"
|
||||||
|
state_topic: "home/attic/homenodeTiny1/humidity"
|
||||||
|
force_update: true
|
||||||
|
unit_of_measurement: "%"
|
||||||
|
- platform: mqtt
|
||||||
|
name: "Attic Temperature"
|
||||||
|
state_topic: "home/attic/homenodeTiny1/temperature"
|
||||||
|
force_update: true
|
||||||
|
unit_of_measurement: "°C"
|
||||||
|
- platform: mqtt
|
||||||
|
name: "Attic HeatIndex"
|
||||||
|
state_topic: "home/attic/homenodeTiny1/heatIndex"
|
||||||
|
force_update: true
|
||||||
|
unit_of_measurement: "°C"
|
127
sensors/social.yaml
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
# Youtube
|
||||||
|
# beauty
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 300
|
||||||
|
name: youtube_beauty
|
||||||
|
resource: !secret youtube_beauty
|
||||||
|
value_template: '{{ value_json["items"][0].statistics.subscriberCount }}'
|
||||||
|
unit_of_measurement: Subscribers
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 900
|
||||||
|
name: youtube_beauty_videos
|
||||||
|
resource: !secret youtube_beauty
|
||||||
|
value_template: '{{ value_json["items"][0].statistics.videoCount }}'
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 600
|
||||||
|
name: youtube_beauty_views
|
||||||
|
resource: !secret youtube_beauty
|
||||||
|
value_template: '{{ value_json["items"][0].statistics.viewCount }}'
|
||||||
|
force_update: true
|
||||||
|
|
||||||
|
# mtb
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 300
|
||||||
|
name: youtube_mtb
|
||||||
|
resource: !secret youtube_mtb
|
||||||
|
value_template: '{{ value_json["items"][0].statistics.subscriberCount }}'
|
||||||
|
unit_of_measurement: Subscribers
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 900
|
||||||
|
name: youtube_mtb_videos
|
||||||
|
resource: !secret youtube_mtb
|
||||||
|
value_template: '{{ value_json["items"][0].statistics.videoCount }}'
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 600
|
||||||
|
name: youtube_mtb_views
|
||||||
|
resource: !secret youtube_mtb
|
||||||
|
value_template: '{{ value_json["items"][0].statistics.viewCount }}'
|
||||||
|
force_update: true
|
||||||
|
|
||||||
|
# Instagram
|
||||||
|
#beauty
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 300
|
||||||
|
name: instagram_beauty
|
||||||
|
resource: !secret instagram_beauty
|
||||||
|
value_template: '{{ value_json.data.counts.followed_by }}'
|
||||||
|
unit_of_measurement: Followers
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 900
|
||||||
|
name: instagram_beauty_follows
|
||||||
|
resource: !secret instagram_beauty
|
||||||
|
value_template: '{{ value_json.data.counts.follows }}'
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 600
|
||||||
|
name: instagram_beauty_media
|
||||||
|
resource: !secret instagram_beauty
|
||||||
|
value_template: '{{ value_json.data.counts.media }}'
|
||||||
|
force_update: true
|
||||||
|
|
||||||
|
# franky
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 300
|
||||||
|
name: instagram_franky
|
||||||
|
resource: !secret instagram_franky
|
||||||
|
value_template: '{{ value_json.data.counts.followed_by }}'
|
||||||
|
unit_of_measurement: Followers
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 900
|
||||||
|
name: instagram_franky_follows
|
||||||
|
resource: !secret instagram_franky
|
||||||
|
value_template: '{{ value_json.data.counts.follows }}'
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 600
|
||||||
|
name: instagram_franky_media
|
||||||
|
resource: !secret instagram_franky
|
||||||
|
value_template: '{{ value_json.data.counts.media }}'
|
||||||
|
force_update: true
|
||||||
|
|
||||||
|
# fb
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 300
|
||||||
|
name: instagram_fb
|
||||||
|
resource: !secret instagram_fb
|
||||||
|
value_template: '{{ value_json.data.counts.followed_by }}'
|
||||||
|
unit_of_measurement: Followers
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 900
|
||||||
|
name: instagram_fb_follows
|
||||||
|
resource: !secret instagram_fb
|
||||||
|
value_template: '{{ value_json.data.counts.follows }}'
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 600
|
||||||
|
name: instagram_fb_media
|
||||||
|
resource: !secret instagram_fb
|
||||||
|
value_template: '{{ value_json.data.counts.media }}'
|
||||||
|
force_update: true
|
||||||
|
|
||||||
|
# mtb
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 300
|
||||||
|
name: instagram_mtb
|
||||||
|
resource: !secret instagram_mtb
|
||||||
|
value_template: '{{ value_json.data.counts.followed_by }}'
|
||||||
|
unit_of_measurement: Followers
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 900
|
||||||
|
name: instagram_mtb_follows
|
||||||
|
resource: !secret instagram_mtb
|
||||||
|
value_template: '{{ value_json.data.counts.follows }}'
|
||||||
|
force_update: true
|
||||||
|
- platform: rest
|
||||||
|
scan_interval: 600
|
||||||
|
name: instagram_mtb_media
|
||||||
|
resource: !secret instagram_mtb
|
||||||
|
value_template: '{{ value_json.data.counts.media }}'
|
||||||
|
force_update: true
|
10
sensors/weather.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
- platform: buienradar
|
||||||
|
monitored_conditions:
|
||||||
|
- temperature
|
||||||
|
- humidity
|
||||||
|
- windspeed
|
||||||
|
- winddirection
|
||||||
|
- precipitation
|
||||||
|
- condition
|
||||||
|
- conditionexact
|
||||||
|
|
147
switches.yaml
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
- platform: template
|
||||||
|
switches:
|
||||||
|
harmony_music_bt:
|
||||||
|
value_template: "{{ is_state_attr('remote.livingroom_harmony', 'current_activity', 'Musik Bluetooth') }}"
|
||||||
|
turn_on:
|
||||||
|
service: remote.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
activity: 'Musik Bluetooth'
|
||||||
|
turn_off:
|
||||||
|
service: remote.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
activity: 'PowerOff'
|
||||||
|
|
||||||
|
harmony_firetv:
|
||||||
|
value_template: "{{ is_state_attr('remote.livingroom_harmony', 'current_activity', 'Fire TV sehen') }}"
|
||||||
|
turn_on:
|
||||||
|
service: remote.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
activity: 'Fire TV sehen'
|
||||||
|
turn_off:
|
||||||
|
service: remote.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
activity: 'PowerOff'
|
||||||
|
|
||||||
|
harmony_steamlink:
|
||||||
|
value_template: "{{ is_state_attr('remote.livingroom_harmony', 'current_activity', 'SteamLink') }}"
|
||||||
|
turn_on:
|
||||||
|
service: remote.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
activity: 'SteamLink'
|
||||||
|
turn_off:
|
||||||
|
service: remote.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
activity: 'PowerOff'
|
||||||
|
|
||||||
|
harmony_playstation:
|
||||||
|
value_template: "{{ is_state_attr('remote.livingroom_harmony', 'current_activity', 'PlayStation') }}"
|
||||||
|
turn_on:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
activity: 'PlayStation'
|
||||||
|
turn_off:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
activity: 'PowerOff'
|
||||||
|
|
||||||
|
harmony_mute:
|
||||||
|
value_template: "{{ state_attr('remote.livingroom_harmony', 'current_activity') != 'PowerOff' }}"
|
||||||
|
turn_on:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
command:
|
||||||
|
- Mute
|
||||||
|
device: 42849850 #Denon
|
||||||
|
delay_secs: 0.6
|
||||||
|
turn_off:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
command:
|
||||||
|
- Mute
|
||||||
|
device: 42849850 #Denon
|
||||||
|
delay_secs: 0.6
|
||||||
|
|
||||||
|
harmony_power:
|
||||||
|
value_template: "{{ state_attr('remote.livingroom_harmony', 'current_activity') != 'PowerOff' }}"
|
||||||
|
turn_on:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
command:
|
||||||
|
- PowerToggle
|
||||||
|
device: 42849850 #Denon
|
||||||
|
delay_secs: 0.6
|
||||||
|
turn_off:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
command:
|
||||||
|
- PowerToggle
|
||||||
|
device: 42849850 #Denon
|
||||||
|
delay_secs: 0.6
|
||||||
|
|
||||||
|
harmony_volume_down:
|
||||||
|
friendly_name: Denon Leiser
|
||||||
|
value_template: "{{ state_attr('remote.livingroom_harmony', 'current_activity') != 'PowerOff' }}"
|
||||||
|
turn_on:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
command:
|
||||||
|
- VolumeDown
|
||||||
|
device: 42849850 #Denon
|
||||||
|
delay_secs: 0.6
|
||||||
|
turn_off:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
command:
|
||||||
|
- VolumeDown
|
||||||
|
device: 42849850 #Denon
|
||||||
|
delay_secs: 0.6
|
||||||
|
|
||||||
|
harmony_volume_up:
|
||||||
|
value_template: "{{ state_attr('remote.livingroom_harmony', 'current_activity') != 'PowerOff' }}"
|
||||||
|
turn_on:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
command:
|
||||||
|
- VolumeUp
|
||||||
|
device: 42849850 #Denon
|
||||||
|
delay_secs: 0.6
|
||||||
|
turn_off:
|
||||||
|
service: remote.send_command
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
command:
|
||||||
|
- VolumeUp
|
||||||
|
device: 42849850 #Denon
|
||||||
|
delay_secs: 0.6
|
||||||
|
|
||||||
|
livingroom_music:
|
||||||
|
value_template: "{{ is_state_attr('remote.livingroom_harmony', 'current_activity', 'Musik Bluetooth') }}"
|
||||||
|
turn_on:
|
||||||
|
service: script.livingroom_music_on
|
||||||
|
turn_off:
|
||||||
|
service: script.livingroom_music_off
|
||||||
|
|
||||||
|
livingroom_netflix:
|
||||||
|
value_template: "{{ is_state_attr('remote.livingroom_harmony', 'current_activity', 'Fire TV sehen') }}"
|
||||||
|
turn_on:
|
||||||
|
service: script.livingroom_netflix_on
|
||||||
|
turn_off:
|
||||||
|
service: remote.turn_on
|
||||||
|
data:
|
||||||
|
entity_id: remote.livingroom_harmony
|
||||||
|
activity: 'PowerOff'
|
10
ui-lovelace.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Icons @ https://materialdesignicons.com/
|
||||||
|
title: Połowa Bliźniaka
|
||||||
|
views:
|
||||||
|
- !include lovelace-views/overview.yaml
|
||||||
|
- !include lovelace-views/livingroom.yaml
|
||||||
|
- !include lovelace-views/humidity.yaml
|
||||||
|
- !include lovelace-views/spotify.yaml
|
||||||
|
- !include lovelace-views/instagram.yaml
|
||||||
|
- !include lovelace-views/devices.yaml
|
||||||
|
- !include lovelace-views/cctv.yaml
|
BIN
www/avatars/flo-mtb.jpg
Normal file
After Width: | Height: | Size: 456 KiB |
BIN
www/avatars/jenny-bty.jpg
Normal file
After Width: | Height: | Size: 58 KiB |
BIN
www/images/denon-bw.jpg
Normal file
After Width: | Height: | Size: 44 KiB |
BIN
www/images/denon.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
www/images/firetv.jpg
Normal file
After Width: | Height: | Size: 99 KiB |
BIN
www/images/music.jpg
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
www/images/playstation.jpg
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
www/images/power.jpg
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
www/images/steamlink.jpg
Normal file
After Width: | Height: | Size: 39 KiB |