mash-sensor-tof-pc/src/homeassistantcounter.py

42 lines
1,014 B
Python
Raw Normal View History

2021-10-19 21:34:55 +02:00
from peoplecounter import PeopleCounter
from sensor.vl53l1xsensor import VL53L1XSensor
import paho.mqtt.client as mqtt
2021-10-19 22:10:54 +02:00
from HaMqtt.MQTTSensor import MQTTSensor
import logging
2021-10-19 21:34:55 +02:00
HA_URL = ""
HA_PORT = 1883
2021-10-19 22:10:54 +02:00
HA_SENSOR_NAME = ""
HA_SENSOR_ID = ""
2021-10-19 21:34:55 +02:00
# Setup connection to HA
mqttClient = mqtt.Client()
mqttClient.connect(HA_URL, HA_PORT)
mqttClient.loop_start() # Keep conneciton alive
2021-10-19 22:10:54 +02:00
# Setup mqtt binding
sensor = MQTTSensor(HA_SENSOR_NAME, HA_SENSOR_ID, mqttClient)
logging.debug(f'Connected to topic {sensor.state_topic}')
2021-10-19 21:34:55 +02:00
def countChange(change: int) -> None:
"""Called when people count change is detected.
Sends update to the initialized HA instance.
Args:
change (int): Number of people leaving (<0) or entering (>0) a room.
"""
# Send update to HA
2021-10-19 22:10:54 +02:00
global sensor
sensor.publish_state(change)
logging.debug(f'People count changed by {change}')
2021-10-19 21:34:55 +02:00
# Setup people count sensor
counter = PeopleCounter(VL53L1XSensor())
counter.hookCounting(countChange)
counter.run()