Skip to content

Commit 7b2eada

Browse files
authored
Merge pull request #26 from SEPIA-Framework/dev
SEPIA-Home v2.6.1 and DIY client release packages
2 parents d39c04f + 9e70a77 commit 7b2eada

File tree

79 files changed

+1496
-395
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+1496
-395
lines changed

CHANGELOG.md

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

3+
### v2.6.1 - 2022.01.30
4+
5+
Updated client to v0.24.1:
6+
* Added support for new 'shared-access' permissions and new settings page to allow other users limited access to specific devices and remote-actions
7+
* Added new 'remote media player' buttons to quickly control media on other clients (start, stop, skip)
8+
* Added support for Porcupine 2.0 and custom wake-words. Create wake-words via Porcupine console and use with free-tier access key + updated wake-word settings page
9+
* Updated web-audio lib and speech module to respond a bit more snappy and better handle timeouts, connection issues and no-speech events
10+
* Updated CLEXI client to v0.9.0 and introduced GPIO interface to control for example LED arrays or read hardware buttons + added "clexiGpioInterface" section to settings.js
11+
* Added remote terminal functions (CLEXI) to set/get/test microphone (gain, mictest) + added new debug page to STT settings
12+
* Implemented 'Config.appRegionCode' to enable region specific service actions for same languages
13+
* Improved avatar and app styles for example to better indicate wake-word activate state
14+
* Updated input-controls view and improved Bluetooth BLE beacon security with "known addresses" check
15+
* New skins: 'Funky Sunrise' and 'The Vectors'
16+
* Improved landscape, big-screen and tiny mode + better handling of screen-size changes
17+
* Send optional 'info.data' to frame functions 'onOpen' and 'onFinishSetup'
18+
* Android: Updated app to meet the new Play Store requirements and adapt to Android 11 intent restrictions. NOTE: Some custom intents might not be allowed anymore :-/.
19+
* Fixed a bug that made expired timers disappear and return in UI unwantedly
20+
* Added new 'hasTouch' URL parameter to force touch-UI tweaks
21+
* Smaller bug fixes and tweaks
22+
23+
Updated Control-HUB (admin-tools) to v1.4.2:
24+
* Improved look, added skin support + new "light" skin and choose dark/light skin according to browser settings
25+
* Added support for new 'raw' field to custom 'set-cmds' in smart-home page (device cards)
26+
* Updated CLEXI client to v0.9.0 and added support for GPIO interface (read hardware buttons, control LEDs)
27+
* Updated CLEXI help pop-up (remote terminal commands) to include new microphone settings and test functions
28+
29+
Updated Assist-server to v2.6.0:
30+
* Introduced new 'shared-access' permission settings for accounts
31+
* Allow 'receiver' field for remote-actions + check shared permissions when sending action to other user
32+
* Created 'GeneralValue' parameter ("set AB to value XY") and implemented it to improve smart-home service (this will allow more general support for device-specific input)
33+
* Introduced new 'Xtensions/TTS/settings.json' to configure TTS voices, improved setup and added MBROLA voices support
34+
* Improved TTS pre-processing (e.g. better output for times)
35+
* Reorganized and optimized geo-coder code and implemented Graphhopper API for geo-coding, location and directions search in addition to Google Maps
36+
* Improved location parameter and points-of-interest (POI) search
37+
* Make Youtube API url configurable (e.g. to use custom search)
38+
* Updated smart-home Test-HUB to include more devices
39+
* Added new 'setCustomTriggerExcludeRegX' method for services to better handle sentences that should NOT match your service
40+
* Added Porcupine 2.0 files (WASM and keywords)
41+
* Updated core tools to v2.2.10
42+
* Bug fixes and smaller tweaks
43+
44+
Updated WebSocket Chat-Server to v1.3.3:
45+
* Added support for new 'sharedAccess' feature to manage and allow remote-actions between users
46+
* Added endpoint 'refreshClientConnections' to trigger automatic client connection refresh (disconnect -> reconnect)
47+
* Updated core tools to v2.2.10
48+
* Smaller improvements
49+
50+
Updated Teach-Server to v2.2.3:
51+
* Improved 'common.json' Teach-UI texts and configuration and added 'general_value' to smart-home command
52+
* Updated core tools to v2.2.10
53+
* Smaller fixes
54+
55+
Updated Core-tools to v2.2.10:
56+
* Added support for 'sharedAccess' field in user account
57+
* Improved 'Connectors.apacheHttpGET' to be a bit more strict with timeouts and reconnects and to allow more custom settings
58+
* Updated 'PARAMETERS' class to include new 'GENERAL_VALUE' parameter
59+
60+
Other servers, tools and common changes:
61+
* Improved most of the SEPIA-Home install, setup and run scripts (including self-signed SSL certificate generation and handling)
62+
* Improved DIY client (installation, logging, features like LED controls etc.)
63+
* Added SEPIA offline STT-Server install scripts (Linux) to SEPIA-Home and DIY client folders to get started more easily
64+
* Adjusted server and DIY client for better compatability with Debian 11/Raspberry Pi OS Bullseye
65+
* In preparation: Updated SDK and Docker demo containers
66+
367
### v2.6.0 - 2021.10.10
468

569
Updated client to v0.24.0:

Dockerfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ RUN echo 'Installing SEPIA-Home...' && \
3535
#
3636
# ENV JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
3737
# ENV PATH="${JAVA_HOME}:${PATH}"
38+
#
39+
# Set a Docker ENV to identify container in scripts
40+
ENV ISDOCKER="true"
3841

3942
# Download SEPIA-Home (custom-bundle, single-server, SBC version)
4043

README.md

Lines changed: 27 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,19 @@ NOTE: Setup and scripts included in this bundle assume you are using the framewo
1313

1414
## Quick start
1515

16-
If you are using Raspian for Raspberry Pi check out the more detailed [guide](https://github.com/SEPIA-Framework/sepia-docs/wiki/Installation) including an installation script.
16+
If you are using a **Raspberry Pi** check out the more detailed [guide](https://github.com/SEPIA-Framework/sepia-docs/wiki/Installation).
17+
The easiest way to get started is to use the setup script and follow the instructions (optimized for Raspberry Pi OS but any Debian based Linux might work):
18+
```
19+
wget https://sepia-framework.github.io/install/sepia-home-rpi.sh
20+
bash sepia-home-rpi.sh
21+
```
1722

18-
* Make sure you have Java JDK 11 installed (recommended: OpenJDK 11). [Oracle Java JDK 8](https://www.oracle.com/java/technologies/downloads/#java8-windows) will work as well.
19-
* Optional (Linux): Update your local clock for precise timers, e.g. (Debian): `sudo timedatectl set-ntp true`
23+
Installation without script (any platform):
24+
* Make sure you have **Java JDK 11** installed (Java 8 will work as well, for now). For Debian Linux use `sudo apt-get install openjdk-11-jdk-headless`, for other platforms check [Eclipse's Adoptium Project](https://adoptium.net/index.html?variant=openjdk11).
2025
* Place the content of the [SEPIA-Home bundle](https://github.com/SEPIA-Framework/sepia-installation-and-setup/releases) in any folder you like. On Linux "~/SEPIA/" (no root!) is highly recommended if you want to use the boot and SSL scripts later: `unzip SEPIA-Home.zip -d ~/SEPIA`.
2126
* Run `setup.bat` (Windows) or `bash setup.sh` (Mac, Linux) to setup your SEPIA servers
2227
* Inside the setup choose 4 to start Elasticsearch and then 1 to setup the SEPIA-Framework. Remember the passwords you set! Optionally install the TTS engine (recommended for Linux). You can skip the other options for now.
28+
* Optional (Linux): Update your local clock for precise timers, e.g. (Debian): `sudo timedatectl set-ntp true`
2329
* If everything worked out (check console for errors) you can use "run-sepia" (.bat for Windows, .sh for Linux/Mac) to start all servers.
2430
* The run-script will ping the servers to see if everything started as planned. You can repeat this test with test-cluster.bat/test-cluster.sh to make sure. If you see errors check sepia-*/log.out.
2531
* You should be able to reach the web-app of SEPIA via one of the URLs suggested at the end of the run-script, e.g.: http://localhost:20721/app/index.html (replace 'localhost' with the server IP if you are on a different machine).
@@ -32,7 +38,7 @@ to your browser as well :-) see [this guide](https://github.com/SEPIA-Framework/
3238

3339
## Next steps
3440

35-
If your local tests worked well it is time to create your own (non-admin) account:
41+
If your local tests worked well it is time to **create your own (non-admin) account**:
3642

3743
* To create new users ([detailed tutorial](https://github.com/SEPIA-Framework/sepia-docs/wiki/Create-and-Edit-Users)) use the SEPIA Control-HUB (aka tools page or admin-tools): http://localhost:20721/tools/index.html (registration via 'real' e-mail is possible in theory but not fully implemented in the clients right now).
3844
* Login to the Control-HUB using your admin account. By extending the login-box you can check if the right server for authentication is selected (very similar to the hostname above) it should look like this 'http://localhost:20721' or this 'http://192.168.0.10:20721' for example.
@@ -41,9 +47,23 @@ If your local tests worked well it is time to create your own (non-admin) accoun
4147

4248
## Secure server
4349

44-
Creating your own web-server with SSL encryption will make sure that you can use all features of the app without problems and will also make your server reachable from outside your network (e.g. when you're using the mobile app and want to check your shopping-list inside a supermarket).
45-
To upgrade you local server to a full-blown web-server with SSL it is recommended to use [Nginx](https://de.wikipedia.org/wiki/Nginx) and [Letsencrypt](https://letsencrypt.org/). There are some scripts included in the SEPIA-Home release to make your life easier.
46-
To get started check the Wiki entry about [how to secure your server, use all features and open it to the world](https://github.com/SEPIA-Framework/sepia-docs/wiki/SSL-for-your-Server).
50+
Creating your own web-server with **SSL encryption** will make sure that you can use all features of the app without problems via **HTTPS**. There are 2 major options supported via SEPIA setup scripts:
51+
* Self-signed SSL with non-SSL fallback to secure your private network. **Recommended** if you're planning to use SEPIA inside your home.
52+
* [Letsencrypt](https://letsencrypt.org/) SSL with a dynamic DNS provider (e.g. Duck-DNS). This will make your server reachable from outside your network (e.g. when you're using the mobile app and want to check your shopping-list inside a supermarket) and give you "official" SSL certificates.
53+
54+
To get started you can use the [Nginx](https://de.wikipedia.org/wiki/Nginx) setups script in your SEPIA folder: `bash setup-nginx.sh`.
55+
To learn more about SSL setup check the SEPIA-Wiki entry: [how to secure your server, use all features and open it to the world](https://github.com/SEPIA-Framework/sepia-docs/wiki/SSL-for-your-Server).
56+
57+
# SEPIA DIY Client - Raspberry Pi Smart-Speaker, Smart-Display etc.
58+
59+
When you've successfully installed SEPIA-Home you can use the web-based SEPIA-Client right away from your [web browser or via the official app](https://github.com/SEPIA-Framework/sepia-html-client-app#quick-start), but there is more ^^.
60+
Check out the [DIY section](sepia-client-installation) to find out about custom clients.
61+
62+
# Other SEPIA Projects
63+
64+
* [SEPIA STT Server](https://github.com/SEPIA-Framework/sepia-stt-server) - Offline speech-recognition server with customizable language models
65+
* [micro:bit Bluetooth remote](sepia-microbit-projects) - BLE beacon based remote for SEPIA client to trigger microphone and other controls
66+
* There is much more to discover, just browse the project pages ;-)
4767

4868
## Build-your-own release (for experts)
4969

Lines changed: 6 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,8 @@
11
#!/bin/sh
2-
set -e
3-
get_latest_release() {
4-
curl --silent "https://api.github.com/repos/$1/releases/latest" | # Get latest release from GitHub api
5-
grep '"tag_name":' | # Get tag line
6-
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
7-
}
8-
echo "Welcome! Checking version number of latest SEPIA release, just a second ..."
9-
SEPIA_VERSION=$(get_latest_release "SEPIA-Framework/sepia-installation-and-setup")
10-
echo "Latest SEPIA-Home version is: $SEPIA_VERSION"
11-
echo ""
12-
echo "Welcome to the SEPIA-Framework!"
13-
echo ""
14-
echo "This little script will help you to setup your environment and download SEPIA-Home (the server stack of SEPIA)."
15-
echo "If you are using a fresh Raspbian installation please follow steps 1 to 4 and make sure they complete successfully."
16-
echo "If you know what you are doing feel free to skip some steps as needed ;-)"
17-
echo "More help can be found here: https://github.com/SEPIA-Framework/sepia-docs/wiki"
18-
echo ""
19-
echo "Tested with: Raspian Buster (30-01-2020)"
20-
while true; do
21-
echo ""
22-
echo "Please choose next step:"
23-
echo "1: Install Java OpenJDK 11 globally (alternative: download SEPIA-Home first and use local Java installation)"
24-
echo "2: Install required packages and update server-clock for precise timers"
25-
echo "3: Download SEPIA-Home bundle version: $SEPIA_VERSION"
26-
echo "4: Extract SEPIA-Home to '~/SEPIA' (currently required home folder for SEPIA)"
27-
echo "5: Optional: Install NGINX reverse-proxy (recommended alternative to SEPIA Reverse-Proxy)"
28-
echo "6: Optional: Download and deploy NGINX proxy config for SEPIA"
29-
echo ""
30-
read -p "Enter a number plz (0 to exit): " option
31-
echo ""
32-
if [ $option = "0" ]
33-
then
34-
break
35-
elif [ $option = "1" ]
36-
then
37-
# INSTALL JAVA OPENJDK 11
38-
sudo apt-get update
39-
sudo apt-get install -y openjdk-11-jdk-headless ca-certificates-java
40-
echo "------------------------"
41-
echo "DONE."
42-
java -version
43-
echo "------------------------"
44-
45-
elif [ $option = "2" ]
46-
then
47-
# INSTALL zip, unzip, curl, procps, etc.
48-
sudo apt-get install -y zip unzip curl procps ca-certificates espeak-ng espeak-ng-espeak
49-
50-
# UPDATE TIME SYNC
51-
echo 'Installing ntpdate to sync time ...'
52-
sudo apt-get install -y ntpdate
53-
sudo ntpdate -u ntp.ubuntu.com
54-
echo "------------------------"
55-
echo "DONE."
56-
echo "------------------------"
2+
#
3+
# TODO: redirect to new script and show info message 'moved and improved'
4+
#
5+
echo "This script has been moved and improved! Please use:"
6+
echo "wget https://sepia-framework.github.io/install/sepia-home-rpi.sh"
7+
echo "bash sepia-home-rpi.sh"
578

58-
elif [ $option = "3" ]
59-
then
60-
# DOWNLOAD SEPIA Custom-Bundle
61-
62-
#create tmp folder (usually done before getting this file)
63-
mkdir -p ~/SEPIA/tmp
64-
cd ~/SEPIA/tmp
65-
#curl --silent "https://api.github.com/repos/SEPIA-Framework/sepia-installation-and-setup/releases/latest" | jq -r '.assets[] | select(.name == "SEPIA-Home.zip").browser_download_url'
66-
#wget "https://github.com/SEPIA-Framework/sepia-installation-and-setup/releases/download/${SEPIA_VERSION}/SEPIA-Home.zip"
67-
wget "https://github.com/SEPIA-Framework/sepia-installation-and-setup/releases/latest/download/SEPIA-Home.zip"
68-
echo "------------------------"
69-
echo "DONE."
70-
echo "------------------------"
71-
72-
elif [ $option = "4" ]
73-
then
74-
# EXTRACT SEPIA-Home bundle
75-
76-
cd ~/SEPIA/tmp
77-
unzip SEPIA-Home.zip -d ~/SEPIA
78-
79-
# SET SCRIPT ACCESS AND DONE
80-
81-
#set scripts access
82-
cd ~/SEPIA
83-
find . -name "*.sh" -exec chmod +x {} \;
84-
chmod +x elasticsearch/bin/elasticsearch
85-
86-
#done
87-
echo ""
88-
echo "------------------------"
89-
echo "DONE :-) If you saw no errors you can exit now and continue with 'cd ~/SEPIA' and 'bash setup.sh'".
90-
echo "------------------------"
91-
92-
elif [ $option = "5" ]
93-
then
94-
# INSTALL NGINX
95-
96-
echo 'Installing nginx reverse-proxy ...'
97-
sudo apt-get install software-properties-common
98-
sudo apt-get install nginx
99-
echo "------------------------"
100-
echo "DONE."
101-
echo "------------------------"
102-
103-
elif [ $option = "6" ]
104-
then
105-
# INSTALL NGINX HTTP CONFIG FOR SEPIA
106-
107-
#echo 'Downloading nginx reverse-proxy HTTP config for SEPIA ...'
108-
echo "------------------------"
109-
echo "UNDER CONSTRUCTION - For now please run 'bash setup-nginx.sh' inside your SEPIA-Home folder"
110-
echo "------------------------"
111-
112-
else
113-
echo "------------------------"
114-
echo "Not an option, please try again."
115-
echo "------------------------"
116-
fi
117-
done
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)