pysillaprism
Transport-agnostic Python client library for the Silla Prism EV wallbox, speaking its native MQTT protocol (topic manual rel. 4.0).
The library does not own an MQTT connection. It parses the Prism topics into
typed state and builds the command topics; you wire it to whatever MQTT client
you already have — for example Home Assistant's mqtt integration. This keeps
it free of transport dependencies and trivially unit-testable.
Install
pip install pysillaprism
Usage
from pysillaprism import PrismDevice, PortMode
# `publish` may be sync or async (e.g. hass mqtt.async_publish).
async def publish(topic: str, payload: str) -> None:
...
device = PrismDevice("prism", publish=publish)
# Wire callbacks (all optional).
device.on_status_update = lambda upd: print("changed", upd.field)
device.on_event = lambda ev: print("touch/knock", ev.values)
device.on_command_result = lambda res: print(res.command, res.result)
device.on_hello = lambda info: print("serial", info.serial)
# Subscribe your MQTT client to `device.subscription_topic` ("prism/#")
# and feed every message in:
device.handle_message("prism/1/state", "3")
print(device.status.port(1).state) # PortState.CHARGING
print(device.status.energy.power_grid) # signed watts
# Send commands:
await device.set_mode(PortMode.NORMAL)
await device.set_current_limit(9.6) # amps, for load balancing
await device.set_current_user(16) # amps, mirrors the +/- buttons
await device.authorize()
Notes on the protocol
- Prism publishes a topic only when its value changes, so status fields stay
Noneuntil first reported. Status topics are retained on the broker, so a fresh subscriber receives the current snapshot immediately. - The
helloannouncement (which carries the serial and firmware version) is sent only when Prism (re)connects and is not retained. Treat device info as opportunistic: it populates on the next Prism reboot, and the device works without it. Identify a device by its base topic, not its serial. power_solar/power_houseare only meaningful with a Powerwall/meter configured; otherwise Prism publishes0.
License
MIT © Ermanno Baschiera. Not affiliated with Silla S.r.l.
Release files for pysillaprism 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pysillaprism-0.2.1.tar.gz | 13.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pysillaprism-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 27.1 kB
Release files / pysillaprism-0.2.1.tar.gz
| Download URL | pysillaprism-0.2.1.tar.gz |
|---|---|
| Size | 13.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9c8bd98ff87692b05b4a591e96ed806bbb4bdc241b6945b910dddc0a531e416b
|
|
BLAKE2b-256 checksum How to use checksums |
ffa438c9da0241d1144132e401565fd52face965311c5fc3477da17a1a3e0661
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency logRelease files / pysillaprism-0.2.1-py3-none-any.whl
| Download URL | pysillaprism-0.2.1-py3-none-any.whl |
|---|---|
| Size | 13.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
76b2e44c766b8599e878c5ddf6712122e40e1275a8013df13f8704c98d4f6fe7
|
|
BLAKE2b-256 checksum How to use checksums |
9549f6600cbd735c5eaf1a288fd72d9f7dddf23d0e3dd43205397a7c87e572b3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.
Transparency log