mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	Add resistance_sampler interface for config validation (#5718)
This commit is contained in:
		| @@ -246,6 +246,7 @@ esphome/components/radon_eye_rd200/* @jeffeb3 | ||||
| esphome/components/rc522/* @glmnet | ||||
| esphome/components/rc522_i2c/* @glmnet | ||||
| esphome/components/rc522_spi/* @glmnet | ||||
| esphome/components/resistance_sampler/* @jesserockz | ||||
| esphome/components/restart/* @esphome/core | ||||
| esphome/components/rf_bridge/* @jesserockz | ||||
| esphome/components/rgbct/* @jesserockz | ||||
|   | ||||
| @@ -2,7 +2,7 @@ from math import log | ||||
|  | ||||
| import esphome.config_validation as cv | ||||
| import esphome.codegen as cg | ||||
| from esphome.components import sensor | ||||
| from esphome.components import sensor, resistance_sampler | ||||
| from esphome.const import ( | ||||
|     CONF_CALIBRATION, | ||||
|     CONF_REFERENCE_RESISTANCE, | ||||
| @@ -15,6 +15,8 @@ from esphome.const import ( | ||||
|     UNIT_CELSIUS, | ||||
| ) | ||||
|  | ||||
| AUTO_LOAD = ["resistance_sampler"] | ||||
|  | ||||
| ntc_ns = cg.esphome_ns.namespace("ntc") | ||||
| NTC = ntc_ns.class_("NTC", cg.Component, sensor.Sensor) | ||||
|  | ||||
| @@ -124,7 +126,7 @@ CONFIG_SCHEMA = ( | ||||
|     ) | ||||
|     .extend( | ||||
|         { | ||||
|             cv.Required(CONF_SENSOR): cv.use_id(sensor.Sensor), | ||||
|             cv.Required(CONF_SENSOR): cv.use_id(resistance_sampler.ResistanceSampler), | ||||
|             cv.Required(CONF_CALIBRATION): process_calibration, | ||||
|         } | ||||
|     ) | ||||
|   | ||||
| @@ -1,7 +1,8 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include "esphome/core/component.h" | ||||
| #include "esphome/components/resistance_sampler/resistance_sampler.h" | ||||
| #include "esphome/components/sensor/sensor.h" | ||||
| #include "esphome/core/component.h" | ||||
|  | ||||
| namespace esphome { | ||||
| namespace resistance { | ||||
| @@ -11,7 +12,7 @@ enum ResistanceConfiguration { | ||||
|   DOWNSTREAM, | ||||
| }; | ||||
|  | ||||
| class ResistanceSensor : public Component, public sensor::Sensor { | ||||
| class ResistanceSensor : public Component, public sensor::Sensor, resistance_sampler::ResistanceSampler { | ||||
|  public: | ||||
|   void set_sensor(Sensor *sensor) { sensor_ = sensor; } | ||||
|   void set_configuration(ResistanceConfiguration configuration) { configuration_ = configuration; } | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| import esphome.codegen as cg | ||||
| import esphome.config_validation as cv | ||||
| from esphome.components import sensor | ||||
| from esphome.components import sensor, resistance_sampler | ||||
| from esphome.const import ( | ||||
|     CONF_SENSOR, | ||||
|     STATE_CLASS_MEASUREMENT, | ||||
| @@ -8,8 +8,15 @@ from esphome.const import ( | ||||
|     ICON_FLASH, | ||||
| ) | ||||
|  | ||||
| AUTO_LOAD = ["resistance_sampler"] | ||||
|  | ||||
| resistance_ns = cg.esphome_ns.namespace("resistance") | ||||
| ResistanceSensor = resistance_ns.class_("ResistanceSensor", cg.Component, sensor.Sensor) | ||||
| ResistanceSensor = resistance_ns.class_( | ||||
|     "ResistanceSensor", | ||||
|     cg.Component, | ||||
|     sensor.Sensor, | ||||
|     resistance_sampler.ResistanceSampler, | ||||
| ) | ||||
|  | ||||
| CONF_REFERENCE_VOLTAGE = "reference_voltage" | ||||
| CONF_CONFIGURATION = "configuration" | ||||
|   | ||||
							
								
								
									
										6
									
								
								esphome/components/resistance_sampler/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								esphome/components/resistance_sampler/__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| import esphome.codegen as cg | ||||
|  | ||||
| resistance_sampler_ns = cg.esphome_ns.namespace("resistance_sampler") | ||||
| ResistanceSampler = resistance_sampler_ns.class_("ResistanceSampler") | ||||
|  | ||||
| CODEOWNERS = ["@jesserockz"] | ||||
							
								
								
									
										10
									
								
								esphome/components/resistance_sampler/resistance_sampler.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								esphome/components/resistance_sampler/resistance_sampler.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| #pragma once | ||||
|  | ||||
| namespace esphome { | ||||
| namespace resistance_sampler { | ||||
|  | ||||
| /// Abstract interface to mark components that provide resistance values. | ||||
| class ResistanceSampler {}; | ||||
|  | ||||
| }  // namespace resistance_sampler | ||||
| }  // namespace esphome | ||||
		Reference in New Issue
	
	Block a user