c9b68dd8e20d2f0dbe047db16f032759eb4b1994
Core modules created: - config.py: Environment-based configuration management - Loads MQTT settings from environment variables - SensorConfig class for JSON sensor mapping - Relative path resolution (PROJECT_ROOT) - Configuration validation with fail-fast - mqtt_publisher.py: MQTT client wrapper - MQTTPublisher class with connection management - Replaces sendToMQTT.sh shell script - Direct Python MQTT publishing - Automatic reconnection support - Optional battery data publishing - sensor_reader.py: Bluetooth BLE sensor reader - SensorReader class for passive BLE scanning - ATC firmware packet parsing - Duplicate packet filtering via advertisement counter - Watchdog thread for BLE recovery - Measurement dataclass for type safety - utils.py: Bluetooth utilities - Ported from bluetooth_utils.py (MIT, Colin GUYON) - BLE scanning and advertisement parsing functions - Linux HCI socket operations - main.py: Application entry point - Sensorpajen main application class - Signal handling (SIGTERM/SIGINT) for graceful shutdown - Logging to stdout for journald integration - Coordinates all components Architecture: - Direct Python integration (no shell scripts) - Clean separation of concerns - Type hints and dataclasses - Comprehensive logging - Graceful shutdown handling Updated ROADMAP.md to mark Phase 2 as complete. Next: Phase 3 - Configuration Migration (mostly done in Phase 1)
Sensorpajen
Raspberry Pi Zero W som läser av diverse mätere och rapporterar data till MQTT. Använder Xiaomi Mijia thermometer 2 samt inbyggd DHT11 sensor
Bluetooth termometrarna
- LYWSD03MMC.py - script för att läsa av Mi Mijia Thermometer 2
- sensorer.ini - config till LYWSD03MMC
- sendToMQTT.sh - stödscript till LYWSD03MMC
- bluetooth_utils.py - stödscript till LYWSD03MMC
Sensorer i pajen
- temperatur_koksfonstret.py - Läser av DHT 11 sensor kopplad till Pi, används av cron
- sensorer.sh - script för att starta tmux vid boot, används av cron
Cronjobb
@reboot /home/pi/sensorer.sh
*/1 * * * * /home/pi/temperatur_koksfonstret.py 11 4
Flasha nya termometrar
- Öppna och flasha bara en termometer i taget!!
- Ha en permanent marker tillgänglig
- Flashning måste göras från en mobil
- Ta reda på termometerns mac-adress med någon bra app för Bluetooth BLE . Den heter något i stil med LYWSD03MMC (Om du bara startat en termometer så är det lätt att hitta)
- Ladda ned senaste releasen av firmware här: https://github.com/atc1441/ATC_MiThermometer
- Öppna den här webbsidan: https://atc1441.github.io/TelinkFlasher.html
- Tryck på Connect och sök upp den aktiva termometern. Den heter något i stil med LYWSD03MMC
- Gör Do Activation och när den hittat Select Firmarware Start Flashing
- Anteckna mac-adressen från (1) och sätt ett id på termometern. Det ska senare in i filen sensorer.ini
- Verifiera i din BLE läsare att termometern nu heter något i stil med ATC_XXXXXX. Om du missade att anteckna mac-adressen så är första delen alltid A4:C1:38 och XXXXXX i namnet är de sista tre delarna
Description
Script på Raspberry Pi sensorpajern. Den mäter temperatur och luftfuktighet och skickar till mqtt.
sensorpajen v3.0.1
Latest
Languages
Python
90.8%
Shell
9.2%