Changeset - 05df2f8db4ad
[Not reviewed]
default
0 1 0
Dennis Fink - 5 years ago 2020-02-10 21:18:06
dennis.fink@c3l.lu
Simplify on_connect
1 file changed with 18 insertions and 23 deletions:
0 comments (0 inline, 0 general)
mqtt2prometheus.py
Show inline comments
 
@@ -51,33 +51,28 @@ energy_consumption = Gauge(
 
)
 

	
 

	
 
TOPIC_TO_HANDLER = {
 
    "availability/#": handle_availability,
 
    "space/status": handle_space_status,
 
    "space/member_count": handle_member_count,
 
    "sensors/people_now_present": handle_people_now_present,
 
    "sensors/temperature/#": handle_temperature,
 
    "sensors/humidity/#": handle_humidity,
 
    "sensors/barometer/#": handle_barometer,
 
    "sensors/power_consumption/#": handle_power_consumption,
 
    "sensors/co2_emission/#": handle_co2_emission,
 
    "sensors/energy_consumption/#": handle_energy_consumption,
 
}
 

	
 

	
 
def on_connect(client, userdata, flags, rc):
 
    client.publish("availability/mqtt2prometheus", "online", 2, True)
 

	
 
    client.message_callback_add("sensors/people_now_present", handle_people_now_present)
 
    client.message_callback_add("space/status", handle_space_status)
 
    client.message_callback_add("space/member_count", handle_member_count)
 
    client.message_callback_add("availability/#", handle_availability)
 
    client.message_callback_add("sensors/temperature/#", handle_temperature)
 
    client.message_callback_add("sensors/humidity/#", handle_humidity)
 
    client.message_callback_add("sensors/barometer/#", handle_barometer)
 
    client.message_callback_add("sensors/power_consumption/#", handle_power_consumption)
 
    client.message_callback_add("sensors/co2_emission/#", handle_co2_emission)
 
    client.message_callback_add(
 
        "sensors/energy_consumption/#", handle_energy_consumption
 
    )
 
    for topic, handler in TOPIC_TO_HANDLER:
 
        client.message_callback_add(topic, handler)
 

	
 
    client.subscribe("sensors/people_now_present")
 
    client.subscribe("space/status")
 
    client.subscribe("space/member_count")
 
    client.subscribe("availability/+")
 
    client.subscribe("availability/shutdown/+")
 
    client.subscribe("sensors/temperature/#")
 
    client.subscribe("sensors/humidity/#")
 
    client.subscribe("sensors/barometer/#")
 
    client.subscribe("sensors/power_consumption/#")
 
    client.subscribe("sensors/co2_emission/#")
 
    client.subscribe("sensors/energy_consumption/#")
 
    for topic in ["availability/#", "space/status", "space/member_count", "sensors/#"]:
 
        client.subscribe(topic)
 

	
 

	
 
def handle_people_now_present(client, userdata, msg):
0 comments (0 inline, 0 general)