381 lines
16 KiB
HTML
381 lines
16 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
|
|
<link rel="stylesheet" href="fonts/poppins.css">
|
|
<link rel="stylesheet" href="fonts/fira-sans.css">
|
|
<link rel="stylesheet" href="fonts/fira-code.css">
|
|
<link rel="stylesheet" href="css/application.css">
|
|
<title>Platypush</title>
|
|
|
|
<script type="text/javascript">
|
|
function toggleMobileMenu() {
|
|
const menu = document.getElementById('mobile-menu');
|
|
console.log(menu);
|
|
if (menu.classList.length)
|
|
menu.className = '';
|
|
else
|
|
menu.className = 'visible';
|
|
}
|
|
</script>
|
|
</head>
|
|
|
|
<body>
|
|
<header>
|
|
<div class="left">
|
|
<a href="https://platypush.tech" class="logo">
|
|
<img src="img/icon.png" alt="Logo">
|
|
<span class="name">Platypush</span>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="right is-desktop">
|
|
<div class="item">
|
|
<a href="https://git.platypush.tech/platypush" target="_blank">Git</a>
|
|
</div>
|
|
<div class="item">
|
|
<a href="https://docs.platypush.tech" target="_blank">Docs</a>
|
|
</div>
|
|
<div class="item">
|
|
<a href="https://blog.platypush.tech">Blog</a>
|
|
</div>
|
|
<div class="item">
|
|
<a href="https://git.platypush.tech/platypush/platypush/-/wikis/home" target="_blank">Wiki</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="right is-mobile">
|
|
<button type="button" class="menu-icon" title="Menu" onclick="toggleMobileMenu()">
|
|
<img src="img/menu-icon.png">
|
|
</button>
|
|
</div>
|
|
</header>
|
|
|
|
<main>
|
|
<section>
|
|
<div class="left">
|
|
<div class="title">
|
|
Connect things and services together with Platypush
|
|
</div>
|
|
|
|
<div class="content">
|
|
Platypush is an open-source modular platform for automation aimed to run on any device that
|
|
can run a Python interpreter.
|
|
</div>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<img src="img/preview.png" alt="App preview">
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<img src="img/integrations.png" alt="Integrations">
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div class="title">
|
|
Control devices and services through hundreds of available integrations.
|
|
</div>
|
|
|
|
<div class="content">
|
|
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.
|
|
<a href="https://docs.platypush.tech" target="_blank">Discover the available integrations.</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<div class="title">
|
|
Easy to install, easy to extend.
|
|
</div>
|
|
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
<p>
|
|
Extensions may come with optional sets of additional dependencies, and they can be easily installed
|
|
through <tt>pip</tt> - see the <a
|
|
href="https://git.platypush.tech/platypush/platypush/-/blob/master/setup.py#L169"
|
|
target="_blank"><tt>setup.py</tt></a> for a full list of supported extras. The <a
|
|
href="https://docs.platypush.tech" target="_blank">documentation</a> also provided the required
|
|
dependencies for each integration.
|
|
</p>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div class="code">pip install <span class="string">'platypush[http,mqtt]'</span></div>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<div class="code"><span class="comment"># Enable the Z-Wave monitor</span>
|
|
<span class="keyword">backend.zwave</span>:
|
|
<span class="keyword">- device</span>: /dev/ttyUSB0
|
|
|
|
<span class="comment"># Enable the Z-Wave actions plugin</span>
|
|
<span class="keyword">zwave</span>:
|
|
<span class="keyword">- enabled</span>: <span class="string">True</span>
|
|
|
|
<span class="comment"># Enable the Philips Hue plugin</span>
|
|
<span class="keyword">light.hue</span>:
|
|
<span class="comment"># Enable the Hue lights plugin</span>
|
|
<span class="keyword">- enabled</span>: <span class="string">True</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div class="title">
|
|
Easily configure your integrations.
|
|
</div>
|
|
|
|
Configuring an integration is as simple as defining its attributes in
|
|
<tt>~/.config/platypush/config.yaml</tt>. The attributes of each integration are the same as their
|
|
documented constructors, and an
|
|
<a href="https://git.platypush.tech/platypush/platypush/-/blob/master/examples/conf/config.yaml">example configuration</a>
|
|
is also provided.
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<div class="title">
|
|
Create hooks that connect events to actions.
|
|
</div>
|
|
|
|
<p>
|
|
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 <tt>~/.config/platypush/scripts</tt>, or create a YAML snippet into
|
|
your <tt>config.yaml</tt>.
|
|
</p>
|
|
|
|
<p>The interface of the available events is also provided on the documentation, as well as the
|
|
methods exposed by each plugin and its parameters.</p>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div class="code"><span class="keyword">from</span> platypush.event.hook <span class="keyword">import</span> hook
|
|
<span class="keyword">from</span> platypush.utils <span class="keyword">import</span> run
|
|
<span class="keyword">from </span>platypush.message.event.zwave <span class="keyword">ZwaveValueChangedEvent</span>
|
|
|
|
<span class="keyword">@hook</span>(ZwaveValueChangedEvent)
|
|
<span class="keyword">def</span> on_zwave_value(event, **context):
|
|
<span class="keyword">if</span> event.value['label'] == <span class="string">'Motion Sensor'</span>:
|
|
<span class="comment"># Turn on the lights when motion is detected</span>
|
|
<span class="keyword">if</span> event.value['data'] is <span class="string">True</span>:
|
|
run(<span class="string">'light.hue.on'</span>)
|
|
<span class="comment"># Turn off the lights when motion is not detected</span>
|
|
<span class="keyword">elif</span> event.value['data'] is <span class="string">False</span>:
|
|
run(<span class="string">'light.hue.off'</span>)
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<img src="img/zwave-screenshot.png" alt="Web panel screenshot">
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div class="title">
|
|
Easily control all of your devices and integrations from a single interface.
|
|
</div>
|
|
|
|
<div class="content">
|
|
<tt>backend.http</tt> 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.
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<div class="title">
|
|
Get inspired with periodic blog articles.
|
|
</div>
|
|
|
|
<div class="content">
|
|
The <a href="https://blog.platypush.tech">blog</a> 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.
|
|
</div>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<img src="img/blog.png" alt="Blog screenshot">
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<img src="img/extension.png" alt="Web extension">
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div class="title">
|
|
Use the web extension to debug your remote instances and run actions directly from your browser.
|
|
</div>
|
|
|
|
<div class="content">
|
|
<tt>backend.http</tt> 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
|
|
<a href="https://chrome.google.com/webstore/detail/platypush/aphldjclndofhflbbdnmpejbjgomkbie" target="_blank">Chrome</a>
|
|
and <a href="https://addons.mozilla.org/en-US/firefox/addon/platypush/" target="_blank">Firefox</a>,
|
|
and the <a href="https://git.platypush.tech/platypush/platypush-webext" target="_blank">source
|
|
code</a> is publicly available.
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<div class="title">
|
|
Create your own dashboards.
|
|
</div>
|
|
|
|
<div class="content">
|
|
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.
|
|
</div>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<img src="img/dashboard.png" alt="Dashboard screenshot">
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<img src="img/grafana.png" alt="Grafana screenshot">
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div class="title">
|
|
Use Platypush to glue devices, databases and user interfaces.
|
|
</div>
|
|
|
|
<div class="content">
|
|
Platypush can be the bridge that connects your sensors, mobile and IoT devices to databases and
|
|
message queues and to Grafana to create
|
|
<a href="https://blog.platypush.tech/article/How-to-build-your-personal-infrastructure-for-data-collection-and-visualization">advanced visualizations of your data</a>.
|
|
Be the owner of your data again, and visualize it wherever you like, however you like.
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<div class="title">
|
|
Control all of your devices and services over chat bots and voice.
|
|
</div>
|
|
|
|
<div class="content">
|
|
Use the available
|
|
<a href="https://blog.platypush.tech/article/Build-custom-voice-assistants">voice assistant</a>
|
|
or
|
|
<a href="https://blog.platypush.tech/article/Build-a-bot-to-communicate-with-your-smart-home-over-Telegram">chat bot</a>
|
|
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).
|
|
</div>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<img src="img/telegram-bot.png" alt="Telegram bot screenshot" style="width: auto; height: 70%">
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<img src="img/media-screenshot.png" alt="Media screenshot">
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div class="title">
|
|
All of your media devices and sources in one place.
|
|
</div>
|
|
|
|
<div class="content">
|
|
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.
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<div class="title">
|
|
IoT-powered, events-oriented and self-hosted machine learning.
|
|
</div>
|
|
|
|
<div class="content">
|
|
Set up pipelines to automatically gather data from your events and dynamically train machine learning
|
|
models to e.g.
|
|
<a href="https://blog.platypush.tech/article/Detect-people-with-a-RaspberryPi-a-thermal-camera-Platypush-and-a-pinch-of-machine-learning">detect the presence of people</a> or
|
|
<a href="https://blog.platypush.tech/article/Create-your-smart-baby-monitor-with-Platypush-and-Tensorflow">recognize specific sounds</a>.
|
|
</div>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<img src="img/ml.png" alt="ML model screenshot" style="width: 80%">
|
|
</div>
|
|
</section>
|
|
|
|
<section>
|
|
<div class="left">
|
|
<div class="content">
|
|
<p>
|
|
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:
|
|
</p>
|
|
|
|
<ul>
|
|
<li>Open a <a href="https://git.platypush.tech/platypush/platypush/-/issues" target="_blank">
|
|
Gitlab issue</a>.</li>
|
|
<li>Reach out on <a href="https://www.reddit.com/r/platypush/" target="_blank">
|
|
Reddit</a>.</li>
|
|
<li>Open a <a href="https://git.platypush.tech/platypush/platypush/-/merge_requests" target="_blank">
|
|
merge request</a>.</li>
|
|
<li><a href="mailto:admin@platypush.tech" target="_blank">Contact us</a>.</li>
|
|
<li>Donations to cover the costs for hosting the infrastructure <a
|
|
href="https://paypal.me/fabiomanganiello" target="_blank">are also welcome</a>!
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="right">
|
|
<div class="title">
|
|
Contact us or contribute.
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<div id="mobile-menu">
|
|
<div class="item">
|
|
<a href="https://git.platypush.tech/platypush" target="_blank">Git</a>
|
|
</div>
|
|
<div class="item">
|
|
<a href="https://docs.platypush.tech" target="_blank">Docs</a>
|
|
</div>
|
|
<div class="item">
|
|
<a href="https://blog.platypush.tech">Blog</a>
|
|
</div>
|
|
<div class="item">
|
|
<a href="https://git.platypush.tech/platypush/platypush/-/wikis/home" target="_blank">Wiki</a>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</body>
|
|
</html>
|
|
|