Python API for interacting with the STIEBEL ELTRON ISG web gateway via modbus for controlling integral ventilation units and heat pumps.
This module is based on the STIEBEL ELTRON modbus user manual, but is not official, developed, supported or endorsed by Stiebel Eltron GmbH & Co. KG. For questions and other inquiries, use the issue tracker in this repo please.
You need to have Python installed.
- STIEBEL ELTRON Internet-Service Gateway ISG WEB with enabled modbus module
- You can call the STIEBEL ELTRON support, if your ISG does not have the modbus module enabled. They upgraded mine for free.
- STIEBEL ELTRON heatpumpt (compatible). Successfully used devices:
- LWZ504e
- LWZ304
- Network connection to the ISG WEB
The package is available in the Python Package Index.
$ pip install pystiebeleltronThe sample below shows how to use this Python module (api for wpm heat pumps).
The API takes an already-connected ModbusUnit. You own the connection: open it, hand a unit to the API, and close it when done. Each register block is a component exposed on the API, and values are read as typed attributes (None when the register is unavailable).
import asyncio
from modbus_connection.pymodbus import connect_tcp
from pystiebeleltron.wpm import WpmStiebelEltronAPI
async def main():
connection = await connect_tcp('IP_ADDRESS_ISG', port=502)
api = WpmStiebelEltronAPI(connection.for_unit(1))
await api.async_update()
print(f"outside temperature: {api.system_values.outside_temperature}")
print(f"water comfort target temperature: {api.system_parameters.comfort_temperature}")
# Writing a register:
await api.system_parameters.write("comfort_temperature", 50)
await connection.close()
asyncio.run(main())python-stiebel-eltron is licensed under MIT, for more details check LICENSE.