Commit graph

979 commits

Author SHA1 Message Date
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
Fabio Manganiello
084b5ba807 Stop also board iterators on close 2020-01-05 13:02:41 +01:00
Fabio Manganiello
d8a7c9c6e0 Added Arduino over Firmata integration - closes #92 2020-01-05 00:46:46 +01:00
Fabio Manganiello
77ff88360b music.mpd.play should add the resource at the beginning of the
current tracklist and play it, not clear the whole tracklist.
2020-01-01 21:16:27 +01:00
Fabio Manganiello
de429a5b7d Extended Telegram integration 2020-01-01 20:59:22 +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
9eed1014eb Added keyboard/mouse plugin 2019-12-30 21:39:56 +01:00
Fabio Manganiello
dc2b3689a2 Fixes 2019-12-30 19:04:13 +01:00
Fabio Manganiello
952a8f2faf Added generation for events docs 2019-12-30 18:50:01 +01:00
Fabio Manganiello
9d961a265f Generated missing docs 2019-12-30 10:16:55 +01:00
Fabio Manganiello
bc7c248f72 Added Google Pub/Sub integration 2019-12-30 09:33:26 +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
5ba18ea7d5 Added Trello integration 2019-12-27 19:18:56 +01:00
Fabio Manganiello
f0999c7375 Added is_streaming method to camera.pi 2019-12-27 17:10:36 +01:00
Fabio Manganiello
fb2ff7d1d6 Improved management of PiCamera start/stop streaming events 2019-12-27 16:56:07 +01:00
Fabio Manganiello
29789461d7 Added Todoist integration 2019-12-25 20:33:26 +01:00
Fabio Manganiello
5d5e8b54ae Other typing adjustments for dumb Python 3.5 compatibility 2019-12-23 21:49:16 +01:00
Fabio Manganiello
36835a1706 Fixed Python 3.5 compatibility for Zeroborg plugin 2019-12-23 21:40:30 +01:00
Fabio Manganiello
ff9e1c71a7 Prevent race condition on self._drive_thread = None 2019-12-23 18:48:01 +01:00
Fabio Manganiello
7f440a9160 s/or/and/ 2019-12-23 18:43:59 +01:00
Fabio Manganiello
d5c2ae961a Reset the mode if GPIO.getmode() returns None for any reason 2019-12-23 18:40:39 +01:00
Fabio Manganiello
9ffa04c666 Removed auto mode from Zeroborg plugin 2019-12-23 17:57:35 +01:00
Fabio Manganiello
50a7746bf0 Refactored ZeroBorg plugin 2019-12-23 00:36:53 +01:00
Fabio Manganiello
7a7acbe6b9 Support for Zeroborg events 2019-12-22 23:54:45 +01:00
Fabio Manganiello
b36a8095ab Sleep for (default: 0.1 seconds) between reads when distance sensor runs in
continuous mode to prevent excessive CPU load
2019-12-22 19:56:43 +01:00
Fabio Manganiello
17d233b55d Fixed __exit__ arguments list in GpioSensorDistance 2019-12-22 19:40:41 +01:00
Fabio Manganiello
d6515ed991 Added support for continuous checks on distance sensor and DistanceSensorEvent 2019-12-22 19:09:02 +01:00
Fabio Manganiello
9c4f917b53 LINT fixes 2019-12-22 18:18:41 +01:00
Fabio Manganiello
55d3f379d4 LINT fixes 2019-12-22 18:14:42 +01:00
Fabio Manganiello
a23f5446da Added GPIO web panel 2019-12-22 18:10:30 +01:00
Fabio Manganiello
d33494419a Added cleanup action on GPIO plugin 2019-12-21 23:36:09 +01:00
Fabio Manganiello
bdfe48fe32 Refactored integration between ZeroBorg and distance sensor plugin 2019-12-21 13:09:44 +01:00
Fabio Manganiello
58b0b48393 Added gpio.cleanup at the end of get_measurement in distance sensor plugin 2019-12-20 21:40:57 +01:00
Fabio Manganiello
4090570278 GpioSensorDistancePlugin should extend GpioPlugin 2019-12-20 21:24:52 +01:00
Fabio Manganiello
f0751cb37d Fixed typo 2019-12-20 18:56:00 +01:00
Fabio Manganiello
1077dbcf71 Added mode (BOARD/BCM) parameter to GPIO plugins 2019-12-20 18:27:52 +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
fb744dbc74 Added picamera streaming route and web panel tab 2019-12-17 19:54:38 +01:00
Fabio Manganiello
bce4c7c51e Support for static list of devices in switch.tplink plugin to reduce scanning time and prevent stupid "communication protocol errors" on scan 2019-12-17 10:56:00 +01:00
Fabio Manganiello
66d00ee428 Added Android IPCam support 2019-12-17 00:56:28 +01:00
Fabio Manganiello
0cef9c6070 No need to explicitly specify request_queue and response_queue on Worker derived classes 2019-12-15 19:55:14 +01:00
Fabio Manganiello
6082eb62d5 - Added support for device scanning in switch.wemo plugin
- Added generic interface for workers to run jobs in parallel
2019-12-15 19:42:48 +01:00
Fabio Manganiello
5481990834 Using scan_timeout value in switch.switchbot plugin when discovering a device characteristics 2019-12-14 15:57:00 +01:00
Fabio Manganiello
af24f36519 - Added bluetooth LTE plugin
- Switchbot plugin rewritten as an implementation of bluetooth BLE

see #89
2019-12-13 02:08:43 +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
f8a709fe98 Improved Pushbullet plugin 2019-12-09 11:00:31 +00:00
Fabio Manganiello
be5c5d365c Added execute tab to webpanel 2019-12-08 16:25:03 +01:00
Fabio Manganiello
f378fa8832 MPV.Event.IDLE should also be treated as a player stop event 2019-12-07 17:16:48 +01:00
Fabio Manganiello
d6f251989c Added missing __init__.py 2019-12-05 00:46:05 +01:00
Fabio Manganiello
e3d44b56dd Added Join plugin to control remote Android devices 2019-12-05 00:42:29 +01:00
Fabio Manganiello
0f0f8f8a94 LINT fixes 2019-12-05 00:42:29 +01:00
Fabio Manganiello
08119add97 Optimized WeMo plugin 2019-12-05 00:42:29 +01:00
Fabio Manganiello
c34c8586f4 Fixed KeyError 2019-12-04 09:32:56 +01:00
Fabio Manganiello
10ab1751d8 Return only the first element, not in an array, if status() was called with only one device 2019-12-04 09:29:29 +01:00
Fabio Manganiello
25894d3c00 Only return the first element of status() 2019-12-04 09:28:08 +01:00
Fabio Manganiello
69e702ed0c Let switch.wemo on/off/toggle methods always call status() for returned value for consistency with the frontend and other switch plugins 2019-12-04 09:24:34 +01:00
Fabio Manganiello
fea39b1306 Added id to switch.wemo.status for compatibility with the frontend 2019-12-04 02:50:22 +01:00
Fabio Manganiello
b4dbb0c5a6 Overridden status method in switch.wemo 2019-12-04 02:39:11 +01:00
Fabio Manganiello
2e4e847857 Migrated WeMo Switch plugin to raw HTTP requests. ouimeaux was heavy and broken 2019-12-04 02:09:49 +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
f537a7785a typo 2019-12-01 18:23:50 +01:00
Fabio Manganiello
2b8ba2b956 Support for specifying external audio player on Alexa plugin 2019-11-26 11:19:15 +01:00
Fabio Manganiello
d5f0d476c0 #86: Support for play_response flag on Google pushtotalk plugin 2019-11-26 00:32:27 +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
75c6abf249 Pass the assistant object on the Alexa events 2019-11-25 23:16:33 +01:00
Fabio Manganiello
077d787d42 Added input audio device support to Alexa plugin 2019-11-25 23:05:01 +01:00
Fabio Manganiello
1661428417 #80: kwargs on start_conversation for extra parameters 2019-11-25 00:06:48 +01:00
Fabio Manganiello
ef8fd044fd #80: Extended Alexa/Echo plugin 2019-11-24 23:57:32 +01:00
Fabio Manganiello
deb28cf005 #80: Support for Alexa/Echo assistant 2019-11-24 23:46:14 +01:00
Fabio Manganiello
6aa13a10cb Initialize the animation groups map only if groups was specified 2019-11-03 14:45:03 +01:00
Fabio Manganiello
99d17b666c Only set up listen ports for libtorrent if it's a new session 2019-10-08 10:06:33 +00:00
Fabio Manganiello
f23afa3c53 Better management for font styles in http.webpage.simplify 2019-10-05 23:54:26 +02:00
Fabio Manganiello
89c2555753 Improved font in http.webpage.simplify for HTML and PDF output 2019-10-05 22:48:07 +02:00
Fabio Manganiello
09991b2e8a Use a filesystem FIFO for YouTube media content instead of playing the *.googlevideo.com URL directly
Google Video URLs now return 403 if played directly. Let youtube-dl
handle the heavylifting and use a FIFO to stream the media
2019-09-30 18:06:30 +02:00
Fabio Manganiello
f69a7e422b [#84] Completed Dropbox support 2019-09-30 00:04:48 +02:00
Fabio Manganiello
fd10b2260c Changed PopcornTime endpoints 2019-09-29 10:31:00 +02:00
Fabio Manganiello
48e4aeb3dc Added machine learning plugin based on OpenCV cv2.dnn module 2019-09-27 11:46:50 +02:00
Fabio Manganiello
6aa52f0522 typo 2019-09-27 10:35:16 +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
c6384b3b65 Expand rawrgb_path to support relative paths and user prefix 2019-09-25 16:02:35 +02:00
Fabio Manganiello
755c8b52ec Extended features of MLX90640 infrared camera plugin 2019-09-25 15:36:56 +02:00
Fabio Manganiello
d1d842ae95 Added MLX90640 infrared camera plugin 2019-09-25 10:40:57 +02:00
Fabio Manganiello
d96a218c56 LINT warnings fix 2019-09-24 23:21:19 +02:00
Fabio Manganiello
876a07d2c8 Keep measurements in a loop until we get a valid data point 2019-09-24 10:00:56 +02:00
Fabio Manganiello
0fe255436e Don't fail hard if the seconds key is not in the map 2019-09-24 01:20:14 +02:00
Fabio Manganiello
d21fd64100 Added motion_events_per_sec measurement 2019-09-24 01:17:13 +02:00
Fabio Manganiello
ff1fe3058b Don't fail hard in case of temporary sensor glitches 2019-09-24 01:01:06 +02:00
Fabio Manganiello
d6de1189e5 Simplified motion sensor interface by removing unneeded absolute vector 2019-09-24 00:13:02 +02:00
Fabio Manganiello
63d222d2ee Slot enum mapping fix 2019-09-23 23:48:26 +02:00
Fabio Manganiello
7e92f59d44 Added PWM3901 optical motion/flow sensor plugin 2019-09-23 23:28:33 +02:00
Fabio Manganiello
a580cc93eb Added draft for Dropbox plugin 2019-09-13 10:18:54 +00:00
Fabio Manganiello
a43508a743 Do not import cv2 in camera.__init__ unless we specify a video_type that needs to be expanded. Otherwise we introduce the OpenCV dependency also for the camera.pi plugin 2019-09-10 00:21:11 +02:00
Fabio Manganiello
e9c7104242 Keep track of the newly inserted token records in media.local.search, or we can experience UniqueConstraint violations upon session commit because of duplicate records 2019-09-02 23:05:16 +02:00
Fabio Manganiello
1dca11c0be HTTP headers should always be an argument of the Request object 2019-09-02 01:17:52 +02:00
Fabio Manganiello
e673b3e0c7 search_* methods can't be static 2019-09-02 01:12:43 +02:00
Fabio Manganiello
86d38b421a Added headers in torrent API requests 2019-09-02 01:10:22 +02:00
Fabio Manganiello
7bf4284f7b Typo in keyword name 2019-09-02 01:00:38 +02:00
Fabio Manganiello
7bbaaba767 Refactored torrents plugin 2019-09-02 00:53:09 +02:00
Fabio Manganiello
b9360cf2c5 camera.close() should be in a finally block to make sure that we don't
run out of resources because of failed camera initializations
2019-08-25 16:51:10 +02:00
Fabio Manganiello
69a03fa025 Do wait_recording until the client disconnects 2019-08-17 00:27:19 +02:00
Fabio Manganiello
b599c622c4 _get_camera should first verify both that camera is not null and not
closed before returning the cached object
2019-08-16 19:15:00 +02:00
Fabio Manganiello
3c675b296f Don't propagate the exception if stop_preview failed 2019-08-16 18:49:15 +02:00
Fabio Manganiello
6465a6f282 Added start/stop preview camera actions 2019-08-16 18:38:04 +02:00
Fabio Manganiello
c93af07333 Close camera preview after taking a picture or a sequence 2019-08-16 18:30:49 +02:00
Fabio Manganiello
284ec129d9 Lint fixes 2019-08-16 18:18:55 +02:00
Fabio Manganiello
7fd5f5c4f8 Proper synchronization with client connections and stop_streaming condition in the streaming thread 2019-08-16 17:49:15 +02:00
Fabio Manganiello
190ab15a76 Fixed camera.pi plugin 2019-08-16 12:24:42 +02:00
Fabio Manganiello
b153d212e3 New picamera plugin 2019-08-16 11:11:45 +02:00
Fabio Manganiello
59d976d681 Start ranging only with one setting (to get more accurate measurements once the sensor has warmed up) and configure it only at sensor startup 2019-08-15 15:20:49 +02:00
Fabio Manganiello
dccd3fd3d4 Don't open the device and leave it open on each measurement, or the backend will fail with 'Too many open files' at some point 2019-08-15 13:06:31 +02:00
Fabio Manganiello
8396c82d56 Typo in import name 2019-08-15 00:35:17 +02:00
Fabio Manganiello
b15dff0a24 Class name typo 2019-08-15 00:30:42 +02:00
Fabio Manganiello
e60660b0e6 Added plugin and backend for VL53L1X laser ranger/distance sensor 2019-08-15 00:26:25 +02:00
Fabio Manganiello
e7448d90d6 Trigger a ConversationStartedEvent before initializing the assistant object 2019-08-14 21:46:31 +02:00
Fabio Manganiello
19dc96ff1c Added LTR559 sensor plugin and backend 2019-08-14 21:27:25 +02:00
Fabio Manganiello
80f969cfce The BME280 sensor also supports altitude 2019-08-14 21:03:27 +02:00
Fabio Manganiello
8bf5076334 FIX we should return device from _get_device 2019-08-14 20:52:27 +02:00
Fabio Manganiello
693b38ef51 Cache the BME280 object instead of initializing it on each get_measurement call
The BME280 needs some warmup time before picking up the results.
2019-08-14 20:50:14 +02:00
Fabio Manganiello
757e0ff9bf Refactored SensorBackend and derived classes and added BME280 sensor
plugin and backend
2019-08-14 19:49:19 +02:00
Fabio Manganiello
228e656da8 Only import cv2 in the methods that require it (prevents camera.pi
and other camera derived plugins from failing if OpenCV is not installed)
2019-08-07 09:43:40 +02:00
Fabio Manganiello
fa9b816d06 Return the parsed raw YouTube URL only if available, otherwise the original URL 2019-08-04 17:36:06 +02:00
Fabio Manganiello
aebeadbcf7 args can be either a list or a tuple - treat accordingly 2019-08-04 17:17:09 +02:00
Fabio Manganiello
3a5a731bd2 pause and then play omxplayer in the play handler to make sure that all the proper events are generated upon play 2019-08-04 16:50:38 +02:00
Fabio Manganiello
f06a851b61 Accelerometer and magnometer reads should be dict not set 2019-08-01 23:23:19 +02:00
Fabio Manganiello
bdadd2061c Added EnviropHAT support 2019-08-01 22:40:41 +02:00
Fabio Manganiello
dcb4a36959 Replaced os.environ['HOME'] with os.path.expanduser('~') (Windows compatibility)
Solves #74
2019-07-29 00:03:01 +02:00
Fabio Manganiello
0ab70cdbae Kodi Application.SetVolume() expects an integer or a string, not a float 2019-07-25 23:54:32 +02:00
Fabio Manganiello
1f2f293778 Redirect mercury-parser.js stderr to stdout. Moreover, if an error occurs while parsing a link from an RSS feed we should report the link that raised the error, not the URL of the parent feed 2019-07-25 16:34:00 +00:00
Fabio Manganiello
83db3f770c Don't generate HTML/CSS wrapper for the content unless the output is a
destination file (HTML/PDF).
2019-07-25 18:08:30 +02:00
Fabio Manganiello
beef06fad2 Log exception and parser output if it returns invalid JSON 2019-07-24 23:31:27 +00:00
Fabio Manganiello
5293f5b203 #73: Implemented wrapper plugin for the new Node.js mercury-parser.
As the Mercury reader web API is deprecated, and the only available
implementation is the open source mercury-parser, node, npm and
@postlight/mercury-parser have to be added as dependencies for the
http.webpage plugin (or at least for the `simplify` action).
2019-07-24 19:02:53 +02:00
Fabio Manganiello
43ca3a6f94 Added support for streaming audio from an input source over HTTP 2019-07-23 18:22:00 +02:00
Fabio Manganiello
5c3d32d05d Fixed undefined reference 2019-07-19 13:50:01 +02:00
Fabio Manganiello
f86e2eb5a7 Implemented settings page and finalized multi-user support 2019-07-19 00:50:52 +02:00
Fabio Manganiello
ca030b06e0 Added support (not working yet) for custom Google device actions and events 2019-07-17 14:56:04 +02:00
Fabio Manganiello
008fce70fa Replaced references to in pydoc with format, as doesn't seem to work in RTD 2019-07-16 23:00:20 +02:00
Fabio Manganiello
cc61032bec Fixes for readthedocs build 2019-07-16 22:38:42 +02:00
Fabio Manganiello
95b5820783 Fixes for readthedocs build 2019-07-16 22:29:23 +02:00
Fabio Manganiello
9c4646bed5 Fixed documentation and added missing docs to the index 2019-07-16 20:28:00 +02:00
Fabio Manganiello
4e8235a649 More robust logic to handle temporary database connection errors through retry mechanism 2019-07-16 16:40:56 +02:00
Fabio Manganiello
1c1ecc18df Support for multi-users and authentication for HTTP pages 2019-07-15 14:12:00 +02:00
Fabio Manganiello
674c164fc1 Fixed pylint warnings 2019-07-13 22:36:45 +02:00
Fabio Manganiello
55cd937a51 Made OMXPlayer plugin more resiliant in the case where the player has already terminated 2019-07-13 22:12:56 +02:00
Fabio Manganiello
0b05d7d8de pylint warnings fixed 2019-07-13 18:25:42 +02:00
Fabio Manganiello
8b2c6d333e Lint warnings fixed 2019-07-13 14:22:43 +02:00
Fabio Manganiello
654c61ec51 Standardized omxplayer returned attributes and volume management 2019-07-12 20:12:59 +02:00
Fabio Manganiello
50313580fd Catch PortAudio exception in case of race conditions on closed streams and re-initialize the assistant object when they occur 2019-07-12 18:19:32 +02:00
Fabio Manganiello
bb3a39acb9 Better synchronization mechanism between push-to-talk and platypush when an event is matched and no assistant playback should follow up 2019-07-12 18:11:14 +02:00
Fabio Manganiello
8d660f27d4 Support for multiple hotwords, configurations and assistant languages in Snowboy backend 2019-07-12 14:53:12 +02:00
Fabio Manganiello
6769707580 Stop assistant interaction if a phrase match is found 2019-07-12 09:37:37 +02:00
Fabio Manganiello
402baee48e typo 2019-07-12 00:56:18 +02:00
Fabio Manganiello
5766367402 Rewritten snowboy and Google push-to-talk plugins to make them a better replacement for the deprecated google-assistant-library 2019-07-11 22:54:33 +02:00
Fabio Manganiello
09165ca0ff Dashboard rewritten in vue.js 2019-07-07 20:11:32 +02:00
Fabio Manganiello
1eae45805d Added new sensors plugin to webpanel 2019-07-02 14:04:25 +02:00
Fabio Manganiello
b932df1c12 Added switch tab to the new web panel 2019-07-02 12:02:28 +02:00
Fabio Manganiello
26ee3fc75c Changed nav bar text to icons 2019-07-01 22:26:04 +02:00
Fabio Manganiello
277d6ec271 Added torrent support in new webplayer 2019-07-01 19:32:22 +02:00
Fabio Manganiello
c78789e644 Added Kodi support to new media webplayer 2019-06-29 00:06:03 +02:00
Fabio Manganiello
f86eeef549 New media webplugin WIP 2019-06-27 23:52:40 +02:00
Fabio Manganiello
70bba5fc96 Support for browser webplayer and subtitles in new webplugin 2019-06-26 11:05:16 +02:00
Fabio Manganiello
e55735f409 Added YouTube support to new media webplugin 2019-06-25 22:46:25 +02:00
Fabio Manganiello
cf23e2fc72 Support for subtitles in new media webplugin - WIP 2019-06-25 00:48:00 +02:00
Fabio Manganiello
17de2a194c Removed comment 2019-06-24 01:04:52 +02:00
Fabio Manganiello
9305f86d0c New media webplugin WIP 2019-06-24 01:01:08 +02:00
Fabio Manganiello
ba800ef8e2 Normalized all local players so that they handle events and return statuses in the same format 2019-06-23 02:16:20 +02:00
Fabio Manganiello
482f6f0765 New media webplugin WIP 2019-06-22 00:15:32 +02:00
Fabio Manganiello
4cd2e6949f New media webplugin WIP 2019-06-21 02:13:14 +02:00
Fabio Manganiello
9805ed0479 Merge branch 'master' into vuejs 2019-06-18 18:31:11 +02:00
Fabio Manganiello
f108157a8a Fixed inconsistencies/warnings in calendar plugins 2019-06-18 18:30:43 +02:00
Fabio Manganiello
ecd41a1f41 New media webplugin WIP 2019-06-18 18:14:48 +02:00
Fabio Manganiello
e5d7334662 New media webplugin WIP 2019-06-16 21:45:21 +02:00
Fabio Manganiello
076d766745 New TTS webpanel plugins 2019-06-11 11:53:15 +02:00
Fabio Manganiello
b7a625097d Added playlist editor in music.mpd web panel 2019-06-07 23:07:36 +02:00
Fabio Manganiello
1ad72a2695 Implemented support for adding tracks to playlists 2019-06-07 17:17:58 +02:00
Fabio Manganiello
611a137ff6 music.mpd vue.js refactoring WIP: Implemented playlist track move feature 2019-06-04 15:59:07 +02:00
Fabio Manganiello
85bdd54f7e music.mpd vue.js refactoring WIP 2019-06-03 23:37:19 +02:00
Fabio Manganiello
e1ddf7bb3b music.mpd vue.js refactoring WIP 2019-06-02 00:54:49 +02:00
Fabio Manganiello
7a74b83c76 music.mpd plugin vue.js refactoring - WIP 2019-05-30 02:07:28 +02:00
Fabio Manganiello
01b111f436 Webpanel refactoring in progress 2019-05-28 19:16:55 +02:00
Fabio Manganiello
5041d8bec2 whiteline PEP fix 2019-05-28 19:16:55 +02:00
Fabio Manganiello
f053aa455d PEP fixes for light.hue plugin and new methods xy and ct added 2019-05-28 19:16:55 +02:00
Fabio Manganiello
7ea65cf90e One more url fix 2019-04-24 23:57:11 +02:00
Fabio Manganiello
5ed4b10de3 Fixed torrent search URLs 2019-04-24 23:53:20 +02:00
Fabio Manganiello
d2f4ec44c3 Support for searching all the torrent categories in parallel if no categories is provided 2019-04-24 23:45:57 +02:00
Fabio Manganiello
2bcc22e0fc Refactored torrent search 2019-04-24 23:25:25 +02:00
Fabio Manganiello
9f3f6c9caa Log URL being parsed 2019-04-13 08:17:45 +00:00
Fabio Manganiello
3dd47260d6 Raise runtime error if mercury API responds with empty response 2019-04-13 08:15:08 +00:00
Fabio Manganiello
8553a8eeb5 typo 2019-04-13 08:10:35 +00:00
Fabio Manganiello
72f179cb7e typo 2019-04-13 08:08:20 +00:00
Fabio Manganiello
1ea6041dfa Log response from Mercury API 2019-04-13 08:06:40 +00:00
Fabio Manganiello
611e5f2160 Set default title with timestamp if no title is provided by the Instapaper API 2019-04-13 08:03:42 +00:00
Fabio Manganiello
c55deab6cb Support for authentication in HTTP plugin methods 2019-04-11 16:21:39 +02:00
Fabio Manganiello
12fefaa220 Improved generated pdf font size and family 2019-03-30 14:08:04 +01:00
Fabio Manganiello
24ec35e5b3 Increased font size in generated pdf 2019-03-30 12:41:02 +01:00
Fabio Manganiello
3ca6e75634 Added font style to generated pdf 2019-03-30 12:25:19 +01:00
Fabio Manganiello
b8e9adadbe Added plugin to parse web pages 2019-03-29 03:57:19 +01:00
Fabio Manganiello
20b0c09a0c Removed workaround that doesn't work 2019-03-20 18:37:49 +01:00
Fabio Manganiello
eb40024c53 Only initalize credentials map in Google plugins if some scopes are required 2019-03-18 01:06:10 +01:00
Fabio Manganiello
8b89166e30 Fixed typo in SSL variable name 2019-03-18 00:16:54 +01:00
Fabio Manganiello
cbe4d8cd78 Delete recording thread item from map only if the thread has actually stopped 2019-03-17 22:55:36 +01:00
Fabio Manganiello
81a200bd4e Make sure that device_id is in _is_recording and hasn't been removed by another thread before checking it 2019-03-17 02:16:43 +01:00
Fabio Manganiello
f95f52df19 Few fixes in camera plugin 2019-03-17 02:06:47 +01:00
Fabio Manganiello
9ed4ad6d85 Set workaround environment variable before importing OpenCV 2019-03-17 01:56:05 +01:00
Fabio Manganiello
3af30075e3 Temporarily workaround for OpenCV >= 3.4.2 bug that doesn't properly release the video device 2019-03-17 01:26:06 +01:00
Fabio Manganiello
5942a7cd84 Removed unused imports 2019-03-17 00:56:32 +01:00
Fabio Manganiello
87d63d7cb3 Added Google Fit backend 2019-03-16 01:22:42 +01:00
Fabio Manganiello
55c0896b31 Refactored Google plugins with support multiple scopes and a simpler API and added Google Fit plugin 2019-03-14 01:12:39 +01:00
Fabio Manganiello
0596d77403 Support for camera snapshot and stream endpoints and for disabling logging on response and event messages 2019-03-06 02:01:17 +01:00
Fabio Manganiello
dcb0555571 Returing the best option for torrents based on max peers/seeds and
returning more metadata info on torrent.search
2019-03-05 00:10:06 +01:00
Fabio Manganiello
771da4528b Reverted the revert 2019-02-28 18:57:22 +01:00
Fabio Manganiello
f2bd309478 Regex fix 2019-02-28 18:30:52 +01:00
Fabio Manganiello
12fd582d70 typo 2019-02-28 18:22:50 +01:00
Fabio Manganiello
1b9094a36b Some hysterical guy has Spotify has decided to change the playlists URI
format again in the last couple of months with no notice nor
back-compatibility plan. Normalizing playlist URIs in the new (or
old-old?) format while innerly cursing at the incompetency of Spotify
2019-02-28 16:36:11 +01:00
Fabio Manganiello
65d6e5a5f6 Support for video_type in camera plugin 2019-02-28 01:55:12 +01:00
Fabio Manganiello
a9fb6a38dd New API for firing events and registering/unregistering event handlers
both for plugins and backends
2019-02-28 01:21:25 +01:00
Fabio Manganiello
29b8d0827b Added basic support for camera events in the camera plugin 2019-02-27 20:12:40 +01:00
Fabio Manganiello
17367f5b3e Added camera plugin over cv2 2019-02-26 23:50:48 +01:00
Fabio Manganiello
749436c452 Clean up running VLC instance on stop and new media play 2019-02-21 19:24:47 +01:00
Fabio Manganiello
6222747730 typo 2019-02-21 01:49:43 +01:00
Fabio Manganiello
8b08f146a0 Typo on method name 2019-02-21 01:34:09 +01:00
Fabio Manganiello
f9765b4fed Support for extra arguments passed to VLC 2019-02-21 01:28:51 +01:00
Fabio Manganiello
9e7f84644b Support for default fullscreen and default volume in VLC 2019-02-21 00:09:02 +01:00
Fabio Manganiello
c4cd93a6da Added VLC plugin 2019-02-20 17:17:30 +01:00
Fabio Manganiello
b5315032c3 Leverage youtube-dl standard media plugin instead of the mpv internal one 2019-02-19 13:40:18 +01:00
Fabio Manganiello
185aff6be3 Fixed support for subtitles in torrent files and better synchronization between mpv and torrent 2019-02-19 13:13:17 +01:00
Fabio Manganiello
377c963994 Better to react only on mpv shutdown not end_of_file 2019-02-19 11:12:57 +01:00
Fabio Manganiello
dcec3329d4 Trying to fix nasty race condition SHUTDOWN->START_FILE that triggers a spurious MediaStopEvent 2019-02-19 11:09:22 +01:00
Fabio Manganiello
10fa7c1ab1 Trying to fix nasty race condition SHUTDOWN->START_FILE that triggers a spurious MediaStopEvent 2019-02-19 11:08:57 +01:00
Fabio Manganiello
47b92480ff Trying to fix nasty race condition SHUTDOWN->START_FILE that triggers a spurious MediaStopEvent 2019-02-19 11:06:02 +01:00
Fabio Manganiello
c0513cade9 Handle quick playback 'rebounces' in mpv 2019-02-19 10:56:05 +01:00
Fabio Manganiello
0336427386 mpv received events logged on info instead of debug 2019-02-19 10:47:10 +01:00
Fabio Manganiello
bcb60ed218 Minimum torrent download size before streaming: 10->15 MB 2019-02-19 10:42:51 +01:00
Fabio Manganiello
bc81f9bed6 Only propagate MediaStopEvent on mpv shutdown, not end-of-file 2019-02-19 10:41:40 +01:00
Fabio Manganiello
f71e534860 Added mpv to the supported media plugins on media.webtorrent 2019-02-19 10:31:17 +01:00