############################################################################### # @author : Jeffrey Stone # @date : 06/12/2020 # @package : Appliances # @description : Package for handling Smart Applicances and or automation to make dumb appliances seem smart. ############################################################################### sensor: # MQTT Sensor for DishWasher Status. - platform: mqtt name: "DishWasher Status" state_topic: "house/dishwasher/status" # MQTT Sensor for Washing Machine Status. - platform: mqtt name: "Washer Status" state_topic: "house/washer/status" - platform: mqtt name: "Washer Last Complete" state_topic: "house/washer/time_complete" - platform: mqtt name: "Washer Last Emptied" state_topic: "house/washer/time_emptied" utility_meter: washer_daily_kwh: source: sensor.washer_switch_electric_consumed_kwh cycle: daily washer_weekly_kwh: source: sensor.washer_switch_electric_consumed_kwh cycle: weekly automation: - id: washer_running alias: Washer Running trigger: - above: 5 entity_id: sensor.washer_power_consumed_w platform: numeric_state condition: condition: or conditions: - condition: state entity_id: sensor.washer_status state: idle - condition: state entity_id: sensor.washer_status state: complete action: #- service: script.washer_running - service: mqtt.publish data: topic: house/washer/status payload: running retain: true initial_state: true - id: washer_complete alias: Washer Complete trigger: - below: 3 entity_id: sensor.washer_power_consumed_w platform: numeric_state condition: - condition: state entity_id: sensor.washer_status state: running action: #- service: script.washer_complete - service: mqtt.publish data: topic: house/washer/status payload: complete retain: true - service: mqtt.publish data: topic: house/washer/time_complete payload: '{{ now().timestamp() }}' retain: true initial_state: true - id: washer_notification initial_state: true alias: Washer Notification trigger: - platform: state entity_id: sensor.washer_status from: running to: complete action: - service: script.status_annc data: who: '{{ states.sensor.room_presence.state }}' call_interuption: 1 speech_message: It appears the washing machine has completed its cycle. - service: script.turn_on entity_id: script.washer_finished_notification_audible - id: washer_emptied initial_state: true alias: Washer Emptied trigger: - platform: state entity_id: binary_sensor.washer_door from: 'off' to: 'on' action: #- service: script.washer_idle - service: mqtt.publish data: topic: house/washer/status payload: idle retain: true - service: script.turn_off entity_id: script.washer_finished_notification_audible - service: mqtt.publish data: topic: house/washer/time_emptied payload: '{{ now().timestamp() }}' retain: true - id: e1cb26fe-0423-11eb-adc1-0242ac120002 initial_state: true alias: Dryer Notification trigger: - platform: state entity_id: binary_sensor.dryer_dry_completed from: 'off' to: 'on' action: - service: script.status_annc data: who: '{{ states.sensor.room_presence.state }}' call_interuption: 1 speech_message: It appears the dryer has finished. - delay: minutes: 15 # - service: script.turn_on # entity_id: script.dryer_finished_notification_audible - id: dishwasher_idle initial_state: true alias: Dishwasher Idle trigger: - platform: state entity_id: device_tracker.dishwasher to: 'not_home' action: - service: script.dishwasher_idle # When dishwasher connects to network assume it is running cycle. - id: dishwasher_running initial_state: true alias: Dishwasher Running trigger: - platform: state entity_id: device_tracker.dishwasher to: 'home' action: - service: script.dishwasher_running - id: e1cb2640-0423-11eb-adc1-0242ac120002 alias: 3D Printing Notifications trigger: - platform: state entity_id: binary_sensor.octoprint_printing to: "on" id: printing_started - platform: state entity_id: binary_sensor.octoprint_printing to: "off" id: printing_ended action: - choose: - conditions: - condition: trigger id: printing_started - condition: state entity_id: sensor.octoprint_current_state state: 'Printing' sequence: - service: script.status_annc data: who: '{{ states.sensor.room_presence.state }}' call_interuption: 1 speech_message: The three d printer is printing. - conditions: - condition: trigger id: printing_started - condition: state entity_id: sensor.octoprint_current_state state: 'Sending file to SD' sequence: - service: script.status_annc data: who: '{{ states.sensor.room_presence.state }}' call_interuption: 1 speech_message: Uploading file to three d file has started. - conditions: - condition: trigger id: printing_ended sequence: - service: script.status_annc data: who: '{{ states.sensor.room_presence.state }}' call_interuption: 1 speech_message: The three d printer has completed its job. script: appliances_on: sequence: - service: switch.turn_on data: entity_id: switch.box_fans appliances_off: sequence: - data: entity_id: switch.incense service: switch.turn_off - data: entity_id: switch.artemis service: switch.turn_off washer_finished_notification_audible: sequence: - repeat: while: - condition: state entity_id: sensor.washer_status state: 'complete' sequence: - delay: minutes: 45 - service: script.washer_audible # dryer_finished_notification_audible: # sequence: # - repeat: # while: # - condition: state # entity_id: sensor.washer_status # state: 'complete' # sequence: # - service: script.dryer_audible # - delay: # minutes: 45 washer_audible: sequence: - condition: state entity_id: sensor.family_status state: Home - condition: state entity_id: sensor.washer_status state: complete - service: script.status_annc data_template: who: '{{ states.sensor.room_presence.state }}' call_interuption: 1 call_washer_needs_emptying: 1 washer_idle: sequence: - service: mqtt.publish data: topic: house/washer/status payload: idle retain: true washer_running: sequence: - service: mqtt.publish data: topic: house/washer/status payload: running retain: true washer_complete: sequence: - service: mqtt.publish data: topic: house/washer/status payload: complete retain: true - service: mqtt.publish data: topic: house/washer/time_complete payload: '{{ now().timestamp() }}' retain: true dishwasher_idle: sequence: - service: mqtt.publish data: topic: house/dishwasher/status payload: idle retain: true dishwasher_running: sequence: - service: mqtt.publish data: topic: house/dishwasher/status payload: running retain: true