Skip to content

SEPIA-Home v2.4.0 with big smart home service upgrade and support for FHEM

Compare
Choose a tag to compare
@fquirin fquirin released this 31 Dec 01:12
· 273 commits to master since this release
448fdc4

v2.4.0a - 2019.12.30

This release is all about smart home 🤖 🏠 😎 .
The smart home NLU, interface and service have been upgraded to support 11 device types (lights, thermostats, roller shutter, sensors, etc.), 14 room types (living-room, office, garden, etc.), device numbers (Lamp 1, 2, 3, ...) and room numbers (bath 1, bath 2, room 300, ...). In addition the smart home page of the SEPIA Control-HUB has been upgraded with new device-cards and is now communicating with the smart home HUB via a new Assist-Server endpoint ('integrations') instead of calling it directly. The SEPIA client device can be configured to 'belong' to a certain room in your smart home so that a command like "lights" will refer to the same location. Last but not least SEPIA is supporting the open-source FHEM smart home HUB natively now (in addition to openHAB).
A few other notable updates (amongst many) are the 2 new NLU server endpoints 'understand' and 'interview' (you can try them via the Control-HUB assistant test page) and the new web-server endpoint 'web-content-index/*' that is able to generate a content list for web-server folders.
Oh and one more thing ... there is a new demo service for MQTT message broadcasting in the SDK and extensions repo 📡 🙂 . Enjoy!

Release notes

Updated client to v0.20.0:

  • Integrated SEPIA Control HUB into settings frontpage of app (will show when user has certain role, e.g. 'tinkerer' or 'smarthomeadmin')
  • New setting for preferred temperature unit (Celsius/Fahrenheit) that can be accessed in services via user account or device settings
  • Added new page for device local site to set a specific location for the client like 'home:living-room' that can be read by any smart service on the server
  • Load up to 16 custom command buttons to my-view by default (up from 10)
  • Load services config of Teach-UI from new teach-server endpoint (and added smart home service)
  • Added a help button for extended login box that redirects to SEPIA docs
  • Auto-assign a 'dark-skin' or 'light-skin' class when selecting a skin to better handle certain CSS rules
  • Basic post-message interface for apps that run inside IFrames (to be extended soon)
  • Tweaked TTS voice selection indicator depending on platform
  • Added 'env' parameter to launcher page

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

  • Added post-message interface to load tools in IFrame and login user (used for example in client app to show Control HUB and auto-login user)
  • Smart home: Uses new 'integrations' endpoint of assist-server to communicate with HUBs instead of calling them from client (in addition: HUB host URLs must match server setting now to prevent unsafe HTTP calls)
  • Smart home: Completely reworked device cards and interface (new options, hide/filter devices, auto-refresh, test button, etc. ...) and added Test-HUB for experiments
  • Smart home: Support for a total of 11 device types (lights, shutters, thermostats, etc.) and 14 room types (bath, office, living-room, etc.)
  • Smart home: Allow device names with numbers in brackets that will be skipped in assistant answers, e.g. name='Bed Light (2)' -> answer: 'your Bed Light is set to ...'
  • Smart home: Added extended device settings for experts to fine-adjust state type and set commands
  • Assistant testing: Added two new buttons to call 'understand' and 'interview' server endpoints
  • Core settings: Show persistant settings as editable list
  • STT: Added test button to extract personal commands as (anonymous) training data for language models

Updated Assist-server to v2.4.0:

  • Added new server endpoints 'understand' (improved version of 'interpret') and 'interview' (shows either intent summary or indicates missing info including question)
  • Completely reworked 'SmartHomeHub' interface to improve HUB communication and make it easier to integrate new HUBs (register methods, generalized set values, more sepia-xy tags, common search and filter methods, etc. ...)
  • Added FHEM smart home HUB support (config name 'fhem') and a Test-HUB for experimenting (config name 'test')
  • Improved 'SmartHomeHubConnector' service and whole smart home methods + NLU to handle a total of 11 device types (lights, shutters, thermostats, etc.) and 14 room types (bath, office, living-room, etc.)
  • Added NLU support for device number and room number (e.g.: "set light 2 in bath 2 to 70%") and changed 'SmartDeviceValue' result type from 'Number' to own format
  • Added optional reply parameter to smart home service
  • Added settings for smart home HUB basic authentication ('smarthome_hub_auth_type', e.g. 'Basic' and 'smarthome_hub_auth_data', e.g. base64 encoded 'username:password')
  • New server endpoint for integrations ('integrations//') and first implementation for direct smart home HUB communication (send commands to HUBs like FHEM directly without using the NLU + smart service)
  • Questions inside a service can now use wildcards to access previously defined parameters from 'resultInfo' (example dialog: User: "Set light" - Sepia: "Set <1> to what?")
  • Added new 'unit_pref_temp' (temperature unit) property to user account
  • Services have access to new 'device local site' and 'user preferred temperature unit' (both used in smart home service for example)
  • Added temperature convert method (C <-> F) to Number parameter and automatically convert between units in smart home service (depending on user pref. and device state type)
  • Added 'ServiceRequirements' class and 'getRequirements' to 'ServiceInterface' to better handle SEPIA version conflicts in the future
  • New server endpoint 'web-content-index/[web-server-folder]' and settings (see example folders in 'Xtensions/WebContent/') to generate directory listings of web-server content
  • Added 'Size Radio' channel and fixed 'EgoFM' streams
  • Support for Elasticsearch authorization via 'db_elastic_auth_type/data' setting
  • Tweaked 'getConfig' server endpoint to show even less sensitive data from properties file (passwords and keys show as 'HIDDEN')
  • Added device-ID to Elasticsearch mapping for personal commands
  • Several code clean-ups, improvements, NLU tweaks and bug fixes

Updated WebSocket Chat-Server to v1.2.2:

  • Added Eclipse Paho MQTT client and SEPIA classes (SepiaMqttClient, SepiaMqttClientOptions, SepiaMqttMessage)
  • Support for Elasticsearch Authorization via 'db_elastic_auth_type/data' setting

Updated Teach-Server to v2.1.0:

  • Support for Elasticsearch Authorization via 'db_elastic_auth_type/data' setting
  • New endpoint 'getTeachUiServices' and services file (Xtensions/TeachUi/services/common.json) to be able to load Teach-UI configuration from server
  • Added command 'smartdevice' to Teach-UI config with examples
  • New endpoint 'getAllCustomSentencesAsTrainingData' to be able to extract data for speech recognition language model
  • Optionally add device-ID to custom commands for future 'per-device' command selection

Updated Core-tools to v2.2.4:

  • New user role 'smarthomeadmin' (user that has access to smart home HUB config) and 'tinkerer' (a user that likes to see more detailed configuration options ^_^)
  • New CoreEndpoints method 'getWebContentIndex' to index web-server folder and build interactive file list
  • Updated Connectors with more control of headers and added 'headers' map to 'HttpClientResult' for 'apacheHttpGET' method to get direct access to result headers
  • Added support for 'Authorization' header to Elasticsearch class via 'auth_type' and 'auth_data' settings
  • New method 'readFileModifyAndCache' in FileAndStreams class to read a file line-by-line, optionally modify each line and keep result in cache (handy for settings files etc.)
  • New decimal format number converters 'stringToNumber' and 'numberToString' to read numbers and get a number string in specific format more easily (uses new common default decimal format)
  • Added deviceId as field to Command and SentenceBuilder classes
  • Added 'getKeys' and better 'prettyPrint' to JSON class
  • New 'Is.typeEqual' and 'Is.typeEqualIgnoreCase' methods
  • Added 'modifyThread' permission to SandboxSecurityPolicy to avoid errors with Paho MQTT client
  • Tweaked 'httpSuccess' method in Connectors to optionally give cleaner result
  • Updated fasterxml.jackson.core (again!) to apply latest security fix

Other tools:

  • Updated SDK to v0.9.20 to support new SEPIA-Home release and added 'MqttDemo' service to demonstrate how to publish service results to a MQTT broker
  • Updated Mesh-Node to v0.9.12 to include new core-tools v2.2.4