Hey Leontin,
Awesome work btw, I pushed forward and made a PCB to tidy things up alittle, happy to share the file once I can prove it all works
When I try to flash the D1 Mini, I’m getting a schema issue error in ESPHome. Claude is suggesting it is due to ESPHome 2026.3.3 changes.
This is kind of above my level, but does your github need updating to reflect these changes and that is why its failing? Or is it something I can change my side?
INFO ESPHome 2026.3.3
INFO Reading configuration /config/esphome/hayward-heatpump.yaml...
ERROR Unexpected exception while reading configuration:
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/esphome/esphome/__main__.py", line 1925, in <module>
sys.exit(main())
^^^^^^
File "/esphome/esphome/__main__.py", line 1916, in main
return run_esphome(sys.argv)
^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/__main__.py", line 1895, in run_esphome
config = read_config(
^^^^^^^^^^^^
File "/esphome/esphome/config.py", line 1323, in read_config
res = load_config(command_line_substitutions, skip_external_update)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/config.py", line 1180, in load_config
return _load_config(command_line_substitutions, skip_external_update)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/config.py", line 1168, in _load_config
return validate_config(config, command_line_substitutions, skip_external_update)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/config.py", line 1059, in validate_config
target_platform = core_config.preload_core_config(config, result)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/core/config.py", line 404, in preload_core_config
if _is_target_platform(domain):
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/core/config.py", line 354, in _is_target_platform
return get_component(name, True).is_target_platform
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/loader.py", line 235, in get_component
return _lookup_module(domain, exception)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/loader.py", line 211, in _lookup_module
module = importlib.import_module(f"esphome.components.{domain}")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 999, in exec_module
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/data/external_components/50eec081/esphome/components/hayward/__init__.py", line 339, in <module>
cv.Optional(s[CONF_KEY], default={}): switch.switch_schema(
^^^^^^^^^^^^^^^^^^^^^
TypeError: switch_schema() missing 1 required positional argument: 'class_'