When ESPHome upgrade from 2024.4 to 2025.5, I got an error as below:
INFO ESPHome 2025.5.0 INFO Reading configuration /config/m5cores3.yaml... WARNING GPIO35 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models ERROR Unexpected exception while reading configuration: Traceback (most recent call last): File "/usr/local/bin/esphome", line 10, in <module> sys.exit(main()) ^^^^^^ File "/esphome/esphome/__main__.py", line 1083, in main return run_esphome(sys.argv) ^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/__main__.py", line 1061, in run_esphome config = read_config(dict(args.substitution) if args.substitution else {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/config.py", line 1095, in read_config res = load_config(command_line_substitutions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/config.py", line 949, in load_config return _load_config(command_line_substitutions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/config.py", line 939, in _load_config return validate_config(config, command_line_substitutions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/config.py", line 863, in validate_config result.run_validation_steps() File "/esphome/esphome/config.py", line 142, in run_validation_steps task.step.run(self) File "/esphome/esphome/config.py", line 738, in run self.comp.final_validate_schema(conf) File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 259, in __call__ return self._exec((Schema(val) for val in self.validators), v) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 382, in _exec v = func(v) ^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__ return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable return schema(data) ^^^^^^^^^^^^ File "/esphome/esphome/voluptuous_schema.py", line 37, in __call__ res = super().__call__(data) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__ return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 549, in validate_dict return base_validate(path, data.items(), out) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/voluptuous_schema.py", line 151, in validate_mapping cval = cvalue(key_path, value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable return schema(data) ^^^^^^^^^^^^ File "/esphome/esphome/components/microphone/__init__.py", line 153, in _validate_audio_compatability audio.final_validate_audio_schema( File "/esphome/esphome/voluptuous_schema.py", line 37, in __call__ res = super().__call__(data) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__ return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 549, in validate_dict return base_validate(path, data.items(), out) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/voluptuous_schema.py", line 151, in validate_mapping cval = cvalue(key_path, value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable return schema(data) ^^^^^^^^^^^^ File "/esphome/esphome/final_validate.py", line 56, in validator return schema(declaration_config) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/voluptuous_schema.py", line 37, in __call__ res = super().__call__(data) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__ return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable return schema(data) ^^^^^^^^^^^^ File "/esphome/esphome/components/audio/__init__.py", line 146, in validate_audio_compatiblity max=audio_config.get(CONF_MAX_CHANNELS) - 1, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'
When ESPHome upgrade from 2024.4 to 2025.5, I got an error as below:
INFO ESPHome 2025.5.0 INFO Reading configuration /config/m5cores3.yaml... WARNING GPIO35 is used by the PSRAM interface on ESP32-S3R8 / ESP32-S3R8V and should be avoided on these models ERROR Unexpected exception while reading configuration: Traceback (most recent call last): File "/usr/local/bin/esphome", line 10, in <module> sys.exit(main()) ^^^^^^ File "/esphome/esphome/__main__.py", line 1083, in main return run_esphome(sys.argv) ^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/__main__.py", line 1061, in run_esphome config = read_config(dict(args.substitution) if args.substitution else {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/config.py", line 1095, in read_config res = load_config(command_line_substitutions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/config.py", line 949, in load_config return _load_config(command_line_substitutions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/config.py", line 939, in _load_config return validate_config(config, command_line_substitutions) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/config.py", line 863, in validate_config result.run_validation_steps() File "/esphome/esphome/config.py", line 142, in run_validation_steps task.step.run(self) File "/esphome/esphome/config.py", line 738, in run self.comp.final_validate_schema(conf) File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 259, in __call__ return self._exec((Schema(val) for val in self.validators), v) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/validators.py", line 382, in _exec v = func(v) ^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__ return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable return schema(data) ^^^^^^^^^^^^ File "/esphome/esphome/voluptuous_schema.py", line 37, in __call__ res = super().__call__(data) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__ return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 549, in validate_dict return base_validate(path, data.items(), out) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/voluptuous_schema.py", line 151, in validate_mapping cval = cvalue(key_path, value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable return schema(data) ^^^^^^^^^^^^ File "/esphome/esphome/components/microphone/__init__.py", line 153, in _validate_audio_compatability audio.final_validate_audio_schema( File "/esphome/esphome/voluptuous_schema.py", line 37, in __call__ res = super().__call__(data) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__ return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 549, in validate_dict return base_validate(path, data.items(), out) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/voluptuous_schema.py", line 151, in validate_mapping cval = cvalue(key_path, value) ^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable return schema(data) ^^^^^^^^^^^^ File "/esphome/esphome/final_validate.py", line 56, in validator return schema(declaration_config) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/esphome/esphome/voluptuous_schema.py", line 37, in __call__ res = super().__call__(data) ^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 205, in __call__ return self._compiled([], data) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/site-packages/voluptuous/schema_builder.py", line 779, in validate_callable return schema(data) ^^^^^^^^^^^^ File "/esphome/esphome/components/audio/__init__.py", line 146, in validate_audio_compatiblity max=audio_config.get(CONF_MAX_CHANNELS) - 1, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ TypeError: unsupported operand type(s) for -: 'NoneType' and 'int'