Skip to content

SEPIA-Home v2.5.1 with new client-to-client communication, custom HTML voice widgets, new style options, stability improvements and ...

Compare
Choose a tag to compare
@fquirin fquirin released this 20 Oct 23:16
· 186 commits to master since this release
8554ed1

v2.5.1 - 2020.10.21

On the paper its just a minor version jump from 2.5.0 but this release is actually packed with a lot of exciting new features, focused on the SEPIA client this time 😎. It comes with improved client stability and UX :bowtie:, especially when used as always-on, DIY smart speaker/display 🔮 , improved security, instant synchronization of timers ⏰ (and sync. warning for lists) across multiple clients (same user, different device ID), a lot of new status events (accessible via CLEXI remote terminal), new context menus for almost every result-card with buttons like 'play-on' for the radio-card to start the stream on a different device 📱 ↔️ 📻 and much more!
The power of 🖼️ custom view frames (HTML) has been greatly enhanced with new abilities and a deeper integration of speech input 🎤. Combined with the services SDK and a new command called 'frame_control' (see teach-interface) its a lot easier now to create your own "voice widgets" and UI 🧑‍🏭 🔠.
There is a brand new skin available as well in dark and light mode called 'Flaming Squirrel' 🐿️ 🔥 and it is possible now to select avatar and skin independently 🎨.

Besides many other updates another notable highlight is the improved Code-UI ⭐ of the SEPIA Control-HUB. You can now see all your uploaded services, open them, edit the code 👩‍💻 or simply remove them with one click :octocat:. A new user-roles editor 📜 has been added as well .

Server improvements mainly focus on stability and support for all the new client features, but there have been some enhancements to the services as well. For example there are a few new news outlets like 'NY Times', 'The Guardian' or '1E9' 🗞️ and a new section for MAKER news including the 'Raspberry Pi' blog 🍇 ("show me Maker news").

There is more to discover, so check-out the extended release notes or the "shorter" version below! Hope you enjoy the update ✌️ 😃.

Download SEPIA-Home - Download Android APK - See Twitter news feed

[EDIT 2020.10.22]: Updated Android APK to v0.23.1 to hot-fix error messages for microphone issues

Release notes (short) - Extended version: here

Updated client to v0.23.0:

  • Added support for PWA (progressive web app) feature of browsers/OS via new basic service worker and PWA manifest file
  • Android 10 support aka set 'targetSdkVersion' to 29, updated Cordova to v9, android-platform plugin to v8.1.0 and several other plugins
  • Implemented context menu for every result card, e.g. radio/music-stream (+ playlist button, if available), news (read or copy), weather, etc.
  • Improved presentation of weather results and added more mini icons
  • Greatly extended capabilities of custom view frames with proper integration of microphone, new scoped functions (e.g. 'handleSpeechToTextInput') and secure loading from SEPIA client (folder available in Android as well) or server (SEPIA web-server folder)
  • New folders for HTML 'templates', 'custom-data' and 'local_data' + automatic file path expansion for the tags '<custom_data>/', '<local_data>/', '<app_data>/' (root folder), '<assist_server>/' (URL to SEPIA web-server), '<teach_server>/' and '<chat_server>/'
  • Added example custom view to new 'xtensions/custom-data/' folder
  • Support for new service-actions 'open_settings', 'frames_view_action', 'close_frames_view' and 'switch_stt_engine'
  • Start and stop audio streams via new remote-action type 'audio_stream' + 'control' and changed data type 'music' to 'media'
  • Added functions to get and show user clients and to send remote-actions via WebSocket chat-server
  • Added 'connect', 'disconnect', 'wakeWordOn', 'wakeWordOff' and 'reload' to remote-action "hotkeys" (shortcuts: 'co', 'dc', 'ww', 'wm', 'F5')
  • Automatically mark open lists as out-of-date if any active client changes the data
  • New client event 'sepia_alarm_event' that will be broadcasted (to CLEXI) when an alarm is triggered/removed/stopped
  • New client event 'sepia-audio-player-event' that will inform about audio streams (start/stop/URL etc.)
  • Additional client events for 'sepia-account-error' and 'sepia-client-error' + 'sepia-state' event will now inform about 'connection' state (active, closed, etc.)
  • Increased maximal number of custom buttons from 16 to 42 and in addition load custom buttons that were stored via assistant user (this way admins can create buttons for all users at once)
  • Improved login-restore procedure on app start and added automatic login-retry after connection or server error
  • Improved checks and handling of expired login tokens and prevent login-refresh try if client-ID was changed
  • New touch-bar control style selectable via settings that uses only the bottom of the screen for swipe and automatically minimizes text input field (double-tap triggers back button)
  • Added (very) basic big-screen mode to optionally remove size-limit of client window (settings)
  • Interpret double-space as line-break in chat messages
  • Fixed a bug that could sometimes crash the event queue after an empty speech result so that the client would not return to idle state
  • Added an auto-reset trigger if client is in 'loading' state for more than 45s and (if enabled) made sure that the wake-word listener will restart reliably
  • Added ability to define custom sound for mic activation confirm and default recorder buffer length (hidden in "Hey SEPIA" settings page)
  • Added settings option to select avatar independently from skin, made possible by splitting CSS files for skin and avatar + added ability to load 'base' skins and avatars when adding new skins
  • New skins "flaming squirrel" and "flaming squirrel dark"
  • Added support for 'userPreferredSearchEngine' and search-engine selector to settings
  • ...

Updated Control-HUB (admin-tools) to v1.4.0:

  • Improved code-ui with new user custom-services manager to load, edit and delete previously uploaded services (source-code)
  • New user-roles editor UI (replaces old, error-prone input field)
  • Added new CLEXI remote terminal 'set' command examples ('micReset', 'connect', 'disconnect') and tweaked log colors
  • Added button to client-connections page to show active clients via new 'getOwnClientConnections' chat-server endpoint
  • Added statistics button to chat-server card in server overview page
  • New room types 'entrance' and 'attic' for smart-home page
  • Added support for PWA (progressive web app) feature of browsers/OS via new basic service worker and PWA manifest file
  • ...

Updated Assist-server to v2.5.1:

  • New news section 'maker' and new news outlets 'NY Times', 'The Guardian', '1E9', 'SPIEGEL Start' (replaces 'Bento'), 'Raspberry Pi' and 'SEPIA' + improved default selection for different sections
  • Added SDK endpoint 'get-services' to load a list of user installed services
  • Improved SDK service upload, store source code and load it via new '/get-service-source' endpoint
  • New 'EventsBroadcaster' class, adaptations to 'RemoteActionEndpoint' and new method 'sendRemoteAction' (ServiceBuilder) for services
  • New 'changeEvent' class and broadcaster to push e.g. user-data updates like changed lists and alarms directly to active clients
  • Added new "custom view demo" (Xtensions/WebContent/views/custom-view-demo.html)
  • Added new command 'frame_control' to create custom commands for custom view frames more easily
  • Allow parameter extraction in services via named-groups in 'setCustomTriggerRegX'
  • Added 'qwant' and 'ecosia' as default web search options and evaluate user preference (if given via client 'prefSearchEngine')
  • Added new 'ActionBuilder' class to make usage in services easier
  • Fixes and improvements for some NLU parameters and services (e.g. 'AlarmName', 'NewsSection', 'SportsTeam', 'OpenCustomLink')
  • New 'Room' parameter types 'entrance' and 'attic'
  • Fixed a bug in smart device type filter that could prevent automatic device loading from HUBs like 'FHEM' or 'openHAB'
  • Sanitized device loading procedure for internal smart home HUB to improve timing for larger lists of items
  • Added new 'validUntil' field to authentication endpoint and improved error code for expired tokens
  • Added 'playlistURL' to card-data of each radio station if available
  • Added CORS support for static file hosting + 2 new config options for assist.[].properties: 'enable_cors' and 'enable_file_cors'
  • Updated Bundesliga service and teams for new season
  • ...

Updated WebSocket Chat-Server to v1.3.1:

  • Increased WebSocket maximal message size from 64 KB to 256 KB
  • Added "broadcast to all devices" feature to remote-action handler and allow client-to-client actions for devices with same user
  • Improved error messages for several handlers, e.g. 'SepiaAuthenticationHandler'
  • Added new 'ClientManager' class and related endpoint '/getOwnClientConnections' to get a list of active clients for a specific user-id
  • Added message data type 'ping' and new background service to test if a client is still alive and active (ClientPingRequestHandler)
  • Added new statistics and endpoint (basically identical to the other servers)
  • ...

Updated Teach-Server to v2.2.1:

  • Added 'frame_control' with examples and description to Teach-UI config ('common.js')
  • New 'getAllCustomAssistantCommands' endpoint to get commands that were defined via assistant user
  • ...

Updated Core-tools to v2.2.7:

  • Moved 'ThreadManager' class from assist server to core tools, merged with old class and improved code
  • Fixed and improved 'unescapeHTML' method (Converters)
  • Added CORS control method for static server files
  • Added 'node_red' name to 'CLIENTS' for future integrations
  • ...

Other servers, tools and common changes:

  • Improvements to README files and more API docs (see API folder in sepia-docs repository)
  • Improved server scripts with: new embedded Java download links, extended backup procedure (added custom views), proxy test during server start ('test-cluster.sh' only)
  • Experimental Node.js support + Node-RED Nodes: (check 'Dev' branch)
  • ...