Sonoff POW R2 readings - Calculating costs? :)

G’day @Orion,

Please see below for my Washing Machine and Dryer YAML.

  • This creates sensors to measure the volts, amps, watts etc.
  • It also uses “templates” to calculate costs for “yesterday” and “todays” usage (@ 0.35cents AUD per KWh)
  • It also notifies me (automation) through my SONOS via TTS (Bedroom and Living Room) when the cycle is complete

sensor:
      # LAUNDRY SENSORS
      # DRYER SONOFF POW R2
    - platform: mqtt
      name: "Dryer Volts"
      state_topic: "dryer/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Voltage"] }}'
      unit_of_measurement: "volts" 
    - platform: mqtt
      name: "Dryer Amps"
      state_topic: "dryer/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Current"] }}'
      unit_of_measurement: "amps"
    - platform: mqtt
      name: "Dryer Watts"
      state_topic: "dryer/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Power"] }}'
      unit_of_measurement: "watts" 
    - platform: mqtt
      name: "Dryer Power Usage - TODAY"
      state_topic: "dryer/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Today"] }}'
      unit_of_measurement: "kW"
    - platform: mqtt
      name: "Dryer Power Usage - YESTERDAY"
      state_topic: "dryer/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Yesterday"] }}'
      unit_of_measurement: "kW" 

      # WASHING MACHINE SONOFF POW R2
    - platform: mqtt
      name: "Washing Machine Volts"
      state_topic: "washing_machine/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Voltage"] }}'
      unit_of_measurement: "volts" 
    - platform: mqtt
      name: "Washing Machine Amps"
      state_topic: "washing_machine/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Current"] }}'
      unit_of_measurement: "amps"
    - platform: mqtt
      name: "Washing Machine Watts"
      state_topic: "washing_machine/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Power"] }}'
      unit_of_measurement: "watts" 
    - platform: mqtt
      name: "Washing Machine Power Usage - TODAY"
      state_topic: "washing_machine/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Today"] }}'
      unit_of_measurement: "kW"
    - platform: mqtt
      name: "Washing Machine Power Usage - YESTERDAY"
      state_topic: "washing_machine/tele/SENSOR"
      value_template: '{{ value_json["ENERGY"]["Yesterday"] }}'
      unit_of_measurement: "kW" 
    
    # DRYER Template COSTS  
    - platform: template
      sensors:
       dryer_power_today_cost:
         friendly_name: "Dryer - Today's Cost"
         unit_of_measurement: '$'
         value_template: "{{ (states('sensor.dryer_power_usage_today')|float * 0.35)| round(2) }}"
       dryer_power_yesterday_cost:
         friendly_name: "Dryer - Yesterday's Cost"
         unit_of_measurement: '$'
         value_template: "{{ (states('sensor.dryer_power_usage_yesterday')|float * 0.35)| round(2) }}"

    # WASHING MACHINE Template COSTS  
    - platform: template
      sensors:
       washing_machine_power_today_cost:
         friendly_name: "Washing Machine - Today's Cost"
         unit_of_measurement: '$'
         value_template: "{{ (states('sensor.washing_machine_power_usage_today')|float * 0.35)| round(2) }}"
       washing_machine_power_yesterday_cost:
         friendly_name: "Washing Machine - Yesterday's Cost"
         unit_of_measurement: '$'
         value_template: "{{ (states('sensor.washing_machine_power_usage_yesterday')|float * 0.35)| round(2) }}"

binary_sensor:
    # Washer and Dryer on/off status
    - platform: template
      sensors:
       washer_status:
         friendly_name: "Washing Machine Status"
         #delay_on:
          # seconds: 10
           #minutes: 10
         delay_off:
           seconds: 5
           #minutes: 3
         value_template: >-
           {{ states('sensor.washing_machine_watts')|float > 0 }}
       dryer_status:
         friendly_name: "Dryer Status"
      #   delay_on:
      #     minutes: 10
         delay_off:
           seconds: 5
         value_template: >-
           {{ states('sensor.dryer_watts')|float > 0 }}

automation:
  #NOTIFY via Sonos TTS 
  #WASHING MACHINE
- id: washer_finished_notification
  alias: Washing Machine Finished Notification
  trigger:
    platform: state
    entity_id: binary_sensor.washer_status
    to: 'off'
  action:
  - service: notify.android
    data:
      message: Washing Machine has finished its cycle
  - service: media_player.volume_set
    data:
      entity_id: media_player.bedroom
      volume_level: 0.5
  - service: media_player.volume_set
    data:
      entity_id: media_player.living_room
      volume_level: 0.5
  - service: tts.google_say
    data:
      entity_id: media_player.bedroom
      message: "The Washing Machine has finished its cycle"
  - service: tts.google_say
    data:
      entity_id: media_player.living_room
      message: "The Washing Machine has finished its cycle"

  #DRYER
- id: dryer_finished_notification
  alias: Dryer Finished Notification
  trigger:
    platform: state
    entity_id: binary_sensor.dryer_status
    to: 'off'
  action:
  - service: notify.android
    data:
      message: Dryer has finished its cycle
  - service: media_player.volume_set
    data:
      entity_id: media_player.bedroom
      volume_level: 0.5
  - service: media_player.volume_set
    data:
      entity_id: media_player.living_room
      volume_level: 0.5
  - service: tts.google_say
    data:
      entity_id: media_player.bedroom
      message: "The Dryer has finished its cycle"
  - service: tts.google_say
    data:
      entity_id: media_player.living_room
      message: "The Dryer has finished its cycle"

switch:
  #WASHING MACHINE & DRYER ON/OFF POWER SWITCH
  - platform: mqtt
    name: "Dryer Power"
    state_topic: "dryer/stat/POWER"
    command_topic: "dryer/cmnd/POWER"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    retain: true
  - platform: mqtt
    name: "Washing Machine Power"
    state_topic: "washing_machine/stat/POWER"
    command_topic: "washing_machine/cmnd/POWER"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    retain: true
3 Likes