Commit Graph

1387 Commits

Author SHA1 Message Date
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 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 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 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 470f4a8fc9 Added disable_web_clients_notification on Event for events
generated with high throughput that shouldn't be propagated
to the connected websockets.
2019-12-22 19:38:01 +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 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 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 d1ea69262a Prevent active wait on the list of workers 2019-12-15 19:50:47 +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 4d361b59a3 Bump version: 0.11.1 → 0.11.2 2019-12-13 09:35:43 +00: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 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 f8a709fe98 Improved Pushbullet plugin 2019-12-09 11:00:31 +00: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 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 fc360e3e43 Bump version: 0.11.0 → 0.11.1 2019-12-04 12:28:01 +00:00
Fabio Manganiello 50168e00c5 Bump version: 0.10.9 → 0.11.0 2019-12-04 12:17:17 +00: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 675b690929 switches should not be considered as a special token in the Config object 2019-12-04 02:58:45 +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 55dd7b0d53 Don't generate a startup script in docker - instead add /app to PYTHONPATH 2019-12-02 09:17:04 +01:00
Fabio Manganiello 5f54eaa108 Only python setup.py web_build is needed in Docker 2019-12-02 01:18:17 +01:00
Fabio Manganiello a1f3ff3ae5 Forgotten newlines 2019-12-02 01:13:57 +01:00
Fabio Manganiello e9df6768f9 Use a startup script to launch platypush from the /app folder in docker 2019-12-02 01:12:10 +01:00
Fabio Manganiello 93a5ffc755 git clone in Dockerfile must be recursive 2019-12-02 01:03:33 +01:00
Fabio Manganiello 93bb71bef7 Fixed extra newline 2019-12-02 00:59:25 +01:00
Fabio Manganiello e751325886 libffi-dev, libjpeg-turbo-dev and zlib-dev are also required to build some of the recommended dependencies 2019-12-02 00:56:22 +01:00
Fabio Manganiello f08be1f3c1 The generated command should all be on one line 2019-12-02 00:51:56 +01:00
Fabio Manganiello 3a347496d3 Fixed git clone && cd dance in generated Dockerfile 2019-12-02 00:49:19 +01:00
Fabio Manganiello 909695e070 git clones to /app/platypush 2019-12-02 00:43:37 +01:00
Fabio Manganiello 47f7a36e6e Prevent pending continuation line in generated Dockerfile 2019-12-02 00:41:48 +01:00
Fabio Manganiello de3bb48493 mkdir -p /app in generated Dockerfile 2019-12-02 00:37:34 +01:00
Fabio Manganiello 3ac9ecbd8f Do git clone and explicit pip install -r requirements.txt in platydock to make sure that all the recommended dependencies are installed 2019-12-02 00:34:32 +01:00
Fabio Manganiello fbe4f9494c No need to run pip install pyScss in setup.py if it's not available 2019-12-02 00:24:28 +01:00
Fabio Manganiello 346b1be924 Filter out in get_plugins the special configuration fields not associated with plugins 2019-12-01 23:53:14 +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 f8d3ea5197 Refactored platydock and platyvenv 2019-12-01 22:27:54 +01:00
Fabio Manganiello c5284c7183 Bump version: 0.10.8 → 0.10.9 2019-12-01 19:55:10 +01:00
Fabio Manganiello f537a7785a typo 2019-12-01 18:23:50 +01:00
Fabio Manganiello e3476ee634 Bump version: 0.10.7 → 0.10.8 2019-12-01 17:47:53 +01:00
Fabio Manganiello 92533c8303 Added special utils.get_context action to get current context 2019-12-01 17:43:10 +01:00
Fabio Manganiello a18452ab2e Made procedure.[sync|async].name second argument optional
A procedure will be sync if [sync|async] is not specified
2019-12-01 16:48:57 +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 abbfe517de Don't override matches_condition in ResponseEvent to run stop_conversation. Use the flag play_response=False on plugin level to bypass the response instead 2019-11-26 15:52:30 +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 0ddfce3dce PEP fixes 2019-11-26 00:04:17 +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 2cf9bf654d Removed unused imports from Snowboy backend 2019-11-25 20:27:52 +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 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 6aa13a10cb Initialize the animation groups map only if groups was specified 2019-11-03 14:45:03 +01:00
Fabio Manganiello c4f4d61851 Bump version: 0.10.6 → 0.10.7 2019-10-21 01:30:57 +02: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 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 313a195831 Support for torrent direct download through magnet link in web panel 2019-09-29 17:48:30 +02:00
Fabio Manganiello fd10b2260c Changed PopcornTime endpoints 2019-09-29 10:31:00 +02:00
Fabio Manganiello faa55daccf Smarter cron management with croniter 2019-09-28 01:34:27 +02:00
Fabio Manganiello bcb47909c9 Reverted seconds support in cronjobs 2019-09-27 15:00:00 +02:00
Fabio Manganiello 87d14134f8 Increased cron check frequency to support seconds granularity 2019-09-27 14:51:53 +02:00
Fabio Manganiello bcd3bf7911 Support for seconds in cron expressions 2019-09-27 14:47:27 +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 3da6c41f21 Shorter default poll_seconds (0.01) for better motion sensitivity 2019-09-24 00:10:17 +02:00
Fabio Manganiello 63d222d2ee Slot enum mapping fix 2019-09-23 23:48:26 +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
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