Commit Graph

919 Commits

Author SHA1 Message Date
Fabio Manganiello 28862d743d Adding backends documentation 2018-06-26 00:16:39 +02:00
Fabio Manganiello 0939cdedf8 Added utility to scan for messages on the ZeroBorg infrared sensor 2018-06-26 00:16:04 +02:00
Fabio Manganiello cb30a0418f Don't play icon animation to prevent the browser on a tiny RPi to freeze 2018-06-25 20:09:45 +02:00
Fabio Manganiello 49333d892e Remove and then re-add the skycons icon to make sure that the refresh happens 2018-06-24 14:35:36 +02:00
Fabio Manganiello fd792cb089 Added support for weather icons on the dashboard 2018-06-23 01:34:46 +02:00
Fabio Manganiello a4273f5619 Older versions of the assistant SDK don't have the ON_RENDER_RESPONSE event - check if they have it defined before testing the event type 2018-06-21 01:29:04 +02:00
Fabio Manganiello 8708d53236 Show assistant response text on web clients 2018-06-21 00:22:26 +02:00
Fabio Manganiello f73adc83bc - Support for assistant response text as a ResponseEvent
- Don't trigger a ConversationEndEvent if the assistant needs to follow up on the previous interaction
2018-06-20 19:21:32 +02:00
Fabio Manganiello 5f50b5c4f4 Support for color animations via web interface too 2018-06-19 00:37:33 +02:00
Fabio Manganiello 2d6994c057 send_message over Redis for OMXPlayer plugin 2018-06-14 21:13:01 +02:00
Fabio Manganiello b7181085f3 Cover both the cases where the Redis backend is not configured and where it's None 2018-06-14 20:44:06 +02:00
Fabio Manganiello bd18d1cbc1 Using Redis backend as a fallback for send_message if a backend does not implement its own send_message 2018-06-14 20:42:57 +02:00
Fabio Manganiello 81d29928b0 Pi Camera backend version 1.0, now properly controllable 2018-06-14 12:37:14 +02:00
Fabio Manganiello 2b73f71803 Improved logging traces names for backends and plugins 2018-06-14 02:19:55 +02:00
Fabio Manganiello 793b4df12d Pi Camera backend version 0.something 2018-06-14 02:14:08 +02:00
Fabio Manganiello 85512424ae Better events orchestration on camera.pi backend 2018-06-14 00:44:50 +02:00
Fabio Manganiello bb43facee5 typo #2 2018-06-14 00:37:38 +02:00
Fabio Manganiello e9fc35b39d typo 2018-06-14 00:36:07 +02:00
Fabio Manganiello 29a5cfa9c2 Refactored camera.pi backend. Support for start/stop recording control via plugin action. Introduced support for taking pictures too 2018-06-14 00:34:30 +02:00
Fabio Manganiello 2e08be2886 Clean up the iframe src on timeout expire 2018-06-13 20:44:24 +02:00
Fabio Manganiello 5a1e77c174 Added iframe modal on dashboard with support for dynamic events to temporarily/permanently display a custom web page on the connected browsers 2018-06-13 20:40:49 +02:00
Fabio Manganiello d89b03a697 Optional 'zoom' parameter added to the map page to override Google Maps auto-zoom (needed if the page is embedded in an iframe) 2018-06-13 18:10:58 +00:00
Fabio Manganiello e0ff431894 (Forgot to fix humidity sensor reads) 2018-06-12 20:31:58 +02:00
Fabio Manganiello 64ee7e3e59 Fixed the way the FE widget parses the sensor changes after the structural change to SensorDataChangeEvent 2018-06-12 20:30:23 +02:00
Fabio Manganiello e216eb4792 Added maps page 2018-06-12 15:33:04 +00:00
Fabio Manganiello 464ff1ff57 A more robust way to handle JSON serialization/deserialization on MQTT backend 2018-06-12 10:33:30 +02:00
Fabio Manganiello b329580ff0 json decode msg 2018-06-12 09:28:15 +02:00
Fabio Manganiello 8c208c0028 Use the Redis backend to dispatch messages to the core bus if available 2018-06-12 09:20:22 +02:00
Fabio Manganiello 7ab85b4cfa Symlinked serial sensor web interface to MCP3008 sensor template 2018-06-12 01:03:29 +02:00
Fabio Manganiello 77d954f14e Simplified MCP3008 sensor backend by letting it extend SensorBackend 2018-06-12 00:36:43 +02:00
Fabio Manganiello c410bd8926 s/sensors/data/g 2018-06-12 00:23:47 +02:00
Fabio Manganiello f137595ba0 Removed the serial backend, as it's now being replaced by the more specific (and reusable) sensor.serial backend 2018-06-12 00:01:18 +02:00
Fabio Manganiello 0e3873eaf3 Removed light sensor backend. As most of them are analog sensors, they can't communicate directly with the Raspberry - instead a plugin like serial (e.g. Arduino) or MCP3008 should act as a proxy 2018-06-12 00:00:15 +02:00
Fabio Manganiello 33a507f047 Simplified SensorBackend implementations 2018-06-11 23:49:37 +02:00
Fabio Manganiello 933940c695 Attribute name fix 2018-06-11 22:12:25 +02:00
Fabio Manganiello 0905981c58 Refactoring sensor backend and added SensorSerialBackend 2018-06-11 21:07:54 +02:00
Fabio Manganiello 40293a3d30 calendar-next-event-container width 50% -> 70% 2018-06-10 17:20:05 +02:00
Fabio Manganiello c6054f4ac9 Typos 2018-06-08 17:17:12 +02:00
Fabio Manganiello 6247488450 Fixed other logging issues 2018-06-08 17:10:11 +02:00
Fabio Manganiello d7bc17778e Forgot import logging 2018-06-08 16:55:06 +02:00
Fabio Manganiello 2bb6ed6867 Declared logger attribute in HttpRequest as it won't be available to the subclasses otherwise 2018-06-08 16:54:15 +02:00
Fabio Manganiello f0bb2a20b0 Typo 2018-06-08 16:41:31 +02:00
Fabio Manganiello 0756da3861 Fixed logger references 2018-06-08 16:37:59 +02:00
Fabio Manganiello 9a43b6cf51 Fixed logger references 2018-06-07 09:08:32 +02:00
Fabio Manganiello 4da74b1096 Refactored logging submodule 2018-06-06 20:09:23 +02:00
Fabio Manganiello 9984b75895 Added midi backend to support events from MIDI sources 2018-06-06 02:26:28 +02:00
Fabio Manganiello 8534a738d2 Refresh calendar each 15 minutes 2018-06-04 01:01:27 +00:00
Fabio Manganiello bc3e100217 New general-purpose plugin for managing multiple calendar + support for ICal format 2018-05-30 15:59:10 +02:00
Fabio Manganiello 3fe70dd184 Implemented MQTT backend and plugin, see issue #56 2018-05-27 12:21:41 +02:00
Fabio Manganiello c73905d35d More robust handling of card removed events 2018-05-27 11:47:57 +02:00
Fabio Manganiello b04a355cc0 Pass also ATR and reader to SmartCardRemovedEvent 2018-05-27 11:25:29 +02:00
Fabio Manganiello 9801fe26fc Generating SmartCardRemoveEvent as well when a scard is removed 2018-05-27 11:21:47 +02:00
Fabio Manganiello 8a6dcdbf5f Generating SmartCardRemoveEvent as well when a scard is removed 2018-05-27 11:11:05 +02:00
Fabio Manganiello 755eb83093 Added support for smart card events 2018-05-27 10:47:58 +02:00
Fabio Manganiello c1caa182be Handling assistant no_response events 2018-05-25 18:26:02 +02:00
Fabio Manganiello 4f75b765b1 Added assistant conversation timeout event 2018-05-25 18:18:16 +02:00
Fabio Manganiello 306faff4af Default tolerance for hand palm motion on Leap should be zero 2018-05-23 19:48:59 +02:00
Fabio Manganiello 57722fce2a Added support for Leap Motion device events 2018-05-23 17:07:15 +02:00
Fabio Manganiello f4da6ebb1b Redis plugin added and Redis backend made more robust to work also with single-quoted JSON-like strings returned by the Redis lib 2018-05-22 14:44:17 +00:00
Fabio Manganiello 18efdb1c70 Make sure the summary is always there 2018-05-21 09:47:50 +02:00
Fabio Manganiello 0accbfa66e Logging traces on RSS parse 2018-05-21 09:27:13 +02:00
Fabio Manganiello 4643c10e11 Added Redis backend, issue #55 2018-05-14 20:09:25 +02:00
Fabio Manganiello 01c5bbadcd Type should actually always be there 2018-05-13 11:49:42 +02:00
Fabio Manganiello 5e3b41c3ad Made the Pushbullet backend more resilient in case of rogue messages with no type specified 2018-05-13 11:39:59 +02:00
Fabio Manganiello d75326bbe8 Added Switchbot web plugin 2018-05-08 17:07:01 +02:00
Fabio Manganiello b94764436d Added WeMo switch plugin for web panel 2018-05-08 09:59:43 +02:00
Fabio Manganiello bd761d420e RSS digests are now optional 2018-05-07 19:44:34 +02:00
Fabio Manganiello a3b83e8c57 Fixed sensors position 2018-05-07 19:21:58 +02:00
Fabio Manganiello 44596a6cfb Improved style for temp/humidity sensors on the widget 2018-05-07 19:16:25 +02:00
Fabio Manganiello 20a9224ab5 Included support for temperature/humidity display on weather widget from sensor events 2018-05-07 18:55:50 +02:00
Fabio Manganiello e4269a8d5d Skip RSS items if published_parsed is not defined 2018-05-07 18:33:44 +02:00
Fabio Manganiello f322f71447 - News widget max items is now configurable
- Update the news list whenever the loop over the current list is done
2018-05-07 18:16:30 +02:00
Fabio Manganiello 1b1016fba2 Added background blurred image if width < height 2018-05-07 17:18:01 +02:00
Fabio Manganiello 37c6e25ac3 Finally got a proper scaling for carousel widget pictures 2018-05-07 14:50:08 +02:00
Fabio Manganiello e671a1294c Reset min-width when cloning the element 2018-05-07 09:57:35 +02:00
Fabio Manganiello 19268f66a8 border-radius fix 2018-05-07 09:56:31 +02:00
Fabio Manganiello af11358a76 Image carousel widget improvements 2018-05-07 09:54:30 +02:00
Fabio Manganiello 2483c6d612 Simplified websockets keep-alive logic. Just wait on recv() and clean up the websocket in case of a ConnectionClosed exception 2018-05-06 11:38:24 +02:00
Fabio Manganiello 177a359e4a Only do article fade-in without fade-out+fade-in dance 2018-05-06 00:42:46 +02:00
Fabio Manganiello 31f2cbf8b1 Added __init__.py 2018-05-06 00:14:42 +02:00
Fabio Manganiello 88c5bc16f5 - Added rss-news dashboard widget
- Added summary field to the RSS entry
- Added support for custom dashboard backgrounds
- UX fixes + font change
2018-05-05 23:59:43 +02:00
Fabio Manganiello ac958f98da Added images carousel web widget 2018-05-05 04:37:22 +02:00
Fabio Manganiello e1e4d824ad - Added web widget for Google Calendar integration
- UX improvements on the dashboard
2018-05-05 00:57:41 +02:00
Fabio Manganiello f6306c6015 Added Google Calendar plugin 2018-05-04 19:20:23 +02:00
Fabio Manganiello 2f8c74c8e3 - Added Pushbullet JS logic to show mirror notifications on web FE
- Added JS and CSS files for dashboard and widgets
2018-05-04 17:25:12 +02:00
Fabio Manganiello d83c2c903f - Added support for /dashboard page with customizable widgets under the web server
- Introduced Redis to pass messages between the Flask process and the
main application. It now syncs messages with the bus and connected websockets
- Added support to programmatically modify dashboard widgets through POST request like Dashing
- Added weather forecast plugin
2018-05-04 03:24:35 +02:00
Fabio Manganiello a67b301cd6 s/albumartist/album/g 2018-05-03 02:17:31 +02:00
Fabio Manganiello dca41ea86e A more robust logic for spotting new RSS items 2018-05-01 10:13:41 +02:00
Fabio Manganiello d12ebe8810 Bold font for sensor values 2018-04-30 10:20:12 +02:00
Fabio Manganiello 79bfed3a1d FE fixes on the sensors panel 2018-04-30 10:04:37 +02:00
Fabio Manganiello b4bd1cb7bb Added web UI for MCP3008 analog sensors values 2018-04-30 09:40:44 +02:00
Fabio Manganiello b8cba8ec0c Forgot an assignment 2018-04-30 01:43:23 +02:00
Fabio Manganiello c0ef9e2373 poll_seconds should not have a default value 2018-04-29 23:58:33 +02:00
Fabio Manganiello bd8d4649c5 Added MCP3008 backend 2018-04-29 23:51:53 +02:00
Fabio Manganiello cbe676a29f Get the JSON/string output out of the Response object 2018-04-29 16:28:01 +02:00
Fabio Manganiello cddd740666 Removed reference to self.device in backend.serial 2018-04-29 16:26:12 +02:00
Fabio Manganiello 4f19cd1324 Removed old reference to serial.Serial 2018-04-29 16:17:09 +02:00
Fabio Manganiello a907c9ad63 Refactored serial, the entry point for querying serial devices should be the serial plugin, the backend should only be a client. Also, if the serial output is a JSON, parse it 2018-04-29 16:14:46 +02:00
Fabio Manganiello 514eb3d4e4 No need for a comma there 2018-04-29 12:32:25 +02:00
Fabio Manganiello 68c52fe102 - Importing Flask.request as http_request to prevent name clashes with
SQLAlchemy's request module

- All SQLAlchemy engine and connection setup done within get_new_items
to prevent different threads from creating and using the db instance

- Added check_same_thread to sqlite connection line to prevent
different-thread exceptions when the Flask main thread does some cleanup
2018-04-28 19:11:14 +02:00
Fabio Manganiello 63b3d196e8 Video icons fixes 2018-04-26 15:29:10 +02:00
Fabio Manganiello 797d6a0fe8 Added an icon to the video results to show the type 2018-04-26 15:23:10 +02:00
Fabio Manganiello acd06c2193 Implemented OMXPlayer file search and unified all searches under one method 2018-04-25 00:13:17 +02:00
Fabio Manganiello dd254b65cb Implemented YouTube videos search and controls web FE 2018-04-24 14:36:05 +02:00
Fabio Manganiello 4d45284131 Style fixes 2018-04-24 09:17:09 +02:00
Fabio Manganiello 1bda7b8346 Handlers & buttons 2018-04-24 01:30:04 +02:00
Fabio Manganiello 27398030e4 Fixed form name in CSS 2018-04-24 01:26:00 +02:00
Fabio Manganiello e310ef0a04 Finalized video.omxplayer FE plugin 2018-04-24 01:23:06 +02:00
Fabio Manganiello b5b61f0442 Wrong extension.. 2018-04-24 01:05:37 +02:00
Fabio Manganiello ebed6adf57 Added video.omxplayer frontend plugin 2018-04-24 01:03:50 +02:00
Fabio Manganiello 53f8f88bac Added inotify files and paths monitoring backend 2018-04-23 16:32:35 +02:00
Fabio Manganiello a58fa23173 Websocket client-side timeout: 5 -> 30 seconds 2018-04-18 10:13:53 +02:00
Fabio Manganiello 02e951bd57 - Added hidden plugins configuration for plugins that shouldn't be shown
on the web panel as tabs

- Added support for popup notifications on the web panel

- Added voice assistant interactive notifications to the web panel

- Added new playing music notifications to the web panel
2018-04-17 23:10:49 +02:00
Fabio Manganiello fcdc4d1af8 Reload the MPD plugin in case of any errors during the status retrieval 2018-04-17 16:43:39 +02:00
Fabio Manganiello 15a233a927 Keep reloading the MPD plugin in the MPD backend if the plugin crashed or keeps being null 2018-04-17 09:27:41 +02:00
Fabio Manganiello 40d1b7481a Added TTS web plugin 2018-04-16 14:38:13 +02:00
Fabio Manganiello 607ec2812c Run get_plugin at every iteration of the mpd backend in case the plugin lost the connection and has been reloaded 2018-04-16 09:38:34 +02:00
Fabio Manganiello 1a01b336b7 Brought server side ping timeout to 60 seconds 2018-04-15 22:36:45 +02:00
Fabio Manganiello 400943b74b Cleaner management of MPD search filters on the frontend 2018-04-15 10:03:34 +02:00
Fabio Manganiello 73c74654d1 - Better MPD filter management - you can now pass filters as arrays like
['artist', 'Led Zeppelin', 'title', 'Stairway To Heaven'] instead of
relying on one single type-filter pair

- Improved condition matching - don't skip the last condition token if
there are still event tokens to add
2018-04-14 23:58:48 +02:00
Fabio Manganiello e83b21ad33 No outline on the ZeroBorg div when focused 2018-04-13 23:45:29 +02:00
Fabio Manganiello 0cfd67be51 Changed behaviour on playlist track click. Click twice to play instace of long pressing to prevent tracks from playing while scrolling the pane 2018-04-12 20:07:28 +02:00
Fabio Manganiello cf2b362947 Support for robot control through keyboard 2018-04-12 18:42:01 +02:00
Fabio Manganiello de7a8067cb Better filtering of music results 2018-04-12 14:28:20 +02:00
Fabio Manganiello abdc5a5ed0 Inverted search priority order 2018-04-12 14:22:24 +02:00
Fabio Manganiello b400597a1b Refresh the status as well upon successful search results play/add 2018-04-12 13:53:04 +02:00
Fabio Manganiello decadee00a Implemented music search from web panel 2018-04-12 13:04:56 +02:00
Fabio Manganiello f3d725c890 Making the websocket reconnect client-side logic a bit more consistent 2018-04-10 19:49:37 +02:00
Fabio Manganiello 10bf54f961 A more consistent a bug-free handling of websocket reconnection cycles 2018-04-10 15:56:00 +02:00
Fabio Manganiello 4efbcc50dd Server-side websocket timeout: 3 -> 5 seconds 2018-04-10 00:10:03 +02:00
Fabio Manganiello ef1843fdbc s/1 second/3 seconds/ 2018-04-09 23:58:54 +02:00
Fabio Manganiello cb6894b6f8 s/5 seconds/1 second/ 2018-04-09 23:56:43 +02:00
Fabio Manganiello c81e969097 Reverted 10 msec wait to prevent sys resources flooding on retries 2018-04-09 23:26:14 +02:00
Fabio Manganiello ce5db9a9c6 Reconnect to the websocket immediately in case of normal closure 2018-04-09 23:21:19 +02:00
Fabio Manganiello d380e0f398 Keep trying to connect in case the websocket goes down 2018-04-09 23:15:15 +02:00
Fabio Manganiello 75e958bb38 Added auto pilot and stop controls to ZeroBorg web UI 2018-04-09 18:12:53 +02:00
Fabio Manganiello cb44f864cc Added ZeroBorg plugin web UI for motors control 2018-04-09 15:45:14 +02:00
Fabio Manganiello 4bd69d1d68 Making the header a bit more proportioned 2018-04-09 10:22:07 +02:00
Fabio Manganiello fe2930dfdc Increased font size for datetime div 2018-04-09 10:20:32 +02:00
Fabio Manganiello fa4ed7c95c light.hue.on/off wants an array 2018-04-09 01:53:25 +02:00
Fabio Manganiello a3fbce1082 Support for global and individual color and power switches on Philips Hue interface 2018-04-09 01:24:02 +02:00
Fabio Manganiello 2bf4ff136b Exposing serial data functionally through a plugin 2018-04-08 18:16:24 +02:00
Fabio Manganiello 8ae22726ed Added serial device backend 2018-04-07 03:08:52 +02:00
Fabio Manganiello 2be2677963 Added light sensor backend 2018-04-06 17:19:08 +02:00
Fabio Manganiello 10a78a1f21 Frontend plugin for Philips Hue 2018-03-27 23:13:47 +02:00
Fabio Manganiello 7dd3bb9915 Always call stop_playback even when there is no user request 2018-03-26 00:32:03 +02:00
Fabio Manganiello 1f2b5432b3 Extended Pi camera options 2018-03-24 14:43:18 +01:00
Fabio Manganiello b5567c289f - Added Pi camera stream over TCP backend
- More consistent event handling for the pushtotalk assistant
- Added general GPIO module
2018-03-24 03:05:46 +01:00
Fabio Manganiello a14d6fe652 - Stop assistant playback only if there was a user request. This
prevents a PortAudio write on input-only stream error in the Assistant
SDK, see https://github.com/googlesamples/assistant-sdk-python/issues/185

- Make sure that user_request is always defined before returning it

- Use assistant.google.pushtotalk as a fallback if assistant.google is
not configured/available
2018-03-21 23:21:41 +01:00
Fabio Manganiello d5f73023ea Support for custom hotword detection through Snowboy 2018-03-20 23:34:36 +01:00
Fabio Manganiello 6309f5301e - Power offsets now passed through conf instead of source code
- More robust handling of temporary sensor failures
2018-03-17 17:16:20 +01:00
Fabio Manganiello 8b733fb859 - Added IR sensor backend
- Fixed default power offsets
- Changed threshold distance for ultrasound sensor
- Fixed power multiplier coefficient
2018-03-04 17:55:48 +01:00
Fabio Manganiello e8891f0c12 Filter implementation for music.mpd 2018-02-09 20:54:02 +01:00
Fabio Manganiello 0d2a1e5932 onopen logging message 2018-02-07 22:52:16 +01:00
Fabio Manganiello b675f631e9 - Websocket ping interval 1 -> 5 seconds
- JS client websocket reconnect logic
2018-02-07 22:14:38 +01:00
Fabio Manganiello c47d910465 Removed comma 2018-02-05 10:35:24 +01:00
Fabio Manganiello 40efb3f9c7 Support for selecting and playing tracks and playlists in web interface 2018-02-05 09:45:35 +01:00
Fabio Manganiello 1cab75757b - Support for playlist update events handling on MPD
- Support for playlist updates on the web interface
- Support for selecting and playing tracks in the web interface
2018-02-05 00:55:19 +01:00
Fabio Manganiello 9cf9135eae Making the mpd interface fit in a smaller screen without overflows 2018-02-01 01:12:47 +01:00
Fabio Manganiello de2e50fefa Implemented support for track random seek 2018-01-31 10:35:14 +01:00
Fabio Manganiello 968b71e946 - Implemented support for shuffle, random and set volume on the UI
- Reduced the websocket ping poll frequency to 1 second
2018-01-31 01:32:07 +01:00
Fabio Manganiello 28bc4c748e UI improvements + support for MPD playlists and folders 2018-01-30 00:54:46 +01:00
Fabio Manganiello fc608317fd Give some breath to the websocket ping loop 2018-01-29 21:21:40 +01:00
Fabio Manganiello 07219bef89 Player style fixes 2018-01-29 21:18:31 +01:00
Fabio Manganiello 90f49b0964 Player style fixes 2018-01-29 21:15:57 +01:00
Fabio Manganiello 22e4a44fdb Fixed js glitch 2018-01-29 17:09:53 +01:00
Fabio Manganiello 75fac37984 Fixed tests 2018-01-29 16:34:00 +01:00
Fabio Manganiello 0ff5adc4c1 Removed swap file 2018-01-29 16:29:36 +01:00
Fabio Manganiello ae3ee8ada5 Music player styles 2018-01-29 16:28:32 +01:00
Fabio Manganiello 6ad7f85e76 A more clever way to get the static dirs 2018-01-29 15:08:29 +01:00
Fabio Manganiello 6ff1552063 Fixed websocket 2018-01-29 14:46:31 +01:00
Fabio Manganiello 72af7adb46 #51 first web panel iteration 2018-01-29 13:47:21 +01:00
Fabio Manganiello 615573f932 Changed format for HTTP backend requests to something more consistent 2018-01-28 14:49:59 +01:00
Fabio Manganiello 55eb689121 Support for RSS digest generation either in HTML or PDF format 2018-01-28 02:01:54 +01:00
Fabio Manganiello 91dd975413 mkdir_p replaced with os.makedirs 2018-01-27 13:54:15 +01:00
Fabio Manganiello 22b3f8e9b9 Removed redundant variable 2018-01-27 04:46:28 +01:00
Fabio Manganiello 14afbcad3a Support for RSS feeds update events, solves #48 2018-01-27 04:32:44 +01:00
Fabio Manganiello 632255d2dc typo 2018-01-15 01:43:35 +01:00
Fabio Manganiello 4fa7a08006 Added mpd backend 2018-01-13 02:52:06 +01:00
Fabio Manganiello 76f7bbc529 Refactored HTTP request plugin and fixed bug on the plugin name 2018-01-12 15:18:06 +01:00
Fabio Manganiello b1f42c22ae Added Booking.com endpoints automation 2018-01-11 19:31:44 +01:00
Fabio Manganiello 19cfafb2c7 Making the HTTP poll events work 2018-01-10 03:14:27 +01:00
Fabio Manganiello d0759765b2 Removed booking module 2018-01-10 00:20:48 +01:00
Fabio Manganiello 2ea06f7708 Making JSON HTTP poll requests work 2018-01-09 18:44:45 +01:00
Fabio Manganiello c1ab3f5a14 google-assistant-library now requires device_model_id 2018-01-09 14:16:09 +01:00
Fabio Manganiello b074e03d45 - Support for workdir
- Prepared draft for HttpPoll backend
2018-01-09 01:27:19 +01:00
Fabio Manganiello bad5ff339f Latest push received in the last 5 seconds instead of 2 2018-01-07 13:18:01 +01:00
Fabio Manganiello 694d7ca62d Support for PushBullet events on notifications, #36 2018-01-07 00:58:03 +01:00
Fabio Manganiello 1581685f62 use_reloader=False on Flask to prevent the platypush daemon to be spawned twice 2018-01-04 17:34:25 +01:00
Fabio Manganiello 39f986a88d Fixed HTTP backend 2018-01-04 17:20:35 +01:00
Fabio Manganiello 20b07fb02f Made an HTTP backend, #27 2018-01-04 02:45:23 +01:00
Fabio Manganiello c201d725b7 Google Assistant plugin to programmatically start/stop conversation 2017-12-26 15:06:59 +01:00
Fabio Manganiello 75410ead2d Added __init__.py 2017-12-24 13:20:00 +01:00
Fabio Manganiello 6928e440bc Support for Flic button events 2017-12-24 13:15:37 +01:00
Fabio Manganiello 18830232a4 Don't trigger the default Assistant response if the phrase matched an internal rule. Also, backends should be easily accessible through a context module (more context variables will be added there) 2017-12-24 02:35:49 +01:00
Fabio Manganiello 7b97a5b229 - #30 Implemented Google Assistant backend
- #21 Implemented events management
2017-12-24 01:10:48 +01:00
Fabio Manganiello 1ea8badd59 Assistant v.0.1 2017-12-22 10:43:43 +01:00
Fabio Manganiello 3a9afd1fed import error 2017-12-22 10:21:31 +01:00
Fabio Manganiello 017c53fb50 Added Google Assistant draft backend 2017-12-22 10:18:04 +01:00
Fabio Manganiello 97adb1a191 * Better documentation for the local backend
* Remove the fifos at the beginning of the test
2017-12-22 02:52:56 +01:00
Fabio Manganiello 3dfcf0ec97 Added tests 2017-12-22 02:11:56 +01:00
Fabio Manganiello 4b819d5460 Another major refactoring. Among the other things, reintroduced local backend, made requests and responses working in every case, and properly handling stop events 2017-12-22 00:49:03 +01:00
Fabio Manganiello bd5c80175f - Major refactoring.
- More consistent naming for many methods, plus added a more extensive doc.

- Refactored the entry points for the daemon and the pusher into two
  classes, easier to encapsulate and wrap into tests.

- Removed the local backend - managing the concurrency of two processes
  reading and writing on the same socket at the same time was too much,
  and its utility outside of the tests (which can have mock backends as
  well) is quite modest.

- Managing stop events on the bus. Still some work to do tho.

- Fixed several bugs.
2017-12-20 20:25:08 +01:00
Fabio Manganiello 21381e7c0f [#23] Request/Response ID chaining fixes
[#17] Response wait and response timeout implementation on pusher side
2017-12-18 22:40:56 +01:00
Fabio Manganiello 18a5902ac4 Locking requests and responses with ids 2017-12-18 03:09:38 +01:00
Fabio Manganiello 4a04e51da7 Major refactoring #2 2017-12-18 01:10:51 +01:00
Fabio Manganiello 339e7b73a5 Major refactoring.
Solves, among the others, #2, #18 and #22
2017-12-17 16:15:44 +01:00
Fabio Manganiello cb423dab03 Removed short circuit on the response 2017-12-16 07:01:25 +01:00
Fabio Manganiello 8c89a10710 Simplified backend interface, fixed some bugs with response management 2017-12-16 04:56:43 +01:00
Fabio Manganiello ea3eef379a No reference to self in static method 2017-12-14 01:58:42 +01:00
Fabio Manganiello ee5b8e21a0 * If we get a push tickle on PushBullet, get that latest push
* Fixed device_id attribute name clash
2017-12-13 23:55:38 +01:00
Fabio Manganiello 462dc2f1c9 * Sending responses back on the backend channel
* Version bump
2017-12-13 04:14:46 +01:00
Fabio Manganiello 491c2cd571 * More consistent management of responses
* Better per-plugin/per-backend logging management
2017-12-13 03:37:28 +01:00
Fabio Manganiello bf49fb8af3 #11 Kafka topics are now in the format topic.device_id so messages aren't broadcast to all the listeners of the same topic 2017-12-13 01:07:46 +01:00
Fabio Manganiello c62a1a2bd3 Initialize the local fifo only when the backend is run 2017-12-13 01:04:04 +01:00
Fabio Manganiello 898a4ffdef Syntax error 2017-12-12 20:16:00 +01:00
Fabio Manganiello f7202fd205 * PushbulletBackend.send_msg method refactored and removed pushbullet.py dependency
* Management of optional dependencies moved to setup.py
2017-12-12 20:14:02 +01:00
Fabio Manganiello 4b0706380e Consistent logging info 2017-12-12 19:26:23 +01:00
Fabio Manganiello 6c2ea3767c s/runbullet/platypush/g 2017-12-11 20:30:57 +01:00