diff --git a/esphome/components/number/__init__.py b/esphome/components/number/__init__.py index 7db973612..7dce62538 100644 --- a/esphome/components/number/__init__.py +++ b/esphome/components/number/__init__.py @@ -31,6 +31,7 @@ from esphome.const import ( DEVICE_CLASS_DISTANCE, DEVICE_CLASS_EMPTY, DEVICE_CLASS_ENERGY, + DEVICE_CLASS_ENERGY_STORAGE, DEVICE_CLASS_FREQUENCY, DEVICE_CLASS_GAS, DEVICE_CLASS_HUMIDITY, @@ -59,6 +60,7 @@ from esphome.const import ( DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS, DEVICE_CLASS_VOLTAGE, DEVICE_CLASS_VOLUME, + DEVICE_CLASS_VOLUME_STORAGE, DEVICE_CLASS_WATER, DEVICE_CLASS_WEIGHT, DEVICE_CLASS_WIND_SPEED, @@ -81,6 +83,7 @@ DEVICE_CLASSES = [ DEVICE_CLASS_DISTANCE, DEVICE_CLASS_EMPTY, DEVICE_CLASS_ENERGY, + DEVICE_CLASS_ENERGY_STORAGE, DEVICE_CLASS_FREQUENCY, DEVICE_CLASS_GAS, DEVICE_CLASS_HUMIDITY, @@ -109,6 +112,7 @@ DEVICE_CLASSES = [ DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS, DEVICE_CLASS_VOLTAGE, DEVICE_CLASS_VOLUME, + DEVICE_CLASS_VOLUME_STORAGE, DEVICE_CLASS_WATER, DEVICE_CLASS_WEIGHT, DEVICE_CLASS_WIND_SPEED, diff --git a/esphome/components/sensor/__init__.py b/esphome/components/sensor/__init__.py index b63e157ef..ac2588469 100644 --- a/esphome/components/sensor/__init__.py +++ b/esphome/components/sensor/__init__.py @@ -43,6 +43,7 @@ from esphome.const import ( DEVICE_CLASS_DURATION, DEVICE_CLASS_EMPTY, DEVICE_CLASS_ENERGY, + DEVICE_CLASS_ENERGY_STORAGE, DEVICE_CLASS_FREQUENCY, DEVICE_CLASS_GAS, DEVICE_CLASS_HUMIDITY, @@ -72,6 +73,7 @@ from esphome.const import ( DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS, DEVICE_CLASS_VOLTAGE, DEVICE_CLASS_VOLUME, + DEVICE_CLASS_VOLUME_STORAGE, DEVICE_CLASS_WATER, DEVICE_CLASS_WEIGHT, DEVICE_CLASS_WIND_SPEED, @@ -97,6 +99,7 @@ DEVICE_CLASSES = [ DEVICE_CLASS_DURATION, DEVICE_CLASS_EMPTY, DEVICE_CLASS_ENERGY, + DEVICE_CLASS_ENERGY_STORAGE, DEVICE_CLASS_FREQUENCY, DEVICE_CLASS_GAS, DEVICE_CLASS_HUMIDITY, @@ -126,6 +129,7 @@ DEVICE_CLASSES = [ DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS, DEVICE_CLASS_VOLTAGE, DEVICE_CLASS_VOLUME, + DEVICE_CLASS_VOLUME_STORAGE, DEVICE_CLASS_WATER, DEVICE_CLASS_WEIGHT, DEVICE_CLASS_WIND_SPEED, diff --git a/esphome/const.py b/esphome/const.py index 7b2fdfc3a..f627b5abd 100644 --- a/esphome/const.py +++ b/esphome/const.py @@ -946,6 +946,7 @@ DEVICE_CLASS_DOOR = "door" DEVICE_CLASS_DURATION = "duration" DEVICE_CLASS_EMPTY = "" DEVICE_CLASS_ENERGY = "energy" +DEVICE_CLASS_ENERGY_STORAGE = "energy_storage" DEVICE_CLASS_FREQUENCY = "frequency" DEVICE_CLASS_GARAGE = "garage" DEVICE_CLASS_GARAGE_DOOR = "garage_door" @@ -1000,6 +1001,7 @@ DEVICE_CLASS_VIBRATION = "vibration" DEVICE_CLASS_VOLATILE_ORGANIC_COMPOUNDS = "volatile_organic_compounds" DEVICE_CLASS_VOLTAGE = "voltage" DEVICE_CLASS_VOLUME = "volume" +DEVICE_CLASS_VOLUME_STORAGE = "volume_storage" DEVICE_CLASS_WATER = "water" DEVICE_CLASS_WEIGHT = "weight" DEVICE_CLASS_WINDOW = "window" diff --git a/script/sync-device_class.py b/script/sync-device_class.py index 882655561..ae6f4be0c 100755 --- a/script/sync-device_class.py +++ b/script/sync-device_class.py @@ -25,9 +25,9 @@ DOMAINS = { def sub(path, pattern, repl): - with open(path, "r") as handle: + with open(path) as handle: content = handle.read() - content = re.sub(pattern, repl, content, flags=re.MULTILINE, count=1) + content = re.sub(pattern, repl, content, flags=re.MULTILINE) with open(path, "w") as handle: handle.write(content) @@ -48,7 +48,7 @@ def main(): out = "" for cls in sorted(classes): out += f'DEVICE_CLASS_{cls.upper()} = "{classes[cls]}"\n' - sub("esphome/const.py", '(DEVICE_CLASS_\w+ = "\w*"\r?\n)+', out) + sub("esphome/const.py", '(DEVICE_CLASS_\\w+ = "\\w*"\r?\n)+', out) for domain in sorted(allowed): # replace imports @@ -58,7 +58,7 @@ def main(): sub( f"esphome/components/{domain}/__init__.py", - "( DEVICE_CLASS_\w+,\r?\n)+", + "( DEVICE_CLASS_\\w+,\r?\n)+", out, )