Home Assistant Automation - Help :)

I think I got it right this morning (was testing and looks like it was working :slight_smile: )

- id: '1626842943289'
  alias: Pull Pump ON by the SoC
  description: This automation turns the Pool Pump On based on Victron Battery SoC
  trigger:
  - platform: state
    entity_id: sensor.battery_soc
  condition:
  - condition: numeric_state
    entity_id: sensor.battery_soc
    above: '85'
  - condition: sun
    before: sunset
    after: sunrise
  action:
  - service: switch.turn_on
    entity_id: switch.sonoff_1000d90a15
  mode: single
- id: '1626843326842'
  alias: Pool Pump OFF by the SOC
  description: This automation turns the Pool Pump Off based on Victron Battery SoC
  trigger:
  - platform: state
    entity_id: sensor.battery_soc
  condition:
  - condition: numeric_state
    entity_id: sensor.battery_soc
    below: '99'
  - condition: sun
    before: sunset
    after: sunrise
  action:
  - service: switch.turn_off
    entity_id: switch.sonoff_1000d90a15
  mode: single

I generated this using Automation under Configuration and also code editor

I have now learned where to check entities and actions, so it was a nice school :smiley:

Good! Glad it is working and hope that we at least pointed you in the right direction.

Maybe a tip from my side would be to add your automation to the HA GUI. Then you can turn it off when you don’t want it to interfere. It will appear like a switch that you can toggle.

Your next lesson should be to setup the Telegram integration, then you can get an alert on your phone when the automation triggers.

Very handy.

@Bobby have you checked that both automations dont fire at the same time?
It seems like you are creating a condition where they should, as when SOC is between 85 and 99, you are turning it on and off?

1 Like

I guess due to this I find SoC not the most useful indicator to use when wanting to determine my electricity usage. A much more important factor is the current PV production, or product potential. SoC will be a fall back indicator should I really want to run my pump, but there just isn’t any PV available.

Hmm, your logic is sound…I clearly wasn’t thinking straight

I changed to:

- id: '1626842943289'
  alias: Pull Pump ON by the SoC
  description: This automation turns the Pool Pump On based on Victron Battery SoC
  trigger:
  - platform: state
    entity_id: sensor.battery_soc
  condition:
  - condition: numeric_state
    entity_id: sensor.battery_soc
    above: '98'
  - condition: sun
    before: sunset
    after: sunrise
  action:
  - service: switch.turn_on
    entity_id: switch.sonoff_1000d90a15
  mode: single
- id: '1626843326842'
  alias: Pool Pump OFF by the SOC
  description: This automation turns the Pool Pump Off based on Victron Battery SoC
  trigger:
  - platform: state
    entity_id: sensor.battery_soc
  condition:
  - condition: numeric_state
    entity_id: sensor.battery_soc
    below: '98'
  - condition: sun
    before: sunset
    after: sunrise
  action:
  - service: switch.turn_off
    entity_id: switch.sonoff_1000d90a15
  mode: single

Next is Telegram and notifications :slight_smile:
Even an email would work as I have emails to push notification service that I use for various things.

I found my ISP was blocking emails after a while as my IP appeared to be spamming.

Telegram has worked flawlessly though.

I configured now the SMTP notifier (SMTP - Home Assistant)

I use google, so I created a app. specific password.
I use this to send emails from various systems, e.g. paradox alarm, victron, etc…all the emails I send to email to push notification service.
So far, not blocked :slight_smile: hope to stay that way

I’ll advise if it works well :smiley:

Done and working well :slight_smile:
Pool Pump turned on when SoC was 99% (cause 99 is above 98).
Next (silly) question, how can I set a precise value?
I wanted to be on when its exactly 98% and off when its 99%?

Notifications work well also

This is from configuration.yaml

# Email Notifications
notify:
  - name: "Home Assistant"
    platform: smtp
    server: "smtp.gmail.com"
    port: 587
    timeout: 15
    encryption: starttls
    username: "user@gmail.com"
    password: "passwordhere"
    sender: "homeassistant@domain.com"
    sender_name: "Home Assistant"
    recipient: "recepient@domain.com"

and then in automation.yaml under action:

  - service: notify.home_assistant
    data:
      message: Pool Pump is OFF
      title: Home Assistant

EDIT:
Regarding the exact numeric values
Instead of numeric_state, I used state
We’ll see if it works.

@Bobby I would just adjust your numeric state by a factor of 1. ie look at 97 and not 98.
I say this because using state for numeric values could cause a scenario where the state never happens.
In the case of something like battery SOC, depending on your capacity and loads, if you were to suddenly have high demand, SOC could drop more than a factor of 1. Ie from 100 to 97, as it never reported the 98, your automation wont fire, because in theory, it never happened.

Can I maybe use less then 100 for the Switch OFF automation?
So as soon as its less then 100, it will turn off

Basically, my intention is to run the pool pump as soon as the battery is full as when not running, I am getting just over 1kw for the charge.

EDIT:
I did see my SoC dropping to 99% now as the washing is on and toaster is on and a few other things that brought the SoC down, so I will adjust the values to as you said, 97 :slight_smile:

If you want it that sensitive

Turn on above 99
Turn off below 100

Should do the trick

No, you are correct about the sensitivity of it, I just had 99% for a brief minute and it went off and then on when charged back to 100%.

- id: '1626842943289'
  alias: Pull Pump ON by the SoC
  description: This automation turns the Pool Pump On based on Victron Battery SoC
  trigger:
  - platform: state
    entity_id: sensor.battery_soc
  condition:
  - condition: state
    entity_id: sensor.battery_soc
    state: '100'
  - condition: sun
    before: sunset
    after: sunrise
  action:
  - service: switch.turn_on
    entity_id: switch.sonoff_1000d90a15
  - service: notify.home_assistant
    data:
      message: Pool Pump is ON
      title: Home Assistant
  mode: single
- id: '1626843326842'
  alias: Pool Pump OFF by the SOC
  description: This automation turns the Pool Pump Off based on Victron Battery SoC
  trigger:
  - platform: state
    entity_id: sensor.battery_soc
  condition:
  - condition: numeric_state
    entity_id: sensor.battery_soc
    below: '97'
  - condition: sun
    before: sunset
    after: sunrise
  action:
  - service: switch.turn_off
    entity_id: switch.sonoff_1000d90a15
  - service: notify.home_assistant
    data:
      message: Pool Pump is OFF
      title: Home Assistant
  mode: single

How does this look, it it better to avoid accidental off/on states?

That should turn the pump on when state reaches 100 exact and turn off iv it ever dips below 97. gives you roughly a 4% margin, as it will only turn off at 96.

Ok and another question :expressionless:
is there a way to add “if below 97” for 60 seconds?
or if 100% for 120 seconds?

Yes, it’s a state condition. More info on this page - example at the bottom

@Bobby like old Cleggie says, however it does not apply to numeric_state, now if you wanted something like this, there are various workarounds. A simple version of this would be to create a template sensor that turns on when its below 96 and off when is above, and then you can check if that sensors state has been on for x amount of time.

An alternative would be to use nodered for complex automations.