homie dsmr first try

This commit is contained in:
Ard Kuijpers
2020-06-03 21:31:32 +02:00
parent ccf189662d
commit 997ffea4b8
43 changed files with 314 additions and 3226 deletions

View File

@@ -1,10 +1,15 @@
import logging
from dsmr_parser.objects import Telegram
from homie.node.node_base import Node_Base
from homie.node.property.property_enum import Property_Enum
from dsmr2mqtt.node.property.property_volume import Property_Volume
from .property.property_volume import Property_Volume
logger = logging.getLogger(__name__)
class Node_Gasmeter(Node_Base):
class Node_GasMeter(Node_Base):
def __init__(
self,
device,
@@ -12,20 +17,13 @@ class Node_Gasmeter(Node_Base):
name="Gas meter",
type_="state",
retain=True,
qos=1,
state_values=None,
set_state=None,
):
assert state_values
assert set_state
qos=1
):
logger.debug("Configuring gas meter")
super().__init__(device, id, name, type_, retain, qos)
self.add_property(
Property_Volume(
self, "volume", "Volume", data_format=state_values, set_value=set_state
)
)
self.add_property(Property_Volume(self, "volume", "Volume"))
def update_volume(self, volume):
self.get_property("volume").value = volume
def update(self, telegram: Telegram):
logger.debug("Updating electricity meter properties")
self.get_property("volume").value = float(telegram.HOURLY_GAS_METER_READING.value)