-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Setting ups for Solis Cloud #283
Comments
Hi, thanks for the log excerpt. Could you attach the full log file please? (pv_opt.log). On startup Pv_opt will log all entities with "solis" in the name so it then will be possible to work out which entity in the Solis Cloud integration reports solar output. Its a sensor in W that reports Solar (noting mine was particularly poor today!) If you can find the name of the entity then you can add it to config.yaml as a map entry which will solve the issue. |
Many thanks. Could that be sensor.solis_ac_output_total_power (power)? I've attached the log, although I can't see anything else there. |
Actually using that mapping seems to solve that problem and I can regenerate the PV_opt dashboard. I'm now getting other errors on the consumption data - new pv_opt.log attached I'm thinking that the consumption sensor is solis_daily_grid_energy_purchased |
I think you are right. In the SOLIS_SOLAX_MODBUS area of config.yaml uncomment the On the line below, check that any entries for By way of explanation, Pv_opt can either use an incrementing kWh sensor or a live W sensor to work out consumption, but increasingly reading the live W sensor with 7 days history is a very large file and can cause issues for some systems. |
Worth also noting that using the instantaneous power rather than the integrated energy is potentially less accurate. My preference is always to use energy where available. Even better would be to down-sample it to 30 minutes using a jinja template in Home Assistant first
…On 9 Nov 2024 at 20:19 +0000, stevebuk1 ***@***.***>, wrote:
> I'm thinking that the consumption sensor is solis_daily_grid_energy_purchased
I think you are right. In the SOLIS_SOLAX_MODBUS area of config.yaml uncomment id_consumption_today and set it to sensor.{device_name}__daily_grid_energy_purchased
On the line below, check that any entries for id_consumption are commented out.
By way of explanation, Pv_opt can either use an incrementing kWh sensor or a live W sensor to work out consumption, but increasingly reading the live W sensor with 7 days history is a very large file and can cause issues for some systems.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
@CraigCallender would you mind uploading your config.yaml to this thread so we can see what sensors you've mapped to what on your system? |
I use energy on my system but it was more accident that deliberate. From memory it was because the default config.yaml was setup that way, but certainly for the Solax integration users the current config.yaml on main does not suggest using energy in preference to power, and I note if both entities exist and are correct then power will be used in preference to energy. I've corrected this in Dev.
|
Hoping to temporarily swap my system over to using this rather than the Solax integration from this evening so should be able to better support it. @stevebuk1 @CraigCallender - I'll create a new branch |
Hey @stevebuk1 and @fboundy - Here's my config.yaml for all the mapping: # Internal configuration --- DO NOT EDIT ---
pvpy:
module: pvpy
global: true
solis:
module: solis
global: true
inverters:
module: inverters
global: true
pv_opt:
module: pv_opt
class: PVOpt
dependencies:
- pvpy
- solis
log: pv_opt_log
prefix: pvopt
debug: false
# User configuration --- EDIT AWAY! ---
# ========================================
# System parameters
# ========================================
# If true the current config in HA will be over-written with that in the config.yaml.
overwrite_ha_on_restart: true
list_entities: true
# If true the personal data will be redacted from the log files.
# redact_personal_data_from_log: false
#=======================================
#Logging Category Control
#=======================================
#Defines Logging subjects to add to logfile
#If commented out, everything is logged
#Ignored if "debug" is set to False above
#
# S = Startup/Initialisation Logging
# T = Tariff loading Logging
# P = Power consumption history Logging
# C = Charge algorithm Logging
# D = Discharge algorithm Logging
# W = Charge/Discharge Windows Logging
# F = Power Flows Logging
# V = Power Flows debugging (extra verbose)
# I = inverter control/commands Logging
# E = EV debugging
# Letters can be added to "debug_categories" in any order
debug_categories: W
# ========================================
# Basic parameters
# ========================================
read_only: true # If true the inverter will not be controlled
forced_discharge: false # Enable forced discharging
allow_cyclic: false # Enable alternate charge/discharge windows
optimise_frequency_minutes: 5
pass_threshold_p: 2.0
discharge_threshold_p: 0.4
# ========================================
# Plant parameters
# ========================================
# All parameters can be a number or point to an entity UNLESS they start with 'id_'. All of
# these are required but will be defaulted if not specified
battery_capacity_wh: 3650
inverter_efficiency_percent: 97 # Default: 97
charger_efficiency_percent: 95 # Default: 91
maximum_dod_percent: 15
charger_power_watts: 1875
inverter_power_watts: 3600
# inverter_loss_watts: 100
battery_current_limit_amps: 37
# ========================================
# Solcast configuration
# ========================================
use_solar: true
#
# id_solcast_today: sensor.solcast_pv_forecast_forecast_today
# id_solcast_tomorrow: sensor.solcast_pv_forecast_forecast_tomorrow
# solar_confidence_level: 50
# ========================================
# Consumption forecast parameters
# ========================================
#
use_consumption_history: true
consumption_history_days: 14
consumption_margin: 25
day_of_week_weighting: 0.0
#
daily_consumption_kwh: 10
shape_consumption_profile: false
consumption_shape:
- hour: 0
consumption: 300
- hour: 0.5
consumption: 200
- hour: 6
consumption: 150
- hour: 8
consumption: 500
- hour: 15.5
consumption: 500
- hour: 17
consumption: 750
- hour: 22
consumption: 750
- hour: 24
consumption: 300
# ========================================
# Octopus account parameters
# ========================================
octopus_auto: true # Read tariffs from the Octopus Energy integration. If successful this over-rides the following parameters
# octopus_account: !secret octopus_account
# octopus_api_key: !secret octopus_api_key
# The following Can be omitted if either of the above options is working correctly:
# octopus_import_tariff_code: E-2R-VAR-22-11-01-G
# octopus_export_tariff_code: E-1R-AGILE-OUTGOING-19-05-13-G
# octopus_import_tariff_code: E-1R-AGILE-23-12-06-G
# # octopus_export_tariff_code: E-1R-OUTGOING-LITE-FIX-12M-23-09-12-G
# octopus_export_tariff_code: E-1R-OUTGOING-FIX-12M-19-05-13-G
# octopus_import_tariff_code: E-1R-FLUX-IMPORT-23-02-14-G
# octopus_export_tariff_code: E-1R-FLUX-EXPORT-23-02-14-G
# octopus_import_tariff_code: E-1R-GO-VAR-22-10-14-N
# octopus_export_tariff_code: E-1R-OUTGOING-LITE-FIX-12M-23-09-12-N
# ========================================
# EV parameters
# ========================================
#
# If you have a Zappi Charger, uncomment next line to allow Pv_opt to detect car plugin status
# for use with the Octopus Intelligent Tariff and to allow EV consumption data to be read (if needed).
#
# ev_charger: Zappi # Default = None
#
# By default, Zappi is set to seen as part of the house load to prevent house battery discharge during car charging and allow discounting of EV consumption
# from house charging calculations.
#
# If your Zappi is not seen as part of the house load, uncomment next line to set to False.
#
# ev_part_of_house_load = False # Default = True
# ===============================================================================================================
# Brand / Integration Specific Config: SOLIS_SOLAX_MODBUS: https://github.com/wills106/homeassistant-solax-modbus
# ===============================================================================================================
#
# These are the default entities used with the Solis Solax Modbus integration. You can change them here and over-ride the defaults
# inverter_type: SOLIS_SOLAX_MODBUS
# device_name: solis
battery_voltage: sensor.{device_name}_battery_voltage
# update_cycle_seconds: 15
# maximum_dod_percent: number.{device_name}_battery_minimum_soc
id_consumption_today: sensor.{device_name}_daily_grid_energy_used
id_consumption:
- sensor.{device_name}_total_consumption_power
- sensor.{device_name}_backup_load_power
id_grid_import_today: sensor.{device_name}_daily_grid_energy_purchased
id_grid_export_today: sensor.{device_name}_daily_on_grid_energy
id_battery_soc: sensor.{device_name}_remaining_battery_capacity
# id_timed_charge_start_hours: number.{device_name}_timed_charge_start_hours
# id_timed_charge_start_minutes: number.{device_name}_timed_charge_start_minutes
# id_timed_charge_end_hours: number.{device_name}_timed_charge_end_hours
# id_timed_charge_end_minutes: number.{device_name}_timed_charge_end_minutes
# id_timed_charge_current: number.{device_name}_timed_charge_current
# id_timed_discharge_start_hours: number.{device_name}_timed_discharge_start_hours
# id_timed_discharge_start_minutes: number.{device_name}_timed_discharge_start_minutes
# id_timed_discharge_end_hours: number.{device_name}_timed_discharge_end_hours
# id_timed_discharge_end_minutes: number.{device_name}_timed_discharge_end_minutes
# id_timed_discharge_current: number.{device_name}_timed_discharge_current
# id_timed_charge_discharge_button: button.{device_name}_update_charge_discharge_times
# id_inverter_mode: select.{device_name}_energy_storage_control_switch
# ==============================================================================================================
# Brand / Integration Specific Config: SOLIS_CORE_MODBUS: https://github.com/fboundy/ha_solis_modbus
# ==============================================================================================================
#
# These are the default entities used with the Solis Core Modbus integration. You can change them here and over-ride the defaults
# inverter_type: SOLIS_CORE_MODBUS
# device_name: solis
# modbus_hub: "{device_name}"
# modbus_slave: 1
# battery_voltage: sensor.{device_name}_battery_voltage
# maximum_dod_percent: sensor.{device_name}_overdischarge_soc
# update_cycle_seconds: 60
# id_consumption_today: sensor.{device_name}_daily_consumption
# id_consumption:
# - sensor.{device_name}_house_load_power
# - sensor.{device_name}_backup_load_power
# id_grid_power: sensor.{device_name}_grid_active_power
# id_inverter_ac_power: sensor.{device_name}_inverter_ac_power
# id_battery_soc: sensor.{device_name}_battery_soc
# id_timed_charge_start_hours: sensor.{device_name}_timed_charge_start_hour
# id_timed_charge_start_minutes: sensor.{device_name}_timed_charge_start_minute
# id_timed_charge_end_hours: sensor.{device_name}_timed_charge_end_hour
# id_timed_charge_end_minutes: sensor.{device_name}_timed_charge_end_minute
# id_timed_charge_current: sensor.{device_name}_timed_charge_current_limit
# id_timed_discharge_start_hours: sensor.{device_name}_timed_discharge_start_hour
# id_timed_discharge_start_minutes: sensor.{device_name}_timed_discharge_start_minute
# id_timed_discharge_end_hours: sensor.{device_name}_timed_discharge_end_hour
# id_timed_discharge_end_minutes: sensor.{device_name}_timed_discharge_end_minute
# id_timed_discharge_current: sensor.{device_name}_timed_discharge_current_limit
# id_inverter_mode: sensor.{device_name}_energy_storage_control_switch
# ==============================================================================================================
# Brand / Integration Specific Config: SOLIS_SOLARMAN: https://github.com/StephanJoubert/home_assistant_solarman
# ==============================================================================================================
#
# These are the default entities used with the Solis Solarman integration. You can change them here and over-ride the defaults
# inverter_type: SOLIS_SOLARMAN
# device_name: solis
# battery_voltage: sensor.{device_name}_battery_voltage
# maximum_dod_percent: 15
# update_cycle_seconds: 60
# id_consumption_today: sensor.{device_name}_daily_house_backup_consumption
# id_grid_power: sensor.{device_name}_meter_active_power
# id_inverter_ac_power": sensor.{device_name}_inverter_ac_power
# id_battery_soc: sensor.{device_name}_battery_soc
# id_backup_mode_soc:
# id_timed_charge_start_hours: sensor.{device_name}_timed_charge_start_hour
# id_timed_charge_start_minutes: sensor.{device_name}_timed_charge_start_minute
# id_timed_charge_end_hours: sensor.{device_name}_timed_charge_end_hour
# id_timed_charge_end_minutes: sensor.{device_name}_timed_charge_end_minute
# id_timed_charge_current: sensor.{device_name}_timed_charge_current
# id_timed_discharge_start_hours: sensor.{device_name}_timed_discharge_start_hour
# id_timed_discharge_start_minutes: sensor.{device_name}_timed_discharge_start_minute
# id_timed_discharge_end_hours: sensor.{device_name}_timed_discharge_end_hour
# id_timed_discharge_end_minutes: sensor.{device_name}_timed_discharge_end_minute
# id_timed_discharge_current: sensor.{device_name}_timed_discharge_current
# id_inverter_mode: sensor.{device_name}_storage_control_mode
# ===============================================================================================================
# Brand / Integration Specific Config: SUNSYNK_SOLARSYNK2:
# ===============================================================================================================
#
#
# These are the default entities used with the Sunsynk Solarsynk2 integration. You can change them here and over-ride the defaults
# inverter_type: SUNSYNK_SOLARSYNK2
# device_name: solarsynk
# inverter_sn: 000000 # enter {sunsynk_serial} from solarsynk2 addon
# maximum_dod_percent: 10
# id_battery_soc: sensor.{device_name}_{inverter_sn}_battery_soc
# id_consumption_today: sensor.{device_name}_{inverter_sn}_day_load_energy
# id_grid_import_today: sensor.{device_name}_{inverter_sn}_day_grid_import
# id_grid_export_today: sensor.{device_name}_{inverter_sn}_day_grid_export
# supports_hold_soc: false
# update_cycle_seconds: 300
# Tariff comparison
# id_daily_solar: sensor.{device_name}_power_generation_today
id_solar_power:
- sensor.{device_name}_dc_power_pv1
- sensor.{device_name}_dc_power_pv2
# id_solar_power: sensor.{device_name}_dc_power_combined
alt_tariffs:
- name: Agile_Fix
octopus_import_tariff_code: E-1R-AGILE-23-12-06-G
octopus_export_tariff_code: E-1R-OUTGOING-FIX-12M-19-05-13-G
# - name: Eco7_Fix
# octopus_import_tariff_code: E-2R-VAR-22-11-01-G
# octopus_export_tariff_code: E-1R-OUTGOING-FIX-12M-19-05-13-G
# - name: Flux
# octopus_import_tariff_code: E-1R-FLUX-IMPORT-23-02-14-G
# octopus_export_tariff_code: E-1R-FLUX-EXPORT-23-02-14-G |
Ok. Was about to do the same. I think this needs a separate inverter
default as the entity names don't match the other integration options.
…On Tue, 12 Nov 2024, 13:16 fboundy, ***@***.***> wrote:
Hoping to temporarily swap my system over to using this rather than the
Solax integration from this evening so should be able to better support it.
@stevebuk1 <https://github.com/stevebuk1> @CraigCallender
<https://github.com/CraigCallender> - I'll create a new branch solis-cloud
—
Reply to this email directly, view it on GitHub
<#283 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ASVRJMFUDMY2ZUAVDA5PEFD2AH5R7AVCNFSM6AAAAABRLWZHWCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZQGUYDINJSGU>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Leave this one with me for now. May not get to it this evening but I should have time over the next couple of days. |
Ok will do!
…On Tue, 12 Nov 2024, 16:50 fboundy, ***@***.***> wrote:
Leave this one with me for now. May not get to it this evening but I
should have time over the next couple of days.
—
Reply to this email directly, view it on GitHub
<#283 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ASVRJMGOOYSMRSZEM7P3VBD2AIWWLAVCNFSM6AAAAABRLWZHWCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZRGA2TMOBWGY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Thanks @CraigCallender, the config.yaml is really helpful. I've got this running now, and briefly had the dashboard working with a couple of cards absent, but the addition of the octopus rates card seems to kill the visualisation. Hopefully I can sort that soon |
This is very interesting! I've dug a bit into SolisControl and I am able to move its functionality into PV_Opt. I'm also updating the What I'd really like to do is put this functionality into the SolisCloud integration but I'm not sure my coding is up to it. I might have a go on a fork of it when I'm done with this. |
@fboundy I just tried 3.18 and one change I had to make to the |
Yes that’s right - good catch
…On 15 Nov 2024 at 09:05 +0000, Craig Callender ***@***.***>, wrote:
@fboundy I just tried 3.18 and one change I had to make to the config.yaml (newly downloaded from the repo) was on line 322 the device_name was set to soliscloud. I think this was so you could test the solis-sensor integration alongside your normal integration? But the default sensor names when installing solis-sensor is just solis, so all the mappings were broken.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
An update on this - having had my firmware updated to 4B00 it all changes! So I've removed this functionality for now until I can get things working again. |
I don’t have the new firmware on my inverter, but if someone could set their values via the Control Inverter section of the web interface with Chrome’s developer console open, you can capture the JSON sent. If you give me that, I can update my fork of solis_control. |
I’ve got a Python script that runs independently to HA so easy enough to test. I’ve raised an issue on soliscontrol too so will update that with what I find.
Now need to find the Modbus register details too…
…On 19 Nov 2024 at 18:34 +0000, Craig Callender ***@***.***>, wrote:
I don’t have the new firmware on my inverter, but if someone could set their values via the Control Inverter section of the web interface with Chrome’s developer console open, you can capture the JSON sent. If you give me that, I can update my fork of solis_control.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Hi
I'm excited to see the new code merged for Solis Cloud as this should fit with my aims for my system. I'm trying to set up PV_opt for Solis Cloud based on the documentation but so far both PV_opt and Use PV_opt are giving me errors. I wonder if you can point me in the right direction (I'm a relative novice with scripting in HA).
This is the log for PV_opt:
15:50:59 ERROR: id_solar_power : Neither the entities listed in the YAML sensor.solis_pv_total_power nor the system default of None exist in HA.
15:50:59 INFO: >>> id_solar_power sensor.solis_pv_total_power False
15:50:59 INFO: >>> Test: True
15:50:59 INFO: battery_current_limit_amps = 50 50: value in YAML
15:50:59 INFO: inverter_power_watts = 3000 3000: value in YAML
15:50:59 INFO: charger_power_watts = 3000 3000: value in YAML
15:50:59 INFO: maximum_dod_percent = 20 20: value in YAML
15:50:59 INFO: battery_capacity_wh = 96000 96000: value in YAML
15:50:59 INFO: allow_cyclic = False False: value in YAML
15:50:59 INFO: forced_discharge = False False: value in YAML
15:50:59 INFO: read_only = True True: value in YAML
15:50:59 INFO: debug_categories = W W: value in YAML
15:50:59 INFO: -----------------------------------
15:50:59 INFO: Reading arguments from YAML:
15:50:59 INFO:
15:50:59 INFO: sensor.solis_meter_item_c_volt (voltage): 0.0 V
15:50:59 INFO: sensor.solis_meter_item_c_current (current): 0.0 A
15:50:59 INFO: sensor.solis_meter_item_b_volt (voltage): 0.0 V
15:50:59 INFO: sensor.solis_meter_item_b_current (current): 0.0 A
15:50:59 INFO: sensor.solis_meter_item_a_volt (voltage): 239.5 V
15:50:59 INFO: sensor.solis_meter_item_a_current (current): 0.0 A
15:50:59 INFO: sensor.solis_backup_load_power (power): 0.0 W
15:50:59 INFO: sensor.solis_force_discharge_soc (battery): 20.0 %
15:50:59 INFO: sensor.solis_force_charge_soc (battery): 18.0 %
15:50:59 INFO: sensor.solis_battery_state_of_health (battery): 98.0 %
15:50:59 INFO: sensor.solis_plant_total_consumption_power (power): 443.0 W
15:50:59 INFO: sensor.solis_grid_phase3_reactive_power (None): 0.0 var
15:50:59 INFO: sensor.solis_grid_phase2_reactive_power (None): 0.0 var
15:50:59 INFO: sensor.solis_grid_phase1_reactive_power (None): 0.0 var
15:50:59 INFO: sensor.solis_grid_phase3_apparent_power (None): 0.0 VA
15:50:59 INFO: sensor.solis_grid_phase2_apparent_power (None): 0.0 VA
15:50:59 INFO: sensor.solis_grid_phase1_apparent_power (None): 0.0 VA
15:50:59 INFO: sensor.solis_grid_phase3_power (power): 0.0 W
15:50:59 INFO: sensor.solis_grid_phase2_power (power): 0.0 W
15:50:59 INFO: sensor.solis_grid_phase1_power (power): 0.0 W
15:50:59 INFO: sensor.solis_total_energy_used (energy): 3776.0 kWh
15:50:59 INFO: sensor.solis_total_energy_purchased (energy): 11513.0 kWh
15:50:59 INFO: sensor.solis_total_consumption_power (power): 415.0 W
15:50:59 INFO: sensor.solis_power_grid_total_power (power): -459.0 W
15:50:59 INFO: sensor.solis_total_on_grid_energy (energy): 670.8 kWh
15:50:59 INFO: sensor.solis_yearly_on_grid_energy (energy): 75.8 kWh
15:50:59 INFO: sensor.solis_yearly_grid_energy_purchased (energy): 3753.0 kWh
15:50:59 INFO: sensor.solis_monthly_on_grid_energy (energy): 0.0 kWh
15:50:59 INFO: sensor.solis_monthly_grid_energy_purchased (energy): 137.64 kWh
15:50:59 INFO: sensor.solis_daily_grid_energy_used (energy): 13.2 kWh
15:50:59 INFO: sensor.solis_daily_grid_energy_purchased (energy): 13.2 kWh
15:50:59 INFO: sensor.solis_daily_on_grid_energy (energy): 0.0 kWh
15:50:59 INFO: sensor.solis_daily_energy_discharged (energy): 7.0 kWh
15:50:59 INFO: sensor.solis_daily_energy_charged (energy): 7.0 kWh
15:50:59 INFO: sensor.solis_total_energy_discharged (energy): 3459.0 kWh
15:50:59 INFO: sensor.solis_total_energy_charged (energy): 4692.0 kWh
15:50:59 INFO: sensor.solis_remaining_battery_capacity (battery): 20.0 %
15:50:59 INFO: sensor.solis_battery_current (current): 0.0 A
15:50:59 INFO: sensor.solis_battery_voltage (voltage): 48.6 V
15:50:59 INFO: sensor.solis_battery_power (power): 0.0 W
15:50:59 INFO: sensor.solis_energy_total (energy): 1.0 kWh
15:50:59 INFO: sensor.solis_energy_this_year (energy): 1.0 kWh
15:50:59 INFO: sensor.solis_energy_this_month (energy): 0.0 kWh
15:50:59 INFO: sensor.solis_energy_today (energy): unknown kWh
15:50:59 INFO: sensor.solis_ac_frequency (None): 49.85 Hz
15:50:59 INFO: sensor.solis_ac_output_total_power (power): 0.0 W
15:50:59 INFO: sensor.solis_ac_current_r (current): 1.0 A
15:50:59 INFO: sensor.solis_ac_voltage_r (voltage): 237.9 V
15:50:59 INFO: sensor.solis_temperature (temperature): 21.8 ��C
15:50:59 INFO: sensor.solis_timestamp_measurements_received (None): 1730994518.999
15:50:59 INFO: sensor.solis_state (None): 1
15:50:59 INFO: sensor.solis_power_state (None): 3
15:50:59 INFO:
15:50:59 INFO: ------------------------------------
15:50:59 INFO: Available entities for device solis:
15:50:59 INFO:
15:50:59 INFO: Inverter appears to be online
15:50:59 INFO: Serial number:
15:50:59 INFO: Device name: solis
15:50:59 INFO: Inverter type: SOLIS_SOLAX_MODBUS: inverter module: solis.py
15:50:59 INFO: Time Zone Offset: 0.0 minutes
15:50:59 INFO: Local timezone set to GB
15:50:59 INFO:
15:50:59 INFO: ******************* PV Opt v3.16.1 *******************
For Use PV_opt the trace gives an error at
Executed: 7 November 2024 at 17:00:05
Error: In 'template' condition: AttributeError: 'NoneType' object has no attribute 'tzinfo'
But I'm guessing this might be due toPV_opt failing.
Many thanks
Ian
The text was updated successfully, but these errors were encountered: