Fabio Manganiello
19eab381ae
Weird Jinja bug broke the web panel load when using JSON parse, had to refactor it a bit to fix it
2019-01-08 13:53:21 +01:00
Fabio Manganiello
d91e494940
Added group and host modals and settings to Snapcast UI
2019-01-08 12:54:33 +01:00
Fabio Manganiello
382866b1a4
Added content to Snapcast group modal
2019-01-08 10:13:13 +01:00
Fabio Manganiello
fd8c3bb846
Connected the wires between Snapcast backend and frontend
2019-01-08 01:47:16 +01:00
Fabio Manganiello
a346442246
Draft for Snapcast UI style
2019-01-07 16:50:51 +01:00
Fabio Manganiello
004868f526
Added skeleton UI for Snapcast plugin on web panel
2019-01-07 15:34:31 +01:00
Fabio Manganiello
efad5a2bd7
Added Snapcast backend
2019-01-06 19:19:30 +01:00
Fabio Manganiello
9328566235
Selecting the default light group tab on web panel load if configured
2019-01-02 21:24:07 +01:00
Fabio Manganiello
5b9c54748e
Do not propagate a null response message back to the bus to prevent backends from breaking
2019-01-02 09:29:27 +01:00
Fabio Manganiello
62045c2b5c
Support for multiple resource_dirs on the HTTP backend
...
It is now possible to map multiple static resource directories to the
Flask HTTP server
2018-12-30 18:40:03 +01:00
Fabio Manganiello
9e28379203
Prevent js errors upon null artist or album
2018-12-30 15:43:09 +01:00
Fabio Manganiello
01006046e0
Don't try to push a Pushbullet note body to the bus if it's not a valid JSON
2018-12-27 22:45:31 +01:00
Fabio Manganiello
54c3381ae3
- Added frames throttling support on Leap Motion backend
...
- Moved the Leap listener to another process to prevent it from hanging the other backends
- Added support for sound and mix frequency analysis
2018-12-27 20:24:51 +01:00
Fabio Manganiello
cff4563dae
Rewritten Pushbullet backend using pushbullet.py for better stability
2018-12-27 02:29:44 +01:00
Fabio Manganiello
c445763979
- Support for sound "release" (removal from active stream)
...
- Added `query_ports` method to MIDI plugin
2018-12-27 00:09:05 +01:00
Fabio Manganiello
3554968468
Support for multiple sounds on the same stream
2018-12-26 16:10:14 +01:00
Fabio Manganiello
f53d1c06dc
No need to be verbose upon Pushbullet websocket temporary disconnections
2018-12-24 14:33:27 +01:00
Fabio Manganiello
ef241b3769
More robust Pushbullet reconnection logic
2018-12-24 12:31:38 +01:00
Fabio Manganiello
b911d46315
Create a new event loop in the Pushbullet backend
2018-12-24 11:37:18 +01:00
Fabio Manganiello
6a48a53c0d
Typo
2018-12-24 11:30:10 +01:00
Fabio Manganiello
186ade8f18
Refactored Pushbullet backend to remove the dependency from websocket-client and rely only on websockets
2018-12-18 19:01:51 +01:00
Fabio Manganiello
a226aad669
Added python-dateutil requirement
2018-12-19 00:09:21 +01:00
Fabio Manganiello
c8f7eb30aa
Made Redis backend and plugin more robust.
...
- Redis arguments read either from the backend or the plugin
configuration as a fallback in case of partial conf
- send_message now falls back on the default Redis connection
configuration if *args and **kwargs are missing
2018-12-18 15:51:37 +01:00
Fabio Manganiello
eb439d227a
Wrapped HTTP requests loop in a try-except block to prevent it from breaking in case of temporary failures
2018-12-05 15:55:19 +00:00
Fabio Manganiello
9421602e81
Removed duplicate log trace
2018-12-02 23:47:49 +01:00
Fabio Manganiello
7cd1efe2c6
Option to pair a specific device to the Wiimote backend
2018-12-02 23:44:17 +01:00
Fabio Manganiello
f677c79f54
Made inactivity timeout on Wiimote configurable
2018-12-01 19:38:43 +01:00
Fabio Manganiello
199e9fdba1
Better management of inactivity timeout on Wiimote
2018-12-01 19:22:10 +01:00
Fabio Manganiello
66b6f0bc8b
Added Wiimote support docs; Added Wiimote connection/disconnection events
2018-12-01 18:55:13 +01:00
Fabio Manganiello
383a075f39
Handling Wiimote timeout on Wiimote backend
2018-12-01 18:43:18 +01:00
Fabio Manganiello
2b03276159
#46 : Added Wiimote support
2018-12-01 17:56:31 +01:00
Fabio Manganiello
6603f64757
Enforced cast to string for any object posted to the Redis bus
2018-11-20 14:24:14 +00:00
Fabio Manganiello
2d8078b8bb
Don't propagate the message from MQTT nor wait for a response if the message is null or its handler threw an exception
2018-11-10 01:16:32 +01:00
Fabio Manganiello
cda64865f3
Set the correct mimetype on the /execute endpoint
2018-11-09 23:43:47 +01:00
Fabio Manganiello
26ec213098
Make sure that the shitty MQTT backend doesn't break for no reason
2018-11-06 11:40:01 +01:00
Fabio Manganiello
56b87f3436
Support for default broker server configuration in MQTT plugin
2018-11-02 15:32:12 +00:00
Fabio Manganiello
788a2652c8
Support for TLS/SSL and user authentication on MQTT
2018-11-02 15:15:48 +00:00
Fabio Manganiello
c05fc9ee3f
Added logic to propagate events to the websockets backend
2018-11-02 10:14:06 +00:00
Fabio Manganiello
cd3aea5cd6
typo
2018-11-02 00:07:42 +01:00
Fabio Manganiello
f1e1ee92d3
bool compatibility fix
2018-11-02 00:06:39 +01:00
Fabio Manganiello
51440d43fd
Propagate SSL flag to the templates
2018-11-02 00:04:49 +01:00
Fabio Manganiello
e571d8ea41
Typo
2018-11-02 00:03:10 +01:00
Fabio Manganiello
a77a9c04b7
Missed SSL flag
2018-11-02 00:02:11 +01:00
Fabio Manganiello
3eed774d50
Added SSL to websockets js code as well
2018-11-02 00:00:10 +01:00
Fabio Manganiello
727b604bb4
Added SSL to HTTP backend websockets as well
2018-11-01 23:57:50 +01:00
Fabio Manganiello
a253e5f49e
Removed old line of code
2018-11-01 23:48:25 +01:00
Fabio Manganiello
667d5e8a45
HTTPS support on the web server
2018-11-01 23:43:02 +01:00
Fabio Manganiello
38a8cac9c6
Refactored SSL context logic as utils methods
2018-11-01 23:34:14 +01:00
Fabio Manganiello
6bc976cf89
Fixed SSL support in websocket implementation
2018-11-01 17:28:54 +00:00
Fabio Manganiello
b365e7d126
Keep-alive logic implemented for websocket backend
2018-10-27 01:09:09 +02:00
Fabio Manganiello
92a3759721
Added websocket backend and plugin
2018-10-26 21:55:49 +02:00
Fabio Manganiello
8635ed8268
Added support for MQTT backend to process responses on a topic named platypush_bus_mq/<device>/responses/<msg_id>
2018-10-26 13:33:23 +00:00
Fabio Manganiello
284e0638f8
Always define msg so the function doesn't fail on exception
...
Reverted the previous retry logic for backend - it didn't really work
This reverts commit 4e0e4863a0
.
This reverts commit 964c7b5cf0
.
This reverts commit 6ce348365f
.
2018-10-25 20:46:34 +02:00
Fabio Manganiello
964c7b5cf0
Making sure that Redis constructor only initializes the attributes without creating the object and performing a connection
2018-10-25 20:06:29 +02:00
Fabio Manganiello
6ce348365f
Refactored backends to be more robust by wrapping the core logic into a try-except logic with sleep and retry
2018-10-25 19:46:13 +02:00
Fabio Manganiello
4c2302a534
Removed title from logging trace in RSS backend
2018-10-23 00:23:47 +02:00
Fabio Manganiello
fec684210c
Wrapped MPD plugin reload logic to prevent the backend from crashing if the second initialization fails as well
2018-10-21 14:50:58 +02:00
Fabio Manganiello
ae7cd120d2
Wrapped the RSS parsing loop in a try-except block to prevent the backend from continuously crashing if there are encoding issues on the RSS titles
2018-10-21 14:47:52 +02:00
Fabio Manganiello
7adfb67c12
Fixed Kodi plugin
2018-10-20 19:27:15 +02:00
Fabio Manganiello
7490529ca2
Reverted bugged title decode
2018-10-20 14:49:21 +02:00
Fabio Manganiello
2fd7ba003b
Decoding title from RSS feeds
2018-10-19 23:48:04 +02:00
Fabio Manganiello
af00ac6c68
Fixed attribute name
2018-10-14 17:36:06 +02:00
Fabio Manganiello
a4e2db184d
Added tts.google web plugin
2018-10-14 17:17:19 +02:00
Fabio Manganiello
74d23262b7
Implemented TCP backend
2018-10-11 14:02:29 +00:00
Fabio Manganiello
f79de2e708
Reverted bus post logic for HTTP backend
2018-09-25 00:31:51 +02:00
Fabio Manganiello
65ec2458d8
MQTT backend should call on_message instead of posting directly to the bus
2018-09-24 23:21:02 +02:00
Fabio Manganiello
d215410a6a
More consistent flow for messages received by a backend
2018-09-24 23:13:44 +02:00
Fabio Manganiello
59d84c4fcb
- Calling on_message
on Redis backend to trigger the right logic
...
instead of `self.bus.post` directly
- For consistency `mset` now returns back the map of the set variables
- Redis backend enabled on tests
2018-09-24 22:07:13 +02:00
Fabio Manganiello
badb739a8c
Increased response queue read timeout to 60 seconds
2018-09-20 13:13:36 +00:00
Fabio Manganiello
6449504e26
Switched the bus to a Redis bus
2018-09-20 10:49:57 +00:00
Fabio Manganiello
661563d1f1
Added Redis bus
2018-09-20 09:41:27 +02:00
Fabio Manganiello
98d24b061a
Added joystick backend
2018-09-18 18:58:23 +02:00
Fabio Manganiello
2ee54b5220
Replaced fadeIn with show to make transitions less CPU heavy on RPi
2018-09-15 18:25:58 +02:00
Fabio Manganiello
63890f7670
Return of get_measurement should always be a dict
2018-09-06 03:14:11 +02:00
Fabio Manganiello
5b5e861f94
Implemented distance sensors backend
2018-09-06 03:02:16 +02:00
Fabio Manganiello
98a8874084
Added accelerometer sensor backend
2018-09-06 02:31:01 +02:00
Fabio Manganiello
53ba5f6628
Wrap camera stop and connection close in two distinct try-catch blocks
2018-09-05 15:29:14 +00:00
Fabio Manganiello
6e867e9fb2
Support for multiple thresholds for the same sensor
2018-08-25 12:29:20 +02:00
Fabio Manganiello
2df9c5a890
Fixed gpio css
2018-08-22 21:01:37 +02:00
Fabio Manganiello
a9b4c1b8bf
Fixed gpio ui
2018-08-22 20:22:34 +02:00
Fabio Manganiello
2c369cb86d
Added web interface for gpio plugin
2018-08-22 19:50:30 +02:00
Fabio Manganiello
09d7d98ae3
Retry logic for Mercury API
2018-08-19 21:52:01 +00:00
Fabio Manganiello
d2bd49b364
Sync changes on playback volume or state with events and web UI
2018-08-18 01:11:14 +02:00
Fabio Manganiello
822e0a1e25
Better fix for broken async variables and attributes after Python 3.7 migration
2018-08-07 22:00:11 +00:00
Fabio Manganiello
b023618950
Revert "In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async"
...
This reverts commit e625861edf
.
2018-08-07 21:52:02 +00:00
Fabio Manganiello
e625861edf
In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async
2018-08-07 21:26:57 +00:00
Fabio Manganiello
ec38ecbaf3
More pylint fixes
2018-07-30 23:18:01 +02:00
Fabio Manganiello
81803a364d
Fixed some pylint warnings
2018-07-30 22:08:06 +02:00
Fabio Manganiello
61e211ee07
Added Kafka plugin
2018-07-28 01:55:19 +02:00
Fabio Manganiello
1ec0bd40d9
Updated docstrings
2018-07-23 02:11:16 +02:00
Fabio Manganiello
0b4cfec8e7
More robust HTTP backend in case Redis wasn't configured
2018-07-20 11:13:49 +02:00
Fabio Manganiello
5bc7319933
Optimized serial plugin
2018-07-17 23:47:13 +02:00
Fabio Manganiello
b9c77b15f8
Fixed docstring
2018-07-16 22:12:02 +02:00
Fabio Manganiello
42fa8360f3
Only propagate the values above/below threshold in case of a sensor threshold crossing, excluding the sensors that haven't crossed the threshold
2018-07-15 17:28:17 +02:00
Fabio Manganiello
c81534875a
Get Redis object on each interaction in case the backend wasn't ready before
2018-07-08 22:12:30 +02:00
Fabio Manganiello
e1ead3c25f
s/_token/token/
2018-07-08 22:00:28 +02:00
Fabio Manganiello
2647bd3881
Implemented token verification over HTTP calls.
...
The token can be provided either:
* GET parameter (``?token=abc``)
* JSON payload request (``{..your_request.., "_token":"abc"})
* HTTP header (``X-Token: abc``)
* Basic HTTP auth (any username works, password: token)
2018-07-08 21:36:58 +02:00
Fabio Manganiello
4ebdda80f9
More robust support for Redis configuration in web socket server
2018-07-08 12:24:33 +02:00
Fabio Manganiello
b443df7947
Parametrized the HTTP backend Redis object by using the same configuration used on the Redis backend
2018-07-08 12:13:43 +02:00
Fabio Manganiello
88d9f9d3ac
Stability fixes
2018-07-06 03:38:14 +02:00
Fabio Manganiello
81a81312e3
Basic support for token authentication on request level
2018-07-05 09:15:53 +02:00
Fabio Manganiello
7ad0724f0e
while True loop for recording
2018-07-01 19:35:23 +02:00
Fabio Manganiello
6ba71b52e7
Improved camera.pi logic
2018-06-29 11:25:18 +02:00
Fabio Manganiello
57baa0c64a
Try to decode the message event if it's not a Platypush message
2018-06-29 11:09:28 +02:00
Fabio Manganiello
3872276234
Better way to handle plugins->backends communication through Redis
2018-06-29 10:21:19 +02:00
Fabio Manganiello
4163a414bf
Caching switch.tplink devices and supporting lookup by alias
2018-06-26 22:59:33 +02:00
Fabio Manganiello
65f9610cce
Added switch.tplink web widget
2018-06-26 22:14:11 +02:00
Fabio Manganiello
94ffaf2099
Commented out optional requirements that break RTD build
2018-06-26 01:06:23 +02:00
Fabio Manganiello
e6fdcaa068
Make sure that the Redis thread gets the stop event propagated when the application terminates
2018-06-26 00:57:26 +02:00
Fabio Manganiello
8e16f31603
fixed regex
2018-06-26 00:46:13 +02:00
Fabio Manganiello
7398107570
Completed documentation for backends
2018-06-26 00:36:01 +02:00
Fabio Manganiello
8a0ca64e4d
Merge branch 'master' into docs
2018-06-26 00:17:28 +02:00
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