A versatile and extensible platform for home and life automation with hundreds of supported integrations
Go to file
Fabio Manganiello 0ad4597daf No need to keep the wiki as a submodule 2021-02-02 01:26:54 +01:00
bin s/github.com/git.platypush.tech/g 2021-01-23 15:03:43 +01:00
docs No need to keep the wiki as a submodule 2021-02-02 01:26:54 +01:00
examples Documentation domain name moved to docs.platypush.tech 2021-02-02 01:05:07 +01:00
platypush FIX: zigbee2mqtt applies different logic to /<device_name> and /<device_name>/get 2021-01-22 16:24:43 +01:00
tests Increased daemon warm-up waiting time and timeout in tests 2019-07-15 16:28:44 +02:00
.gitignore Added HTTP client environment variables to .gitignore 2020-03-24 00:18:04 +01:00
.gitmodules No need to keep the wiki as a submodule 2021-02-02 01:26:54 +01:00
.readthedocs.yml Minimum required Python version bumped (3.5->3.6) and readthedocs Python interpreter upgraded (3.6->3.7). 2020-08-22 15:28:52 +02:00
.travis.requirements Added Zeroconf to Travis requirements 2020-08-20 00:32:01 +02:00
.travis.yml Got rid of Python 3.6 test suite 2019-07-29 11:30:07 +02:00
Dockerfile Refactored platydock and platyvenv 2019-12-01 22:27:54 +01:00
LICENSE.txt Copyright year update 2020-09-28 13:11:07 +02:00
MANIFEST.in mercury-parser.js added to static assets to be copied upon installation 2019-07-25 18:36:14 +02:00
README.md Documentation domain name moved to docs.platypush.tech 2021-02-02 01:05:07 +01:00
generate_missing_docs.py Added documentation for response objects as well 2020-03-05 17:41:26 +01:00
requirements.txt Added GStreamer camera plugin [relates to #151] 2020-09-28 22:10:56 +02:00
run_tests.sh Script name change 2017-12-22 02:18:12 +01:00
setup.cfg Bump version: 0.13.8 → 0.13.9 2020-11-11 22:31:47 +01:00
setup.py Added extra alias "snowboy" for "hotword" 2021-01-31 12:42:02 +01:00

README.md

Platypush

Build Status Documentation Status pip version License Last Commit Contributions

  • Advised read: Getting started with Platypush.

  • The blog is in general a good place to get more insights on what you can build with it and inspiration about possible usages.

  • The wiki also contains many resources on getting started.

  • Extensive documentation for all the available integrations and messages is available on ReadTheDocs.

  • If you have issues/feature requests/enhancement ideas please create an issue.

  • A Reddit channel is also available for more general questions.


Imagine Platypush as some kind of IFTTT on steroids - or Tasker, or Microsoft Flow, or PushBullet on steroids. Platypush aims to turn any device in a smart hub that can control things, interact with cloud services and send messages to other devices. It's a general-purpose lightweight platform to process any request and run any logic triggered by custom events.

Imagine the ability of running any task you like, or automate any routine you like, on any of your devices. And the flexibility of executing actions through a cloud service, with the power of running them from your laptop, Raspberry Pi, smart home device or smartphone.

You can use Platypush to do things like:

  • Control your smart home lights
  • Control your favourite music player
  • Interact with your voice assistant
  • Get events from your Google or Facebook calendars
  • Read data from your sensors and trigger custom events whenever they go above or below some custom thresholds
  • Control the motors of your robot
  • Send automated emails
  • Synchronize the clipboards on your devices
  • Control your smart switches
  • Implement custom text-to-speech commands
  • Build any kind of interaction with your Android device using Tasker
  • Play local videos, YouTube videos and torrent links
  • Get weather forecast for your location
  • Build your own web dashboard with calendar, weather, news and music controls (basically, anything that has a Platypush web widget)
  • ...and much more (basically, anything that comes with a Platypush plugin)

Imagine the ability of executing all the actions above through messages delivered through:

Imagine the ability of building custom event hooks to automatically trigger any actions:

  • When your voice assistant recognizes some text
  • When you start playing a new song
  • When a new event is added to your calendar
  • When a new article is published on your favourite feed
  • When the weather conditions change
  • When your press a Flic button with a certain pattern
  • When you receive a new push on your Pushbullet account
  • When your GPS signal enters a certain area
  • Whenever a new MIDI event is received (yes, you heard well :) )
  • Whenever a sensor sends new data
  • At a specific date or time
  • ...and so on (basically, anything can send events that can be used to build hooks)

Imagine the ability of running the application, with lots of those bundled features, on any device that can comes with Python (only compatible with version 3.6 and higher). Platypush has been designed with performance in mind, it's been heavily tested on slower devices like Raspberry Pis, and it can run the web server features, multiple backends and plugins quite well even on a Raspberry Pi Zero - it's even been tested with some quite impressive performance on an older Nokia N900, and of course you can run it on any laptop, desktop, server environment. It's been developed mainly with IoT in mind (and some of its features overlap with IoT frameworks like Mozilla IoT and Android Things), but nothing prevents you from automating any task on any device and environment.

To get started:

  • Wiki for installation notes, quick start, examples and architecture reference
  • Read the docs for a complete reference on the available plugins and backends
  • Blog articles describing hands-on applications of Platypush

Funding

If you use and love Platypush, please consider buying me a coffee/beer.

I've been working on Platypush all by myself in my spare time for the past few years, and I've made sure that it remains open and free, and I've even opted to pay for a self-hosted solution for the repo, the blog and the website to make sure that it always stays free, independent and without paywalls.

If you think that I've done a good job, please consider donating some of your spare change - I'm definitely not planning to get rich with this project, but I'd love to have at least the monthly costs for the server covered by users.

Issues and requests opened by donors will also be given priority over others.