Merge pull request #4478 from esphome/bump-2023.2.4

2023.2.4
This commit is contained in:
Jesse Hills 2023-02-23 14:17:01 +13:00 committed by GitHub
commit c037e95861
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 9 deletions

View file

@ -9,6 +9,7 @@ from esphome.const import (
DEVICE_CLASS_POWER, DEVICE_CLASS_POWER,
DEVICE_CLASS_VOLTAGE, DEVICE_CLASS_VOLTAGE,
STATE_CLASS_MEASUREMENT, STATE_CLASS_MEASUREMENT,
STATE_CLASS_TOTAL_INCREASING,
UNIT_AMPERE, UNIT_AMPERE,
UNIT_KILOWATT_HOURS, UNIT_KILOWATT_HOURS,
UNIT_VOLT, UNIT_VOLT,
@ -66,16 +67,19 @@ CONFIG_SCHEMA = (
unit_of_measurement=UNIT_KILOWATT_HOURS, unit_of_measurement=UNIT_KILOWATT_HOURS,
accuracy_decimals=3, accuracy_decimals=3,
device_class=DEVICE_CLASS_ENERGY, device_class=DEVICE_CLASS_ENERGY,
state_class=STATE_CLASS_TOTAL_INCREASING,
), ),
cv.Optional(CONF_ENERGY_2): sensor.sensor_schema( cv.Optional(CONF_ENERGY_2): sensor.sensor_schema(
unit_of_measurement=UNIT_KILOWATT_HOURS, unit_of_measurement=UNIT_KILOWATT_HOURS,
accuracy_decimals=3, accuracy_decimals=3,
device_class=DEVICE_CLASS_ENERGY, device_class=DEVICE_CLASS_ENERGY,
state_class=STATE_CLASS_TOTAL_INCREASING,
), ),
cv.Optional(CONF_ENERGY_TOTAL): sensor.sensor_schema( cv.Optional(CONF_ENERGY_TOTAL): sensor.sensor_schema(
unit_of_measurement=UNIT_KILOWATT_HOURS, unit_of_measurement=UNIT_KILOWATT_HOURS,
accuracy_decimals=3, accuracy_decimals=3,
device_class=DEVICE_CLASS_ENERGY, device_class=DEVICE_CLASS_ENERGY,
state_class=STATE_CLASS_TOTAL_INCREASING,
), ),
} }
) )

View file

@ -79,7 +79,9 @@ def register_trigger(name, type, data_type):
validator = automation.validate_automation( validator = automation.validate_automation(
{ {
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(type), cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(type),
cv.GenerateID(CONF_RECEIVER_ID): cv.use_id(RemoteReceiverBase), cv.Optional(CONF_RECEIVER_ID): cv.invalid(
"This has been removed in ESPHome 2022.3.0 and the trigger attaches directly to the parent receiver."
),
} }
) )
registerer = TRIGGER_REGISTRY.register(f"on_{name}", validator) registerer = TRIGGER_REGISTRY.register(f"on_{name}", validator)
@ -87,7 +89,6 @@ def register_trigger(name, type, data_type):
def decorator(func): def decorator(func):
async def new_func(config): async def new_func(config):
var = cg.new_Pvariable(config[CONF_TRIGGER_ID]) var = cg.new_Pvariable(config[CONF_TRIGGER_ID])
await register_listener(var, config)
await coroutine(func)(var, config) await coroutine(func)(var, config)
await automation.build_automation(var, [(data_type, "x")], config) await automation.build_automation(var, [(data_type, "x")], config)
return var return var
@ -223,10 +224,12 @@ async def build_binary_sensor(full_config):
async def build_triggers(full_config): async def build_triggers(full_config):
triggers = []
for key in TRIGGER_REGISTRY: for key in TRIGGER_REGISTRY:
for config in full_config.get(key, []): for config in full_config.get(key, []):
func = TRIGGER_REGISTRY[key][0] func = TRIGGER_REGISTRY[key][0]
await func(config) triggers.append(await func(config))
return triggers
async def build_dumpers(config): async def build_dumpers(config):

View file

@ -56,7 +56,9 @@ async def to_code(config):
for dumper in dumpers: for dumper in dumpers:
cg.add(var.register_dumper(dumper)) cg.add(var.register_dumper(dumper))
await remote_base.build_triggers(config) triggers = await remote_base.build_triggers(config)
for trigger in triggers:
cg.add(var.register_listener(trigger))
await cg.register_component(var, config) await cg.register_component(var, config)
cg.add(var.set_tolerance(config[CONF_TOLERANCE])) cg.add(var.set_tolerance(config[CONF_TOLERANCE]))

View file

@ -38,8 +38,8 @@ void Wiegand::setup() {
bool check_eparity(uint64_t value, int start, int length) { bool check_eparity(uint64_t value, int start, int length) {
int parity = 0; int parity = 0;
uint64_t mask = 1LL << start; uint64_t mask = 1LL << start;
for (int i = 0; i <= length; i++, mask <<= 1) { for (int i = 0; i < length; i++, mask <<= 1) {
if (value & i) if (value & mask)
parity++; parity++;
} }
return !(parity & 1); return !(parity & 1);
@ -48,8 +48,8 @@ bool check_eparity(uint64_t value, int start, int length) {
bool check_oparity(uint64_t value, int start, int length) { bool check_oparity(uint64_t value, int start, int length) {
int parity = 0; int parity = 0;
uint64_t mask = 1LL << start; uint64_t mask = 1LL << start;
for (int i = 0; i <= length; i++, mask <<= 1) { for (int i = 0; i < length; i++, mask <<= 1) {
if (value & i) if (value & mask)
parity++; parity++;
} }
return parity & 1; return parity & 1;

View file

@ -1,6 +1,6 @@
"""Constants used by esphome.""" """Constants used by esphome."""
__version__ = "2023.2.3" __version__ = "2023.2.4"
ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_" ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"