Chores Reminder (google calendar and d1mini)

First I have to say thanks for your help along the way
@Underknowledge
@Axolotl
@digiblur here is his channel link https://www.youtube.com/c/digiblurDIY
I have made a chores reminder to remind me when I have to do chores, I would love to hear anyone’s ideas to make this projects better - any ideas will be appreciated. So far I have an easy way to do this setup for any newbie like me :smiley:

What I have done so far:
Read chores from Google Calendar
Light up the LED when a chore needs to be done.
Send the chores to my phone

What You Need:
D1 mini and 2 LED’s, 2 buttons and 2 resistors (put it all together)
Google Calendar Setup (https://www.home-assistant.io/components/calendar.google/)
Google Home

OK to make it easy we will load tasmota firmware onto the d1 mini
now.

So I have made LED to Relay and push button as a Button

Now make an MQTT switch in HA to turn on and off the LED

My 2 switches are switch.snake_feed and switch.snake_water

  alias: feeding the snake test
  trigger:
    - platform: state
      entity_id: calendar.snake
      to: 'on'
  condition:
        condition: template
        value_template: "{{states.calendar.snake.attributes.message == 'feed' }}"
  action: 
    - service: notify.html5_aaron_moblie_phone
      data:
        title: test at 6:30 it woek
        message: feed the snake today and wait 2 weeks
    - service: switch.turn_on
      data:
        entity_id: switch.snake_feed
#
- id: 'weater_snake_test'
  alias: feeding the snake test
  trigger:
    - platform: state
      entity_id: calendar.snake
      to: 'on'
  condition:
        condition: template
        value_template: "{{states.calendar.snake.attributes.message == 'water' }}"
  action: 
    - service: notify.html5_aaron_moblie_phone
      data:
        title: test at 6:30 it woek
        message: water the snake today and wait 2 weeks
    - service: switch.turn_on
      data:
        entity_id: switch.snake_water

See where ‘feed’ is on mine - you can put whatever you like HA to look for in your calendar. This is my calendar.

Thing I still need to do :slight_smile:
When you get home Google home will remind you of the chores to be done
Send the chores to your phone after 24 hours and the job is still not done with an angry face
Once the chore has been done (when I push the button to turn off the light) HA makes a new event in the time frame it is programmed to

4 Likes

OK so luck with google calender to work but a friend @Underknowledge help me. with this code what worked.

 - name: snake_feed
   platform: file
   filename: /config/packages/feed.txt
 - name: snake_water
   platform: file
   filename: /config/packages/water.txt
######################################################
sensor:
 - platform: mqtt
   name: "snake_feed_state"
   icon: mdi:food
   state_topic: "stat/Chores-Reminder/Snake/POWER1"
 - platform: mqtt
   name: "snake_water_state"
   icon: mdi:water 
   state_topic: "stat/Chores-Reminder/Snake/POWER2"
##
 - platform: file
   name: snake_feed_timestamp
   icon: mdi:calendar-clock
   file_path: /config/packages/feed.txt
   value_template: '{{value_json.timestamp}}'
 - platform: file
   name: snake_water_timestamp
   icon: mdi:calendar-clock
   file_path: /config/packages/water.txt
   value_template: '{{value_json.timestamp}}'
##
 - platform: template
   sensors:
     snake_feed_days:
       friendly_name: "snake last feed"
       unit_of_measurement: 'days'
       value_template: "{{ (( as_timestamp(now()) - as_timestamp(strptime(states('sensor.snake_feed_timestamp'), '%d.%m.%Y')) ) / 86400 ) | round(2) }}"
 - platform: template
   sensors:
     snake_water_days:
       friendly_name: "snake last water"
       unit_of_measurement: 'days'
       value_template: "{{ (( as_timestamp(now()) - as_timestamp(strptime(states('sensor.snake_water_timestamp'), '%d.%m.%Y')) ) / 86400 ) | round(2) }}"
##############################################################################################
automation:
    - alias: 'snake_feed_water_update'
      trigger:
        - platform: time
          minutes: '14' # Triggers when its xx:14:00 (military time format)
          seconds: 0
      action:
        - service: homeassistant.update_entity
          entity_id: sensor.snake_feed_days
        - service: homeassistant.update_entity
          entity_id: sensor.snake_water_days
##
    - alias: snake_feed_timestamp
      initial_state: 'on'
      hide_entity: true
      trigger:
        - platform: state
          entity_id: sensor.snake_feed_state
          from: 'ON'
          to: 'OFF'
      action:
         - service: notify.snake_feed
           data_template:
             message: "{{ { 'timestamp': now()|string } |tojson }}"
         - service: notify.html5_aaron_moblie_phone
           data_template:
             title: 'Home Assistant Info'
             message: "Snake has been fed {{now().strftime('%H:%M:%S %Y-%m-%d')}} "
    - alias: snake_water_timestamp
      initial_state: 'on'
      hide_entity: true
      trigger:
        - platform: state
          entity_id: sensor.snake_water_state
          from: 'ON'
          to: 'OFF'
      action:
         - service: notify.snake_water
           data_template:
             message: "{{ { 'timestamp': now()|string } |tojson }}"
         - service: notify.html5_aaron_moblie_phone
           data_template:
             title: 'Home Assistant Info'
             message: "Snake has freshwater now {{now().strftime('%H:%M:%S %Y-%m-%d')}} "
##
    - alias: turn_on_light_feed_based_on_days
      initial_state: 'on'
      hide_entity: true

      trigger:
      #  - platform: time
      #    minutes: '/3' # https://www.home-assistant.io/docs/automation/trigger/#time-trigger
      #    seconds: 00
        - platform: time
          at: '07:30:00' #use this before :-) above is good to know
        - platform: time
          at: '18:30:00'
      condition:
        - condition: numeric_state
          entity_id: sensor.snake_feed_days
          above: '13.8' # otherwise its getting later and later 
      action:
        - service: mqtt.publish
          data: {"payload": "ON", "topic": "cmnd/Chores-Reminder/Snake/POWER1", "retain": 0}
        - service: notify.html5_aaron_moblie_phone
          data:
            title: 'Snake'
            message: 'The snake is hungry!!'
            data:
              renotify: 1
              tag: snakefood  # won’t create new notification if there already exists one with the same tag.
              vibrate:
                - 300
                - 500
                - 200
              # image: https://tombstone.duckdns.org:8123/local/snake_feed
              # actions:
              #   - action: "trigger_html_wife"
              #     title: "let the wife do it"
              #     automation saying - yould you feed the nake and press the button?
              #   - action: "trigger_html_"
              #     title: "text to show 2"
##
    - alias: turn_on_light_water_based_on_days
      initial_state: 'on'
      hide_entity: true
      trigger:
        - platform: time
          at: '07:30:00'
        - platform: time
          at: "18:30:00" 
      condition:
        - condition: numeric_state
          entity_id: sensor.snake_water_days
          above: '3.8'  
      action:
        - service: mqtt.publish
          data: {"payload": "ON", "topic": "cmnd/Chores-Reminder/Snake/POWER2", "retain": 0}
        - service: notify.html5_aaron_moblie_phone
          data:
            title: 'Snake'
            message: 'freshwater for snake!!'
            data:
              renotify: 1
              tag: snakewater  
              vibrate:
                - 300
                - 500
                - 200
              # image: https://tombstone.duckdns.org:8123/local/snake_feed
              # actions:
              #   - action: "trigger_html_wife"
              #     title: "let the wife do it"
              #     automation saying - yould you feed the nake and press the button?
              #   - action: "trigger_html_"
              #     title: "text to show 2"

Of any one like to know how to all works just msg me

1 Like