Finalized landing page content
|
@ -114,6 +114,18 @@ main {
|
||||||
line-height: 1.5em;
|
line-height: 1.5em;
|
||||||
color: rgb(75, 75, 75);
|
color: rgb(75, 75, 75);
|
||||||
text-rendering: optimizelegibility;
|
text-rendering: optimizelegibility;
|
||||||
|
margin-top: .2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
main a {
|
||||||
|
color: initial;
|
||||||
|
opacity: .5;
|
||||||
|
text-decoration: none;
|
||||||
|
border-bottom: 1px dotted #444;
|
||||||
|
}
|
||||||
|
|
||||||
|
main a:hover {
|
||||||
|
opacity: .25;
|
||||||
}
|
}
|
||||||
|
|
||||||
main section {
|
main section {
|
||||||
|
@ -168,11 +180,20 @@ main section img {
|
||||||
font-family: 'Fira Code', monospace;
|
font-family: 'Fira Code', monospace;
|
||||||
padding: 1em;
|
padding: 1em;
|
||||||
border-radius: .5em;
|
border-radius: .5em;
|
||||||
|
white-space: pre;
|
||||||
}
|
}
|
||||||
|
|
||||||
.code .string {
|
.code .string {
|
||||||
color: #e47;
|
color: #e47;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.code .comment {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code .keyword {
|
||||||
|
color: #3a5;
|
||||||
|
}
|
||||||
/* *********** */
|
/* *********** */
|
||||||
/* Mobile menu */
|
/* Mobile menu */
|
||||||
/* *********** */
|
/* *********** */
|
||||||
|
|
BIN
www/img/blog.png
Normal file
After Width: | Height: | Size: 533 KiB |
BIN
www/img/dashboard.png
Normal file
After Width: | Height: | Size: 727 KiB |
BIN
www/img/extension.png
Normal file
After Width: | Height: | Size: 61 KiB |
BIN
www/img/grafana.png
Normal file
After Width: | Height: | Size: 464 KiB |
BIN
www/img/media-screenshot.png
Normal file
After Width: | Height: | Size: 146 KiB |
BIN
www/img/ml.png
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
www/img/telegram-bot.png
Normal file
After Width: | Height: | Size: 128 KiB |
BIN
www/img/zwave-screenshot.png
Normal file
After Width: | Height: | Size: 71 KiB |
247
www/index.html
|
@ -112,8 +112,251 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="code">
|
<div class="code">pip install <span class="string">'platypush[http,mqtt]'</span></div>
|
||||||
pip install <span class="string">'platypush[http,mqtt]'</span>
|
</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>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|