├── LICENSE ├── README.md ├── ZWAVE.md ├── alarm └── manual.yaml ├── alerts ├── README.md ├── flood_while_away.yaml ├── flood_while_home.yaml ├── freezer_lid.yaml ├── garage_door_l.yaml └── garage_door_r.yaml ├── auth_providers.yaml ├── automation ├── README.md ├── alarm │ ├── README.md │ ├── alarm_arm_away.yaml │ ├── alarm_arm_night.yaml │ ├── alarm_arm_vacation.yaml │ ├── alarm_disarm_hall.yaml │ ├── alarm_disarm_morning.yaml │ └── alarm_disarm_returned.yaml ├── all_away_media_off.yaml ├── battery │ ├── README.md │ ├── battery_aa.yaml │ ├── battery_cr1632.yaml │ ├── battery_cr2032.yaml │ ├── battery_cr2450.yaml │ └── battery_notes.yaml ├── bedtime.yaml ├── camera │ ├── frigate_motion_start.yaml │ ├── frigate_motion_stop.yaml │ ├── frigate_new_event.yaml │ ├── frigate_new_notification.yaml │ ├── frigate_new_object.yaml │ ├── frigate_notification.yaml │ ├── start_camera_stream.yaml │ └── stop_camera_stream.yaml ├── family_room │ ├── README.md │ ├── awtrix_clock_colours.yaml │ ├── family_room_not_occupied.yaml │ ├── family_room_occupied.yaml │ ├── freezer_left_open.yaml │ ├── modes │ │ ├── family_room_arrival.yaml │ │ ├── family_room_away.yaml │ │ ├── family_room_bedtime.yaml │ │ ├── family_room_off.yaml │ │ └── family_room_on.yaml │ ├── reset_radio.yaml │ └── tv_not_satv.yaml ├── front_of_house │ ├── README.md │ ├── front_door_closed.yaml │ ├── front_door_left_open.yaml │ ├── front_door_open.yaml │ ├── garage_door_closed.yaml │ ├── garage_door_open.yaml │ ├── garage_open_nobody_home.yaml │ ├── number-sign-off.yaml │ ├── number-sign-on-evening.yaml │ ├── number-sign-on-morning.yaml │ ├── person2-up-early.yaml │ ├── person2_away_garage_open.yaml │ ├── person2_home_disable_garage_open.yaml │ ├── person2_home_enable_garage_open.yaml │ └── probably_leaving.yaml ├── garden │ ├── README.md │ ├── garden_lights_left_on.yaml │ ├── gate_open_doors_closed.yaml │ ├── nighttime_garden_off.yaml │ ├── returned_gate_open.yaml │ ├── utility-door-left-open.yaml │ ├── utility-door-sunset-closed.yaml │ ├── utility-door-sunset-off.yaml │ ├── utility-door-sunset-on.yaml │ └── utility-remote.yaml ├── guest_room │ ├── guest_bedroom_not_occupied.yaml │ └── guest_bedroom_occupied.yaml ├── guests │ ├── guest_mode_off.yaml │ └── guest_mode_on.yaml ├── hall │ ├── README.md │ ├── hall_lights_on_when_off.yaml │ ├── hall_lights_turned_off.yaml │ ├── hall_lights_unavailable_off.yaml │ ├── hall_not_occupied.yaml │ ├── hall_occupied.yaml │ ├── lights │ │ ├── hall_lights_to_away.yaml │ │ ├── hall_lights_to_bedtime.yaml │ │ ├── hall_lights_to_dim.yaml │ │ ├── hall_lights_to_motion.yaml │ │ ├── hall_lights_to_night_on.yaml │ │ └── hall_lights_to_off.yaml │ ├── modes │ │ ├── hall_mode_away.yaml │ │ ├── hall_mode_bedtime.yaml │ │ ├── hall_mode_dim.yaml │ │ ├── hall_mode_night_on.yaml │ │ └── hall_mode_off.yaml │ └── turned_off_by_person3.yaml ├── house │ ├── house_awake.yaml │ ├── lights │ │ ├── house_lights_from_bedtime.yaml │ │ └── house_lights_to_bedtime.yaml │ └── modes │ │ ├── house_mode_auto.yaml │ │ ├── house_mode_away.yaml │ │ ├── house_mode_bedtime.yaml │ │ └── house_mode_holiday.yaml ├── house_awake.yaml ├── living_room │ ├── README.md │ ├── cooler_outside_livingroom.yaml │ ├── dimmer.yaml │ ├── dimmer_down_motion.yaml │ ├── dimmer_off.yaml │ ├── dimmer_off_while_off.yaml │ ├── dimmer_on.yaml │ ├── dimmer_on_while_away.yaml │ ├── dimmer_up_enable_lights.yaml │ ├── dog_slipped_in.yaml │ ├── hotter_outside_livingroom.yaml │ ├── lights │ │ ├── living_room_christmas_tree_off.yaml │ │ ├── living_room_christmas_tree_on.yaml │ │ ├── living_room_lights_bedtime.yaml │ │ ├── living_room_lights_day_on.yaml │ │ ├── living_room_lights_dim_on.yaml │ │ ├── living_room_lights_motion.yaml │ │ ├── living_room_lights_night_on.yaml │ │ ├── living_room_lights_off.yaml │ │ ├── living_room_lights_on_when_off.yaml │ │ └── living_room_lights_wake_on.yaml │ ├── living_room_adaptive.yaml │ ├── living_room_dark_motion.yaml │ ├── living_room_dark_no_motion.yaml │ ├── living_room_movement.yaml │ ├── living_room_table_light_unav_off.yaml │ ├── living_room_table_light_unav_on.yaml │ ├── modes │ │ ├── living_room_arrival.yaml │ │ ├── living_room_away.yaml │ │ ├── living_room_bedtime.yaml │ │ ├── living_room_day_on.yaml │ │ ├── living_room_dim.yaml │ │ ├── living_room_dim_motion.yaml │ │ ├── living_room_dim_off.yaml │ │ ├── living_room_mode_motion.yaml │ │ ├── living_room_mode_motion_off.yaml │ │ ├── living_room_night_on.yaml │ │ ├── living_room_not_occupied.yaml │ │ ├── living_room_occupied.yaml │ │ ├── living_room_off.yaml │ │ ├── living_room_off_empty.yaml │ │ ├── living_room_sleep_mode.yaml │ │ └── living_room_wake_off.yaml │ ├── override │ │ └── living_room_override.yaml │ ├── sonos_off_tv_unmute.yaml │ ├── sonos_on_tv_mute.yaml │ ├── tv-on-sonos-off.yaml │ ├── tv_light_on.yaml │ ├── tv_off.yaml │ └── tv_on_reconnect.yaml ├── master_bedroom │ ├── README.md │ ├── air_quality.yaml │ ├── bedhead-light-dim-late.yaml │ ├── lights │ │ ├── lights_off_sleeping_bedtime.yaml │ │ ├── master_bedroom_lights_bedtime.yaml │ │ ├── master_bedroom_lights_dim.yaml │ │ ├── master_bedroom_lights_motion.yaml │ │ ├── master_bedroom_lights_night.yaml │ │ ├── master_bedroom_lights_off.yaml │ │ ├── master_bedroom_lights_on.yaml │ │ ├── master_bedroom_lights_sleeping.yaml │ │ └── master_bedroom_lights_wake.yaml │ ├── master_bedroom_button_pushed.yaml │ ├── master_bedroom_cube.yaml │ ├── master_bedroom_not_occupied.yaml │ ├── master_bedroom_occupied.yaml │ └── modes │ │ ├── master_bedroom_lights_turned_off.yaml │ │ ├── master_bedroom_lights_turned_on.yaml │ │ ├── master_bedroom_mode_bedtime.yaml │ │ ├── master_bedroom_mode_off.yaml │ │ ├── master_bedroom_mode_on.yaml │ │ ├── master_bedroom_mode_wake.yaml │ │ ├── master_bedroom_motion.yaml │ │ ├── master_bedroom_no_motion.yaml │ │ └── master_bedroom_to_mode_off.yaml ├── notification │ ├── README.md │ ├── awtrix_weather_app.yaml │ ├── bin_notification.yaml │ ├── bin_reminder.yaml │ ├── rain_alert.yaml │ ├── signal │ │ └── signal_received.yaml │ ├── telegram │ │ ├── callback_whereis.yaml │ │ ├── command_check.yaml │ │ ├── command_help.yaml │ │ ├── command_lights.yaml │ │ ├── command_lights_on.yaml │ │ ├── command_ping.yaml │ │ ├── command_status.yaml │ │ ├── command_trains.yaml │ │ ├── command_where.yaml │ │ ├── command_whereis.yaml │ │ ├── commands_lights_off.yaml │ │ └── telegram_callback_trains.yaml │ └── weather_notification.yaml ├── office │ ├── README.md │ ├── awtrix_calendar.yaml │ ├── awtrix_clock_mode.yaml │ ├── awtrix_next_meeting.yaml │ ├── hotter_outside_office.yaml │ ├── lights │ │ ├── office_alert.yaml │ │ ├── office_lights_dim.yaml │ │ ├── office_lights_motion.yaml │ │ ├── office_lights_off.yaml │ │ ├── office_lights_on.yaml │ │ ├── office_lights_pause.yaml │ │ ├── office_lights_unpaused.yaml │ │ └── office_lights_wake.yaml │ ├── location_update.yaml │ ├── modes │ │ ├── office_lights_turned_off.yaml │ │ ├── office_lights_turned_on.yaml │ │ ├── office_mode_no_wake.yaml │ │ ├── office_mode_off.yaml │ │ ├── office_mode_on.yaml │ │ ├── office_mode_wake.yaml │ │ ├── office_motion.yaml │ │ ├── office_no_motion.yaml │ │ ├── office_no_presence.yaml │ │ ├── office_not_occupied.yaml │ │ ├── office_occupied.yaml │ │ ├── office_paused_motion.yaml │ │ ├── office_presence.yaml │ │ └── office_unoccupied.yaml │ ├── office_air.yaml │ ├── office_calendar_announcement.yaml │ ├── office_calendar_reminder.yaml │ ├── office_dial.yaml │ ├── office_dial_rotate.yaml │ ├── office_dial_test.yaml │ ├── office_lights_on_when_off.yaml │ ├── office_meeting_ended.yaml │ ├── office_meeting_started.yaml │ ├── office_sonos_switch_off.yaml │ ├── office_sonos_unavailable.yaml │ ├── office_unoccupied_window_open.yaml │ ├── office_volume_change.yaml │ ├── office_white_noise.yaml │ ├── outside_door_opened.yaml │ ├── pause_music_in_the_office.yaml │ └── play_music_in_the_office.yaml ├── people │ ├── adults_away.yaml │ ├── adults_away_something_open.yaml │ ├── adults_returned.yaml │ ├── bedtime_something_open.yaml │ ├── guest_mode_off_nobody_home.yaml │ ├── holiday.yaml │ ├── holiday_over.yaml │ ├── home_not_occupied.yaml │ ├── home_occupied.yaml │ ├── nearly_home.yaml │ ├── people_reload_just_arrived.yaml │ ├── people_reload_just_left.yaml │ ├── people_status_arrived.yaml │ ├── people_status_away.yaml │ ├── people_status_home.yaml │ ├── people_status_left.yaml │ ├── people_status_nearly_home.yaml │ ├── person1 │ │ ├── README.md │ │ ├── person1_asleep.yaml │ │ ├── person1_at_ep.yaml │ │ ├── person1_at_haymarket.yaml │ │ ├── person1_at_work.yaml │ │ ├── person1_awake.yaml │ │ ├── person1_away.yaml │ │ ├── person1_changing_zones.yaml │ │ ├── person1_home.yaml │ │ ├── person1_home_after_work.yaml │ │ ├── person1_in_bed.yaml │ │ ├── person1_location_update.yaml │ │ ├── person1_next_alarm.yaml │ │ ├── person1_not_at_work.yaml │ │ ├── person1_on_the_move.yaml │ │ ├── person1_phone_plugged.yaml │ │ ├── person1_phone_unplugged.yaml │ │ ├── person1_status_pixel.yaml │ │ ├── person1_tablet_away.yaml │ │ ├── person1_tablet_home.yaml │ │ ├── person1_travelling.yaml │ │ ├── person1_up.yaml │ │ ├── person1_wifi_status.yaml │ │ └── startup_person1_up.yaml │ ├── person2 │ │ ├── person2_asleep.yaml │ │ ├── person2_at_gym.yaml │ │ ├── person2_at_station.yaml │ │ ├── person2_awake.yaml │ │ ├── person2_away.yaml │ │ ├── person2_changing_zones.yaml │ │ ├── person2_coming_home.yaml │ │ ├── person2_driving.yaml │ │ ├── person2_high_accuracy.yaml │ │ ├── person2_home.yaml │ │ ├── person2_in_bed.yaml │ │ ├── person2_in_the_car.yaml │ │ ├── person2_location_update.yaml │ │ ├── person2_nearly_home.yaml │ │ ├── person2_next_alarm.yaml │ │ ├── person2_not_driving.yaml │ │ ├── person2_not_overseas.yaml │ │ ├── person2_on_the_move.yaml │ │ ├── person2_overseas.yaml │ │ ├── person2_phone_not_plugged.yaml │ │ ├── person2_phone_plugged.yaml │ │ ├── person2_phone_unplugged.yaml │ │ ├── person2_pre_alarm.yaml │ │ ├── person2_returning.yaml │ │ ├── person2_returning_home.yaml │ │ ├── person2_sleep.yaml │ │ ├── person2_tablet_plugged.yaml │ │ ├── person2_tablet_unplugged.yaml │ │ ├── person2_tablet_wifi_status.yaml │ │ ├── person2_up.yaml │ │ ├── person2_wifi_status.yaml │ │ ├── sleep_as_android.yaml │ │ └── startup_person2_up.yaml │ ├── person3 │ │ ├── person3_asleep.yaml │ │ ├── person3_awake.yaml │ │ ├── person3_away.yaml │ │ ├── person3_changing_zones.yaml │ │ ├── person3_coming_home.yaml │ │ ├── person3_home.yaml │ │ ├── person3_in_bed.yaml │ │ ├── person3_location_update.yaml │ │ ├── person3_next_alarm.yaml │ │ ├── person3_on_the_move.yaml │ │ ├── person3_phone_plugged.yaml │ │ ├── person3_phone_unplugged.yaml │ │ ├── person3_status_pixel.yaml │ │ ├── person3_travelling.yaml │ │ ├── person3_up.yaml │ │ ├── person3_wifi_status.yaml │ │ └── startup_person3_up.yaml │ ├── person4 │ │ ├── person4_away.yaml │ │ ├── person4_changing_zones.yaml │ │ ├── person4_home.yaml │ │ ├── person4_location_update.yaml │ │ └── person4_on_the_move.yaml │ ├── return-train-status.yaml │ ├── returned_home.yaml │ ├── somebody_arrived_scan.yaml │ ├── startup_location_updates.yaml │ ├── tasker_hook.yaml │ └── train-status.yaml ├── places │ ├── person2_at_ams.yaml │ ├── person2_at_bru.yaml │ ├── person2_at_cdg.yaml │ ├── person2_at_iad.yaml │ ├── person2_at_lcy.yaml │ ├── person2_at_lhr.yaml │ ├── person2_at_sin.yaml │ ├── person2_at_work_airport.yaml │ └── person2_at_work_airport_returning.yaml ├── platform │ ├── README.md │ ├── bt-front-dead.yaml │ ├── bt-front-offline-long.yaml │ ├── bt-front-offline.yaml │ ├── bt-rear-dead.yaml │ ├── bt-rear-offline.yaml │ ├── bt_node_hung.yaml │ ├── ha-started.yaml │ ├── ha-stopped.yaml │ ├── ha_automations_reloaded.yaml │ ├── hacs_update.yaml │ ├── healthcheck.yaml │ ├── internet_outage.yaml │ ├── last_motion.yaml │ ├── last_opened.yaml │ ├── last_opened_interior.yaml │ ├── living_room_table_off.yaml │ ├── living_room_table_on.yaml │ ├── notify_about_unavailable.yaml │ ├── plex_hook.yaml │ ├── printer_low.yaml │ ├── printer_problems.yaml │ ├── scanner_stuck.yaml │ ├── wan_ip_changed.yaml │ ├── zigbee2mqtt_devices.yaml │ ├── zigbee_offline.yaml │ └── zigbee_online.yaml ├── season │ ├── README.md │ ├── christmas_disabled.yaml │ ├── christmas_enabled.yaml │ ├── season_is_autumn.yaml │ ├── season_is_christmas.yaml │ ├── season_is_easter.yaml │ ├── season_is_spring.yaml │ ├── season_is_summer.yaml │ └── season_is_winter.yaml ├── second_bedroom │ ├── README.md │ ├── alarm │ │ ├── person1_alarm_left_playing.yaml │ │ ├── person1_alarm_light.yaml │ │ ├── person1_alarm_playing.yaml │ │ └── person1_up_reminder_off.yaml │ ├── lights │ │ ├── second_bedroom_lights_to_bedtime.yaml │ │ ├── second_bedroom_lights_to_dim.yaml │ │ ├── second_bedroom_lights_to_motion.yaml │ │ ├── second_bedroom_lights_to_off.yaml │ │ ├── second_bedroom_lights_to_on.yaml │ │ └── second_bedroom_lights_to_wake.yaml │ ├── modes │ │ ├── second_bedroom_mode_bedtime.yaml │ │ ├── second_bedroom_mode_motion.yaml │ │ ├── second_bedroom_mode_no_motion.yaml │ │ ├── second_bedroom_mode_off.yaml │ │ ├── second_bedroom_mode_on.yaml │ │ └── second_bedroom_mode_wake.yaml │ ├── person1_bedside_left_on.yaml │ ├── person1_phone_alarm.yaml │ ├── second_bedroom_button.yaml │ ├── second_bedroom_not_occupied.yaml │ └── second_bedroom_occupied.yaml ├── spare_bedroom │ ├── guest_mode_off.yaml │ └── guest_mode_on.yaml ├── test │ ├── README.md │ ├── telegram_callback.yaml │ ├── telegram_command.yaml │ ├── telegram_text.yaml │ ├── test_alarm.yaml │ └── test_calendar.yaml ├── things │ ├── bin_calendar.yaml │ ├── car_away.yaml │ ├── car_home.yaml │ ├── car_location.yaml │ ├── car_moved.yaml │ ├── car_update.yaml │ ├── power_cycle_loki.yaml │ └── power_cycle_tempus.yaml ├── toilet │ ├── toilet_occupied.yaml │ └── toilet_unoccupied.yaml └── vestibule │ ├── lights │ ├── vestibule_lights_to_away.yaml │ ├── vestibule_lights_to_bedtime.yaml │ ├── vestibule_lights_to_night_on.yaml │ ├── vestibule_lights_to_off.yaml │ └── vestibule_lights_to_on.yaml │ └── modes │ ├── vestibule_mode_away.yaml │ ├── vestibule_mode_bedtime.yaml │ ├── vestibule_mode_night_on.yaml │ ├── vestibule_mode_off.yaml │ └── vestibule_mode_on.yaml ├── automations.yaml ├── binary_sensors ├── README.md ├── meteoalarm.yaml ├── trend_living_room_light.yaml └── trend_sun_elevation.yaml ├── blueprints ├── automation │ ├── README.md │ ├── awtrix │ │ └── awtrix_calendar_notifier.yaml │ ├── homeassistant │ │ ├── README.md │ │ ├── motion_light.yaml │ │ └── notify_leaving_zone.yaml │ ├── light_motion.yaml │ ├── pavax │ │ └── z2m_aqara_trv_external_temperature.yaml │ ├── person_away.yaml │ └── person_home.yaml ├── script │ └── homeassistant │ │ └── confirmable_notification.yaml └── template │ └── homeassistant │ └── inverted_binary_sensor.yaml ├── climate └── README.md ├── configuration.yaml ├── custom_components ├── README.md ├── adaptive_lighting │ └── services.yaml ├── alarmo │ └── services.yaml ├── awtrix │ └── services.yaml ├── battery_notes │ └── services.yaml ├── frigate │ └── services.yaml ├── hacs │ └── frontend │ │ ├── elements │ │ └── hacs.css │ │ └── templates │ │ ├── base.html │ │ ├── error.html │ │ ├── grid.html │ │ ├── grid_new.html │ │ ├── message.html │ │ ├── modal │ │ ├── upgrade_all.html │ │ └── wrong_ha_version.html │ │ ├── overviews.html │ │ ├── repository.html │ │ ├── repository │ │ ├── authors.html │ │ ├── buttons.html │ │ ├── menu.html │ │ ├── note.html │ │ └── versionselect.html │ │ ├── settings.html │ │ ├── settings │ │ ├── buttons.html │ │ ├── custom_repositories.html │ │ ├── dev │ │ │ ├── remove_new_flag.html │ │ │ ├── repositories.html │ │ │ ├── repository.html │ │ │ ├── set_ha_version.html │ │ │ ├── template_test.html │ │ │ └── token.html │ │ ├── developer.html │ │ ├── hacs_info.html │ │ └── hidden_repositories.html │ │ ├── table.html │ │ └── table_new.html ├── llmvision │ └── services.yaml ├── myskoda │ └── quality_scale.yaml ├── remote_homeassistant │ └── services.yaml ├── skodaconnect │ └── services.yaml ├── spook │ └── services.yaml ├── sun2 │ └── services.yaml ├── thermal_comfort │ └── services.yaml ├── watchman │ └── services.yaml └── webrtc │ └── www │ ├── embed.html │ └── index.html ├── customize.yaml ├── device_tracker ├── README.md └── nmap_tracker.yaml.DISABLED ├── docker-compose.yml ├── ffmpeg.yaml ├── floorplan.html ├── frontend.yaml ├── go2rtc.yaml ├── google_assistant.yaml ├── groups ├── car.yaml ├── christmas_control.yaml ├── downstairs_occupied.yaml ├── flood_sensors.yaml ├── guests.yaml ├── living_room_lights.yaml ├── my_downstairs_windows.yaml ├── my_exit_doors.yaml ├── my_exterior_doors.yaml ├── my_exterior_windows.yaml ├── my_interior_doors.yaml ├── my_lights.yaml ├── my_other_exterior_doors.yaml ├── my_people.yaml ├── my_room_status.yaml ├── my_upstairs_windows.yaml ├── own_laptop.yaml ├── person_dor.yaml ├── person_person1.yaml ├── person_person1_tablet.yaml ├── person_person1_tablet_old.yaml ├── person_person2.yaml ├── person_person2_laptop.yaml ├── person_person2_tablet.yaml ├── person_person2_work.yaml ├── person_person3.yaml ├── person_person4.yaml ├── tv.yaml ├── upstairs_occupied.yaml └── work_laptop.yaml ├── hardware.md ├── homeassistant.yaml ├── http.yaml ├── influxdb.yaml ├── input_boolean ├── README.md ├── alarm_mode.yaml ├── bedtime.yaml ├── camera │ ├── front_camera_motion.yaml │ ├── front_camera_motion_interesting.yaml │ ├── stream_camera.yaml │ └── stream_front_camera_motion.yaml ├── car_home.yaml ├── door_front.yaml ├── door_garage_bike.yaml ├── door_garage_car.yaml ├── door_patio.yaml ├── door_utility.yaml ├── family_room_lights_auto.yaml ├── garden_lights.yaml ├── guest_mode.yaml ├── holiday_mode.yaml ├── lighting_automations.yaml ├── lighting_living_room.yaml ├── lighting_office.yaml ├── livingroom_lights_auto.yaml ├── lovelace │ ├── lovelace_car_more.yaml │ ├── lovelace_person1_more.yaml │ ├── lovelace_person2_more.yaml │ ├── lovelace_person2_work_more.yaml │ ├── lovelace_person3_more.yaml │ └── lovelace_person4_more.yaml ├── office_paused.yaml ├── people │ ├── adults_away.yaml │ ├── all_away.yaml │ ├── notify_person1_work.yaml │ ├── notify_person2_working.yaml │ ├── notify_train_status_work.yaml │ ├── person1_alarm_sounded.yaml │ ├── person1_driving.yaml │ ├── person1_home.yaml │ ├── person1_in_bed.yaml │ ├── person1_is_awake.yaml │ ├── person1_overseas.yaml │ ├── person1_phone_charging.yaml │ ├── person1_tablet_charging.yaml │ ├── person1_tablet_home.yaml │ ├── person1_travelling.yaml │ ├── person2_driving.yaml │ ├── person2_home.yaml │ ├── person2_in_bed.yaml │ ├── person2_is_awake.yaml │ ├── person2_laptop_home.yaml │ ├── person2_overseas.yaml │ ├── person2_phone_charging.yaml │ ├── person2_tablet_charging.yaml │ ├── person2_tablet_home.yaml │ ├── person2_travelling.yaml │ ├── person2_work_home.yaml │ ├── person3_driving.yaml │ ├── person3_home.yaml │ ├── person3_in_bed.yaml │ ├── person3_is_awake.yaml │ ├── person3_overseas.yaml │ ├── person3_phone_charging.yaml │ ├── person3_travelling.yaml │ ├── person4_driving.yaml │ └── person4_home.yaml ├── rooms │ ├── bathroom_occupied.yaml │ ├── family_room_christmas.yaml │ ├── family_room_occupied.yaml │ ├── garage_occupied.yaml │ ├── guest_bedroom_occupied.yaml │ ├── hall_christmas.yaml │ ├── home_occupied.yaml │ ├── kitchen_occupied.yaml │ ├── living_room_christmas.yaml │ ├── living_room_occupied.yaml │ ├── master_bedroom_occupied.yaml │ ├── master_ensuite_occupied.yaml │ ├── office_occupied.yaml │ ├── second_bedroom_occupied.yaml │ ├── second_ensuite_occupied.yaml │ ├── spare_bedroom_occupied.yaml │ ├── toilet_occupied.yaml │ ├── utility_occupied.yaml │ └── vestibule_christmas.yaml ├── shutdown_in_progress.yaml ├── test_mode.yaml ├── train_problems.yaml ├── travel │ ├── google_travel_time.yaml │ └── here_travel_time.yaml ├── update_mesh_diagram.yaml └── work_laptop_home.yaml ├── input_datetime ├── ha_shutdown.yaml ├── person1_next_alarm.yaml ├── person2_next_alarm.yaml ├── person3_next_alarm.yaml └── return_train_time.yaml ├── input_number ├── README.md ├── door_delay.yaml ├── front_camera_interesting_things.yaml ├── garden_time.yaml ├── room_dark.yaml ├── room_dim.yaml └── room_low_light.yaml ├── input_select ├── README.md ├── camera_stream_target.yaml ├── people │ ├── family_status_dropdown.yaml │ ├── person1_status_dropdown.yaml │ ├── person2_status_dropdown.yaml │ ├── person3_status_dropdown.yaml │ └── person4_status_dropdown.yaml ├── rooms │ ├── bathroom.yaml │ ├── family_room.yaml │ ├── garage.yaml │ ├── guest_bedroom.yaml │ ├── hall.yaml │ ├── house.yaml │ ├── kitchen.yaml │ ├── living_room.yaml │ ├── master_bedroom.yaml │ ├── master_ensuite.yaml │ ├── office.yaml │ ├── second_bedroom.yaml │ ├── second_ensuite.yaml │ ├── spare_bedroom.yaml │ ├── toilet.yaml │ ├── utility.yaml │ └── vestibule.yaml └── season.yaml ├── input_text ├── camera_event_id.yaml ├── camera_message.yaml ├── car.yaml ├── last_motion.yaml ├── last_opened.yaml ├── person_person1.yaml ├── person_person2.yaml ├── person_person3.yaml ├── person_person4.yaml ├── telegram_message.yaml ├── train_message.yaml └── weather_message.yaml ├── integrations.md ├── intent_scripts └── README.md ├── light ├── README.md ├── master_bedroom_bedhead.yaml └── toilet.yaml ├── local └── bin │ ├── README.md │ └── prep-and-git-push ├── logger.yaml ├── lovelace.yaml ├── lovelace ├── README.md ├── cch.yaml ├── custom_header.yaml ├── resources.yaml ├── view-admin-cameras.yaml ├── view-automations.yaml ├── view-automations_bedrooms.yaml ├── view-automations_downstairs.yaml ├── view-automations_group.yaml ├── view-automations_more.yaml ├── view-automations_notifications.yaml ├── view-automations_person1.yaml ├── view-automations_person2.yaml ├── view-automations_person3.yaml ├── view-automations_upstairs.yaml ├── view-cameras.yaml ├── view-cast.yaml ├── view-devices.yaml ├── view-floor-first.yaml ├── view-floor-ground.yaml ├── view-floorplan.yaml ├── view-frigate.yaml ├── view-home.yaml ├── view-information.yaml ├── view-inputs.yaml ├── view-lighting_control.yaml ├── view-media.yaml ├── view-overview.yaml ├── view-people.yaml ├── view-scripts.yaml ├── view-spacer.yaml ├── view-spacer2.yaml ├── view-train_status.yaml ├── view-weather.yaml └── view-zigbee.yaml ├── media_player └── README.md ├── mqtt ├── binary_sensor │ ├── mqtt_first_floor_front.yaml │ ├── mqtt_first_floor_rear.yaml │ └── zigbee2mqtt_bridge.yaml ├── device_tracker │ ├── monitor_car_front.yaml │ ├── monitor_car_rear.yaml │ ├── monitor_person1_bt_front_mobile.yaml │ ├── monitor_person1_bt_front_tablet.yaml │ ├── monitor_person1_bt_mobile.yaml │ ├── monitor_person1_bt_tablet.yaml │ ├── monitor_person2_bt_front_laptop.yaml │ ├── monitor_person2_bt_front_mobile.yaml │ ├── monitor_person2_bt_front_tablet.yaml │ ├── monitor_person2_bt_front_work.yaml │ ├── monitor_person2_bt_laptop.yaml │ ├── monitor_person2_bt_mobile.yaml │ ├── monitor_person2_bt_tablet.yaml │ ├── monitor_person2_bt_work.yaml │ ├── monitor_person3_bt_front_mobile.yaml │ ├── monitor_person3_bt_mobile.yaml │ ├── monitor_person4_bt_front_mobile.yaml │ ├── monitor_person4_bt_mobile.yaml │ ├── monitor_work_front_laptop.yaml │ ├── monitor_work_laptop.yaml │ ├── person_person1.yaml │ ├── person_person1_tablet_wifi.yaml │ ├── person_person1_wifi.yaml │ ├── person_person2.yaml │ ├── person_person2_tablet_wifi.yaml │ ├── person_person2_wifi.yaml │ ├── person_person3.yaml │ ├── person_person3_wifi.yaml │ └── person_person4.yaml └── sensor │ ├── people │ ├── mqtt_car.yaml │ ├── mqtt_person1.yaml │ ├── mqtt_person1_tablet.yaml │ ├── mqtt_person2.yaml │ ├── mqtt_person2_tablet.yaml │ ├── mqtt_person2_work.yaml │ └── mqtt_person3.yaml │ └── zigbee │ ├── zigbee2mqtt_coordinator.yaml │ ├── zigbee2mqtt_version.yaml │ ├── zigbee3mqtt_coordinator.yaml │ ├── zigbee3mqtt_state.yaml │ └── zigbee3mqtt_version.yaml ├── notify ├── README.md ├── adults.yaml ├── apprise.yaml ├── discord_webhook.yaml ├── garage.yaml ├── office_alert.yaml ├── office_alert_silent.yaml ├── person1.yaml ├── person2.yaml ├── person3.yaml ├── signal.yaml ├── status_alert.yaml ├── telegram.yaml ├── tts_family_room.yaml ├── tts_guest_bedroom.yaml ├── tts_living_room.yaml ├── tts_master_bedroom.yaml ├── tts_office.yaml └── tts_second_bedroom.yaml ├── proximity ├── README.md ├── person1_home.yaml ├── person1_work.yaml ├── person2_head_office.yaml ├── person2_home.yaml ├── person2_work.yaml ├── person3_home.yaml ├── person4_home.yaml └── person4_work.yaml ├── recorder.yaml ├── rest ├── healthcheck.yaml └── signal.yaml ├── samsung_tv.yaml ├── scenes.yaml ├── scenes ├── README.md ├── family_room │ └── family_room_radio.yaml └── house │ └── all_off.yaml ├── scripts ├── README.md ├── alarm_lights_enable.yaml ├── alarm_lights_on.yaml ├── bedtime_slow_off.yaml ├── camera │ └── README.md ├── garden_door_after_sunset.yaml ├── hall │ ├── hall_lights_night.yaml │ ├── hall_string_off.yaml │ ├── hall_string_on.yaml │ ├── hall_strip_dim.yaml │ ├── hall_strip_night.yaml │ ├── hall_strip_off.yaml │ └── hall_strip_on.yaml ├── house_alert.yaml ├── nop.yaml ├── notify_house.yaml ├── notify_person2.yaml ├── notify_person2_at_home.yaml ├── notify_person3_at_home.yaml ├── people │ ├── person1 │ │ ├── person1_away.yaml │ │ ├── person1_home.yaml │ │ ├── person1_travel_sensor.yaml │ │ ├── person1_traveltime.yaml │ │ └── wake_person1.yaml │ ├── person2 │ │ ├── person2_away.yaml │ │ ├── person2_home.yaml │ │ ├── person2_notify_test.yaml │ │ ├── person2_travel_sensor.yaml │ │ └── person2_traveltime.yaml │ ├── person3 │ │ ├── person3_away.yaml │ │ ├── person3_home.yaml │ │ ├── person3_travel_sensor.yaml │ │ └── person3_traveltime.yaml │ └── person4 │ │ ├── person4_away.yaml │ │ ├── person4_home.yaml │ │ ├── person4_travel_sensor.yaml │ │ └── person4_traveltime.yaml ├── red_alert.yaml ├── scan_bt.yaml ├── scan_bt_arrive.yaml ├── scan_bt_depart.yaml ├── scan_bt_restart.yaml ├── test.yaml ├── train_message.yaml ├── update_car_location.yaml ├── volume_alert.yaml ├── weather_notification_accuweather.yaml ├── weather_notification_here.yaml └── weather_notification_owm.yaml ├── sensors ├── README.md ├── bin │ └── README.md ├── time_date.yaml └── uk_transport.yaml ├── shell_commands ├── catt.yaml ├── download_image.yaml └── healthcheck.yaml ├── switch ├── README.md ├── family_room_tv.yaml └── living_room_tv.yaml ├── telegram.yaml ├── template ├── bin │ ├── bin_blue.yaml │ ├── bin_brown.yaml │ ├── bin_green.yaml │ ├── bin_grey.yaml │ └── next_bin_collection.yaml ├── calendar │ ├── person2_holiday.yaml │ └── person2_work_events.yaml ├── feels_like.yaml ├── flood_while_away.yaml ├── flood_while_home.yaml ├── garage_door_freezer_combi.yaml ├── garden_gate.yaml ├── garden_lights_on.yaml ├── home_count.yaml ├── last_motion.yaml ├── last_opened.yaml ├── last_opened_interior.yaml ├── metno_temperature.yaml ├── miband │ ├── miband_battery_level.yaml │ ├── miband_connected.yaml │ ├── miband_heartrate.yaml │ ├── miband_spo2.yaml │ ├── miband_steps.yaml │ └── miband_stress.yaml ├── office │ ├── office_mmwave_region_1.yaml │ └── office_mmwave_region_2.yaml ├── outside_humdity.yaml ├── outside_temperature.yaml ├── people │ ├── distance_person1_person2.yaml │ ├── distance_person1_person3.yaml │ └── distance_person2_person3.yaml ├── ps5_power.yaml ├── ps5_status.yaml ├── sky_q_family_room_transport.yaml ├── sky_q_living_room_transport.yaml ├── sun_elevation.yaml └── unavailable.yaml ├── timers ├── garden_lights.yaml ├── hall_motion.yaml ├── living_room_motion.yaml ├── master_bedroom_bedhead.yaml └── second_bedroom_bedside.yaml ├── tts.yaml ├── ui-lovelace-admin.yaml ├── ui-lovelace-automations.yaml ├── ui-lovelace-people.yaml ├── ui-lovelace.yaml ├── weather └── README.md ├── www ├── README.md ├── community │ ├── platinum-weather-card │ │ ├── a-clear-day.svg │ │ ├── a-clear-night.svg │ │ ├── a-cloudy-1-day.svg │ │ ├── a-cloudy-1-night.svg │ │ ├── a-cloudy-2-day.svg │ │ ├── a-cloudy-2-night.svg │ │ ├── a-cloudy-3-day.svg │ │ ├── a-cloudy-3-night.svg │ │ ├── a-cloudy.svg │ │ ├── a-dust.svg │ │ ├── a-fog-day.svg │ │ ├── a-fog-night.svg │ │ ├── a-fog.svg │ │ ├── a-frost-day.svg │ │ ├── a-frost-night.svg │ │ ├── a-frost.svg │ │ ├── a-hail.svg │ │ ├── a-haze-day.svg │ │ ├── a-haze-night.svg │ │ ├── a-haze.svg │ │ ├── a-hurricane.svg │ │ ├── a-isolated-thunderstorms-day.svg │ │ ├── a-isolated-thunderstorms-night.svg │ │ ├── a-isolated-thunderstorms.svg │ │ ├── a-rain-and-sleet-mix.svg │ │ ├── a-rain-and-snow-mix.svg │ │ ├── a-rainy-1-day.svg │ │ ├── a-rainy-1-night.svg │ │ ├── a-rainy-1.svg │ │ ├── a-rainy-2-day.svg │ │ ├── a-rainy-2-night.svg │ │ ├── a-rainy-2.svg │ │ ├── a-rainy-3-day.svg │ │ ├── a-rainy-3-night.svg │ │ ├── a-rainy-3.svg │ │ ├── a-scattered-thunderstorms-day.svg │ │ ├── a-scattered-thunderstorms-night.svg │ │ ├── a-scattered-thunderstorms.svg │ │ ├── a-severe-thunderstorm.svg │ │ ├── a-snow-and-sleet-mix.svg │ │ ├── a-snowy-1-day.svg │ │ ├── a-snowy-1-night.svg │ │ ├── a-snowy-1.svg │ │ ├── a-snowy-2-day.svg │ │ ├── a-snowy-2-night.svg │ │ ├── a-snowy-2.svg │ │ ├── a-snowy-3-day.svg │ │ ├── a-snowy-3-night.svg │ │ ├── a-snowy-3.svg │ │ ├── a-thunderstorms.svg │ │ ├── a-tornado.svg │ │ ├── a-tropical-storm.svg │ │ ├── a-unknown.svg │ │ ├── a-wind.svg │ │ ├── fire-ban-black.svg │ │ ├── fire-ban-white.svg │ │ ├── s-clear-day.svg │ │ ├── s-clear-night.svg │ │ ├── s-cloudy-1-day.svg │ │ ├── s-cloudy-1-night.svg │ │ ├── s-cloudy-2-day.svg │ │ ├── s-cloudy-2-night.svg │ │ ├── s-cloudy-3-day.svg │ │ ├── s-cloudy-3-night.svg │ │ ├── s-cloudy.svg │ │ ├── s-dust.svg │ │ ├── s-fog-day.svg │ │ ├── s-fog-night.svg │ │ ├── s-fog.svg │ │ ├── s-frost-day.svg │ │ ├── s-frost-night.svg │ │ ├── s-frost.svg │ │ ├── s-hail.svg │ │ ├── s-haze-day.svg │ │ ├── s-haze-night.svg │ │ ├── s-haze.svg │ │ ├── s-hurricane.svg │ │ ├── s-isolated-thunderstorms-day.svg │ │ ├── s-isolated-thunderstorms-night.svg │ │ ├── s-isolated-thunderstorms.svg │ │ ├── s-rain-and-sleet-mix.svg │ │ ├── s-rain-and-snow-mix.svg │ │ ├── s-rainy-1-day.svg │ │ ├── s-rainy-1-night.svg │ │ ├── s-rainy-1.svg │ │ ├── s-rainy-2-day.svg │ │ ├── s-rainy-2-night.svg │ │ ├── s-rainy-2.svg │ │ ├── s-rainy-3-day.svg │ │ ├── s-rainy-3-night.svg │ │ ├── s-rainy-3.svg │ │ ├── s-scattered-thunderstorms-day.svg │ │ ├── s-scattered-thunderstorms-night.svg │ │ ├── s-scattered-thunderstorms.svg │ │ ├── s-severe-thunderstorm.svg │ │ ├── s-snow-and-sleet-mix.svg │ │ ├── s-snowy-1-day.svg │ │ ├── s-snowy-1-night.svg │ │ ├── s-snowy-1.svg │ │ ├── s-snowy-2-day.svg │ │ ├── s-snowy-2-night.svg │ │ ├── s-snowy-2.svg │ │ ├── s-snowy-3-day.svg │ │ ├── s-snowy-3-night.svg │ │ ├── s-snowy-3.svg │ │ ├── s-thunderstorms.svg │ │ ├── s-tornado.svg │ │ ├── s-tropical-storm.svg │ │ ├── s-unknown.svg │ │ └── s-wind.svg │ └── weather-card │ │ └── icons │ │ ├── cloudy-day-1.svg │ │ ├── cloudy-day-2.svg │ │ ├── cloudy-day-3.svg │ │ ├── cloudy-night-1.svg │ │ ├── cloudy-night-2.svg │ │ ├── cloudy-night-3.svg │ │ ├── cloudy.svg │ │ ├── day.svg │ │ ├── night.svg │ │ ├── rainy-1.svg │ │ ├── rainy-2.svg │ │ ├── rainy-3.svg │ │ ├── rainy-4.svg │ │ ├── rainy-5.svg │ │ ├── rainy-6.svg │ │ ├── rainy-7.svg │ │ ├── snowy-1.svg │ │ ├── snowy-2.svg │ │ ├── snowy-3.svg │ │ ├── snowy-4.svg │ │ ├── snowy-5.svg │ │ ├── snowy-6.svg │ │ ├── thunder.svg │ │ ├── weather-sprite.svg │ │ ├── weather.svg │ │ ├── weather_sagittarius.svg │ │ └── weather_sunset.svg ├── custom_ui │ ├── dark-sky-weather-card.css │ ├── floorplan │ │ ├── floorplan.css │ │ ├── floorplan.svg │ │ └── ha-floorplan.html │ ├── state-card-floorplan.html │ └── weather-card.css ├── floorplan │ └── config │ │ └── home │ │ ├── floorplan.css │ │ ├── floorplan.svg │ │ ├── ha-floorplan.css │ │ ├── home.css │ │ └── home.svg ├── hass.html ├── icons │ └── weather_icons │ │ ├── animated │ │ ├── cloudy-day-1.svg │ │ ├── cloudy-day-2.svg │ │ ├── cloudy-day-3.svg │ │ ├── cloudy-night-1.svg │ │ ├── cloudy-night-2.svg │ │ ├── cloudy-night-3.svg │ │ ├── cloudy.svg │ │ ├── day.svg │ │ ├── night.svg │ │ ├── rainy-1.svg │ │ ├── rainy-2.svg │ │ ├── rainy-3.svg │ │ ├── rainy-4.svg │ │ ├── rainy-5.svg │ │ ├── rainy-6.svg │ │ ├── rainy-7.svg │ │ ├── snowy-1.svg │ │ ├── snowy-2.svg │ │ ├── snowy-3.svg │ │ ├── snowy-4.svg │ │ ├── snowy-5.svg │ │ ├── snowy-6.svg │ │ ├── thunder.svg │ │ ├── weather-sprite.svg │ │ ├── weather.svg │ │ ├── weather_sagittarius.svg │ │ └── weather_sunset.svg │ │ └── static │ │ ├── cloudy-day-1.svg │ │ ├── cloudy-day-2.svg │ │ ├── cloudy-day-3.svg │ │ ├── cloudy-night-1.svg │ │ ├── cloudy-night-2.svg │ │ ├── cloudy-night-3.svg │ │ ├── cloudy.svg │ │ ├── day.svg │ │ ├── night.svg │ │ ├── rainy-1.svg │ │ ├── rainy-2.svg │ │ ├── rainy-3.svg │ │ ├── rainy-4.svg │ │ ├── rainy-5.svg │ │ ├── rainy-6.svg │ │ ├── rainy-7.svg │ │ ├── snowy-1.svg │ │ ├── snowy-2.svg │ │ ├── snowy-3.svg │ │ ├── snowy-4.svg │ │ ├── snowy-5.svg │ │ ├── snowy-6.svg │ │ ├── thunder.svg │ │ ├── weather-sprite.svg │ │ ├── weather.svg │ │ ├── weather_sagittarius.svg │ │ └── weather_sunset.svg ├── images │ ├── ghome-mini.svg │ ├── light-circle.svg │ ├── motion-sensor.svg │ ├── patio.svg │ ├── socket.svg │ ├── speaker.svg │ ├── tv-familyroom.svg │ ├── tv-livingroom.svg │ ├── tv.svg │ └── xbox.svg └── z-wave-graph.html └── yeelight.yaml /alarm/manual.yaml: -------------------------------------------------------------------------------- 1 | platform: manual 2 | name: "HA Alarm" 3 | code: !secret alarm_code 4 | arming_time: 60 5 | trigger_time: 120 6 | delay_time: 30 7 | disarm_after_trigger: false 8 | disarmed: 9 | trigger_time: 0 10 | armed_home: 11 | arming_time: 0 12 | delay_time: 0 13 | armed_night: 14 | arming_time: 0 15 | delay_time: 0 16 | -------------------------------------------------------------------------------- /alerts/README.md: -------------------------------------------------------------------------------- 1 | # Alerts 2 | 3 | Component: [alert](https://home-assistant.io/components/alert/) 4 | 5 | ## Garage 6 | 7 | Simple alerts to nag us that we've left either of the the garage doors open. We need this because they're not visible from the house. 8 | -------------------------------------------------------------------------------- /alerts/flood_while_away.yaml: -------------------------------------------------------------------------------- 1 | name: "Leak while away" 2 | message: "There is a water leak in the following rooms: {{ expand('group.flood_sensors')|selectattr('state', 'eq', 'on')|map(attribute='name')|list|join(', ') }}" 3 | done_message: "The water leak has been dealt with" 4 | entity_id: binary_sensor.flood_while_away 5 | state: 'on' 6 | repeat: 7 | - 180 8 | - 360 9 | - 720 10 | - 1440 11 | can_acknowledge: True 12 | skip_first: False 13 | notifiers: 14 | - person2 15 | - person3 16 | -------------------------------------------------------------------------------- /alerts/flood_while_home.yaml: -------------------------------------------------------------------------------- 1 | name: "Leak while at home" 2 | message: "There is a water leak in the following rooms: {{ expand('group.flood_sensors')|selectattr('state', 'eq', 'on')|map(attribute='name')|list|join(', ') }}" 3 | done_message: "The water leak has been dealt with" 4 | entity_id: binary_sensor.flood_while_home 5 | state: 'on' 6 | repeat: 7 | - 60 8 | - 120 9 | - 180 10 | - 360 11 | - 720 12 | can_acknowledge: True 13 | skip_first: False 14 | notifiers: 15 | - status_alert 16 | -------------------------------------------------------------------------------- /alerts/freezer_lid.yaml: -------------------------------------------------------------------------------- 1 | name: "The chest bike has been left open" 2 | message: "The chest bike has been open for {{ relative_time(states.binary_sensor.chest_bike_lid_contact.last_changed) }}" 3 | done_message: "The chest bike is now closed" 4 | entity_id: binary_sensor.chest_bike_lid_contact 5 | state: 'on' 6 | repeat: 7 | - 10 8 | - 20 9 | - 30 10 | - 60 11 | can_acknowledge: True 12 | skip_first: True 13 | notifiers: 14 | - garage 15 | -------------------------------------------------------------------------------- /alerts/garage_door_l.yaml: -------------------------------------------------------------------------------- 1 | name: "Garage door for the bike has been left open" 2 | message: "Garage door for the bike has been open for {{ relative_time(states.binary_sensor.garage_door_bike_contact.last_changed) }}" 3 | done_message: "Garage door for the bike is now closed" 4 | entity_id: binary_sensor.garage_door_bike_contact 5 | state: 'on' 6 | repeat: 7 | - 10 8 | - 20 9 | - 30 10 | - 60 11 | can_acknowledge: True 12 | skip_first: True 13 | notifiers: 14 | - garage 15 | -------------------------------------------------------------------------------- /alerts/garage_door_r.yaml: -------------------------------------------------------------------------------- 1 | name: "Garage door for car has been left open" 2 | message: "Garage door for car has been open for {{ relative_time(states.binary_sensor.garage_door_car_contact.last_changed) }}" 3 | done_message: "Garage door for car is now closed" 4 | entity_id: binary_sensor.garage_door_car_contact 5 | state: 'on' 6 | repeat: 7 | - 10 8 | - 20 9 | - 30 10 | - 60 11 | can_acknowledge: True 12 | skip_first: True 13 | notifiers: 14 | - garage 15 | -------------------------------------------------------------------------------- /automation/alarm/README.md: -------------------------------------------------------------------------------- 1 | # Automations, automations everywhere, and all the brains did hurt 2 | 3 | Documentation: [automation](https://home-assistant.io/docs/automation/) 4 | 5 | _Some of these were first written when I started with HA, and didn't know better. You'll find that I've used hyphens (-) in some file names and underscores (\_) to match Home Assistant in others. Mostly I'm not renaming files._ 6 | 7 | Explanations to follow 8 | 9 | ## Alarm 10 | 11 | These are for enabling, disabling, and triggering the alarm. It doesn't really do anything right now. 12 | -------------------------------------------------------------------------------- /automation/alarm/alarm_arm_away.yaml: -------------------------------------------------------------------------------- 1 | id: 'alarm_arm_away' 2 | alias: 'Alarm arm away' 3 | trigger: 4 | - platform: state 5 | entity_id: 6 | - binary_sensor.home_occupied 7 | - group.downstairs_occupied 8 | to: 'off' 9 | condition: 10 | - condition: state 11 | entity_id: 12 | - binary_sensor.home_occupied 13 | - group.downstairs_occupied 14 | state: 'off' 15 | action: 16 | - service: alarmo.arm 17 | data: 18 | entity_id: alarm_control_panel.master 19 | mode: away 20 | -------------------------------------------------------------------------------- /automation/alarm/alarm_arm_night.yaml: -------------------------------------------------------------------------------- 1 | id: 'alarm_arm_at_night' 2 | alias: 'Alarm arm at night' 3 | trigger: 4 | - platform: state 5 | entity_id: input_boolean.bedtime 6 | to: 'on' 7 | action: 8 | - service: alarmo.arm 9 | data: 10 | entity_id: alarm_control_panel.master 11 | mode: night 12 | -------------------------------------------------------------------------------- /automation/alarm/alarm_arm_vacation.yaml: -------------------------------------------------------------------------------- 1 | id: 'alarm_arm_vacation' 2 | alias: 'Alarm arm vacation' 3 | trigger: 4 | - platform: state 5 | entity_id: input_boolean.holiday_mode 6 | to: 'on' 7 | action: 8 | - service: alarmo.arm 9 | data: 10 | entity_id: alarm_control_panel.master 11 | mode: vacation 12 | -------------------------------------------------------------------------------- /automation/alarm/alarm_disarm_hall.yaml: -------------------------------------------------------------------------------- 1 | id: 'alarm_disarm_hall' 2 | alias: 'Alarm disarm hall' 3 | trigger: 4 | - platform: state 5 | entity_id: binary_sensor.vestibule_multi_occupancy 6 | to: 'on' 7 | condition: 8 | - condition: state 9 | entity_id: binary_sensor.front_door_contact 10 | state: 'off' 11 | - condition: not 12 | conditions: 13 | - condition: state 14 | entity_id: alarm_control_panel.master 15 | state: 'disarmed' 16 | action: 17 | - service: alarmo.disarm 18 | data: 19 | entity_id: alarm_control_panel.master 20 | -------------------------------------------------------------------------------- /automation/alarm/alarm_disarm_morning.yaml: -------------------------------------------------------------------------------- 1 | id: 'alarm_disarm_in_the_morning' 2 | alias: 'Alarm disarm in the morning' 3 | trigger: 4 | - platform: state 5 | entity_id: input_boolean.bedtime 6 | to: 'off' 7 | - platform: state 8 | entity_id: binary_sensor.utility_motion_occupancy 9 | to: 'on' 10 | condition: 11 | - condition: not 12 | conditions: 13 | - condition: state 14 | entity_id: alarm_control_panel.master 15 | state: 'disarmed' 16 | action: 17 | - service: alarmo.disarm 18 | data: 19 | entity_id: alarm_control_panel.master 20 | -------------------------------------------------------------------------------- /automation/alarm/alarm_disarm_returned.yaml: -------------------------------------------------------------------------------- 1 | id: 'alarm_disarm_upon_return' 2 | alias: 'Alarm disarm upon return' 3 | trigger: 4 | - platform: state 5 | entity_id: binary_sensor.home_occupied 6 | to: 'on' 7 | condition: 8 | - condition: not 9 | conditions: 10 | - condition: state 11 | entity_id: alarm_control_panel.master 12 | state: 'disarmed' 13 | action: 14 | - service: alarmo.disarm 15 | data: 16 | entity_id: alarm_control_panel.master 17 | -------------------------------------------------------------------------------- /automation/battery/README.md: -------------------------------------------------------------------------------- 1 | # Automations, automations everywhere, and all the brains did hurt 2 | 3 | Documentation: [automation](https://home-assistant.io/docs/automation/) 4 | 5 | _Some of these were first written when I started with HA, and didn't know better. You'll find that I've used hyphens (-) in some file names and underscores (\_) to match Home Assistant in others. Mostly I'm not renaming files._ 6 | 7 | ## Batteries 8 | 9 | Battery related automations, to notify us when the batteries are running down, so we know what to buy. These include the battery type. 10 | -------------------------------------------------------------------------------- /automation/battery/battery_aa.yaml: -------------------------------------------------------------------------------- 1 | id: 'battery_aa' 2 | alias: 'Battery AA' 3 | mode: 'parallel' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.family_room_multi_battery_low 7 | to: 'on' 8 | action: 9 | service: notify.apprise 10 | data: 11 | target: discord 12 | title: "" 13 | message: ":low_battery: The {{ trigger.to_state.name }} has a low battery, fit some new AAs" 14 | -------------------------------------------------------------------------------- /automation/camera/frigate_new_object.yaml: -------------------------------------------------------------------------------- 1 | id: 'frigate_new_object' 2 | alias: 'Frigate new object' 3 | trigger: 4 | - platform: state 5 | entity_id: 6 | - sensor.front_bicycle_count 7 | - sensor.front_bus_count 8 | - sensor.front_car_count 9 | - sensor.front_motorcycle_count 10 | - sensor.front_person_count 11 | to: ~ 12 | condition: 13 | - condition: template 14 | value_template: "{{ trigger.to_state.state|int(0) > trigger.from_state.state|int(0) }}" 15 | action: 16 | - service: notify.discord 17 | data: 18 | message: "We've just seen a new {{ trigger.to_state.name }} out the front" 19 | target: >- 20 | !secret discord_camera_channel 21 | -------------------------------------------------------------------------------- /automation/camera/stop_camera_stream.yaml: -------------------------------------------------------------------------------- 1 | id: 'stop_camera_stream' 2 | alias: 'Stop camera stream' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.stream_camera 7 | to: 'off' 8 | action: 9 | - service: media_player.turn_off 10 | data: 11 | entity_id: "{{ states('input_select.camera_stream_target') }}" 12 | -------------------------------------------------------------------------------- /automation/family_room/README.md: -------------------------------------------------------------------------------- 1 | # Automations, automations everywhere, and all the brains did hurt 2 | 3 | Documentation: [automation](https://home-assistant.io/docs/automation/) 4 | 5 | ## Family room 6 | 7 | I used to track this in the individual automations, but it was getting silly, so now room occupancy is recorded in an input boolean 8 | 9 | ### `family_room_occupied.yaml` 10 | 11 | The room is considered occupied if: 12 | 13 | * Some media device is playing or the TV is on 14 | * We're home, or guest mode is enabled 15 | 16 | ### `family_room_not_occupied.yaml` 17 | 18 | The room is considered not occupied if: 19 | 20 | * All the media devices are off 21 | -------------------------------------------------------------------------------- /automation/front_of_house/front_door_closed.yaml: -------------------------------------------------------------------------------- 1 | id: 'front_door_closed' 2 | alias: 'Front door closed' 3 | trigger: 4 | - platform: state 5 | entity_id: binary_sensor.front_door_contact 6 | to: 'off' 7 | action: 8 | - service: script.turn_on 9 | entity_id: script.scan_bt 10 | -------------------------------------------------------------------------------- /automation/front_of_house/front_door_open.yaml: -------------------------------------------------------------------------------- 1 | id: 'front_door_open' 2 | alias: 'Front door open' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.front_door_contact 7 | to: 'on' 8 | action: 9 | - service: script.turn_on 10 | entity_id: script.scan_bt 11 | -------------------------------------------------------------------------------- /automation/front_of_house/garage_door_closed.yaml: -------------------------------------------------------------------------------- 1 | id: 'garage_door_closed' 2 | alias: 'Garage door closed' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.garage_door_car_contact 7 | to: 'off' 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.person2_home 11 | state: 'on' 12 | for: '00:05:00' 13 | action: 14 | - service: script.scan_bt_depart 15 | -------------------------------------------------------------------------------- /automation/front_of_house/garage_door_open.yaml: -------------------------------------------------------------------------------- 1 | id: 'garage_door_open' 2 | alias: 'Garage door open' 3 | trigger: 4 | - platform: state 5 | entity_id: binary_sensor.garage_door_car_contact 6 | to: 'on' 7 | condition: 8 | - condition: state 9 | entity_id: input_boolean.person2_home 10 | state: 'off' 11 | for: '00:05:00' 12 | action: 13 | - service: script.scan_bt_arrive 14 | -------------------------------------------------------------------------------- /automation/front_of_house/number-sign-on-morning.yaml: -------------------------------------------------------------------------------- 1 | id: 'number_on_in_the_morning' 2 | initial_state: 'on' 3 | alias: 'Number on in the morning' 4 | trigger: 5 | - platform: time 6 | at: '06:30:00' 7 | - platform: homeassistant 8 | event: start 9 | condition: 10 | - condition: or 11 | conditions: 12 | - condition: state 13 | entity_id: sun.sun 14 | state: 'below_horizon' 15 | - condition: numeric_state 16 | entity_id: sensor.outside_light_sensor_illuminance_lux 17 | below: 50 18 | - condition: state 19 | entity_id: switch.number_sign 20 | state: 'off' 21 | action: 22 | - service: switch.turn_on 23 | entity_id: switch.number_sign 24 | -------------------------------------------------------------------------------- /automation/front_of_house/person2-up-early.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_up_early' 2 | initial_state: 'on' 3 | alias: 'person2 up early' 4 | trigger: 5 | - platform: state 6 | entity_id: media_player.person2 7 | to: 'playing' 8 | - platform: state 9 | entity_id: media_player.master_bedroom 10 | to: 'playing' 11 | condition: 12 | - condition: and 13 | conditions: 14 | - condition: sun 15 | before: sunrise 16 | - condition: time 17 | after: '02:00:00' 18 | - condition: state 19 | entity_id: switch.number_sign 20 | state: 'off' 21 | action: 22 | - service: switch.turn_on 23 | entity_id: switch.number_sign 24 | -------------------------------------------------------------------------------- /automation/front_of_house/person2_home_disable_garage_open.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_home_disable_garage_open' 2 | alias: 'person2 home disable Garage open' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.person2_home 7 | to: 'on' 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.person2_home 11 | state: 'on' 12 | action: 13 | - service: automation.turn_off 14 | entity_id: automation.person2_away_garage_open 15 | -------------------------------------------------------------------------------- /automation/garden/nighttime_garden_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'nighttime_garden_off' 2 | initial_state: 'off' 3 | alias: 'Nighttime garden off' 4 | description: 'Turn off the lights if they are left on between midnight and sunrise' 5 | trigger: 6 | platform: state 7 | entity_id: switch.garden_lights 8 | to: 'on' 9 | for: '00:15:00' 10 | condition: 11 | - condition: time 12 | after: '00:00:00' 13 | - condition: state 14 | entity_id: sun.sun 15 | state: 'below_horizon' 16 | action: 17 | service: switch.turn_off 18 | entity_id: switch.garden_lights 19 | -------------------------------------------------------------------------------- /automation/guests/guest_mode_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'guest_mode_off' 2 | initial_state: 'on' 3 | alias: 'Guest mode off' 4 | trigger: 5 | - platform: state 6 | entity_id: group.guests 7 | to: 'off' 8 | - platform: homeassistant 9 | event: start 10 | condition: 11 | - condition: state 12 | entity_id: input_boolean.guest_mode 13 | state: 'on' 14 | - condition: state 15 | entity_id: group.guests 16 | state: 'off' 17 | action: 18 | - service: input_boolean.turn_off 19 | entity_id: input_boolean.guest_mode 20 | - condition: state 21 | entity_id: light.downstairs_hall 22 | state: 'on' 23 | - service: script.hall_strip_on 24 | -------------------------------------------------------------------------------- /automation/guests/guest_mode_on.yaml: -------------------------------------------------------------------------------- 1 | id: 'guest_mode_on' 2 | initial_state: 'on' 3 | alias: 'Guest mode on' 4 | trigger: 5 | - platform: state 6 | entity_id: group.guests 7 | to: 'on' 8 | - platform: homeassistant 9 | event: start 10 | condition: 11 | - condition: state 12 | entity_id: input_boolean.guest_mode 13 | state: 'off' 14 | - condition: state 15 | entity_id: group.guests 16 | state: 'on' 17 | action: 18 | - service: input_boolean.turn_on 19 | entity_id: input_boolean.guest_mode 20 | -------------------------------------------------------------------------------- /automation/hall/hall_lights_on_when_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'hall_lights_on_when_off' 2 | initial_state: 'on' 3 | alias: 'Hall lights on when off' 4 | trigger: 5 | - platform: state 6 | entity_id: light.downstairs_hall 7 | from: 'off' 8 | to: 'on' 9 | for: '00:30:00' 10 | condition: 11 | - condition: state 12 | entity_id: input_select.hall 13 | state: 'Off' 14 | action: 15 | - service: switch.turn_off 16 | entity_id: switch.adaptive_lighting_hall 17 | - service: light.turn_off 18 | data: 19 | entity_id: light.downstairs_hall 20 | transition: 5 21 | -------------------------------------------------------------------------------- /automation/hall/modes/hall_mode_away.yaml: -------------------------------------------------------------------------------- 1 | id: 'hall_mode_away' 2 | initial_state: 'on' 3 | alias: 'Hall mode away' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.home_occupied 7 | to: 'off' 8 | - platform: homeassistant 9 | event: start 10 | - platform: event 11 | event_type: automation_reloaded 12 | condition: 13 | - condition: template 14 | value_template: "{{ not is_state('input_select.hall','Away') }}" 15 | - condition: state 16 | entity_id: binary_sensor.home_occupied 17 | state: 'off' 18 | action: 19 | - service: input_select.select_option 20 | data: 21 | entity_id: 'input_select.hall' 22 | option: 'Away' 23 | -------------------------------------------------------------------------------- /automation/house/house_awake.yaml: -------------------------------------------------------------------------------- 1 | id: 'house_awake' 2 | alias: 'House awake' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.bedtime 7 | to: 'off' 8 | action: 9 | - service: switch.turn_off 10 | target: 11 | entity_id: 12 | - switch.adaptive_lighting_sleep_mode_hall 13 | - switch.adaptive_lighting_sleep_mode_living_room_lamps 14 | - switch.adaptive_lighting_sleep_mode_living_room_table 15 | - switch.adaptive_lighting_sleep_mode_master_bedroom 16 | - switch.adaptive_lighting_sleep_mode_office 17 | - switch.adaptive_lighting_sleep_mode_second_bedroom 18 | -------------------------------------------------------------------------------- /automation/house/lights/house_lights_from_bedtime.yaml: -------------------------------------------------------------------------------- 1 | id: 'house_lights_from_bedtime' 2 | initial_state: 'on' 3 | alias: 'House lights from bedtime' 4 | trigger: 5 | - platform: state 6 | entity_id: input_select.house 7 | from: 'Bedtime' 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.lighting_automations 11 | state: 'on' 12 | - condition: not 13 | conditions: 14 | - condition: state 15 | entity_id: input_select.house 16 | state: 'Bedtime' 17 | action: 18 | - service: switch.turn_off 19 | entity_id: switch.adaptive_lighting_sleep_mode_hall 20 | -------------------------------------------------------------------------------- /automation/house/lights/house_lights_to_bedtime.yaml: -------------------------------------------------------------------------------- 1 | id: 'house_lights_to_bedtime' 2 | initial_state: 'on' 3 | alias: 'House lights to bedtime' 4 | trigger: 5 | - platform: state 6 | entity_id: input_select.house 7 | to: 'Bedtime' 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.lighting_automations 11 | state: 'on' 12 | - condition: state 13 | entity_id: input_select.house 14 | state: 'Bedtime' 15 | action: 16 | - service: switch.turn_on 17 | entity_id: switch.adaptive_lighting_sleep_mode_hall 18 | -------------------------------------------------------------------------------- /automation/house/modes/house_mode_auto.yaml: -------------------------------------------------------------------------------- 1 | id: 'house_mode_auto' 2 | alias: 'House mode auto' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.home_occupied 7 | to: 'on' 8 | - platform: state 9 | entity_id: input_boolean.bedtime 10 | to: 'off' 11 | action: 12 | - service: input_select.select_option 13 | data: 14 | entity_id: input_select.house 15 | option: 'Auto' 16 | -------------------------------------------------------------------------------- /automation/house/modes/house_mode_away.yaml: -------------------------------------------------------------------------------- 1 | id: 'house_mode_away' 2 | alias: 'House mode away' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.home_occupied 7 | to: 'off' 8 | action: 9 | - service: input_select.select_option 10 | data: 11 | entity_id: input_select.house 12 | option: 'Away' 13 | -------------------------------------------------------------------------------- /automation/house/modes/house_mode_bedtime.yaml: -------------------------------------------------------------------------------- 1 | id: 'house_mode_bedtime' 2 | alias: 'House mode bedtime' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.bedtime 7 | to: 'on' 8 | action: 9 | - service: input_select.select_option 10 | data: 11 | entity_id: input_select.house 12 | option: 'Bedtime' 13 | -------------------------------------------------------------------------------- /automation/house/modes/house_mode_holiday.yaml: -------------------------------------------------------------------------------- 1 | id: 'house_mode_holiday' 2 | alias: 'House mode holiday' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.holiday_mode 7 | to: 'on' 8 | action: 9 | - service: input_select.select_option 10 | data: 11 | entity_id: input_select.house 12 | option: 'Holiday' 13 | -------------------------------------------------------------------------------- /automation/living_room/dimmer.yaml: -------------------------------------------------------------------------------- 1 | id: 'dimmer' 2 | alias: Dimmer 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: event.hue_dimmer_action 7 | to: ~ 8 | action: 9 | - service: notify.send_message 10 | target: 11 | entity_id: notify.debug_log 12 | data: 13 | message: "The following button was pressed: {{ trigger.to_state.attributes.event_type }} - {{ trigger.to_state.attributes.action }}" 14 | -------------------------------------------------------------------------------- /automation/living_room/dimmer_down_motion.yaml: -------------------------------------------------------------------------------- 1 | id: 'dimmer_up_motion' 2 | alias: Dimmer up motion 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: event.hue_dimmer_action 7 | to: ~ 8 | condition: 9 | - condition: template 10 | value_template: >- 11 | {{ trigger.to_state.attributes.event_type == 'down_press' }} 12 | - condition: state 13 | entity_id: input_select.living_room 14 | state: 'Motion' 15 | action: 16 | - service: input_select.select_option 17 | data: 18 | entity_id: input_select.living_room 19 | option: 'Dim' 20 | -------------------------------------------------------------------------------- /automation/living_room/dimmer_on_while_away.yaml: -------------------------------------------------------------------------------- 1 | id: 'dimmer_on_while_away' 2 | alias: Dimmer on while away 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: event.hue_dimmer_action 7 | to: ~ 8 | condition: 9 | - condition: template 10 | value_template: >- 11 | {{ trigger.to_state.attributes.event_type == 'press' }} 12 | - condition: template 13 | value_template: "{{ trigger.to_state.attributes.action == 'on_press' }}" 14 | - condition: state 15 | entity_id: input_boolean.living_room_occupied 16 | state: 'off' 17 | action: 18 | - service: input_boolean.turn_on 19 | entity_id: input_boolean.living_room_occupied 20 | -------------------------------------------------------------------------------- /automation/living_room/dimmer_up_enable_lights.yaml: -------------------------------------------------------------------------------- 1 | id: 'dimmer_up_enable_lights' 2 | alias: Dimmer up enable lights 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: event.hue_dimmer_action 7 | to: ~ 8 | condition: 9 | - condition: template 10 | value_template: >- 11 | {{ trigger.to_state.attributes.event_type == 'up_press' }} 12 | - condition: state 13 | entity_id: input_boolean.lighting_living_room 14 | state: 'off' 15 | action: 16 | - service: input_boolean.turn_on 17 | entity_id: input_boolean.lighting_living_room 18 | -------------------------------------------------------------------------------- /automation/living_room/living_room_movement.yaml: -------------------------------------------------------------------------------- 1 | id: 'living_room_movement' 2 | initial_state: 'on' 3 | alias: 'Living room movement' 4 | trigger: 5 | platform: state 6 | entity_id: binary_sensor.living_room_presence_occupancy 7 | to: 'on' 8 | condition: 9 | condition: and 10 | conditions: 11 | - condition: state 12 | entity_id: input_boolean.livingroom_lights_auto 13 | state: 'on' 14 | - condition: state 15 | entity_id: timer.living_room_motion 16 | state: 'active' 17 | action: 18 | - service: timer.cancel 19 | entity_id: timer.living_room_motion 20 | - service: timer.start 21 | data: 22 | entity_id: timer.living_room_motion 23 | duration: '00:02:00' 24 | -------------------------------------------------------------------------------- /automation/living_room/living_room_table_light_unav_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'living_room_table_light_unavailable_off' 2 | initial_state: 'on' 3 | alias: 'Living room table light unavailable off' 4 | trigger: 5 | - platform: state 6 | entity_id: light.living_room_table_lamp 7 | from: 'unavailable' 8 | to: 'off' 9 | condition: 10 | - condition: or 11 | conditions: 12 | - condition: state 13 | entity_id: input_select.living_room 14 | state: 'Dim' 15 | - condition: state 16 | entity_id: input_select.living_room 17 | state: 'Night on' 18 | action: 19 | - service: light.turn_on 20 | data: 21 | entity_id: light.living_room_table_lamp 22 | transition: 3 23 | -------------------------------------------------------------------------------- /automation/living_room/sonos_off_tv_unmute.yaml: -------------------------------------------------------------------------------- 1 | id: 'sonos_off_tv_unmute' 2 | initial_state: 'on' 3 | alias: 'Sonos off TV unmute' 4 | trigger: 5 | - platform: state 6 | entity_id: media_player.living_room 7 | from: 'playing' 8 | to: 'paused' 9 | - platform: state 10 | entity_id: media_player.living_room 11 | from: 'playing' 12 | to: 'idle' 13 | condition: 14 | - condition: state 15 | entity_id: media_player.samsung_tv 16 | state: 'on' 17 | action: 18 | - service: media_player.volume_mute 19 | data: 20 | entity_id: media_player.samsung_tv 21 | is_volume_muted: false 22 | -------------------------------------------------------------------------------- /automation/living_room/sonos_on_tv_mute.yaml: -------------------------------------------------------------------------------- 1 | id: 'sonos_on_tv_mute' 2 | initial_state: 'on' 3 | alias: 'Sonos on TV mute' 4 | trigger: 5 | - platform: state 6 | entity_id: media_player.living_room 7 | from: 'paused' 8 | to: 'playing' 9 | - platform: state 10 | entity_id: media_player.living_room 11 | from: 'idle' 12 | to: 'playing' 13 | condition: 14 | - condition: state 15 | entity_id: media_player.samsung_tv 16 | state: 'on' 17 | action: 18 | - service: media_player.volume_mute 19 | data: 20 | entity_id: media_player.samsung_tv 21 | is_volume_muted: true 22 | -------------------------------------------------------------------------------- /automation/living_room/tv-on-sonos-off.yaml: -------------------------------------------------------------------------------- 1 | id: 'tv_on_sonos_off' 2 | initial_state: 'on' 3 | alias: 'TV on Sonos off' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.living_room_chromecast 7 | from: 'not_home' 8 | to: 'home' 9 | condition: 10 | - condition: and 11 | conditions: 12 | - condition: state 13 | entity_id: media_player.samsung_tv 14 | state: 'on' 15 | - condition: state 16 | entity_id: media_player.living_room 17 | state: 'playing' 18 | action: 19 | - service: media_player.media_stop 20 | entity_id: media_player.living_room 21 | -------------------------------------------------------------------------------- /automation/living_room/tv_light_on.yaml: -------------------------------------------------------------------------------- 1 | id: 'tv_light_on' 2 | initial_state: 'on' 3 | alias: 'TV light on' 4 | trigger: 5 | - platform: state 6 | entity_id: light.living_room_tv_lamp 7 | to: 'on' 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.livingroom_lights_auto 11 | state: 'on' 12 | action: 13 | - service: homeassistant.turn_off 14 | entity_id: input_boolean.livingroom_lights_auto 15 | -------------------------------------------------------------------------------- /automation/living_room/tv_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'living_tv_off' 2 | alias: 'Living room TV turned off' 3 | initial_state: 'on' 4 | trigger: 5 | - alias: 'TV turned off' 6 | platform: state 7 | entity_id: media_player.samsung_tv 8 | to: 'off' 9 | for: '00:05:00' 10 | condition: 11 | - condition: state 12 | entity_id: media_player.sky_q_living_room 13 | state: 'playing' 14 | action: 15 | - service: media_player.turn_off 16 | target: 17 | entity_id: media_player.sky_q_living_room 18 | -------------------------------------------------------------------------------- /automation/living_room/tv_on_reconnect.yaml: -------------------------------------------------------------------------------- 1 | id: 'tv_on_reconnect' 2 | alias: 'TV on reconnect' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.living_room_chromecast 7 | to: 'home' 8 | for: '00:00:30' 9 | - platform: state 10 | entity_id: media_player.samsung_tv 11 | to: 'on' 12 | for: '00:00:30' 13 | condition: 14 | - condition: state 15 | entity_id: media_player.living_room_tv 16 | state: 'unavailable' 17 | action: 18 | - service: homeassistant.update_entity 19 | entity_id: media_player.living_room_tv 20 | -------------------------------------------------------------------------------- /automation/master_bedroom/bedhead-light-dim-late.yaml: -------------------------------------------------------------------------------- 1 | id: 'bedhead_light_dim_late' 2 | alias: 'Bedhead light dim late' 3 | trigger: 4 | - platform: time 5 | at: '23:00:00' 6 | - platform: state 7 | entity_id: light.master_bedroom_bedhead 8 | to: 'on' 9 | condition: 10 | - condition: state 11 | entity_id: light.master_bedroom_bedhead 12 | state: 'on' 13 | - condition: time 14 | after: '22:59:59' 15 | action: 16 | - service: input_select.select_option 17 | data: 18 | entity_id: input_select.master_bedroom 19 | option: 'Bedtime' 20 | -------------------------------------------------------------------------------- /automation/master_bedroom/modes/master_bedroom_lights_turned_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'master_bedroom_lights_turned_off' 2 | initial_state: 'on' 3 | alias: 'Master bedroom lights turned off' 4 | trigger: 5 | - platform: state 6 | entity_id: light.master_bedroom 7 | to: 'off' 8 | condition: 9 | - condition: template 10 | value_template: "{{ states('input_select.master_bedroom') not in ('Off') }}" 11 | action: 12 | - service: input_select.select_option 13 | data: 14 | entity_id: input_select.master_bedroom 15 | option: 'Off' 16 | -------------------------------------------------------------------------------- /automation/master_bedroom/modes/master_bedroom_lights_turned_on.yaml: -------------------------------------------------------------------------------- 1 | id: 'master_bedroom_lights_turned_on' 2 | initial_state: 'on' 3 | alias: 'Master bedroom lights turned on' 4 | trigger: 5 | - platform: state 6 | entity_id: light.master_bedroom 7 | to: 'on' 8 | condition: 9 | - condition: state 10 | entity_id: input_select.master_bedroom 11 | state: 'Off' 12 | action: 13 | - service: input_select.select_option 14 | data: 15 | entity_id: input_select.master_bedroom 16 | option: 'Auto' 17 | -------------------------------------------------------------------------------- /automation/master_bedroom/modes/master_bedroom_mode_bedtime.yaml: -------------------------------------------------------------------------------- 1 | id: 'master_bedroom_mode_bedtime' 2 | alias: 'Master bedroom mode bedtime' 3 | trigger: 4 | - platform: state 5 | entity_id: input_boolean.person2_in_bed 6 | to: 'on' 7 | for: '00:30:00' 8 | condition: 9 | - condition: template 10 | value_template: "{{ states('input_select.master_bedroom') not in ('Bedtime','Off') }}" 11 | - condition: state 12 | entity_id: input_boolean.person2_is_awake 13 | state: 'on' 14 | action: 15 | - service: input_select.select_option 16 | data: 17 | entity_id: input_select.master_bedroom 18 | option: 'Bedtime' 19 | -------------------------------------------------------------------------------- /automation/master_bedroom/modes/master_bedroom_to_mode_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'master_bedroom_mode_to_off' 2 | initial_state: 'on' 3 | alias: 'Master bedroom mode to off' 4 | trigger: 5 | - platform: state 6 | entity_id: light.master_bedroom 7 | to: 'off' 8 | for: '00:00:05' 9 | - platform: state 10 | entity_id: input_boolean.master_bedroom_occupied 11 | to: 'off' 12 | action: 13 | - service: input_select.select_option 14 | data: 15 | entity_id: input_select.master_bedroom 16 | option: 'Off' 17 | -------------------------------------------------------------------------------- /automation/notification/README.md: -------------------------------------------------------------------------------- 1 | # Automations, automations everywhere, and all the brains did hurt 2 | 3 | Documentation: [automation](https://home-assistant.io/docs/automation/) 4 | 5 | ## Notifications 6 | 7 | These are notifications for things people should be aware of - mostly this is background stuff. 8 | 9 | ### bin_notification.yaml 10 | 11 | Uses the bin sensors to send a notification to the LaMetric clock the day before the recycling is due to be collected. It is pushed every 5 minutes, at 30 seconds past the minute. 12 | 13 | ### weather_notification.yaml 14 | 15 | Sends a notification about the forthcoming weather conditions to the LaMetric clock every 5 minutes. 16 | -------------------------------------------------------------------------------- /automation/notification/signal/signal_received.yaml: -------------------------------------------------------------------------------- 1 | id: 'signal_received' 2 | alias: 'Signal received' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: sensor.signal_message_received 7 | attribute: source 8 | to: !secret signal_recipient 9 | action: 10 | - service: input_text.set_value 11 | target: 12 | entity_id: input_text.command 13 | data: 14 | value: >- 15 | {{- state_attr('sensor.signal_message_received','dataMessage').message -}} 16 | -------------------------------------------------------------------------------- /automation/notification/telegram/command_lights.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_command_lights' 2 | alias: 'Telegram command lights' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_command 7 | event_data: 8 | command: '/lights' 9 | condition: 10 | - condition: template 11 | value_template: "{{ trigger.event.data.args|length == 0 }}" 12 | action: 13 | - service: telegram_bot.send_message 14 | data: 15 | message: > 16 | The following lights are on: {{ expand('group.my_lights')|selectattr('state', 'eq', 'on')|map(attribute='name')|list|join(', ') }} 17 | -------------------------------------------------------------------------------- /automation/notification/telegram/command_lights_on.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_command_lights_on' 2 | alias: 'Telegram command lights on' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_command 7 | event_data: 8 | command: '/lights' 9 | condition: 10 | - condition: template 11 | value_template: "{{ (trigger.event.data.args|length == 1) and (trigger.event.data.args[0] == 'on') }}" 12 | action: 13 | - service: telegram_bot.send_message 14 | data: 15 | message: > 16 | Turning the lights {{ trigger.event.data.args[0] }} 17 | -------------------------------------------------------------------------------- /automation/notification/telegram/command_ping.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_command_ping' 2 | alias: 'Telegram command ping' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_command 7 | event_data: 8 | command: '/ping' 9 | action: 10 | - service: telegram_bot.send_message 11 | data: 12 | message: > 13 | Pong at {{ as_timestamp(now(),0)|timestamp_custom("%Y-%m-%d %H:%M:%S", local=True) }} 14 | -------------------------------------------------------------------------------- /automation/notification/telegram/command_status.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_command_status' 2 | alias: 'Telegram command status' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_command 7 | event_data: 8 | command: '/status' 9 | action: 10 | - service: telegram_bot.send_message 11 | data: 12 | message: > 13 | There are {{ expand('group.my_downstairs_windows','my_upstairs_windows','group.my_exterior_doors') | selectattr('state', 'eq', 'on')|list|count }} doors and windows open 14 | 15 | {{ expand('group.my_downstairs_windows','my_upstairs_windows','group.my_exterior_doors') | selectattr('state', 'eq', 'on')|map(attribute='name')|list|join(', ') }} 16 | -------------------------------------------------------------------------------- /automation/notification/telegram/command_trains.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_command_trains' 2 | alias: 'Telegram command trains' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_command 7 | event_data: 8 | command: '/trains' 9 | action: 10 | - service: script.train_message 11 | - service: telegram_bot.send_message 12 | data: 13 | inline_keyboard: [[[ "Recheck", "/trains" ]]] 14 | message: "{{ states('input_text.train_message') }}" 15 | -------------------------------------------------------------------------------- /automation/notification/telegram/commands_lights_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_command_lights_off' 2 | alias: 'Telegram command lights off' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_command 7 | event_data: 8 | command: '/lights' 9 | condition: 10 | - condition: template 11 | value_template: "{{ (trigger.event.data.args|length == 1) and (trigger.event.data.args[0] == 'off') }}" 12 | action: 13 | - service: telegram_bot.send_message 14 | data: 15 | message: > 16 | Turning the lights {{ trigger.event.data.args[0] }} 17 | -------------------------------------------------------------------------------- /automation/notification/telegram/telegram_callback_trains.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_callback_trains' 2 | alias: 'Telegram callback trains' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_callback 7 | event_data: 8 | data: "/trains" 9 | action: 10 | - service: script.train_message 11 | - service: telegram_bot.answer_callback_query 12 | data: 13 | message: "{{ states('input_text.train_message') }}" 14 | callback_query_id: "{{ trigger.event.data.id }}" 15 | -------------------------------------------------------------------------------- /automation/office/modes/office_lights_turned_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_lights_turned_off' 2 | initial_state: 'on' 3 | alias: 'Office lights turned off' 4 | trigger: 5 | - platform: state 6 | entity_id: light.office_strip 7 | to: 'off' 8 | for: '00:00:30' 9 | condition: 10 | - condition: not 11 | conditions: 12 | - condition: state 13 | entity_id: input_select.office 14 | state: 'Off' 15 | action: 16 | - service: input_select.select_option 17 | data: 18 | entity_id: input_select.office 19 | option: 'Off' 20 | -------------------------------------------------------------------------------- /automation/office/modes/office_mode_no_wake.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_mode_no_wake' 2 | initial_state: 'on' 3 | alias: 'Office mode no wake' 4 | trigger: 5 | - platform: state 6 | entity_id: input_select.office 7 | to: 'Wake' 8 | for: '01:00:00' 9 | action: 10 | - service: input_select.select_option 11 | data: 12 | entity_id: input_select.office 13 | option: 'Off' 14 | -------------------------------------------------------------------------------- /automation/office/modes/office_no_presence.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_no_presence' 2 | alias: 'Office no presence' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.office_mmwave_region_1 7 | to: 'off' 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.office_occupied 11 | state: 'on' 12 | - condition: state 13 | entity_id: media_player.office 14 | state: 'playing' 15 | action: 16 | - service: input_select.select_option 17 | data: 18 | entity_id: input_select.office 19 | option: 'Pause' 20 | - service: input_boolean.turn_on 21 | data: 22 | entity_id: input_boolean.office_paused 23 | -------------------------------------------------------------------------------- /automation/office/modes/office_presence.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_presence' 2 | alias: 'Office presence' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: 7 | - binary_sensor.office_mmwave_region_1 8 | - binary_sensor.office_presence_occupancy 9 | to: 'on' 10 | condition: 11 | - condition: state 12 | entity_id: input_boolean.office_paused 13 | state: 'on' 14 | action: 15 | - service: input_boolean.turn_off 16 | data: 17 | entity_id: input_boolean.office_paused 18 | -------------------------------------------------------------------------------- /automation/office/modes/office_unoccupied.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_unoccupied' 2 | initial_state: 'on' 3 | alias: 'Office unoccupied' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.office_occupied 7 | to: 'off' 8 | action: 9 | - service: input_boolean.turn_off 10 | entity_id: input_boolean.stream_front_camera_motion 11 | - service: input_boolean.turn_on 12 | entity_id: 13 | - input_boolean.lighting_living_room 14 | - input_boolean.lighting_office 15 | -------------------------------------------------------------------------------- /automation/office/office_dial_test.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_dial_test' 2 | alias: 'Office dial test' 3 | trigger: 4 | - platform: state 5 | entity_id: event.office_dial_moes_action 6 | to: ~ 7 | action: 8 | - service: notify.send_message 9 | target: 10 | entity_id: notify.debug_log 11 | data: 12 | message: >- 13 | Office dial from {{ trigger.from_state.attributes.event_type }}/{{ trigger.from_state.attributes.direction }} to {{ trigger.to_state.attributes.event_type }}/{{ trigger.to_state.attributes.direction }} 14 | -------------------------------------------------------------------------------- /automation/office/office_lights_on_when_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_lights_on_when_off' 2 | alias: 'Office lights on when off' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: light.office_strip 7 | to: 'on' 8 | for: '00:00:30' 9 | condition: 10 | - condition: state 11 | entity_id: input_select.office 12 | state: 'Off' 13 | action: 14 | - service: light.turn_off 15 | data: 16 | entity_id: light.office_strip 17 | transition: 1 18 | -------------------------------------------------------------------------------- /automation/office/office_sonos_switch_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_sonos_switch_off' 2 | alias: 'Office Sonos switch off' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: switch.office_sonos 7 | to: 'off' 8 | for: '00:00:20' 9 | action: 10 | - service: switch.turn_on 11 | entity_id: switch.office_sonos 12 | -------------------------------------------------------------------------------- /automation/office/office_unoccupied_window_open.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_unoccupied_window_open' 2 | alias: 'Office unoccupied window open' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.office_occupied 7 | to: 'off' 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.office_occupied 11 | state: 'off' 12 | - condition: state 13 | entity_id: binary_sensor.office_window_contact 14 | state: 'on' 15 | action: 16 | - service: notify.person2 17 | data: 18 | message: "You left the office window open" 19 | -------------------------------------------------------------------------------- /automation/office/office_volume_change.yaml: -------------------------------------------------------------------------------- 1 | id: 'office_volume_change' 2 | initial_state: 'on' 3 | alias: 'Office volume change' 4 | trigger: 5 | - platform: state 6 | entity_id: media_player.office 7 | attribute: volume_level 8 | action: 9 | - service: notify.awtrix_6d6f50 10 | data: 11 | message: "{{ ((state_attr('media_player.office','volume_level')|float(0))*100)|round(0) }}" 12 | data: 13 | icon: 56192 14 | progress: "{{ ((state_attr('media_player.office','volume_level')|float(0))*200)|round(0) }}" 15 | progressC: "18B04C" 16 | progressBC: "333344" 17 | repeat: 1 18 | duration: 2 19 | -------------------------------------------------------------------------------- /automation/people/adults_away.yaml: -------------------------------------------------------------------------------- 1 | id: 'adults_away' 2 | alias: 'Adults away' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: 7 | - input_boolean.person3_home 8 | - input_boolean.person2_home 9 | to: 'off' 10 | condition: 11 | # Both away 12 | - condition: and 13 | conditions: 14 | - condition: state 15 | entity_id: input_boolean.person3_home 16 | state: 'off' 17 | - condition: state 18 | entity_id: input_boolean.person2_home 19 | state: 'off' 20 | action: 21 | - service: input_boolean.turn_on 22 | entity_id: input_boolean.adults_away 23 | -------------------------------------------------------------------------------- /automation/people/adults_returned.yaml: -------------------------------------------------------------------------------- 1 | id: 'adults_returned' 2 | alias: 'Adults returned' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: 7 | - input_boolean.person3_home 8 | - input_boolean.person2_home 9 | to: 'on' 10 | condition: 11 | - condition: state 12 | entity_id: input_boolean.adults_away 13 | state: 'on' 14 | action: 15 | - service: input_boolean.turn_off 16 | entity_id: input_boolean.adults_away 17 | -------------------------------------------------------------------------------- /automation/people/person1/person1_at_ep.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_at_ep' 2 | alias: 'person1 at work Park' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.sm_a546b 7 | to: 'work Park' 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.person1_at_hw 11 | state: 'on' 12 | - condition: state 13 | entity_id: input_boolean.person2_home 14 | state: 'on' 15 | action: 16 | - service: notify.apprise 17 | data: 18 | target: telegram_ha 19 | title: '' 20 | message: 'person1 is at work Park' 21 | - service: input_boolean.turn_off 22 | entity_id: input_boolean.person1_at_hw 23 | -------------------------------------------------------------------------------- /automation/people/person1/person1_awake.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_awake' 2 | alias: 'person1 awake' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.person1_in_bed 7 | to: 'off' 8 | action: 9 | - service: input_boolean.turn_on 10 | entity_id: input_boolean.person1_is_awake 11 | - service: input_boolean.turn_off 12 | entity_id: input_boolean.person1_alarm_sounded 13 | - service: media_player.turn_off 14 | entity_id: 15 | - media_player.cast_second_bedroom_speaker 16 | - media_player.person1 17 | - service: script.turn_on 18 | entity_id: script.person1_travel_sensor 19 | -------------------------------------------------------------------------------- /automation/people/person1/person1_location_update.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_location_update' 2 | initial_state: 'on' 3 | alias: 'person1 location update' 4 | trigger: 5 | # I've moved 6 | - platform: state 7 | entity_id: 8 | - device_tracker.sm_a546b 9 | - input_select.person1_status_dropdown 10 | - input_boolean.person1_home 11 | - sensor.person1s_time_to_home_duration 12 | - sensor.person1s_time_to_home_by_bus_google 13 | - sensor.person1s_time_to_home_by_foot_duration 14 | - sensor.person1s_time_to_home_waze 15 | - sensor.person1_places 16 | action: 17 | - service: script.turn_on 18 | entity_id: script.person1_travel_sensor 19 | -------------------------------------------------------------------------------- /automation/people/person1/person1_next_alarm.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_next_alarm' 2 | initial_state: 'on' 3 | alias: 'person1 next alarm' 4 | trigger: 5 | - platform: state 6 | entity_id: sensor.sm_a546b_next_alarm 7 | to: ~ 8 | for: '00:05:00' 9 | action: 10 | - service: input_datetime.set_datetime 11 | entity_id: input_datetime.person1_next_alarm 12 | data: 13 | timestamp: >- 14 | {{ states('sensor.sm_a546b_next_alarm')|as_timestamp(0) }} 15 | -------------------------------------------------------------------------------- /automation/people/person1/person1_not_at_work.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_not_at_work' 2 | alias: 'person1 not at work' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: numeric_state 6 | entity_id: sensor.university_person1_distance 7 | above: 10000 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.person1_at_hw 11 | state: 'on' 12 | action: 13 | - service: input_boolean.turn_off 14 | entity_id: input_boolean.person1_at_hw 15 | -------------------------------------------------------------------------------- /automation/people/person1/person1_phone_plugged.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_phone_plugged' 2 | initial_state: 'on' 3 | alias: 'person1 phone plugged' 4 | trigger: 5 | - platform: event 6 | event_type: tasker_webhook 7 | event_data: 8 | who: person1 9 | condition: 10 | - condition: template 11 | value_template: >- 12 | {{ 'Plugged' in trigger.event.data.what }} 13 | action: 14 | - service: input_boolean.turn_off 15 | entity_id: input_boolean.person1_phone_charging 16 | - delay: '00:00:02' 17 | - service: input_boolean.turn_on 18 | entity_id: input_boolean.person1_phone_charging 19 | -------------------------------------------------------------------------------- /automation/people/person1/person1_phone_unplugged.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_phone_unplugged' 2 | initial_state: 'on' 3 | alias: 'person1 phone unplugged' 4 | trigger: 5 | - platform: event 6 | event_type: tasker_webhook 7 | event_data: 8 | who: person1 9 | condition: 10 | - condition: template 11 | value_template: >- 12 | {{ 'Unplugged' in trigger.event.data.what }} 13 | action: 14 | - service: input_boolean.turn_on 15 | entity_id: input_boolean.person1_phone_charging 16 | - delay: '00:00:02' 17 | - service: input_boolean.turn_off 18 | entity_id: input_boolean.person1_phone_charging 19 | -------------------------------------------------------------------------------- /automation/people/person1/person1_tablet_home.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_tablet_home' 2 | initial_state: 'on' 3 | alias: 'person1 tablet home' 4 | trigger: 5 | - platform: state 6 | entity_id: 7 | - group.person_person1_tablet 8 | to: 'home' 9 | - platform: homeassistant 10 | event: start 11 | condition: 12 | - condition: state 13 | entity_id: input_boolean.person1_tablet_home 14 | state: 'off' 15 | - condition: state 16 | entity_id: group.person_person1_tablet 17 | state: 'home' 18 | action: 19 | - service: input_boolean.turn_on 20 | entity_id: input_boolean.person1_tablet_home 21 | -------------------------------------------------------------------------------- /automation/people/person1/person1_travelling.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_travelling' 2 | alias: 'person1 Travelling' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: numeric_state 6 | entity_id: sensor.home_person1_distance 7 | above: 50000 8 | for: 9 | hours: 3 10 | - platform: time 11 | at: '23:00:00' 12 | condition: 13 | condition: and 14 | conditions: 15 | - condition: state 16 | entity_id: input_boolean.person1_home 17 | state: 'off' 18 | - condition: numeric_state 19 | entity_id: sensor.home_person1_distance 20 | above: 20000 21 | action: 22 | - service: input_boolean.turn_on 23 | entity_id: input_boolean.person1_travelling 24 | -------------------------------------------------------------------------------- /automation/people/person1/startup_person1_up.yaml: -------------------------------------------------------------------------------- 1 | id: 'startup_person1_up' 2 | alias: 'Startup person1 up' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: homeassistant 6 | event: start 7 | condition: 8 | - condition: or 9 | conditions: 10 | - condition: time 11 | after: '06:00:00' 12 | before: '22:00:00' 13 | - condition: state 14 | entity_id: input_boolean.person1_home 15 | state: 'off' 16 | action: 17 | - service: input_boolean.turn_on 18 | entity_id: input_boolean.person1_is_awake 19 | -------------------------------------------------------------------------------- /automation/people/person2/person2_at_gym.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_gym' 2 | alias: 'person2 at gym' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.pixel_xl 7 | to: 'Gym' 8 | for: 9 | minutes: 15 10 | action: 11 | - service: homeassistant.turn_on 12 | entity_id: automation.person2_returning_home 13 | - condition: state 14 | entity_id: input_boolean.person2_driving 15 | state: 'on' 16 | - service: input_boolean.turn_off 17 | entity_id: input_boolean.person2_driving 18 | -------------------------------------------------------------------------------- /automation/people/person2/person2_at_station.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_station' 2 | alias: 'person2 at station' 3 | trigger: 4 | - platform: state 5 | entity_id: device_tracker.pixel_xl 6 | to: 'home Station' 7 | condition: 8 | - condition: state 9 | entity_id: binary_sensor.workday_sensor 10 | state: 'on' 11 | action: 12 | - service: automation.turn_on 13 | entity_id: automation.person2_returning_home 14 | -------------------------------------------------------------------------------- /automation/people/person2/person2_changing_zones.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_changing_zones' 2 | initial_state: 'on' 3 | alias: 'person2 changing zones' 4 | trigger: 5 | # Been away for a few minutes 6 | - platform: state 7 | entity_id: device_tracker.pixel_xl 8 | to: 'not_home' 9 | for: '00:05:00' 10 | # Arrived in a zone 11 | - platform: state 12 | entity_id: device_tracker.pixel_xl 13 | from: 'not_home' 14 | condition: 15 | # Been at least 5 minutes 16 | - condition: template 17 | value_template: "{{ (now() - state_attr('script.person2_traveltime','last_triggered')).seconds > 300 }}" 18 | action: 19 | - service: script.person2_traveltime 20 | -------------------------------------------------------------------------------- /automation/people/person2/person2_coming_home.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_coming_home' 2 | alias: 'person2 coming home' 3 | trigger: 4 | - platform: state 5 | entity_id: device_tracker.pixel_xl 6 | to: 'home Station' 7 | condition: 8 | - condition: and 9 | conditions: 10 | - condition: time 11 | after: '10:00:00' 12 | - condition: state 13 | entity_id: binary_sensor.home_occupied 14 | state: 'off' 15 | action: 16 | - service: notify.person2 17 | data: 18 | message: "Nobody's home right now" 19 | - service: homeassistant.turn_off 20 | entity_id: automation.person2_coming_home 21 | -------------------------------------------------------------------------------- /automation/people/person2/person2_driving.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_driving' 2 | initial_state: 'on' 3 | alias: 'person2 driving' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.pixel_xl_android_auto 7 | to: 'on' 8 | id: 'auto' 9 | condition: 10 | # Not driving 11 | - condition: state 12 | entity_id: input_boolean.person2_driving 13 | state: 'off' 14 | action: 15 | - service: input_boolean.turn_on 16 | entity_id: input_boolean.person2_driving 17 | -------------------------------------------------------------------------------- /automation/people/person2/person2_high_accuracy.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_high_accuracy' 2 | alias: 'person2 high accuracy mode' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.pixel_xl_high_accuracy_mode 7 | to: 'on' 8 | for: '00:05:00' 9 | - platform: state 10 | entity_id: input_boolean.person2_home 11 | to: 'on' 12 | condition: 13 | - condition: state 14 | entity_id: binary_sensor.pixel_xl_high_accuracy_mode 15 | state: 'on' 16 | action: 17 | - service: notify.mobile_app_pixel_xl 18 | data: 19 | message: "command_high_accuracy_mode" 20 | data: 21 | command: "turn_off" 22 | -------------------------------------------------------------------------------- /automation/people/person2/person2_nearly_home.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_nearly_home' 2 | alias: 'person2 nearly home' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: zone 6 | entity_id: device_tracker.pixel_xl 7 | zone: zone.nearly_home 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.person2_home 11 | state: 'off' 12 | action: 13 | - service: notify.send_message 14 | target: 15 | entity_id: notify.debug_log 16 | data: 17 | message: "person2 is nearly home" 18 | -------------------------------------------------------------------------------- /automation/people/person2/person2_not_driving.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_not_driving' 2 | initial_state: 'on' 3 | alias: 'person2 not driving' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.pixel_xl_android_auto 7 | to: 'off' 8 | id: 'auto' 9 | condition: 10 | # Driving 11 | - condition: state 12 | entity_id: input_boolean.person2_driving 13 | state: 'on' 14 | action: 15 | - service: input_boolean.turn_off 16 | entity_id: input_boolean.person2_driving 17 | -------------------------------------------------------------------------------- /automation/people/person2/person2_not_overseas.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_not_overseas' 2 | initial_state: 'on' 3 | alias: 'person2 not overseas' 4 | trigger: 5 | - platform: state 6 | entity_id: sensor.pixel_xl_geocoded_location 7 | attribute: iso_country_code 8 | to: 'GB' 9 | condition: 10 | - condition: state 11 | entity_id: sensor.pixel_xl_geocoded_location 12 | attribute: iso_country_code 13 | state: 'GB' 14 | # Not overseas 15 | - condition: state 16 | entity_id: input_boolean.person2_overseas 17 | state: 'on' 18 | action: 19 | - service: input_boolean.turn_off 20 | entity_id: input_boolean.person2_overseas 21 | -------------------------------------------------------------------------------- /automation/people/person2/person2_phone_not_plugged.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_phone_not_plugged' 2 | alias: 'person2 phone not plugged in' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: time 6 | at: '22:45:00' 7 | condition: 8 | - condition: state 9 | entity_id: sensor.pixel_xl_charger_type 10 | state: 'none' 11 | - condition: state 12 | entity_id: input_boolean.person2_home 13 | state: 'on' 14 | action: 15 | - service: notify.person2 16 | data: 17 | message: "Don't forget to plug the phone in" 18 | -------------------------------------------------------------------------------- /automation/people/person2/person2_pre_alarm.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_pre_alarm' 2 | alias: 'person2 pre alarm' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: 'SleepAsAndroid_person2' 7 | event_data: 8 | event: 'smart_period' 9 | - platform: event 10 | event_type: 'SleepAsAndroid_person2' 11 | event_data: 12 | event: 'before_smart_period' 13 | action: 14 | - service: input_boolean.turn_on 15 | entity_id: input_boolean.person2_pre_alarm 16 | -------------------------------------------------------------------------------- /automation/people/person2/person2_sleep.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_sleep_status' 2 | alias: 'person2 sleep status' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: webhook 6 | webhook_id: '01234567-dead-beef-cafe-0123456789abc' 7 | allowed_methods: 8 | - POST 9 | local_only: false 10 | action: 11 | - service: notify.send_message 12 | target: 13 | entity_id: notify.debug_log 14 | data: 15 | message: >- 16 | Sleep as Android: {{ trigger.json.event }} / {{ trigger.json }} 17 | -------------------------------------------------------------------------------- /automation/people/person2/person2_tablet_plugged.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_tablet_plugged' 2 | initial_state: 'on' 3 | alias: 'person2 tablet plugged' 4 | trigger: 5 | - platform: state 6 | entity_id: sensor.person2_p11_charger_type 7 | from: 'none' 8 | condition: 9 | - condition: state 10 | entity_id: sensor.person2_p11_charger_type 11 | state: 'none' 12 | action: 13 | - service: input_boolean.turn_on 14 | entity_id: input_boolean.person2_tablet_charging 15 | -------------------------------------------------------------------------------- /automation/people/person2/person2_tablet_unplugged.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_tablet_unplugged' 2 | initial_state: 'on' 3 | alias: 'person2 tablet unplugged' 4 | trigger: 5 | - platform: state 6 | entity_id: sensor.person2_p11_charger_type 7 | to: 'none' 8 | condition: 9 | - condition: state 10 | entity_id: sensor.person2_p11_charger_type 11 | state: 'none' 12 | action: 13 | - service: input_boolean.turn_off 14 | entity_id: input_boolean.person2_tablet_charging 15 | -------------------------------------------------------------------------------- /automation/people/person2/sleep_as_android.yaml: -------------------------------------------------------------------------------- 1 | id: 'sleep_as_android' 2 | alias: 'Sleep as android' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: 'SleepAsAndroid_person2' 7 | action: 8 | - service: notify.send_message 9 | target: 10 | entity_id: notify.debug_log 11 | data: 12 | message: >- 13 | SleepAsAndroid: {{ trigger.event.data }} 14 | -------------------------------------------------------------------------------- /automation/people/person2/startup_person2_up.yaml: -------------------------------------------------------------------------------- 1 | id: 'startup_person2_up' 2 | alias: 'Startup person2 up' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: homeassistant 6 | event: start 7 | condition: 8 | - condition: or 9 | conditions: 10 | - condition: time 11 | after: '06:00:00' 12 | before: '22:00:00' 13 | - condition: state 14 | entity_id: input_boolean.person2_home 15 | state: 'off' 16 | action: 17 | - service: input_boolean.turn_on 18 | entity_id: input_boolean.person2_is_awake 19 | -------------------------------------------------------------------------------- /automation/people/person3/person3_awake.yaml: -------------------------------------------------------------------------------- 1 | id: 'person3_awake' 2 | initial_state: 'on' 3 | alias: 'person3 awake' 4 | trigger: 5 | - platform: state 6 | entity_id: 7 | - input_boolean.person3_in_bed 8 | - input_boolean.person3_home 9 | to: 'off' 10 | action: 11 | - service: input_boolean.turn_on 12 | entity_id: input_boolean.person3_is_awake 13 | - service: input_boolean.turn_off 14 | entity_id: input_boolean.person3_in_bed 15 | - service: script.turn_on 16 | entity_id: script.person3_travel_sensor 17 | -------------------------------------------------------------------------------- /automation/people/person3/person3_location_update.yaml: -------------------------------------------------------------------------------- 1 | id: 'person3_location_update' 2 | initial_state: 'on' 3 | alias: 'person3 location update' 4 | mode: single 5 | trigger: 6 | # I've moved 7 | - platform: state 8 | entity_id: 9 | - device_tracker.pixel_6a 10 | - input_select.person3_status_dropdown 11 | - input_boolean.person3_home 12 | - sensor.person3s_time_to_home_duration 13 | - sensor.person3s_time_to_home_by_bus_duration 14 | - sensor.person3s_time_to_home_by_google 15 | - sensor.person3s_time_to_home_by_foot_duration 16 | - sensor.person3_places 17 | action: 18 | - service: script.turn_on 19 | entity_id: script.person3_travel_sensor 20 | -------------------------------------------------------------------------------- /automation/people/person3/person3_next_alarm.yaml: -------------------------------------------------------------------------------- 1 | id: 'person3_next_alarm' 2 | alias: 'person3 next alarm' 3 | trigger: 4 | - platform: state 5 | entity_id: sensor.pixel_6a_next_alarm 6 | to: ~ 7 | action: 8 | - condition: template 9 | value_template: >- 10 | {{ state_attr('sensor.pixel_6a_next_alarm','Time in Milliseconds') is not none }} 11 | - service: input_datetime.set_datetime 12 | entity_id: input_datetime.person3_next_alarm 13 | data: 14 | timestamp: "{{ state_attr('sensor.pixel_6a_next_alarm','Time in Milliseconds')/1000 }}" 15 | -------------------------------------------------------------------------------- /automation/people/person3/startup_person3_up.yaml: -------------------------------------------------------------------------------- 1 | id: 'startup_person3_up' 2 | alias: 'Startup person3 up' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: homeassistant 6 | event: start 7 | condition: 8 | - condition: or 9 | conditions: 10 | - condition: time 11 | after: '06:00:00' 12 | before: '22:00:00' 13 | - condition: state 14 | entity_id: input_boolean.person3_home 15 | state: 'off' 16 | action: 17 | - service: input_boolean.turn_on 18 | entity_id: input_boolean.person3_is_awake 19 | -------------------------------------------------------------------------------- /automation/people/person4/person4_changing_zones.yaml: -------------------------------------------------------------------------------- 1 | id: 'person4_changing_zones' 2 | initial_state: 'on' 3 | alias: 'Elizabeth changing zones' 4 | trigger: 5 | # Been away for a few minutes 6 | - platform: state 7 | entity_id: device_tracker.dsb_0230 8 | to: 'not_home' 9 | for: '00:05:00' 10 | # Arrived in a zone 11 | - platform: state 12 | entity_id: device_tracker.dsb_0230 13 | from: 'not_home' 14 | condition: 15 | # Been at least 5 minutes 16 | - condition: template 17 | value_template: "{{ (now() - state_attr('script.person4_traveltime','last_triggered')).seconds > 300 }}" 18 | action: 19 | - service: script.turn_on 20 | entity_id: script.person4_traveltime 21 | -------------------------------------------------------------------------------- /automation/people/person4/person4_home.yaml: -------------------------------------------------------------------------------- 1 | id: 'person4_home' 2 | initial_state: 'on' 3 | alias: 'Elizabeth home' 4 | trigger: 5 | - platform: state 6 | entity_id: 7 | - device_tracker.00_1d_29_f0_4d_da 8 | - device_tracker.person4_bt_front_mobile_2 9 | - device_tracker.person4_bt_mobile_2 10 | to: 'home' 11 | condition: 12 | - condition: numeric_state 13 | entity_id: group.person_person4 14 | above: 0 15 | value_template: "{{ dict((states|selectattr('entity_id', 'in', state_attr('group.person_person4', 'entity_id'))|list)|groupby('state'))['home']|count }}" 16 | action: 17 | - service: script.turn_on 18 | entity_id: script.person4_home 19 | -------------------------------------------------------------------------------- /automation/people/person4/person4_location_update.yaml: -------------------------------------------------------------------------------- 1 | id: 'person4_location_update' 2 | initial_state: 'on' 3 | alias: 'Elizabeth location update' 4 | trigger: 5 | # I've moved 6 | - platform: state 7 | entity_id: 8 | - device_tracker.dsb_0230 9 | - input_select.person4_status_dropdown 10 | - input_boolean.person4_home 11 | - sensor.person4s_time_to_home_distance 12 | - sensor.person4s_time_to_home_waze 13 | - sensor.person4s_time_to_person4_o 14 | action: 15 | - service: script.turn_on 16 | entity_id: script.person4_travel_sensor 17 | -------------------------------------------------------------------------------- /automation/people/return-train-status.yaml: -------------------------------------------------------------------------------- 1 | id: 'return_train_status' 2 | alias: 'Return train status' 3 | trigger: 4 | - platform: time 5 | at: input_datetime.return_train_time 6 | #at: '16:35:00' 7 | condition: 8 | - condition: state 9 | entity_id: binary_sensor.workday_sensor 10 | state: 'on' 11 | - condition: numeric_state 12 | entity_id: sensor.work_person2_distance 13 | below: 5 14 | action: 15 | - service: notify.person2 16 | data: 17 | message: "{{ states('input_text.train_message') }}" 18 | -------------------------------------------------------------------------------- /automation/people/somebody_arrived_scan.yaml: -------------------------------------------------------------------------------- 1 | id: 'somebody_arrived_scan' 2 | alias: Somebody arrived scan 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: 7 | - input_select.person2_status_dropdown 8 | - input_select.person3_status_dropdown 9 | - input_select.person1_status_dropdown 10 | - input_select.person4_status_dropdown 11 | to: 'Just Arrived' 12 | condition: 13 | - condition: state 14 | entity_id: script.scan_bt_arrive 15 | state: 'off' 16 | action: 17 | - service: script.turn_on 18 | entity_id: script.scan_bt_arrive 19 | -------------------------------------------------------------------------------- /automation/people/startup_location_updates.yaml: -------------------------------------------------------------------------------- 1 | id: 'startup_location_update' 2 | initial_state: 'on' 3 | alias: 'Startup location update' 4 | trigger: 5 | # I've moved 6 | - platform: homeassistant 7 | event: start 8 | action: 9 | - delay: '00:00:30' 10 | - service: script.person3_traveltime 11 | - delay: '00:00:30' 12 | - service: script.person1_traveltime 13 | - delay: '00:00:30' 14 | - service: script.person2_traveltime 15 | - delay: '00:01:00' 16 | - service: script.person4_traveltime 17 | -------------------------------------------------------------------------------- /automation/places/person2_at_ams.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_amsterdam_airport' 2 | alias: 'person2 at Amsterdam Airport' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.pixel_xl 7 | to: 'Amsterdam Airport' 8 | action: 9 | - service: notify.person3 10 | data: 11 | message: "person2 has arrived at Amsterdam Airport" 12 | -------------------------------------------------------------------------------- /automation/places/person2_at_bru.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_brussels_airport' 2 | alias: 'person2 at Brussels Airport' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.pixel_xl 7 | to: 'Brussels Airport' 8 | action: 9 | - service: notify.person3 10 | data: 11 | message: "person2 has arrived at Brussels Airport" 12 | -------------------------------------------------------------------------------- /automation/places/person2_at_cdg.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_paris_cdg_airport' 2 | alias: 'person2 at Paris CDG Airport' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.pixel_xl 7 | to: 'Paris CDG Airport' 8 | action: 9 | - service: notify.person3 10 | data: 11 | message: "person2 has arrived at Paris CDG Airport" 12 | -------------------------------------------------------------------------------- /automation/places/person2_at_iad.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_dulles_airport' 2 | alias: 'person2 at Dulles Airport' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.pixel_xl 7 | to: 'Dulles Airport' 8 | action: 9 | - service: notify.person3 10 | data: 11 | message: "person2 has arrived at Dulles Airport" 12 | -------------------------------------------------------------------------------- /automation/places/person2_at_lcy.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_lcy' 2 | alias: 'person2 at LCY' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.pixel_xl 7 | to: 'London City Airport' 8 | - platform: state 9 | entity_id: device_tracker.pixel_xl 10 | to: 'LHR T2' 11 | action: 12 | - service: notify.person3 13 | data: 14 | message: "person2 has arrived at London City Airport" 15 | -------------------------------------------------------------------------------- /automation/places/person2_at_lhr.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_lhr' 2 | alias: 'person2 at LHR' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.pixel_xl 7 | to: 'London Heathrow Airport' 8 | - platform: state 9 | entity_id: device_tracker.pixel_xl 10 | to: 'LHR T2' 11 | action: 12 | - service: notify.person3 13 | data: 14 | message: "person2 has arrived at London Heathrow Airport" 15 | -------------------------------------------------------------------------------- /automation/places/person2_at_sin.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_sin' 2 | alias: 'person2 at SIN' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.pixel_xl 7 | to: 'Singapore Airport' 8 | action: 9 | - service: notify.person3 10 | data: 11 | message: "person2 has arrived at Singapore Airport" 12 | -------------------------------------------------------------------------------- /automation/places/person2_at_work_airport.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_work_airport' 2 | alias: 'person2 at work Airport' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.pixel_xl 7 | to: 'work Airport' 8 | for: '01:00:00' 9 | condition: 10 | - condition: state 11 | entity_id: automation.person2_at_work_airport_returning 12 | state: 'off' 13 | action: 14 | - service: automation.turn_on 15 | entity_id: automation.person2_at_work_airport_returning 16 | -------------------------------------------------------------------------------- /automation/places/person2_at_work_airport_returning.yaml: -------------------------------------------------------------------------------- 1 | id: 'person2_at_work_airport_returning' 2 | alias: 'person2 at work Airport returning' 3 | trigger: 4 | - platform: state 5 | entity_id: device_tracker.pixel_xl 6 | to: 'work Airport' 7 | condition: 8 | condition: and 9 | conditions: 10 | - condition: state 11 | entity_id: input_boolean.person2_home 12 | state: 'off' 13 | action: 14 | - service: notify.person3 15 | data: 16 | message: "person2 has landed at work Aiport" 17 | - service: automation.turn_off 18 | data: 19 | entity_id: automation.person2_at_work_airport_returning 20 | #stop_actions: false 21 | -------------------------------------------------------------------------------- /automation/platform/bt-front-dead.yaml: -------------------------------------------------------------------------------- 1 | id: 'bt_front_dead' 2 | alias: 'BT front dead' 3 | trigger: 4 | - platform: state 5 | entity_id: binary_sensor.first_floor_front 6 | to: 'off' 7 | for: '00:10:00' 8 | condition: 9 | - condition: state 10 | entity_id: 11 | - input_boolean.person2_home 12 | - input_boolean.person2_is_awake 13 | state: 'on' 14 | action: 15 | - service: notify.discord_webhook 16 | data: 17 | message: "Front Bluetooth is a zombie" 18 | -------------------------------------------------------------------------------- /automation/platform/bt-rear-dead.yaml: -------------------------------------------------------------------------------- 1 | id: 'bt_rear_dead' 2 | initial_state: 'on' 3 | alias: 'BT rear dead' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.first_floor_rear 7 | to: 'off' 8 | for: '00:10:00' 9 | action: 10 | - wait_template: >- 11 | {{ is_state('input_boolean.person2_home','on') and is_state('input_boolean.person2_is_awake','on') }} 12 | - service: notify.person2 13 | data: 14 | message: "Rear Bluetooth is a zombie" 15 | -------------------------------------------------------------------------------- /automation/platform/ha-started.yaml: -------------------------------------------------------------------------------- 1 | id: 'ha_started' 2 | alias: 'HA started' 3 | initial_state: 'on' 4 | trigger: 5 | platform: homeassistant 6 | event: start 7 | action: 8 | - service: script.notify_person2 9 | data: 10 | message: "Home Assistant {{ states('sensor.current_version') }} has started on Custodes ({{ as_timestamp(utcnow())|timestamp_utc }})" 11 | - service: script.scan_bt_restart 12 | -------------------------------------------------------------------------------- /automation/platform/ha-stopped.yaml: -------------------------------------------------------------------------------- 1 | id: 'ha_stopped' 2 | alias: 'HA stopped' 3 | initial_state: 'on' 4 | trigger: 5 | platform: homeassistant 6 | event: shutdown 7 | action: 8 | - service: input_boolean.turn_on 9 | target: 10 | entity_id: input_boolean.shutdown_in_progress 11 | - service: script.notify_person2 12 | data: 13 | message: "Home Assistant {{ states('sensor.current_version') }} has shut down on Custodes ({{ as_timestamp(utcnow())|timestamp_utc }})" 14 | -------------------------------------------------------------------------------- /automation/platform/ha_automations_reloaded.yaml: -------------------------------------------------------------------------------- 1 | id: 'ha_automations_reloaded' 2 | alias: 'HA automations reloaded' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: automation_reloaded 7 | action: 8 | - service: notify.apprise 9 | data: 10 | target: discord_ha 11 | title: " " 12 | message: "<@Tinkerer0042> :robot: Automations on Custodes have been reloaded at {{ as_timestamp(now())|timestamp_custom('%Y-%m-%d %H:%M:%S',now()) }} local" 13 | -------------------------------------------------------------------------------- /automation/platform/healthcheck.yaml: -------------------------------------------------------------------------------- 1 | id: 'healthcheck' 2 | initial_state: 'on' 3 | alias: 'Healthcheck' 4 | trigger: 5 | - platform: webhook 6 | webhook_id: !secret pi3 7 | local_only: false 8 | action: 9 | - delay: 10 | milliseconds: 1 11 | mode: parallel 12 | -------------------------------------------------------------------------------- /automation/platform/internet_outage.yaml: -------------------------------------------------------------------------------- 1 | id: 'internet_outage' 2 | alias: 'Internet outage' 3 | mode: parallel 4 | initial_state: 'on' 5 | trigger: 6 | - platform: state 7 | entity_id: 8 | - binary_sensor.fritz_box_3490_connection 9 | - binary_sensor.fritz_box_3490_link 10 | from: 'off' 11 | to: 'on' 12 | for: '00:05:00' 13 | action: 14 | - service: notify.send_message 15 | target: 16 | entity_id: notify.logfile 17 | data: 18 | message: "The internet went down and is now back up" 19 | - service: notify.person2 20 | data: 21 | message: "The internet went down and is now back up" 22 | -------------------------------------------------------------------------------- /automation/platform/living_room_table_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'living_room_table_off' 2 | initial_state: 'on' 3 | alias: 'Living room table off' 4 | trigger: 5 | - platform: state 6 | entity_id: light.living_room_table_lamp 7 | from: 'unavailable' 8 | to: 'off' 9 | condition: 10 | - condition: or 11 | conditions: 12 | - condition: state 13 | entity_id: input_select.living_room 14 | state: 'Dim' 15 | - condition: state 16 | entity_id: input_select.living_room 17 | state: 'Night on' 18 | action: 19 | - service: light.turn_on 20 | data: 21 | entity_id: light.living_room_table_lamp 22 | transition: 15 23 | -------------------------------------------------------------------------------- /automation/platform/plex_hook.yaml: -------------------------------------------------------------------------------- 1 | id: 'plex_hook' 2 | initial_state: 'on' 3 | alias: 'Plex hook' 4 | trigger: 5 | - platform: webhook 6 | webhook_id: !secret plex_token 7 | allowed_methods: 8 | - POST 9 | local_only: false 10 | action: 11 | - service: notify.send_message 12 | target: 13 | entity_id: notify.debug_log 14 | data: 15 | message: > 16 | Plex: {{ trigger.data }} 17 | 18 | -------------------------------------------------------------------------------- /automation/platform/printer_low.yaml: -------------------------------------------------------------------------------- 1 | id: 'printer_low' 2 | initial_state: 'on' 3 | alias: 'Printer low' 4 | trigger: 5 | - platform: numeric_state 6 | entity_id: sensor.printer 7 | below: 100 8 | - platform: numeric_state 9 | entity_id: sensor.printer 10 | below: 20 11 | action: 12 | - service: notify.person2 13 | data: 14 | message: "The printer is running low on consumables, time to buy something." 15 | -------------------------------------------------------------------------------- /automation/platform/scanner_stuck.yaml: -------------------------------------------------------------------------------- 1 | id: 'scanner_stuck' 2 | mode: 'parallel' 3 | alias: 'BT scanner stuck' 4 | initial_state: 'on' 5 | trigger: 6 | - platform: state 7 | entity_id: 8 | - script.scan_bt 9 | - script.scan_bt_arrive 10 | - script.scan_bt_depart 11 | to: 'on' 12 | for: '00:15:00' 13 | action: 14 | - service: script.turn_off 15 | data: 16 | entity_id: "{{ trigger.entity_id }}" 17 | 18 | -------------------------------------------------------------------------------- /automation/platform/zigbee2mqtt_devices.yaml: -------------------------------------------------------------------------------- 1 | id: 'zigbee2mqtt_devices' 2 | alias: 'Zigbee2MQTT device joined or left' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: mqtt 6 | topic: "zigbee2mqtt/bridge/event" 7 | condition: 8 | - condition: template 9 | value_template: >- 10 | {{ trigger.payload_json.type == "device_joined" or trigger.payload_json == "device_leave" }} 11 | action: 12 | - service: notify.discord_webhook 13 | data: 14 | message: >- 15 | :bee: Zigbee device {{ trigger.payload_json.data.friendly_name }} just {{ trigger.payload_json.type }} 16 | -------------------------------------------------------------------------------- /automation/platform/zigbee_offline.yaml: -------------------------------------------------------------------------------- 1 | initial_state: 'on' 2 | id: 'zigbee_offline' 3 | alias: 'Zigbee offline' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.zigbee2mqtt_bridge_state 7 | to: 'off' 8 | action: 9 | - service: notify.discord_webhook 10 | data: 11 | message: "The Zigbee bridge is offline at {{ as_timestamp(now())|timestamp_custom('%Y-%m-%d %H:%M:%S',now()) }} local" 12 | -------------------------------------------------------------------------------- /automation/platform/zigbee_online.yaml: -------------------------------------------------------------------------------- 1 | initial_state: 'on' 2 | id: 'zigbee_online' 3 | alias: 'Zigbee online' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.zigbee2mqtt_bridge_state 7 | to: 'on' 8 | action: 9 | - service: notify.discord_webhook 10 | data: 11 | message: "The Zigbee bridge is back online at {{ as_timestamp(now())|timestamp_custom('%Y-%m-%d %H:%M:%S',now()) }} local" 12 | -------------------------------------------------------------------------------- /automation/season/christmas_disabled.yaml: -------------------------------------------------------------------------------- 1 | id: 'christmas_disabled' 2 | alias: 'Christmas disabled' 3 | trigger: 4 | - platform: homeassistant 5 | event: start 6 | - platform: event 7 | event_type: automation_reloaded 8 | - platform: state 9 | entity_id: input_select.season 10 | from: 'Christmas' 11 | condition: 12 | - condition: not 13 | conditions: 14 | - condition: state 15 | entity_id: input_select.season 16 | state: 'Christmas' 17 | action: 18 | - service: homeassistant.turn_off 19 | entity_id: group.christmas_control 20 | -------------------------------------------------------------------------------- /automation/season/christmas_enabled.yaml: -------------------------------------------------------------------------------- 1 | id: 'christmas_enabled' 2 | alias: 'Christmas enabled' 3 | trigger: 4 | - platform: homeassistant 5 | event: start 6 | - platform: event 7 | event_type: automation_reloaded 8 | - platform: state 9 | entity_id: input_select.season 10 | to: 'Christmas' 11 | condition: 12 | - condition: state 13 | entity_id: input_select.season 14 | state: 'Christmas' 15 | - condition: state 16 | entity_id: group.christmas_control 17 | state: 'off' 18 | action: 19 | - service: homeassistant.turn_off 20 | entity_id: group.christmas_control 21 | -------------------------------------------------------------------------------- /automation/season/season_is_autumn.yaml: -------------------------------------------------------------------------------- 1 | id: 'season_is_autumn' 2 | alias: 'Season is autumn' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: homeassistant 6 | event: start 7 | - platform: time 8 | at: '03:00:00' 9 | condition: 10 | - condition: template 11 | value_template: '{{ 12 > now().month > 8 }}' 12 | - condition: not 13 | conditions: 14 | - condition: state 15 | entity_id: input_select.season 16 | state: 'Autumn' 17 | action: 18 | - service: input_select.select_option 19 | data: 20 | entity_id: input_select.season 21 | option: Autumn 22 | -------------------------------------------------------------------------------- /automation/season/season_is_christmas.yaml: -------------------------------------------------------------------------------- 1 | id: 'season_is_christmas' 2 | alias: 'Season is Christmas' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: homeassistant 6 | event: start 7 | - platform: time 8 | at: '02:00:00' 9 | condition: 10 | - condition: template 11 | value_template: '{{ ( now().month == 1 and now().day < 7 ) or ( now().month == 12 and now().day >= 12 ) }}' 12 | - condition: not 13 | conditions: 14 | - condition: state 15 | entity_id: input_select.season 16 | state: 'Christmas' 17 | action: 18 | - service: input_select.select_option 19 | data: 20 | entity_id: input_select.season 21 | option: Christmas 22 | -------------------------------------------------------------------------------- /automation/season/season_is_summer.yaml: -------------------------------------------------------------------------------- 1 | id: 'season_is_summer' 2 | alias: 'Season is summer' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: homeassistant 6 | event: start 7 | - platform: time 8 | at: '03:00:00' 9 | condition: 10 | - condition: template 11 | value_template: '{{ 9 > now().month > 5 }}' 12 | - condition: not 13 | conditions: 14 | - condition: state 15 | entity_id: input_select.season 16 | state: 'Summer' 17 | action: 18 | - service: input_select.select_option 19 | data: 20 | entity_id: input_select.season 21 | option: Summer 22 | -------------------------------------------------------------------------------- /automation/second_bedroom/alarm/person1_alarm_light.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_alarm_light' 2 | alias: 'person1 alarm light' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: light.second_bedroom 7 | to: 'off' 8 | condition: 9 | # Alarm has gone off and still in bed 10 | - condition: state 11 | entity_id: 12 | - input_boolean.person1_alarm_sounded 13 | - input_boolean.person1_in_bed 14 | state: 'on' 15 | action: 16 | - service: light.turn_on 17 | target: 18 | entity_id: light.second_bedroom 19 | data: 20 | transition: 5 21 | -------------------------------------------------------------------------------- /automation/second_bedroom/alarm/person1_up_reminder_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_up_reminder_off' 2 | alias: 'person1 up reminder off' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.person1_alarm_sounded 7 | to: 'off' 8 | action: 9 | - service: script.turn_off 10 | entity_id: script.wake_person1 11 | -------------------------------------------------------------------------------- /automation/second_bedroom/modes/second_bedroom_mode_wake.yaml: -------------------------------------------------------------------------------- 1 | id: 'second_bedroom_mode_wake' 2 | initial_state: 'on' 3 | alias: 'Second bedroom mode wake' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.person1_alarm_sounded 7 | to: 'on' 8 | condition: 9 | - condition: state 10 | entity_id: input_boolean.person1_home 11 | state: 'on' 12 | - condition: time 13 | before: '10:00:00' 14 | action: 15 | - service: input_select.select_option 16 | data: 17 | entity_id: input_select.second_bedroom 18 | option: 'Wake' 19 | -------------------------------------------------------------------------------- /automation/second_bedroom/person1_bedside_left_on.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_bedside_left_on' 2 | alias: 'person1 bedside left on' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: time 6 | at: '23:59:59' 7 | condition: 8 | - condition: state 9 | entity_id: light.second_bedroom 10 | state: 'on' 11 | action: 12 | - service: input_select.select_option 13 | data: 14 | entity_id: input_select.second_bedroom 15 | option: 'Bedtime' 16 | - delay: '00:01:00' 17 | - service: input_select.select_option 18 | data: 19 | entity_id: input_select.second_bedroom 20 | option: 'Off' 21 | -------------------------------------------------------------------------------- /automation/second_bedroom/person1_phone_alarm.yaml: -------------------------------------------------------------------------------- 1 | id: 'person1_phone_alarm' 2 | alias: 'person1 phone alarm' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: time 6 | at: sensor.sm_a546b_next_alarm 7 | condition: 8 | - condition: state 9 | entity_id: input_boolean.person1_home 10 | state: 'on' 11 | - condition: not 12 | conditions: 13 | - condition: state 14 | entity_id: sensor.sm_a546b_next_alarm 15 | state: 'unavailable' 16 | action: 17 | - service: input_select.select_option 18 | data: 19 | entity_id: input_select.second_bedroom 20 | option: 'Wake' 21 | -------------------------------------------------------------------------------- /automation/spare_bedroom/guest_mode_off.yaml: -------------------------------------------------------------------------------- 1 | id: 'spare_bedroom_guest_mode_off' 2 | alias: 'Spare bedroom guest mode off - turn down the heat' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.guest_mode 7 | to: 'off' 8 | action: 9 | - service: climate.set_preset_mode 10 | data: 11 | preset_mode: 'away' 12 | target: 13 | entity_id: climate.spare_bedroom_radiator 14 | -------------------------------------------------------------------------------- /automation/spare_bedroom/guest_mode_on.yaml: -------------------------------------------------------------------------------- 1 | id: 'spare_bedroom_guest_mode_on' 2 | alias: 'Spare bedroom guest mode on - turn up the heat' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: input_boolean.guest_mode 7 | to: 'on' 8 | action: 9 | - service: climate.set_temperature 10 | data: 11 | temperature: 21 12 | target: 13 | entity_id: climate.spare_bedroom_radiator 14 | -------------------------------------------------------------------------------- /automation/test/README.md: -------------------------------------------------------------------------------- 1 | # Automations, automations everywhere, and all the brains did hurt 2 | 3 | Documentation: [automation](https://home-assistant.io/docs/automation/) 4 | 5 | ## Test 6 | 7 | These are for when I'm playing with things 8 | -------------------------------------------------------------------------------- /automation/test/telegram_callback.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_callback' 2 | alias: 'Telegram callback' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_callback 7 | action: 8 | - service: notify.send_message 9 | target: 10 | entity_id: notify.debug_log 11 | data: 12 | message: > 13 | Received callback: {{ trigger.event.data.data }} with message {{ trigger.event.data.message }} 14 | From: {{ trigger.event.data.from_first }} {{ trigger.event.data.from_last }} aka {{ trigger.event.data.user_id }} in {{ trigger.event.data.chat_id }}/{{ trigger.event.data.chat }} 15 | -------------------------------------------------------------------------------- /automation/test/telegram_command.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_command' 2 | alias: 'Telegram command' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_command 7 | action: 8 | - service: notify.send_message 9 | target: 10 | entity_id: notify.debug_log 11 | data: 12 | message: > 13 | Received a command {{ trigger.event.data.command }} {{ trigger.event.data.args }} 14 | From: {{ trigger.event.data.from_first }} {{ trigger.event.data.from_last }} aka {{ trigger.event.data.user_id }} in {{ trigger.event.data.chat_id }}/{{ trigger.event.data.chat }} 15 | -------------------------------------------------------------------------------- /automation/test/telegram_text.yaml: -------------------------------------------------------------------------------- 1 | id: 'telegram_text' 2 | alias: 'Telegram text' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: telegram_text 7 | action: 8 | - service: notify.send_message 9 | target: 10 | entity_id: notify.debug_log 11 | data: 12 | message: > 13 | Received text: {{ trigger.event.data.text }} 14 | From: {{ trigger.event.data.from_first }} {{ trigger.event.data.from_last }} aka {{ trigger.event.data.user_id }} in {{ trigger.event.data.chat_id }}/{{ trigger.event.data.chat }} 15 | -------------------------------------------------------------------------------- /automation/test/test_alarm.yaml: -------------------------------------------------------------------------------- 1 | id: 'test_alarm' 2 | alias: 'Test alarm' 3 | trigger: 4 | - platform: time 5 | at: sensor.pixel_xl_next_alarm 6 | action: 7 | - service: notify.person2 8 | data: 9 | message: "The alarm, it's time" 10 | -------------------------------------------------------------------------------- /automation/things/car_home.yaml: -------------------------------------------------------------------------------- 1 | id: 'car_home' 2 | initial_state: 'on' 3 | alias: 'Car home' 4 | trigger: 5 | - platform: state 6 | entity_id: 7 | - device_tracker.skoda_superb_combi_position 8 | to: 'home' 9 | - platform: homeassistant 10 | event: start 11 | condition: 12 | - condition: state 13 | entity_id: input_boolean.car_home 14 | state: 'off' 15 | - condition: state 16 | entity_id: device_tracker.skoda_superb_combi_position 17 | state: 'home' 18 | action: 19 | - service: input_boolean.turn_on 20 | entity_id: input_boolean.car_home 21 | - service: input_text.set_value 22 | data: 23 | entity_id: input_text.car 24 | value: "Home" 25 | -------------------------------------------------------------------------------- /automation/things/car_moved.yaml: -------------------------------------------------------------------------------- 1 | id: 'car_moved' 2 | alias: 'car moved' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: state 6 | entity_id: device_tracker.skoda_superb_combi_position 7 | action: 8 | - service: script.update_car_location 9 | -------------------------------------------------------------------------------- /automation/things/car_update.yaml: -------------------------------------------------------------------------------- 1 | id: 'car_update_myskoda' 2 | alias: 'Car update for MySkoda' 3 | initial_state: 'on' 4 | triggers: 5 | - trigger: state 6 | entity_id: binary_sensor.pixel_xl_android_auto 7 | to: ~ 8 | for: '00:01:00' 9 | id: 'auto' 10 | actions: 11 | - action: homeassistant.update_entity 12 | data: 13 | entity_id: 14 | - device_tracker.skoda_superb_combi_position 15 | 16 | -------------------------------------------------------------------------------- /automation/things/power_cycle_loki.yaml: -------------------------------------------------------------------------------- 1 | id: 'power_cycle_loki' 2 | alias: 'Power cycle loki' 3 | initial_state: 'on' 4 | triggers: 5 | - trigger: state 6 | entity_id: device_tracker.rpi_loki 7 | to: 'not_home' 8 | for: '00:10:00' 9 | conditions: 10 | - condition: state 11 | entity_id: switch.cloudfree_usb_loki 12 | state: 'on' 13 | actions: 14 | - action: switch.turn_off 15 | target: 16 | entity_id: switch.cloudfree_usb_loki 17 | - delay: '00:00:05' 18 | - action: switch.turn_on 19 | target: 20 | entity_id: switch.cloudfree_usb_loki 21 | - action: notify.discord_webhook 22 | data: 23 | message: "Loki was down for 10 minutes so we power cycled it" 24 | -------------------------------------------------------------------------------- /automation/toilet/toilet_unoccupied.yaml: -------------------------------------------------------------------------------- 1 | id: 'toilet_unoccupied' 2 | alias: 'Toilet unoccupied' 3 | initial_state: 'on' 4 | trigger: 5 | - platform: event 6 | event_type: automation_reloaded 7 | - platform: numeric_state 8 | entity_id: sensor.toilet_light_sensor_illuminance_lux 9 | below: 2 10 | - platform: state 11 | entity_id: binary_sensor.toilet_door_contact 12 | to: 13 | - 'on' 14 | - 'off' 15 | condition: 16 | - condition: numeric_state 17 | entity_id: sensor.toilet_light_sensor_illuminance_lux 18 | below: 2 19 | action: 20 | - service: input_boolean.turn_off 21 | target: 22 | entity_id: input_boolean.toilet_occupied 23 | -------------------------------------------------------------------------------- /automation/vestibule/modes/vestibule_mode_away.yaml: -------------------------------------------------------------------------------- 1 | id: 'vestibule_mode_away' 2 | initial_state: 'on' 3 | alias: 'Vestibule mode away' 4 | trigger: 5 | - platform: state 6 | entity_id: binary_sensor.home_occupied 7 | to: 'off' 8 | condition: 9 | - condition: template 10 | value_template: "{{ not is_state('input_select.vestibule','Away') }}" 11 | action: 12 | - service: input_select.select_option 13 | data: 14 | entity_id: 'input_select.vestibule' 15 | option: 'Away' 16 | -------------------------------------------------------------------------------- /automations.yaml: -------------------------------------------------------------------------------- 1 | - id: '1699433252013' 2 | alias: Spare bedroom external temperature sensor 3 | description: Configures the spare bedroom TRV to receive the temperature from the 4 | external sensor 5 | use_blueprint: 6 | path: pavax/z2m_aqara_trv_external_temperature.yaml 7 | input: 8 | external_temp_sensor: sensor.spare_bedroom_environment_temperature 9 | aqara_trv_device: 06c5830a30a0058db6c294ccf8f6e0d0 10 | -------------------------------------------------------------------------------- /binary_sensors/meteoalarm.yaml: -------------------------------------------------------------------------------- 1 | - platform: meteoalarm 2 | country: "united-kingdom" 3 | province: "Strathclyde" 4 | -------------------------------------------------------------------------------- /binary_sensors/trend_living_room_light.yaml: -------------------------------------------------------------------------------- 1 | - platform: trend 2 | sensors: 3 | trend_living_room_light: 4 | entity_id: sensor.living_room_light_sensor_illuminance_lux 5 | friendly_name: Living room light level trend 6 | device_class: light 7 | max_samples: 5 8 | sample_duration: 3600 9 | -------------------------------------------------------------------------------- /binary_sensors/trend_sun_elevation.yaml: -------------------------------------------------------------------------------- 1 | - platform: trend 2 | sensors: 3 | trend_sun_elevation: 4 | entity_id: sensor.sun_solar_elevation 5 | friendly_name: Sun rising 6 | max_samples: 5 7 | sample_duration: 300 8 | -------------------------------------------------------------------------------- /blueprints/automation/README.md: -------------------------------------------------------------------------------- 1 | # Blueprints 2 | 3 | I'm just messing about with Blueprints for now. These aren't in use, and will likely see many changes before they are. 4 | 5 | What this means is, they may not work ;) 6 | -------------------------------------------------------------------------------- /blueprints/automation/homeassistant/README.md: -------------------------------------------------------------------------------- 1 | # Blueprints 2 | 3 | These are the default blueprints that HA ships. They're not mine. 4 | -------------------------------------------------------------------------------- /climate/README.md: -------------------------------------------------------------------------------- 1 | # Climate 2 | 3 | Components 4 | * [climate.generic_thermostat](https://home-assistant.io/components/climate.generic_thermostat/) 5 | * [input_boolean](https://www.home-assistant.io/components/input_boolean/) 6 | 7 | This is the simplest way of exposing the temperature sensors to Google. There's a dummy input boolean to pretend to be the heater. 8 | -------------------------------------------------------------------------------- /custom_components/README.md: -------------------------------------------------------------------------------- 1 | # Custom components 2 | 3 | * [HACS](https://hacs.netlify.com) for intalling, updating, and finding new custom integrations. All other custom integrations are installed using this. 4 | * [Circadian lighting](https://github.com/claytonjn/hass-circadian_lighting/) since the built in [flux integration](https://www.home-assistant.io/integrations/flux) isn't as good. 5 | * [Home Assistant Remote](https://github.com/lukas-hetzenecker/home-assistant-remote) for linking my Z-Wave and primary instances. This is more effective than my ugly MQTT hack. 6 | -------------------------------------------------------------------------------- /custom_components/awtrix/services.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DubhAd/Home-AssistantConfig/6f3e1a07e0e32c6d7b5386830244baca3499fcf6/custom_components/awtrix/services.yaml -------------------------------------------------------------------------------- /custom_components/hacs/frontend/templates/error.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 | 4 | {% endblock %} 5 | -------------------------------------------------------------------------------- /custom_components/hacs/frontend/templates/message.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
6 | 7 | {{message}} 8 | 9 |
10 |
11 |
12 |
13 |
14 | -------------------------------------------------------------------------------- /custom_components/hacs/frontend/templates/modal/wrong_ha_version.html: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /custom_components/hacs/frontend/templates/settings/dev/remove_new_flag.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
4 |
5 |
6 | 9 |
10 |
11 |
12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /custom_components/hacs/frontend/templates/settings/dev/repositories.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 | {% for repository in hacs.store.frontend|sort(attribute='name') %} 4 |
5 | 6 | 9 |
10 | {% endfor %} 11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /custom_components/hacs/frontend/templates/settings/dev/repository.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DubhAd/Home-AssistantConfig/6f3e1a07e0e32c6d7b5386830244baca3499fcf6/custom_components/hacs/frontend/templates/settings/dev/repository.html -------------------------------------------------------------------------------- /custom_components/hacs/frontend/templates/settings/dev/set_ha_version.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
4 |
5 |
6 | 7 | 10 |
11 |
12 |
13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /custom_components/hacs/frontend/templates/settings/dev/token.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
4 |
5 | 6 |
7 |
8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /custom_components/remote_homeassistant/services.yaml: -------------------------------------------------------------------------------- 1 | reload: 2 | name: Reload Remote Home-Assistant 3 | description: Reload remote_homeassistant and re-process yaml configuration. 4 | -------------------------------------------------------------------------------- /custom_components/thermal_comfort/services.yaml: -------------------------------------------------------------------------------- 1 | reload: 2 | name: Reload 3 | description: Reload all Thermal Comfort entities. 4 | -------------------------------------------------------------------------------- /device_tracker/nmap_tracker.yaml.DISABLED: -------------------------------------------------------------------------------- 1 | platform: nmap_tracker 2 | interval_seconds: 30 3 | consider_home: 30 4 | track_new_devices: yes 5 | scan_options: " --privileged -p22,80,139,445 -n --host-timeout 5s -T5 --exclude 192.168.0.10 " 6 | hosts: 7 | - 192.168.0.0/24 8 | -------------------------------------------------------------------------------- /ffmpeg.yaml: -------------------------------------------------------------------------------- 1 | ffmpeg_bin: /usr/bin/ffmpeg 2 | -------------------------------------------------------------------------------- /frontend.yaml: -------------------------------------------------------------------------------- 1 | themes: !include_dir_merge_named themes/ 2 | extra_module_url: 3 | - /local/community/custom-brand-icons/custom-brand-icons.js 4 | -------------------------------------------------------------------------------- /go2rtc.yaml: -------------------------------------------------------------------------------- 1 | api: 2 | listen: ":11984" 3 | webrtc: 4 | listen: ":18555" 5 | rtsp: 6 | listen: ":18554" 7 | streams: 8 | front: webrtc:http://custodes.family:5000/live/webrtc/stream.html?src=front 9 | front_low: webrtc:http://custodes.family:5000/live/webrtc/stream.html?src=front_low 10 | -------------------------------------------------------------------------------- /groups/car.yaml: -------------------------------------------------------------------------------- 1 | name: Car 2 | entities: 3 | - device_tracker.car_front 4 | - device_tracker.car_rear 5 | -------------------------------------------------------------------------------- /groups/christmas_control.yaml: -------------------------------------------------------------------------------- 1 | name: Christmas 2 | entities: 3 | - input_boolean.family_room_christmas 4 | - input_boolean.hall_christmas 5 | - input_boolean.living_room_christmas 6 | - input_boolean.vestibule_christmas 7 | -------------------------------------------------------------------------------- /groups/downstairs_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Downstairs occupied 2 | entities: 3 | - input_boolean.family_room_occupied 4 | - input_boolean.living_room_occupied 5 | - input_boolean.kitchen_occupied 6 | - input_boolean.toilet_occupied 7 | - input_boolean.utility_occupied 8 | -------------------------------------------------------------------------------- /groups/flood_sensors.yaml: -------------------------------------------------------------------------------- 1 | name: Flood sensors 2 | entities: 3 | - binary_sensor.bathroom_water_leak_water_leak 4 | - binary_sensor.kitchen_water_leak_water_leak 5 | - binary_sensor.toilet_water_leak_water_leak 6 | - binary_sensor.utility_room_water_leak_water_leak 7 | - binary_sensor.second_ensuite_water_leak 8 | - binary_sensor.master_ensuite_leak_water_leak 9 | - binary_sensor.boiler_water_leak 10 | -------------------------------------------------------------------------------- /groups/guests.yaml: -------------------------------------------------------------------------------- 1 | name: Guests 2 | entities: 3 | - input_boolean.person4_home 4 | -------------------------------------------------------------------------------- /groups/living_room_lights.yaml: -------------------------------------------------------------------------------- 1 | name: Living room lights 2 | entities: 3 | - light.living_room_tv_lamp 4 | - light.living_room_corner_lamp 5 | - light.living_room_table_lamp 6 | -------------------------------------------------------------------------------- /groups/my_downstairs_windows.yaml: -------------------------------------------------------------------------------- 1 | name: Downstairs windows 2 | entities: 3 | - binary_sensor.family_window_left_contact 4 | - binary_sensor.family_window_right_contact 5 | - binary_sensor.kitchen_window_left_contact 6 | - binary_sensor.kitchen_window_right_contact 7 | - binary_sensor.patio_window_left_contact 8 | - binary_sensor.patio_window_right_contact 9 | - binary_sensor.vestibule_window_front_contact 10 | - binary_sensor.vestibule_window_side_contact 11 | -------------------------------------------------------------------------------- /groups/my_exit_doors.yaml: -------------------------------------------------------------------------------- 1 | name: Doors we exit by 2 | entities: 3 | - binary_sensor.garage_door_car_contact 4 | - binary_sensor.front_door_contact 5 | -------------------------------------------------------------------------------- /groups/my_exterior_doors.yaml: -------------------------------------------------------------------------------- 1 | name: Outside doors 2 | entities: 3 | - binary_sensor.garage_door_bike_contact 4 | - binary_sensor.garage_door_car_contact 5 | - binary_sensor.front_door_contact 6 | - binary_sensor.patio_door_left_contact 7 | - binary_sensor.patio_door_right_contact 8 | - binary_sensor.utility_door_exterior_contact 9 | 10 | -------------------------------------------------------------------------------- /groups/my_exterior_windows.yaml: -------------------------------------------------------------------------------- 1 | name: Windows 2 | entities: 3 | - group.my_upstairs_windows 4 | -------------------------------------------------------------------------------- /groups/my_interior_doors.yaml: -------------------------------------------------------------------------------- 1 | name: Interior doors 2 | entities: 3 | - binary_sensor.bathroom_door_contact 4 | - binary_sensor.family_room_door_contact 5 | - binary_sensor.guest_bedroom_door_contact 6 | - binary_sensor.living_room_door_contact 7 | - binary_sensor.master_bedroom_door_contact 8 | - binary_sensor.master_ensuite_door_contact 9 | - binary_sensor.office_door_contact 10 | - binary_sensor.second_bedroom_door_contact 11 | - binary_sensor.second_ensuite_door_contact 12 | - binary_sensor.spare_bedroom_door_contact 13 | - binary_sensor.toilet_door_contact 14 | - binary_sensor.vestibule_door_contact 15 | -------------------------------------------------------------------------------- /groups/my_lights.yaml: -------------------------------------------------------------------------------- 1 | name: Lights 2 | entities: 3 | - switch.garden_lights 4 | - switch.living_room_cabinet_light 5 | - light.living_room_tv_lamp 6 | - light.living_room_table_lamp 7 | - light.living_room_corner_lamp 8 | - light.office_strip 9 | - light.downstairs_hall 10 | - light.master_bedroom 11 | - light.second_bedroom 12 | -------------------------------------------------------------------------------- /groups/my_other_exterior_doors.yaml: -------------------------------------------------------------------------------- 1 | name: Outside doors 2 | entities: 3 | - binary_sensor.garage_door_bike_contact 4 | - binary_sensor.garage_door_car_contact 5 | - binary_sensor.patio_door_left_contact 6 | - binary_sensor.patio_door_right_contact 7 | - binary_sensor.utility_door_exterior_contact 8 | -------------------------------------------------------------------------------- /groups/my_people.yaml: -------------------------------------------------------------------------------- 1 | name: My people 2 | entities: 3 | - input_boolean.person1_home 4 | - input_boolean.person2_home 5 | - input_boolean.person3_home 6 | -------------------------------------------------------------------------------- /groups/my_room_status.yaml: -------------------------------------------------------------------------------- 1 | name: Room status 2 | entities: 3 | - input_boolean.bathroom_occupied 4 | - input_boolean.family_room_occupied 5 | - input_boolean.garage_occupied 6 | - input_boolean.guest_bedroom_occupied 7 | - input_boolean.kitchen_occupied 8 | - input_boolean.living_room_occupied 9 | - input_boolean.master_bedroom_occupied 10 | - input_boolean.master_ensuite_occupied 11 | - input_boolean.office_occupied 12 | - input_boolean.second_bedroom_occupied 13 | - input_boolean.second_ensuite_occupied 14 | - input_boolean.spare_bedroom_occupied 15 | - input_boolean.toilet_occupied 16 | - input_boolean.utility_occupied 17 | -------------------------------------------------------------------------------- /groups/my_upstairs_windows.yaml: -------------------------------------------------------------------------------- 1 | name: Upstairs windows 2 | entities: 3 | - binary_sensor.bathroom_window_contact 4 | - binary_sensor.guest_bedroom_window_left_contact 5 | - binary_sensor.guest_bedroom_window_right_contact 6 | - binary_sensor.master_window_ensuite_contact 7 | - binary_sensor.master_window_left_contact 8 | - binary_sensor.master_window_right_contact 9 | - binary_sensor.office_window_contact 10 | - binary_sensor.spare_bedroom_window_left_contact 11 | - binary_sensor.spare_bedroom_window_right_contact 12 | - binary_sensor.second_bedroom_window_ensuite_contact 13 | - binary_sensor.second_bedroom_window_left_contact 14 | - binary_sensor.second_bedroom_window_right_contact 15 | -------------------------------------------------------------------------------- /groups/own_laptop.yaml: -------------------------------------------------------------------------------- 1 | name: Own laptop 2 | entities: 3 | - device_tracker.lenovo_yoga 4 | -------------------------------------------------------------------------------- /groups/person_dor.yaml: -------------------------------------------------------------------------------- 1 | name: person4 2 | entities: 3 | - device_tracker.dsb_0230 4 | -------------------------------------------------------------------------------- /groups/person_person1.yaml: -------------------------------------------------------------------------------- 1 | name: person1 2 | entities: 3 | - device_tracker.person1_bt_mobile_2 4 | - device_tracker.person1_bt_front_mobile_2 5 | - device_tracker.person_person1_wifi 6 | - device_tracker.nmap_tracker_samsung_a54 7 | -------------------------------------------------------------------------------- /groups/person_person1_tablet.yaml: -------------------------------------------------------------------------------- 1 | name: person1's tablet 2 | icon: mdi:tablet 3 | entities: 4 | - device_tracker.person1_bt_tablet_2 5 | - device_tracker.person1_bt_front_tablet_2 6 | -------------------------------------------------------------------------------- /groups/person_person1_tablet_old.yaml: -------------------------------------------------------------------------------- 1 | name: person1's old tablet 2 | icon: mdi:tablet 3 | entities: 4 | - device_tracker.e4_a7_c5_8d_3b_e4 5 | -------------------------------------------------------------------------------- /groups/person_person2.yaml: -------------------------------------------------------------------------------- 1 | name: person2 2 | entities: 3 | - device_tracker.person2_bt_mobile_2 4 | - device_tracker.person2_bt_front_mobile_2 5 | - device_tracker.person_person2_wifi 6 | - device_tracker.google_pixel_8 7 | -------------------------------------------------------------------------------- /groups/person_person2_laptop.yaml: -------------------------------------------------------------------------------- 1 | name: person2's laptop 2 | icon: mdi:laptop-windows 3 | entities: 4 | - device_tracker.lenovo_yoga 5 | - device_tracker.person2_bt_laptop_2 6 | - device_tracker.person2_bt_front_laptop_2 7 | -------------------------------------------------------------------------------- /groups/person_person2_tablet.yaml: -------------------------------------------------------------------------------- 1 | name: person2's tablet 2 | icon: mdi:tablet 3 | entities: 4 | - device_tracker.person2_lenovo_p11 5 | - device_tracker.person_person2_tablet_wifi 6 | -------------------------------------------------------------------------------- /groups/person_person2_work.yaml: -------------------------------------------------------------------------------- 1 | name: person2's work phone 2 | entities: 3 | - device_tracker.work_iphone13 4 | - device_tracker.person2_bt_work_2 5 | - device_tracker.person2_bt_front_work_2 6 | -------------------------------------------------------------------------------- /groups/person_person3.yaml: -------------------------------------------------------------------------------- 1 | name: person3 2 | entities: 3 | - device_tracker.person3_bt_mobile_2 4 | - device_tracker.person3_bt_front_mobile_2 5 | - device_tracker.person_person3_wifi 6 | -------------------------------------------------------------------------------- /groups/person_person4.yaml: -------------------------------------------------------------------------------- 1 | name: person4 2 | entities: 3 | - device_tracker.person4_bt_front_mobile_2 4 | - device_tracker.person4_bt_mobile_2 5 | -------------------------------------------------------------------------------- /groups/tv.yaml: -------------------------------------------------------------------------------- 1 | name: TVs 2 | entities: 3 | - media_player.samsung_tv 4 | - media_player.living_room_tv 5 | -------------------------------------------------------------------------------- /groups/upstairs_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Upstairs occupied 2 | entities: 3 | - input_boolean.bathroom_occupied 4 | - input_boolean.guest_bedroom_occupied 5 | - input_boolean.master_bedroom_occupied 6 | - input_boolean.master_ensuite_occupied 7 | - input_boolean.office_occupied 8 | - input_boolean.second_bedroom_occupied 9 | - input_boolean.second_ensuite_occupied 10 | - input_boolean.spare_bedroom_occupied 11 | -------------------------------------------------------------------------------- /groups/work_laptop.yaml: -------------------------------------------------------------------------------- 1 | name: Work laptop 2 | entities: 3 | - device_tracker.laptop_dock 4 | -------------------------------------------------------------------------------- /homeassistant.yaml: -------------------------------------------------------------------------------- 1 | name: Our home 2 | latitude: !secret latitude 3 | longitude: !secret longitude 4 | elevation: !secret elevation 5 | country: GB 6 | language: en-GB 7 | currency: GBP 8 | time_zone: Europe/London 9 | unit_system: metric 10 | customize: !include customize.yaml 11 | allowlist_external_dirs: 12 | - /data/homeassistant 13 | - /data/apprise 14 | auth_providers: !include auth_providers.yaml 15 | external_url: !secret remote_base 16 | internal_url: !secret local_base 17 | allowlist_external_urls: 18 | - !secret local_base 19 | - !secret remote_base 20 | - !secret frigate_base 21 | - http://127.0.0.1:8123 22 | - http://127.0.0.1:5000 23 | -------------------------------------------------------------------------------- /http.yaml: -------------------------------------------------------------------------------- 1 | trusted_proxies: 2 | - 127.0.0.1 3 | - 192.168.0.11 4 | - 192.168.0.12 5 | use_x_forwarded_for: true 6 | -------------------------------------------------------------------------------- /influxdb.yaml: -------------------------------------------------------------------------------- 1 | host: 192.168.0.13 2 | max_retries: 3 3 | tags: 4 | source: hass 5 | -------------------------------------------------------------------------------- /input_boolean/alarm_mode.yaml: -------------------------------------------------------------------------------- 1 | name: Alarm mode 2 | icon: mdi:shield-home 3 | -------------------------------------------------------------------------------- /input_boolean/bedtime.yaml: -------------------------------------------------------------------------------- 1 | name: Everybody in bed 2 | icon: mdi:bed 3 | -------------------------------------------------------------------------------- /input_boolean/camera/front_camera_motion.yaml: -------------------------------------------------------------------------------- 1 | name: Front camera motion 2 | icon: mdi:motion-sensor 3 | -------------------------------------------------------------------------------- /input_boolean/camera/front_camera_motion_interesting.yaml: -------------------------------------------------------------------------------- 1 | name: Front camera motion interesting 2 | icon: mdi:camera 3 | -------------------------------------------------------------------------------- /input_boolean/camera/stream_camera.yaml: -------------------------------------------------------------------------------- 1 | name: Stream camera 2 | icon: mdi:cctv 3 | -------------------------------------------------------------------------------- /input_boolean/camera/stream_front_camera_motion.yaml: -------------------------------------------------------------------------------- 1 | name: Stream front camera motion 2 | icon: mdi:camera-wireless 3 | -------------------------------------------------------------------------------- /input_boolean/car_home.yaml: -------------------------------------------------------------------------------- 1 | name: Car home 2 | icon: mdi:car 3 | -------------------------------------------------------------------------------- /input_boolean/door_front.yaml: -------------------------------------------------------------------------------- 1 | name: Front door was opened 2 | initial: off 3 | icon: mdi:door 4 | -------------------------------------------------------------------------------- /input_boolean/door_garage_bike.yaml: -------------------------------------------------------------------------------- 1 | name: Garage door (bike) was opened 2 | initial: off 3 | icon: mdi:door 4 | -------------------------------------------------------------------------------- /input_boolean/door_garage_car.yaml: -------------------------------------------------------------------------------- 1 | name: Garage door (car) was opened 2 | initial: off 3 | icon: mdi:door 4 | -------------------------------------------------------------------------------- /input_boolean/door_patio.yaml: -------------------------------------------------------------------------------- 1 | name: Patio door was opened 2 | initial: off 3 | icon: mdi:door 4 | -------------------------------------------------------------------------------- /input_boolean/door_utility.yaml: -------------------------------------------------------------------------------- 1 | name: Utility door was opened 2 | initial: off 3 | icon: mdi:door 4 | -------------------------------------------------------------------------------- /input_boolean/family_room_lights_auto.yaml: -------------------------------------------------------------------------------- 1 | name: Family room lights turned on automatically 2 | icon: mdi:lightbulb-auto-outline 3 | -------------------------------------------------------------------------------- /input_boolean/garden_lights.yaml: -------------------------------------------------------------------------------- 1 | name: Garden lights 2 | icon: mdi:flower 3 | -------------------------------------------------------------------------------- /input_boolean/guest_mode.yaml: -------------------------------------------------------------------------------- 1 | name: Guest mode 2 | icon: mdi:account-multiple-plus 3 | -------------------------------------------------------------------------------- /input_boolean/holiday_mode.yaml: -------------------------------------------------------------------------------- 1 | name: Holiday mode 2 | icon: mdi:shield-airplane 3 | -------------------------------------------------------------------------------- /input_boolean/lighting_automations.yaml: -------------------------------------------------------------------------------- 1 | name: Enable lighting automations 2 | icon: mdi:lightbulb 3 | initial: on 4 | -------------------------------------------------------------------------------- /input_boolean/lighting_living_room.yaml: -------------------------------------------------------------------------------- 1 | name: Lighting on auto in the living room 2 | icon: mdi:lightbulb-auto 3 | -------------------------------------------------------------------------------- /input_boolean/lighting_office.yaml: -------------------------------------------------------------------------------- 1 | name: Lighting on auto in the office 2 | icon: mdi:lightbulb-auto 3 | -------------------------------------------------------------------------------- /input_boolean/livingroom_lights_auto.yaml: -------------------------------------------------------------------------------- 1 | name: Living room lights turned on automatically 2 | icon: mdi:lightbulb-auto-outline 3 | -------------------------------------------------------------------------------- /input_boolean/lovelace/lovelace_car_more.yaml: -------------------------------------------------------------------------------- 1 | name: Lovelace car more 2 | -------------------------------------------------------------------------------- /input_boolean/lovelace/lovelace_person1_more.yaml: -------------------------------------------------------------------------------- 1 | name: Lovelace person1 more 2 | -------------------------------------------------------------------------------- /input_boolean/lovelace/lovelace_person2_more.yaml: -------------------------------------------------------------------------------- 1 | name: Lovelace person2 more 2 | -------------------------------------------------------------------------------- /input_boolean/lovelace/lovelace_person2_work_more.yaml: -------------------------------------------------------------------------------- 1 | name: Lovelace person2 work more 2 | -------------------------------------------------------------------------------- /input_boolean/lovelace/lovelace_person3_more.yaml: -------------------------------------------------------------------------------- 1 | name: Lovelace person3 more 2 | -------------------------------------------------------------------------------- /input_boolean/lovelace/lovelace_person4_more.yaml: -------------------------------------------------------------------------------- 1 | name: Lovelace person4 more 2 | -------------------------------------------------------------------------------- /input_boolean/office_paused.yaml: -------------------------------------------------------------------------------- 1 | name: Office music paused 2 | initial: off 3 | icon: mdi:music-off 4 | -------------------------------------------------------------------------------- /input_boolean/people/adults_away.yaml: -------------------------------------------------------------------------------- 1 | name: Adults are away 2 | icon: mdi:account-multiple 3 | -------------------------------------------------------------------------------- /input_boolean/people/all_away.yaml: -------------------------------------------------------------------------------- 1 | name: Everybody is away 2 | -------------------------------------------------------------------------------- /input_boolean/people/notify_person1_work.yaml: -------------------------------------------------------------------------------- 1 | name: work day for person1 2 | icon: mdi:calendar-text 3 | -------------------------------------------------------------------------------- /input_boolean/people/notify_person2_working.yaml: -------------------------------------------------------------------------------- 1 | name: Work day for person2 2 | icon: mdi:calendar-multiple 3 | -------------------------------------------------------------------------------- /input_boolean/people/notify_train_status_work.yaml: -------------------------------------------------------------------------------- 1 | name: Notify about trains to work 2 | icon: mdi:train 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_alarm_sounded.yaml: -------------------------------------------------------------------------------- 1 | name: person1 alarm sounded 2 | icon: mdi:alarm-bell 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_driving.yaml: -------------------------------------------------------------------------------- 1 | name: person1 driving 2 | icon: mdi:car-settings 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_home.yaml: -------------------------------------------------------------------------------- 1 | name: person1 home 2 | icon: mdi:human-child 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_in_bed.yaml: -------------------------------------------------------------------------------- 1 | name: person1 in bed 2 | icon: mdi:bed 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_is_awake.yaml: -------------------------------------------------------------------------------- 1 | name: person1 is awake 2 | icon: mdi:alarm 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_overseas.yaml: -------------------------------------------------------------------------------- 1 | name: person1 overseas 2 | icon: mdi:bag-personal-outline 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_phone_charging.yaml: -------------------------------------------------------------------------------- 1 | name: person1 phone charging 2 | icon: mdi:battery-charging 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_tablet_charging.yaml: -------------------------------------------------------------------------------- 1 | name: person1 tablet charging 2 | icon: mdi:battery-charging 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_tablet_home.yaml: -------------------------------------------------------------------------------- 1 | name: person1 tablet home 2 | icon: mdi:tablet 3 | -------------------------------------------------------------------------------- /input_boolean/people/person1_travelling.yaml: -------------------------------------------------------------------------------- 1 | name: person1 travelling 2 | icon: mdi:airplane-takeoff 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_driving.yaml: -------------------------------------------------------------------------------- 1 | name: person2 driving 2 | icon: mdi:car-seat 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_home.yaml: -------------------------------------------------------------------------------- 1 | name: person2 home 2 | icon: mdi:human-male 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_in_bed.yaml: -------------------------------------------------------------------------------- 1 | name: person2 in bed 2 | icon: mdi:bed 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_is_awake.yaml: -------------------------------------------------------------------------------- 1 | name: person2 is awake 2 | icon: mdi:alarm 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_laptop_home.yaml: -------------------------------------------------------------------------------- 1 | name: person2 laptop home 2 | icon: mdi:laptop 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_overseas.yaml: -------------------------------------------------------------------------------- 1 | name: person2 overseas 2 | icon: mdi:bag-personal 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_phone_charging.yaml: -------------------------------------------------------------------------------- 1 | name: person2 phone charging 2 | icon: mdi:battery-charging 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_tablet_charging.yaml: -------------------------------------------------------------------------------- 1 | name: person2 tablet charging 2 | icon: mdi:battery-charging 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_tablet_home.yaml: -------------------------------------------------------------------------------- 1 | name: person2 tablet home 2 | icon: mdi:tablet 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_travelling.yaml: -------------------------------------------------------------------------------- 1 | name: person2 travelling 2 | icon: mdi:airplane 3 | -------------------------------------------------------------------------------- /input_boolean/people/person2_work_home.yaml: -------------------------------------------------------------------------------- 1 | name: person2 work home 2 | -------------------------------------------------------------------------------- /input_boolean/people/person3_driving.yaml: -------------------------------------------------------------------------------- 1 | name: person3 driving 2 | icon: mdi:car-seat-heater 3 | -------------------------------------------------------------------------------- /input_boolean/people/person3_home.yaml: -------------------------------------------------------------------------------- 1 | name: person3 home 2 | icon: mdi:human-female 3 | -------------------------------------------------------------------------------- /input_boolean/people/person3_in_bed.yaml: -------------------------------------------------------------------------------- 1 | name: person3 in bed 2 | icon: mdi:bed 3 | -------------------------------------------------------------------------------- /input_boolean/people/person3_is_awake.yaml: -------------------------------------------------------------------------------- 1 | name: person3 is awake 2 | icon: mdi:alarm 3 | -------------------------------------------------------------------------------- /input_boolean/people/person3_overseas.yaml: -------------------------------------------------------------------------------- 1 | name: person3 overseas 2 | icon: mdi:bag-personal 3 | -------------------------------------------------------------------------------- /input_boolean/people/person3_phone_charging.yaml: -------------------------------------------------------------------------------- 1 | name: person3 phone charging 2 | icon: mdi:battery-charging 3 | -------------------------------------------------------------------------------- /input_boolean/people/person3_travelling.yaml: -------------------------------------------------------------------------------- 1 | name: person3 travelling 2 | icon: mdi:airplane 3 | -------------------------------------------------------------------------------- /input_boolean/people/person4_driving.yaml: -------------------------------------------------------------------------------- 1 | name: person4 driving 2 | icon: mdi:car-hatchback 3 | -------------------------------------------------------------------------------- /input_boolean/people/person4_home.yaml: -------------------------------------------------------------------------------- 1 | name: person4 home 2 | icon: mdi:human-male 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/bathroom_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Bathroom 2 | icon: mdi:shower 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/family_room_christmas.yaml: -------------------------------------------------------------------------------- 1 | name: Family room 2 | icon: mdi:pine-tree 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/family_room_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Family room 2 | icon: mdi:controller 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/garage_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Garage 2 | icon: mdi:garage 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/guest_bedroom_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Guest bedroom 2 | icon: mdi:bed 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/hall_christmas.yaml: -------------------------------------------------------------------------------- 1 | name: Hall 2 | icon: mdi:pine-tree 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/home_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Home 2 | icon: mdi:home-variant-outline 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/kitchen_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Kitchen 2 | icon: mdi:fridge 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/living_room_christmas.yaml: -------------------------------------------------------------------------------- 1 | name: Living room 2 | icon: mdi:pine-tree 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/living_room_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Living room 2 | icon: mdi:sofa 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/master_bedroom_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Master bedroom 2 | icon: mdi:bed-king 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/master_ensuite_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Master ensuite 2 | icon: mdi:shower-head 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/office_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Office 2 | icon: mdi:office-building 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/second_bedroom_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Second bedroom 2 | icon: mdi:bed-single 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/second_ensuite_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Second ensuite 2 | icon: mdi:shower-head 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/spare_bedroom_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Spare bedroom 2 | icon: mdi:bed-empty 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/toilet_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Toilet 2 | icon: mdi:toilet 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/utility_occupied.yaml: -------------------------------------------------------------------------------- 1 | name: Utility 2 | icon: mdi:washing-machine 3 | -------------------------------------------------------------------------------- /input_boolean/rooms/vestibule_christmas.yaml: -------------------------------------------------------------------------------- 1 | name: Vestibule 2 | icon: mdi:pine-tree 3 | -------------------------------------------------------------------------------- /input_boolean/shutdown_in_progress.yaml: -------------------------------------------------------------------------------- 1 | name: Shutdown in progress 2 | icon: mdi:close-octagon 3 | initial: false 4 | -------------------------------------------------------------------------------- /input_boolean/test_mode.yaml: -------------------------------------------------------------------------------- 1 | name: Test mode 2 | icon: mdi:help-circle 3 | -------------------------------------------------------------------------------- /input_boolean/train_problems.yaml: -------------------------------------------------------------------------------- 1 | name: Train problems 2 | icon: mdi:train 3 | -------------------------------------------------------------------------------- /input_boolean/travel/google_travel_time.yaml: -------------------------------------------------------------------------------- 1 | name: Google travel time 2 | icon: mdi:google-maps 3 | -------------------------------------------------------------------------------- /input_boolean/travel/here_travel_time.yaml: -------------------------------------------------------------------------------- 1 | name: Here travel time 2 | icon: mdi:map-clock 3 | -------------------------------------------------------------------------------- /input_boolean/update_mesh_diagram.yaml: -------------------------------------------------------------------------------- 1 | name: Enable updates of the Z-Wave mesh diagram 2 | initial: off 3 | icon: mdi:webhook 4 | -------------------------------------------------------------------------------- /input_boolean/work_laptop_home.yaml: -------------------------------------------------------------------------------- 1 | name: Work laptop home 2 | icon: mdi:laptop 3 | -------------------------------------------------------------------------------- /input_datetime/ha_shutdown.yaml: -------------------------------------------------------------------------------- 1 | name: HA shutdown at 2 | icon: mdi:clock-end 3 | has_date: true 4 | has_time: true 5 | -------------------------------------------------------------------------------- /input_datetime/person1_next_alarm.yaml: -------------------------------------------------------------------------------- 1 | name: person1 next alarm 2 | icon: mdi:human-child 3 | has_date: true 4 | has_time: true 5 | -------------------------------------------------------------------------------- /input_datetime/person2_next_alarm.yaml: -------------------------------------------------------------------------------- 1 | name: person2 next alarm 2 | icon: mdi:human-male 3 | has_date: true 4 | has_time: true 5 | -------------------------------------------------------------------------------- /input_datetime/person3_next_alarm.yaml: -------------------------------------------------------------------------------- 1 | name: person3 next alarm 2 | icon: mdi:human-female 3 | has_date: true 4 | has_time: true 5 | -------------------------------------------------------------------------------- /input_datetime/return_train_time.yaml: -------------------------------------------------------------------------------- 1 | name: Return train time 2 | icon: mdi:train 3 | has_date: false 4 | has_time: true 5 | -------------------------------------------------------------------------------- /input_number/README.md: -------------------------------------------------------------------------------- 1 | # Input numbers 2 | 3 | Component: [input number](https://home-assistant.io/components/input_number/) 4 | 5 | ## Door delay 6 | 7 | This is the delay after the garden door opens (in seconds) before the automation for turning the lights off is re-enabled. 8 | 9 | ## Garden time 10 | 11 | Used to determine if the lights have been left on too long, in minutes. 12 | 13 | ## Lights 14 | 15 | These are for the Yeelight control scripts, for changing the brightness and colour temperature. 16 | 17 | ## Room 18 | 19 | This is for future lighting automations, not currently used. 20 | -------------------------------------------------------------------------------- /input_number/door_delay.yaml: -------------------------------------------------------------------------------- 1 | name: 'Turn off lights if open for more than' 2 | min: 4 3 | max: 60 4 | step: 1 5 | mode: slider 6 | -------------------------------------------------------------------------------- /input_number/front_camera_interesting_things.yaml: -------------------------------------------------------------------------------- 1 | name: 'Front camera interesting things' 2 | min: 0 3 | max: 100 4 | step: 1 5 | -------------------------------------------------------------------------------- /input_number/garden_time.yaml: -------------------------------------------------------------------------------- 1 | name: 'Garden lights turned off after' 2 | min: 2 3 | max: 120 4 | step: 1 5 | mode: slider 6 | -------------------------------------------------------------------------------- /input_number/room_dark.yaml: -------------------------------------------------------------------------------- 1 | name: 'How many lux is dark' 2 | min: 0 3 | max: 12 4 | step: 1 5 | mode: slider 6 | -------------------------------------------------------------------------------- /input_number/room_dim.yaml: -------------------------------------------------------------------------------- 1 | name: 'How many lux is dim' 2 | min: 3 3 | max: 15 4 | step: 1 5 | mode: slider 6 | -------------------------------------------------------------------------------- /input_number/room_low_light.yaml: -------------------------------------------------------------------------------- 1 | name: 'How many lux is low light' 2 | min: 5 3 | max: 30 4 | step: 1 5 | mode: slider 6 | -------------------------------------------------------------------------------- /input_select/camera_stream_target.yaml: -------------------------------------------------------------------------------- 1 | name: camera_stream_target 2 | icon: mdi:camera-enhance 3 | options: 4 | - media_player.office_smart_display 5 | - media_player.living_room_display 6 | - media_player.master_bedroom_display 7 | - media_player.family_room_display 8 | -------------------------------------------------------------------------------- /input_select/people/family_status_dropdown.yaml: -------------------------------------------------------------------------------- 1 | name: Family 2 | options: 3 | - Home 4 | - Pre Arrival 5 | - Just Arrived 6 | - Just Left 7 | - Away 8 | -------------------------------------------------------------------------------- /input_select/people/person1_status_dropdown.yaml: -------------------------------------------------------------------------------- 1 | name: person1 2 | options: 3 | - Home 4 | - Pre Arrival 5 | - Just Arrived 6 | - Just Left 7 | - Away 8 | -------------------------------------------------------------------------------- /input_select/people/person2_status_dropdown.yaml: -------------------------------------------------------------------------------- 1 | name: person2 2 | options: 3 | - Home 4 | - Pre Arrival 5 | - Just Arrived 6 | - Just Left 7 | - Away 8 | -------------------------------------------------------------------------------- /input_select/people/person3_status_dropdown.yaml: -------------------------------------------------------------------------------- 1 | name: person3 2 | options: 3 | - Home 4 | - Pre Arrival 5 | - Just Arrived 6 | - Just Left 7 | - Away 8 | -------------------------------------------------------------------------------- /input_select/people/person4_status_dropdown.yaml: -------------------------------------------------------------------------------- 1 | name: person4 2 | options: 3 | - Home 4 | - Pre Arrival 5 | - Just Arrived 6 | - Just Left 7 | - Away 8 | -------------------------------------------------------------------------------- /input_select/rooms/bathroom.yaml: -------------------------------------------------------------------------------- 1 | name: Bathroom 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Wake' 7 | - 'Bedtime' 8 | - 'Dim' 9 | - 'On' 10 | - 'Off' 11 | -------------------------------------------------------------------------------- /input_select/rooms/family_room.yaml: -------------------------------------------------------------------------------- 1 | name: Family room 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Dim' 7 | - 'Day on' 8 | - 'Night on' 9 | - 'Bedtime' 10 | - 'Wake' 11 | - 'On' 12 | - 'Off' 13 | -------------------------------------------------------------------------------- /input_select/rooms/garage.yaml: -------------------------------------------------------------------------------- 1 | name: Garage 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Off' 6 | - 'On' 7 | - 'Dim' 8 | -------------------------------------------------------------------------------- /input_select/rooms/guest_bedroom.yaml: -------------------------------------------------------------------------------- 1 | name: Guest bedroom 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Wake' 7 | - 'Bedtime' 8 | - 'Dim' 9 | - 'On' 10 | - 'Off' 11 | -------------------------------------------------------------------------------- /input_select/rooms/hall.yaml: -------------------------------------------------------------------------------- 1 | name: Hall 2 | options: 3 | # Auto mode - follows the mode of the house 4 | - 'Auto' 5 | - 'Away' 6 | - 'Motion' 7 | - 'Dim' 8 | - 'Wake' 9 | - 'Bedtime' 10 | - 'Day on' 11 | - 'Night on' 12 | - 'On' 13 | - 'Off' 14 | -------------------------------------------------------------------------------- /input_select/rooms/kitchen.yaml: -------------------------------------------------------------------------------- 1 | name: Kitchen 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Dim' 7 | - 'Wake' 8 | - 'Bedtime' 9 | - 'Day on' 10 | - 'Night on' 11 | - 'On' 12 | - 'Off' 13 | -------------------------------------------------------------------------------- /input_select/rooms/living_room.yaml: -------------------------------------------------------------------------------- 1 | name: Living room 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Dim' 7 | - 'Wake' 8 | - 'Bedtime' 9 | - 'Day on' 10 | - 'Night on' 11 | - 'On' 12 | - 'Off' 13 | -------------------------------------------------------------------------------- /input_select/rooms/master_bedroom.yaml: -------------------------------------------------------------------------------- 1 | name: Master bedroom 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Wake' 7 | - 'Bedtime' 8 | - 'Sleeping' 9 | - 'Night' 10 | - 'Dim' 11 | - 'On' 12 | - 'Off' 13 | -------------------------------------------------------------------------------- /input_select/rooms/master_ensuite.yaml: -------------------------------------------------------------------------------- 1 | name: Master ensuite 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Wake' 7 | - 'Bedtime' 8 | - 'Dim' 9 | - 'On' 10 | - 'Off' 11 | -------------------------------------------------------------------------------- /input_select/rooms/office.yaml: -------------------------------------------------------------------------------- 1 | name: Office 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Dim' 7 | - 'Wake' 8 | - 'Bedtime' 9 | - 'Day on' 10 | - 'Night on' 11 | - 'On' 12 | - 'Off' 13 | - 'Pause' 14 | -------------------------------------------------------------------------------- /input_select/rooms/second_bedroom.yaml: -------------------------------------------------------------------------------- 1 | name: Second bedroom 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Wake' 7 | - 'Bedtime' 8 | - 'Dim' 9 | - 'On' 10 | - 'Off' 11 | -------------------------------------------------------------------------------- /input_select/rooms/second_ensuite.yaml: -------------------------------------------------------------------------------- 1 | name: Second ensuite 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Wake' 7 | - 'Bedtime' 8 | - 'Dim' 9 | - 'On' 10 | - 'Off' 11 | -------------------------------------------------------------------------------- /input_select/rooms/spare_bedroom.yaml: -------------------------------------------------------------------------------- 1 | name: Spare bedroom 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Wake' 7 | - 'Bedtime' 8 | - 'Dim' 9 | - 'On' 10 | - 'Off' 11 | -------------------------------------------------------------------------------- /input_select/rooms/toilet.yaml: -------------------------------------------------------------------------------- 1 | name: Toilet 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Wake' 7 | - 'Bedtime' 8 | - 'Dim' 9 | - 'On' 10 | - 'Off' 11 | -------------------------------------------------------------------------------- /input_select/rooms/utility.yaml: -------------------------------------------------------------------------------- 1 | name: Utility room 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Dim' 7 | - 'Wake' 8 | - 'Bedtime' 9 | - 'Day on' 10 | - 'Night on' 11 | - 'On' 12 | - 'Off' 13 | -------------------------------------------------------------------------------- /input_select/rooms/vestibule.yaml: -------------------------------------------------------------------------------- 1 | name: Vestibule 2 | options: 3 | - 'Auto' 4 | - 'Away' 5 | - 'Motion' 6 | - 'Dim' 7 | - 'Wake' 8 | - 'Bedtime' 9 | - 'Day on' 10 | - 'Night on' 11 | - 'On' 12 | - 'Off' 13 | -------------------------------------------------------------------------------- /input_select/season.yaml: -------------------------------------------------------------------------------- 1 | name: Season 2 | icon: mdi:calendar-question 3 | options: 4 | - Celebration 5 | - Christmas 6 | - Halloween 7 | - Easter 8 | - Winter 9 | - Spring 10 | - Summer 11 | - Autumn 12 | -------------------------------------------------------------------------------- /input_text/camera_event_id.yaml: -------------------------------------------------------------------------------- 1 | name: Camera event id 2 | max: 255 3 | -------------------------------------------------------------------------------- /input_text/camera_message.yaml: -------------------------------------------------------------------------------- 1 | name: Camera message 2 | max: 255 3 | -------------------------------------------------------------------------------- /input_text/car.yaml: -------------------------------------------------------------------------------- 1 | name: Car 2 | -------------------------------------------------------------------------------- /input_text/last_motion.yaml: -------------------------------------------------------------------------------- 1 | name: Last motion 2 | -------------------------------------------------------------------------------- /input_text/last_opened.yaml: -------------------------------------------------------------------------------- 1 | name: Last opened 2 | -------------------------------------------------------------------------------- /input_text/person_person1.yaml: -------------------------------------------------------------------------------- 1 | name: person1 2 | -------------------------------------------------------------------------------- /input_text/person_person2.yaml: -------------------------------------------------------------------------------- 1 | name: person2 2 | -------------------------------------------------------------------------------- /input_text/person_person3.yaml: -------------------------------------------------------------------------------- 1 | name: person3 2 | -------------------------------------------------------------------------------- /input_text/person_person4.yaml: -------------------------------------------------------------------------------- 1 | name: Elizabeth 2 | -------------------------------------------------------------------------------- /input_text/telegram_message.yaml: -------------------------------------------------------------------------------- 1 | name: Telegram message 2 | max: 255 3 | -------------------------------------------------------------------------------- /input_text/train_message.yaml: -------------------------------------------------------------------------------- 1 | name: Train message 2 | max: 255 3 | -------------------------------------------------------------------------------- /input_text/weather_message.yaml: -------------------------------------------------------------------------------- 1 | name: Weather message 2 | max: 255 3 | -------------------------------------------------------------------------------- /light/master_bedroom_bedhead.yaml: -------------------------------------------------------------------------------- 1 | - platform: group 2 | name: 'Master bedroom bedhead' 3 | unique_id: 'master_bedroom_bedhead' 4 | entities: 5 | - light.yeelight_strip1_286c07afc307 6 | -------------------------------------------------------------------------------- /light/toilet.yaml: -------------------------------------------------------------------------------- 1 | - platform: template 2 | lights: 3 | toilet_lights: 4 | unique_id: toilet_lights 5 | friendly_name: "Toilet Lights" 6 | level_template: "{{ min((states('sensor.toilet_light_sensor_illuminance_lux')|int)*10,255) }}" 7 | value_template: "{{ states('sensor.toilet_light_sensor_illuminance_lux')|int > 10 }}" 8 | turn_on: 9 | service: script.nop 10 | turn_off: 11 | service: script.nop 12 | set_level: 13 | service: script.nop 14 | data: 15 | brightness: "{{ brightness }}" 16 | -------------------------------------------------------------------------------- /local/bin/README.md: -------------------------------------------------------------------------------- 1 | # My scripts 2 | 3 | ## parse-email 4 | 5 | Simple script that's used by `getmail` to parse the emails about when the recycling is collected 6 | 7 | ## pre-and-git-push 8 | 9 | This sanitises my config for posting here 10 | 11 | ## printer-info 12 | 13 | Parses the SNMP data from the printer to report the status of the consumables, using a file sensor. 14 | 15 | ## Train scripts 16 | 17 | These use the Transport API to pull the status of the trains for the commute, then update files 18 | for HA to use. 19 | -------------------------------------------------------------------------------- /logger.yaml: -------------------------------------------------------------------------------- 1 | default: warning 2 | logs: 3 | homeassistant.helpers.template: error 4 | custom_components.myskoda: info 5 | myskoda: info 6 | myskoda.mqtt: info 7 | myskoda.rest_api: info 8 | filters: 9 | homeassistant.components.rest: 10 | - "^JSON result was not a dictionary or list with 0th element a dictionary" 11 | homeassistant.components.rest.util: 12 | - "^JSON result was not a dictionary or list with 0th element a dictionary" 13 | -------------------------------------------------------------------------------- /lovelace.yaml: -------------------------------------------------------------------------------- 1 | mode: yaml 2 | resources: !include lovelace/resources.yaml 3 | dashboards: 4 | lovelace-people: 5 | mode: yaml 6 | filename: ui-lovelace-people.yaml 7 | title: People 8 | icon: mdi:account-group 9 | show_in_sidebar: true 10 | require_admin: false 11 | lovelace-admin: 12 | mode: yaml 13 | filename: ui-lovelace-admin.yaml 14 | title: Admin 15 | icon: mdi:view-carousel 16 | show_in_sidebar: true 17 | require_admin: true 18 | lovelace-automations: 19 | mode: yaml 20 | filename: ui-lovelace-automations.yaml 21 | title: Automations 22 | icon: mdi:robot 23 | show_in_sidebar: true 24 | require_admin: true 25 | -------------------------------------------------------------------------------- /lovelace/README.md: -------------------------------------------------------------------------------- 1 | # The wonderful world of Lovelace 2 | 3 | Yes, I'm still using YAML. Yes, my YAML file was over 1.5K lines long. So, time for includes. 4 | -------------------------------------------------------------------------------- /lovelace/cch.yaml: -------------------------------------------------------------------------------- 1 | menu: overflow 2 | options: clock 3 | voice: hide 4 | clock_format: 24 5 | swipe: true 6 | swipe_skip: 6,10 7 | -------------------------------------------------------------------------------- /lovelace/custom_header.yaml: -------------------------------------------------------------------------------- 1 | compact_mode: true 2 | header_text: '{{ time }}' 3 | -------------------------------------------------------------------------------- /lovelace/view-cameras.yaml: -------------------------------------------------------------------------------- 1 | title: Cameras 2 | type: masonry 3 | id: cameras 4 | path: cameras 5 | icon: mdi:camera-burst 6 | cards: 7 | - type: custom:webrtc-camera 8 | entity: camera.front_camera 9 | - type: custom:webrtc-camera 10 | entity: camera.front_camera_lowres 11 | -------------------------------------------------------------------------------- /lovelace/view-frigate.yaml: -------------------------------------------------------------------------------- 1 | title: Frigate 2 | type: panel 3 | id: frigate 4 | path: frigate 5 | icon: mdi:cctv 6 | cards: 7 | - type: custom:frigate-card 8 | cameras: 9 | - camera_entity: camera.front 10 | live_provider: go2rtc 11 | camera_name: front 12 | frigate_url: http://192.168.0.13:5000/ 13 | title: Front 14 | menu: 15 | style: overlay 16 | position: right 17 | -------------------------------------------------------------------------------- /lovelace/view-spacer.yaml: -------------------------------------------------------------------------------- 1 | title: Spacer 2 | type: masonry 3 | id: spacer 4 | icon: mdi:dots-horizontal 5 | visible: 6 | - user: 2e93f54c62e549c8aeperson2748de6bed9d 7 | cards: [] 8 | -------------------------------------------------------------------------------- /lovelace/view-spacer2.yaml: -------------------------------------------------------------------------------- 1 | title: Spacer 2 | type: masonry 3 | id: spacer2 4 | icon: mdi:dots-vertical 5 | cards: [] 6 | -------------------------------------------------------------------------------- /mqtt/binary_sensor/mqtt_first_floor_front.yaml: -------------------------------------------------------------------------------- 1 | - name: 'First floor front' 2 | state_topic: 'monitor/first floor front/status' 3 | payload_on: 'online' 4 | payload_off: 'offline' 5 | -------------------------------------------------------------------------------- /mqtt/binary_sensor/mqtt_first_floor_rear.yaml: -------------------------------------------------------------------------------- 1 | - name: 'First floor rear' 2 | state_topic: 'monitor/first floor rear/status' 3 | payload_on: 'online' 4 | payload_off: 'offline' 5 | -------------------------------------------------------------------------------- /mqtt/binary_sensor/zigbee2mqtt_bridge.yaml: -------------------------------------------------------------------------------- 1 | - name: Zigbee2MQTT Bridge state 2 | state_topic: "zigbee2mqtt/bridge/state" 3 | value_template: "{{ value_json.state }}" 4 | payload_on: 'online' 5 | payload_off: 'offline' 6 | device_class: 'connectivity' 7 | unique_id: 'zigbee2mqtt_bridge_state' 8 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_car_front.yaml: -------------------------------------------------------------------------------- 1 | - name: "car front" 2 | state_topic: 'monitor/first floor front/car/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_car_rear.yaml: -------------------------------------------------------------------------------- 1 | - name: "car rear" 2 | state_topic: 'monitor/first floor rear/car/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person1_bt_front_mobile.yaml: -------------------------------------------------------------------------------- 1 | - name: "person1 bt front mobile" 2 | state_topic: 'monitor/first floor front/person1_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person1_bt_front_tablet.yaml: -------------------------------------------------------------------------------- 1 | - name: "person1 bt front tablet" 2 | state_topic: 'monitor/first floor front/person1_tablet/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person1_bt_mobile.yaml: -------------------------------------------------------------------------------- 1 | - name: "person1 bt mobile" 2 | state_topic: 'monitor/first floor rear/person1_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person1_bt_tablet.yaml: -------------------------------------------------------------------------------- 1 | - name: "person1 bt tablet" 2 | state_topic: 'monitor/first floor rear/person1_tablet/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person2_bt_front_laptop.yaml: -------------------------------------------------------------------------------- 1 | - name: "person2 bt front laptop" 2 | state_topic: 'monitor/first floor front/person2_laptop/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person2_bt_front_mobile.yaml: -------------------------------------------------------------------------------- 1 | - name: "person2 bt front mobile" 2 | state_topic: 'monitor/first floor front/person2_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person2_bt_front_tablet.yaml: -------------------------------------------------------------------------------- 1 | - name: "person2 bt front tablet" 2 | state_topic: 'monitor/first floor front/person2_tablet/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person2_bt_front_work.yaml: -------------------------------------------------------------------------------- 1 | - name: "person2 bt front work" 2 | state_topic: 'monitor/first floor front/person2_work_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person2_bt_laptop.yaml: -------------------------------------------------------------------------------- 1 | - name: "person2 bt laptop" 2 | state_topic: 'monitor/first floor rear/person2_laptop/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person2_bt_mobile.yaml: -------------------------------------------------------------------------------- 1 | - name: "person2 bt mobile" 2 | state_topic: 'monitor/first floor rear/person2_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person2_bt_tablet.yaml: -------------------------------------------------------------------------------- 1 | - name: "person2 bt tablet" 2 | state_topic: 'monitor/first floor rear/person2_tablet/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person2_bt_work.yaml: -------------------------------------------------------------------------------- 1 | - name: "person2 bt work" 2 | state_topic: 'monitor/first floor rear/person2_work_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person3_bt_front_mobile.yaml: -------------------------------------------------------------------------------- 1 | - name: "person3 bt front mobile" 2 | state_topic: 'monitor/first floor front/person3_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person3_bt_mobile.yaml: -------------------------------------------------------------------------------- 1 | - name: "person3 bt mobile" 2 | state_topic: 'monitor/first floor rear/person3_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person4_bt_front_mobile.yaml: -------------------------------------------------------------------------------- 1 | - name: "person4 bt front mobile" 2 | state_topic: 'monitor/first floor front/person4_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_person4_bt_mobile.yaml: -------------------------------------------------------------------------------- 1 | - name: "person4 bt mobile" 2 | state_topic: 'monitor/first floor rear/person4_mobile/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_work_front_laptop.yaml: -------------------------------------------------------------------------------- 1 | - name: "work front laptop" 2 | state_topic: 'monitor/first floor front/work_laptop/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/monitor_work_laptop.yaml: -------------------------------------------------------------------------------- 1 | - name: "work laptop" 2 | state_topic: 'monitor/first floor rear/work_laptop/device_tracker' 3 | source_type: bluetooth 4 | -------------------------------------------------------------------------------- /mqtt/device_tracker/person_person1.yaml: -------------------------------------------------------------------------------- 1 | - name: "person person1" 2 | state_topic: 'location/person1' 3 | json_attributes_topic: 'location/person1/attributes' 4 | source_type: gps 5 | unique_id: "mqtt_person_person1" 6 | -------------------------------------------------------------------------------- /mqtt/device_tracker/person_person1_tablet_wifi.yaml: -------------------------------------------------------------------------------- 1 | - name: "person person1 tablet wifi" 2 | state_topic: 'location/person1_tablet_wifi' 3 | source_type: router 4 | unique_id: "mqtt_person_person1_tablet_wifi" 5 | -------------------------------------------------------------------------------- /mqtt/device_tracker/person_person1_wifi.yaml: -------------------------------------------------------------------------------- 1 | - name: "person person1 wifi" 2 | state_topic: 'location/person1_wifi' 3 | source_type: router 4 | unique_id: "mqtt_person_person1_wifi" 5 | -------------------------------------------------------------------------------- /mqtt/device_tracker/person_person2.yaml: -------------------------------------------------------------------------------- 1 | - name: "person person2" 2 | state_topic: 'location/person2' 3 | json_attributes_topic: 'location/person2/attributes' 4 | source_type: gps 5 | unique_id: "mqtt_person_person2" 6 | -------------------------------------------------------------------------------- /mqtt/device_tracker/person_person2_tablet_wifi.yaml: -------------------------------------------------------------------------------- 1 | - name: "person person2 tablet wifi" 2 | state_topic: 'location/person2_tablet_wifi' 3 | source_type: router 4 | unique_id: "mqtt_person_person2_tablet_wifi" 5 | -------------------------------------------------------------------------------- /mqtt/device_tracker/person_person2_wifi.yaml: -------------------------------------------------------------------------------- 1 | - name: "person person2 wifi" 2 | state_topic: 'location/person2_wifi' 3 | source_type: router 4 | unique_id: "mqtt_person_person2_wifi" 5 | -------------------------------------------------------------------------------- /mqtt/device_tracker/person_person3.yaml: -------------------------------------------------------------------------------- 1 | - name: "person person3" 2 | state_topic: 'location/person3' 3 | json_attributes_topic: 'location/person3/attributes' 4 | source_type: gps 5 | unique_id: "mqtt_person_person3" 6 | -------------------------------------------------------------------------------- /mqtt/device_tracker/person_person3_wifi.yaml: -------------------------------------------------------------------------------- 1 | - name: "person person3 wifi" 2 | state_topic: 'location/person3_wifi' 3 | source_type: router 4 | unique_id: "mqtt_person_person3_wifi" 5 | -------------------------------------------------------------------------------- /mqtt/device_tracker/person_person4.yaml: -------------------------------------------------------------------------------- 1 | - name: "person person4" 2 | state_topic: 'location/person4' 3 | source_type: router 4 | unique_id: "mqtt_person_person4" 5 | -------------------------------------------------------------------------------- /mqtt/sensor/people/mqtt_car.yaml: -------------------------------------------------------------------------------- 1 | - state_topic: 'monitor/first floor rear/car' 2 | value_template: '{{ value_json.confidence }}' 3 | unit_of_measurement: '%' 4 | name: 'Car first floor rear' 5 | json_attributes_topic: 'monitor/first floor rear/car' 6 | 7 | - state_topic: 'monitor/first floor front/car' 8 | value_template: '{{ value_json.confidence }}' 9 | unit_of_measurement: '%' 10 | name: 'Car first floor front' 11 | json_attributes_topic: 'monitor/first floor front/car' 12 | 13 | -------------------------------------------------------------------------------- /mqtt/sensor/zigbee/zigbee2mqtt_coordinator.yaml: -------------------------------------------------------------------------------- 1 | - name: "Zigbee2 Coordinator Version" 2 | state_topic: "zigbee2mqtt/bridge/info" 3 | value_template: "{{ value_json.coordinator.meta.revision }}" 4 | icon: mdi:chip 5 | -------------------------------------------------------------------------------- /mqtt/sensor/zigbee/zigbee2mqtt_version.yaml: -------------------------------------------------------------------------------- 1 | - name: "Zigbee2MQTT Version" 2 | unique_id: 'zigbee2mqtt_bridge_info_verson' 3 | state_topic: "zigbee2mqtt/bridge/info" 4 | value_template: "{{ value_json.version }}" 5 | icon: mdi:zigbee 6 | -------------------------------------------------------------------------------- /mqtt/sensor/zigbee/zigbee3mqtt_coordinator.yaml: -------------------------------------------------------------------------------- 1 | - name: "Zigbee3 Coordinator Version" 2 | state_topic: "zigbee3mqtt/bridge/info" 3 | value_template: "{{ value_json.coordinator.meta.revision }}" 4 | icon: mdi:chip 5 | -------------------------------------------------------------------------------- /mqtt/sensor/zigbee/zigbee3mqtt_state.yaml: -------------------------------------------------------------------------------- 1 | - name: Zigbee3 Bridge state 2 | state_topic: "zigbee3mqtt/bridge/state" 3 | icon: mdi:zigbee 4 | -------------------------------------------------------------------------------- /mqtt/sensor/zigbee/zigbee3mqtt_version.yaml: -------------------------------------------------------------------------------- 1 | - name: "Zigbee3MQTT Version" 2 | state_topic: "zigbee3mqtt/bridge/info" 3 | value_template: "{{ value_json.version }}" 4 | icon: mdi:zigbee 5 | -------------------------------------------------------------------------------- /notify/adults.yaml: -------------------------------------------------------------------------------- 1 | - name: adults 2 | platform: group 3 | services: 4 | - service: person2 5 | - service: person3 6 | -------------------------------------------------------------------------------- /notify/apprise.yaml: -------------------------------------------------------------------------------- 1 | - platform: apprise 2 | name: apprise 3 | config: !secret apprise_url 4 | -------------------------------------------------------------------------------- /notify/discord_webhook.yaml: -------------------------------------------------------------------------------- 1 | - name: discord_webhook 2 | platform: rest 3 | method: POST 4 | message_param_name: content 5 | title_param_name: username 6 | data: 7 | username: Home Assistant 8 | resource: !secret discord_webhook 9 | 10 | -------------------------------------------------------------------------------- /notify/garage.yaml: -------------------------------------------------------------------------------- 1 | - name: garage 2 | platform: group 3 | services: 4 | - service: person3 5 | - service: person2 6 | - service: tts_family_room 7 | - service: tts_living_room 8 | - service: office_alert_silent 9 | -------------------------------------------------------------------------------- /notify/office_alert.yaml: -------------------------------------------------------------------------------- 1 | - name: office alert 2 | platform: group 3 | services: 4 | - service: awtrix_6d6f50 5 | data: 6 | data: 7 | icon: "10675" 8 | sound: "beep_high" 9 | -------------------------------------------------------------------------------- /notify/office_alert_silent.yaml: -------------------------------------------------------------------------------- 1 | - name: office alert silent 2 | platform: group 3 | services: 4 | - service: awtrix_6d6f50 5 | data: 6 | data: 7 | icon: "10675" 8 | -------------------------------------------------------------------------------- /notify/person1.yaml: -------------------------------------------------------------------------------- 1 | - name: person1 2 | platform: group 3 | services: 4 | - service: mobile_app_person1_pixel_3 5 | -------------------------------------------------------------------------------- /notify/person2.yaml: -------------------------------------------------------------------------------- 1 | - name: person2 2 | platform: group 3 | services: 4 | - service: apprise 5 | data: 6 | target: person2 7 | title: " " 8 | -------------------------------------------------------------------------------- /notify/person3.yaml: -------------------------------------------------------------------------------- 1 | - name: person3 2 | platform: group 3 | services: 4 | - service: apprise 5 | data: 6 | target: person3 7 | title: " " 8 | -------------------------------------------------------------------------------- /notify/signal.yaml: -------------------------------------------------------------------------------- 1 | - name: person2_signal 2 | platform: signal_messenger 3 | url: "http://127.0.0.1:8080" # the URL where the Signal Messenger REST API is listening 4 | number: !secret signal_number 5 | recipients: # one or more recipients 6 | - !secret signal_recipient 7 | -------------------------------------------------------------------------------- /notify/status_alert.yaml: -------------------------------------------------------------------------------- 1 | - name: status_alert 2 | platform: group 3 | services: 4 | - service: person2 5 | - service: person3 6 | - service: tts_family_room 7 | - service: tts_living_room 8 | - service: tts_office 9 | - service: tts_master_bedroom 10 | - service: tts_second_bedroom 11 | - service: tts_guest_bedroom 12 | -------------------------------------------------------------------------------- /notify/telegram.yaml: -------------------------------------------------------------------------------- 1 | - name: person2_telegram 2 | platform: telegram 3 | chat_id: !secret telegram_one 4 | -------------------------------------------------------------------------------- /notify/tts_family_room.yaml: -------------------------------------------------------------------------------- 1 | - name: tts_family_room 2 | platform: tts 3 | entity_id: tts.piper 4 | media_player: media_player.family_room_sonos_cloud 5 | -------------------------------------------------------------------------------- /notify/tts_guest_bedroom.yaml: -------------------------------------------------------------------------------- 1 | - name: tts_guest_bedroom 2 | platform: tts 3 | entity_id: tts.piper 4 | media_player: media_player.cast_master_bedroom_display 5 | -------------------------------------------------------------------------------- /notify/tts_living_room.yaml: -------------------------------------------------------------------------------- 1 | - name: tts_living_room 2 | platform: tts 3 | entity_id: tts.piper 4 | media_player: media_player.living_room_sonos_cloud 5 | -------------------------------------------------------------------------------- /notify/tts_master_bedroom.yaml: -------------------------------------------------------------------------------- 1 | - name: tts_master_bedroom 2 | platform: tts 3 | entity_id: tts.piper 4 | media_player: media_player.master_bedroom_display 5 | -------------------------------------------------------------------------------- /notify/tts_office.yaml: -------------------------------------------------------------------------------- 1 | - name: tts_office 2 | platform: tts 3 | entity_id: tts.piper 4 | media_player: media_player.office_sonos_cloud 5 | -------------------------------------------------------------------------------- /notify/tts_second_bedroom.yaml: -------------------------------------------------------------------------------- 1 | - name: tts_second_bedroom 2 | platform: tts 3 | entity_id: tts.piper 4 | media_player: media_player.cast_second_bedroom_speaker 5 | -------------------------------------------------------------------------------- /proximity/README.md: -------------------------------------------------------------------------------- 1 | # Proximity 2 | 3 | Component: [proximity](https://home-assistant.io/components/proximity/) 4 | 5 | This provides a simple way of tracking how far people are from certain zones, mostly used for "X is nearly home" notifications. 6 | -------------------------------------------------------------------------------- /proximity/person1_home.yaml: -------------------------------------------------------------------------------- 1 | person1_home: 2 | zone: home 3 | devices: 4 | - person.person1 5 | unit_of_measurement: m 6 | -------------------------------------------------------------------------------- /proximity/person1_work.yaml: -------------------------------------------------------------------------------- 1 | person1_work: 2 | zone: university 3 | devices: 4 | - person.person1 5 | unit_of_measurement: m 6 | -------------------------------------------------------------------------------- /proximity/person2_head_office.yaml: -------------------------------------------------------------------------------- 1 | person2_head_office: 2 | zone: head_office 3 | devices: 4 | - person.person2 5 | unit_of_measurement: km 6 | -------------------------------------------------------------------------------- /proximity/person2_home.yaml: -------------------------------------------------------------------------------- 1 | person2_home: 2 | zone: home 3 | devices: 4 | - person.person2 5 | unit_of_measurement: m 6 | -------------------------------------------------------------------------------- /proximity/person2_work.yaml: -------------------------------------------------------------------------------- 1 | person2_work: 2 | zone: work 3 | devices: 4 | - person.person2 5 | unit_of_measurement: km 6 | -------------------------------------------------------------------------------- /proximity/person3_home.yaml: -------------------------------------------------------------------------------- 1 | person3_home: 2 | zone: home 3 | devices: 4 | - person.person3 5 | unit_of_measurement: m 6 | -------------------------------------------------------------------------------- /proximity/person4_home.yaml: -------------------------------------------------------------------------------- 1 | person4_home: 2 | zone: home 3 | devices: 4 | - device_tracker.dsb_0230 5 | unit_of_measurement: m 6 | -------------------------------------------------------------------------------- /proximity/person4_work.yaml: -------------------------------------------------------------------------------- 1 | person4_person4_o: 2 | zone: person4_o 3 | devices: 4 | - device_tracker.dsb_0230 5 | unit_of_measurement: m 6 | -------------------------------------------------------------------------------- /recorder.yaml: -------------------------------------------------------------------------------- 1 | purge_keep_days: 56 2 | exclude: 3 | entities: 4 | - sensor.date_time 5 | - sensor.time 6 | - sensor.time_utc 7 | - sensor.date_time_iso 8 | -------------------------------------------------------------------------------- /rest/healthcheck.yaml: -------------------------------------------------------------------------------- 1 | resource: !secret healthcheck_url 2 | scan_interval: 60 3 | headers: 4 | Content-Type: application/json 5 | sensor: 6 | - name: "Healthcheck status" 7 | -------------------------------------------------------------------------------- /rest/signal.yaml: -------------------------------------------------------------------------------- 1 | resource: !secret signal_rest 2 | headers: 3 | Content-Type: application/json 4 | sensor: 5 | - name: "Signal message received" 6 | value_template: "" 7 | json_attributes_path: $[0].envelope 8 | json_attributes: 9 | - source 10 | - timestamp 11 | - dataMessage 12 | -------------------------------------------------------------------------------- /samsung_tv.yaml: -------------------------------------------------------------------------------- 1 | host: 192.168.0.226 2 | name: Samsung TV 3 | -------------------------------------------------------------------------------- /scenes.yaml: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /scenes/README.md: -------------------------------------------------------------------------------- 1 | # Scenes 2 | 3 | Component: [scene](https://home-assistant.io/components/scene/) 4 | 5 | None of these are used 6 | 7 | ## All lights off 8 | 9 | Well, it's not really since it doesn't include the bedroom lights (deliberately), or the light for the house number. This as it says turns all the (other) lights off. 10 | 11 | ## Bedtime 12 | 13 | This turns off the same set of lights, but also the TVs. 14 | 15 | ## Lounge lights 16 | 17 | Two scenes, for on and off. 18 | -------------------------------------------------------------------------------- /scenes/house/all_off.yaml: -------------------------------------------------------------------------------- 1 | name: All off 2 | entities: 3 | light.downstairs_hall: off 4 | light.living_room_corner_lamp: off 5 | light.living_room_tv_lamp: off 6 | light.living_room_table_lamp: off 7 | switch.living_room_cabinet_light: off 8 | switch.living_room_christmas_tree: off 9 | switch.garden_lights: off 10 | -------------------------------------------------------------------------------- /scripts/alarm_lights_enable.yaml: -------------------------------------------------------------------------------- 1 | sequence: 2 | - service: light.turn_on 3 | data: 4 | brightness_pct: 100 5 | effect: 'Police2' 6 | - delay: '00:00:05' 7 | - service: light.turn_on 8 | data: 9 | brightness_pct: 100 10 | effect: 'Police2' 11 | - delay: '00:00:05' 12 | - condition: template 13 | value_template: "{{ state('alarm_control_panel.house') != 'disarmed' }}" 14 | - service: script.turn_on 15 | data: 16 | entity_id: script.alarm_lights_on 17 | -------------------------------------------------------------------------------- /scripts/alarm_lights_on.yaml: -------------------------------------------------------------------------------- 1 | sequence: 2 | - service: media_player.play_media 3 | data: 4 | entity_id: media_player.office_sonos_cloud, media_player.family_room_sonos_cloud, media_player.living_room_sonos_cloud 5 | media_content_id: http://192.168.0.12:8123/local/sounds/wind_chime.mp3 6 | media_content_type: music 7 | extra: 8 | volume: 15 9 | play_on_bonded: true 10 | -------------------------------------------------------------------------------- /scripts/garden_door_after_sunset.yaml: -------------------------------------------------------------------------------- 1 | alias: Garden door after sunset 2 | sequence: 3 | - service: input_boolean.turn_off 4 | entity_id: input_boolean.garden_lights 5 | - service: homeassistant.turn_off 6 | entity_id: automation.utility_door_open_after_sunset_turn_off 7 | - service: switch.turn_on 8 | entity_id: switch.garden_lights 9 | - delay: '00:00:{{- "%02d" | format(states.input_number.door_delay.state | int) -}}' 10 | - service: input_boolean.turn_on 11 | entity_id: input_boolean.garden_lights 12 | - service: homeassistant.turn_on 13 | entity_id: automation.utility_door_open_after_sunset_turn_off 14 | -------------------------------------------------------------------------------- /scripts/hall/hall_string_off.yaml: -------------------------------------------------------------------------------- 1 | alias: Hall string off 2 | sequence: 3 | - service: switch.turn_off 4 | data: 5 | entity_id: switch.no_such_switch 6 | -------------------------------------------------------------------------------- /scripts/hall/hall_string_on.yaml: -------------------------------------------------------------------------------- 1 | alias: Hall string on 2 | sequence: 3 | - service: switch.turn_on 4 | data: 5 | entity_id: switch.no_such_switch 6 | -------------------------------------------------------------------------------- /scripts/hall/hall_strip_off.yaml: -------------------------------------------------------------------------------- 1 | alias: Hall strip off 2 | sequence: 3 | - wait_template: "{{ is_state('light.downstairs_hall','on') or is_state('light.downstairs_hall','off') }}" 4 | - repeat: 5 | sequence: 6 | - service: light.turn_off 7 | data: 8 | entity_id: light.downstairs_hall 9 | transition: 10 10 | - delay: '00:00:10' 11 | until: 12 | - condition: state 13 | entity_id: light.downstairs_hall 14 | state: 'off' 15 | -------------------------------------------------------------------------------- /scripts/hall/hall_strip_on.yaml: -------------------------------------------------------------------------------- 1 | alias: Hall strip on 2 | sequence: 3 | - service: switch.turn_off 4 | entity_id: switch.adaptive_lighting_sleep_mode_hall 5 | - wait_template: "{{ is_state('light.downstairs_hall','on') or is_state('light.downstairs_hall','off') }}" 6 | - service: light.turn_on 7 | data: 8 | entity_id: light.downstairs_hall 9 | -------------------------------------------------------------------------------- /scripts/nop.yaml: -------------------------------------------------------------------------------- 1 | alias: NOP 2 | sequence: 3 | - service: notify.send_message 4 | target: 5 | entity_id: notify.debug_log 6 | data: 7 | message: "Doing nothing" 8 | -------------------------------------------------------------------------------- /scripts/notify_person2.yaml: -------------------------------------------------------------------------------- 1 | alias: Notify person2 2 | sequence: 3 | - service: notify.discord_webhook 4 | data: 5 | title: "{{ title }}" 6 | message: "<@Tinkerer0042> {{ message }}" 7 | -------------------------------------------------------------------------------- /scripts/notify_person2_at_home.yaml: -------------------------------------------------------------------------------- 1 | alias: Notify person2 at home 2 | sequence: 3 | - condition: state 4 | entity_id: input_boolean.person2_home 5 | state: 'on' 6 | - service: notify.person2 7 | data: 8 | title: "{{ title|default('Notification') }}" 9 | message: "{{ message|default('A message should have been here') }}" 10 | -------------------------------------------------------------------------------- /scripts/notify_person3_at_home.yaml: -------------------------------------------------------------------------------- 1 | alias: Notify person3 at home 2 | sequence: 3 | - condition: state 4 | entity_id: input_boolean.person3_home 5 | state: 'on' 6 | - service: notify.person3 7 | data: 8 | message: "{{ message }}" 9 | 10 | -------------------------------------------------------------------------------- /scripts/people/person1/person1_away.yaml: -------------------------------------------------------------------------------- 1 | alias: person1 away 2 | sequence: 3 | - service: input_boolean.turn_off 4 | entity_id: input_boolean.person1_home 5 | - service: mqtt.publish 6 | data: 7 | topic: location/person1 8 | payload: 'not_home' 9 | retain: true 10 | -------------------------------------------------------------------------------- /scripts/people/person1/person1_home.yaml: -------------------------------------------------------------------------------- 1 | alias: person1 home 2 | sequence: 3 | - if: 4 | - condition: state 5 | entity_id: input_boolean.person1_home 6 | state: 'off' 7 | then: 8 | - service: input_boolean.turn_on 9 | entity_id: input_boolean.person1_home 10 | - service: input_boolean.turn_off 11 | entity_id: input_boolean.person1_travelling 12 | - service: automation.turn_on 13 | entity_id: automation.person1_at_work 14 | - service: mqtt.publish 15 | data: 16 | topic: location/person1 17 | payload: 'home' 18 | retain: true 19 | - service: script.turn_on 20 | entity_id: script.person1_traveltime 21 | -------------------------------------------------------------------------------- /scripts/people/person2/person2_away.yaml: -------------------------------------------------------------------------------- 1 | alias: person2 away 2 | sequence: 3 | - service: input_boolean.turn_off 4 | entity_id: input_boolean.person2_home 5 | - service: mqtt.publish 6 | data: 7 | topic: location/person2 8 | payload: 'not_home' 9 | retain: true 10 | -------------------------------------------------------------------------------- /scripts/people/person2/person2_notify_test.yaml: -------------------------------------------------------------------------------- 1 | alias: person2 notify_test 2 | sequence: 3 | - service: script.notify_person2_at_home 4 | data: 5 | message: "Test message" 6 | title: "Test title" 7 | -------------------------------------------------------------------------------- /scripts/people/person3/person3_away.yaml: -------------------------------------------------------------------------------- 1 | alias: person3 away 2 | sequence: 3 | - service: input_boolean.turn_off 4 | entity_id: input_boolean.person3_home 5 | - service: mqtt.publish 6 | data: 7 | topic: location/person3 8 | payload: 'not_home' 9 | retain: true 10 | -------------------------------------------------------------------------------- /scripts/people/person3/person3_home.yaml: -------------------------------------------------------------------------------- 1 | alias: person3 home 2 | sequence: 3 | - service: mqtt.publish 4 | data: 5 | topic: location/person3 6 | payload: 'home' 7 | retain: true 8 | - if: 9 | - condition: state 10 | entity_id: input_boolean.person3_home 11 | state: 'off' 12 | then: 13 | - service: input_boolean.turn_on 14 | entity_id: input_boolean.person3_home 15 | - service: input_boolean.turn_off 16 | entity_id: input_boolean.person3_travelling 17 | - service: script.turn_on 18 | entity_id: script.person3_traveltime 19 | -------------------------------------------------------------------------------- /scripts/people/person4/person4_away.yaml: -------------------------------------------------------------------------------- 1 | alias: person4 away 2 | sequence: 3 | - service: input_boolean.turn_off 4 | entity_id: input_boolean.person4_home 5 | - service: mqtt.publish 6 | data: 7 | topic: location/person4 8 | payload: 'not_home' 9 | retain: true 10 | -------------------------------------------------------------------------------- /scripts/people/person4/person4_home.yaml: -------------------------------------------------------------------------------- 1 | alias: person4 home 2 | sequence: 3 | - if: 4 | - condition: state 5 | entity_id: input_boolean.person4_home 6 | state: 'off' 7 | then: 8 | - service: input_boolean.turn_on 9 | entity_id: input_boolean.person4_home 10 | - service: mqtt.publish 11 | data: 12 | topic: location/person4 13 | payload: 'home' 14 | retain: true 15 | - service: script.turn_on 16 | entity_id: script.person4_traveltime 17 | -------------------------------------------------------------------------------- /scripts/people/person4/person4_traveltime.yaml: -------------------------------------------------------------------------------- 1 | alias: person4 traveltime 2 | sequence: 3 | - parallel: 4 | - if: 5 | - condition: state 6 | entity_id: input_boolean.here_travel_time 7 | state: 'on' 8 | then: 9 | - service: homeassistant.update_entity 10 | entity_id: sensor.person4s_time_to_home_duration 11 | - if: 12 | - condition: state 13 | entity_id: input_boolean.waze_travel_time 14 | state: 'on' 15 | then: 16 | - service: homeassistant.update_entity 17 | entity_id: sensor.person4s_time_to_home_waze 18 | -------------------------------------------------------------------------------- /scripts/scan_bt_restart.yaml: -------------------------------------------------------------------------------- 1 | sequence: 2 | - service: mqtt.publish 3 | data: 4 | topic: monitor/scan/restart 5 | payload: '' 6 | -------------------------------------------------------------------------------- /scripts/update_car_location.yaml: -------------------------------------------------------------------------------- 1 | alias: Update car location 2 | sequence: 3 | - service: device_tracker.see 4 | data: 5 | dev_id: "car_gps" 6 | location_name: "{{ states('device_tracker.skoda_superb_position') }}" 7 | gps_accuracy: "10" 8 | gps: 9 | - "{{ state_attr('device_tracker.skoda_superb_position','latitude')|float }}" 10 | - "{{ state_attr('device_tracker.skoda_superb_position','longitude')|float }}" 11 | -------------------------------------------------------------------------------- /sensors/time_date.yaml: -------------------------------------------------------------------------------- 1 | - platform: time_date 2 | display_options: 3 | - 'time' 4 | - 'date' 5 | - 'date_time' 6 | - 'time_utc' 7 | - 'date_time_iso' 8 | -------------------------------------------------------------------------------- /sensors/uk_transport.yaml: -------------------------------------------------------------------------------- 1 | - platform: uk_transport 2 | app_id: !secret transport_app_id 3 | app_key: !secret transport_app_key 4 | # Once a week 5 | scan_interval: 604800 6 | queries: 7 | - mode: train 8 | origin: abc 9 | destination: xyz 10 | - mode: train 11 | origin: xyz 12 | destination: abc 13 | - mode: train 14 | origin: abc 15 | destination: xyz 16 | - mode: train 17 | origin: xyz 18 | destination: abc 19 | - mode: train 20 | origin: abc 21 | destination: xyz 22 | - mode: train 23 | origin: xyz 24 | destination: abc 25 | -------------------------------------------------------------------------------- /shell_commands/catt.yaml: -------------------------------------------------------------------------------- 1 | catt: '/local/bin/catt-cast.zsh -d {{ target }} -u {{ url }}' 2 | -------------------------------------------------------------------------------- /shell_commands/download_image.yaml: -------------------------------------------------------------------------------- 1 | download_image: "/local/bin/download-image.zsh -e {{ states('input_text.camera_event_id') }}" 2 | -------------------------------------------------------------------------------- /shell_commands/healthcheck.yaml: -------------------------------------------------------------------------------- 1 | healthcheck: !secret healthcheck 2 | -------------------------------------------------------------------------------- /switch/README.md: -------------------------------------------------------------------------------- 1 | # Switches 2 | 3 | Components: 4 | * [Flux light adjustment](https://home-assistant.io/components/switch.flux/) 5 | * [Z-Wave switch](https://home-assistant.io/components/switch.zwave/) 6 | 7 | ## Flux 8 | 9 | For the [Flux light adjustment](https://home-assistant.io/components/switch.flux/) component, only for one light currently. 10 | -------------------------------------------------------------------------------- /telegram.yaml: -------------------------------------------------------------------------------- 1 | - platform: polling 2 | api_key: !secret telegram_token 3 | allowed_chat_ids: 4 | - !secret telegram_one 5 | - !secret telegram_group 6 | -------------------------------------------------------------------------------- /template/bin/bin_brown.yaml: -------------------------------------------------------------------------------- 1 | - trigger: 2 | - platform: time_pattern 3 | minutes: '/10' 4 | sensor: 5 | - name: 'Brown bin' 6 | unique_id: 'brown_bin_collection' 7 | state: >- 8 | {% if (as_timestamp(now()) + ( 60 * 60 * 24 )) | timestamp_custom("%Y-%m-%d 00:00:00") == states('sensor.brown_collection_date') %} 9 | tomorrow 10 | {% elif as_timestamp(now()) > as_timestamp(states('sensor.brown_collection_date'))+(60*60*12) %} 11 | past 12 | {% elif (as_timestamp(now()) | timestamp_custom("%Y-%m-%d 00:00:00")) == states('sensor.brown_collection_date') %} 13 | today 14 | {% else %} 15 | future 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /template/bin/bin_green.yaml: -------------------------------------------------------------------------------- 1 | - trigger: 2 | - platform: time_pattern 3 | minutes: '/10' 4 | sensor: 5 | - name: 'Green bin' 6 | unique_id: 'green_bin_collection' 7 | state: >- 8 | {% if (as_timestamp(now()) + ( 60 * 60 * 24 )) | timestamp_custom("%Y-%m-%d 00:00:00") == states('sensor.green_collection_date') %} 9 | tomorrow 10 | {% elif as_timestamp(now()) > as_timestamp(states('sensor.green_collection_date'))+(60*60*12) %} 11 | past 12 | {% elif (as_timestamp(now()) | timestamp_custom("%Y-%m-%d 00:00:00")) == states('sensor.green_collection_date') %} 13 | today 14 | {% else %} 15 | future 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /template/bin/bin_grey.yaml: -------------------------------------------------------------------------------- 1 | - trigger: 2 | - platform: time_pattern 3 | minutes: '/10' 4 | sensor: 5 | - name: 'Grey bin' 6 | unique_id: 'grey_bin_collection' 7 | state: >- 8 | {% if (as_timestamp(now()) + ( 60 * 60 * 24 )) | timestamp_custom("%Y-%m-%d 00:00:00") == states('sensor.grey_collection_date') %} 9 | tomorrow 10 | {% elif as_timestamp(now()) > as_timestamp(states('sensor.grey_collection_date'))+(60*60*12) %} 11 | past 12 | {% elif (as_timestamp(now()) | timestamp_custom("%Y-%m-%d 00:00:00")) == states('sensor.grey_collection_date') %} 13 | today 14 | {% else %} 15 | future 16 | {% endif %} 17 | -------------------------------------------------------------------------------- /template/calendar/person2_holiday.yaml: -------------------------------------------------------------------------------- 1 | - trigger: 2 | - platform: time 3 | at: '00:00:00' 4 | action: 5 | - action: calendar.get_events 6 | target: 7 | entity_id: calendar.person2_work 8 | data: 9 | start_date_time: "{{ today_at('00:00:00') }}" 10 | duration: 11 | hours: 24 12 | response_variable: agenda 13 | binary_sensor: 14 | - name: 'person2 on holiday' 15 | unique_id: 'person2_on_holiday' 16 | state: >- 17 | {{ (agenda['calendar.person2_work'].events | selectattr('summary', 'search', '(h|H)oliday') | list | length) > 0 }} 18 | -------------------------------------------------------------------------------- /template/feels_like.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Feels like temperature' 3 | unique_id: 'feels_like_temperature' 4 | unit_of_measurement: "°C" 5 | state: >- 6 | {%- set temperature = states('sensor.outside_climate_temperature')|float %} 7 | {%- set humidity = states('sensor.outside_climate_humidity')|float %} 8 | {%- set wvp = (humidity/100) * 6.105 * e**((17.27*temperature) / (237.7 + temperature))%} 9 | {{- (temperature + 0.33 * wvp - 4.00)|round(2) -}} 10 | state_class: measurement 11 | icon: mdi:thermometer 12 | -------------------------------------------------------------------------------- /template/flood_while_away.yaml: -------------------------------------------------------------------------------- 1 | - binary_sensor: 2 | - name: 'Flood detected while we are away' 3 | unique_id: 'flood_while_away' 4 | state: >- 5 | {{ is_state('binary_sensor.home_occupied','off') and is_state('binary_sensor.leak_sensors','on') }} 6 | 7 | -------------------------------------------------------------------------------- /template/flood_while_home.yaml: -------------------------------------------------------------------------------- 1 | - binary_sensor: 2 | - name: 'Flood detected while we are home' 3 | unique_id: 'flood_while_home' 4 | state: >- 5 | {{ is_state('binary_sensor.home_occupied','on') and is_state('binary_sensor.leak_sensors','on') }} 6 | -------------------------------------------------------------------------------- /template/garage_door_freezer_combi.yaml: -------------------------------------------------------------------------------- 1 | - binary_sensor: 2 | - name: 'Garage door bike combi' 3 | unique_id: 'garage_door_bike_combi' 4 | device_class: 'garage_door' 5 | state: >- 6 | {{ states('sensor.garage_door_bike_v_angle_y')|float > 0 and is_state('binary_sensor.garage_door_bike_contact','on') }} 7 | {{ states('binary_sensor.garden_gate_contact') }} 8 | -------------------------------------------------------------------------------- /template/garden_gate.yaml: -------------------------------------------------------------------------------- 1 | - binary_sensor: 2 | - name: 'Garden gate' 3 | unique_id: 'garden_gate' 4 | device_class: 'door' 5 | state: >- 6 | {{ states('binary_sensor.garden_gate_contact') }} 7 | icon: >- 8 | {% if is_state('binary_sensor.garden_gate_contact','off') %} 9 | mdi:gate 10 | {% elif is_state('binary_sensor.garden_gate_contact','on') %} 11 | mdi:gate-open 12 | {% else %} 13 | mdi:gate-alert 14 | {% endif %} 15 | -------------------------------------------------------------------------------- /template/garden_lights_on.yaml: -------------------------------------------------------------------------------- 1 | - binary_sensor: 2 | - name: 'Garden lights left on' 3 | unique_id: 'left_the_garden_lights_on' 4 | delay_on: '00:00:05' 5 | device_class: 'power' 6 | state: >- 7 | {{ is_state('switch.garden_lights', 'on' ) and ((states.sensor.time.last_updated - states.switch.garden_lights.last_changed).seconds > (states('input_number.garden_time')|float * 60)) }} 8 | -------------------------------------------------------------------------------- /template/home_count.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Home count' 3 | unique_id: 'home_count' 4 | state: >- 5 | {{ ((expand('group.my_people')|selectattr('state', 'eq', 'on')|map(attribute='name')|list|count)/(expand('group.my_people')|map(attribute='name')|list|count))|round(2) }} 6 | {# states('input_boolean.person2_home') states('input_boolean.person3_home') states('input_boolean.person1_home') states('input_boolean.person4_home') #} 7 | 8 | -------------------------------------------------------------------------------- /template/last_motion.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Last Motion' 3 | unique_id: 'last_motion' 4 | state: >- 5 | {{ states('input_text.last_motion') }} 6 | 7 | -------------------------------------------------------------------------------- /template/last_opened.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Last opened' 3 | unique_id: 'last_opened' 4 | state: >- 5 | {{ states('input_text.last_opened') }} 6 | -------------------------------------------------------------------------------- /template/last_opened_interior.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Last opened interior' 3 | unique_id: 'last_opened_interior' 4 | state: >- 5 | {{ states('input_text.last_opened_interior') }} 6 | -------------------------------------------------------------------------------- /template/metno_temperature.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'MetNo temperature' 3 | unique_id: 'metno_temperature' 4 | device_class: "temperature" 5 | unit_of_measurement: "°C" 6 | state: >- 7 | {{ state_attr('weather.home', 'temperature') }} 8 | 9 | -------------------------------------------------------------------------------- /template/miband/miband_battery_level.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'person2 MiBand7 battery level' 3 | unique_id: 'person2_miband7_battery_level' 4 | device_class: "battery" 5 | unit_of_measurement: "%" 6 | state: >- 7 | {{ states('sensor.person2_miband7_battery') }} 8 | 9 | -------------------------------------------------------------------------------- /template/miband/miband_connected.yaml: -------------------------------------------------------------------------------- 1 | - binary_sensor: 2 | - name: 'person2 MiBand7 connected' 3 | unique_id: 'person2_miband7_connected' 4 | device_class: 'connectivity' 5 | state: >- 6 | {{ is_state('sensor.person2_miband7_connected','1') }} 7 | -------------------------------------------------------------------------------- /template/miband/miband_heartrate.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'person2 MiBand7 Heartrate' 3 | unique_id: 'person2_miband7_heart_rate' 4 | unit_of_measurement: "bpm" 5 | state: >- 6 | {{ states('sensor.person2_miband7_heartrate') }} 7 | 8 | -------------------------------------------------------------------------------- /template/miband/miband_spo2.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'person2 MiBand7 SpO2' 3 | unique_id: 'person2_miband7_spo2_level' 4 | unit_of_measurement: "%" 5 | state: >- 6 | {{ states('sensor.person2_miband7_spo2') }} 7 | 8 | -------------------------------------------------------------------------------- /template/miband/miband_steps.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'person2 MiBand7 step count' 3 | unique_id: 'person2_miband7_step_count' 4 | state: >- 5 | {{ states('sensor.person2_miband7_steps') }} 6 | 7 | -------------------------------------------------------------------------------- /template/miband/miband_stress.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'person2 MiBand7 stress' 3 | unique_id: 'person2_miband7_stress_level' 4 | unit_of_measurement: "%" 5 | state: >- 6 | {{ states('sensor.person2_miband7_stress') }} 7 | 8 | -------------------------------------------------------------------------------- /template/office/office_mmwave_region_2.yaml: -------------------------------------------------------------------------------- 1 | - trigger: 2 | - platform: state 3 | entity_id: sensor.office_mmwave_action 4 | to: 5 | - 'region_2_enter' 6 | - 'region_2_occupied' 7 | id: 'on' 8 | - platform: state 9 | entity_id: sensor.office_mmwave_action 10 | to: 11 | - 'region_2_leave' 12 | id: 'off' 13 | binary_sensor: 14 | - name: 'Office mmwave region 2' 15 | unique_id: 'office_mmwave_region_2' 16 | device_class: occupancy 17 | state: >- 18 | {{ trigger.id }} 19 | -------------------------------------------------------------------------------- /template/outside_humdity.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Outside humdity' 3 | unique_id: 'outside_humidity' 4 | unit_of_measurement: "%" 5 | state: >- 6 | {{ state_attr('weather.tomorrow_io_home_nowcast', 'humidity') }} 7 | state_class: measurement 8 | icon: mdi:water-percent 9 | -------------------------------------------------------------------------------- /template/outside_temperature.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Outside temperature' 3 | unique_id: 'outside_temperature' 4 | unit_of_measurement: "°C" 5 | state: >- 6 | {{ state_attr('weather.tomorrow_io_home_nowcast', 'temperature') }} 7 | state_class: measurement 8 | icon: mdi:thermometer 9 | -------------------------------------------------------------------------------- /template/people/distance_person1_person2.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Distance between person1 and person2' 3 | unique_id: 'distance_person1_person2' 4 | unit_of_measurement: 'km' 5 | state: >- 6 | {{ distance('person.person2','person.person1')|round(1) }} 7 | 8 | -------------------------------------------------------------------------------- /template/people/distance_person1_person3.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Distance between person1 and person3' 3 | unique_id: 'distance_person1_person3' 4 | unit_of_measurement: 'km' 5 | state: >- 6 | {{ distance('person.person1','person.person3')|round(1) }} 7 | 8 | -------------------------------------------------------------------------------- /template/people/distance_person2_person3.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Distance between person2 and person3' 3 | unique_id: 'distance_person2_person3' 4 | unit_of_measurement: 'km' 5 | state: >- 6 | {{ distance('person.person2','person.person3')|round(1) }} 7 | 8 | -------------------------------------------------------------------------------- /template/ps5_power.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'PS5 power' 3 | unique_id: 'ps5_power' 4 | state: >- 5 | {{ state_attr('sensor.ps5_724_activity','power')|lower }} 6 | -------------------------------------------------------------------------------- /template/ps5_status.yaml: -------------------------------------------------------------------------------- 1 | - binary_sensor: 2 | - name: 'PS5 status' 3 | unique_id: 'ps5_status' 4 | device_class: 'connectivity' 5 | state: >- 6 | {{ is_state_attr('sensor.ps5_724_activity','device_status','online') }} 7 | -------------------------------------------------------------------------------- /template/sky_q_family_room_transport.yaml: -------------------------------------------------------------------------------- 1 | - binary_sensor: 2 | - name: 'Sky Q family room transport status' 3 | unique_id: 'sky_q_family_room_transport' 4 | device_class: connectivity 5 | state: >- 6 | {{ is_state_attr('media_player.sky_q_family_room','skyq_transport_status','OK') }} 7 | -------------------------------------------------------------------------------- /template/sky_q_living_room_transport.yaml: -------------------------------------------------------------------------------- 1 | - binary_sensor: 2 | - name: 'Sky Q living room transport status' 3 | unique_id: 'sky_q_living_room_transport' 4 | device_class: connectivity 5 | state: >- 6 | {{ is_state_attr('media_player.sky_q_living_room','skyq_transport_status','OK') }} 7 | -------------------------------------------------------------------------------- /template/sun_elevation.yaml: -------------------------------------------------------------------------------- 1 | - sensor: 2 | - name: 'Sun elevation' 3 | unique_id: 'sun_elevation' 4 | unit_of_measurement: "degrees" 5 | state: >- 6 | {{ state_attr('sun.sun', 'elevation') }} 7 | icon: > 8 | {% set elevation = state_attr('sun.sun', 'elevation')|default(0) %} 9 | {% if elevation > 0 %} 10 | mdi:weather-sunny 11 | {% else %} 12 | mdi:weather-night 13 | {% endif %} 14 | -------------------------------------------------------------------------------- /timers/garden_lights.yaml: -------------------------------------------------------------------------------- 1 | name: 'Garden lights' 2 | duration: '00:15:00' 3 | icon: mdi:timer 4 | -------------------------------------------------------------------------------- /timers/hall_motion.yaml: -------------------------------------------------------------------------------- 1 | name: 'Hall motion' 2 | duration: '00:05:00' 3 | icon: mdi:timer 4 | -------------------------------------------------------------------------------- /timers/living_room_motion.yaml: -------------------------------------------------------------------------------- 1 | name: 'Living room motion' 2 | duration: '00:02:00' 3 | icon: mdi:timer 4 | -------------------------------------------------------------------------------- /timers/master_bedroom_bedhead.yaml: -------------------------------------------------------------------------------- 1 | name: 'Master bedroom bedhead' 2 | duration: '00:30:00' 3 | icon: mdi:timer 4 | -------------------------------------------------------------------------------- /timers/second_bedroom_bedside.yaml: -------------------------------------------------------------------------------- 1 | name: 'Second bedroom bedside' 2 | duration: '00:30:00' 3 | icon: mdi:timer 4 | -------------------------------------------------------------------------------- /tts.yaml: -------------------------------------------------------------------------------- 1 | - platform: google_translate 2 | service_name: google_say 3 | language: en-gb 4 | - platform: google_cloud 5 | key_file: secrets/google_cloud.json 6 | voice: en-GB-Wavenet-A 7 | -------------------------------------------------------------------------------- /ui-lovelace-admin.yaml: -------------------------------------------------------------------------------- 1 | title: Admin 2 | custom_header: !include lovelace/custom_header.yaml 3 | views: 4 | - !include lovelace/view-inputs.yaml 5 | - !include lovelace/view-lighting_control.yaml 6 | - !include lovelace/view-information.yaml 7 | - !include lovelace/view-devices.yaml 8 | - !include lovelace/view-spacer2.yaml 9 | - !include lovelace/view-admin-cameras.yaml 10 | - !include lovelace/view-cameras.yaml 11 | - !include lovelace/view-weather.yaml 12 | - !include lovelace/view-cast.yaml 13 | -------------------------------------------------------------------------------- /ui-lovelace-automations.yaml: -------------------------------------------------------------------------------- 1 | title: Automations 2 | custom_header: !include lovelace/custom_header.yaml 3 | views: 4 | - !include lovelace/view-automations.yaml 5 | - !include lovelace/view-automations_downstairs.yaml 6 | - !include lovelace/view-automations_upstairs.yaml 7 | - !include lovelace/view-automations_bedrooms.yaml 8 | - !include lovelace/view-automations_person2.yaml 9 | - !include lovelace/view-automations_person3.yaml 10 | - !include lovelace/view-automations_person1.yaml 11 | - !include lovelace/view-automations_group.yaml 12 | - !include lovelace/view-automations_more.yaml 13 | - !include lovelace/view-automations_notifications.yaml 14 | - !include lovelace/view-scripts.yaml 15 | -------------------------------------------------------------------------------- /ui-lovelace-people.yaml: -------------------------------------------------------------------------------- 1 | title: People 2 | custom_header: !include lovelace/custom_header.yaml 3 | views: 4 | - !include lovelace/view-people.yaml 5 | - !include lovelace/view-map.yaml 6 | -------------------------------------------------------------------------------- /ui-lovelace.yaml: -------------------------------------------------------------------------------- 1 | title: Our Home 2 | views: 3 | - !include lovelace/view-home.yaml 4 | - !include lovelace/view-floorplan.yaml 5 | - !include lovelace/view-floor-ground.yaml 6 | - !include lovelace/view-floor-first.yaml 7 | - !include lovelace/view-frigate.yaml 8 | - !include lovelace/view-media.yaml 9 | - !include lovelace/view-spacer2.yaml 10 | - !include lovelace/view-overview.yaml 11 | # - !include lovelace/view-cast.yaml 12 | -------------------------------------------------------------------------------- /weather/README.md: -------------------------------------------------------------------------------- 1 | # Weather 2 | 3 | Components: 4 | * [Weather](https://home-assistant.io/components/weather/) 5 | * [Dark Sky](https://home-assistant.io/components/weather.darksky/) 6 | 7 | None of these are used in automations, they're all just for the Lovelace dashboard currently. 8 | -------------------------------------------------------------------------------- /www/README.md: -------------------------------------------------------------------------------- 1 | # WWW 2 | 3 | This is where the files for [HA Floorplan](https://github.com/pkozul/ha-floorplan), custom Lovelace cards, and a bunch of other things, can be found lurking. 4 | -------------------------------------------------------------------------------- /yeelight.yaml: -------------------------------------------------------------------------------- 1 | devices: 2 | 192.168.0.150: 3 | name: Master bedroom bedhead 4 | model: strip1 5 | 192.168.0.151: 6 | name: Second bedroom bedside 7 | model: strip1 8 | --------------------------------------------------------------------------------