Commit graph

711 commits

Author SHA1 Message Date
Fabio Manganiello
b0339754b2 Implemented Mozilla DeepSpeech speech-to-text integration [closes #126] 2020-03-06 00:38:24 +01:00
Fabio Manganiello
27f847eac6 Support for is_muted/toggle_muted on Google assistant 2020-03-05 18:13:44 +01:00
Fabio Manganiello
124d2e356d Support for mic muted/unmuted event in Google assistant 2020-03-05 18:03:05 +01:00
Fabio Manganiello
5504048c22 Don't iterate on data if data is None 2020-02-26 11:33:50 +01:00
Fabio Manganiello
6e93c03438 Set success=True when we're able to retrieve data from the sensor 2020-02-26 11:27:34 +01:00
Fabio Manganiello
52a13f0511 Implemented retry mechanism in sensor backend 2020-02-26 11:12:46 +01:00
Fabio Manganiello
76800e00b1 Use the right handlers for Zigbee network online/offline events 2020-02-25 18:38:44 +01:00
Fabio Manganiello
f74c44c7fb There can be many Zigbee property set events; don't trigger a full refresh on all of them and only update the impacted devices instead 2020-02-25 18:13:11 +01:00
Fabio Manganiello
87a51b391c Support for custom TTS engine for rendering assistant response (see #86) 2020-02-24 20:23:22 +01:00
Fabio Manganiello
fb17aafe53 Support for custom audio volume for alarms 2020-02-23 23:09:40 +01:00
Fabio Manganiello
2d3c61173d Added Zigbee web panel (closes #123) 2020-02-23 22:54:50 +01:00
Fabio Manganiello
0643b7fade Support for intervals in seconds on alarm add/set 2020-02-22 16:18:56 +01:00
Fabio Manganiello
f8f3d2e310 Show default node number instead of empty string if name is not set 2020-02-22 01:10:36 +01:00
Fabio Manganiello
424077fdbc Completed ZWave web panel (see #123) 2020-02-22 01:00:52 +01:00
Fabio Manganiello
98727c4f31 Added support for values in Z-Wave web panel (see #123) 2020-02-20 02:34:35 +01:00
Fabio Manganiello
a0ceb560b4 Implemented alarm/timer plugin (closes #111) 2020-02-17 19:37:22 +01:00
Fabio Manganiello
9b2e4f9d0c Added count parameter to the ping backend 2020-02-17 13:39:40 +01:00
Fabio Manganiello
30e51ee299 Network initialization for the Pushbullet backend should be done in the run method.
Network errors in the constructor cause the whole application to fail.
Better to do the initialization in the run method with retries.
2020-02-17 00:46:33 +01:00
Fabio Manganiello
fcef7af6a4 Adding Z-Wave web panel (#123) [WIP] 2020-02-10 00:39:32 +01:00
Fabio Manganiello
c5adc141ea More robust mechanism for websocket message send section locking 2020-02-06 19:30:40 +01:00
Fabio Manganiello
ca030c9b25 Websocket notifications delivery should be thread-safe.
If multiple threads process events and notify the websocket
clients at the same time then we may end up with inconsistent
messages delivered on the websocket (and websockets is not
designed to handle such cases). Protecting the send call with
a per-socket lock makes sure that we only write one message
at the time for a certain client.
2020-02-06 01:04:36 +01:00
Fabio Manganiello
02246a48ae Added Z-Wave integration (closes #76) 2020-02-05 22:26:52 +01:00
Fabio Manganiello
8caa170676 Don't consider the trailing / in pre-select tab mode 2020-02-01 00:17:11 +01:00
Fabio Manganiello
b02b30656c Using /#[plugin.name] as a URL hint for selecting a tab on load.
Closes #83
2020-01-31 20:29:47 +01:00
Fabio Manganiello
eff21c0720 Added /plugin/<plugin_name> route for single plugin view (see #83) 2020-01-23 00:27:36 +01:00
Fabio Manganiello
8255f9af28 Added zigbee2mqtt integration (see #76) 2020-01-22 18:34:28 +01:00
Fabio Manganiello
f3b50d0de1 Using the Github link for the flag-icon.css instead of cloning the whole submodule 2020-01-20 22:38:13 +01:00
Fabio Manganiello
6c797b0ad9 Implemented support for assistant pause/resume conversation (closes #109) 2020-01-19 16:21:29 +01:00
Fabio Manganiello
89ae86492f If the latest build is still running then we should wait and not process events 2020-01-19 15:43:39 +01:00
Fabio Manganiello
db862d1d96 Datetime conversion should also support cases where the input is a float timestamp represented as a string 2020-01-19 15:39:57 +01:00
Fabio Manganiello
42eabcf661 More robust ISO date to timestamp conversion 2020-01-19 15:37:55 +01:00
Fabio Manganiello
bbb52ba191 Always convert datetime to UNIX timestamp in Travis-Ci backend.
Python can't perform comparisons between offset-aware and
offset-naive dateime objects. Instead, convert them to UTC
timestamps before comparisons.
2020-01-19 15:35:13 +01:00
Fabio Manganiello
c44de5e2d7 Grouped common CSS and JS includes into separate templates 2020-01-19 14:47:51 +01:00
Fabio Manganiello
4e45c1d0bc Removed font-awesome full submodule clone. Use the CDN-provided all.css file instead.
It won't work if the webapp runs on a device not connected to the internet,
but it saves a lot of installation space.
2020-01-18 19:59:02 +01:00
Fabio Manganiello
02607bae97 Dumb Python won't convert perfectly finely formatted ISO dates unless I do some manual conversion 2020-01-12 14:05:58 +01:00
Fabio Manganiello
b920927dab Added Travis-Ci integration (closes #104) 2020-01-12 13:53:46 +01:00
Fabio Manganiello
1e342cc8a5 New interface for implementing backends.
Backends that simply poll for changes and wait some time
between checks can just implement a `loop()` method and,
optionally, `__enter__` and `__exit__` methods, so they
can perform initialization/cleanup logic within a context
manager.
2020-01-11 18:13:25 +01:00
Fabio Manganiello
a7ca779870 Argument of int() can't be nullable 2020-01-11 16:24:35 +01:00
Fabio Manganiello
3b2ca4d70c Added Foursquare backend 2020-01-11 16:11:35 +01:00
Fabio Manganiello
3daf39e3e0 Stop polluting Pushbullet messages with StopEvent JSON whenever the backend stops. 2020-01-11 12:31:32 +01:00
Fabio Manganiello
4c3140c9b5 Fixed docs 2020-01-09 23:40:59 +01:00
Fabio Manganiello
35cefcc9f5 Improved consistency and robustness of sensors backend 2020-01-08 22:58:24 +01:00
Fabio Manganiello
9d592fe370 Added battery sensor backend 2020-01-08 14:55:58 +01:00
Fabio Manganiello
3e2a9c0401 Skip torrent status responses with no url. 2020-01-07 09:59:45 +01:00
Fabio Manganiello
9134a231b3 success=true will always be in the response: deal with it 2020-01-07 09:46:26 +01:00
Fabio Manganiello
d8a7c9c6e0 Added Arduino over Firmata integration - closes #92 2020-01-05 00:46:46 +01:00
Fabio Manganiello
8aadd5569e Added Trello backend: closes #90 2020-01-03 16:28:49 +01:00
Fabio Manganiello
1de3296c85 Support for group events and lists of authorized chat_ids 2020-01-01 23:28:21 +01:00
Fabio Manganiello
846d5ff2eb Support for underscores and minuses in Telegram command names 2020-01-01 22:33:57 +01:00
Fabio Manganiello
135cfc606c Added the right handler for location events 2020-01-01 21:06:51 +01:00
Fabio Manganiello
de429a5b7d Extended Telegram integration 2020-01-01 20:59:22 +01:00
Fabio Manganiello
fd5abc748f Added missing docs 2020-01-01 17:55:19 +01:00
Fabio Manganiello
753694a865 Added Telegram integration 2020-01-01 15:40:42 +01:00
Fabio Manganiello
49a7ee643e - Added Buienradar integration
- Refactored weather plugin/backend as Darksky plugin/backend
2019-12-31 08:51:19 +01:00
Fabio Manganiello
dc2b3689a2 Fixes 2019-12-30 19:04:13 +01:00
Fabio Manganiello
bc7c248f72 Added Google Pub/Sub integration 2019-12-30 09:33:26 +01:00
Fabio Manganiello
8f2eb1c4e0 Reimplemented workers as threads instead of processes 2019-12-29 23:18:58 +01:00
Fabio Manganiello
931ab9d673 Removed debug print 2019-12-29 16:55:50 +01:00
Fabio Manganiello
ba6c890a42 Refactored and improved camera plugin 2019-12-29 16:28:07 +01:00
Fabio Manganiello
663be43f06 Added ping plugin and backend 2019-12-27 23:26:39 +01:00
Fabio Manganiello
ce2b3ae849 LINT fixes 2019-12-27 19:22:48 +01:00
Fabio Manganiello
b880a02ef6 Fixed websocket on_error handler signature 2019-12-25 20:43:20 +01:00
Fabio Manganiello
29789461d7 Added Todoist integration 2019-12-25 20:33:26 +01:00
Fabio Manganiello
7ecb27463c Added missing '@' 2019-12-24 14:04:23 +01:00
Fabio Manganiello
ba31d4f4c9 Fixed parameter access 2019-12-24 14:00:06 +01:00
Fabio Manganiello
2edb3f0944 Added button for refreshing available cameras 2019-12-24 13:52:14 +01:00
Fabio Manganiello
ef58cc9e32 Support for username/password in camera URLs if authentication is required 2019-12-24 13:52:14 +01:00
Fabio Manganiello
a23f5446da Added GPIO web panel 2019-12-22 18:10:30 +01:00
Fabio Manganiello
93a3c72d4e Added camera.android.ipcam web panel 2019-12-18 01:00:56 +01:00
Fabio Manganiello
416c9ceb93 Fixed picamera mjpeg stream 2019-12-17 22:44:15 +01:00
Fabio Manganiello
634aeec58d Refactored camera.pi endpoints 2019-12-17 21:51:55 +01:00
Fabio Manganiello
17af488b32 Using an io memory buffer to write the streamed images instead of a
physical file to improve streaming performance
2019-12-17 21:32:56 +01:00
Fabio Manganiello
60d5e7a0f6 Response cast fix 2019-12-17 20:00:08 +01:00
Fabio Manganiello
fb744dbc74 Added picamera streaming route and web panel tab 2019-12-17 19:54:38 +01:00
Fabio Manganiello
e1ed7f681c Added bluetooth OBEX file browser service (see #89) 2019-12-12 00:11:27 +01:00
Fabio Manganiello
5d2d7d55af Added bluetooth OBEX file receiver service (see #89) 2019-12-11 22:22:56 +01:00
Fabio Manganiello
8c41110145 Added bluetooth plugin (see #89) 2019-12-11 18:05:17 +01:00
Fabio Manganiello
2c8993e67d LINT fixes 2019-12-09 19:22:38 +01:00
Fabio Manganiello
09caa66317 Return immediately in _parse_records if tag.ndef is null 2019-12-08 21:25:39 +01:00
Fabio Manganiello
d498c21518 Implemented Node-RED backend, solves #88 2019-12-08 19:02:08 +01:00
Fabio Manganiello
a6488e15fe Don't treat the execute tab as a special tab in the web panel,
otherwise configurations with enabled_plugins/disabled_plugins
won't work with it
2019-12-08 17:33:21 +01:00
Fabio Manganiello
be5c5d365c Added execute tab to webpanel 2019-12-08 16:25:03 +01:00
Fabio Manganiello
d38746d278 Moved imports for extra dependencies inside the methods where they are actually used 2019-12-01 23:35:05 +01:00
Fabio Manganiello
f281411b2e Set the light property before the any_on/all_on check on the group 2019-12-01 16:33:48 +01:00
Fabio Manganiello
3bbb6cf053 Include dev version of vue.js if available in the HTTP static/js
folder, otherwise include the minified version
2019-12-01 16:33:48 +01:00
Fabio Manganiello
9b04570e49 Assistant event refactor: always explicitly pass the assistant object.
Also added match_condition override for ResponseEvent to capture the
assistant response text, when available, and prevent the default
response - it should solve #86.
2019-11-26 00:16:32 +01:00
Fabio Manganiello
2cf9bf654d Removed unused imports from Snowboy backend 2019-11-25 20:27:52 +01:00
Fabio Manganiello
f98a440200 Support for explicit enabled_plugins/disabled_plugins on webpanel index 2019-11-22 00:00:14 +01:00
Fabio Manganiello
f04f42caef Refactored and simplified Snapcast backend. Moreover the "grace sleep"
should happen in any case of errors, not only on disconnect errors,
to prevent a tight loop of retries.
2019-11-05 18:11:04 +01:00
Fabio Manganiello
9914d4ef0b Handling CSS and fonts properly in RSSUpdates digests 2019-10-13 12:43:18 +02:00
Fabio Manganiello
4c72646759 typo 2019-10-08 10:24:48 +00:00
Fabio Manganiello
ca41f6b8cf Torrent download from web panel should be asynchronous 2019-10-08 10:14:45 +00:00
Fabio Manganiello
313a195831 Support for torrent direct download through magnet link in web panel 2019-09-29 17:48:30 +02:00
Fabio Manganiello
a17dba3ec6 LINT warnings fix 2019-09-26 19:23:38 +02:00
Fabio Manganiello
168b1b0e5a Finalized camera.ir.mlx90640 web interface 2019-09-26 18:33:44 +02:00
Fabio Manganiello
d7dc74beed Added web plugin for mlx90640 infrared camera 2019-09-26 11:15:18 +02:00
Fabio Manganiello
d6de1189e5 Simplified motion sensor interface by removing unneeded absolute vector 2019-09-24 00:13:02 +02:00
Fabio Manganiello
3da6c41f21 Shorter default poll_seconds (0.01) for better motion sensitivity 2019-09-24 00:10:17 +02:00
Fabio Manganiello
f76e45dda9 Backend name typo 2019-09-23 23:34:46 +02:00
Fabio Manganiello
7e92f59d44 Added PWM3901 optical motion/flow sensor plugin 2019-09-23 23:28:33 +02:00