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 |