Skip to content

Commit

Permalink
Merge pull request #31 from SEPIA-Framework/dev
Browse files Browse the repository at this point in the history
SEPIA-Home v2.7.0 release candidate
  • Loading branch information
fquirin authored Nov 1, 2022
2 parents a2579b3 + fc12d88 commit 46c944f
Show file tree
Hide file tree
Showing 57 changed files with 1,813 additions and 381 deletions.
86 changes: 85 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,89 @@
## Release history and changelog

### v2.7.0 - 2022.10.31

Updated client to v0.25.0:
* New custom skin feature and theme editor, including one light and dark template
* Added better support for safe-areas of display (e.g. iPhone notch) and ability to add new custom borders
* New 'dialog_task' variable to be able to optimize client and services depending on defined 'tasks'
* Added support for STT 'task'-based custom models and improved STT settings view
* Improved widgets (custom views/frames) interface and added support for per-widget 'activitySettings' like language and task
* New time-event card icons to indicate "next", "expired" and "faulty"
* Optimized web-manifest and changed default PWA display mode from 'fullscreen' to 'standalone'
* Android: Completely refactored and optimized build setup + set official target to Android 12L
* Android: Added support for TTS native-engine voice selection
* Android: New and improved in-app browser with theme support
* Android: Prevent back-button action when login or pop-up is open
* Android: Implemented several fixes required to support Android 12 (and potentially Android 13)
* iOS PWA: Greatly improved PWA experience on iOS with fixes for splash-screen, safe-areas, overscrolling, sound initialization, error handling and more. Safari is still buggy though.
* Improved 'notify' module, new close-button for web-based OS notifications and added features to prepare for PWA background support (wip)
* Optimized landscape-mode for Teach-UI
* Improved media-devices settings view
* Renamed 'Big-screen mode' setting to "Limit screen-size", reversed logic and improved default setting
* Allow abort of 'setup-mode' to enable on-screen login (e.g. via virtual keyboard) in DIY clients (usually in 'pseudo-headless' mode)
* Split short-cuts 'fullscreen' button into two buttons. One for UI (will always show up) and screen (shows up when supported)
* Set black theme and safe-area colors when entering AO mode
* Further reduced background music volume during speech input (applies to browser clients only)
* New UI framework functions like 'ui.build.helpButton' or 'tools.escapeHtmlAndSanitize' and several smaller bug fixes
* A lot of smaller look and style fixes and tweaks (+ optimized background images etc.)

Updated Control-HUB (admin-tools) to v1.5.0:
* Smart-home: Improved UI, animations and device cards + new reload time indicator
* Smart-home: Added 'Home Assistant' support (BETA) and new device types ('fan', 'garage_door', 'air_conditioner' and 'temperature_control')
* Smart-home: Added new HUB interface device configuration option to handle more complex HUB APIs (e.g. HA uses several different endpoints to check and control devices)
* Better handling of 'new login' and expired logins
* New 'UI.showJsonPopup' for a better view of JSON data + tweaked pop-up size
* Fixed a bug that could happen at reload after a logout
* Smaller bug fixes

Changes to all SEPIA-Home servers and core tools:
* Java 11 is required now and Java 8 support has been dropped. Please UPDATE TO JAVA 11 if you're still using 8!
* Updated all Maven plugins and dependencies to account for Java 11 changes
* Updated all servers to core-tools v2.3.0
* Added a nice start logo to be displayed inside log files :-)

Updated Assist-server to v2.7.0:
* Added 'Home Assistant' smart-home HUB interface (BETA) and improved existing interfaces (e.g. auto-detection of openHAB devices)
* Support for new smart-home devices: 'fan', 'garage_door', 'air_conditioner' and 'temperature_control'
* Updated 'SmartHomeHubConnector' to handle device type groups (first group: temperature). Allows to better handle similar devices like 'air_conditioner' + 'heater'
* Introduced new smart-home interface device configuration to handle complex HUB APIs and complement 'set commands' to control devices
* Improved code of several smart-home HUB integrations (openHAB, FHEM, ioBroker, test-HUB etc.)
* Implemented new 'InterviewMetaData' feature with 'dialog_task' support enabling services to optimize client settings (e.g. switching task-based ASR models)
* Fixed some news outlet RSS feed URLs
* Several TTS pronunciation tweaks for example to better handle units like kWh, Wh, kW and W and fixes for 'txt2pho' engine
* Several NLU tweaks and fixes, e.g for 'smart_device' parameters or 'Alarms' service and language switching
* Improved 'action' NLU parameter by splitting 'open/close' from 'on/off' and adding 'cancel'
* Improved parsing of Mary-TTS API compatible voices to support engines like Mimic3 + updated Mary-TTS INSTALL info
* New server settings option 'languages_preload' (default: en, de), controlling for example what language files are pre-loaded at start-up
* New server settings option 'allow_non_commercial_features' (default: false), to globally handle specific license restrictions. NOTE: Set to true to use 'MBROLA' and 'txt2pho' TTS engines
* Added "isNextEvent" flag for time-events during load
* Auto-adjust 'season' for OpenLigaWorker
* Disable sentences import into DB by default during setup (can be run manually instead)
* Added new calculator library and tool to parse mathematical expressions from strings (used e.g. for smart-home state calculations)
* Updated Elasticsearch mappings for 'smart-devices' and 'smart-interfaces' to better handle meta data (NOTE: this will not automatically apply to old installations)
* Fixed a bug in 'Alarms' service that allowed to create already expired events
* Fixed a bug in weather service that could occasionally prevent results for forecasts 2+ days in the future
* Better track and handle list-update errors
* Fixed a localization bug in 'DateAndTime'
* Added Italian translations of 'Assistant' files (answers, chats, teachIt) thanks to @giostark
* Several smaller fixes, clean-ups and improved error messages

Updated Core-tools to v2.3.0:
* Improved private network detection
* Updated spark-core to v2.9.4
* Updated 'slf4j-simple' logger to v1.7.36
* Code clean-ups + added a few convenience methods (e.g. SparkJavaFw.redirect)

Other servers, tools and common changes:
* New SEPIA-Home server start-page to quickly access apps, check status info and get help with issues. The page can be found at 'http(s)://[my-sepia-home-ip]:20726/sepia/' after Nginx has been set up
* Improved Nginx and self-signed SSL installation scripts
* Optimized Elasticsearch v5.3.3 package to run on Windows 11
* Tweaks and smaller fixes for SEPIA-Home build and run scripts
* Updated Teach-Server to v2.3.0 and slightly improved common.json for Teach-UI
* Updated WebSocket Chat-Server to v1.4.0 (no other changes except updated dependencies)
* Updated SDK to support new SEPIA-Home v2.7.0 (NOTE: please run `mvn clean` once after update!)
* Updated Mesh-Node to v0.10.0 (no other changes except updated dependencies)

### v2.6.2 - 2022.05.08

Updated client to v0.24.2:
Expand Down Expand Up @@ -42,7 +126,7 @@ Updated Assist-server to v2.6.2:
* Added installer for 'txt2pho' TTS engine (German MBROLA only) + tweaked some voice speeds
* Better checks for correct smart-home HUB authentication types + smaller smart-home interface tweaks
* Added 'appRegionCode' and new 'defaultNewsRegion' to NluInput class (to be used in services)
* Improved News service to support 'language' parameter (e.g.: "show me news in German") + 'defaultNewsRegion' and 'appRegionCode' to make news independant of user language
* Improved news service to support 'language' parameter (e.g.: "show me news in German") + 'defaultNewsRegion' and 'appRegionCode' to make news independent of user language
* Added a 'region' parameter to news-outlets.json
* Improved settings loader and 'getConfig' endpoint with new 'PropertiesReader' that will return ALL settings (properties file + defaults)
* Streamlined SDK endpoint responses to return JSON format and added more useful info
Expand Down
1 change: 1 addition & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ RUN echo "Downloading SEPIA-Home (custom bundle) ..." && \
#
# Set up Nginx (HTTP)
sudo cp nginx/sites-available/sepia-fw-http.conf /etc/nginx/sites-enabled/sepia-fw-http.conf && \
sudo sed -i -e 's|\[my-sepia-path\]|'"/home/admin/SEPIA"'|g' /etc/nginx/sites-enabled/sepia-fw-http.conf && \
sudo unlink /etc/nginx/sites-enabled/default && \
#
# Prepare automatic-setup and user1
Expand Down
16 changes: 9 additions & 7 deletions build_sepia_home_container.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
#!/bin/bash
# TODO: keep '--no-cache' ?
version=latest
if [ -n "$1" ]; then
version=$1
else
echo "Please specify the version to use for this release, e.g. 'v2.6.3'"
exit
fi
if [ -n "$(uname -m | grep aarch64)" ]; then
echo "Building SEPIA-Home Docker container: sepia/home:${version}_aarch64"
sudo docker build --no-cache -t "sepia/home:${version}_aarch64" .
echo "Building SEPIA-Home Docker container: sepia/home:${version}_aarch64_auto"
sudo docker build --no-cache -t "sepia/home:${version}_aarch64_auto" .
elif [ -n "$(uname -m | grep armv7l)" ]; then
echo "Building SEPIA-Home Docker container: sepia/home:${version}_armv7l"
sudo docker build --no-cache -t "sepia/home:${version}_armv7l" .
echo "Building SEPIA-Home Docker container: sepia/home:${version}_armv7l_auto"
sudo docker build --no-cache -t "sepia/home:${version}_armv7l_auto" .
else
# NOTE: x86 32bit build not supported atm
echo "Building SEPIA-Home Docker container: sepia/home:${version}_amd64"
sudo docker build --no-cache -t "sepia/home:${version}_amd64" .
echo "Building SEPIA-Home Docker container: sepia/home:${version}_amd64_auto"
sudo docker build --no-cache -t "sepia/home:${version}_amd64_auto" .
fi
5 changes: 3 additions & 2 deletions build_sepia_home_release_apt.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash
set -e
echo "This script has been tested with: Raspbian Stretch/Buster (slim, RPi3), Debian 10 (slim)"
echo "This script has been tested with: Raspbian Stretch/Buster (slim, RPi3), Debian 10/11 (slim)"
echo ""

#check packages (except Java)
Expand Down Expand Up @@ -62,7 +62,8 @@ mkdir -p sepia-assist-server/Xtensions/WebContent/tools
cp -r sepia-admin-tools/admin-web-tools/. ~/SEPIA/sepia-assist-server/Xtensions/WebContent/tools/

#download and unzip elasticsearch (keeping the existing config folder)
wget -O elasticsearch.zip https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.3.zip
wget -O elasticsearch.zip https://github.com/SEPIA-Framework/SEPIA-Framework.github.io/raw/master/files/db-installer/elasticsearch-5.3.3.zip
#wget -O elasticsearch.zip https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.3.zip
unzip -n elasticsearch.zip
cp -rn elasticsearch-*/. ~/SEPIA/elasticsearch/

Expand Down
14 changes: 14 additions & 0 deletions create_sepia_home_docker_manifest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/bash
version=latest
if [ -n "$1" ]; then
version=$1
else
echo "Please specify the version to use for 'latest' release, e.g. 'v2.6.2'"
exit
fi
sudo docker manifest create sepia/home:latest \
--amend "sepia/home:${version}_amd64_auto" \
--amend "sepia/home:${version}_aarch64_auto" \
--amend "sepia/home:${version}_armv7l_auto"

sudo docker manifest push sepia/home:latest
93 changes: 0 additions & 93 deletions scripts/Dockerfile_pre_v2.4.1

This file was deleted.

48 changes: 48 additions & 0 deletions sepia-build-env/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
FROM debian:bullseye-slim

# Default to UTF-8 file.encoding
ENV LANG C.UTF-8

# Get all packages, install Java OpenJDK 11 and create a user

RUN echo 'Installing SEPIA-Framework build environment ...' && \
#
# Update package sources
apt-get update && \
#
# Fix for Debian9/10 slim to be able to install Java
mkdir -p /usr/share/man/man1 && \
#
# Get packages
apt-get install -y --no-install-recommends \
sudo git wget curl nano unzip zip procps ca-certificates \
openjdk-11-jdk-headless ca-certificates-java maven && \
#
# Clean up
apt-get clean && apt-get autoclean && apt-get autoremove -y && \
#
# Create a Linux user
useradd --create-home --shell /bin/bash admin && \
adduser admin sudo && \
echo "admin ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

# Set JAVA_HOME path ... just in case - TODO: fix path for ARM or remove
#
# ENV JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
# ENV PATH="${JAVA_HOME}:${PATH}"
#
# Set a Docker ENV to identify container in scripts
ENV ISDOCKER="true"

USER admin

RUN echo "Creating build folders ..." && \
#
# build
mkdir -p /home/admin/build && \
cd /home/admin && \
echo "trap : TERM INT; sleep infinity & wait" > on-docker.sh

# Start
WORKDIR /home/admin
CMD bash on-docker.sh
2 changes: 2 additions & 0 deletions sepia-build-env/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
docker build -t sepia/build-env:latest .
Loading

0 comments on commit 46c944f

Please sign in to comment.