Architecture
The architecture of Pidgeon is designed to efficiently collect and manage electrical billing data. The diagram below provides a visual representation of the system's architecture.
In the context of a location, there are various types of meters, such as the Abb B2x meter and the Schneider iEM3xxx meter, which are connected via RS-485. The Gateway, accessible via port 502, serves as an intermediary for data communication.
The Raspberry Pi hosts the Pidgeon application, which is divided into three main packages: Configuration, Services, and Processes.
- Configuration: This package contains the Manager component, responsible for managing the application's configuration.
- Services: This package contains several service components:
- Hardware: Interacts with the physical hardware of the Raspberry Pi.
- Network: Manages network communications.
- Modbus: Handles the Modbus protocol for communication with the meters.
- Database: Manages the local PostgreSQL database.
- Cloud: Handles communication with the cloud server.
- Processes: This package contains various processes that Pidgeon runs:
- Discovery: Discovers meters on the network.
- Ping: Regularly checks the health of the meters.
- Measure: Takes electrical measurements from the meters.
- Health: Checks the health of Pidgeon and stores it in the local database.
- Push: Sends measurements to the cloud server.
- Poll: Polls the cloud server for configuration updates.
- Update: Updates the server of meter and Raspberry PI health.
- Daily: Sets the daily tariff of the meters.
- Nightly: Sets the nightly tariff of the meters.
Please refer to the diagram for a visual representation of these components and their interactions.