Skip to content

TypeError: argument of type 'int' is not iterable with GS_fb00 + time entities for discharge_start_hour/discharge_end_hour #3824

@Gammaed

Description

@Gammaed

Bug Report

PredBat version: v8.37.2
Inverter type: GS_fb00 (Ginlong Solis RHI-3P-10K-HVES-5G, FB00 firmware)
Solis Modbus integration version: v4.1.2

Problem

When using time entities for discharge_start_hour and discharge_end_hour,
PredBat crashes with TypeError when trying to execute discharge plan.

Error

TypeError: argument of type 'int' is not iterable

File "/config/execute.py", line 359, in execute_plan
inverter.adjust_force_export(True, discharge_start_time, discharge_end_time)
File "/config/inverter.py", line 2172, in adjust_force_export
self.write_and_poll_option("discharge_end_hour",
self.base.get_arg("discharge_end_hour", indirect=False, index=self.id),
int(new_end[:2]))
File "/config/inverter.py", line 1775, in write_and_poll_option
if old_value and (":" in old_value) and (":" in new_value)
and (len(old_value) == 5) and (len(new_value) == 8):
TypeError: argument of type 'int' is not iterable

Cause

Solis RHI-3P with FB00 firmware uses time entities instead of separate
hour/minute number entities. The time entities return a value like "22:00:00"
but PredBat passes an int to write_and_poll_option which then fails the
string check (":" in old_value).

apps.yaml configuration

discharge_start_hour:

  • time.solis_rhi_3p_grid_time_of_use_discharge_start_slot_1
    discharge_end_hour:
  • time.solis_rhi_3p_grid_time_of_use_discharge_end_slot_1

Impact

PredBat crashes on every discharge execution attempt.
Charging works correctly. Export/discharge still works via
Solis own TOU settings but PredBat cannot actively control it.

Workaround

Currently running in Monitor mode to avoid crashes.

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions