Commit graph

920 commits

Author SHA1 Message Date
Fabio Manganiello
e9d9ef252f Frames directory should be created in 0o755 mode 2020-09-28 02:33:27 +02:00
Fabio Manganiello
df1e03f0af Added FFmpeg camera plugin [relates to #150] 2020-09-27 12:52:07 +02:00
Fabio Manganiello
c269c62fe6 Refactored logging names 2020-09-27 01:33:38 +02:00
Fabio Manganiello
6e6092e4b2 Do proper decapsulation for PiCamera wrapped object when reinitialized 2020-09-25 18:25:33 +02:00
Fabio Manganiello
ac42f7eba4 Make sure that the PiCamera session is properly closed and re-opened on each stream request 2020-09-25 18:06:27 +02:00
Fabio Manganiello
258a9b57ce release_device should not fail hard if stop_recording or close fail on ConnectionError 2020-09-25 17:42:21 +02:00
Fabio Manganiello
28409b8688 The device should be released after each streaming session 2020-09-25 17:34:53 +02:00
Fabio Manganiello
c12e7bab90 The streaming thread shouldn't fail and exit if it fails closing a client socket 2020-09-25 17:28:25 +02:00
Fabio Manganiello
09f9e974b1 Camera plugins refactor 2020-09-25 17:19:43 +02:00
Fabio Manganiello
c0f7cc0782 Added NextCloud integration [closes #149] 2020-09-10 11:10:26 +02:00
Fabio Manganiello
a650840429 Refactored variable plugin 2020-09-09 02:14:59 +02:00
Fabio Manganiello
4d0d467292 PIL JPEG format name typo fix 2020-09-08 18:14:49 +02:00
Fabio Manganiello
83122becdb Applied degrees -> PIL rotation ID conversion to the output image 2020-09-08 18:03:18 +02:00
Fabio Manganiello
53ddbad7ce Refactored MLX90640 plugin and HTTP route to work with direct BytesIO - it improves performance over using temporary files or base64-encoded responses 2020-09-08 17:51:46 +02:00
Fabio Manganiello
8a1f49a906 Open the source file in read non-binary mode in case of MIMEText 2020-09-05 01:29:43 +02:00
Fabio Manganiello
6dce4c59f6 (Forgot to pass the new arguments to the MIME constructor) 2020-09-05 01:27:08 +02:00
Fabio Manganiello
ce42f5aada MIMEText doesn't accept the Name parameter 2020-09-05 01:25:12 +02:00
Fabio Manganiello
9402e4f65f Removed trailing column 2020-09-03 17:16:35 +02:00
Fabio Manganiello
a4c6028dc4 Fixed wrong code-block syntax 2020-09-03 14:32:51 +02:00
Fabio Manganiello
907bc0f75b Added rtorrent integration [closes #120] 2020-09-03 13:08:42 +02:00
Fabio Manganiello
d7806757c5 Polished mail integration 2020-09-02 01:34:18 +02:00
Fabio Manganiello
ca168828de Added events on IMAP flagged/starred messages and extended IMAP plugin with remaining methods [closes #146] 2020-09-02 00:07:08 +02:00
Fabio Manganiello
6c24783df7 Log full exceptions in case of failures in a procedure 2020-09-01 10:33:56 +02:00
Fabio Manganiello
681e9f1703 Added SMTP plugin [links to #146] 2020-09-01 01:52:22 +02:00
Fabio Manganiello
dc1b54961f Added inspect.get_config() method to get the configuration programmatically 2020-08-31 18:26:08 +02:00
Fabio Manganiello
3c3ee09d90 Fixed auto-generated docs indentation and code blocks 2020-08-31 17:39:42 +02:00
Fabio Manganiello
1681f80728 Added IMAP plugin and generic mail check backend [links to #146] 2020-08-31 15:33:03 +02:00
Fabio Manganiello
f1ab923bfe Option to reuse the MQTT configuration of the plugin if not provided on the backend 2020-08-27 17:39:22 +02:00
Fabio Manganiello
beceb39b0c Added client_id in MQTT integrations 2020-08-27 16:41:51 +02:00
Fabio Manganiello
f7df1d2f6e typo fix 2020-08-27 16:01:51 +02:00
Fabio Manganiello
cd8732dc8f Added tls_insecure flag to MQTT 2020-08-27 15:56:43 +02:00
Fabio Manganiello
b8917de52f TLS version in MQTT configuration parsed from string 2020-08-27 12:44:00 +02:00
Fabio Manganiello
aa631deb88 Fixed docs typo 2020-08-24 01:24:24 +02:00
Fabio Manganiello
2e6388f6f4 ReadTheDocs fixes 2020-08-24 01:14:40 +02:00
Fabio Manganiello
5d2e74eb97 LINT fixes for LCD plugins 2020-08-24 00:42:34 +02:00
Fabio Manganiello
af614480b8 Added LCD display integration (closes #145) 2020-08-23 20:00:08 +01:00
Fabio Manganiello
7a7c065754 Added missing docs 2020-08-23 00:49:51 +02:00
Fabio Manganiello
6bed284e8b Added DHT temperature/humidity sensor integration [closes #113] 2020-08-22 23:46:21 +01:00
Fabio Manganiello
289eebd6a0 Moved definition of workdir inside the constructor, otherwise readthedocs will fail for missing configuration file 2020-08-22 15:33:44 +02:00
Fabio Manganiello
63ad4bfdce Doc fixes 2020-08-20 00:35:06 +02:00
Fabio Manganiello
019bcbf90a Replaced values.unset in Twilio methods signature with None for JSON compatibility 2020-08-20 00:08:10 +02:00
Fabio Manganiello
988601b10e Added Twilio integration [closes #132] 2020-08-19 23:30:26 +02:00
Fabio Manganiello
cbae8132ed Python 3.5 compatibility 2020-08-19 22:20:00 +02:00
Fabio Manganiello
0659996c48 Added DBus integration [closes #141] 2020-08-16 01:57:30 +02:00
Fabio Manganiello
20b095232d Support for extended information in zeroconf.discover_service 2020-08-14 15:52:24 +02:00
Fabio Manganiello
7e8bef40cd Added Zeroconf integration [closes #105] 2020-08-14 00:36:39 +02:00
Fabio Manganiello
6b43a5e592 Added luma.oled display support 2020-08-11 14:48:14 +02:00
Fabio Manganiello
65bac0ccc5 Fix for pychromecast.get_chromecasts new return type.
On newer versions of pychromecast get_chromecasts returns
a tuple (devices, browser_service) instead of a list. The
software should be robust enough with both older and newer
versions of pychromecast.
2020-07-25 01:35:06 +02:00
Fabio Manganiello
590d416682 Google Translate API supports a maximum of 2000 characters per API call.
Therefore it's a good idea to split the input text/html.
2020-07-05 21:04:54 +02:00
Fabio Manganiello
adc94349c7 Missing commas 2020-07-04 00:31:24 +02:00
Fabio Manganiello
b716b1a0c1 More robust URL query for YouTube 2020-07-04 00:25:49 +02:00
Fabio Manganiello
93ac6c8af9 Regex format fix 2020-07-04 00:18:45 +02:00
Fabio Manganiello
03dc524f80 Fixed response type 2020-07-04 00:15:44 +02:00
Fabio Manganiello
c943acb9c2 Smarter logic for parsing YouTube URLs in Kodi 2020-07-04 00:12:16 +02:00
Fabio Manganiello
a4824a4e95 Google Cloud Translate API works through GOOGLE_APPLICATION_CREDENTIALS env variable 2020-07-02 02:24:54 +02:00
Fabio Manganiello
46515020cf Added Google Translate plugin 2020-07-02 02:07:57 +02:00
Fabio Manganiello
3174db5776 Always convert content to string before writing it to a file 2020-06-30 11:41:38 +02:00
Fabio Manganiello
11709641d7 Extended file plugin with more util methods 2020-06-29 23:53:11 +02:00
Fabio Manganiello
d560823887 Replaced deprecated options in PiCamera module 2020-06-27 13:55:18 +02:00
Fabio Manganiello
96716dc872 Support for pre-fetched HTML/Markdown content.
HTML output can be too large for the process called over the command
line. HTML data exchange now happens through an intermediate temporary
file.
2020-06-25 01:37:59 +02:00
Fabio Manganiello
f50ad767e0 Support for more arguments passed to the Mercury parser 2020-06-23 01:54:35 +02:00
Fabio Manganiello
a1c20a52da Defined get_procedures() method on inspect plugin 2020-06-17 22:31:07 +02:00
Fabio Manganiello
fb58c89911 More robust node_to_dict code in case of race conditions where some of the attributes required to generate id_on_network are not available 2020-06-11 14:50:41 +02:00
Fabio Manganiello
a18002dea0 The command class of a Z-Wave value can also be null: prevent the plugin from breaking in such case 2020-06-09 16:14:02 +02:00
Fabio Manganiello
9d6375f381 More robust logic in case of Tplink device not available 2020-06-08 19:43:08 +02:00
Fabio Manganiello
0ced46058a Always set check_same_thread=False in case of SQLite engines.
Platypush is heavily multi-threaded, and it can happen that some
transactions are handled in different threads - and consistency
is managed by the application itself.
2020-06-08 00:27:41 +02:00
Fabio Manganiello
82a9aa1232 Added clipboard backend 2020-05-23 23:11:42 +02:00
Fabio Manganiello
3cdd9e8474 Added SSH plugin [closes #136] 2020-05-23 21:38:22 +02:00
Fabio Manganiello
1b47615100 More robust attribute checking before conversion, as the object can actually be either a ZWaveNode or a ZWaveController 2020-05-22 12:08:17 +02:00
Fabio Manganiello
d595688d55 Use the /total/country/<cc> endpoint instead of /total/dayone/country/<cc> 2020-05-17 16:52:37 +02:00
Fabio Manganiello
80d5a6ad19 Support for multiple torrent sessions 2020-05-07 23:34:56 +02:00
Fabio Manganiello
26f6feebb7 Implemented retry+sleep mechanism in Switchbot plugin in case of errors
This should prevent race conditions in case of command timeout+quick
disconnection and retry that can result in race conditions and double
free corruptions.
2020-05-06 00:25:19 +02:00
Fabio Manganiello
99fee9ce20 Parse countries from the official country list 2020-05-04 13:15:17 +00:00
Fabio Manganiello
d0ccd65214 Added Samsung smart TV web plugin 2020-05-03 17:21:16 +02:00
Fabio Manganiello
2f57ccf412 Added Samsung smart TV plugin 2020-05-03 00:57:13 +02:00
Fabio Manganiello
9d0f43707a Support for list of countries 2020-04-30 22:45:04 +02:00
Fabio Manganiello
3bb4c4434c Added Covid-19 country stats plugin and backend/monitor 2020-04-30 00:44:34 +02:00
Fabio Manganiello
3c209a800b New popcorn time API URLs 2020-04-28 13:49:31 +02:00
Fabio Manganiello
7ce5efaf2e Removed numpy and PIL top-level imports that could break the HTTP server if not installed on the system 2020-03-24 10:25:25 +01:00
Fabio Manganiello
7af8fb581b A more robust logic to check whether the first dimension of the input tensor is None 2020-03-23 23:54:18 +01:00
Fabio Manganiello
30a5f7b297 Fixed docs typo 2020-03-23 01:25:35 +01:00
Fabio Manganiello
375a8376dc Don't use Config.get on __init__, or docs build will fail because of missing config.yaml 2020-03-23 01:14:44 +01:00
Fabio Manganiello
f4dcf688f0 Set default values for metrics for regression and networks 2020-03-23 01:10:59 +01:00
Fabio Manganiello
50e372be36 Implemented extensive support for neural networks, images and directories [closes #121] 2020-03-23 01:00:25 +01:00
Fabio Manganiello
1f1fefca9d Tensorflow plugin implementation WIP [#121]
TODO: Extend neural network implementation to work
also with e.g. input from images, sounds or binary
2020-03-21 19:50:59 +01:00
Fabio Manganiello
d938017bf8 Added support for extra mplayer arguments for TTS plugins 2020-03-16 18:40:17 +01:00
Fabio Manganiello
e7084b5d6f Added CSV plugin 2020-03-13 01:29:43 +01:00
Fabio Manganiello
a130edb74f Made QR-code scan work also on picamera 2020-03-11 01:06:07 +01:00
Fabio Manganiello
2992d5f726 List of dependencies for qrcode plugin should also include numpy 2020-03-10 22:50:33 +01:00
Fabio Manganiello
141275ecdf Support for scanning QR-codes and barcodes through a camera plugin 2020-03-10 22:35:50 +01:00
Fabio Manganiello
c9db887505 Added QR code/barcode integration [closes #119] 2020-03-10 00:07:21 +01:00
Fabio Manganiello
c26d456109 Added Linode integration [closes #116] 2020-03-09 21:34:06 +01:00
Fabio Manganiello
096f84c865 Added OTP integration [closes #118] 2020-03-09 01:11:23 +01:00
Fabio Manganiello
fc7982378a The bluetooth BLE plugin must also implement get_measurement to work with the scanner backend 2020-03-08 23:50:23 +01:00
Fabio Manganiello
59e3f81202 Added bluetooth scanner backends [closes #112] 2020-03-08 23:37:57 +01:00
Fabio Manganiello
42c5bbe0e4 Fixed LINT warnings and changed MPD filter format (from list to dict) 2020-03-08 13:04:00 +01:00
Fabio Manganiello
642d5117a1 Added note about the license for PicoVoice Cheetah 2020-03-07 20:28:42 +01:00
Fabio Manganiello
ce0f3227ec Implemented PicoVoice speech-to-text integration [closes #130] 2020-03-07 20:21:32 +01:00
Fabio Manganiello
a5c08ed3e4 Added PicoVoice plugin with support for hotwords [see #130] 2020-03-07 02:00:35 +01:00
Fabio Manganiello
e04c6fb921 Extracted common logic for speech-to-text integrations into abstract STT plugin 2020-03-06 23:11:19 +01:00
Fabio Manganiello
7ed847b646 Removed __future__ annotations (it breaks readthedocs build) 2020-03-06 00:53:24 +01:00
Fabio Manganiello
b0339754b2 Implemented Mozilla DeepSpeech speech-to-text integration [closes #126] 2020-03-06 00:38:24 +01:00
Fabio Manganiello
fc949ed9f1 Skip base Response type 2020-03-05 23:19:26 +01:00
Fabio Manganiello
27f847eac6 Support for is_muted/toggle_muted on Google assistant 2020-03-05 18:13:44 +01:00
Fabio Manganiello
e66c02f3de Added documentation for response objects as well 2020-03-05 17:41:26 +01:00
Fabio Manganiello
cb0dd900ab Don't overwrite the original byte read from serial 2020-02-26 11:22:52 +01:00
Fabio Manganiello
a9cb834499 Be more robust in case we receive non-Unicode characters on the serial port 2020-02-26 11:19:59 +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
424077fdbc Completed ZWave web panel (see #123) 2020-02-22 01:00:52 +01:00
Fabio Manganiello
a9dbda455f Support for default media player volume 2020-02-21 18:40:46 +01:00
Fabio Manganiello
70fe2459de _event_callbacks is a protected attribute of mpv.MPV 2020-02-21 18:29:40 +01:00
Fabio Manganiello
9ee81d7999 Removed header from documentation - pydoc can't handle headers in methods 2020-02-21 18:20:38 +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
8248b5353f Added status action to MediaPlugin interface 2020-02-17 18:12:40 +01:00
Fabio Manganiello
fcef7af6a4 Adding Z-Wave web panel (#123) [WIP] 2020-02-10 00:39:32 +01:00
Fabio Manganiello
02246a48ae Added Z-Wave integration (closes #76) 2020-02-05 22:26:52 +01:00
Fabio Manganiello
8255f9af28 Added zigbee2mqtt integration (see #76) 2020-01-22 18:34:28 +01:00
Fabio Manganiello
f91fd00067 Removed old comment note for esp.file_download 2020-01-20 15:41:24 +01:00
Fabio Manganiello
b484fcf9ed - New implementation of esp.file_get that also works with binary files
- New communication protocol for downloaded chunks based on queues
  instead of events.
2020-01-20 15:39:23 +01:00
Fabio Manganiello
4b56431e2a Added proper support for ESP file upload/download (closes #110) 2020-01-20 11:47:10 +01:00
Fabio Manganiello
b7d9917d1d Cleaned up unused variables 2020-01-20 08:54:59 +01:00
Fabio Manganiello
f38121d176 Always pause/resume speech detection on backend level 2020-01-19 16:32:41 +01:00
Fabio Manganiello
6c797b0ad9 Implemented support for assistant pause/resume conversation (closes #109) 2020-01-19 16:21:29 +01:00
Fabio Manganiello
5ae57e3aaf Added action to retrieve temperature and pressure from a DHT11/DHT22 sensor on ESP plugin 2020-01-18 20:15:31 +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
2598e2fb30 Replace the \r\n sequence with \n in the processed response 2020-01-18 18:26:23 +01:00
Fabio Manganiello
2f63a861cb Fixed ESP plugin extra args formatting 2020-01-18 18:11:35 +01:00
Fabio Manganiello
c3c88b23fe Added ESP8266/ESP32 integration (closes #108) 2020-01-17 21:16:14 +01:00
Fabio Manganiello
b920927dab Added Travis-Ci integration (closes #104) 2020-01-12 13:53:46 +01:00
Fabio Manganiello
f5b010c15c Added nmap integration (closes #99) 2020-01-11 18:51:54 +01:00
Fabio Manganiello
b0a5f1e272 Added Foursquare integration - closes #94 2020-01-10 22:51:07 +01:00
Fabio Manganiello
ddbe76646b Throw an assert error (no reload/retry mechanism) instead of a runtime error when a method is called outside of the registered plugin actions 2020-01-10 00:07:40 +01:00
Fabio Manganiello
4c3140c9b5 Fixed docs 2020-01-09 23:40:59 +01:00
Fabio Manganiello
f2de1015a8 Fixed doc URL 2020-01-09 22:24:15 +01:00
Fabio Manganiello
e709908d7e Added Google Drive plugin - closes #91 2020-01-09 22:07:03 +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
6738ff832a get_data/get_measurement/close should be implemented in a base SensorPlugin
class, not specifically in GpioSensorPlugin
2020-01-08 00:20:00 +01:00
Fabio Manganiello
aa6bf5379a Added process management actions 2020-01-08 00:07:15 +01:00
Fabio Manganiello
c53dfab246 Added pid_exists action 2020-01-07 23:03:30 +01:00
Fabio Manganiello
8fe34d541b Added system monitor integration - closes #98 2020-01-07 22:44:59 +01:00
Fabio Manganiello
3271759fba Added Pi-hole integration - closes #100 2020-01-06 19:22:04 +01:00
Fabio Manganiello
e880f00498 Added Graphite integration - closes #96 2020-01-06 15:24:52 +01:00
Fabio Manganiello
d73df1454e Added TCP and UDP plugins - closes #106 2020-01-05 20:52:42 +01:00
Fabio Manganiello
bcd05ecf4a Added CUPS plugin - closes #93 2020-01-05 19:25:20 +01:00
Fabio Manganiello
a9fdbe7812 Fixed code-block format 2020-01-05 13:11:44 +01:00