Fredrik Wahlberg c9b68dd8e2 Phase 2 Complete: Python Package Structure
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)
2025-12-27 13:17:26 +01:00
2021-01-11 09:14:35 +00:00
2025-12-27 13:10:40 +01:00

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
  1. 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)
  2. Ladda ned senaste releasen av firmware här: https://github.com/atc1441/ATC_MiThermometer
  3. Öppna den här webbsidan: https://atc1441.github.io/TelinkFlasher.html
  4. Tryck på Connect och sök upp den aktiva termometern. Den heter något i stil med LYWSD03MMC
  5. Gör Do Activation och när den hittat Select Firmarware Start Flashing
  6. Anteckna mac-adressen från (1) och sätt ett id på termometern. Det ska senare in i filen sensorer.ini
  7. 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.
Readme 1 MiB
2025-12-29 15:35:53 +01:00
Languages
Python 90.8%
Shell 9.2%