This Python application connects to an X45 MPPT solar charge controller via Bluetooth Low Energy (BLE).
![]() |
3 days ago | |
---|---|---|
images | 1 year ago | |
src | 3 days ago | |
tests | 3 days ago | |
.gitignore | 6 days ago | |
LICENSE | 1 year ago | |
README.md | 3 days ago | |
main.py | 3 days ago | |
renovate.json | 1 year ago | |
requirements.txt | 1 month ago |
This Python application connects to an X45, 10 A, MPPT solar charge controller via Bluetooth Low Energy (BLE). It reads the data from the charge controller and publishes it to HomeAssistant using MQTT.
The application establishes a connection to the MQTT broker and the BLE device, retrieves the details from the charge controller periodically, and publishes the data to MQTT topics. HomeAssistant can then subscribe to these topics to display the data in its user interface.
Clone the repository:
git clone https://github.com/subDesTagesMitExtraKaese/solarlife-mppt-ble-client.git
Change into the project directory:
cd solarlife-mppt-ble-client
Install the required Python packages using pip:
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Run the application by providing the required command-line arguments:
python main.py <BLE device address> --host <MQTT broker host> --port <MQTT broker port> --username <MQTT username> --password <MQTT password>
Replace <BLE device address>
with the Bluetooth address of your MPPT solar charge controller. The other arguments are optional and can be used to customize the MQTT connection.
The application will connect to the MQTT broker and the BLE device. It will periodically retrieve the data from the charge controller and publish it to MQTT topics.
HomeAssistant can subscribe to the MQTT topics to display the published data in its user interface.
The application publishes the data to MQTT topics in the following format:
homeassistant/sensor/solarlife/<key>/state
homeassistant/sensor/solarlife/<key>/config
homeassistant/switch/solarlife/<key>/command
The <key>
represents the data field from the charge controller. For example, battery_percentage
, battery_voltage
, etc.
To integrate the published data into HomeAssistant, you have to enable the mqtt platform. The device is discovered automatically.
Here's an example configuration in HomeAssistant's configuration.yaml
file:
mqtt: {}
Contributions are welcome! If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request.
This project is licensed under the MIT License.