├── .devcontainer ├── Dockerfile ├── configuration.yaml └── devcontainer.json ├── .github ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── issue.md └── workflows │ ├── cron.yaml │ ├── hacs.yml │ ├── pull.yml │ ├── push.yml │ ├── release.yaml │ └── testus.yaml ├── .gitignore ├── .pylintrc ├── .vscode ├── launch.json ├── settings.json └── tasks.json ├── CONTRIBUTING-fr.md ├── CONTRIBUTING.md ├── LICENSE ├── README-fr.md ├── README.md ├── config ├── automations.yaml ├── configuration.yaml ├── scenes.yaml └── scripts.yaml ├── custom_components ├── __init__.py └── solar_optimizer │ ├── __init__.py │ ├── config_flow.py │ ├── config_schema.py │ ├── const.py │ ├── coordinator.py │ ├── managed_device.py │ ├── manifest.json │ ├── select.py │ ├── sensor.py │ ├── services.yaml │ ├── simulated_annealing_algo.py │ ├── strings.json │ ├── switch.py │ └── translations │ ├── en.json │ └── fr.json ├── hacs.json ├── images ├── add-card-1.png ├── add-card-2.png ├── add-card-3.png ├── add-card-4.png ├── config-add-device.png ├── config-common-parameters.png ├── config-device-type.png ├── config-simple-device.png ├── dashboard-edit.png ├── dashboard-edit2.png ├── dashboard-edit3.png ├── dashboard-edit4.png ├── entities-attributes.png ├── entities-configuration.png ├── entities-priority.png ├── entities-simple-device.png ├── entity-priority-weight.png ├── event-listening.png ├── icon.png ├── icon@2x.png ├── install-hacs-streamline.png ├── logos-fusion.xcf ├── logos.xcf ├── lovelace-eqts.png ├── new-icon.png ├── run-action-reset-on-time.png ├── tips.png ├── use-card-1.png ├── use-card-2.png ├── use-card-3.png ├── use-card-blue-check.png ├── use-card-blue-moon.png ├── use-card-green-check.png ├── use-card-orange-check.png └── use-card-red-cancel.png ├── pyproject.toml ├── requirements_dev.txt ├── requirements_test.txt ├── scripts ├── start_coverage.sh └── starts_ha.sh ├── setup.cfg └── tests ├── __init__.py ├── commons.py ├── conftest.py ├── test_battery.py ├── test_config_flow.py ├── test_enable.py ├── test_max_on_time.py ├── test_min_on_time.py ├── test_nominal.py ├── test_non_switch_device.py ├── test_power_device.py ├── test_priority.py ├── test_templating.py └── test_underlying_change.py /.devcontainer/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.devcontainer/Dockerfile -------------------------------------------------------------------------------- /.devcontainer/configuration.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.devcontainer/configuration.yaml -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.devcontainer/devcontainer.json -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.github/ISSUE_TEMPLATE/feature_request.md -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/issue.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.github/ISSUE_TEMPLATE/issue.md -------------------------------------------------------------------------------- /.github/workflows/cron.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.github/workflows/cron.yaml -------------------------------------------------------------------------------- /.github/workflows/hacs.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.github/workflows/hacs.yml -------------------------------------------------------------------------------- /.github/workflows/pull.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.github/workflows/pull.yml -------------------------------------------------------------------------------- /.github/workflows/push.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.github/workflows/push.yml -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.github/workflows/release.yaml -------------------------------------------------------------------------------- /.github/workflows/testus.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.github/workflows/testus.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.gitignore -------------------------------------------------------------------------------- /.pylintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.pylintrc -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/.vscode/tasks.json -------------------------------------------------------------------------------- /CONTRIBUTING-fr.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/CONTRIBUTING-fr.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/LICENSE -------------------------------------------------------------------------------- /README-fr.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/README-fr.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/README.md -------------------------------------------------------------------------------- /config/automations.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/config/automations.yaml -------------------------------------------------------------------------------- /config/configuration.yaml: -------------------------------------------------------------------------------- 1 | /workspaces/solar_optimizer/.devcontainer/configuration.yaml -------------------------------------------------------------------------------- /config/scenes.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /config/scripts.yaml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /custom_components/__init__.py: -------------------------------------------------------------------------------- 1 | """ To make this repo a module """ 2 | -------------------------------------------------------------------------------- /custom_components/solar_optimizer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/__init__.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/config_flow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/config_flow.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/config_schema.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/config_schema.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/const.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/const.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/coordinator.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/coordinator.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/managed_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/managed_device.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/manifest.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/manifest.json -------------------------------------------------------------------------------- /custom_components/solar_optimizer/select.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/select.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/sensor.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/sensor.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/services.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/services.yaml -------------------------------------------------------------------------------- /custom_components/solar_optimizer/simulated_annealing_algo.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/simulated_annealing_algo.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/strings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/strings.json -------------------------------------------------------------------------------- /custom_components/solar_optimizer/switch.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/switch.py -------------------------------------------------------------------------------- /custom_components/solar_optimizer/translations/en.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/translations/en.json -------------------------------------------------------------------------------- /custom_components/solar_optimizer/translations/fr.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/custom_components/solar_optimizer/translations/fr.json -------------------------------------------------------------------------------- /hacs.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/hacs.json -------------------------------------------------------------------------------- /images/add-card-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/add-card-1.png -------------------------------------------------------------------------------- /images/add-card-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/add-card-2.png -------------------------------------------------------------------------------- /images/add-card-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/add-card-3.png -------------------------------------------------------------------------------- /images/add-card-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/add-card-4.png -------------------------------------------------------------------------------- /images/config-add-device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/config-add-device.png -------------------------------------------------------------------------------- /images/config-common-parameters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/config-common-parameters.png -------------------------------------------------------------------------------- /images/config-device-type.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/config-device-type.png -------------------------------------------------------------------------------- /images/config-simple-device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/config-simple-device.png -------------------------------------------------------------------------------- /images/dashboard-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/dashboard-edit.png -------------------------------------------------------------------------------- /images/dashboard-edit2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/dashboard-edit2.png -------------------------------------------------------------------------------- /images/dashboard-edit3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/dashboard-edit3.png -------------------------------------------------------------------------------- /images/dashboard-edit4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/dashboard-edit4.png -------------------------------------------------------------------------------- /images/entities-attributes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/entities-attributes.png -------------------------------------------------------------------------------- /images/entities-configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/entities-configuration.png -------------------------------------------------------------------------------- /images/entities-priority.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/entities-priority.png -------------------------------------------------------------------------------- /images/entities-simple-device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/entities-simple-device.png -------------------------------------------------------------------------------- /images/entity-priority-weight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/entity-priority-weight.png -------------------------------------------------------------------------------- /images/event-listening.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/event-listening.png -------------------------------------------------------------------------------- /images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/icon.png -------------------------------------------------------------------------------- /images/icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/icon@2x.png -------------------------------------------------------------------------------- /images/install-hacs-streamline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/install-hacs-streamline.png -------------------------------------------------------------------------------- /images/logos-fusion.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/logos-fusion.xcf -------------------------------------------------------------------------------- /images/logos.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/logos.xcf -------------------------------------------------------------------------------- /images/lovelace-eqts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/lovelace-eqts.png -------------------------------------------------------------------------------- /images/new-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/new-icon.png -------------------------------------------------------------------------------- /images/run-action-reset-on-time.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/run-action-reset-on-time.png -------------------------------------------------------------------------------- /images/tips.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/tips.png -------------------------------------------------------------------------------- /images/use-card-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/use-card-1.png -------------------------------------------------------------------------------- /images/use-card-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/use-card-2.png -------------------------------------------------------------------------------- /images/use-card-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/use-card-3.png -------------------------------------------------------------------------------- /images/use-card-blue-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/use-card-blue-check.png -------------------------------------------------------------------------------- /images/use-card-blue-moon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/use-card-blue-moon.png -------------------------------------------------------------------------------- /images/use-card-green-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/use-card-green-check.png -------------------------------------------------------------------------------- /images/use-card-orange-check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/use-card-orange-check.png -------------------------------------------------------------------------------- /images/use-card-red-cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/images/use-card-red-cancel.png -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/pyproject.toml -------------------------------------------------------------------------------- /requirements_dev.txt: -------------------------------------------------------------------------------- 1 | homeassistant==2025.9.3 2 | -------------------------------------------------------------------------------- /requirements_test.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/requirements_test.txt -------------------------------------------------------------------------------- /scripts/start_coverage.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/scripts/start_coverage.sh -------------------------------------------------------------------------------- /scripts/starts_ha.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/scripts/starts_ha.sh -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/setup.cfg -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | """ To make this repo a module """ 2 | -------------------------------------------------------------------------------- /tests/commons.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/commons.py -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/test_battery.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_battery.py -------------------------------------------------------------------------------- /tests/test_config_flow.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_config_flow.py -------------------------------------------------------------------------------- /tests/test_enable.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_enable.py -------------------------------------------------------------------------------- /tests/test_max_on_time.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_max_on_time.py -------------------------------------------------------------------------------- /tests/test_min_on_time.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_min_on_time.py -------------------------------------------------------------------------------- /tests/test_nominal.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_nominal.py -------------------------------------------------------------------------------- /tests/test_non_switch_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_non_switch_device.py -------------------------------------------------------------------------------- /tests/test_power_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_power_device.py -------------------------------------------------------------------------------- /tests/test_priority.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_priority.py -------------------------------------------------------------------------------- /tests/test_templating.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_templating.py -------------------------------------------------------------------------------- /tests/test_underlying_change.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jmcollin78/solar_optimizer/HEAD/tests/test_underlying_change.py --------------------------------------------------------------------------------