import time import board import adafruit_dht import prometheus_client # Initial the dht device, with data pin connected to: dhtDevice = adafruit_dht.DHT11(board.D4) def get_humidity() -> int: while True: try: humidity_r = dhtDevice.humidity return humidity_r except RuntimeError as error: # Errors happen fairly often, DHT's are hard to read, just keep going print(error.args[0]) def get_temperature() -> int: while True: try: temperature_c = dhtDevice.temperature return temperature_c except RuntimeError as error: # Errors happen fairly often, DHT's are hard to read, just keep going print(error.args[0]) prometheus_client.REGISTRY.unregister(prometheus_client.GC_COLLECTOR) prometheus_client.REGISTRY.unregister(prometheus_client.PLATFORM_COLLECTOR) prometheus_client.REGISTRY.unregister(prometheus_client.PROCESS_COLLECTOR) temperature_guage = prometheus_client.Gauge('temperature', 'Current temperature, degrees centigrade') humidity_guage = prometheus_client.Gauge('humidity', 'Current humidity, relative percentage') temperature_guage.set_function(get_temperature) humidity_guage.set_function(get_humidity) if __name__ == '__main__': # Start up the server to expose the metrics. prometheus_client.start_http_server(8000) while True: time.sleep(10)