Commit graph

248 commits

Author SHA1 Message Date
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