aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlaise Thompson <blaise@untzag.com>2021-06-30 13:45:11 -0500
committerBlaise Thompson <blaise@untzag.com>2021-06-30 13:45:11 -0500
commitcf3e7ce5b653cf31fa865637bdf70a50a3de3921 (patch)
tree5cc1ead208ec19607df30fe0656bb1c61ecbf916
parent8af209d478df663a4163fc0a29244c8abf2c1782 (diff)
add ip to nodes
-rw-r--r--firmware/main.py21
1 files changed, 19 insertions, 2 deletions
diff --git a/firmware/main.py b/firmware/main.py
index 750eb6c..6069e36 100644
--- a/firmware/main.py
+++ b/firmware/main.py
@@ -62,33 +62,50 @@ class WeatherSensor(HomieNode):
default="PT0S"
)
self.add_property(self.uptime)
- loop = get_event_loop()
- loop.create_task(self.update_data())
+ self.ip = HomieNodeProperty(
+ id="ip",
+ name="ip",
+ settable=False,
+ datatype=STRING,
+ default="",
+ )
+ self.add_property(self.ip)
self.led = Pin(0, Pin.OUT)
self.online_led = Pin(12, Pin.OUT)
self.online_led.off()
self.last_online = time.time()
self.start = time.time()
+ print("start time", self.start)
+ loop = get_event_loop()
+ loop.create_task(self.update_data())
async def update_data(self):
# wait until connected
for _ in range(60):
+ print("wait until connected")
await sleep_ms(1_000)
if self.device.mqtt.isconnected():
break
# loop forever
while True:
while self.device.mqtt.isconnected():
+ print("update data")
+ print(network.WLAN().status())
self.last_online = time.time()
+ print(1)
self.online_led.on()
+ print(2)
self.led.value(0) # illuminate onboard LED
self.temperature.data = str(self.bme280.temperature)
self.humidity.data = str(self.bme280.humidity)
self.pressure.data = str(self.bme280.pressure)
self.uptime.data = self.get_uptime()
+ self.ip.data = network.WLAN().ifconfig()[0]
self.led.value(1) # onboard LED off
+ print("final")
await sleep_ms(15_000)
while not self.device.mqtt.isconnected():
+ print("wait for reconnect")
if time.time() - self.last_online > 300: # 5 minutes
machine.reset()
self.online_led.off()