├── sensors
├── saj.yaml
├── misc.yaml
├── essent.yaml
├── weather.yaml
├── afval.yaml
├── zigbee2mqtt_map.yaml
├── mqtt_room.yaml
├── bayesian.yaml
├── mqtt.yaml
└── octorint.yaml
├── .assets
├── day.jpg
├── logo.png
├── night.jpg
└── hass-docker-compose.gif
├── input_boolean
└── bedtime.yaml
├── camera
├── synology.yaml
├── 3dprinter.yaml
├── stream.yaml
└── tensorflow.yaml
├── lights
├── groups.yaml
└── mqtt.yaml
├── .travis.yml
├── docker-compose.yml
├── covers
├── bedroom.yaml
├── office.yaml
└── livingroom.yaml
├── automations
├── good_morning.yaml
├── telegram.yaml
├── welcome_home.yaml
└── automations.yaml
├── .gitignore
├── components.md
├── scenes.yaml
├── blueprints
└── automation
│ └── homeassistant
│ ├── notify_leaving_zone.yaml
│ └── motion_light.yaml
├── customize.yaml
├── travis_secrets.yaml
├── themes
├── animated-weather-card
│ ├── animated-weather-card.yaml
│ └── icons
│ │ ├── exceptional.svg
│ │ ├── rainy.svg
│ │ ├── clear-night.svg
│ │ ├── pouring.svg
│ │ ├── hail.svg
│ │ ├── fog.svg
│ │ ├── cloudy.svg
│ │ ├── sunny.svg
│ │ ├── lightning.svg
│ │ ├── partlycloudy.svg
│ │ └── snowy.svg
├── clear.yaml
├── slate.yaml
├── clear2.yaml
├── bluenight.yaml
└── dark.yaml
├── weatherdata.yaml
├── includes
└── rest_command.yaml
├── template.yaml
├── scripts.yaml
├── README.MD
├── groups.yaml
├── configuration.yaml
├── ui-lovelace.yaml
├── themes.yaml
├── LICENSE
└── automations.yaml
/sensors/saj.yaml:
--------------------------------------------------------------------------------
1 | - platform: saj
2 | host: 192.168.1.44
3 |
--------------------------------------------------------------------------------
/.assets/day.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patatman/patatman-homeassistant-config/HEAD/.assets/day.jpg
--------------------------------------------------------------------------------
/.assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patatman/patatman-homeassistant-config/HEAD/.assets/logo.png
--------------------------------------------------------------------------------
/.assets/night.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patatman/patatman-homeassistant-config/HEAD/.assets/night.jpg
--------------------------------------------------------------------------------
/sensors/misc.yaml:
--------------------------------------------------------------------------------
1 | - platform: dsmr
2 | host: 192.168.1.32
3 | port: 2001
4 | dsmr_version: 4
5 |
--------------------------------------------------------------------------------
/input_boolean/bedtime.yaml:
--------------------------------------------------------------------------------
1 | - bedtime:
2 | name: Is someone in bed?
3 | initial: off
4 | icon: mdi:bed
5 |
--------------------------------------------------------------------------------
/sensors/essent.yaml:
--------------------------------------------------------------------------------
1 | - platform: essent
2 | username: !secret essent_user
3 | password: !secret essent_password
4 |
--------------------------------------------------------------------------------
/.assets/hass-docker-compose.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patatman/patatman-homeassistant-config/HEAD/.assets/hass-docker-compose.gif
--------------------------------------------------------------------------------
/sensors/weather.yaml:
--------------------------------------------------------------------------------
1 | - platform: buienradar
2 | monitored_conditions:
3 | - symbol
4 | - humidity
5 | - temperature
6 | - windspeed
7 |
--------------------------------------------------------------------------------
/camera/synology.yaml:
--------------------------------------------------------------------------------
1 | # - platform: synology
2 | # url: https://192.168.1.10:5001
3 | # username: !secret dsm_user
4 | # password: !secret dsm
5 | # verify_ssl: False
6 |
--------------------------------------------------------------------------------
/camera/3dprinter.yaml:
--------------------------------------------------------------------------------
1 | - platform: mjpeg
2 | name: octoprint
3 | still_image_url: http://192.168.1.75/webcam/?action=snapshot
4 | mjpeg_url: http://192.168.1.75/webcam/?action=stream
5 |
--------------------------------------------------------------------------------
/lights/groups.yaml:
--------------------------------------------------------------------------------
1 | - platform: group
2 | name: "Bathroom lights group"
3 | entities:
4 | - light.0x90fd9ffffe08e345_light
5 | - light.0x90fd9ffffe6d296e_light
6 | - light.0x000b57fffec2a885_light
7 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: python
2 | python:
3 | - "3.5"
4 | before_install:
5 | - mv travis_secrets.yaml secrets.yaml
6 | - mkdir tensorflow
7 | - touch tensorflow/frozen_inference_graph.pb
8 | install:
9 | - pip3 install homeassistant
10 | script:
11 | - hass -c . --script check_config
12 |
--------------------------------------------------------------------------------
/sensors/afval.yaml:
--------------------------------------------------------------------------------
1 | - platform: afvalbeheer
2 | wastecollector: Circulus-Berkel
3 | resources:
4 | - restafval
5 | - gft
6 | - papier
7 | - pmd
8 | postcode: !secret zip
9 | streetnumber: !secret housenr
10 | upcomingsensor: 1
11 | dateformat: '%d-%m-%Y'
12 | dateonly: 0
13 | name: ''
14 | nameprefix: 1
15 | builtinicons: 0
16 | dutch: 0
17 |
--------------------------------------------------------------------------------
/docker-compose.yml:
--------------------------------------------------------------------------------
1 | version: '3'
2 | services:
3 | homeassistant:
4 | container_name: home-assistant
5 | image: homeassistant/home-assistant:latest
6 | environment:
7 | - TZ=Europe/Amsterdam
8 | volumes:
9 | - /opt/hass/patatman-homeassistant-config:/config
10 | devices:
11 | - /dev/ttyUSB0:/dev/ttyUSB0
12 | restart: always
13 | network_mode: host
14 |
--------------------------------------------------------------------------------
/sensors/zigbee2mqtt_map.yaml:
--------------------------------------------------------------------------------
1 | - platform: mqtt
2 | name: Zigbee2mqtt Networkmap
3 | # if you change base_topic of Zigbee2mqtt, change state_topic accordingly
4 | state_topic: zigbee2mqtt/bridge/networkmap/raw
5 | value_template: >-
6 | {{ now().strftime('%Y-%m-%d %H:%M:%S') }}
7 | # again, if you change base_topic of Zigbee2mqtt, change json_attributes_topic accordingly
8 | json_attributes_topic: zigbee2mqtt/bridge/networkmap/raw
9 |
--------------------------------------------------------------------------------
/covers/bedroom.yaml:
--------------------------------------------------------------------------------
1 | - platform: mqtt
2 | name: "Blinds bedroom"
3 | command_topic: "Blinds_bedroom/blindsCommand"
4 | set_position_topic: "Blinds_bedroom/positionCommand"
5 | position_topic: "Blinds_bedroom/positionState"
6 | state_topic: "Blinds_bedroom/positionState"
7 | retain: true
8 | payload_open: "OPEN"
9 | payload_close: "CLOSE"
10 | payload_stop: "STOP"
11 | position_open: 0
12 | position_closed: 46
13 |
--------------------------------------------------------------------------------
/camera/stream.yaml:
--------------------------------------------------------------------------------
1 | - platform: generic
2 | name: zijdeur_streaming
3 | still_image_url: !secret zijdeur_stream_still
4 | stream_source: !secret zijdeur_stream
5 | verify_ssl: false
6 | - platform: generic
7 | name: voordeur_streaming
8 | still_image_url: !secret voordeur_stream_still
9 | stream_source: !secret voordeur_stream
10 | verify_ssl: false
11 | - platform: generic
12 | name: garage_streaming
13 | still_image_url: !secret garage_stream_still
14 | stream_source: !secret garage_stream
15 | verify_ssl: false
16 |
--------------------------------------------------------------------------------
/sensors/mqtt_room.yaml:
--------------------------------------------------------------------------------
1 | # One entry for each beacon you want to track
2 | - platform: mqtt_room
3 | device_id: "2F234454CF6D4A0FADF2F4911BA9FFA6-1-0" # Note that major version must match, but any minor version will be ignored
4 | name: 'Phone Pim'
5 | state_topic: 'room_presence'
6 | timeout: 10
7 | away_timeout: 15
8 | - platform: mqtt_room
9 | device_id: "fda50693a4e24fb1afcfc6eb07647825-5-6" # Note that major version must match, but any minor version will be ignored
10 | name: 'Keys Pim'
11 | state_topic: 'room_presence'
12 | timeout: 20
13 | away_timeout: 30
14 |
15 |
--------------------------------------------------------------------------------
/automations/good_morning.yaml:
--------------------------------------------------------------------------------
1 | {% if now().strftime("%H")|int < 12 %}
2 | Good morning,
3 | {% elif now().strftime("%H")|int < 18 %}
4 | Good afternoon,
5 | {% else %}
6 | Good evening,
7 | {% endif %}
8 |
9 | The current weather is {{ states ("weather.dark_sky") }}, with a temperature of {{ state_attr ("weather.dark_sky", "temperature" )| int }} degrees.
10 |
11 | {% if is_state ("calender.containers", "on") %}
12 | {{ state_attr ("calender.containers", "message") }}.
13 | {% endif %}
14 | {% if is_state ("binary_sensor.door_window_sensor_158d0002133b59", "on") %}
15 | Reminder, The bedroom window is open.
16 | {% endif %}
17 |
--------------------------------------------------------------------------------
/covers/office.yaml:
--------------------------------------------------------------------------------
1 | - platform: mqtt
2 | name: "office roller"
3 | state_topic: "shellies/shellyswitch-559DFC/roller/0" # Returns open,close while in motion, stop when not moving
4 | command_topic: "shellies/shellyswitch-559DFC/roller/0/command" # Accepts open, close, stop
5 | position_topic: "shellies/shellyswitch-559DFC/roller/0/pos"
6 | set_position_topic: "shellies/shellyswitch-559DFC/roller/0/command/pos"
7 | payload_open: "open"
8 | payload_close: "close"
9 | payload_stop: "stop"
10 | state_open: "open"
11 | state_closed: "close"
12 | retain: true
13 | optimistic: false
14 | qos: 2
15 |
--------------------------------------------------------------------------------
/covers/livingroom.yaml:
--------------------------------------------------------------------------------
1 | - platform: mqtt
2 | name: "livingroom roller"
3 | state_topic: "shellies/shellyswitch-32B772/roller/0" # Returns open,close while in motion, stop when not moving
4 | command_topic: "shellies/shellyswitch-32B772/roller/0/command" # Accepts open, close, stop
5 | position_topic: "shellies/shellyswitch-32B772/roller/0/pos"
6 | set_position_topic: "shellies/shellyswitch-32B772/roller/0/command/pos"
7 | payload_open: "open"
8 | payload_close: "close"
9 | payload_stop: "stop"
10 | state_open: "open"
11 | state_closed: "close"
12 | retain: true
13 | optimistic: false
14 | qos: 2
15 |
--------------------------------------------------------------------------------
/sensors/bayesian.yaml:
--------------------------------------------------------------------------------
1 | #- platform: bayesian
2 | # prior: 0.6
3 | # name: Pim Presence
4 | # probability_threshold: 0.9
5 | # observations:
6 | # - entity_id: 'input_boolean.pim_present'
7 | # prob_given_true: 0.9
8 | # prob_given_false: 0.3
9 | # platform: 'state'
10 | # to_state: 'on'
11 | # - entity_id: 'device_tracker.mi9_miphone'
12 | # prob_given_true: 0.9
13 | # prob_given_false: 0.2
14 | # platform: 'state'
15 | # to_state: 'home'
16 | # - entity_id: 'device_tracker.30_95_e3_13_e9_ba'
17 | # prob_given_true: 0.8
18 | # prob_given_false: 0.3
19 | # platform: 'state'
20 | # to_state: 'home'
21 |
--------------------------------------------------------------------------------
/automations/telegram.yaml:
--------------------------------------------------------------------------------
1 | - id: '1550564308364'
2 | alias: Telegram bot that reply pong to ping
3 | trigger:
4 | - event_data:
5 | text: ping
6 | event_type: telegram_text
7 | platform: event
8 | - event_data:
9 | text: Ping
10 | event_type: telegram_text
11 | platform: event
12 | condition: []
13 | action:
14 | - data:
15 | message: pong
16 | service: telegram_bot.send_message
17 | - id: '1550565595309'
18 | alias: Telegram bot light status
19 | trigger:
20 | - event_data:
21 | text: status
22 | event_type: telegram_text
23 | platform: event
24 | - event_data:
25 | text: Status
26 | event_type: telegram_text
27 | platform: event
28 | condition: []
29 | action: []
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Extensions
2 | *.uuid
3 | *.conf
4 | *.db
5 | *.db-journal
6 | *.noload
7 | *.txt
8 | *.sqlite
9 | *.xml
10 | *.log
11 | *.backup
12 | *.mp3
13 |
14 | # Folders
15 | .cloud
16 | .HA_VERSION
17 | .storage
18 | .google.token
19 | www
20 | zones
21 | deps
22 | tmp
23 | __pycache__
24 | tensorflow
25 | security
26 | video
27 | tts
28 |
29 | # Files
30 | custom_components
31 | adbkey
32 | google_calendars.yaml
33 | secrets.yaml
34 | known_devices.yaml
35 | entity_registry.yaml
36 | ip_bans.yaml
37 | smartyone_nl.pem
38 | server.pem
39 | home-assistant_v2.db-shm
40 | home-assistant_v2.db-wal
41 | image_processing.yaml
42 | .tradfri_psk.conf
43 | .spotify-token-cache
44 | .ios.conf
45 |
46 | # For security reasons
47 | cameras
48 | camera.yaml
49 |
--------------------------------------------------------------------------------
/camera/tensorflow.yaml:
--------------------------------------------------------------------------------
1 | #currently not in use, still need to optimize.
2 |
3 | - platform: local_file
4 | file_path: /config/video/voordeur_latest.jpg
5 | name: tf_voordeur
6 | - platform: local_file
7 | file_path: /config/video/zijdeur_latest.jpg
8 | name: tf_zijdeur
9 | - platform: local_file
10 | file_path: /config/www/tmpimage/printer.jpg
11 | name: tensorflow_test
12 |
13 | # Example configuration.yaml entry
14 | #image_processing:
15 | # - platform: tensorflow
16 | # scan_interval: 10000
17 | # source:
18 | # - entity_id: camera.voordeur
19 | # - entity_id: camera.zijdeur
20 | # file_out:
21 | # - "/config/video/{{ camera_entity.split('.')[1] }}_latest.jpg"
22 | # - "/config/video/{{ camera_entity.split('.')[1] }}_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
23 | # model:
24 | # graph: /config/tensorflow/frozen_inference_graph.pb
25 |
--------------------------------------------------------------------------------
/components.md:
--------------------------------------------------------------------------------
1 | ### Sensors/devices
2 | - Xiaomi Aqara
3 | - 6 motion sensors
4 | - 5 temperature sensors
5 | - 1 Gateway
6 | - 2 wireless switch (Double)
7 | - 1 Single button
8 | - 2 door/window sensors
9 |
10 | - Ikea Tradfri
11 | - 14 GU10 spots
12 | - 1 e14 bulb
13 | - 1 e27 bulb
14 |
15 | - Xiaomi Vacuum
16 |
17 | - 3D printer
18 | - AnyCubic Kossel (non linear)
19 |
20 | - 2 Wemos D1
21 | - 1 Falcon heavy lamp (addressable led ring)
22 | - 1 3d printer light (addressable led strip)
23 |
24 | - Google:
25 | - 2 Home Mini's
26 | - 1 Home
27 | - 1 Home Hub
28 | - 2 ChromeCast
29 | - 1 Android TV
30 | - Nest Hello (doorbell)
31 |
32 | - Synology Surveilence station
33 | - 2 camera's
34 |
35 | - Honeywell Evo Home
36 | - 3 radiator valves
37 | - 1 floorheating valve
38 |
39 | - RFlink (legacy)
40 | - 3 Klik Aan Klik Uit switches
41 |
42 | - Sonoff
43 | - 3 sonoff basic's
44 | - 1 sonoff POW
45 | - 1 sonoff TH
46 |
--------------------------------------------------------------------------------
/scenes.yaml:
--------------------------------------------------------------------------------
1 | - id: '1578256623103'
2 | name: ALARM
3 | entities:
4 | group.all_lights:
5 | auto: true
6 | entity_id:
7 | - light.falcon_light
8 | - light.fireplace
9 | - light.gateway_light_7811dcb27710
10 | - light.hallway_3
11 | - light.kossel_light
12 | - light.officeleft
13 | - light.officeright
14 | - light.sonoff_basement
15 | - light.tradfri_bulb_e27_w_opal_1000lm_2
16 | - light.tradfri_bulb_gu10_w_400lm_11
17 | - light.tradfri_bulb_gu10_w_400lm_12
18 | - light.wled_light
19 | - light.bathroom1
20 | - light.bathroom2
21 | - light.bathroom3
22 | - light.deur
23 | - light.hallway1
24 | - light.hallway2
25 | - light.kitchen1
26 | - light.kitchen2
27 | - light.rode_lamp
28 | - light.status_unicorn
29 | - light.verwarming
30 | - light.vierkant
31 | friendly_name: all lights
32 | hidden: true
33 | order: 28
34 | state: 'on'
35 |
--------------------------------------------------------------------------------
/sensors/mqtt.yaml:
--------------------------------------------------------------------------------
1 | - platform: mqtt
2 | name: "Basement Temperature"
3 | state_topic: "tele/sonoff1/SENSOR"
4 | value_template: "{{ value_json['AM2301'].Temperature }}"
5 | unit_of_measurement: "°C"
6 |
7 | - platform: mqtt
8 | name: "Basement Humidity"
9 | state_topic: "tele/sonoff1/SENSOR"
10 | value_template: "{{ value_json['AM2301'].Humidity }}"
11 | unit_of_measurement: "%"
12 |
13 | - platform: mqtt
14 | name: "Fireplace Energy"
15 | state_topic: "tele/sonoff2/SENSOR"
16 | value_template: '{{ value_json["ENERGY"]["Today"] }}'
17 | unit_of_measurement: "kWh"
18 |
19 | - platform: mqtt
20 | name: "Fireplace Power"
21 | state_topic: "tele/sonoff2/SENSOR"
22 | value_template: '{{ value_json["ENERGY"]["Power"] }}'
23 | unit_of_measurement: "W"
24 |
25 | - platform: mqtt
26 | name: "Fireplace Voltage"
27 | state_topic: "tele/sonoff2/SENSOR"
28 | value_template: '{{ value_json["ENERGY"]["Voltage"] }}'
29 | unit_of_measurement: "V"
30 |
31 | - platform: mqtt
32 | name: "Fireplace Current"
33 | state_topic: "tele/sonoff2/SENSOR"
34 | value_template: '{{ value_json["ENERGY"]["Current"] }}'
35 | unit_of_measurement: "A"
36 |
--------------------------------------------------------------------------------
/blueprints/automation/homeassistant/notify_leaving_zone.yaml:
--------------------------------------------------------------------------------
1 | blueprint:
2 | name: Send notification when a person leaves a zone
3 | domain: automation
4 | source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/notify_leaving_zone.yaml
5 | input:
6 | person_entity:
7 | name: Person
8 | selector:
9 | entity:
10 | domain: person
11 | zone_entity:
12 | name: Zone
13 | selector:
14 | entity:
15 | domain: zone
16 | notify_device:
17 | name: Device to notify
18 | description: Device needs to run the official Home Assistant app to receive notifications.
19 | selector:
20 | device:
21 | integration: mobile_app
22 |
23 | trigger:
24 | platform: state
25 | entity_id: !input person_entity
26 |
27 | variables:
28 | zone_entity: !input zone_entity
29 | zone_state: "{{ states[zone_entity].name }}"
30 | person_entity: !input person_entity
31 | person_name: "{{ states[person_entity].name }}"
32 |
33 | condition:
34 | condition: template
35 | value_template: "{{ trigger.from_state.state == zone_state and trigger.to_state.state != zone_state }}"
36 |
37 | action:
38 | domain: mobile_app
39 | type: notify
40 | device_id: !input notify_device
41 | message: "{{ person_name }} has left {{ zone_state }}"
42 |
--------------------------------------------------------------------------------
/blueprints/automation/homeassistant/motion_light.yaml:
--------------------------------------------------------------------------------
1 | blueprint:
2 | name: Motion-activated Light
3 | domain: automation
4 | source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml
5 | input:
6 | motion_entity:
7 | name: Motion Sensor
8 | selector:
9 | entity:
10 | domain: binary_sensor
11 | device_class: motion
12 | light_target:
13 | name: Light
14 | selector:
15 | target:
16 | entity:
17 | domain: light
18 | no_motion_wait:
19 | name: Wait time
20 | description: Time to wait until the light should be turned off.
21 | default: 120
22 | selector:
23 | number:
24 | min: 0
25 | max: 3600
26 | unit_of_measurement: seconds
27 |
28 | # If motion is detected within the delay,
29 | # we restart the script.
30 | mode: restart
31 | max_exceeded: silent
32 |
33 | trigger:
34 | platform: state
35 | entity_id: !input motion_entity
36 | from: "off"
37 | to: "on"
38 |
39 | action:
40 | - service: light.turn_on
41 | target: !input light_target
42 | - wait_for_trigger:
43 | platform: state
44 | entity_id: !input motion_entity
45 | from: "on"
46 | to: "off"
47 | - delay: !input no_motion_wait
48 | - service: light.turn_off
49 | target: !input light_target
50 |
--------------------------------------------------------------------------------
/customize.yaml:
--------------------------------------------------------------------------------
1 | light.gateway_light_7811dcb27710:
2 | friendly_name: Gateway
3 | binary_sensor.door_window_sensor_158d0002254184:
4 | friendly_name: Doorbell1
5 | binary_sensor.door_window_sensor_158d0002254443:
6 | friendly_name: Door Sensor Basement
7 | binary_sensor.door_window_sensor_158d0002133b59:
8 | friendly_name: Door Window Sensor Bedroom
9 | sensor.humidity_158d00022b6766:
10 | friendly_name: Humidity Bedroom
11 | sensor.temperature_158d00022b6766:
12 | friendly_name: Temperature Bedroom
13 | sensor.humidity_158d00022cc752:
14 | friendly_name: Humidity Bathroom
15 | sensor.pressure_158d00022cc752:
16 | friendly_name: Pressure Bathroom
17 | sensor.temperature_158d00022cc752:
18 | friendly_name: Temperature Bathroom
19 | sensor.pressure_158d00022b6766:
20 | friendly_name: Pressure Bedroom
21 | sensor.humidity_158d00022c9653:
22 | friendly_name: Humidity Hallway
23 | sensor.pressure_158d00022c9653:
24 | friendly_name: Pressure hallway
25 | sensor.temperature_158d00022c9653:
26 | friendly_name: Temperature hallway
27 | binary_sensor.motion_sensor_158d0001a92381:
28 | friendly_name: Motion Sensor Hallway
29 | light.tradfri_bulb_gu10_w_400lm_9:
30 | friendly_name: Kitchen 1
31 | light.tradfri_bulb_gu10_w_400lm_10:
32 | friendly_name: Kitchen 2
33 | binary_sensor.motion_sensor_158d0001e55662:
34 | friendly_name: Motion Sensor Kitchen
35 | binary_sensor.motion_sensor_158d0001e56350:
36 | friendly_name: Motion Sensor upstairs
37 |
--------------------------------------------------------------------------------
/travis_secrets.yaml:
--------------------------------------------------------------------------------
1 | ### Fake secrets for travis
2 |
3 | lat: 00000
4 | long: 00000
5 |
6 | http_password: blahblahblah
7 |
8 | zijdeur_stream: "rtsp://abcde:123456789@10.10.10.10:554/Sms=8.unicast"
9 | zijdeur_stream_still: "http://10.10.10.111/cgi-bin/snapshot.cgi"
10 |
11 | voordeur_stream_still: "http://10.10.10.110/cgi-bin/snapshot.cgi"
12 | voordeur_stream: "rtsp://abcde:123456789@10.10.10.10:554/Sms=8.unicast"
13 |
14 | garage_stream_still: "http://10.10.10.110/cgi-bin/snapshot.cgi"
15 | garage_stream: "rtsp://abcde:123456789@10.10.10.10:554/Sms=8.unicast"
16 |
17 | pushapi: lkjdlkjdsflkj
18 | pushapi2: lkjdfslkjdsflkj
19 |
20 | nest_id: blahblah@blah.com
21 | nest_secret: fake1234
22 |
23 | honeywell_user: blah@blah.com
24 | honeywell_pass: fake1234
25 |
26 | aqara_password: aaaaaaa198765432
27 |
28 | essent_username: blah@blah.com
29 | esset_password: fake1234
30 |
31 | google_cal_id: "123456789101-1a2b3cd4e5fghi6jk78l9mn1pqrst3vw.apps.googleusercontent.com"
32 | google_cal_secret: "ab12_3cdefghijk4lmnopqrs"
33 |
34 | miiotoken: 1234567891234a678912345678912345
35 |
36 | octo-api: lkjdljsdkljsdf
37 |
38 | spotify_client: ljdfsjksdflkjdfs
39 | spotify: fake1234
40 |
41 | tesla_username: blah@blah.com
42 | tesla_password: "fake1234"
43 |
44 | unifi_username: blah
45 | unifi_password: "Fake1234"
46 |
47 | darksky: lkjdfslkjsdflkj
48 |
49 | seventeentrack_un: blah@blah.com
50 | seventeentrack_pw: fake1234
51 |
52 | telegram_id: 123456789
53 | telegram_key: 1234567891234a678912345678912345
54 | telegram_chat_id: 123456789
55 |
56 | dsm_user: blah@blah.com
57 | dsm: fake1234
58 |
59 | database: "mysql://fake:fake@fake/fake"
60 |
--------------------------------------------------------------------------------
/themes/animated-weather-card/animated-weather-card.yaml:
--------------------------------------------------------------------------------
1 | # Animated icons for default Home Assistant weather card
2 | #
3 | # Creator: Anton Averkiev - @wowgamr
4 | # Repo: https://github.com/wowgamr/animated-weather-card
5 |
6 | Animated Weather Card:
7 | weather-icon-clear-night: url("/hacsfiles/themes/animated-weather-card/icons/clear-night.svg")
8 | weather-icon-cloudy: url("/hacsfiles/themes/animated-weather-card/icons/cloudy.svg")
9 | weather-icon-fog: url("/hacsfiles/themes/animated-weather-card/icons/fog.svg")
10 | weather-icon-lightning: url("/hacsfiles/themes/animated-weather-card/icons/lightning.svg")
11 | weather-icon-lightning-rainy: url("/hacsfiles/themes/animated-weather-card/icons/lightning.svg")
12 | weather-icon-partlycloudy: url("/hacsfiles/themes/animated-weather-card/icons/partlycloudy.svg")
13 | weather-icon-pouring: url("/hacsfiles/themes/animated-weather-card/icons/pouring.svg")
14 | weather-icon-rainy: url("/hacsfiles/themes/animated-weather-card/icons/rainy.svg")
15 | weather-icon-hail: url("/hacsfiles/themes/animated-weather-card/icons/hail.svg")
16 | weather-icon-snowy: url("/hacsfiles/themes/animated-weather-card/icons/snowy.svg")
17 | weather-icon-snowy-rainy: url("/hacsfiles/themes/animated-weather-card/icons/hail.svg")
18 | weather-icon-sunny: url("/hacsfiles/themes/animated-weather-card/icons/sunny.svg")
19 | weather-icon-windy: url("/hacsfiles/themes/animated-weather-card/icons/cloudy.svg")
20 | weather-icon-windy-variant: url("/hacsfiles/themes/animated-weather-card/icons/partlycloudy.svg")
21 | weather-icon-exceptional: url("/hacsfiles/themes/animated-weather-card/icons/exceptional.svg")
--------------------------------------------------------------------------------
/automations/welcome_home.yaml:
--------------------------------------------------------------------------------
1 | {% if now().strftime("%H")|int < 12 %}
2 | Good morning,
3 | {% elif now().strftime("%H")|int < 18 %}
4 | Good afternoon,
5 | {% else %}
6 | Good evening,
7 | {% endif %}
8 |
9 | Resident.
10 |
11 | The current weather is {{ states ("weather.dark_sky") }}, with a temperature of {{ state_attr ("weather.dark_sky" , "temperature" ) | int }} degrees.
12 |
13 | The current livingroom temperature is {{ state_attr ("climate.woonkamer", "current_temperature" )|int }} degrees.
14 |
15 | The solar panels produced {{ states ("sensor.energy_today").split(".").0 }} Kilowatthours today.
16 |
17 | {% if is_state ("binary_sensor.door_window_sensor_158d0002133b59", "on") %}
18 | Reminder, The bedroom window is open.
19 | {% endif %}
20 |
21 | {% if state_attr ("vacuum.miep", "clean_stop").strftime("%d") == now().strftime("%d") %}
22 | Vacuum finished today at {{ state_attr ("vacuum.miep", "clean_stop").strftime("%H:%M")}}.
23 | {% else %}
24 | Vacuum did not clean, last run was {{state_attr ("vacuum.miep", "clean_stop").strftime("%A, %d %B")}}.
25 | {% endif %}
26 |
27 | {% if state_attr ("vacuum.miep", "sensor_dirty_left") < 2 %}
28 | The vacuum sensors need to be cleaned in {{state_attr ("vacuum.miep", "sensor_dirty_left")}} hours.
29 | {% endif %}
30 | {% if state_attr ("vacuum.miep", "filter_left") < 2 %}
31 | The vacuum sensors need to be cleaned in {{state_attr ("vacuum.miep", "filter_left")}} hours.
32 | {% endif %}
33 | {% if state_attr ("vacuum.miep", "side_brush_left") < 2 %}
34 | The vacuum sensors need to be cleaned in {{state_attr ("vacuum.miep", "side_brush_left")}} hours.
35 | {% endif %}
36 | {% if state_attr ("vacuum.miep", "main_brush_left") < 2 %}
37 | The vacuum sensors need to be cleaned in {{state_attr ("vacuum.miep", "main_brush_left")}} hours.
38 | {% endif %}
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/exceptional.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/weatherdata.yaml:
--------------------------------------------------------------------------------
1 | esphome:
2 | name: weerhuisje
3 | platform: ESP8266
4 | board: nodemcuv2
5 |
6 | wifi:
7 | ssid: "...."
8 | password: "...."
9 | ap:
10 | ssid: "Weerhuisje AP"
11 | password: "...."
12 | reboot_timeout: 1min
13 | power_save_mode: none
14 | manual_ip:
15 | static_ip: 192.168.x.x
16 | gateway: 192.168.x.x
17 | subnet: 255.255.255.0
18 |
19 | captive_portal:
20 |
21 | logger:
22 |
23 | # Enable Home Assistant API
24 | api:
25 |
26 | ota:
27 |
28 | time:
29 | - platform: homeassistant
30 | id: homeassistant_time
31 | timezone: Europe/Amsterdam
32 |
33 | # Enable UART for SDS011
34 | uart:
35 | rx_pin: D1
36 | tx_pin: D2
37 | baud_rate: 9600
38 |
39 | # Enable i2c for BME280
40 | i2c:
41 | sda: D5
42 | scl: D6
43 | scan: true
44 |
45 | sensor:
46 | - platform: sds011
47 | pm_2_5:
48 | name: "Particulate Matter <2.5µm Concentration"
49 | pm_10_0:
50 | name: "Particulate Matter <10.0µm Concentration"
51 | update_interval: 30min
52 |
53 | - platform: bme280
54 | update_interval: 60s
55 | address: 0x76
56 | temperature:
57 | name: "BME280 Temperature"
58 | pressure:
59 | name: "BME280 Pressure"
60 | humidity:
61 | name: "BME280 Humidity"
62 | - platform: uptime
63 | name: "Weerhuisje uptime"
64 | update_interval: 60s
65 | - platform: wifi_signal
66 | name: "Weerhuisje WiFi signaal"
67 | update_interval: 60s
68 |
69 | binary_sensor:
70 | - platform: status
71 | name: "Weerhuisje Status"
72 |
73 | text_sensor:
74 | - platform: wifi_info
75 | ip_address:
76 | name: Weerhuisje IP Address
77 | ssid:
78 | name: Weerhuisje Connected SSID
79 | bssid:
80 | name: Weerhuisje Connected BSSID
81 | - platform: version
82 | name: Weerhuisje Version
83 |
84 | switch:
85 | - platform: restart
86 | name: "Weerhuisje Restart"
87 |
--------------------------------------------------------------------------------
/lights/mqtt.yaml:
--------------------------------------------------------------------------------
1 |
2 | - platform: mqtt
3 | name: "Sonoff Basement"
4 | state_topic: "stat/sonoff1/POWER"
5 | command_topic: "cmnd/sonoff1/POWER"
6 | availability_topic: "tele/sonoff1/LWT"
7 | qos: 1
8 | payload_on: "ON"
9 | payload_off: "OFF"
10 | payload_available: "Online"
11 | payload_not_available: "Offline"
12 | retain: true
13 |
14 | # - platform: mqtt
15 | # schema: json
16 | # name: "Falcon light"
17 | # state_topic: "light/falcon"
18 | # command_topic: "light/falcon/set"
19 | # effect: true
20 | # effect_list:
21 | # - bpm
22 | # - candy cane
23 | # - confetti
24 | # - cyclon rainbow
25 | # - dots
26 | # - fire
27 | # - glitter
28 | # - juggle
29 | # - lightning
30 | # - noise
31 | # - police all
32 | # - police one
33 | # - rainbow
34 | # - rainbow with glitter
35 | # - ripple
36 | # - sinelon
37 | # - solid
38 | # - twinkle
39 | # brightness: true
40 | # rgb: true
41 | # optimistic: false
42 | # qos: 0
43 | #
44 | # - platform: mqtt
45 | # name: "Fireplace"
46 | # state_topic: "stat/sonoff2/POWER"
47 | # command_topic: "cmnd/sonoff2/POWER"
48 | # availability_topic: "tele/sonoff2/LWT"
49 | # qos: 1
50 | # payload_on: "ON"
51 | # payload_off: "OFF"
52 | # payload_available: "Online"
53 | # payload_not_available: "Offline"
54 | # retain: true
55 | #
56 | # - platform: mqtt
57 | # name: "Hallway 3"
58 | # state_topic: "stat/sonoff6/POWER"
59 | # command_topic: "cmnd/sonoff6/POWER"
60 | # availability_topic: "tele/sonoff6/LWT"
61 | # qos: 1
62 | # payload_on: "ON"
63 | # payload_off: "OFF"
64 | # payload_available: "Online"
65 | # payload_not_available: "Offline"
66 | # retain: true
67 |
--------------------------------------------------------------------------------
/includes/rest_command.yaml:
--------------------------------------------------------------------------------
1 | ##################################
2 | ## Push values to Air Quality APIs
3 | ##################################
4 |
5 | # The BME280 pressure value in HA is in hPa - the APIs expect it in Pa, hence the
6 | # multiplication of the value in the templates below.
7 |
8 | # Push to Luftdaten API. Luftdaten uses headers to distinguish between different sensor
9 | # types, so we need to push twice. The X-Sensor header contains the sensorID from Luftdaten,
10 | # typically formatted as esp8266-12345678 or similar.
11 | send_luftdaten_pm:
12 | url: https://api.sensor.community/v1/push-sensor-data/
13 | method: POST
14 | content_type: "application/json"
15 | headers:
16 | X-Pin: 1 ## This tells Luftdaten that it is SDS011 data
17 | X-Sensor: !secret luftdaten_x_sensor
18 | payload: >
19 | {
20 | "software_version": "HomeAssistant-{{ states('sensor.current_version') }}",
21 | "sensordatavalues":[
22 | {% if states('sensor.weerhuisje_particulate_matter_10_0um_concentration') and ('sensor.weerhuisje_particulate_matter_2_5um_concentration') != 'unavailable' %}
23 | {"value_type":"P1","value":"{{ states('sensor.weerhuisje_particulate_matter_10_0um_concentration') }}"},
24 | {"value_type":"P2","value":"{{ states('sensor.weerhuisje_particulate_matter_2_5um_concentration') }}"}
25 | {% endif %}
26 | ]
27 | }
28 | send_luftdaten_tph:
29 | url: https://api.sensor.community/v1/push-sensor-data/
30 | method: POST
31 | content_type: "application/json"
32 | headers:
33 | X-Pin: 11 ## This tells Luftdaten that it is BME280 data
34 | X-Sensor: !secret luftdaten_x_sensor
35 | payload: >
36 | {
37 | "software_version": "HomeAssistant-{{ states('sensor.current_version') }}",
38 | "sensordatavalues":[
39 | {"value_type":"temperature","value":"{{ states('sensor.weerhuisje_temperature') }}"},
40 | {"value_type":"pressure","value":"{{ states('sensor.weerhuisje_pressure') | float * 100 }}"},
41 | {"value_type":"humidity","value":"{{ states('sensor.weerhuisje_humidity') }}"}
42 | ]
43 | }
44 |
45 |
--------------------------------------------------------------------------------
/sensors/octorint.yaml:
--------------------------------------------------------------------------------
1 | - platform: template
2 | sensors:
3 | octoprint_time_elapsed_format:
4 | friendly_name: 'Printing Time Elapsed'
5 | value_template: >-
6 | {% set etime = states.sensor.octoprint_time_elapsed.state | int %}
7 | {% set seconds = etime % 60 %}
8 | {% set minutes = ((etime % 3600) / 60) | int %}
9 | {% set hours = ((etime % 86400) / 3600) | int %}
10 | {% set days = (etime / 86400) | int %}
11 | {%- if days > 0 -%}
12 | {%- if days == 1 -%}
13 | 1 day
14 | {%- else -%}
15 | {{ days }} days
16 | {%- endif -%}
17 | {{ ', ' }}
18 | {%- endif -%}
19 | {%- if hours > 0 -%}
20 | {%- if hours == 1 -%}
21 | 1 hour
22 | {%- else -%}
23 | {{ hours }} hours
24 | {%- endif -%}
25 | {{ ', ' }}
26 | {%- endif -%}
27 | {%- if minutes > 0 -%}
28 | {%- if minutes == 1 -%}
29 | 1 minute
30 | {%- else -%}
31 | {{ minutes }} minutes
32 | {%- endif -%}
33 | {%- endif -%}
34 | octoprint_time_remaining_format:
35 | friendly_name: 'Printing Time Remaining'
36 | value_template: >-
37 | {% set rtime = states.sensor.octoprint_time_remaining.state | int %}
38 | {% set seconds = rtime % 60 %}
39 | {% set minutes = ((rtime % 3600) / 60) | int %}
40 | {% set hours = ((rtime % 86400) / 3600) | int %}
41 | {% set days = (rtime / 86400) | int %}
42 | {%- if days > 0 -%}
43 | {%- if days == 1 -%}
44 | 1 day
45 | {%- else -%}
46 | {{ days }} days
47 | {%- endif -%}
48 | {{ ', ' }}
49 | {%- endif -%}
50 | {%- if hours > 0 -%}
51 | {%- if hours == 1 -%}
52 | 1 hour
53 | {%- else -%}
54 | {{ hours }} hours
55 | {%- endif -%}
56 | {{ ', ' }}
57 | {%- endif -%}
58 | {%- if minutes > 0 -%}
59 | {%- if minutes == 1 -%}
60 | 1 minute
61 | {%- else -%}
62 | {{ minutes }} minutes
63 | {%- endif -%}
64 | {%- endif -%}
65 |
--------------------------------------------------------------------------------
/template.yaml:
--------------------------------------------------------------------------------
1 | - platform: template
2 | sensors:
3 | octoprint_time_elapsed_format:
4 | friendly_name: 'Printing Time Elapsed'
5 | value_template: >-
6 | {% set etime = states.sensor.octoprint_time_elapsed.state | int %}
7 | {% set seconds = etime % 60 %}
8 | {% set minutes = ((etime % 3600) / 60) | int %}
9 | {% set hours = ((etime % 86400) / 3600) | int %}
10 | {% set days = (etime / 86400) | int %}
11 | {%- if days > 0 -%}
12 | {%- if days == 1 -%}
13 | 1 day
14 | {%- else -%}
15 | {{ days }} days
16 | {%- endif -%}
17 | {{ ', ' }}
18 | {%- endif -%}
19 | {%- if hours > 0 -%}
20 | {%- if hours == 1 -%}
21 | 1 hour
22 | {%- else -%}
23 | {{ hours }} hours
24 | {%- endif -%}
25 | {{ ', ' }}
26 | {%- endif -%}
27 | {%- if minutes > 0 -%}
28 | {%- if minutes == 1 -%}
29 | 1 minute
30 | {%- else -%}
31 | {{ minutes }} minutes
32 | {%- endif -%}
33 | {%- endif -%}
34 | octoprint_time_remaining_format:
35 | friendly_name: 'Printing Time Remaining'
36 | value_template: >-
37 | {% set rtime = states.sensor.octoprint_time_remaining.state | int %}
38 | {% set seconds = rtime % 60 %}
39 | {% set minutes = ((rtime % 3600) / 60) | int %}
40 | {% set hours = ((rtime % 86400) / 3600) | int %}
41 | {% set days = (rtime / 86400) | int %}
42 | {%- if days > 0 -%}
43 | {%- if days == 1 -%}
44 | 1 day
45 | {%- else -%}
46 | {{ days }} days
47 | {%- endif -%}
48 | {{ ', ' }}
49 | {%- endif -%}
50 | {%- if hours > 0 -%}
51 | {%- if hours == 1 -%}
52 | 1 hour
53 | {%- else -%}
54 | {{ hours }} hours
55 | {%- endif -%}
56 | {{ ', ' }}
57 | {%- endif -%}
58 | {%- if minutes > 0 -%}
59 | {%- if minutes == 1 -%}
60 | 1 minute
61 | {%- else -%}
62 | {{ minutes }} minutes
63 | {%- endif -%}
64 | {%- endif -%}
65 |
66 | no_one_home:
67 | friendly_name: 'No one is home'
68 | value_template: >-
69 | {{ not is_state("person.pim", "home")
70 | and not is_state("person.joyce", "home") }}
71 |
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/rainy.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/clear-night.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/pouring.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/hail.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/clear.yaml:
--------------------------------------------------------------------------------
1 | clear:
2 | # Background image
3 | background-image: 'center / cover no-repeat url("/local/day.jpg") fixed'
4 | # Colors
5 | text-color: '#636B75' # Grey text
6 | text-medium-color: '#8c96a5' # Medium grey text
7 | text-light-color: '#BAC0C6' # Light grey text
8 | accent-color: '#00a1ff' # Blue
9 | background-color: '#F7F8F9' # Light grey background
10 | background-color-2: '#F4F5F6' # Light grey background
11 | background-card-color: 'rgba(255,255,255,1.0)' # White background
12 | border-color: '#EAEAEA' # Light grey border
13 | # Header
14 | primary-color: 'var(--text-color)' # Background
15 | text-primary-color: '#FFF' # Text
16 |
17 | # Left Menu
18 | paper-listbox-background-color: 'var(--background-color)' # Background
19 | # UI
20 | paper-card-header-color: 'var(--text-color)' # Title in settings
21 | primary-background-color: 'var(--background-color)' # Background (also title background in left menu)
22 |
23 | # Card
24 | paper-card-background-color: 'var(--background-card-color)' # Background
25 | dark-primary-color: 'var(--text-color)'
26 | primary-text-color: 'var(--text-color)'
27 | paper-listbox-color: 'var(--text-color)'
28 | light-primary-color: 'var(--text-light-color)'
29 | secondary-text-color: 'var(--text-medium-color)'
30 | disabled-text-color: 'var(--text-light-color)'
31 | paper-dialog-button-color: 'var(--text-color)'
32 | secondary-background-color: 'var(--background-color-2)' # Background more info title
33 | # Icons
34 | paper-item-icon-color: 'var(--text-light-color)' # Off
35 | paper-item-icon-active-color: 'var(--accent-color)' # On
36 |
37 | # Switches
38 | paper-toggle-button-checked-button-color: '#FFF' # Knob On
39 | paper-toggle-button-checked-bar-color: '#0077FF' # Background On
40 | paper-toggle-button-unchecked-button-color: '#FFF' # Knob Off
41 | paper-toggle-button-unchecked-bar-color: 'var(--disabled-text-color)' # Background Off
42 | # Shadows
43 | shadow-elevation-2dp_-_box-shadow: 'inset 0px 0px 0px 1px var(--border-color)'
44 | shadow-elevation-4dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
45 | shadow-elevation-6dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
46 | shadow-elevation-8dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
47 | shadow-elevation-10dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
48 | shadow-elevation-12dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
49 | shadow-elevation-14dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
50 | shadow-elevation-16dp_-_box-shadow: '0px 0px 0px 3px var(--light-color)'
--------------------------------------------------------------------------------
/themes/slate.yaml:
--------------------------------------------------------------------------------
1 | slate:
2 | # Main colors
3 | primary-color: '#2980b9'
4 | accent-color: '#b58e31'
5 | dark-primary-color: '#2980b9'
6 | light-primary-color: '#2980b9'
7 | # Text colors
8 | primary-text-color: '#FFFFFF'
9 | text-primary-color: 'var(--primary-text-color)'
10 | secondary-text-color: '#b58e31'
11 | disabled-text-color: '#777777'
12 | label-badge-border-color: 'green'
13 | # Sidebar
14 | sidebar-icon-color: '#777777'
15 | # Background colors
16 | primary-background-color: '#222222'
17 | secondary-background-color: '#222222'
18 | divider-color: 'rgba(0, 0, 0, .12)'
19 | table-row-background-color: '#292929'
20 | table-row-alternative-background-color: '#292929'
21 | # Nav Menu
22 | paper-listbox-color: '#777777'
23 | paper-listbox-background-color: '#141414'
24 | paper-grey-50: 'var(--primary-text-color)'
25 | paper-grey-200: '#222222'
26 | # Paper card
27 | paper-card-header-color: '#2980b9'
28 | paper-card-background-color: '#292929'
29 | paper-dialog-background-color: '#292929'
30 | paper-item-icon-color: 'var(--primary-text-color)'
31 | paper-item-icon-active-color: '#b58e31'
32 | paper-item-icon_-_color: 'green'
33 | paper-item-selected_-_background-color: '#292929'
34 | paper-tabs-selection-bar-color: 'green'
35 | # Labels
36 | label-badge-red: 'var(--primary-color)'
37 | label-badge-text-color: 'var(--primary-text-color)'
38 | label-badge-background-color: '#222222'
39 | # Switches
40 | paper-toggle-button-checked-button-color: '#2980b9'
41 | paper-toggle-button-checked-bar-color: '#2980b9'
42 | paper-toggle-button-checked-ink-color: '#2980b9'
43 | paper-toggle-button-unchecked-button-color: 'var(--disabled-text-color)'
44 | paper-toggle-button-unchecked-bar-color: 'var(--disabled-text-color)'
45 | paper-toggle-button-unchecked-ink-color: 'var(--disabled-text-color)'
46 | # Sliders
47 | paper-slider-knob-color: '#2980b9'
48 | paper-slider-knob-start-color: '#2980b9'
49 | paper-slider-pin-color: '#2980b9'
50 | paper-slider-active-color: '#2980b9'
51 | paper-slider-container-color: 'linear-gradient(var(--primary-background-color), var(--secondary-background-color)) no-repeat'
52 | paper-slider-secondary-color: 'var(--secondary-background-color)'
53 | paper-slider-disabled-active-color: 'var(--disabled-text-color)'
54 | paper-slider-disabled-secondary-color: 'var(--disabled-text-color)'
55 | # Google colors
56 | google-red-500: '#b58e31'
57 | google-green-500: '#2980b9'
58 | #Changes to fix history/logbook menus
59 | lumo-primary-text-color: '#2980b9'
60 | lumo-secondary-text-color: '#2980b9'
61 | lumo-primary-color: '#2980b9'
62 | #Calendar day numbers
63 | lumo-body-text-color: '#b58e31'
64 | #Calendar/Date-Picker Background
65 | lumo-base-color: '#222222'
66 | #Month/Year header
67 | lumo-header-text-color: 'var(--lumo-body-text-color)'
68 | #DayOfWeek Header
69 | lumo-tertiary-text-color: 'var(--lumo-body-text-color)'
70 | lumo-shade: '#222222'
71 | lumo-shade-90pct: 'rgba(34, 34, 34, .9)'
72 | lumo-shade-80pct: 'rgba(34, 34, 34, .8)'
73 | lumo-shade-70pct: 'rgba(34, 34, 34, .7)'
74 | lumo-shade-60pct: 'rgba(34, 34, 34, .6)'
75 | lumo-shade-50pct: 'rgba(34, 34, 34, .5)'
76 | lumo-shade-40pct: 'rgba(34, 34, 34, .4)'
77 | lumo-shade-30pct: 'rgba(34, 34, 34, .3)'
78 | lumo-shade-20pct: 'rgba(34, 34, 34, .2)'
79 | lumo-shade-10pct: 'rgba(34, 34, 34, .1)'
80 | lumo-shade-5pct: 'rgba(34, 34, 34, .05)'
81 | lumo-tint-5pct: '#222222'
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/fog.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/scripts.yaml:
--------------------------------------------------------------------------------
1 | livingroom_tv_power:
2 | sequence:
3 | - condition: state
4 | entity_id: alarm_control_panel.home_alarm
5 | state: pending
6 | - delay: 00:00:01
7 | - data: {}
8 | entity_id: script.alarm_pending_sound
9 | service: script.turn_on
10 | mode: single
11 | alias: alarm_pending_loop
12 | alarm_pending_sound:
13 | alias: alarm_pending_sound
14 | mode: single
15 | sequence:
16 | - data:
17 | volume_level: 0.1
18 | entity_id: media_player.alarm
19 | service: media_player.volume_set
20 | - data:
21 | media_content_id: http://192.168.1.79:8080/pending-beep.mp3
22 | media_content_type: audio/mp4
23 | entity_id: media_player.alarm
24 | service: media_player.play_media
25 | - delay: 00:00:03
26 | - data: {}
27 | entity_id: script.livingroom_tv_power
28 | service: script.turn_on
29 | alarm_triggered_loop:
30 | alias: alarm_triggered_loop
31 | mode: single
32 | sequence:
33 | - condition: state
34 | entity_id: alarm_control_panel.home_alarm
35 | state: triggered
36 | - delay: 00:00:01
37 | - data: {}
38 | entity_id: script.alarm_triggered_sound
39 | service: script.turn_on
40 | alarm_triggered_sound:
41 | alias: alarm_triggered_sound
42 | mode: single
43 | sequence:
44 | - data: {}
45 | entity_id: media_player.alarm
46 | service: media_player.volume_up
47 | - data:
48 | media_content_id: http://192.168.1.79:8080/purge.m4a
49 | media_content_type: audio/mp4
50 | entity_id: media_player.alarm
51 | service: media_player.play_media
52 | - delay: 00:00:03
53 | - data: {}
54 | entity_id: script.alarm_triggered_loop
55 | service: script.turn_on
56 | increase_brightness:
57 | alias: increase_brightness
58 | sequence:
59 | - service: light.turn_on
60 | data:
61 | entity_id: '{{ group }}'
62 | brightness: "{% set b = state_attr(group, 'brightness') %} {% if b == None %}\n\
63 | \ 15\n{% elif b < 20 %}\n 128\n{% elif b < 140 %}\n 255\n{% else %}\n \
64 | \ 15\n{% endif %}\n"
65 | mode: single
66 | '1606902947169':
67 | alias: lights_off_except
68 | icon: mdi:home-lightbulb
69 | fields:
70 | exclude_lights:
71 | description: Excluded lights as list
72 | sequence:
73 | - service: logbook.log
74 | data_template:
75 | entity_id: script.turn_off_lights
76 | name: Exclude log
77 | message: 'Turning of all lights except: {{ exclude_lights }}'
78 | - service: light.turn_off
79 | data_template:
80 | entity_id: '{%- for device in states.light|rejectattr(''entity_id'',''in'',
81 | exclude_lights )|rejectattr(''state'',''in'',''off'') %}{%- if loop.first
82 | %}{%- else %}, {% endif %}{{ device.entity_id }}{%- if loop.last %}{% endif
83 | %}{%- endfor %}
84 |
85 | '
86 | mode: single
87 | switch_off_except:
88 | alias: switch_off_except
89 | sequence:
90 | - service: logbook.log
91 | data_template:
92 | entity_id: script.turn_off_switch
93 | name: Exclude log
94 | message: 'Turning of all switches except: {{ exclude_switch }}'
95 | - service: switch.turn_off
96 | data_template:
97 | entity_id: '{%- for device in states.switch|rejectattr(''entity_id'',''in'',
98 | exclude_switches )|rejectattr(''state'',''in'',''off'') %}{%- if loop.first
99 | %}{%- else %}, {% endif %}{{ device.entity_id }}{%- if loop.last %}{% endif
100 | %}{%- endfor %}
101 |
102 | '
103 | icon: mdi:home-lightbulb
104 | fields:
105 | exclude_switches:
106 | description: Excluded switches as list
107 | mode: single
108 |
--------------------------------------------------------------------------------
/README.MD:
--------------------------------------------------------------------------------
1 | # Patatman HASS Config 🍟
2 |
3 | Basic Home Assistant config, with regular updates
4 |
5 |
6 |
7 | - over 20 different components
8 | - Updated love-lace
9 | - Minimal custom components, so it just works!
10 | - Simple automations
11 | - Tutorials (coming soon!)
12 |
13 | [](https://travis-ci.org/patatman/patatman-homeassistant-config)
14 | [](https://img.shields.io/github/last-commit/patatman/patatman-homeassistant-config.svg)
15 | [](https://img.shields.io/badge/Home%20Assistant-0.84.6-blue.svg)
16 |
17 | ## Naming convention
18 |
19 | #### Zigbee naming scheme:
20 | `___` e.g. `livingroom_couch_light_1` or `office_window_sensor`
21 |
22 | It is possible for sensor not having a Number, for instance the Office window only has 1 door/window sensor so naming should be kept short as possible.
23 |
24 | #### Automation naming:
25 | If room specific, lighting for example.
26 | `__` e.g. `kitchen_light_motion-on` or `livingroom_light_button-1`
27 |
28 | If it's a virtual automation, like alarm:
29 | `__` e.g. `alarm_pending_notification` or `telegram_windows-open_notification`
30 |
31 | ## Installation
32 | First clone the repo:
33 | ```
34 | $ git clone https://github.com/patatman/patatman-homeassistant-config.git
35 | ```
36 | Next, edit the docker-compose file to match our enviroment. More about docker-compose here: [Docker](https://www.home-assistant.io/docs/installation/docker/)
37 | Then move the `docker-compose.yml` file one folder up.
38 | ```
39 | $ cp docker-compose.yml ../docker-compose.yml
40 | ```
41 | This is needed since we're mounting the whole directory as our config.
42 |
43 | If you'd only like to use a certain compenent, just copy the configuration to your own configuration, and create a Frankensteie config (made up of bits and pieces of everyone's configuration)
44 |
45 | ## Docker-compose Usage
46 |
47 |
48 |
49 | I like to use Docker-compose opposed to a long docker run command. Since it gives me more flexibility in restarting home-assistant. It's also easier to maintain, since it's a single file.
50 | Some of the basics commands you might already use with docker:
51 | ### Start the container in the foreground
52 |
53 | ```
54 | $ docker-compose run
55 | ```
56 | This runs the container in the foreground, showing all TTY straight into your terminal. Handy for debugging.
57 | To exit, hit `ctrl + c`
58 |
61 |
62 | ### Start the container in the background
63 |
64 | ```
65 | $ docker-compose run -d
66 | ```
67 | With the `-d` parameter you send the TTY to the background. This is the recommended way of running Home Assistant, since you can use your terminal.
68 |
69 | ### Restart containers
70 | ```
71 | $ docker-compose restart
72 | ```
73 |
74 | ### Show running containers
75 | ```
76 | $ docker-compose ps
77 | ```
78 |
79 | ### View logs
80 |
81 | ```
82 | $ docker-compose logs -f
83 | ```
84 | This will open the logs, and automatically follow them(showing new entries).
85 | You can also send it without `-f`, this will not follow the logs.
86 |
87 |
88 |
89 |
90 | ## Hardware
91 | To see a full list of Hardware, please see [Components](./components.md)
92 | ### Server
93 | ### Hardware
94 | - Intel core i3-6100
95 | - 16GB Ram
96 | - 256GB SSD
97 | - 4 TB disk
98 | ## Software
99 | - Hyperviser: Proxmox
100 | - VM's: 2
101 | - Docker
102 | - other (influx, grafana etc)
103 |
104 |
105 |
106 |
--------------------------------------------------------------------------------
/groups.yaml:
--------------------------------------------------------------------------------
1 | #default_view:
2 | # view: yes
3 | # icon: mdi:home
4 | # entities:
5 | # - group.kitchen
6 | # - group.livingroom
7 | # - group.upstairs
8 |
9 | livingroom:
10 | name: Livingroom
11 | entities:
12 | - light.kitchen
13 | - group.livingroom_group
14 | upstairs:
15 | name: Upstairs
16 | entities:
17 | - group.bathroom_group
18 | bathroom:
19 | name: bathroom
20 | icon: mdi:shower
21 | entities:
22 | - group.bathroom_group
23 | kitchen:
24 | name: Kitchen
25 | entities:
26 | - light.0x000b57fffee6d100_light
27 | - light.0x90fd9ffffe71aa29_light
28 |
29 | bathroom_group:
30 | name: "Bathroom lights"
31 | entities:
32 | - light.0x90fd9ffffe08e345_light
33 | - light.0x90fd9ffffe6d296e_light
34 | - light.0x000b57fffec2a885_light
35 | livingroom_group:
36 | name: Livingroom_group
37 | entities:
38 | - light.livingroom_couch_light_light
39 | - light.0x90fd9ffffe00ef0c_light
40 | - light.livingroom_diner_table_light_light
41 | - switch.livingroom_window_switch_switch
42 | - switch.fireplace_basic_relay
43 | - light.wled
44 | # - light.livingroom_red_light_light
45 | - switch.sonoff_basic_relay
46 |
47 | motion:
48 | name: motion
49 | entities:
50 | - binary_sensor.door_window_sensor_158d0002133b59
51 | - binary_sensor.door_window_sensor_158d0002254443
52 | - binary_sensor.motion_sensor_158d0001a92381
53 | - binary_sensor.motion_sensor_158d0001e55662
54 | - binary_sensor.motion_sensor_158d0001e56350
55 | - sensor.illumination_158d0001e55662
56 | Climate_temp:
57 | name: "Climate Temperature"
58 | entities:
59 | - sensor.basement_temperature
60 | - sensor.temperature_158d00022c9653
61 | - sensor.temperature_158d00022b6766
62 | - sensor.temperature_158d00022cc752
63 | Climate_hum:
64 | name: "Climate Humidity"
65 | entities:
66 | - sensor.basement_humidity
67 | - sensor.humidity_158d00022c9653
68 | - sensor.humidity_158d00022b6766
69 | - sensor.humidity_158d00022cc752
70 | Weather:
71 | name: Weather
72 | entities:
73 | - sensor.pws_weather
74 | - sensor.pws_alerts
75 | - sensor.pws_feelslike_c
76 | - sensor.pws_temp_c
77 | - sensor.pws_uv
78 |
79 | bedroom_lights:
80 | name: "Bedroom lights"
81 | entities:
82 | - light.0xccccccfffe2c31f7_light
83 | - light.0xccccccfffec13e57_light
84 | office_lights:
85 | name: "Office lights"
86 | entities:
87 | - light.0x90fd9ffffe353e1f_light
88 | - light.0x90fd9ffffe35b677_light
89 | kitchenspots:
90 | name: Kitchenspots
91 | entities:
92 | - light.0x90fd9ffffe71aa29_light
93 | - light.0x000b57fffee6d100_light
94 |
95 | upstairs_spots:
96 | name: upstairspots
97 | entities:
98 | - light.0x90fd9ffffe3490c2_light
99 | - light.0x90fd9ffffe08e2a7_light
100 |
101 | hallway:
102 | name: hallway
103 | entities:
104 | - light.0x000b57fffed62b55_light
105 | - switch.staircase_window_light_relay
106 | - light.0x90fd9ffffe6e9514_light
107 | meter_readings:
108 | name: "Meter readings"
109 | entities:
110 | - sensor.power_consumption_low
111 | - sensor.power_consumption_normal
112 | - sensor.power_production_low
113 | - sensor.power_production_normal
114 | - sensor.gas_consumption
115 |
116 | outside_doors:
117 | name: "outside doors"
118 | entities:
119 | - binary_sensor.back_hallway_outside_door_sensor_contact
120 | - binary_sensor.bedroom_outside_door_sensor_contact
121 | - binary_sensor.garage_garden_door_sensor_contact
122 | - binary_sensor.garage_outside_door_sensor_contact
123 | - binary_sensor.0x00158d0003eef6c2_contact
124 | - binary_sensor.basement_window_sensor_contact
125 | outside_windows:
126 | name: "windows"
127 | entities:
128 | - binary_sensor.livingroom_fireplace_window_sensor_contact
129 | - binary_sensor.bathroom_window_sensor_contact
130 | - binary_sensor.bedroom_window_door_sensor_contact
131 | - binary_sensor.office_window_sensor_contact
132 | - binary_sensor.basement_window_sensor_contact
133 |
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/cloudy.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/clear2.yaml:
--------------------------------------------------------------------------------
1 | clear2:
2 | # Rounded borders
3 | ha-card-border-radius: '20px'
4 | # Background image
5 | background-image: 'center / cover no-repeat url("/local/day.jpg") fixed'
6 | # Colors
7 | text-color: '#636B75' # Grey text
8 | text-medium-color: '#8c96a5' # Medium grey text
9 | text-light-color: '#8d967f' # Light grey text
10 | accent-color: '#b1ce82' # Blue
11 | background-color: 'rgba(247,248,249,1)' # Light grey background
12 | background-color-2: 'rgba(244,245,246,1)' # Light grey background
13 | background-card-color: 'rgba(255,255,255,0.5)' # White background
14 | border-color: '#EAEAEA' # Light grey border
15 | # Header
16 | primary-color: '#627562' # Background
17 | text-primary-color: '#FFF' # Text
18 |
19 | # Left Menu
20 | paper-listbox-background-color: 'var(--background-color)' # Background
21 | # UI
22 | paper-card-header-color: 'var(--text-color)' # Title in settings
23 | primary-background-color: 'var(--background-color)' # Background (also title background in left menu)
24 |
25 | # Card
26 | paper-card-background-color: 'var(--background-card-color)' # Background
27 | dark-primary-color: 'var(--text-color)'
28 | primary-text-color: 'var(--text-color)'
29 | paper-listbox-color: 'var(--text-color)'
30 | light-primary-color: 'var(--text-light-color)'
31 | secondary-text-color: 'var(--text-medium-color)'
32 | disabled-text-color: 'var(--text-light-color)'
33 | paper-dialog-button-color: 'var(--text-color)'
34 | secondary-background-color: 'var(--background-color-2)' # Background more info title
35 | # Icons
36 | paper-item-icon-color: 'var(--text-light-color)' # Off
37 | paper-item-icon-active-color: 'var(--accent-color)' # On
38 |
39 | # Switches
40 | paper-toggle-button-checked-button-color: '#FFF' # Knob On
41 | paper-toggle-button-checked-bar-color: '#0077FF' # Background On
42 | paper-toggle-button-unchecked-button-color: '#FFF' # Knob Off
43 | paper-toggle-button-unchecked-bar-color: 'var(--disabled-text-color)' # Background Off
44 | # Shadows
45 | shadow-elevation-2dp_-_box-shadow: 'inset 0px 0px 0px 1px var(--border-color)'
46 | shadow-elevation-4dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
47 | shadow-elevation-6dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
48 | shadow-elevation-8dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
49 | shadow-elevation-10dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
50 | shadow-elevation-12dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
51 | shadow-elevation-14dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
52 | shadow-elevation-16dp_-_box-shadow: '0px 0px 0px 3px var(--light-color)'
53 |
54 | weather-icon-clear-night: url("/hacsfiles/themes/animated-weather-card/icons/clear-night.svg")
55 | weather-icon-cloudy: url("/hacsfiles/themes/animated-weather-card/icons/cloudy.svg")
56 | weather-icon-fog: url("/hacsfiles/themes/animated-weather-card/icons/fog.svg")
57 | weather-icon-lightning: url("/hacsfiles/themes/animated-weather-card/icons/lightning.svg")
58 | weather-icon-lightning-rainy: url("/hacsfiles/themes/animated-weather-card/icons/lightning.svg")
59 | weather-icon-partlycloudy: url("/hacsfiles/themes/animated-weather-card/icons/partlycloudy.svg")
60 | weather-icon-pouring: url("/hacsfiles/themes/animated-weather-card/icons/pouring.svg")
61 | weather-icon-rainy: url("/hacsfiles/themes/animated-weather-card/icons/rainy.svg")
62 | weather-icon-hail: url("/hacsfiles/themes/animated-weather-card/icons/hail.svg")
63 | weather-icon-snowy: url("/hacsfiles/themes/animated-weather-card/icons/snowy.svg")
64 | weather-icon-snowy-rainy: url("/hacsfiles/themes/animated-weather-card/icons/hail.svg")
65 | weather-icon-sunny: url("/hacsfiles/themes/animated-weather-card/icons/sunny.svg")
66 | weather-icon-windy: url("/hacsfiles/themes/animated-weather-card/icons/cloudy.svg")
67 | weather-icon-windy-variant: url("/hacsfiles/themes/animated-weather-card/icons/partlycloudy.svg")
68 | weather-icon-exceptional: url("/hacsfiles/themes/animated-weather-card/icons/exceptional.svg")
69 |
--------------------------------------------------------------------------------
/themes/bluenight.yaml:
--------------------------------------------------------------------------------
1 | BlueNight:
2 | # MyVariables
3 | base-hue: '220' #Controls the base (and accent) color hue (0-360) | 0=Red 60=Yellow 120=Green 180=Cyan 240=Blue 300=Magenta 360=Red
4 | base-sat: '5%' #Controls the saturation of the theme (0%-100%) | 0%=Grey 100%=Full Saturation
5 | # MyVar
6 | huesat: 'var(--base-hue), var(--base-sat),'
7 | # Primary Color
8 | primary-color: '#2581ab' #hsl(var(--huesat) 50%)' #header colors and some text colors
9 | dark-primary-color: 'hsl(var(--huesat) 60%)'
10 | light-primary-color: 'hsl(var(--huesat) 30%)'
11 | accent-color: 'hsl(var(--huesat) 30%)'
12 | medium-grey-color: '#202020'
13 | # Backgrounds
14 | primary-background-color: 'hsl(var(--huesat) 16%)'
15 | secondary-background-color: 'hsl(var(--huesat) 16%)' # background behind cards
16 | paper-listbox-background-color: 'hsl(var(--huesat) 16%)'
17 | paper-card-background-color: 'hsl(var(--huesat) 12%)'
18 | paper-dialog-background-color: 'var(--paper-card-background-color)'
19 | table-row-background-color: 'hsl(var(--huesat) 12%)'
20 | table-row-alternative-background-color: 'hsl(var(--huesat) 10%)'
21 | # Divider
22 | divider-color: 'hsla(0, 0%, 0%, 0)'
23 | dark-divider-opacity: '0'
24 | light-divider-opacity: '0'
25 | dark-secondary-opacity: '1'
26 | # Text colors
27 | primary-text-color: 'hsl(var(--huesat) 90%)'
28 | text-primary-color: 'hsl(var(--huesat) 90%)'
29 | secondary-text-color: 'hsl(var(--huesat) 80%)'
30 | disabled-text-color: 'hsl(var(--huesat) 70%)'
31 | sidebar-text_-_color: 'hsl(var(--huesat) 90%)'
32 | sidebar-text-color: 'hsl(var(--huesat) 90%)'
33 | paper-card-header-color: 'hsl(var(--huesat) 90%)'
34 | paper-button-ink-color: 'hsl(var(--huesat) 50%)'
35 | # Text Adjustments
36 | paper-font-headline_-_letter-spacing: '-0.5px'
37 | paper-font-headline_-_font-weight: '400'
38 | paper-font-body1_-_font-weight: '300'
39 | # Nav Menu
40 | paper-listbox-color: 'hsl(var(--huesat) 50%)'
41 | paper-grey-50: 'hsl(var(--huesat) 50%)'
42 | paper-grey-200: 'hsl(var(--huesat) 10%)' #active menu item
43 | sidebar-icon-color: 'hsl(var(--huesat) 50%)' #iron-icon-fill-color
44 | # Paper card
45 | paper-item-icon-color: 'hsl(var(--huesat) 40%)'
46 | #paper-item-icon-active-color: 'var(--paper-item-icon-color)'
47 | paper-item-icon_-_color: 'var(--paper-item-icon-color)'
48 | paper-item-selected_-_background-color: 'hsla(0, 0%, 0%, 0.2)'
49 | paper-item-selected_-_color: 'hsl(var(--huesat) 20%)' #?
50 | paper-tabs-selection-bar-color: 'hsla(0, 0%, 0%, 0.2)'
51 | paper-tab-ink: 'hsl(var(--huesat) 70%)'
52 | paper-input-container-color: 'hsl(var(--huesat) 60%)'
53 | # Labels
54 | label-badge-red: 'var(--paper-card-background-color)'
55 | label-badge-border-color: 'var(--label-badge-red)'
56 | label-badge-background-color: 'var(--paper-card-background-color)'
57 | label-badge-text-color: 'var(--primary-text-color)'
58 | # Shadows
59 | shadow-elevation-2dp_-_box-shadow: '0px 0px 0px 0px hsl(var(--huesat) 10%)'
60 | shadow-elevation-16dp_-_box-shadow: '0px 0px 0px 0px hsl(var(--huesat) 25%)'
61 | # Switches
62 | paper-toggle-button-checked-button-color: 'hsl(var(--base-hue), 90%, 50%)'
63 | paper-toggle-button-checked-bar-color: 'hsl(var(--huesat) 25%)'
64 | paper-toggle-button-unchecked-button-color: 'hsl(var(--huesat) 25%)'
65 | paper-toggle-button-unchecked-bar-color: 'hsl(var(--huesat) 5%)'
66 | # Sliders
67 | paper-slider-knob-color: 'hsl(var(--base-hue), 90%, 50%)'
68 | paper-slider-knob-start-color: 'hsl(var(--base-hue), 80%, 25%)'
69 | paper-slider-pin-color: 'hsl(var(--base-hue), 90%, 50%)'
70 | paper-slider-active-color: 'hsl(var(--base-hue), 90%, 50%)'
71 | paper-slider-container-color: 'hsl(var(--huesat) 28%)'
72 | paper-slider-secondary-color: 'hsl(var(--huesat) 90%)'
73 | paper-slider-disabled-active-color: 'hsl(var(--base-hue), 80%, 25%)'
74 | paper-slider-disabled-secondary-color: 'hsl(var(--base-hue), 80%, 25%)'
75 | paper-dialog-color: 'hsl(var(--base-hue), 20%, 80%)'
76 |
77 | #Changes to fix history/logbook menus
78 | lumo-primary-text-color: 'var(--primary-color)'
79 | lumo-secondary-text-color: 'var(--primary-color)'
80 | lumo-primary-color: 'var(--primary-color)'
81 | lumo-primary-color-50pct: 'rgba(37,129,172, .5)'
82 | lumo-primary-color-10pct: 'rgba(37,129,172, .1)'
83 | #Calendar day numbers
84 | lumo-body-text-color: 'var(--primary-text-color)'
85 | #Calendar/Date-Picker Background
86 | lumo-base-color: 'var(--medium-grey-color)'
87 | #Month/Year header
88 | lumo-header-text-color: 'var(--lumo-body-text-color)'
89 | #DayOfWeek Header
90 | lumo-tertiary-text-color: 'var(--lumo-body-text-color)'
91 | # Background of date in History/Logbook that you clcim to view date-picker
92 | lumo-shade: 'var(--medium-grey-color)'
93 | lumo-shade-90pct: 'rgba(41, 41, 41, .9)'
94 | lumo-shade-80pct: 'rgba(41, 41, 41, .8)'
95 | lumo-shade-70pct: 'rgba(41, 41, 41, .7)'
96 | lumo-shade-60pct: 'rgba(41, 41, 41, .6)'
97 | lumo-shade-50pct: 'rgba(41, 41, 41, .5)'
98 | lumo-shade-40pct: 'rgba(41, 41, 41, .4)'
99 | lumo-shade-30pct: 'rgba(41, 41, 41, .3)'
100 | lumo-shade-20pct: 'rgba(41, 41, 41, .2)'
101 | lumo-shade-10pct: 'rgba(41, 41, 41, .1)'
102 | lumo-shade-5pct: 'rgba(41, 41, 41, .05)'
103 | #Removes Gradient in Calendar/Date-Picker and Drop-down lists
104 | lumo-tint-5pct: 'var(--darker-grey-color)'
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/sunny.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/dark.yaml:
--------------------------------------------------------------------------------
1 | dark:
2 | # Background image
3 | lovelace-background: 'center / cover no-repeat url("/local/night.jpg") fixed'
4 |
5 | # Colors
6 | text-color: '#DADADB' # Grey text
7 | text-medium-light-color: '#A0A2A8' # Medium-light grey text
8 | text-medium-color: '#80828A' # Medium grey text
9 | text-dark-color: '#6A6B74' # Dark grey text
10 | accent-color: '#008bef' # Blue
11 | accent-medium-color: '#2484C9' # Decent blue
12 | background-color: '#3b4049' # Dark grey background
13 | background-color-2: '#484E59' # Light grey background
14 | background-card-color: '#434952' # Grey background
15 | border-color: '#383C46' # Grey border
16 |
17 | # Header
18 | app-header-background-color: '#363941' # Background color
19 |
20 | # Text
21 | primary-color: 'var(--text-color)'
22 | text-primary-color: 'var(--text-color)'
23 |
24 | # Left Menu
25 | paper-listbox-background-color: 'var(--background-color)' # Background
26 | sidebar-icon-color: 'var(--text-medium-color)' # icons
27 | sidebar-selected-icon-color: 'var(--text-medium-light-color)' # Selected row icon and background (15%)
28 | sidebar-selected-text-color: 'var(--text-color)' # Selected row label
29 |
30 | # UI
31 | paper-card-header-color: 'var(--text-color)' # Title in settings
32 | primary-background-color: 'var(--background-color)' # Background (also title background in left menu)
33 | mdc-theme-primary: 'var(--accent-medium-color)' # Action Buttons (save, restart etc.)
34 | card-background-color: 'var(--background-card-color)' # Entity Registry Background
35 |
36 | # Card
37 | paper-card-background-color: 'var(--background-card-color)' # Background
38 | dark-primary-color: 'var(--text-color)'
39 | primary-text-color: 'var(--text-color)'
40 | paper-listbox-color: 'var(--text-color)'
41 | light-primary-color: 'var(--text-dark-color)'
42 | secondary-text-color: 'var(--text-medium-color)'
43 | disabled-text-color: 'var(--text-dark-color)'
44 | paper-dialog-button-color: 'var(--text-color)'
45 | secondary-background-color: 'var(--background-color-2)' # Background more info title
46 |
47 | # Icons
48 | paper-item-icon-color: 'var(--text-dark-color)' # Off
49 | paper-item-icon-active-color: 'var(--accent-color)' # On
50 |
51 | # Switches
52 | switch-checked-button-color: 'var(--text-medium-light-color)' # Knob On
53 | switch-unchecked-button-color: 'var(--text-medium-light-color)' # Knob Off
54 | switch-checked-track-color: '#009FFF' # Background On
55 | switch-unchecked-track-color: '#767682' # Background Off
56 |
57 | # Slider
58 | paper-slider-active-color: 'var(--accent-color)' # Line On
59 | paper-slider-knob-color: 'var(--text-medium-light-color)' # Knob On
60 | paper-slider-container-color: 'var(--text-dark-color)' # Line Off
61 | paper-slider-knob-start-color: 'var(--text-medium-light-color)' # Knob Off
62 |
63 | # Badges
64 | label-badge-text-color: 'var(--text-color)'
65 | label-badge-background-color: 'rgba(54, 57, 65, 0.6)'
66 |
67 | # Shadows
68 | ha-card-box-shadow: 'inset 0px 0px 0px 1px var(--border-color)'
69 |
70 | # HACS
71 | hacs-badge-color: 'var(--accent-color)' # New Badge
72 | hacs-status-installed: 'var(--text-color)' # Installed Icon
73 | hacs-status-pending-restart: 'var(--text-dark-color)' # Restart Icon
74 | hacs-status-pending-update: 'var(--accent-color)'
75 | # Animated weather icons
76 | weather-icon-clear-night: url("/hacsfiles/themes/animated-weather-card/icons/clear-night.svg")
77 | weather-icon-cloudy: url("/hacsfiles/themes/animated-weather-card/icons/cloudy.svg")
78 | weather-icon-fog: url("/hacsfiles/themes/animated-weather-card/icons/fog.svg")
79 | weather-icon-lightning: url("/hacsfiles/themes/animated-weather-card/icons/lightning.svg")
80 | weather-icon-lightning-rainy: url("/hacsfiles/themes/animated-weather-card/icons/lightning.svg")
81 | weather-icon-partlycloudy: url("/hacsfiles/themes/animated-weather-card/icons/partlycloudy.svg")
82 | weather-icon-pouring: url("/hacsfiles/themes/animated-weather-card/icons/pouring.svg")
83 | weather-icon-rainy: url("/hacsfiles/themes/animated-weather-card/icons/rainy.svg")
84 | weather-icon-hail: url("/hacsfiles/themes/animated-weather-card/icons/hail.svg")
85 | weather-icon-snowy: url("/hacsfiles/themes/animated-weather-card/icons/snowy.svg")
86 | weather-icon-snowy-rainy: url("/hacsfiles/themes/animated-weather-card/icons/hail.svg")
87 | weather-icon-sunny: url("/hacsfiles/themes/animated-weather-card/icons/sunny.svg")
88 | weather-icon-windy: url("/hacsfiles/themes/animated-weather-card/icons/cloudy.svg")
89 | weather-icon-windy-variant: url("/hacsfiles/themes/animated-weather-card/icons/partlycloudy.svg")
90 | weather-icon-exceptional: url("/hacsfiles/themes/animated-weather-card/icons/exceptional.svg")
91 |
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/lightning.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/partlycloudy.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/configuration.yaml:
--------------------------------------------------------------------------------
1 | homeassistant:
2 | latitude: !secret lat
3 | longitude: !secret long
4 | elevation: 430
5 | packages: !include_dir_named packages
6 | unit_system: metric
7 | time_zone: Europe/Amsterdam
8 | customize: !include customize.yaml
9 | auth_providers:
10 | - type: homeassistant
11 | allowlist_external_dirs:
12 | - /config/video
13 |
14 | default_config:
15 |
16 | recorder:
17 | db_url: !secret database
18 | purge_keep_days: 7
19 |
20 | history:
21 | exclude:
22 | domains:
23 | - automation
24 | - weblink
25 |
26 | stream:
27 | system_health:
28 |
29 | zone:
30 | - name: Home
31 | latitude: !secret lat
32 | longitude: !secret long
33 | radius: 27
34 | icon: mdi:home
35 | frontend:
36 | themes: !include_dir_merge_named themes
37 |
38 | discovery:
39 |
40 | notify:
41 | - name: telegram_bot
42 | platform: telegram
43 | chat_id: !secret telegram_chat_id
44 |
45 | telegram_bot:
46 | - platform: polling
47 | api_key: !secret telegram_key
48 | allowed_chat_ids:
49 | - !secret telegram_id
50 | - !secret telegram_group_id
51 |
52 | scene: !include scenes.yaml
53 |
54 | wake_on_lan:
55 |
56 | rest_command: !include includes/rest_command.yaml
57 |
58 | sun:
59 | logbook:
60 | influxdb:
61 | host: 192.168.1.80
62 |
63 | #nest:
64 | # client_id: !secret nest_id
65 | # client_secret: !secret nest_secret
66 |
67 | evohome:
68 | username: !secret honeywell_user
69 | password: !secret honeywell_pass
70 | scan_interval: 600
71 |
72 | #rflink:
73 | # port: /dev/ttyUSB0
74 |
75 | map:
76 |
77 | tts:
78 | - platform: google_translate
79 | service_name: google_say
80 | base_url: http://192.168.1.79:8123
81 | - platform: microsoft
82 | api_key: !secret azure_tts_api
83 | region: westeurope
84 | language: nl-nl
85 | type: ColetteNeural
86 |
87 | vacuum:
88 | - platform: xiaomi_miio
89 | name: miep
90 | host: 192.168.1.34
91 | token: !secret miiotoken
92 |
93 | octoprint:
94 | host: 192.168.1.132
95 | port: 5000
96 | api_key: !secret octo-api
97 |
98 | ffmpeg:
99 | lovelace:
100 |
101 | input_select:
102 | sean_room_location:
103 | name: Pim's Room Location
104 | options:
105 | - Bathroom
106 | - Office
107 | - Away
108 | - Home
109 |
110 | input_number:
111 | stepper_control:
112 | name: Stepper Control
113 | initial: 0
114 | min: -1000
115 | max: 1000
116 | step: 1
117 | mode: slider
118 | falcon_animation_speed:
119 | name: Falcon Animation Speed
120 | initial: 150
121 | min: 1
122 | max: 150
123 | step: 10
124 |
125 |
126 | kossel_animation_speed:
127 | name: Kossel Animation Speed
128 | initial: 150
129 | min: 1
130 | max: 150
131 | step: 10
132 |
133 | webostv:
134 | host: 192.168.1.33
135 | name: LG livingroom
136 |
137 | cover: !include_dir_merge_list covers
138 |
139 | camera: !include_dir_merge_list camera
140 |
141 | image_processing:
142 | - platform: tensorflow
143 | scan_interval: 10000
144 | source:
145 | # - entity_id: camera.voordeur
146 | - entity_id: camera.zijdeur
147 | file_out:
148 | - "/config/video/{{ camera_entity.split('.')[1] }}_latest.jpg"
149 | # - "/config/video/{{ camera_entity.split('.')[1] }}_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
150 | model:
151 | graph: "/config/tensorflow/models/efficientdet_d0_coco17_tpu-32/"
152 | # categories:
153 | # - person
154 | # - cat
155 | # - car
156 | # - dog
157 | - platform: tensorflow
158 | scan_interval: 10000
159 | source:
160 | # - entity_id: camera.voordeur
161 | - entity_id: camera.schuur
162 | file_out:
163 | - "/config/video/{{ camera_entity.split('.')[1] }}_latest.jpg"
164 | # - "/config/video/{{ camera_entity.split('.')[1] }}_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
165 | model:
166 | graph: "/config/tensorflow/models/efficientdet_d0_coco17_tpu-32/"
167 | # categories:
168 | # - person
169 | # - cat
170 | # - car
171 | # - dog
172 | area:
173 | top: 0.1
174 | - platform: tensorflow
175 | scan_interval: 10000
176 | source:
177 | - entity_id: camera.voordeur
178 | file_out:
179 | - "/config/video/{{ camera_entity.split('.')[1] }}_latest.jpg"
180 | # - "/config/video/{{ camera_entity.split('.')[1] }}_{{ now().strftime('%Y%m%d_%H%M%S') }}.jpg"
181 | model:
182 | graph: "/config/tensorflow/models/efficientdet_d0_coco17_tpu-32/"
183 | # categories:
184 | # - person
185 | # - cat
186 | # - car
187 | # - dog
188 | area:
189 | top: 0.4
190 |
191 | surepetcare:
192 | username: !secret surepet_user
193 | password: !secret surepet_pass
194 | # household_id: !secret surepet_household
195 | flaps: [209692]
196 | pets: [52825]
197 |
198 | binary_sensor:
199 | - platform: stookalert
200 | province: Gelderland
201 |
202 | # One entry per sensor node to understand when the device is online/offline and see device metadata such as IP address and settings values
203 | - platform: mqtt
204 | name: ESP32 A
205 | state_topic: "presence_nodes/esp32_office_room_presence"
206 | json_attributes_topic: "presence_nodes/esp32_office_room_presence/tele"
207 | payload_on: "CONNECTED"
208 | payload_off: "DISCONNECTED"
209 | device_class: connectivity
210 |
211 | tesla:
212 | username: !secret tesla_username
213 | password: !secret tesla_password
214 |
215 | light: !include_dir_merge_list lights
216 |
217 | sensor: !include_dir_merge_list sensors
218 |
219 | input_boolean:
220 | bedtime:
221 | name: it's bedtime
222 | initial: off
223 | icon: mdi:bed
224 | pim_present:
225 | name: Pim Presence
226 | initial: on
227 |
228 | spotify:
229 | client_id: !secret spotify_id
230 | client_secret: !secret spotify_secret
231 |
232 | weather:
233 | # - platform: openweathermap
234 | #api_key: !secret openweather
235 | #mode: freedaily
236 |
237 | alarm_control_panel:
238 | - platform: manual_mqtt
239 | state_topic: !secret alarm_state
240 | command_topic: !secret alarm_command
241 | name: Home Alarm
242 | code: !secret alarm_pin
243 | pending_time: 20
244 | delay_time: 20
245 | trigger_time: 120
246 | disarmed:
247 | trigger_time: 0
248 | armed_home:
249 | pending_time: 0
250 | delay_time: 0
251 |
252 | #logger:
253 | # default: error
254 | # logs:
255 | # homeassistant.components.image_processing: debug
256 |
257 | group: !include groups.yaml
258 | automation: !include automations.yaml
259 |
260 | script: !include scripts.yaml
261 |
--------------------------------------------------------------------------------
/ui-lovelace.yaml:
--------------------------------------------------------------------------------
1 | resources:
2 | - type: js
3 | url: /local/monster-card.js
4 | - type: module
5 | url: /local/mini-media-player-bundle.js?v=0.9.5
6 | title: Home
7 | views:
8 | - cards:
9 | - card:
10 | title: Motion Detected
11 | type: entities
12 | entities:
13 | - entity: binary_sensor.door_window_sensor_158d0002133b59
14 | - entity: binary_sensor.front_door_camera_online
15 | - entity: binary_sensor.motion_sensor_158d0001a92381
16 | - entity: binary_sensor.motion_sensor_158d0001e55662
17 | - entity: binary_sensor.octoprint_printing
18 | filter:
19 | include:
20 | - domain: binary_sensor
21 | state: 'on'
22 | show_empty: true
23 | type: 'custom:monster-card'
24 | - card:
25 | title: Lights On
26 | type: entities
27 | entities:
28 | - entity: light.hallway_3
29 | - entity: light.kitchen1
30 | - entity: light.kitchen2
31 | - entity: light.rode_lamp
32 | - entity: light.tradfri_bulb_e27_w_opal_1000lm_2
33 | - entity: light.tradfri_bulb_gu10_w_400lm_11
34 | - entity: light.tradfri_bulb_gu10_w_400lm_12
35 | filter:
36 | include:
37 | - domain: light
38 | state: 'on'
39 | show_empty: true
40 | type: 'custom:monster-card'
41 | - card:
42 | title: Currently playing
43 | type: entities
44 | entities:
45 | - entity: media_player.livingroom_
46 | filter:
47 | exclude:
48 | - entity_id: media_player.spotify
49 | include:
50 | - domain: media_player
51 | state: playing
52 | show_empty: true
53 | type: 'custom:monster-card'
54 | show_header_toggle: false
55 | - card:
56 | title: Climate
57 | type: entities
58 | entities:
59 | - entity: climate.kleine_kamer
60 | - entity: climate.slaapkamer
61 | - entity: climate.voorkamer
62 | - entity: climate.woonkamer
63 | filter:
64 | include:
65 | - domain: climate
66 | type: 'custom:monster-card'
67 | - cards:
68 | - entity: camera.voordeur
69 | show_name: false
70 | show_state: false
71 | type: picture-entity
72 | - entity: camera.zijdeur
73 | show_name: false
74 | show_state: false
75 | type: picture-entity
76 | - entity: camera.front_door
77 | show_name: false
78 | show_state: false
79 | type: picture-entity
80 | type: vertical-stack
81 | - entities:
82 | - entity: media_player.bedroom_speaker
83 | group: true
84 | type: 'custom:mini-media-player'
85 | - entity: media_player.living_room_speaker
86 | group: true
87 | type: 'custom:mini-media-player'
88 | - entity: media_player.old_speaker
89 | group: true
90 | type: 'custom:mini-media-player'
91 | - entity: media_player.upstairs_speaker
92 | group: true
93 | type: 'custom:mini-media-player'
94 | - entity: media_player.googlehomehub2919
95 | group: true
96 | title: Media Players
97 | type: entities
98 | - entities:
99 | - artwork: cover
100 | entity: media_player.livingroom_
101 | group: true
102 | type: 'custom:mini-media-player'
103 | - artwork: cover
104 | entity: media_player.party
105 | group: true
106 | power_color: true
107 | type: 'custom:mini-media-player'
108 | - artwork: cover
109 | entity: media_player.upstairs
110 | group: true
111 | type: 'custom:mini-media-player'
112 | title: Media Player Groups
113 | type: entities
114 | - artwork: cover
115 | entity: media_player.spotify
116 | media_buttons:
117 | - name: Easy on Sunday
118 | type: playlist
119 | url: 'spotify:user:spotify:playlist:37i9dQZF1DWZpGSuzrdTXg'
120 | - name: Joost New Releases
121 | type: playlist
122 | url: 'spotify:user:foost:playlist:7JLymXyQVjbeupuaapu95L'
123 | - name: De Yaylist
124 | type: playlist
125 | url: 'spotify:user:faberyayo:playlist:4I0NnAhaMaPcynq0xbLdyL'
126 | name: Spotify player
127 | show_source: full
128 | type: 'custom:mini-media-player'
129 | title: Home
130 | - cards:
131 | - entities:
132 | - sensor.octoprint_actual_bed_temp
133 | - sensor.octoprint_actual_tool0_temp
134 | - sensor.octoprint_current_state
135 | - sensor.octoprint_job_percentage
136 | - sensor.octoprint_target_bed_temp
137 | - sensor.octoprint_target_tool0_temp
138 | - sensor.octoprint_time_elapsed_format
139 | - sensor.octoprint_time_remaining_format
140 | type: entities
141 | - entity: camera.ffmpeg
142 | show_name: false
143 | show_state: false
144 | type: picture-entity
145 | - entities: []
146 | show_header_toggle: true
147 | title: 3d printer light
148 | type: entities
149 | icon: 'mdi:printer-3d'
150 | title: 3d printer
151 | - cards:
152 | - type: entities
153 | entities:
154 | - entity: light.tradfri_bulb_e27_w_opal_1000lm_2
155 | - entity: light.window_light
156 | - entity: light.rode_lamp
157 | show_header_toggle: true
158 | title: Livingroom_group
159 | - type: entities
160 | entities:
161 | - entity: cover.livingroom_roller
162 | title: Blinds
163 | title: Livingroom
164 | - badges: []
165 | cards:
166 | - entities:
167 | - entity: light.bathroom1
168 | - entity: light.bathroom2
169 | - entity: light.bathroom3
170 | show_header_toggle: true
171 | title: Bathroom lights
172 | type: entities
173 | icon: ''
174 | title: Bathroom
175 | - cards:
176 | - entities:
177 | - entity: light.kitchen1
178 | - entity: light.kitchen2
179 | - entity: light.kitchen_ledstrip
180 | show_header_toggle: true
181 | title: Kitchen
182 | type: entities
183 | title: Kitchen
184 | - cards:
185 | - type: entities
186 | entities:
187 | - entity: cover.office_roller
188 | title: Blinds
189 | show_header_toggle: false
190 | - type: entities
191 | entities:
192 | - entity: light.falcon_light
193 | - entity: light.officeleft
194 | - entity: light.officeright
195 | badges: []
196 | title: Office
197 | icon: ''
198 |
--------------------------------------------------------------------------------
/themes.yaml:
--------------------------------------------------------------------------------
1 | slate:
2 | # Rounded borders
3 | ha-card-border-radius: '20px'
4 | # Background image
5 | background-image: 'center / cover no-repeat url("/local/night.jpg") fixed'
6 | # Main colors
7 | primary-color: '#2980b9'
8 | accent-color: '#b58e31'
9 | dark-primary-color: '#2980b9'
10 | light-primary-color: '#2980b9'
11 | # Text colors
12 | primary-text-color: '#FFFFFF'
13 | text-primary-color: 'var(--primary-text-color)'
14 | secondary-text-color: '#b58e31'
15 | disabled-text-color: '#777777'
16 | label-badge-border-color: 'green'
17 | # Sidebar
18 | sidebar-icon-color: '#777777'
19 | # Background colors
20 | primary-background-color: '#222222'
21 | secondary-background-color: '#222222'
22 | divider-color: 'rgba(0, 0, 0, .12)'
23 | table-row-background-color: '#292929'
24 | table-row-alternative-background-color: '#292929'
25 | # Nav Menu
26 | paper-listbox-color: '#777777'
27 | paper-listbox-background-color: '#141414'
28 | paper-grey-50: 'var(--primary-text-color)'
29 | paper-grey-200: '#222222'
30 | # Paper card
31 | paper-card-header-color: '#2980b9'
32 | paper-card-background-color: '#292929'
33 | paper-dialog-background-color: '#292929'
34 | paper-item-icon-color: 'var(--primary-text-color)'
35 | paper-item-icon-active-color: '#b58e31'
36 | paper-item-icon_-_color: 'green'
37 | paper-item-selected_-_background-color: '#292929'
38 | paper-tabs-selection-bar-color: 'green'
39 | # Labels
40 | label-badge-red: 'var(--primary-color)'
41 | label-badge-text-color: 'var(--primary-text-color)'
42 | label-badge-background-color: '#222222'
43 | # Switches
44 | paper-toggle-button-checked-button-color: '#2980b9'
45 | paper-toggle-button-checked-bar-color: '#2980b9'
46 | paper-toggle-button-checked-ink-color: '#2980b9'
47 | paper-toggle-button-unchecked-button-color: 'var(--disabled-text-color)'
48 | paper-toggle-button-unchecked-bar-color: 'var(--disabled-text-color)'
49 | paper-toggle-button-unchecked-ink-color: 'var(--disabled-text-color)'
50 | # Sliders
51 | paper-slider-knob-color: '#2980b9'
52 | paper-slider-knob-start-color: '#2980b9'
53 | paper-slider-pin-color: '#2980b9'
54 | paper-slider-active-color: '#2980b9'
55 | paper-slider-container-color: 'linear-gradient(var(--primary-background-color), var(--secondary-background-color)) no-repeat'
56 | paper-slider-secondary-color: 'var(--secondary-background-color)'
57 | paper-slider-disabled-active-color: 'var(--disabled-text-color)'
58 | paper-slider-disabled-secondary-color: 'var(--disabled-text-color)'
59 | # Google colors
60 | google-red-500: '#b58e31'
61 | google-green-500: '#2980b9'
62 | #Changes to fix history/logbook menus
63 | lumo-primary-text-color: '#2980b9'
64 | lumo-secondary-text-color: '#2980b9'
65 | lumo-primary-color: '#2980b9'
66 | #Calendar day numbers
67 | lumo-body-text-color: '#b58e31'
68 | #Calendar/Date-Picker Background
69 | lumo-base-color: '#222222'
70 | #Month/Year header
71 | lumo-header-text-color: 'var(--lumo-body-text-color)'
72 | #DayOfWeek Header
73 | lumo-tertiary-text-color: 'var(--lumo-body-text-color)'
74 | lumo-shade: '#222222'
75 | lumo-shade-90pct: 'rgba(34, 34, 34, .9)'
76 | lumo-shade-80pct: 'rgba(34, 34, 34, .8)'
77 | lumo-shade-70pct: 'rgba(34, 34, 34, .7)'
78 | lumo-shade-60pct: 'rgba(34, 34, 34, .6)'
79 | lumo-shade-50pct: 'rgba(34, 34, 34, .5)'
80 | lumo-shade-40pct: 'rgba(34, 34, 34, .4)'
81 | lumo-shade-30pct: 'rgba(34, 34, 34, .3)'
82 | lumo-shade-20pct: 'rgba(34, 34, 34, .2)'
83 | lumo-shade-10pct: 'rgba(34, 34, 34, .1)'
84 | lumo-shade-5pct: 'rgba(34, 34, 34, .05)'
85 | lumo-tint-5pct: '#222222'
86 |
87 | rounded:
88 | # Rounded borders
89 | ha-card-border-radius: '20px'
90 | # Background image
91 | background-image: 'center / cover no-repeat url("/local/day.jpg") fixed'
92 | background-card-color: 'rgba(255,255,255,0.3)'
93 | paper-card-background-color: 'var(--background-card-color)'
94 |
95 | clear:
96 | # Rounded borders
97 | ha-card-border-radius: '20px'
98 | # Background image
99 | background-image: 'center / cover no-repeat url("/local/day.jpg") fixed'
100 | # Colors
101 | text-color: '#636B75' # Grey text
102 | text-medium-color: '#8c96a5' # Medium grey text
103 | text-light-color: '#8d967f' # Light grey text
104 | accent-color: '#b1ce82' # Blue
105 | background-color: 'rgba(247,248,249,1)' # Light grey background
106 | background-color-2: 'rgba(244,245,246,1)' # Light grey background
107 | background-card-color: 'rgba(255,255,255,0.5)' # White background
108 | border-color: '#EAEAEA' # Light grey border
109 | # Header
110 | primary-color: '#627562' # Background
111 | text-primary-color: '#FFF' # Text
112 |
113 | # Left Menu
114 | paper-listbox-background-color: 'var(--background-color)' # Background
115 | # UI
116 | paper-card-header-color: 'var(--text-color)' # Title in settings
117 | primary-background-color: 'var(--background-color)' # Background (also title background in left menu)
118 |
119 | # Card
120 | paper-card-background-color: 'var(--background-card-color)' # Background
121 | dark-primary-color: 'var(--text-color)'
122 | primary-text-color: 'var(--text-color)'
123 | paper-listbox-color: 'var(--text-color)'
124 | light-primary-color: 'var(--text-light-color)'
125 | secondary-text-color: 'var(--text-medium-color)'
126 | disabled-text-color: 'var(--text-light-color)'
127 | paper-dialog-button-color: 'var(--text-color)'
128 | secondary-background-color: 'var(--background-color-2)' # Background more info title
129 | # Icons
130 | paper-item-icon-color: 'var(--text-light-color)' # Off
131 | paper-item-icon-active-color: 'var(--accent-color)' # On
132 |
133 | # Switches
134 | paper-toggle-button-checked-button-color: '#FFF' # Knob On
135 | paper-toggle-button-checked-bar-color: '#0077FF' # Background On
136 | paper-toggle-button-unchecked-button-color: '#FFF' # Knob Off
137 | paper-toggle-button-unchecked-bar-color: 'var(--disabled-text-color)' # Background Off
138 | # Shadows
139 | shadow-elevation-2dp_-_box-shadow: 'inset 0px 0px 0px 1px var(--border-color)'
140 | shadow-elevation-4dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
141 | shadow-elevation-6dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
142 | shadow-elevation-8dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
143 | shadow-elevation-10dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
144 | shadow-elevation-12dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
145 | shadow-elevation-14dp_-_box-shadow: 'var(--shadow-elevation-2dp_-_box-shadow)'
146 | shadow-elevation-16dp_-_box-shadow: '0px 0px 0px 3px var(--light-color)'
147 |
--------------------------------------------------------------------------------
/themes/animated-weather-card/icons/snowy.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright [yyyy] [name of copyright owner]
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/automations/automations.yaml:
--------------------------------------------------------------------------------
1 | - alias: Falcon Animation Speed
2 | initial_state: true
3 | hide_entity: false
4 | trigger:
5 | - platform: state
6 | entity_id: input_slider.falcon_animation_speed
7 | action:
8 | - service: mqtt.publish
9 | data_template:
10 | topic: light/falcon/set
11 | payload: '{"transition":{{ trigger.to_state.state | int }}}'
12 | id: ea5948cf7c4e44c0a5399d18f84421cf
13 | - id: '1519381563349'
14 | alias: Doorbell(Nighttime)
15 | trigger:
16 | - entity_id: binary_sensor.door_window_sensor_158d0002254184
17 | from: 'on'
18 | platform: state
19 | to: 'off'
20 | condition:
21 | - condition: state
22 | entity_id: sun.sun
23 | state: below_horizon
24 | action:
25 | - data:
26 | gw_mac: 78:11:DC:B2:77:10
27 | ringtone_id: '10'
28 | service: xiaomi_aqara.play_ringtone
29 | - data:
30 | message: Er staat iemand voor de deur
31 | title: Deurbel
32 | service: notify.ios_iphone_pim
33 | - data:
34 | message: Er staat iemand voor de deur
35 | title: Deurbel
36 | service: notify.pushbullet_2
37 | - data:
38 | entity_id: media_player.googlehome0631
39 | media_content_id: http://www.orangefreesounds.com/wp-content/uploads/2017/07/Ding-dong-chime.mp3
40 | media_content_type: music
41 | service: media_player.play_media
42 | - id: '1519385245869'
43 | alias: Doorbell(Daytime)
44 | trigger:
45 | - entity_id: binary_sensor.door_window_sensor_158d0002254184
46 | from: 'on'
47 | platform: state
48 | to: 'off'
49 | condition:
50 | - condition: state
51 | entity_id: sun.sun
52 | state: above_horizon
53 | action:
54 | - data:
55 | message: Er staat iemand voor de deur
56 | title: Deurbel
57 | service: notify.ios_iphone_pim
58 | - id: '1519398438205'
59 | alias: Old speaker lower volume
60 | trigger:
61 | - event_data:
62 | click_type: single
63 | event_id: binary_sensor.switch_158d000210ec53
64 | event_type: click
65 | platform: event
66 | condition: []
67 | action:
68 | - data:
69 | entity_id: media_player.old_speaker
70 | service: media_player.volume_down
71 | - action:
72 | - data:
73 | entity_id: media_player.old_speaker
74 | service: media_player.volume_up
75 | alias: Old speaker Higher volume
76 | condition: []
77 | id: '1519747883360'
78 | trigger:
79 | - event_data:
80 | click_type: double
81 | event_id: binary_sensor.switch_158d000210ec53
82 | event_type: click
83 | platform: event
84 | - id: '1519760782392'
85 | alias: Hallway motion
86 | trigger:
87 | - entity_id: binary_sensor.motion_sensor_158d0001a92381
88 | from: 'off'
89 | platform: state
90 | to: 'on'
91 | condition:
92 | - condition: state
93 | entity_id: sun.sun
94 | state: below_horizon
95 | action:
96 | - data:
97 | entity_id: group.hallway
98 | service: light.turn_on
99 | - action:
100 | - data:
101 | entity_id: group.hallway
102 | service: light.turn_off
103 | alias: Hallway no motion
104 | condition:
105 | - condition: state
106 | entity_id: sun.sun
107 | state: below_horizon
108 | id: '1519760817306'
109 | trigger:
110 | - entity_id: binary_sensor.motion_sensor_158d0001a92381
111 | from: 'on'
112 | platform: state
113 | to: 'off'
114 | - action:
115 | - data:
116 | entity_id: group.livingroom
117 | service: light.turn_on
118 | alias: Hallway Morning
119 | condition:
120 | - condition: state
121 | entity_id: sun.sun
122 | state: below_horizon
123 | - after: '6:00'
124 | before: '8:00'
125 | condition: time
126 | id: '1520200724100'
127 | trigger:
128 | - entity_id: binary_sensor.motion_sensor_158d0001a92381
129 | from: 'off'
130 | platform: state
131 | to: 'on'
132 | - action:
133 | - data:
134 | entity_id: light.frondoor
135 | service: light.turn_on
136 | alias: Frontdoor
137 | condition: []
138 | trigger:
139 | - entity_id: sun.sun
140 | from: above_horizon
141 | platform: state
142 | to: below_horizon
143 | id: '15202007345100'
144 | - action:
145 | - data:
146 | entity_id: light.sonoff_basement
147 | service: light.turn_on
148 | alias: Basement light on
149 | condition: []
150 | id: '1520251495193'
151 | trigger:
152 | - entity_id: binary_sensor.door_window_sensor_158d0002254443
153 | from: 'off'
154 | platform: state
155 | to: 'on'
156 | - action:
157 | - data:
158 | entity_id: light.sonoff_basement
159 | service: light.turn_off
160 | alias: Basement light off
161 | condition: []
162 | id: '1520251539017'
163 | trigger:
164 | - entity_id: binary_sensor.door_window_sensor_158d0002254443
165 | from: 'on'
166 | platform: state
167 | to: 'off'
168 | - action:
169 | - data:
170 | entity_id: group.kitchenspots
171 | service: light.turn_on
172 | alias: Kitchen motion
173 | condition:
174 | - condition: state
175 | entity_id: sun.sun
176 | state: below_horizon
177 | id: '1528109786675'
178 | trigger:
179 | - entity_id: binary_sensor.motion_sensor_158d0001e55662
180 | from: 'off'
181 | platform: state
182 | to: 'on'
183 | - action:
184 | - data:
185 | entity_id: group.kitchenspots
186 | service: light.turn_off
187 | alias: Kitchen no_motion
188 | condition:
189 | - condition: state
190 | entity_id: sun.sun
191 | state: below_horizon
192 | id: '1528109853713'
193 | trigger:
194 | - entity_id: binary_sensor.motion_sensor_158d0001e55662
195 | from: 'on'
196 | platform: state
197 | to: 'off'
198 | - id: '1528823416468'
199 | alias: Upstairs Motion
200 | trigger:
201 | - entity_id: binary_sensor.motion_sensor_158d0001e56350
202 | from: 'off'
203 | platform: state
204 | to: 'on'
205 | condition:
206 | - condition: state
207 | entity_id: sun.sun
208 | state: below_horizon
209 | - before: '23:00'
210 | condition: time
211 | action:
212 | - data:
213 | entity_id: group.upstairs_spots
214 | service: light.turn_on
215 | - action:
216 | - data:
217 | entity_id: group.upstairs_spots
218 | service: light.turn_off
219 | alias: Upstairs no motion
220 | condition:
221 | - condition: state
222 | entity_id: sun.sun
223 | state: below_horizon
224 | id: '1528823457733'
225 | trigger:
226 | - entity_id: binary_sensor.motion_sensor_158d0001e56350
227 | from: 'on'
228 | platform: state
229 | to: 'off'
230 | - action:
231 | - data:
232 | entity_id: group.bathroom_group
233 | service: light.toggle
234 | alias: Badkamer linkerknop
235 | condition: []
236 | id: '1529253871562'
237 | trigger:
238 | - event_data:
239 | entity_id: binary_sensor.wall_switch_left_158d0001e06eb2
240 | event_type: single
241 | event_type: xiaomi_aqara.click
242 | platform: event
243 | - id: '1542658779581'
244 | alias: Upstairs Xiaomi
245 | trigger:
246 | - entity_id: binary_sensor.motion_sensor_158d0001e56350
247 | from: 'off'
248 | platform: state
249 | to: 'on'
250 | condition:
251 | - after: '23:00'
252 | before: 04:00
253 | condition: time
254 | action:
255 | - data:
256 | brightness: '120'
257 | color_name: red
258 | entity_id: light.gateway_light_7811dcb27710
259 | service: light.turn_on
260 | - id: '1542658864921'
261 | alias: Upstairs Xiaomi off
262 | trigger:
263 | - entity_id: binary_sensor.motion_sensor_158d0001e56350
264 | from: 'on'
265 | platform: state
266 | to: 'off'
267 | condition:
268 | - after: sunset
269 | condition: sun
270 | action:
271 | - data:
272 | entity_id: light.gateway_light_7811dcb27710
273 | service: light.turn_off
274 | - id: '1544304881668'
275 | alias: Cover button left(downstairs)
276 | trigger:
277 | - event_data:
278 | entity_id: binary_sensor.wall_switch_left_158d0001e0a3f6
279 | event_type: single
280 | event_type: xiaomi_aqara.click
281 | platform: event
282 | condition: []
283 | action:
284 | - alias: ''
285 | data:
286 | entity_id: cover.livingroom_roller
287 | service: cover.close_cover
288 | - id: '1544305094328'
289 | alias: Rolluiken omhoog
290 | trigger:
291 | - at: 07:00
292 | platform: time
293 | condition: []
294 | action:
295 | - data:
296 | entity_id: group.all_covers
297 | service: cover.open_cover
298 | - id: '1546196514195'
299 | alias: Octoprint-led
300 | trigger:
301 | - entity_id: binary_sensor.octoprint_printing
302 | from: 'off'
303 | platform: state
304 | to: 'on'
305 | condition: []
306 | action:
307 | - data:
308 | entity_id: light.kossel_light_2
309 | service: light.turn_on
310 | - id: '1546196538451'
311 | alias: octo-print-off
312 | trigger:
313 | - entity_id: binary_sensor.octoprint_printing
314 | from: 'on'
315 | platform: state
316 | to: 'off'
317 | condition: []
318 | action:
319 | - data:
320 | entity_id: light.kossel_light_2
321 | service: light.turn_off
322 | - id: '1546896384028'
323 | alias: Cover button right(downstairs)
324 | trigger:
325 | - event_data:
326 | entity_id: binary_sensor.wall_switch_right_158d0001e0a3f6
327 | event_type: single
328 | event_type: xiaomi_aqara.click
329 | platform: event
330 | condition: []
331 | action:
332 | - data:
333 | entity_id: cover.livingroom_roller
334 | service: cover.open_cover
335 | - id: '1546896429811'
336 | alias: Cover button both(downstairs)
337 | trigger:
338 | - event_data:
339 | entity_id: binary_sensor.wall_switch_both_158d0001e0a3f6
340 | event_type: single
341 | event_type: xiaomi_aqara.click
342 | platform: event
343 | condition: []
344 | action:
345 | - data:
346 | entity_id: cover.livingroom_roller
347 | service: cover.stop_cover
348 | - id: '1547412893560'
349 | alias: Bathroom right-button
350 | trigger:
351 | - event_data:
352 | entity_id: binary_sensor.wall_switch_right_158d0001e06eb2
353 | event_type: single
354 | event_type: xiaomi_aqara.click
355 | platform: event
356 | condition: []
357 | action:
358 | - data:
359 | brightness: '30'
360 | entity_id: light.bathroom2
361 | service: light.turn_on
362 | - data:
363 | brightness: '30'
364 | entity_id: light.bathroom3
365 | service: light.turn_on
366 | - id: '1547413011732'
367 | alias: Bathroom button both
368 | trigger:
369 | - event_data:
370 | entity_id: binary_sensor.wall_switch_both_158d0001e06eb2
371 | event_type: single
372 | event_type: xiaomi_aqara.click
373 | platform: event
374 | condition: []
375 | action:
376 | - data:
377 | entity_id: group.bathroom_group
378 | service: light.turn_off
379 | - id: '1548364073868'
380 | alias: Cover office left
381 | trigger:
382 | - event_data:
383 | entity_id: binary_sensor.wall_switch_left_158d000312d1f1
384 | event_type: single
385 | event_type: xiaomi_aqara.click
386 | platform: event
387 | condition: []
388 | action:
389 | - data:
390 | entity_id: cover.office_roller
391 | service: cover.close_cover
392 | - id: '1548364189711'
393 | alias: Cover office right
394 | trigger:
395 | - event_data:
396 | entity_id: binary_sensor.wall_switch_right_158d000312d1f1
397 | event_type: single
398 | event_type: xiaomi_aqara.click
399 | platform: event
400 | condition: []
401 | action:
402 | - data:
403 | entity_id: cover.office_roller
404 | service: cover.open_cover
405 | - id: '1548364252800'
406 | alias: Cover office both
407 | trigger:
408 | - event_data:
409 | entity_id: binary_sensor.wall_switch_both_158d000312d1f1
410 | event_type: single
411 | event_type: xiaomi_aqara.click
412 | platform: event
413 | condition: []
414 | action:
415 | - data:
416 | entity_id: cover.office_roller
417 | service: cover.stop_cover
418 | - id: '1550564308364'
419 | alias: Telegram bot that reply pong to ping
420 | trigger:
421 | - event_data:
422 | text: ping
423 | event_type: telegram_text
424 | platform: event
425 | - event_data:
426 | text: Ping
427 | event_type: telegram_text
428 | platform: event
429 | condition: []
430 | action:
431 | - data:
432 | message: pong
433 | service: telegram_bot.send_message
434 | - id: '1550565595309'
435 | alias: Telegram bot light status
436 | trigger:
437 | - event_data:
438 | text: status
439 | event_type: telegram_text
440 | platform: event
441 | - event_data:
442 | text: Status
443 | event_type: telegram_text
444 | platform: event
445 | condition: []
446 | action: []
447 | ~
448 |
--------------------------------------------------------------------------------
/automations.yaml:
--------------------------------------------------------------------------------
1 | - alias: Write Stepper Value to ESP
2 | trigger:
3 | platform: state
4 | entity_id: input_number.stepper_control
5 | action:
6 | - service: esphome.curtain_bedroom
7 | data_template:
8 | target: '{{ trigger.to_state.state | int }}'
9 | id: 20429983fd4f462f90561dd4cddf43c3
10 | - alias: Falcon Animation Speed
11 | initial_state: true
12 | trigger:
13 | - platform: state
14 | entity_id: input_slider.falcon_animation_speed
15 | action:
16 | - service: mqtt.publish
17 | data_template:
18 | topic: light/falcon/set
19 | payload: '{"transition":{{ trigger.to_state.state | int }}}'
20 | id: ea5948cf7c4e44c0a5399d18f84421cf
21 | - id: '1519760782392'
22 | alias: Motion hallway-downstairs (on)
23 | trigger:
24 | - entity_id: binary_sensor.hallway_downstairs_door_motion_occupancy
25 | from: 'off'
26 | platform: state
27 | to: 'on'
28 | condition:
29 | - condition: numeric_state
30 | entity_id: sensor.downstairs_hallway_ceiling_lux_illuminance_lux
31 | attribute: illuminance_lux
32 | below: '4'
33 | - condition: state
34 | entity_id: input_boolean.bedtime
35 | state: 'off'
36 | action:
37 | - data:
38 | entity_id: group.hallway
39 | service: light.turn_on
40 | - type: turn_on
41 | device_id: e729bea001b411eb933ded68b48ae16d
42 | entity_id: switch.staircase_window_light_relay
43 | domain: switch
44 | mode: single
45 | - id: '1519760817306'
46 | alias: Motion hallway-downstairs (off)
47 | trigger:
48 | - entity_id: binary_sensor.hallway_downstairs_door_motion_occupancy
49 | from: 'on'
50 | platform: state
51 | to: 'off'
52 | condition: []
53 | action:
54 | - data:
55 | entity_id: group.hallway
56 | service: light.turn_off
57 | - type: turn_off
58 | device_id: e729bea001b411eb933ded68b48ae16d
59 | entity_id: switch.staircase_window_light_relay
60 | domain: switch
61 | mode: single
62 | - id: '1520200724100'
63 | alias: Motion hallway-downstairs morning (on)
64 | trigger:
65 | - entity_id: binary_sensor.hallway_downstairs_door_motion_occupancy
66 | from: 'off'
67 | platform: state
68 | to: 'on'
69 | condition:
70 | - after: '6:00'
71 | before: '8:30'
72 | condition: time
73 | - type: is_illuminance
74 | condition: device
75 | device_id: a4d91cd90d4711eba5a6b50a9ba37a26
76 | entity_id: sensor.downstairs_hallway_ceiling_lux_illuminance_lux
77 | domain: sensor
78 | below: 4
79 | action:
80 | - data:
81 | entity_id: group.livingroom_group
82 | service: homeassistant.turn_on
83 | mode: single
84 | - id: '1520251495193'
85 | alias: Basement light on
86 | trigger:
87 | - entity_id: binary_sensor.basement_door_sensor_contact
88 | from: 'off'
89 | platform: state
90 | to: 'on'
91 | condition: []
92 | action:
93 | - data:
94 | entity_id: light.sonoff_basement
95 | service: light.turn_on
96 | mode: single
97 | - id: '1520251539017'
98 | alias: Basement light off
99 | trigger:
100 | - entity_id: binary_sensor.basement_door_sensor_contact
101 | from: 'on'
102 | platform: state
103 | to: 'off'
104 | condition: []
105 | action:
106 | - data:
107 | entity_id: light.sonoff_basement
108 | service: light.turn_off
109 | mode: single
110 | - id: '1528109786675'
111 | alias: Motion kitchen (on)
112 | trigger:
113 | - entity_id: binary_sensor.0x00158d0001e55662_occupancy
114 | from: 'off'
115 | platform: state
116 | to: 'on'
117 | condition:
118 | - condition: numeric_state
119 | entity_id: sensor.downstairs_hallway_ceiling_lux_illuminance_lux
120 | below: '4'
121 | attribute: illuminance_lux
122 | - condition: state
123 | entity_id: input_boolean.bedtime
124 | state: 'off'
125 | action:
126 | - data:
127 | entity_id: group.kitchenspots
128 | service: light.turn_on
129 | mode: single
130 | - id: '1528109853713'
131 | alias: Motion kitchen (off)
132 | trigger:
133 | - entity_id: binary_sensor.0x00158d0001e55662_occupancy
134 | from: 'on'
135 | platform: state
136 | to: 'off'
137 | condition: []
138 | action:
139 | - data:
140 | entity_id: group.kitchenspots
141 | service: light.turn_off
142 | mode: single
143 | - id: '1528823416468'
144 | alias: Motion upstairs (on)
145 | trigger:
146 | - entity_id: binary_sensor.hallway_upstairs_bedroom_motion_occupancy
147 | from: 'off'
148 | platform: state
149 | to: 'on'
150 | condition:
151 | - condition: numeric_state
152 | entity_id: sensor.downstairs_hallway_ceiling_lux_illuminance_lux
153 | below: '4'
154 | attribute: illuminance_lux
155 | - condition: state
156 | entity_id: input_boolean.bedtime
157 | state: 'off'
158 | action:
159 | - data:
160 | entity_id: group.upstairs_spots
161 | service: light.turn_on
162 | mode: single
163 | - id: '1528823457733'
164 | alias: Motion upstairs (off)
165 | trigger:
166 | - entity_id: binary_sensor.hallway_upstairs_bedroom_motion_occupancy
167 | from: 'on'
168 | platform: state
169 | to: 'off'
170 | condition: []
171 | action:
172 | - data:
173 | entity_id: group.upstairs_spots
174 | service: light.turn_off
175 | mode: single
176 | - id: '1544305094328'
177 | alias: Shutters_time_open
178 | trigger:
179 | - at: 07:00
180 | platform: time
181 | condition: []
182 | action:
183 | - entity_id: cover.livingroom_roller
184 | service: cover.open_cover
185 | - service: cover.open_cover
186 | data: {}
187 | entity_id: cover.office_roller
188 | mode: single
189 | - id: '1546196514195'
190 | alias: Octoprint-led
191 | trigger:
192 | - entity_id: binary_sensor.octoprint_printing
193 | from: 'off'
194 | platform: state
195 | to: 'on'
196 | condition: []
197 | action:
198 | - data:
199 | entity_id: light.kossel_light
200 | service: light.turn_on
201 | - id: '1546196538451'
202 | alias: octo-print-off
203 | trigger:
204 | - entity_id: binary_sensor.octoprint_printing
205 | from: 'on'
206 | platform: state
207 | to: 'off'
208 | condition: []
209 | action:
210 | - data:
211 | entity_id: light.kossel_light
212 | service: light.turn_off
213 | - id: '1548364073868'
214 | alias: office_shutter_left-button
215 | trigger:
216 | - platform: device
217 | domain: mqtt
218 | device_id: c68ac6c3ffe511ea90e64de2f15089ab
219 | type: click
220 | subtype: left
221 | discovery_id: 0x00158d000312d335 click_left
222 | condition:
223 | - condition: state
224 | entity_id: binary_sensor.office_window_sensor_contact
225 | state: 'off'
226 | action:
227 | - data:
228 | entity_id: cover.office_roller
229 | service: cover.close_cover
230 | mode: single
231 | - id: '1548364189711'
232 | alias: office_shutter_right-button
233 | trigger:
234 | - platform: device
235 | domain: mqtt
236 | device_id: c68ac6c3ffe511ea90e64de2f15089ab
237 | type: action
238 | subtype: single_right
239 | discovery_id: 0x00158d000312d335 action_single_right
240 | condition: []
241 | action:
242 | - data:
243 | entity_id: cover.office_roller
244 | service: cover.open_cover
245 | mode: single
246 | - id: '1548364252800'
247 | alias: office_shutter_both-buttons
248 | trigger:
249 | - platform: device
250 | domain: mqtt
251 | device_id: c68ac6c3ffe511ea90e64de2f15089ab
252 | type: click
253 | subtype: both
254 | discovery_id: 0x00158d000312d335 click_both
255 | condition: []
256 | action:
257 | - data:
258 | entity_id: cover.office_roller
259 | service: cover.stop_cover
260 | mode: single
261 | - id: '1550564308364'
262 | alias: Telegram bot that reply pong to ping
263 | trigger:
264 | - event_data:
265 | command: /ping
266 | event_type: telegram_command
267 | platform: event
268 | - event_data:
269 | text: Ping
270 | event_type: telegram_text
271 | platform: event
272 | condition: []
273 | action:
274 | - data_template:
275 | message: pong
276 | target: '{{ trigger.event.data.chat_id }}'
277 | service: telegram_bot.send_message
278 | - id: '1550565595309'
279 | alias: Telegram bot status
280 | trigger:
281 | - event_data:
282 | text: status
283 | event_type: telegram_text
284 | platform: event
285 | - event_data:
286 | text: Status
287 | event_type: telegram_text
288 | platform: event
289 | - event_data:
290 | telegram_command: /status
291 | event_type: telegram_command
292 | platform: event
293 | condition: []
294 | action:
295 | - data:
296 | message: ' {% if now().strftime("%H")|int < 12 %} Good morning, {% elif now().strftime("%H")|int
297 | < 18 %} Good afternoon, {% else %} Good evening, {% endif %}
298 |
299 | The current weather is {{ states ("weather.dark_sky") }}, with a temperature
300 | of {{ state_attr ("weather.dark_sky", "temperature" )| int }} degrees.
301 |
302 | The current livingroom temperature is {{ state_attr ("climate.woonkamer",
303 | "current_temperature" )|int }} degrees.
304 |
305 | The solar panels produced {{ states ("sensor.energy_today").split(".").0 }}
306 | Kilowatthours today.
307 |
308 | {% if is_state ("binary_sensor.door_window_sensor_158d0002133b59", "on") %}
309 | Reminder, The bedroom window is open. {% endif %}
310 |
311 | {% if state_attr ("vacuum.miep", "clean_stop").strftime("%d") == now().strftime("%d")
312 | %} Vacuum finished today at {{ state_attr ("vacuum.miep", "clean_stop").strftime("%H:%M")}}.
313 | {% else %} Vacuum did not clean, last run was {{state_attr ("vacuum.miep",
314 | "clean_stop").strftime("%A, %d %B")}}. {% endif %}
315 |
316 | {% if state_attr ("vacuum.miep", "sensor_dirty_left") < 2 %} The vacuum sensors
317 | need to be cleaned in {{state_attr ("vacuum.miep", "sensor_dirty_left")}}
318 | hours. {% endif %} {% if state_attr ("vacuum.miep", "filter_left") < 2 %}
319 | The vacuum sensors need to be cleaned in {{state_attr ("vacuum.miep", "filter_left")}}
320 | hours. {% endif %} {% if state_attr ("vacuum.miep", "side_brush_left") < 2
321 | %} The vacuum sensors need to be cleaned in {{state_attr ("vacuum.miep", "side_brush_left")}}
322 | hours. {% endif %} {% if state_attr ("vacuum.miep", "main_brush_left") < 2
323 | %} The vacuum sensors need to be cleaned in {{state_attr ("vacuum.miep", "main_brush_left")}}
324 | hours. {% endif %} '
325 | target: '{{ trigger.event.data.chat_id }}'
326 | service: telegram_bot.send_message
327 | - id: '1550695640677'
328 | alias: Telegram cleaning
329 | trigger:
330 | - entity_id: vacuum.miep
331 | from: docked
332 | platform: state
333 | to: cleaning
334 | condition: []
335 | action:
336 | - data:
337 | message: Cleaning, beep boop
338 | service: telegram_bot.send_message
339 | - id: '1550697141393'
340 | alias: Motion stairs(on)
341 | trigger:
342 | - entity_id: binary_sensor.stairs_window_motion_occupancy
343 | from: 'off'
344 | platform: state
345 | to: 'on'
346 | condition:
347 | - condition: numeric_state
348 | entity_id: sensor.downstairs_hallway_ceiling_lux_illuminance_lux
349 | attribute: illuminance_lux
350 | below: '4'
351 | - condition: state
352 | entity_id: input_boolean.bedtime
353 | state: 'off'
354 | action:
355 | - service: switch.turn_on
356 | data: {}
357 | entity_id: switch.staircase_window_light_relay
358 | mode: single
359 | - id: '1550697179004'
360 | alias: Motion stairs (off)
361 | trigger:
362 | - entity_id: binary_sensor.stairs_window_motion_occupancy
363 | from: 'on'
364 | platform: state
365 | to: 'off'
366 | condition: []
367 | action:
368 | - service: switch.turn_off
369 | data: {}
370 | entity_id: switch.staircase_window_light_relay
371 | mode: single
372 | - id: '1550872980640'
373 | alias: Reset bedtime
374 | trigger:
375 | - at: 06:00
376 | platform: time
377 | condition: []
378 | action:
379 | - data:
380 | entity_id: input_boolean.bedtime
381 | service: input_boolean.turn_off
382 | - data:
383 | code: !secret alarm_pin
384 | entity_id: alarm_control_panel.home_alarm
385 | service: alarm_control_panel.alarm_disarm
386 | - id: '1553538719582'
387 | alias: Switch to dark theme
388 | trigger:
389 | - entity_id: sun.sun
390 | from: above_horizon
391 | platform: state
392 | to: below_horizon
393 | condition: []
394 | action:
395 | - data:
396 | name: dark
397 | service: frontend.set_theme
398 | - id: '1553538754094'
399 | alias: Set dark theme
400 | trigger:
401 | - entity_id: sun.sun
402 | from: below_horizon
403 | platform: state
404 | to: above_horizon
405 | condition: []
406 | action:
407 | - data:
408 | name: clear2
409 | service: frontend.set_theme
410 | - id: '1553543612290'
411 | alias: Tesla home lights
412 | trigger:
413 | - entity_id: device_tracker.eve_location_tracker
414 | from: not_home
415 | platform: state
416 | to: home
417 | condition:
418 | - condition: state
419 | entity_id: sun.sun
420 | state: below_horizon
421 | - condition: state
422 | entity_id: person.joyce
423 | state: Away
424 | action:
425 | - data:
426 | entity_id: group.livingroom_group
427 | service: light.turn_on
428 | - data:
429 | entity_id: group.livingroom_group
430 | service: switch.turn_on
431 | mode: single
432 | - id: '1554283978472'
433 | alias: Printing done
434 | trigger:
435 | - entity_id: binary_sensor.octoprint_printing
436 | from: 'on'
437 | platform: state
438 | to: 'off'
439 | condition: []
440 | action:
441 | - data:
442 | entity_id: camera.octoprint
443 | filename: /config/www/tmpimage/printer.jpg
444 | service: camera.snapshot
445 | - data:
446 | message: Printing done
447 | service: telegram_bot.send_message
448 | - data:
449 | file: /config/www/tmpimage/printer.jpg
450 | service: telegram_bot.send_photo
451 | - id: '1554284164549'
452 | alias: Telegram print status
453 | trigger:
454 | - event_data:
455 | text: Print status
456 | event_type: telegram_text
457 | platform: event
458 | - event_data:
459 | text: Printer status
460 | event_type: telegram_text
461 | platform: event
462 | - event_data:
463 | command: /print_status
464 | event_type: telegram_command
465 | platform: event
466 | condition: []
467 | action:
468 | - data:
469 | entity_id: camera.octoprint
470 | filename: /config/www/tmpimage/printer_status.jpg
471 | service: camera.snapshot
472 | - data_template:
473 | message: Job is at {{ states('sensor.octoprint_job_percentage') }}%
474 | target: '{{ trigger.event.data.chat_id }}'
475 | service: telegram_bot.send_message
476 | - data_template:
477 | message: 'expected time remaining is: {{states(''sensor.octoprint_time_remaining_format'')
478 | }}'
479 | target: '{{ trigger.event.data.chat_id }}'
480 | service: telegram_bot.send_message
481 | - data_template:
482 | message: 'And here''s a picture of the printbed:'
483 | target: '{{ trigger.event.data.chat_id }}'
484 | service: telegram_bot.send_message
485 | - data_template:
486 | file: /config/www/tmpimage/printer_status.jpg
487 | target: '{{ trigger.event.data.chat_id }}'
488 | service: telegram_bot.send_photo
489 | - id: '1554312554261'
490 | alias: Telegram Alarm
491 | trigger:
492 | - event_data:
493 | text: alarm on
494 | event_type: telegram_text
495 | platform: event
496 | - event_data:
497 | text: Alarm on
498 | event_type: telegram_text
499 | platform: event
500 | condition: []
501 | action:
502 | - data:
503 | entity_id: input_boolean.alarm
504 | service: input_boolean.turn_on
505 | - data:
506 | message: Alarm is set
507 | service: telegram_bot.send_message
508 | - id: '1554544852706'
509 | alias: Tensorflow voordeur
510 | trigger:
511 | - event_data: {}
512 | event_type: voordeur_motion
513 | platform: event
514 | condition: []
515 | action:
516 | - data:
517 | entity_id: image_processing.tensorflow_voordeur
518 | service: image_processing.scan
519 | - id: '1554564859672'
520 | alias: TensorFlow zijdeur
521 | trigger:
522 | - event_data: {}
523 | event_type: zijdeur_motion
524 | platform: event
525 | condition: []
526 | action:
527 | - entity_id: image_processing.tensorflow_zijdeur
528 | service: image_processing.scan
529 | - id: '1554790197597'
530 | alias: Tensorflow notification voordeur
531 | trigger:
532 | - entity_id: image_processing.tensorflow_voordeur
533 | platform: state
534 | condition:
535 | - condition: template
536 | value_template: '{{ trigger.to_state.state |int > 0 }}'
537 | - condition: template
538 | value_template: "{% set scan = state_attr(\"image_processing.tensorflow_voordeur\"\
539 | ,\"summary\").keys() %}\n{% for item in scan %}\n {% if item == 'person' %}\n\
540 | \ {{ True }}\n {% endif %}\n{% endfor %}"
541 | action:
542 | - data:
543 | message: '{{ state_attr(''image_processing.tensorflow_voordeur'',''matches'').keys()|list|unique|list|join('',
544 | '')|title }} detected on voordeur camera'
545 | service: telegram_bot.send_message
546 | - data:
547 | file: /config/video/voordeur_latest.jpg
548 | service: telegram_bot.send_photo
549 | - id: '1554790271700'
550 | alias: Tensorflow notification zijdeur
551 | trigger:
552 | - entity_id: image_processing.tensorflow_zijdeur
553 | platform: state
554 | condition:
555 | - condition: template
556 | value_template: '{{ trigger.to_state.state |int > 0 }}'
557 | - condition: template
558 | value_template: "{% set scan = state_attr(\"image_processing.tensorflow_zijdeur\"\
559 | ,\"summary\").keys() %}\n{% for item in scan %}\n {% if item == 'person' %}\n\
560 | \ {{ True }}\n {% endif %}\n{% endfor %}"
561 | action:
562 | - data:
563 | message: '{{ state_attr(''image_processing.tensorflow_zijdeur'',''matches'').keys()|list|unique|list|join('',
564 | '')|title }} detected on zijdeur camera'
565 | service: telegram_bot.send_message
566 | - data:
567 | file: /config/video/zijdeur_latest.jpg
568 | service: telegram_bot.send_photo
569 | - id: '1557406766787'
570 | alias: Alarm on_away
571 | trigger:
572 | - entity_id: device_tracker.mi9_miphone_2
573 | from: Home
574 | platform: state
575 | to: Away
576 | condition: []
577 | action:
578 | - data:
579 | message: Alarm is set - Phone away
580 | service: telegram_bot.send_message
581 | - id: '1558271669699'
582 | alias: Livingroom_anouncement_morning
583 | trigger:
584 | - type: motion
585 | platform: device
586 | device_id: 42e0ba26ffe711ea9d13cd2f01ae623c
587 | entity_id: binary_sensor.hallway_downstairs_door_motion_occupancy
588 | domain: binary_sensor
589 | for:
590 | hours: 0
591 | minutes: 0
592 | seconds: 0
593 | condition:
594 | - type: is_motion
595 | condition: device
596 | device_id: 1421a140ffe711eaa1f1219d64a00720
597 | entity_id: binary_sensor.stairs_window_motion_occupancy
598 | domain: binary_sensor
599 | for:
600 | hours: 0
601 | minutes: 0
602 | seconds: 0
603 | - condition: time
604 | after: '6:00'
605 | before: '10:00'
606 | action:
607 | - delay: '10'
608 | - data:
609 | volume_level: 0.4
610 | entity_id: media_player.nestaudio2567
611 | service: media_player.volume_set
612 | - data_template:
613 | entity_id: media_player.nestaudio2567
614 | message: '{% if now().strftime("%H")|int < 12 %} Goedemorgen, {% elif now().strftime("%H")|int
615 | < 18 %} Goedemiddag, {% else %} Goedeavond, {% endif %} Het is nu buiten {{
616 | states ("sensor.weerhuisje_temperature") | int }} graden.
617 |
618 | De woonkamer temperatuur is {{ state_attr ("climate.woonkamer", "current_temperature"
619 | )|int }} graden.
620 |
621 | {% if is_state ("sensor.circulus_berkel_vandaag", "None") %} {% else %} Vandaag
622 | moet {{ states ("sensor.circulus_berkel_vandaag")}} aan de weg. {% endif %}
623 | {% if is_state ("sensor.circulus_berkel_morgen", "None") %} {% else %} Morgen
624 | wordt {{ states ("sensor.circulus_berkel_morgen")}} opgehaald. {% endif %}
625 |
626 | De zonnepanelen hebben {{ states ("sensor.saj_today_yield_2") }} Kilowat opgebracht
627 | vandaag.
628 |
629 | {% if is_state ("binary_sensor.bedroom_window_door_sensor_contact", "on")
630 | and state_attr ("weather.openweathermap", "temperature") < 10 %} Het raam
631 | op de slaapkamer staat open, en buiten is het koud {% endif %}
632 |
633 | {% if is_state ("group.outside_doors", "on") %} Waarschuwing! Er staat een
634 | buitendeur open {% endif %}
635 |
636 | {% if state_attr ("vacuum.miep", "clean_stop").strftime("%d") == now().strftime("%d")
637 | %} Miep heeft vandaag gereden om {{ state_attr ("vacuum.miep", "clean_stop").strftime("%H:%M")}}.
638 | {% else %} Miep heeft nog niet gereden, de laatste keer was {{state_attr ("vacuum.miep",
639 | "clean_stop").strftime("%A, %d %B")}}. {% endif %}
640 |
641 | {% if state_attr ("vacuum.miep", "sensor_dirty_left") < 2 %} De sensors van
642 | Miep moeten schoongemaakt worden in {{state_attr ("vacuum.miep", "sensor_dirty_left")}}
643 | uur. {% endif %} {% if state_attr ("vacuum.miep", "filter_left") < 2 %} Het
644 | filter van Miep moet schoongemaakt worden binnen {{state_attr ("vacuum.miep",
645 | "filter_left")}} uur. {% endif %} {% if state_attr ("vacuum.miep", "side_brush_left")
646 | < 2 %} De zijborstel van Miep moet vervangen worden in {{state_attr ("vacuum.miep",
647 | "side_brush_left")}} uur. {% endif %} {% if state_attr ("vacuum.miep", "main_brush_left")
648 | < 2 %} De hoofdborstel van Miep moet vervangen worden in {{state_attr ("vacuum.miep",
649 | "main_brush_left")}} uur. {% endif %} Dat waren alle meldingen, fijne dag
650 | verder! '
651 | service: tts.microsoft_say
652 | mode: single
653 | - id: '1558274783849'
654 | alias: IFTT
655 | trigger:
656 | - event_data:
657 | action: call_service
658 | event_type: ifttt_webhook_received
659 | platform: event
660 | condition: []
661 | action:
662 | - data_template:
663 | entity_id: '{{ trigger.event.data.entity_id }}'
664 | service_template: '{{ trigger.event.data.service }}'
665 | - id: '1560369534592'
666 | alias: Tensorflow schuur
667 | trigger:
668 | - event_data: {}
669 | event_type: schuur_motion
670 | platform: event
671 | condition: []
672 | action:
673 | - data:
674 | entity_id: image_processing.tensorflow_schuur
675 | service: image_processing.scan
676 | - id: '1560369782192'
677 | alias: Tensorflow notification schuur
678 | trigger:
679 | - entity_id: image_processing.tensorflow_schuur
680 | platform: state
681 | condition:
682 | - condition: template
683 | value_template: '{{ trigger.to_state.state |int > 0 }}'
684 | - condition: template
685 | value_template: "{% set scan = state_attr(\"image_processing.tensorflow_schuur\"\
686 | ,\"summary\").keys() %}\n{% for item in scan %}\n {% if item == 'person' %}\n\
687 | \ {{ True }}\n {% endif %}\n{% endfor %}"
688 | action:
689 | - data:
690 | message: '{{ state_attr(''image_processing.tensorflow_schuur'',''matches'').keys()|list|unique|list|join('',
691 | '')|title }} detected on schuur camera'
692 | service: telegram_bot.send_message
693 | - data:
694 | file: /config/video/schuur_latest.jpg
695 | service: telegram_bot.send_photo
696 | - id: '1560587782912'
697 | alias: Telegram Wolfje
698 | trigger:
699 | - event_data:
700 | text: Wolfje status
701 | event_type: telegram_text
702 | platform: event
703 | - event_data:
704 | text: wolfje status
705 | event_type: telegram_text
706 | platform: event
707 | - event_data:
708 | text: Waar is wolfje
709 | event_type: telegram_text
710 | platform: event
711 | - event_data:
712 | text: Wolfje
713 | event_type: telegram_text
714 | platform: event
715 | - event_data:
716 | text: wolfje
717 | event_type: telegram_text
718 | platform: event
719 | condition: []
720 | action:
721 | - data:
722 | message: '{% if is_state ("binary_sensor.pet_wolfje", "on") %} Wolfje is binnen
723 | chillen. {% elif is_state ("binary_sensor.pet_wolfje", "off") %} Wolfje is
724 | buiten chillen. {% endif %}'
725 | service: telegram_bot.send_message
726 | - id: '1563110835430'
727 | alias: Pim location Office
728 | trigger:
729 | - above: '-60'
730 | entity_id: device_tracker.192_168_1_17_a4_50_46_72_c6_82
731 | platform: numeric_state
732 | condition: []
733 | action:
734 | - service: input_select.set_options
735 | - id: '1563738157502'
736 | alias: Bedtime toggle
737 | trigger:
738 | - entity_id: input_boolean.bedtime
739 | from: 'off'
740 | platform: state
741 | to: 'on'
742 | condition:
743 | - after: '21:00'
744 | condition: time
745 | action:
746 | - data:
747 | entity_id: all
748 | service: light.turn_off
749 | - service: switch.turn_off
750 | data:
751 | entity_id:
752 | - switch.fireplace_basic_relay
753 | - switch.frontdoor_switch_relay
754 | - switch.livingroom_window_switch_switch
755 | - switch.porch_basic_relay
756 | - switch.sonoff_basic_relay
757 | - switch.staircase_window_light_relay
758 | mode: single
759 | - id: '1568203353202'
760 | alias: Vacuum start
761 | trigger:
762 | - at: 05:00
763 | platform: time
764 | condition: []
765 | action:
766 | - data:
767 | entity_id: vacuum.miep
768 | service: vacuum.start
769 | mode: single
770 | - id: '1570045586111'
771 | alias: Alarm_off_xiaomi_single_button
772 | trigger:
773 | - platform: device
774 | domain: mqtt
775 | device_id: e65fd062009211ebbb18594153c78b9e
776 | type: action
777 | subtype: single
778 | discovery_id: 0x00158d000210ec53 action_single
779 | - platform: device
780 | domain: mqtt
781 | device_id: e65fd062009211ebbb18594153c78b9e
782 | type: action
783 | subtype: double
784 | discovery_id: 0x00158d000210ec53 action_double
785 | condition: []
786 | action:
787 | - data:
788 | message: Alarm off - Via Xiaomi button
789 | service: notify.mobile_app_pixel_5
790 | - data:
791 | code: !secret alarm_pin
792 | entity_id: alarm_control_panel.home_alarm
793 | service: alarm_control_panel.alarm_disarm
794 | mode: single
795 | - id: '1570048484459'
796 | alias: Livingroom_shutter_close-time
797 | trigger:
798 | - at: '22:00'
799 | platform: time
800 | condition: []
801 | action:
802 | - data:
803 | entity_id: cover.livingroom_roller
804 | service: cover.close_cover
805 | mode: single
806 | - id: '1570048669274'
807 | alias: Office_shutter_close-time
808 | trigger:
809 | - at: '22:00'
810 | platform: time
811 | condition:
812 | - condition: state
813 | entity_id: binary_sensor.office_window_sensor_contact
814 | state: 'Off'
815 | action:
816 | - data:
817 | entity_id: cover.office_roller
818 | service: cover.close_cover
819 | mode: single
820 | - id: '1570544659081'
821 | alias: Motion-stairs
822 | trigger:
823 | - entity_id: binary_sensor.stairs_window_motion_occupancy
824 | from: 'off'
825 | platform: state
826 | to: 'on'
827 | condition:
828 | - condition: numeric_state
829 | entity_id: sensor.downstairs_hallway_ceiling_lux_illuminance_lux
830 | attribute: illuminance_lux
831 | below: '4'
832 | - condition: state
833 | entity_id: input_boolean.bedtime
834 | state: 'off'
835 | action:
836 | - data:
837 | entity_id: group.livingroom_group
838 | service: light.turn_on
839 | mode: single
840 | - id: '1570546499913'
841 | alias: Alarm_away_trigger-wolfje-away
842 | trigger:
843 | - entity_id: group.outside_doors
844 | from: 'off'
845 | platform: state
846 | to: 'on'
847 | - entity_id: binary_sensor.motion_sensor_158d0001a92381
848 | from: 'off'
849 | platform: state
850 | to: 'on'
851 | - entity_id: binary_sensor.motion_sensor_158d0001e55662
852 | from: 'off'
853 | platform: state
854 | to: 'on'
855 | condition:
856 | - condition: state
857 | entity_id: alarm_control_panel.home_alarm
858 | state: armed_away
859 | - condition: state
860 | entity_id: binary_sensor.pet_wolfje
861 | state: 'off'
862 | action:
863 | - data:
864 | entity_id: alarm_control_panel.home_alarm
865 | entity_id: alarm_control_panel.home_alarm
866 | service: alarm_control_panel.alarm_trigger
867 | - id: '1570600594310'
868 | alias: Alarm_away_trigger-wolfje-home
869 | trigger:
870 | - entity_id: group.outside_doors
871 | from: 'off'
872 | platform: state
873 | to: 'on'
874 | condition:
875 | - condition: state
876 | entity_id: alarm_control_panel.home_alarm
877 | state: armed_away
878 | - condition: state
879 | entity_id: binary_sensor.pet_wolfje
880 | state: 'on'
881 | action:
882 | - data:
883 | entity_id: alarm_control_panel.home_alarm
884 | entity_id: alarm_control_panel.home_alarm
885 | service: alarm_control_panel.alarm_trigger
886 | - id: '1572170315856'
887 | alias: Alarm_armed_notification
888 | description: ''
889 | trigger:
890 | - entity_id: alarm_control_panel.home_alarm
891 | platform: state
892 | to: armed_away
893 | condition: []
894 | action:
895 | - data:
896 | data:
897 | actions:
898 | - action: URI
899 | title: Disable alarm
900 | uri: /lovelace/14
901 | - action: URI
902 | title: Show camera
903 | uri: /lovelace/7
904 | clickAction: /lovelace/14
905 | importance: high
906 | message: ALARM SET
907 | service: notify.notify
908 | mode: single
909 | - id: '1572304385431'
910 | alias: Lights off sunrise
911 | description: ''
912 | trigger:
913 | - entity_id: sun.sun
914 | for: 00:50:00
915 | from: below_horizon
916 | platform: state
917 | to: above_horizon
918 | condition: []
919 | action:
920 | - data:
921 | entity_id: all
922 | service: light.turn_off
923 | - data:
924 | entity_id: switch.sonoff_basic_relay, switch.tradfri_outlet
925 | service: switch.turn_off
926 | - id: '1573077284376'
927 | alias: Telegram - Warmtedeken status
928 | description: ''
929 | trigger:
930 | - event_data:
931 | text: warmtedeken status
932 | event_type: telegram_text
933 | platform: event
934 | - event_data:
935 | text: Warmte deken status
936 | event_type: telegram_text
937 | platform: event
938 | - event_data:
939 | text: Warmtedeken status
940 | event_type: telegram_text
941 | platform: event
942 | condition: []
943 | action:
944 | - data:
945 | message: Warmtedeken is {{ states('switch.plug_158d00039c1489') }}
946 | service: telegram_bot.send_message
947 | - id: '1573077586824'
948 | alias: Warmtedeken - autoshutoff
949 | description: ''
950 | trigger:
951 | - entity_id: switch.plug_158d00039c1489
952 | for: '1:30:00'
953 | from: 'off'
954 | platform: state
955 | to: 'on'
956 | condition: []
957 | action:
958 | - data:
959 | entity_id: switch.plug_158d00039c1489
960 | service: switch.turn_off
961 | - id: '1573465670179'
962 | alias: Telegram - Tesla charging stopped
963 | description: ''
964 | trigger:
965 | - entity_id: switch.eve_charger_switch
966 | from: 'on'
967 | platform: state
968 | to: 'off'
969 | condition: []
970 | action:
971 | - data:
972 | message: Tesla stopped charging
973 | service: telegram_bot.send_message
974 | - id: '1575391309146'
975 | alias: alarm - door or window unlocked
976 | description: ''
977 | trigger:
978 | - entity_id: group.outside_doors
979 | from: 'off'
980 | platform: state
981 | to: 'on'
982 | - entity_id: group.outside_windows
983 | from: 'off'
984 | platform: state
985 | to: 'on'
986 | - entity_id: binary_sensor.door_window_sensor_158d0003d4bad5
987 | from: 'off'
988 | platform: state
989 | to: 'on'
990 | condition:
991 | - condition: or
992 | conditions:
993 | - condition: state
994 | entity_id: alarm_control_panel.home_alarm
995 | state: armed_night
996 | - condition: state
997 | entity_id: alarm_control_panel.home_alarm
998 | state: armed_away
999 | action:
1000 | - data:
1001 | code: !secret alarm_pin
1002 | entity_id: alarm_control_panel.home_alarm
1003 | service: alarm_control_panel.alarm_trigger
1004 | - id: '1575391403592'
1005 | alias: Alarm - Disabled notifcation
1006 | description: ''
1007 | trigger:
1008 | - entity_id: alarm_control_panel.home_alarm
1009 | platform: state
1010 | to: disarmed
1011 | condition: []
1012 | action:
1013 | - data:
1014 | data:
1015 | actions:
1016 | - action: URI
1017 | title: Disable alarm
1018 | uri: /lovelace/14
1019 | - action: URI
1020 | title: Show camera
1021 | uri: /lovelace/7
1022 | clickAction: /lovelace/14
1023 | color: green
1024 | importance: urgent
1025 | message: ALARM DISABLED
1026 | service: notify.notify
1027 | mode: single
1028 | - id: '1575446439629'
1029 | alias: Alarm - Triggered
1030 | description: ''
1031 | trigger:
1032 | - entity_id: alarm_control_panel.home_alarm
1033 | platform: state
1034 | to: triggered
1035 | condition: []
1036 | action:
1037 | - data:
1038 | data:
1039 | actions:
1040 | - action: URI
1041 | title: Disable alarm
1042 | uri: /lovelace/14
1043 | - action: URI
1044 | title: Show camera
1045 | uri: /lovelace/7
1046 | clickAction: /lovelace/14
1047 | color: red
1048 | importance: urgent
1049 | persistent: true
1050 | sticky: 'true'
1051 | tag: alarm_triggered
1052 | message: ALARM TRIGGERED
1053 | service: notify.notify
1054 | - data: {}
1055 | entity_id: script.alarm_triggered_loop
1056 | service: script.turn_on
1057 | mode: single
1058 | - id: '1577900607880'
1059 | alias: notify PMD
1060 | description: ''
1061 | trigger:
1062 | - entity_id: sensor.circulus_berkel_pmd
1063 | platform: state
1064 | to: today
1065 | condition: []
1066 | action:
1067 | - data:
1068 | message: PMD opgehaald vandaag
1069 | service: telegram_bot.send_message
1070 | - id: '1577913648866'
1071 | alias: telegram_joyce
1072 | description: ''
1073 | trigger:
1074 | - event_data:
1075 | telegram_command: /joyce
1076 | event_type: telegram_command
1077 | platform: event
1078 | condition: []
1079 | action:
1080 | - data:
1081 | message: Volgens Pim is Joyce de allerliefste van de hele wereld! <3
1082 | target: '{{ trigger.event.data.chat_id }}'
1083 | service: telegram_bot.send_message
1084 | - id: '1578220478076'
1085 | alias: Telegram - away notification
1086 | description: ''
1087 | trigger:
1088 | - entity_id: device_tracker.mi9_miphone_2
1089 | platform: state
1090 | to: not_home
1091 | - entity_id: device_tracker.unifi_48_2c_a0_6e_96_9a_default
1092 | platform: state
1093 | to: not_home
1094 | condition:
1095 | - condition: or
1096 | conditions:
1097 | - condition: state
1098 | entity_id: device_tracker.mi9_miphone_2
1099 | state: not_home
1100 | - condition: state
1101 | entity_id: device_tracker.unifi_48_2c_a0_6e_96_9a_default
1102 | state: not_home
1103 | action:
1104 | - data:
1105 | message: Iedereen is van huis
1106 | target: '-366369357'
1107 | service: telegram_bot.send_message
1108 | - data:
1109 | message: Ik zet het alarm aan
1110 | target: '-366369357'
1111 | service: telegram_bot.send_message
1112 | - id: '1578303536719'
1113 | alias: Telegram - Afval notificatie
1114 | description: ''
1115 | trigger:
1116 | - entity_id: sensor.circulus_berkel_vandaag
1117 | platform: state
1118 | condition: []
1119 | action:
1120 | - data_template:
1121 | message: 'De volgende container moet aan de weg: {{states(''sensor.circulus_berkel_vandaag'')
1122 | }}'
1123 | target: '-366369357'
1124 | service: telegram_bot.send_message
1125 | - id: '1578303726240'
1126 | alias: Telegram - Afval notificatie morgen
1127 | description: ''
1128 | trigger:
1129 | - entity_id: sensor.circulus_berkel_morgen
1130 | platform: state
1131 | condition: []
1132 | action:
1133 | - data_template:
1134 | message: Morgen moet de *{{states('sensor.circulus_berkel_morgen') }}* container
1135 | aan de weg
1136 | parse_mode: markdown
1137 | target: '-366369357'
1138 | service: telegram_bot.send_message
1139 | - id: '1579032386207'
1140 | alias: Alarm - disarmed stop chaos
1141 | description: ''
1142 | trigger:
1143 | - entity_id: alarm_control_panel.home_alarm
1144 | platform: state
1145 | to: disarmed
1146 | condition: []
1147 | action:
1148 | - entity_id: script.alarm_triggered_sound
1149 | service: script.turn_off
1150 | - data:
1151 | data:
1152 | tag: alarm_triggered
1153 | message: clear_notification
1154 | service: notify.notify
1155 | mode: single
1156 | - id: '1580711235303'
1157 | alias: Telegram - Stookalert notificatie
1158 | description: ''
1159 | trigger:
1160 | - entity_id: binary_sensor.stookalert
1161 | from: 'off'
1162 | platform: state
1163 | to: 'on'
1164 | condition: []
1165 | action:
1166 | - data:
1167 | message: Stookalert! Geen openhaard aan
1168 | target: '-366369357'
1169 | service: telegram_bot.send_message
1170 | - data:
1171 | message: https://www.rivm.nl/stookalert
1172 | target: '-366369357'
1173 | service: telegram_bot.send_message
1174 | - id: '1595162633275'
1175 | alias: Alarm - Pim away (person)
1176 | description: ''
1177 | trigger:
1178 | - entity_id: person.pim
1179 | from: home
1180 | platform: state
1181 | to: not_home
1182 | condition:
1183 | - condition: state
1184 | entity_id: person.joyce
1185 | state: not_home
1186 | action:
1187 | - data:
1188 | code: !secret alarm_pin
1189 | entity_id: alarm_control_panel.home_alarm
1190 | service: alarm_control_panel.alarm_arm_away
1191 | - data:
1192 | message: Alarm is set - Pim Phone away
1193 | service: telegram_bot.send_message
1194 | - service: light.turn_off
1195 | data:
1196 | entity_id: all
1197 | - service: switch.turn_off
1198 | data:
1199 | entity_id:
1200 | - switch.fireplace_basic_relay
1201 | - switch.frontdoor_switch_relay
1202 | - switch.livingroom_window_switch_switch
1203 | - switch.porch_basic_relay
1204 | - switch.sonoff_basic_relay
1205 | - switch.staircase_window_light_relay
1206 | mode: single
1207 | - id: '1595162713841'
1208 | alias: Alarm - Joyce away (person)
1209 | description: ''
1210 | trigger:
1211 | - entity_id: person.joyce
1212 | from: home
1213 | platform: state
1214 | to: not_home
1215 | condition:
1216 | - condition: state
1217 | entity_id: person.pim
1218 | state: not_home
1219 | action:
1220 | - data:
1221 | code: !secret alarm_pin
1222 | entity_id: alarm_control_panel.home_alarm
1223 | service: alarm_control_panel.alarm_arm_away
1224 | - data:
1225 | message: Alarm is set - Phone away Joyce
1226 | service: telegram_bot.send_message
1227 | - service: light.turn_off
1228 | data:
1229 | entity_id: all
1230 | - service: switch.turn_off
1231 | data:
1232 | entity_id:
1233 | - switch.fireplace_basic_relay
1234 | - switch.frontdoor_switch_relay
1235 | - switch.livingroom_window_switch_switch
1236 | - switch.porch_basic_relay
1237 | - switch.sonoff_basic_relay
1238 | - switch.staircase_window_light_relay
1239 | mode: single
1240 | - id: '1595164637608'
1241 | alias: Alarm - Pim home (person)
1242 | description: Disable alarm
1243 | trigger:
1244 | - entity_id: person.pim
1245 | event: enter
1246 | platform: zone
1247 | zone: zone.home
1248 | condition: []
1249 | action:
1250 | - data:
1251 | code: !secret alarm_pin
1252 | entity_id: alarm_control_panel.home_alarm
1253 | service: alarm_control_panel.alarm_disarm
1254 | - data:
1255 | message: Alarm uit - Pim Thuis
1256 | service: telegram_bot.send_message
1257 | mode: single
1258 | - id: '1595164763010'
1259 | alias: Alarm - Joyce home (person)
1260 | description: ''
1261 | trigger:
1262 | - entity_id: person.joyce
1263 | event: enter
1264 | platform: zone
1265 | zone: zone.home
1266 | condition: []
1267 | action:
1268 | - data:
1269 | code: !secret alarm_pin
1270 | entity_id: alarm_control_panel.home_alarm
1271 | service: alarm_control_panel.alarm_disarm
1272 | - data:
1273 | message: Alarm disabled Joyce thuis
1274 | service: telegram_bot.send_message
1275 | - id: '1596118187471'
1276 | alias: Joyce_kamer_motion
1277 | description: ''
1278 | trigger:
1279 | - device_id: ce5b788e27f24084a7f402225bef2639
1280 | domain: binary_sensor
1281 | entity_id: binary_sensor.joyce_kamermotion_ias_zone
1282 | platform: device
1283 | type: motion
1284 | condition:
1285 | - condition: state
1286 | entity_id: sun.sun
1287 | state: above_horizon
1288 | - condition: state
1289 | entity_id: input_boolean.bedtime
1290 | state: 'off'
1291 | action:
1292 | - data: {}
1293 | entity_id: light.joyce_lights_zha_group_0x0004
1294 | service: light.turn_on
1295 | - id: '1596118397645'
1296 | alias: Joyce_kamer_no-motion
1297 | description: ''
1298 | trigger:
1299 | - device_id: ce5b788e27f24084a7f402225bef2639
1300 | domain: binary_sensor
1301 | entity_id: binary_sensor.joyce_kamermotion_ias_zone
1302 | platform: device
1303 | type: no_motion
1304 | condition: []
1305 | action:
1306 | - data: {}
1307 | entity_id: light.joyce_lights_zha_group_0x0004
1308 | service: light.turn_off
1309 | - id: '1596404278732'
1310 | alias: bathroom lights on remote
1311 | description: ''
1312 | trigger:
1313 | - platform: device
1314 | domain: mqtt
1315 | device_id: 63d99fbdffe411ea85ccdde3325f23da
1316 | type: click
1317 | subtype: left
1318 | discovery_id: 0x00158d000312d1f1 click_left
1319 | condition: []
1320 | action:
1321 | - service: light.toggle
1322 | data: {}
1323 | entity_id: group.bathroom_group
1324 | mode: single
1325 | - id: '1596404317177'
1326 | alias: bathroom lights right remote
1327 | description: ''
1328 | trigger:
1329 | - platform: device
1330 | domain: mqtt
1331 | device_id: 63d99fbdffe411ea85ccdde3325f23da
1332 | type: action
1333 | subtype: single_right
1334 | discovery_id: 0x00158d000312d1f1 action_single_right
1335 | condition: []
1336 | action:
1337 | - choose:
1338 | - conditions:
1339 | - condition: state
1340 | entity_id: group.bathroom
1341 | state: 'off'
1342 | sequence:
1343 | - type: turn_on
1344 | device_id: 1c1051ecffe411ea868f19cf1dae2ae2
1345 | entity_id: light.0x000b57fffec2a885_light
1346 | domain: light
1347 | brightness_pct: 10
1348 | - type: turn_on
1349 | device_id: e5641237ffe311eabd90b7bffba9f1a8
1350 | entity_id: light.0x90fd9ffffe08e345_light
1351 | domain: light
1352 | brightness_pct: 10
1353 | - conditions:
1354 | - condition: state
1355 | state: 'on'
1356 | entity_id: group.bathroom
1357 | sequence:
1358 | - service: script.increase_brightness
1359 | data:
1360 | group: light.bathroom_lights_group
1361 | default: []
1362 | mode: single
1363 | - id: '1597693630222'
1364 | alias: Presence - Joyce home lights on
1365 | description: ''
1366 | trigger:
1367 | - entity_id: person.joyce
1368 | event: enter
1369 | platform: zone
1370 | zone: zone.home
1371 | condition:
1372 | - condition: state
1373 | entity_id: sun.sun
1374 | state: below_horizon
1375 | action:
1376 | - data: {}
1377 | entity_id: group.livingroom_group
1378 | service: light.turn_on
1379 | - id: '1599301836567'
1380 | alias: bedroom remote light on
1381 | description: ''
1382 | trigger:
1383 | - platform: device
1384 | domain: mqtt
1385 | device_id: 0a027d84ffe511ea83fff5ae080283f1
1386 | type: action
1387 | subtype: button_1_single
1388 | discovery_id: 0x04cf8cdf3c797ed6 action_button_1_single
1389 | condition: []
1390 | action:
1391 | - type: turn_on
1392 | device_id: 28a0bd4affe311eaa1ef035d5294c8e4
1393 | entity_id: light.0xccccccfffe2c31f7_light
1394 | domain: light
1395 | brightness_pct: 30
1396 | - type: turn_on
1397 | device_id: 2929ccb5ffe311ea9ea58d6828011474
1398 | entity_id: light.0xccccccfffec13e57_light
1399 | domain: light
1400 | brightness_pct: 30
1401 | mode: single
1402 | - id: '1599302671502'
1403 | alias: bedroom remote light off
1404 | description: ''
1405 | trigger:
1406 | - platform: device
1407 | domain: mqtt
1408 | device_id: 0a027d84ffe511ea83fff5ae080283f1
1409 | type: action
1410 | subtype: button_2_single
1411 | discovery_id: 0x04cf8cdf3c797ed6 action_button_2_single
1412 | condition: []
1413 | action:
1414 | - type: turn_off
1415 | device_id: 28a0bd4affe311eaa1ef035d5294c8e4
1416 | entity_id: light.0xccccccfffe2c31f7_light
1417 | domain: light
1418 | - type: turn_off
1419 | device_id: 2929ccb5ffe311ea9ea58d6828011474
1420 | entity_id: light.0xccccccfffec13e57_light
1421 | domain: light
1422 | mode: single
1423 | - id: '1599302893374'
1424 | alias: bedroom remote curtain open
1425 | description: ''
1426 | trigger:
1427 | - platform: device
1428 | domain: mqtt
1429 | device_id: 0a027d84ffe511ea83fff5ae080283f1
1430 | type: action
1431 | subtype: button_3_single
1432 | discovery_id: 0x04cf8cdf3c797ed6 action_button_3_single
1433 | condition: []
1434 | action:
1435 | - data: {}
1436 | entity_id: cover.blinds_bedroom
1437 | service: cover.open_cover
1438 | mode: single
1439 | - id: '1599302932492'
1440 | alias: bedroom remote curtain close
1441 | description: ''
1442 | trigger:
1443 | - platform: device
1444 | domain: mqtt
1445 | device_id: 0a027d84ffe511ea83fff5ae080283f1
1446 | type: action
1447 | subtype: button_4_single
1448 | discovery_id: 0x04cf8cdf3c797ed6 action_button_4_single
1449 | condition: []
1450 | action:
1451 | - data: {}
1452 | entity_id: cover.blinds_bedroom
1453 | service: cover.close_cover
1454 | mode: single
1455 | - id: '1599303016275'
1456 | alias: bedroom remote bedtime on
1457 | description: ''
1458 | trigger:
1459 | - platform: device
1460 | domain: mqtt
1461 | device_id: 0a027d84ffe511ea83fff5ae080283f1
1462 | type: action
1463 | subtype: button_5_single
1464 | discovery_id: 0x04cf8cdf3c797ed6 action_button_5_single
1465 | condition: []
1466 | action:
1467 | - data: {}
1468 | entity_id: input_boolean.bedtime
1469 | service: input_boolean.turn_on
1470 | - data: {}
1471 | entity_id: cover.blinds_bedroom
1472 | service: cover.close_cover
1473 | - data:
1474 | code: !secret alarm_pin
1475 | entity_id: alarm_control_panel.home_alarm
1476 | service: alarm_control_panel.alarm_arm_night
1477 | mode: single
1478 | - id: '1599303055558'
1479 | alias: bedroom remote alarm off
1480 | description: ''
1481 | trigger:
1482 | - platform: device
1483 | domain: mqtt
1484 | device_id: 0a027d84ffe511ea83fff5ae080283f1
1485 | type: action
1486 | subtype: button_6_single
1487 | discovery_id: 0x04cf8cdf3c797ed6 action_button_6_single
1488 | condition: []
1489 | action:
1490 | - data:
1491 | code: !secret alarm_pin
1492 | entity_id: alarm_control_panel.home_alarm
1493 | service: alarm_control_panel.alarm_disarm
1494 | mode: single
1495 | - id: '1600083490750'
1496 | alias: Alarm - Pending
1497 | description: ''
1498 | trigger:
1499 | - entity_id: alarm_control_panel.home_alarm
1500 | platform: state
1501 | to: pending
1502 | condition: []
1503 | action:
1504 | - data:
1505 | data:
1506 | actions:
1507 | - action: URI
1508 | title: Disable alarm
1509 | uri: /lovelace/14
1510 | - action: URI
1511 | title: Show camera
1512 | uri: /lovelace/7
1513 | clickAction: /lovelace/14
1514 | color: yellow
1515 | importance: urgent
1516 | sticky: 'true'
1517 | message: ALARM PENDING
1518 | service: notify.notify
1519 | - data: {}
1520 | entity_id: script.livingroom_tv_power
1521 | service: script.turn_on
1522 | mode: single
1523 | - id: '1600622771142'
1524 | alias: bathroom lights off remote
1525 | description: ''
1526 | trigger:
1527 | - platform: device
1528 | domain: mqtt
1529 | device_id: 63d99fbdffe411ea85ccdde3325f23da
1530 | type: click
1531 | subtype: both
1532 | discovery_id: 0x00158d000312d1f1 click_both
1533 | condition: []
1534 | action:
1535 | - type: turn_off
1536 | device_id: e5641237ffe311eabd90b7bffba9f1a8
1537 | entity_id: light.0x90fd9ffffe08e345_light
1538 | domain: light
1539 | - type: turn_off
1540 | device_id: e5565579ffe311ea90b8a7117101b7ff
1541 | entity_id: light.0x90fd9ffffe6d296e_light
1542 | domain: light
1543 | - type: turn_off
1544 | device_id: 1c1051ecffe411ea868f19cf1dae2ae2
1545 | entity_id: light.0x000b57fffec2a885_light
1546 | domain: light
1547 | mode: single
1548 | - id: '1600872209625'
1549 | alias: office_light_first-button
1550 | description: ''
1551 | trigger:
1552 | - device_id: 34274952fca411ea9dd94d3af6f6b71f
1553 | domain: zha
1554 | platform: device
1555 | type: remote_button_short_press
1556 | subtype: button_1
1557 | condition: []
1558 | action:
1559 | - type: toggle
1560 | device_id: a0f4207c5f4742b5b11d5d796757219d
1561 | entity_id: light.office_2
1562 | domain: light
1563 | mode: single
1564 | - id: '1601127151317'
1565 | alias: livingroom_couch_left-button
1566 | description: ''
1567 | trigger:
1568 | - platform: device
1569 | domain: mqtt
1570 | device_id: 2dc67a79ffd711ea8110e1f65861fbf9
1571 | type: click
1572 | subtype: left
1573 | discovery_id: 0x00158d0001e0a3f6 click_left
1574 | condition: []
1575 | action:
1576 | - data: {}
1577 | service: cover.close_cover
1578 | entity_id: cover.livingroom_roller
1579 | mode: single
1580 | - id: '1601127175527'
1581 | alias: livingroom_couch_right-button
1582 | description: ''
1583 | trigger:
1584 | - platform: device
1585 | domain: mqtt
1586 | device_id: 2dc67a79ffd711ea8110e1f65861fbf9
1587 | type: click
1588 | subtype: right
1589 | discovery_id: 0x00158d0001e0a3f6 click_right
1590 | condition: []
1591 | action:
1592 | - data: {}
1593 | service: cover.open_cover
1594 | entity_id: cover.livingroom_roller
1595 | mode: single
1596 | - id: '1601127199750'
1597 | alias: livingroom_couch_both-buttons
1598 | description: ''
1599 | trigger:
1600 | - platform: device
1601 | domain: mqtt
1602 | device_id: 2dc67a79ffd711ea8110e1f65861fbf9
1603 | type: click
1604 | subtype: both
1605 | discovery_id: 0x00158d0001e0a3f6 click_both
1606 | condition: []
1607 | action:
1608 | - data: {}
1609 | service: cover.stop_cover
1610 | entity_id: cover.livingroom_roller
1611 | mode: single
1612 | - id: '1602451111484'
1613 | alias: bedroom_heatingblanket
1614 | description: ''
1615 | trigger:
1616 | - platform: device
1617 | type: turned_on
1618 | device_id: 01721c51feef343dbf6e6e3f45d69ee2
1619 | entity_id: switch.bedroom_bed_switch_l1
1620 | domain: switch
1621 | for:
1622 | hours: 1
1623 | minutes: 0
1624 | seconds: 0
1625 | condition: []
1626 | action:
1627 | - type: turn_off
1628 | device_id: 01721c51feef343dbf6e6e3f45d69ee2
1629 | entity_id: switch.bedroom_bed_switch_l1
1630 | domain: switch
1631 | mode: single
1632 | - id: '1602574298377'
1633 | alias: Notify frontdoor open
1634 | description: ''
1635 | trigger:
1636 | - type: opened
1637 | platform: device
1638 | device_id: b93d1ee6ffe511eaae6795a2a5808e2d
1639 | entity_id: binary_sensor.0x00158d0003eef6c2_contact
1640 | domain: binary_sensor
1641 | for:
1642 | hours: 0
1643 | minutes: 5
1644 | seconds: 0
1645 | condition: []
1646 | action:
1647 | - service: notify.notify
1648 | data:
1649 | message: Frontdoor is open
1650 | title: Frontdoor warning
1651 | mode: single
1652 | - id: '1603006641024'
1653 | alias: livingroom_dinner-table_left-button
1654 | description: ''
1655 | trigger:
1656 | - platform: device
1657 | domain: mqtt
1658 | device_id: 837b9b3006ec11ebb48335955a115863
1659 | type: action
1660 | subtype: single_left
1661 | discovery_id: 0x00158d0001e06eb2 action_single_left
1662 | condition: []
1663 | action:
1664 | - type: turn_on
1665 | device_id: ff5886b8110a11eb98615bd267af77b5
1666 | entity_id: light.livingroom_diner_table_light_light
1667 | domain: light
1668 | brightness_pct: 10
1669 | - condition: device
1670 | type: is_on
1671 | device_id: ff5886b8110a11eb98615bd267af77b5
1672 | entity_id: light.livingroom_diner_table_light_light
1673 | domain: light
1674 | - type: turn_off
1675 | device_id: ff5886b8110a11eb98615bd267af77b5
1676 | entity_id: light.livingroom_diner_table_light_light
1677 | domain: light
1678 | mode: single
1679 | - id: '1603006686049'
1680 | alias: livingroom_dinner-table_right-button
1681 | description: ''
1682 | trigger:
1683 | - platform: device
1684 | domain: mqtt
1685 | device_id: 837b9b3006ec11ebb48335955a115863
1686 | type: action
1687 | subtype: single_right
1688 | discovery_id: 0x00158d0001e06eb2 action_single_right
1689 | condition:
1690 | - condition: device
1691 | type: is_on
1692 | device_id: ff5886b8110a11eb98615bd267af77b5
1693 | entity_id: light.livingroom_diner_table_light_light
1694 | domain: light
1695 | action:
1696 | - service: script.increase_brightness
1697 | data:
1698 | group: light.livingroom_diner_table_light_light
1699 | mode: single
1700 | - id: '1603008059517'
1701 | alias: livingroom_dinner-table_both-button
1702 | description: ''
1703 | trigger:
1704 | - platform: device
1705 | domain: mqtt
1706 | device_id: 837b9b3006ec11ebb48335955a115863
1707 | type: action
1708 | subtype: single_both
1709 | discovery_id: 0x00158d0001e06eb2 action_single_both
1710 | condition: []
1711 | action:
1712 | - type: turn_off
1713 | device_id: ff5886b8110a11eb98615bd267af77b5
1714 | entity_id: light.livingroom_diner_table_light_light
1715 | domain: light
1716 | mode: single
1717 | - id: '1603115111966'
1718 | alias: washer done notification
1719 | description: ''
1720 | trigger:
1721 | - platform: state
1722 | entity_id: sensor.washing_machine_washer_machine_state
1723 | to: stop
1724 | condition: []
1725 | action:
1726 | - service: notify.notify
1727 | data:
1728 | message: Washmachine klaar!
1729 | - service: media_player.volume_set
1730 | data:
1731 | volume_level: 0.3
1732 | entity_id: media_player.living_room_speaker
1733 | - service: tts.microsoft_say
1734 | data:
1735 | entity_id: media_player.living_room_speaker
1736 | message: Wasmachine is klaar.
1737 | mode: single
1738 | - id: '1603793652446'
1739 | alias: Motion bedroom (on)
1740 | description: ''
1741 | trigger:
1742 | - type: motion
1743 | platform: device
1744 | device_id: 08a20835182f11eb97cae99f87a017fd
1745 | entity_id: binary_sensor.bedroom_tv_motion_occupancy
1746 | domain: binary_sensor
1747 | condition:
1748 | - condition: numeric_state
1749 | entity_id: sensor.downstairs_hallway_ceiling_lux_illuminance_lux
1750 | attribute: illuminance_lux
1751 | below: '4'
1752 | - condition: state
1753 | entity_id: input_boolean.bedtime
1754 | state: 'off'
1755 | action:
1756 | - type: turn_on
1757 | device_id: 0f1dc25d2c5aaf2207c5a6fc97d74a17
1758 | entity_id: light.office_closet_light_light
1759 | domain: light
1760 | brightness_pct: 20
1761 | mode: single
1762 | - id: '1603793679989'
1763 | alias: Motion bedroom (off)
1764 | description: ''
1765 | trigger:
1766 | - type: no_motion
1767 | platform: device
1768 | device_id: 08a20835182f11eb97cae99f87a017fd
1769 | entity_id: binary_sensor.bedroom_tv_motion_occupancy
1770 | domain: binary_sensor
1771 | condition: []
1772 | action:
1773 | - service: light.turn_off
1774 | data: {}
1775 | entity_id: light.office_closet_light_light
1776 | mode: single
1777 | - id: '1604930071670'
1778 | alias: weerhuisje_update
1779 | description: ''
1780 | trigger:
1781 | - platform: state
1782 | entity_id: sensor.weerhuisje_temperature
1783 | condition: []
1784 | action:
1785 | - service: rest_command.send_luftdaten_pm
1786 | data: {}
1787 | - service: rest_command.send_luftdaten_tph
1788 | data: {}
1789 | mode: queued
1790 | max: 10
1791 | - id: '1605466526525'
1792 | alias: Livingroom Soundbar tv
1793 | description: Set the Soundbar to the correct channel.
1794 | trigger:
1795 | - platform: state
1796 | entity_id: media_player.livingroom_tv
1797 | from: 'off'
1798 | to: 'on'
1799 | condition: []
1800 | action:
1801 | - service: media_player.select_source
1802 | data:
1803 | entity_id: media_player.lg_soundbar_3fb988f9_8ddf_4f72_a0fd_392653dbf76c
1804 | source: Optical
1805 | entity_id: media_player.lg_soundbar_4def0570_64b3_47ff_b3e2_6ffb36fdf06a
1806 | mode: single
1807 | - id: '1606582032363'
1808 | alias: Frontdoor_light_on
1809 | description: ''
1810 | trigger:
1811 | - platform: state
1812 | entity_id: sun.sun
1813 | to: below_horizon
1814 | condition: []
1815 | action:
1816 | - type: turn_on
1817 | device_id: cfb95786a9b510d78ad7395f279d3f81
1818 | entity_id: light.frontdoor_light
1819 | domain: light
1820 | brightness_pct: 5
1821 | mode: single
1822 | - id: '1606582159994'
1823 | alias: Frontdoor_light_off
1824 | description: ''
1825 | trigger:
1826 | - platform: time
1827 | at: '22:30'
1828 | condition: []
1829 | action:
1830 | - type: turn_off
1831 | device_id: cfb95786a9b510d78ad7395f279d3f81
1832 | entity_id: light.frontdoor_light
1833 | domain: light
1834 | mode: single
1835 |
--------------------------------------------------------------------------------