Skip to main content

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 None until first reported. Status topics are retained on the broker, so a fresh subscriber receives the current snapshot immediately.
  • The hello announcement (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_house are only meaningful with a Powerwall/meter configured; otherwise Prism publishes 0.

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)

Source distribution for pysillaprism 0.2.1
File Size Uploaded
pysillaprism-0.2.1.tar.gz 13.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pysillaprism 0.2.1
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page