def validate_adc_pin(value): if str(value).upper() == "VCC": return cv.only_on_esp8266("VCC") if CORE.is_esp32: value = pins.internal_gpio_input_pin_number(value) variant = get_esp32_variant() if variant not in ESP32_VARIANT_ADC1_PIN_TO_CHANNEL: raise cv.Invalid( f"This ESP32 variant ({variant}) is not supported") if value not in ESP32_VARIANT_ADC1_PIN_TO_CHANNEL[variant]: raise cv.Invalid(f"{variant} doesn't support ADC on this pin") return pins.internal_gpio_input_pin_schema(value) if CORE.is_esp8266: from esphome.components.esp8266.gpio import CONF_ANALOG value = pins.internal_gpio_pin_number({ CONF_ANALOG: True, CONF_INPUT: True })(value) if value != 17: # A0 raise cv.Invalid("ESP8266: Only pin A0 (GPIO17) supports ADC.") return pins.gpio_pin_schema({ CONF_ANALOG: True, CONF_INPUT: True }, internal=True)(value) raise NotImplementedError
def validate_adc_pin(value): vcc = str(value).upper() if vcc == 'VCC': return cv.only_on_esp8266(vcc) return pins.analog_pin(value)