Skip to content

Commit 20e7f42

Browse files
authored
Merge pull request #7 from SEPIA-Framework/dev
SEPIA-Home v2.3.0 release merge
2 parents ab4696f + 8e317a5 commit 20e7f42

File tree

7 files changed

+14424
-10
lines changed

7 files changed

+14424
-10
lines changed

CHANGELOG.md

Lines changed: 90 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,92 @@
11
## Release history and changelog
22

3+
### v2.3.0 - 2019.09.xx
4+
5+
Updated client to v0.19.0:
6+
* Partially reworked and greatly improved messenger features and UI to support channel create, join, invite (via URL), missed messages, history and more
7+
* Added option to change login password from settings menu (via old password)
8+
* Improved messaging between devices with same login but different device-ID
9+
* Improved handling of SEPIA universal links when posted inside SEPIA chat channels
10+
* Improved UX and security when interacting with SEPIA in group chats (public SEPIA messages will not automatically execute actions or play music anymore)
11+
* Keep keyboard open in mobile apps when 'send'-button is pressed
12+
* Forget last command after 60s (to prevent 'I just told you' kind of SEPIA comments after long idle time)
13+
* Automatically select user-preferred color scheme (read from OS) and set light or dark skin when no skin was selected before
14+
* Optimized 'switch-language' action
15+
* Renamed 'saythis' button to 'broadcast'
16+
* New 'updateData' message-event handler to support arbitrary data exchange with chat-server via WebSocket connection
17+
* Fixed a rare crash due to outdated splash-screen plugin in Android
18+
* Improved data store/load script to reduce number of writes
19+
* Added onChatOutputHandler for views like AO-Mode (e.g. see SEPIA answer as text in AO)
20+
* Added pause/resume client control for audio players and tweaked YouTube music to properly pause audio when STT is activated
21+
* Added support for new input command 'i18n:XY' to dynamically set input language (e.g. 'i18n:de Guten Tag' will trigger the German 'Hello' even when app language is english)
22+
* New share-menu activated by a long-press on the sender name in a chat message
23+
* Made BLE Beacon remote URL more flexible
24+
* Improved auto-scaling below 300px window width and tweaked tiny-mode
25+
* New launcher.html page to configure launch-options and automatically redirect (handy for app in browser kiosk-mode)
26+
* Reactivated 'application/ld+json' tag in index.html
27+
* Set Android target SDK to 28 (Android 9.0) and improved support including new 'network security config'
28+
* Minor UI, bug and style fixes
29+
30+
Updated Control-HUB (admin-tools) to v1.2.1:
31+
* Core-settings page now allows to write assist-server settings (key-value pairs) directly to config file and reload server remotely. This e.g. allows to quickly add API keys etc.
32+
* Smart-home page now allows to load smart-home HUB info data from server (via improved server-config endpoint)
33+
* Added 'delete user' function and button to user-management page
34+
* Fixed channel create function to support new chat-server version
35+
* Get channel history statistics and force database clean-up from chat-settings page
36+
* Style tweaks and more info texts
37+
* Added correct version number to help-page
38+
39+
Updated Assist-server to v2.3.0:
40+
* Introduced new SmartHomeHub interface and config settings to make integration of hubs like ioBroker, FHEM and HomeAssistant easier
41+
* Adjusted openHAB integration to use new SmartHomeHub interface
42+
* Updated radio-stations and news-outlets lists
43+
* Fixed OpenLigaWorker and service to support new season of German Bundesliga
44+
* Added background tasks and task-manager support (schedule, check, cancel, etc.) to services (via 'ServiceBuilder.runOnceInBackground') and improved data-storage for services (e.g. via 'ServiceBuilder.readServiceDataForUser')
45+
* Improved and enabled (previously dormant) NLU-parameter 'Language' and tweaked dictionary service
46+
* Added 'LanguageSwitcher' service to support commands like "switch language to German"
47+
* Improved smart home device intent (NLU) to recognize devices more generally (e.g. "status of my XY 1" -> device=XY 1)
48+
* Improved 'no_result' answer when using 'sentence_connect' command (e.g. via Teach-UI) and tweaked internal service redirect
49+
* Tweaked 'reminders' NLU ("remind me to/remember ...")
50+
* Added inputModifiers to InterpretatonChain and implemented new i18n-modifier to be able to switch input language on-the-fly (e.g to share SEPIA links independent of user language)
51+
* Added meta data to OPEN_LINK command to better handle 'linkshare' (note: 'linkshare' is a special chat input cmd, e.g. type: "linkshare https://twitter.com/sepia_fw")
52+
* Improved 'AuthEndpoint' to support password change via old password (or superuser) and tweaked 'delete' user procedure
53+
* Improved 'ConfigServer' endpoint to support editing server settings file (assist.xy.properties) directly, e.g. via SEPIA Control-HUB
54+
* Implemented server restart method and added endpoint option to 'ConfigServer' (it will try to shutdown client and workers as clean as possible and reload settings)
55+
* Fixed code in GeoCoding and Weather API to make them more stable
56+
* Adjustments in SEPIA WebSocket client to support chat-server update (including device-ID message routing)
57+
* Updated and added new Elasticsearch database mappings for chat (channels, users, messages) and added test-method to server start that will add missing ES indices automatically
58+
59+
Updated WebSocket Chat-Server to v1.2.0:
60+
* Re-organized and improved code, e.g. to get better access to all the message handlers (create channel, join, auth, etc.)
61+
* New and improved methods/handlers/endpoints for channel create, join, delete
62+
* New database interfaces and implementations (Elasticsearch) for channel-data (store/load created channels), channel-users (store/load missed events) and channel messages (store/load channel history)
63+
* New settings in config file for database modules (in-memory and Elasticsearch) and options like 'store_messages_per_channel' or 'max_channels_per_user' etc.
64+
* Automatic clean-up in background of old messages (e.g. when 'store_messages_per_channel' threshold is reached), see config option 'channel_clean_up_schedule_delay'
65+
* Broadcast 'missed message' event to online users when in different channel and store events for offline users to inform them later on login
66+
* Improved message routing by including sender and receiver device-IDs (especially useful when multiple devices run on same account, e.g. smart-speaker in living-room and kitchen etc.)
67+
* Improved handling of channel-ID in combination with channel-name
68+
* New 'updateData' message-event handler to support arbitrary data exchange with clients via WebSocket connection
69+
* Added server-ID to each socket-message (in case we expand the cluster later)
70+
* New endpoints 'getAvailableChannels', 'getChannelHistoryStatistic' and 'removeOutdatedChannelMessages'
71+
72+
Updated Core-tools to v2.2.2:
73+
* Added run-single-task and schedule-task methods to 'ThreadManager'
74+
* Added range-match to 'EsQueryBuilder' (e.g. to find all entries older than xy-timestamp)
75+
* Created 'LruCache' class (last-recently-used cache)
76+
* Updated javaspark up to v2.9.1
77+
* Updated fasterxml.jackson.core to 2.9.9.2
78+
79+
All servers:
80+
* 'localName' of server is now also used as server-ID and device-ID if one is required (e.g. for load-balancing of cluster or broadcasting info to chat channels)
81+
82+
Other tools:
83+
* Added code for [Microbit BLE Beacon remote](sepia-microbit-projects)
84+
* Updated Teach-Server to v2.0.3 to include new core-tools v2.2.2 and thus javaspark v2.9.1 (no other code changes)
85+
* Updated SDK to support new SEPIA-Home release and added 'WorkoutHelperDemo' service to demonstrate pro-active background messages and database access
86+
* Updated reverse-proxy to v0.3.2 to include security fix for undertow-core v2.0.23
87+
* Updated Mesh-Node to v0.9.10 to include new core-tools v2.2.2 and thus javaspark v2.9.1
88+
* Updated browser extension to v0.6.2 to exclude localhost, local domains and SEPIA path from showing navbar
89+
390
### v2.2.2 - 2019.05.31
491

592
Updated client to v0.18.0:
@@ -14,10 +101,10 @@ Updated client to v0.18.0:
14101
* Filled Teach-UI help button with many examples and info for each command
15102
* Added Teach-UI support for flex-parameters in sentence_connect (see new help for more info)
16103
* Added new platform_controls command to Teach-UI (one sentence - device dependent actions like URL-call or Android-Intent)
17-
* Improved reconnect behaviour after lost connection
18-
* Added server version check and incompatability warning to start-up sequence
104+
* Improved reconnect behavior after lost connection
105+
* Added server version check and incompatibility warning to start-up sequence
19106
* Added new client info to server requests (deviceId, platform, default music app etc.)
20-
* Fixed and imroved 'Hey SEPIA' code (still some smaller issues left)
107+
* Fixed and improved 'Hey SEPIA' code (still some smaller issues left)
21108
* Added Android ASSIST Intent listener to allow SEPIA to become default system assistant (long-press on home button)
22109
* Added Android Intent plugin
23110
* Added Android navigation bar plugin for colored soft-keys (bottom of screen)

Dockerfile

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,23 @@ FROM debian:stretch-slim
33
# Default to UTF-8 file.encoding
44
ENV LANG C.UTF-8
55

6-
# Get all packages, install Java OpenJDK 8 and create a user
6+
# Get all packages, install Java OpenJDK 11 and create a user
77

8-
RUN apt-get update && \
8+
RUN echo 'Installing SEPIA-Home...' && \
9+
#
10+
# Add Debian backports
11+
echo 'deb http://ftp.debian.org/debian stretch-backports main' | tee /etc/apt/sources.list.d/stretch-backports.list &&\
12+
#
13+
# Update packages
14+
apt-get update && \
915
#
1016
# Fix for Debian9 slim to be able to install Java
1117
mkdir -p /usr/share/man/man1 &&\
1218
#
1319
# Get packages
1420
apt-get install -y --no-install-recommends \
1521
git wget curl nano unzip zip procps \
16-
openjdk-8-jdk-headless ca-certificates-java maven && \
22+
openjdk-11-jdk-headless ca-certificates-java maven && \
1723
#
1824
# Clean up
1925
apt-get clean && apt-get autoclean && apt-get autoremove -y && \
@@ -24,7 +30,7 @@ RUN apt-get update && \
2430

2531
# Set JAVA_HOME path ... just in case
2632

27-
ENV JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
33+
ENV JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
2834
ENV PATH="${JAVA_HOME}:${PATH}"
2935

3036
# Build SEPIA-Home (custom-bundle, single-server, SBC version)
@@ -72,7 +78,15 @@ RUN echo "Building SEPIA-Home (custom bundle) ..." && \
7278
find . -iname "*.sh" -exec chmod +x {} \; && \
7379
rm -r ~/SEPIA/tmp
7480
# we could also remove maven here and maybe some other packages
81+
#
82+
# Setup SEPIA
83+
# NOTE: This has to be done (e.g. by sharing external config folder) before server can run without error
84+
# e.g.:
85+
# 0 - Create shared folder: export SEPIA_SHARE=/home/[my-user]/sepia-share && mkdir -p $SEPIA_SHARE
86+
# 1 - Copy SEPIA folder from container: sudo docker run --rm --name=sepia_home -p 20726:20726 -it -v $SEPIA_SHARE:/home/admin/sepia-backup sepia/home:test cp -r /home/admin/SEPIA /home/admin/sepia-backup
87+
# 2 - Run setup with shared folder: sudo docker run --rm --name=sepia_home -p 20726:20726 -it -v $SEPIA_SHARE/SEPIA:/home/admin/SEPIA sepia/home:test bash setup.sh
88+
# 3 - Run server: sudo docker run --rm --name=sepia_home -p 20726:20726 -d -v $SEPIA_SHARE/SEPIA:/home/admin/SEPIA sepia/home:test
7589

7690
# Start
7791
WORKDIR /home/admin/SEPIA
78-
CMD bash run-sepia.sh && cat
92+
CMD bash on-docker.sh

sepia-custom-bundle-folder.zip

357 Bytes
Binary file not shown.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/bin/sh
2+
3+
# SETUP VM FOR ELASTICSEARCH
4+
sudo sysctl -w vm.max_map_count=262144
5+
6+
# START
7+
cd ~/SEPIA
8+
./run-sepia.sh
9+
10+
# ADD PROXY
11+
./run-reverse-proxy.sh
12+
13+
# KEEP DOCKER ALIVE (alternatively run proxy or websocket server in foreground)
14+
trap : TERM INT; sleep infinity & wait

sepia-custom-bundle-folder/on-reboot.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
#!/bin/sh
22

33
# SETUP VM FOR ELASTICSEARCH
4-
54
sudo sysctl -w vm.max_map_count=262144
65

76
# START
8-
97
cd ~/SEPIA
108
./run-sepia.sh
119

sepia-microbit-projects/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# SEPIA micro:bit Code and Tools
2+
3+
## Microbit Bluetooth LE Beacon Remote
4+
5+
The BLE remote is a program for the BBC micro:bit to broadcast Eddystone Beacon data on the push of a (or two) buttons.
6+
This can be used to remotely control a SEPIA client using certain Eddystone URLs to carry the control info.
7+
8+
A short demo video can be found on Twitter: [click me](https://twitter.com/sepia_fw/status/1111263680640008192).
9+
10+
### Installation
11+
12+
* Open the web-based microbit editor: https://makecode.microbit.org/#editor
13+
* Drag and drop the `microbit-BLE-Beacon-remote.hex` file into the editor menu to load the program
14+
* Connect your microbit to deploy the code
15+
16+
17+

0 commit comments

Comments
 (0)