- fix JSON-Boolean Value in OpenDTU API (reserve85#247)
- removed SetLimit, SetLimitWithPriority -> only one Function for SetLimit (same routine for mixed mode, battery mode, non battery mode)
- improved calculation
- fix Priority Limit Calculation in Priority Mode and Mixed Mode (reserve85#228)
- added a "Debug" Reader and DTU just for debugging.
- Log the real "error message" in Function WaitForAck
- added a "Debug" Reader and DTU just for debugging.
- Bugfix newLimitSetpoint for OpenDTU (reserve85#235)
- improve startup: init newLimitSetpoint
- fix mixed mode: if setLimit < getminwatt there was an calulation error (results in setLimit = 0).
- added a limit cross-check (real DTU Limit is cross-checked vs. Set Limit +/- 5%) (reserve85#223)
- add support for MQTT meter and intermediate meter
- add
[SELECT_POWERMETER]:USE_MQTT - add
[SELECT_INTERMEDIATE_METER]:USE_MQTT_INTERMEDIATE - add section
[MQTT_POWERMETER] - add section
[MQTT_INTERMEDIATE_METER]
- bugfix: value of HOY_BATTERY_AVERAGE_CNT was ignored
- publish an online/offline status message to MQTT
- publish config state to MQTT
- publish the current (inverter) limit to MQTT
- publish logs to MQTT
- replace
MQTT_CONFIG:MQTT_SET_TOPICandMQTT_CONFIG:MQTT_RESET_TOPICwithMQTT_CONFIG:MQTT_TOPIC_PREFIX - add
MQTT_CONFIG:MQTT_LOG_LEVEL- if set, log messages will be published to MQTT
- add script functionality for a super high priority limit change if your powermeter falls below POWERMETER_MIN_POINT (reserve85#200)
- add
[CONTROL]:POWERMETER_MIN_POINT - add
[COMMON]:ON_GRID_FEED_FAST_LIMIT_DECREASE
- support script for intermediate meter (reserve85#197)
- add
[SELECT_INTERMEDIATE_METER]:USE_SCRIPT_INTERMEDIATE - add section
[INTERMEDIATE_SCRIPT]
- support "Mitterbaur AMIS Lesekopf" (reserve85#184)
- add
[SELECT_POWERMETER]:USE_AMIS_READER - add
[AMIS_READER]:AMIS_READER_IP - add
[SELECT_INTERMEDIATE_METER]:USE_AMIS_READER_INTERMEDIATE - add
[INTERMEDIATE_AMIS_READER]:AMIS_READER_IP_INTERMEDIATE
- support Home Assistant over HTTPS (reserve85#178)
- Support login credentials for Tasmota (reserve85#159)
- update.sh supports custom branch, for example to update to dev path. usage: ./update.sh dev
- option to disable a inverter (@tester277)
- option to specify a specific emeter-index for ShellyEM [possible values: 0...1]. (reserve85#181)
- add
[HOMEASSISTANT]:HA_HTTPS - add
[INTERMEDIATE_HOMEASSISTANT]:HA_HTTPS_INTERMEDIATE - add
[TASMOTA]:USERandPASS - add
[TASMOTA_INTERMEDIATE]:USER_INTERMEDIATEandPASS_INTERMEDIATE - add
[INVERTER_x]:ENABLED - add
[SHELLY]:EMETER_INDEX - add
[INTERMEDIATE_SHELLY]:EMETER_INDEX
- fix HOY_BATTERY_THRESHOLD_NORMAL_LIMIT_IN_V, see reserve85#174
- Auto-retry failed requests
- add
COMMON:MAX_RETRIES - add
COMMON:RETRY_STATUS_CODES - add
COMMON:RETRY_BACKOFF_FACTOR
- Refactoring: Reset all inverter data when inverter becomes unavailable
- Add support for dynamic reconfiguration of config parameters via MQTT
- Add optional section '[MQTT_CONFIG]' to config file. If present, the script will listen for MQTT messages to reconfigure various parameters at runtime.
- Prepare config to support dynamic reconfiguration of various parameters
- Added shell script based powermeter interface (USE_SCRIPT)
- Added parameters for shell script based powermeter interface (SCRIPT_)
- Added example shell script for usage with Victron Multiplus II (GetPowerFromVictronMultiplus.sh)
- Updated supported interface list in README.md with new shell script based powermeter
- Add support for priority mixed-mode (combination of battery powered and non-battery powered inverters).
- Bugfix fallback value
- added comment
- read the power rating of each inverter from config file.
- calculate HOY_MIN_POWER based on the inverter power rating.
- add HOY_INVERTER_WATT to INVERTER_x section
- add option to enable/disable to set the inverter to min watts when the powermeter can´t be read out. reserve85#28 (comment) + reserve85#74
- add
COMMON:SET_INVERTER_TO_MIN_ON_POWERMETER_ERROR
- add ESPHome for intermediate power meter
- use absolute value for intermediate power value
- add ESPHome fields
- fix intermediate meter (HA, IOBroker): define a fallback value for POWER_CALCULATION (reserve85#144)
- openDTU: don´t override serialnumber every time a inverter gets available
- optional field in :
INVERTER_x:SERIAL_NUMBER: If you use more than one inverter you should define the serialnumber(s) in the config. Else a mix-up of the inverters possible (only openDTU)
- fixed wrong calculation "RemainingDelay"
- removed SetLimitDelay + SetLimitDelayMultipleInverter
- improved loop-code
- removed
SET_LIMIT_DELAY_IN_SECONDS+SET_LIMIT_DELAY_IN_SECONDS_MULTIPLE_INVERTER
- refactoring, all DTU commands moved into DTU class
- support newest version of openDTU (API changed, see https://github.com/tbnobody/OpenDTU/releases/tag/v24.2.12)
- set min Version of openDTU to v24.2.12
- support newest version of AhoyDTU (Authentication, removed Factor, see lumapu/ahoy#1415)
- set min Version of AhoyDTU to 0.8.80
- renamed
AHOY_PASSWORD =toAHOY_PASS(like openDTU)
- reverted script to support AHOY >= '0.7.29'
- Support of AHOY-DTU Authentication, reserve85#132 and lumapu/ahoy#1415
- added
AHOY_PASSWORD =toAHOY_DTU
- Emlog fix reserve85#134 -> calculate power
- added
EMLOG_JSON_POWER_CALCULATEtoEMLOG
- When intermediate meter is not available then try to get "ActualPower" from DTU
- on battery mode: set Inverter to min power on meter-error
- refactoring, big big "thank you" to https://github.com/tomquist - i know it was overdue...
- try to fix: Only repeat limit for the specific inverter (where limit was not acknowledged)
- Only repeat limit for the specific inverter (where limit was not acknowledged)
- renamed
SET_LIMIT_RETRYtoSET_POWERSTATUS_CNT
- Limit-Handling improved (if not acknowledged -> retransmit)
- calculates an average of the "MinPanelVoltage", rel reserve85#120
- add:
INVERTER_x:HOY_BATTERY_AVERAGE_CNT
- bugfix set limit retry
- added up to 16 inverters in default config. This is needed for the override config.
- support Ahoy Versions >= V 0.8.39 ( reserve85#116 )
- added package argparse, install it with "pip3 install argparse" or "pip3 install -r requirements.txt"
- add support of docker (thnx to @tomquist)
- add support of a user specific ini (HoymilesZeroExport_Config_Override.ini) where you can define your specific default values. it will not be overritten when you install an update.
- modified install.sh script
- Bugfix HOY_MIN_WATT_IN_PERCENT: set minWatt for each inverter
- optimized init procedure
- improved some code snippets
- modified some comments
- force setlimit after BATTERY_THRESHOLD was changed
- bugfix: added index to HOY_BATTERY_PRIORITY
- supports custom inverter priorities, for battery powered inverters only! UNTESTED!
- related: reserve85#95
- add:
INVERTER_x:HOY_BATTERY_PRIORITY
- Bugfix Get lowest panel voltage: return correct value, rel reserve85#99
- On Inverter-Power-On: set inverter to HOY_MIN_WATT, rel reserve85#100
- Bugfix Get Lowest panel voltage with more than one inverter.
- Bugfix at GetNumberArray reserve85#96
- add feature to ignore specific panel voltages in battery mode with opendtu
- Check if AHOY Version is at least V0.7.29.
- ATTENTION: You need to install the Package "Packaging" -> to do so type "sudo pip3 install packaging" in your terminal (Linux) or "pip3 install packaging" in your cmd (Windows)
- Update install.sh script to install additional package "packaging"
- Update Readme.md to install additional package "packaging"
- OpenDTU: Wait for Acknowledge after SetLimit
- OpenDTU: Removed limit-retries when SetLimit was acknowledged
- Ahoy: removed limit-retries when SetLimit was acknowledged
- use SET_LIMIT_TIMEOUT_SECONDS to wait for acknowledge
- add:
COMMON:SET_LIMIT_TIMEOUT_SECONDS
- AHOY: Wait for Acknowledge after SetLimit, see lumapu/ahoy#1072
- Warning: if you use AHOY-DTU then you must update your DTU to Version >= 0.7.29 -> https://github.com/lumapu/ahoy/actions
- add a feature to ignore specific panel voltages in battery mode
- add:
INVERTER_x:HOY_BATTERY_IGNORE_PANELS
- Add VZLogger local http api support (https://wiki.volkszaehler.org/software/controller/vzlogger/vzlogger_conf_parameter#local)
- add:
[SELECT_POWERMETER]:USE_VZLOGGER - add:
[SELECT_INTERMEDIATE_METER]:USE_VZLOGGER_INTERMEDIATE - add:
[VZLOGGER]:VZL_IP - add:
[VZLOGGER]:VZL_PORT - add:
[VZLOGGER]:VZL_UUID - add:
[INTERMEDIATE_VZLOGGER]:VZL_IP_INTERMEDIATE - add:
[INTERMEDIATE_VZLOGGER]:VZL_PORT_INTERMEDIATE - add:
[INTERMEDIATE_VZLOGGER]:VZL_UUID_INTERMEDIATE
- Bugfix: jump to defined limit never increased if < 100%
- just added some comments, nothing productive ( thnx @Ollipop030 )
- BatteryMode: save latest five PanelMinVoltages and return the highest value of them. This ignores temporarly DTU-Errors (e.g. reset values at midnight) for maximum of five iterations.
- replaced the feature "jump to max limit" to "jump to defined limit"
- changed
[COMMON]/JUMP_TO_MAX_LIMIT_ON_GRID_USAGEto[COMMON]/ON_GRID_USAGE_JUMP_TO_LIMIT_PERCENT
- Bugfix: timeout OpenDTU
- AHOY API Update: changed to new functions, see lumapu/ahoy#993
- add timeout = 10 seconds for HTTP Requests
- bugfix: lowest panel voltage "inf" (battery mode)
- chanegd some error messages
- changed comment of JUMP_TO_MAX_LIMIT_ON_GRID_USAGE to make this point clearer
- add check if POWERMETER_MAX_POINT > (POWERMETER_TOLERANCE + POWERMETER_TARGET_POINT)
- changed comment of POWERMETER_MAX_POINT to make this point clearer
- Log Python Version on startup and check if it is >= V3.6
- Add ShellyEM support
- rename section
[SHELLY_3EM]to[SHELLY] - add:
[SELECT_POWERMETER]:USE_SHELLY_EM - add:
[SELECT_INTERMEDIATE_METER]:USE_SHELLY_EM_INTERMEDIATE
- Authentication fix for Shelly 2nd Gen. Thanks to user delacor
- another try for authentication of Shelly 2. generation
- changed some comments
- support user & password for Shelly meters
- add:
[INTERMEDIATE_SHELLY]:SHELLY_USER_INTERMEDIATE+SHELLY_PASS_INTERMEDIATE - add:
[SHELLY_3EM]:SHELLY_USER+SHELLY_PASS
- new function: CastToInt
- added some more comments
- bugfix: cast to int
- support of power-output-factor to compensate some Inverters (e.g. 700W Limit = 800W Output)
- add:
[INVERTER_x]:HOY_COMPENSATE_WATT_FACTOR- enter your Factor here. Eg: if you set a limit of 750W = 850W Output -> enter Factor 0.88
- use different wait time for turning inverter off or on
- add HOME ASSISTANT support
- add:
[COMMON]:SET_POWER_STATUS_DELAY_IN_SECONDS- delay time after turning the inverter off or on - add:
[SELECT_POWERMETER]:USE_HOMEASSISTANT - add: section
[HOMEASSISTANT]+ section[INTERMEDIATE_HOMEASSISTANT] - add:
[SELECT_INTERMEDIATE_METER]:USE_HOMEASSISTANT_INTERMEDIATE
- on Startup: initialize inverter with lowest limit.
- allow to send same Limits to inverter, use SET_LIMIT_RETRY to limit the repeats
- add HOY_BATTERY_NORMAL_WATT: you can further limit the inverter in battery mode. E.g. if you have a 1500W Inverter you can limit the max. output power in battery mode to 750 Watts.
- add:
[INVERTER_x]:HOY_BATTERY_NORMAL_WATT
- bugfix: Assign problem when reading INI if more than two inverters
- bugfix: changed a += operator because "unsupported operand type s for +:" occur
- bugfix: SetLimitOpenDTU: there was a calculation error if battery powered and reduced limit was active.
- add ´HOY_BATTERY_THRESHOLD_NORMAL_LIMIT_IN_V´: if min_voltage of a panel is higher than this threshold voltage, then max_limit is reset to "max_Watt"
- add:
[INVERTER_x]:HOY_BATTERY_THRESHOLD_NORMAL_LIMIT_IN_V
- add: support of battery powered hoymiles inverters. activate it by setting
[INVERTER_x]/HOY_BATTERY_MODEtotrue. There is an "off" Limit (HOY_BATTERY_THRESHOLD_OFF_LIMIT_IN_V) where the inverter stops working, if panel voltage is lower a "reduce" limit (HOY_BATTERY_THRESHOLD_REDUCE_LIMIT_IN_V) where the inverter reduces it´s max. power, if panel voltage is lower a "turn on" limit (HOY_BATTERY_THRESHOLD_ON_LIMIT_IN_V) where the inverter starts working again, if panel voltage is higher
- add:
[INVERTER_x]:HOY_BATTERY_MODE+HOY_BATTERY_THRESHOLD_OFF_LIMIT_IN_V+HOY_BATTERY_THRESHOLD_REDUCE_LIMIT_IN_V+HOY_BATTERY_REDUCE_WATT+HOY_BATTERY_THRESHOLD_ON_LIMIT_IN_V
- add: support of IOBROKER. Needs installed https://github.com/ioBroker/ioBroker.simple-api
- change: more detailed exception logs
- add:
[SELECT_POWERMETER]:USE_IOBROKER - add: section
[IOBROKER]+ section[INTERMEDIATE_IOBROKER] - add:
[SELECT_INTERMEDIATE_METER]:USE_IOBROKER_INTERMEDIATE
- bugfix: ignore LastLimit Counter if inverter was not available
- bugfix: switch °C to degC, due to compatibility
- bugfix: openDTU, GetHoymilesAvailable was faulty
- change: use default Log-Names to ensure deletion of old files
- add: optional: read out temperature
- add: read out serial number of inverter
- add:
LOG_TEMPERATURE = false - removed:
SERIAL_NUMBER, read it from API
- bugfix: intervall was too fast only in case of setLimit > SET_LIMIT_RETRY
- change: small code optimization for setting limit to multiple inverters
- script keeps running as long as minimum one inverter is available
- bugfix: intermediate meter Shelly 1PM did not work
- add: support Shelly 3EM Pro for powermeter and intermediate powermeter
- add: support of Shelly 1PM & Shelly Plus 1PM
- add:
[SELECT_POWERMETER]:USE_SHELLY_3EM_PRO - add:
[SELECT_INTERMEDIATE_METER]:USE_SHELLY_3EM_PRO_INTERMEDIATE - add:
[SELECT_INTERMEDIATE_METER]:USE_SHELLY_PLUS_1PM_INTERMEDIATE
- add: support EMLOG System for powermeter and intermediate powermeter
- change: added powermeter-type and DTU-type to logs
- add: In Section
[SELECT_POWERMETER]:USE_EMLOG - add: Section
[EMLOG]:EMLOG_IP+EMLOG_METERINDEX - add: Section
[INTERMEDIATE_EMLOG]:EMLOG_IP_INTERMEDIATE+EMLOG_METERINDEX_INTERMEDIATE
- add: support Shelly 1PM as intermediate meter
- bugfix: selection of intermediate meter was incorrect.
- add: In Section
[SELECT_INTERMEDIATE_METER]:USE_SHELLY_1PM_INTERMEDIATE
- change: replace fixed factor for slow approximation with configurable one (SLOW_APPROX_FACTOR_IN_PERCENT)
- change: check if slow approx is really needed when old limit was 100% (jump down)
- change: calculate "LimitDifference" based on ActualPower and not on MaxWatt in case of old limit was at 100% (jump down)
- add: In Section
[COMMON]:SLOW_APPROX_FACTOR_IN_PERCENT = 20
- change: update install.sh script for reinstall
- add: uninstall_service.sh script to uninstall the service
- add: limit the retry of function
SetLimitif it is the same limit in watt
- add: In Section
[COMMON]:SET_LIMIT_RETRY = 10
- Removed: Intermediate meter calculation option
- Removed: defines for Intermediate meter calculation option:
TASMOTA_JSON_POWER_CALCULATE = FALSE,TASMOTA_JSON_POWER_INPUT_MQTT_LABEL,TASMOTA_JSON_POWER_OUTPUT_MQTT_LABEL
- Add: Intermediate meter support. If you have an intermediate meter behind your solar inverters to measure the exact outputpower, you can set it here. It's faster than the Ahoy/OpenDTU current_power value.
- Changed: some logger.info type to logger.error (if it is in try...except)
- Changed: only load the HoymilesZeroExport_Config.ini once
- Add: Section
[SELECT_INTERMEDIATE_METER],[INTERMEDIATE_TASMOTA],[INTERMEDIATE_SHELLY_3EM],[INTERMEDIATE_SHRDZM]in Config
- Bugfix: filename of midnight rolling backup-logfiles was "today" but should be "yesterday".
- Bugfix for openDTU set limit, missing array index
- Add: SHRDZM Powermeter Interface
- Add: an optional function CutLimitToProduction: prevents the setpoint from running away...
- Changed: logging to ./log/daily.log, creates a new logfile on midnight
- Add: Section
[SHRDZM]+USE_SHRDZMin Config (default disabled) - Add:
MAX_DIFFERENCE_BETWEEN_LIMIT_AND_OUTPUTPOWER(default disabled) - Add:
ENABLE_LOG_TO_FILEandLOG_BACKUP_COUNT(default disabled) - Add: VERSION information