SEPIA Open Assistant - Privacy respecting, self-hosted voice-control

Thank you for the answer!

I´ve got one question, how can i “install” the build version on the server?

The test version linked above can be installed the same way you’ve installed the official release. When you just want to “update” the existing version you can extract the new version and copy over the folders/files from your old folder:

  • sepia-assist-server/Xtensions/*.properties
  • sepia-teach-server/Xtensions/*.properties
  • sepia-websocket-server-java/Xtensions/*.properties
  • es-data

Afterwards you delete the old folder and rename the new one to ‘SEPIA’. To add the new fields for basic auth. go to sepia-assist-server/Xtensions/assist.custom.properties and add the code from above (smarthome_hub_auth_type, …) or use the SEPIA Control HUB (core settings page) to define the fields.
If you’re using Linux there is a backup script in the SEPIA folder (backup-sepia.sh) that will backup the mentioned folders properly so you just have to extract the resulting ZIP to your new folder.

If you’ve just started with SEPIA it might be faster to simply make a fresh installation with the version from above.

What do you think, when should we expect MQTT integration ? As @job suggested all we need, at this point, is parsed json as MQTT message. Thank you.

I’ve already built a working prototype for the upcoming v2.4.0 that is able to publish smart home intents to a MQTT broker and I’m planing to release the new version this year :slight_smile: . The MQTT demo service will probably be included as downloadable service in the SDK so people can experiment with it and give some feedback.

One question, will you require authentication/authorization against the broker? If so, how do you usually do this?

1 Like

Sounds good. I personally don’t use authentication. Usually MQTT broker requires username and pass for auth. https://www.hivemq.com/blog/mqtt-security-fundamentals-authentication-username-password/

The new SEPIA version 2.4.0 is now official: LINK :slight_smile:

The MQTT demo service can be installed via the Code-UI. If you want to test it with your own broker you can edit the broker URL in line 47 (and optionally add username, password) before uploading it to SEPIA. Test commands for the MQTT demo start with “mqtt”, e.g.: “mqtt set lights in living-room to 20%”. Feel free to create your own sentences or remap existing ones via the Teach-UI :wink:
MQTT messages will be published to the channel “sepia/mqtt-demo” (defined in line 231 of the code).

2 Likes

There is a new blog article about SEPIA + openHAB that explains the setup a bit better :slight_smile:

1 Like

Hi! I read everything I found, this thread, blog, documentation, but my English is very poor, I have a few questions left:
Any chance to use a language other than German and English?
It is possible to use the tablet for voice control without touching it, and in general, which devices can be used as a receiver of voice commands? Can the activation phrase be changed? For example: Hey, honey? :slight_smile:
Thanks!

Hi Sergey,

  1. Support for other languages is unfortunately still very poor because the natural language understanding module requires many specific rules and exceptions to work well … BUT: The Chrome and Android client have additional basic support for speech recognition in: French, Greek, Italian, Japanese, Dutch, Portuguese, Russian, Spanish, Swedish and Turkish. Any of these languages can be set via page 2 of the settings. At the bottom you will find “Experimental Settings” -> “ASR country”. Since this is “experimental” the client will forget the setting after reload. You can choose a different voice from the settings as well. To do anything useful with sentences that are not German or English you can use the Teach-UI to connect them to commands in English (or any direct command).
    In the future I’d like to use the Python-Bridge of SEPIA to add better support for other languages.
  1. It is possible to activate the tablet via “Hey SEPIA”. This can be configured on page 1 of the settings (“Hey SEPIA”). Please note that the result strongly depends on the quality of your tablet’s microphone and compute power, e.g. it works pretty well on a Samsung S10e, but not good at all on a Samsung A3.
    In general you can use Android devices, web browsers and iOS devices as client. Android and Chrome/Chromium (Windows, Linux, Android) will work out-of-the-box, other browsers and iOS will currently only work when used with the SEPIA speech recognition server (there is a Docker container available). The iOS app needs to be built and installed via Xcode on a Mac since I’ve not yet uploaded it to the Apple Store.

  2. The activation phrase (or “wake-word”) cannot be changed at the moment, but the SEPIA server has a “remote-control” HTTP REST endpoint that can be used any way you like, e.g. if you have any other tool that recognizes wake-words it could trigger SEPIA by sending a request to this endpoint. I’m using it for example like this: SEPIA smart watch trigger :slight_smile:

@sepia-assistant Thanks!

Hi sepia-assistant,

is there a docker container for new SEPIA version 2.4.0?
I’d like to give it a try using Docker.

Thanks!

Hi Thomas,

I’m not really happy with the last Docker version that’s why I haven’t updated it yet. To use the old Docker image properly one has to do too much shared-folder-gymnastics (I’ve even documented it inside the Dockerfile oO).
Besides that you don’t really gain much since everything SEPIA needs to run is Java and this can even be placed right inside the SEPIA folder (I’m currently preparing the scripts for it. You can try it by simply extracting the linked Zip into your SEPIA folder and then check the [SEPIA]/java folder for the scripts).

If you have a Docker container running Debian or something you could simply use this to install SEPIA in 5min. Here is what I just used to setup my fresh Raspberry:

sudo apt-get update
sudo apt-get install openjdk-11-jdk-headless
mkdir -p ~/SEPIA/installer
cd ~/SEPIA/installer
wget https://github.com/SEPIA-Framework/sepia-installation-and-setup/releases/latest/download/SEPIA-Home.zip
unzip SEPIA-Home.zip -d ~/SEPIA
cd ~/SEPIA
#finish with: sh setup.sh -> step: 4 -> step: 1 -> DONE -> ./run-sepia.sh

Regards,
Florian :slight_smile:

1 Like

Hi Florian,

my point is OH is running in a docker container in my setup. I have a separate docker container for Mosquitto. So in this setup another docker container for SEPIA makes a lot of sense, no?

Regards, Thomas

Makes sense, yes :wink:
May I ask, how do you manage the persistent data for your Docker containers? For example OH settings. Do you use shared folders to your main system or do you only “stop” containers and never “remove” them? (Or do you even “commit” changes maybe?).

At the risk of sounding obvious and completely missing the point: my persistent data (OH conf folder and userdata folder) is stored on the host directory, not inside the docker. These host directoroes are mounted inside the docker.

I too would be interested in an updated/maintained docker container for SEPIA

Thanks, that was exactly what I wanted to know (and what I previously called “shared-folder-gymnastics” for SEPIA ^^) just to make sure :wink:

I will update the Docker Container in the next days probably together with the release of SEPIA v2.4.1 :slight_smile:

Hi Florian,

I struggle with editing the device cards in Sepia. Always get the error message

"{ “result”: “fail”,
“error”: “one or more attributes could not be set! Success: 0 of 1 - Did you ‘register’ SEPIA already?
}”

Sepia has contact to Openhab (shows device cards), and I did register the Sepia Framework successfully.

As changing the device cards in Sepia does not work, I tried to enter the tags direcly in the items database of Openhab.

When I add the Sepia tags in the file default.items I see the entered types in the device cards and can refer to them during the chat. So that works for items from the default.items file.

But for items defined in the PaperUI I do not know where in the JasonDB I should put the tags.

Best, however, would be to directly change the device cards in Sepia as it’s foreseen.
Any idea?
br
Robert

PS: I also noticed that I can not change the Sepia configuration via the Sepia web interface. I had to do that directly in the configuration file.

Hi Robert,

Is your SEPIA server the newest version (v2.4.0)? Maybe there is a version conflict between the Control HUB and the server? I’ve introduced new endpoints in v2.4.0 that write the Openhab settings and if these endpoints are missing your SEPIA Assist-Server logs should show some error messages (and I’d expect to see some errors in the Control HUB as well, something like 404 not found).

This is really confusing though. Is there any error message pooping up (in the browser console or in SEPIA Assist-Server log: [SEPIA]/sepia-assist-server/log.out)?

It took a bit longer but there is a new Docker container for testing now :slight_smile:

The data is on Docker Hub and there is a new guide with some things to consider when using SEPIA inside a Docker container.

The container contains the new version v2.4.1 that includes some improvements for openHAB as well.

1 Like