43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
|
|
from homie.constants import FLOAT
|
|
from homie.property import HomieProperty
|
|
from update_homie_node import UpdateHomieNode
|
|
# from homie.device import await_ready_state
|
|
|
|
# import uasyncio as asyncio
|
|
# from time import ticks_ms, ticks_add, ticks_diff
|
|
|
|
|
|
class BMP280Node(UpdateHomieNode):
|
|
|
|
def __init__(
|
|
self,
|
|
id,
|
|
name,
|
|
bmp280,
|
|
interval=60*5):
|
|
super().__init__(id=id, name=name, type="sensor", interval=interval)
|
|
|
|
# BMP280
|
|
self.bmp280 = bmp280
|
|
self.property_temerature = HomieProperty(
|
|
id="temperature",
|
|
name="Temperatur",
|
|
datatype=FLOAT,
|
|
unit="°C",
|
|
)
|
|
self.add_property(self.property_temerature)
|
|
self.property_pressure = HomieProperty(
|
|
id="pressure",
|
|
name="Druck",
|
|
datatype=FLOAT,
|
|
unit="Pa",
|
|
)
|
|
self.add_property(self.property_pressure)
|
|
|
|
def update_data(self):
|
|
self.property_pressure.value = "{:1.0f}".format(
|
|
self.bmp280.pressure * 100) # hPa = 100 Pa
|
|
self.property_temerature.value = "{:1.2f}".format(
|
|
self.bmp280.temperature)
|