PV / Solar Excess Optimizer: Auto-control appliances (wallbox, dish washer, heatpump, ...) based on excess solar power

Observed an issue overnight with the automation which is set to govern the use of our immersion heater.

The automation works well in the day, in that it activates the immersion during excess solar. However, I have an ‘off peak’ automation set to run during the night which also activates the immersion (if required) to take advantage of the low electricity rates.

I can see that HA did activate the immersion overnight, but this automation then immediately turned it off… Is there any way I can work around this?

Thanks

Awesome automation.

I have a problem though. I have set my pool pump to turn on for an hour but I have run-once enabled so it only runs once a day, but it still runs multiple times a day:

What am I missing?

Following up from my post above. I have managed to find a work around, where if a change was made to the existing automation when its saved and run it kills the pyscript from running. It’s taken a while of persisting with this, and I’m sure over a 100 restarts of HA and full reboots with the same amounts of deleting and redoing all the automations.

The very first time you setup an automation, you carry out the OP instructions, you will see the pyscript running every 10 seconds or there abouts. Now here is where it went pear shape, if I need to make a small tweek to one of the automations, make the change, save and run the script, it kills the pyscript from running, even leaving it overnight when the cron runs it still would fail to run. The only way to make it all run is delete all the automations, restart HA and start again.

So the simplest way to make a change to the automation is as follows.

  1. Open the automation.
  2. Click on the 3 dots on the top right.
  3. From the pop up menu “disable” the automation
  4. Make the changes you need.
  5. Hit the “Save” blue button at the bottom right of the page.
  6. Follow step 1 & 2 above
  7. From the pop up menu “Enable” the automation
  8. Dont hit the “Run” button As this will kill pyscript from running.
  9. From the left of the menu bar select “Logbook” you will see that the automation was turned off and turned on and pyscript is happy and running.

Hope this helps all who are having this issue. Just for clarity here is my HA details

Home Assistant 2023.5.4
Supervisor 2023.04.1
Operating System 10.2
Frontend 20230503.3 - latest

Update 15/06/2023
I have just found that whilst this work around does not kill the running pyscript, it accepts the changes in the blueprint but this does not write the changes to pyscript module. So this is what I do now to make changes to an automation.

Disabling/Enabling you blueprint automation works fine. I only find and a few others that making any changes to the blueprint once its running kills pyscript. I now opt to disable the automation, delete it and redo it with the settings I want, save, run the automation and then enable it. Works well for the moment.

Nick,

Not sure why your setup is doing this as I have a couple of automations setup in PV / Solar Excess Optimiser and the same ones setup to run at night when the electricity rates are offpeak they run perfect.

See if there is anything in the logs and manually run the automation and see what happens.

Good Luck

I get it Working by changing the value_template for my wallbox_switch from

value_template: "{{ is_state('sensor.wall_e_status', 'charging') }}"

to

value_template: "{{ states('sensor.wall_e_status') in ['charging', 'awaiting_start'] }}"

The Easee Wallbox goes into state ‘awaiting_start’ while it is doing some load balancing on the 3 phases or while it is waiting for the car.

Can someone help me in understanding what exactly is meant with “Load Power” in the blueprint?
My panels are generating DC into my inverter which sends current to the battery (if the battery is not already fully charged) and converts DC to AC to send it into my “house”.

Is “Load Power” meant as the full load including battery charge (which comes from the panels) and house consumption or is load power meant be to house consumption without the load that goes into the battery?

My battery is only charged using DC from the panels. There will be no charge from the AC side

Hi markusmazurczak,

So my understanding I’ll break this down.

  1. Load Power would be the actual house load.
  2. If you specify the Load Power then you have to also specify the Export Power. (Which is Power you push back to the grid)
  3. If you specify a battery then all your solar would charge the batteries at the maximum setting as well as supplying the Load Power in priority order.
  4. Once your battery if fully charged to the percentage you set it to, power will be then set to the load in priority order and if there is no load (nothing is used in the house) then power will be sent to the grid.

Just a side note, you have a hybrid inverter? if so then the above applies. Batteries are not taken as part of the load. Now if you have a offgrid inverter then the load power includes the battery.

Have a look at what Henrik explains about load power.

Hope this help…

Are you seeing:

file_pv_excess_control_on_time has been triggered by time 2023-06-12T20:14:53.474468 in your log file every 10 seconds or so?

Yes if it running you will see it every 10 seconds

Henrik

I’m new to both solar and home Assistant, so excuse the basic questions.

I have installed your automation and it does seem to be running (every 10 seconds i see it trigger in the logger) however even if I’m exporting 3KW i don’t see the appliance turn on. Is there a way to see what the code is pulling from the sensors, to help debug the system. also i was not sure where and how i enable the logger (which configuration.yaml file do add the statement to) and where will i see the output?

Thanks Spence…

Nick,

Just a thought that struck me…

Are you using the same Automation Entity ID

*PV Excess Optimiser
&
*Off peak heater automation?

Hi Spencer,

I will try my best to assist with your question being a user myself and very happy with the way this is working, till we hear back from Henrik (as he has indicated that he is very busy to me)

  1. This is correct as if you looked in logbook you will notice that it runs every 10 seconds.
  2. Could you please provide what system you have Hybrid or Grid tied? recheck your configurations if possible.
  3. Are there in errors in your full log Settings > System > Logs?
  4. Add this at the bottom of your /config/configuration.yaml file.
pyscript:
  allow_all_imports: true
  hass_is_global: true
  
  logger:
  default: info
  logs:
    custom_components.pyscript.file.pv_excess_control: debug

If everything is configured correctly and running then you will see something like below in your logbook

When pyscript triggers the appliance to control (on)

When pyscript triggers the appliance to control (off)

Thanks for the info

I’ve enabled logging but still don’t see much. its a hybrid growatt inverter with 6.5Kwh battery. I do see this in the system logThis error originated from a custom integration.

Logger: custom_components.pyscript.file.pv_excess_control.on_time
Source: custom_components/pyscript/eval.py:1901
Integration: Pyscript Python scripting (documentation, issues)
First occurred: 9:16:50 AM (39 occurrences)
Last logged: 9:22:30 AM

“Import/Export power” has been defined together with “Home Battery”. This is not intended and will lead to always giving the home battery priority over appliances, regardless of the specified min. battery level.
num=unavailable is not a valid number between 0 and 1000000: could not convert string to float: ‘unavailable’
Could not update Export/PV history!: int() argument must be a string, a bytes-like object or a real number, not ‘NoneType’

but not too sure what i need to change i have looked at the automation and removed the import/export entity from the list however still seeing the error.

Spence

Thank for the information.

  1. So this says that you have defined Import/Export power. (In a hybrid inverter you dont use this entry)
  2. As this is a Hybrid inverter what it does is give priority to charging the battery to 100%, so maximum solar is diverted to charging the battery once this is accomplished it will then divert the generating solar energy to fire up your next appliance in line.

What I can suggest to you is to delete this automation and start from scratch, restart HA as well. Dont worry once you do this pyscript will stop running every 10 seconds.

Only fill up these entries as you have a hybrid inverter with a battery.

Automation Entity ID
Appliance priority:
Mains Voltage:
PV Power:
Export Power:
Load Power:
Home battery level:
Minimum home battery level (end of day):
Home battery capacity:
Remaining solar production forecast (Solcast):
Appliance Entity:
Appliance On/Off switch interval:
Appliance actual power sensor:

Optional Settings:
Only-On-Appliance:
Dynamic current control:
Appliance SetCurrent entity:
Minimum dynamic current:

Once you have filled everything hit the save button and give the automation the same name as the (Automation Entity ID). then select the run button once, when you go into logbook you will see pyscript running every 10 seconds and when it triggers the automation you will see that too like my screen shots above

If you now read the descriptions for each field it will help you better understand, also if you follow my posts above as well.

Good Luck

Once again please go in and check the logs you will not see any error’

QQ - how do i find the entity ID, when i tried to find it when i set up the automation i tried to flow the guide by clicking info but the info button was grayed out

I’m quite not getting what you are asking here…

I am assuming you want to find the automation entity ID?

Settings > Devices & Services > Entities > in the search type > automation. name of your entity ID you created.

Its the automation entity ID, do i just give it a new name or does its need to be something specific.

new name as its a new automation?

Its good to give it a unique name. if you look at my examples in my posts above.

I needed to create an automation for my hot water service to be given priority when solar is available so I gave it the name:

Automation Entity ID: hot_water_solar

See this post too…