Fish feeding system - Need some pointers / ideas

Good evening all!

We have a smallish fish tank and at the moment I have a routine that every day announced on our smart speakers it is time to feed the fish. Now the problem with this is if we aren’t in at that moment / away on holiday or don’t hear the speaker.

Now I could solve some of that by checking if we are home etc and perhaps a button to say I have done it and then reminders however doesn’t solve the bit when we are away.

I was wondering if anyone has a clever device that could deliver a tiny pinch of fish food every day at a specified time? I already automate the lights and bubbles so just need this last thing to make it perfect!

Thanks in advance for any insights and suggestions. I am not beyond tinkering with hardware like ESP32’s but I would still say I am fairly novice.

I use one of these

then I did this to it

Have a sonoff Basic wired in the LED lighting

and one of these

one turns the led lights on off and the other we press when we feed them

when we not here I can do from my phone

alias: Toggle the Feed the Fish
initial_state: true
trigger:
  - entity_id: sensor.last_rf
    platform: state
    to: "112691"
condition: []
action:
  - service: tts.google_say
    data:
      entity_id: media_player.livingdisplay
      message: >-
        OK. They were Fed {{ states("sensor.days_last_feed") }} and its
        temperature is {{states("sensor.feeder_ds18b20_temperature")}}..
  - data:
      entity_id: switch.feeder
    service: switch.toggle
  - service: input_datetime.set_datetime
    data_template:
      entity_id: input_datetime.fish_feed
      datetime: "{{ now() }}"
  - delay: "00:00:20"
  - service: cast.show_lovelace_view
    data:
      entity_id: media_player.livingdisplay
      view_path: fish

on my google display I cast the fish screen

when LED turn off

here is the card

type: picture-elements
entity: switch.fish_tank_led
image: local/images/Fishtank.jpg
tap_action:
  action: toggle
elements:
  - type: state-label
    prefix: 'Last Feed : '
    entity: sensor.days_last_feed
    style:
      color: white
      left: 50%
      top: 5%
      background-color: rgba(0, 0, 0, .50)
  - type: state-label
    prefix: 'Currenty: '
    entity: sensor.feeder_ds18b20_temperature
    style:
      color: white
      left: 50%
      top: 50%
      background-color: rgba(0, 0, 0, .50)
  - type: state-label
    prefix: 'Max: '
    entity: sensor.feeder_ds18b20_temperature_max
    style:
      color: red
      left: 50%
      top: 25%
      background-color: rgba(0, 0, 0, .50)
  - type: state-label
    prefix: 'min: '
    entity: sensor.feeder_ds18b20_temperature_min
    style:
      color: yellow
      left: 50%
      top: 75%
      background-color: rgba(0, 0, 0, .50)
  - type: state-badge
    entity: sensor.feeder
    name: feeds
    style:
      color: yellow
      left: 80%
      top: 50%
  - type: state-label
    prefix: ''
    entity: sensor.feeder_ds18b20_temperature
    style:
      color: white
      left: 09%
      top: 24%
      background-color: rgba(255, 255, 255, .0)
2 Likes