Skip to main content

Python library to connect to a Fronius Wattpilot Wallbox

Project description

Wattpilot

This project is still in early development and might never leave this state

wattpilot is a Python 3 (>= 3.9) module to interact with Fronius Wattpilot wallboxes which do not support (at the time of writting) a documented API. This functionality of this module utilized a undocumented websockets API, which is also utilized by the official Wattpilot.Solar mobile app.

Wattpilot Shell

The shell provides an easy way to explore the available properties and get or set their values.

# Install the wattpilot module, if not yet done so:
pip install .

Run the interactive shell

# Usage:
wattpilotshell <wattpilot_ip> <password>
> help
Wattpilot Shell Commands:
  dump: Dump all property values
  exit: Exit the shell
  get <name>: Get a property value
  info: Print most important infos
  list [propsearch]: List all properties (starting with propsearch if given)
  mqtt-connect <host> <port>: Connect to MQTT server
  mqtt-disconnect: Disconnect from MQTT server
  set <name> <value>: Set a property value
  watch message <type>: Watch message of given message type
  watch property <name>: Watch value changes of given property name
  unwatch message <type>: Unwatch messages of given message type
  unwatch property <name>: Unwatch value changes of given property name

It's also possible to pass a single command to the shell to integrate it into scripts:

# Usage:
wattpilotshell <wattpilot_ip> <password> "<command> <args...>"

# Examples:
wattpilotshell <wattpilot_ip> <password> "get amp"
wattpilotshell <wattpilot_ip> <password> "set amp 6"

Environment Variables

Environment Variable Description Default Value
MQTT_BASE_TOPIC Base topic for MQTT wattpilot
MQTT_CLIENT_ID MQTT client ID wattpilot2mqtt
MQTT_ENABLED Enable MQTT false
MQTT_HA_DISCOVERY_ENABLED Enable Home Assistant Discovery (not yet implemented) false
MQTT_HOST MQTT host to connect to
MQTT_MESSAGE_TOPIC_PATTERN Topic pattern to publish Wattpilot messages to {baseTopic}/{serialNumber}/messages/{messageType}
MQTT_PORT Port of the MQTT host to connect to 1883
MQTT_PROPERTY_READ_TOPIC_PATTERN Topic pattern to publish property values to {baseTopic}/{serialNumber}/properties/{propName}
MQTT_PROPERTY_SET_TOPIC_PATTERN Topic pattern to listen for property value changes for (not yet implemented) {baseTopic}/{serialNumber}/properties/{propName}/set
MQTT_PUBLISH_MESSAGES Publish received Wattpilot messages to MQTT true
MQTT_PUBLISH_PROPERTIES Publish received property values to MQTT false
MQTT_WATCH_PROPERTIES List of space-separated default properties to publish changes for (use "" for all properties) amp car fna lmo sse
WATTPILOT_CONNECT_TIMEOUT Connect timeout for Wattpilot connection 30
WATTPILOT_DEBUG_LEVEL Debug level INFO
WATTPILOT_INITIALIZED_TIMEOUT Wait timeout for property initialization 30
WATTPILOT_HOST IP address of the Wattpilot device to connect to
WATTPILOT_PASSWORD Password for connecting to the Wattpilot device

MQTT Support

It is possible to publish JSON messages received from Wattpilot and/or individual property value changes to an MQTT server. The easiest way to start the shell with MQTT support is using these environment variables:

export MQTT_ENABLED=true
export MQTT_HOST=<mqtt_host>
export WATTPILOT_HOST=<wattpilot_ip>
export WATTPILOT_PASSWORD=<wattpilot_password>
wattpilotshell

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wattpilot-0.1.tar.gz (22.7 kB view hashes)

Uploaded Source

Built Distribution

wattpilot-0.1-py3-none-any.whl (21.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page