Git
Connect things and services together with Platypush
Platypush is an open-source modular platform for automation aimed to run on any device that can run a Python interpreter.
App preview
Integrations
Control devices and services through hundreds of available integrations.
Platypush comes with many integrations, each wrapped by a consistent API, making it very easy to create automation routines when a certain event happens, programmatically action them in your scripts, or control them all from a single consistent web interface. Discover the available integrations. The README is also a good place to get started.
Easy to install, easy to extend.

Platypush comes with an intentionally thin core that dispatches messages and events over Redis, and its power comes from the high number of integrations it provides. It's up to the user to decide the pick the use case and use the appropriate extensions.

Extensions may come with optional sets of additional dependencies, and they can be easily installed through pip - see the setup.py for a full list of supported extras. The documentation also provided the required dependencies for each integration.

pip install 'platypush[http,mqtt]'
# Enable the Z-Wave monitor backend.zwave: - device: /dev/ttyUSB0 # Enable the Z-Wave actions plugin zwave: - enabled: True # Enable the Philips Hue plugin light.hue: # Enable the Hue lights plugin - enabled: True
Easily configure your integrations.
Configuring an integration is as simple as defining its attributes in ~/.config/platypush/config.yaml. The attributes of each integration are the same as their documented constructors, and an example configuration is also provided.
Create hooks that connect events to actions.

It's very easy to create pieces of logic that run some custom actions when an event is triggered. Just drop a Python script into ~/.config/platypush/scripts, or create a YAML snippet into your config.yaml.

The interface of the available events is also provided on the documentation, as well as the methods exposed by each plugin and its parameters.

from platypush.event.hook import hook from platypush.utils import run from platypush.message.event.zwave ZwaveValueChangedEvent @hook(ZwaveValueChangedEvent) def on_zwave_value(event, **context): if event.value['label'] == 'Motion Sensor': # Turn on the lights when motion is detected if event.value['data'] is True: run('light.hue.on') # Turn off the lights when motion is not detected elif event.value['data'] is False: run('light.hue.off')
Web panel screenshot
Easily control all of your devices and integrations from a single interface.
backend.http also provides a web panel that will allow you to easily control all of your integrations from a single place, on top of exposing a simple JSON-RPC API that allows you to control your integrations from any place and any script.
Get inspired with periodic blog articles.
The blog is a useful resource with many articles on how to set up IoT device, how to create your own and how to use Platypush to glue everything together - from voice assistants, to calendars, to robots, to media centers, and so on.
Blog screenshot
Web extension
Use the web extension to debug your remote instances and run actions directly from your browser.
backend.http also provides a web panel that will allow you to easily control all of your integrations from a single place, on top of exposing a powerful API request editor that allows you to control your integrations from any place and any script. The extension is available for Chrome and Firefox, and the source code is publicly available.
Create your own dashboards.
Create your own all-screen dashboards with custom widgets to always keep an eye on e.g. calendar events, media status, weather, sensors, news or your own pictures carousel.
Dashboard screenshot
Grafana screenshot
Use Platypush to glue devices, databases and user interfaces.
Platypush can be the bridge that connects your sensors, mobile and IoT devices to databases and message queues and to Grafana to create advanced visualizations of your data. Be the owner of your data again, and visualize it wherever you like, however you like.
Control all of your devices and services over chat bots and voice.
Use the available voice assistant or chat bot integrations to interact with your smart devices and services over voice (all you need is a USB microphone) or chat bots (all you need is a messaging account).
Telegram bot screenshot
Media screenshot
All of your media devices and sources in one place.
With its numerous media integrations and a comprehensive web control panel, Platypush can turn a device as powerful as a Raspberry Pi 4 into the ultimate media center and streaming center.
IoT-powered, events-oriented and self-hosted machine learning.
Set up pipelines to automatically gather data from your events and dynamically train machine learning models to e.g. detect the presence of people or recognize specific sounds.
ML model screenshot

Platypush is and will always remain free, open-source and on-prem. If you have questions, suggestions, issues or want to contribute to the project:

Contact us or contribute.
Git