Jump to content

Welcome to Smart Home Forum by FIBARO

Dear Guest,

 

as you can notice parts of Smart Home Forum by FIBARO is not available for you. You have to register in order to view all content and post in our community. Don't worry! Registration is a simple free process that requires minimal information for you to sign up. Become a part of of Smart Home Forum by FIBARO by creating an account.

 

As a member you can:

  •     Start new topics and reply to others
  •     Follow topics and users to get email updates
  •     Get your own profile page and make new friends
  •     Send personal messages
  •     ... and learn a lot about our system!

 

Regards,

Smart Home Forum by FIBARO Team


  • 0

[SCENE] Smart Message Hub {v1.2} - NEW RELEASE


AutoFrank

Question

Hi Everyone

 

Smart Message Hub v1.2 (SMsgH v1.2) is now available.

This release includes fixes tor three bugs that had various impacts and support for international characters.

Thanks to @Sankotronic and @szmyk for locating the faults and extra feature for international characters

 

"FIRST TIME USERS" -  Please read below and follow the instructions laid out for first time users

UPGRADING FROM 1.1b to 1.2 - Please use this

Please login or register to see this link.

 - if you are a current user and may wish to consider  avail of the fixes or extra feature

 

This scene enables a user to send a message from either a scene or a virtual device to a number of notification and TTS services with a startScene call

Please login or register to see this code.

The scene also enables messages to be re-routed or queued depending on whether the house is set to Away mode, Sleep mode or if internet is not available. (See below for more details)

 

A demo  VD {v1.1} is also available to help demonstrate the scene features.

 

SCENE FEATURES

Smart Configuration options include the ability to re-route and/or queue all messages under certain conditions. (Internet unavailability , home occupancy mode presentState = Away)

Messages with international characters are also supported

  • Notification messages can be redirected to Home Center 2 Popup notification service if the internet is offline or unavailable
  • Notification messages can be queued if the internet is offline or unavailable. 
    • All Messages in the queue will be released as one combined message once the internet come s back online.
  • All TTS messages can be redirected to Home Center 2 Popup notification service if the internet is unavailable or offline or if the sonosAPI is offline if this solution is being leveraged
    • All TTS messages can be queued if presentsState = Away. 
  • All TTS messages in the queue will be announced once presentsState = Home
  • Simplified the message invocation method to startScene
    • Invoked via startScene(SMsgHid, {message string} (SMsgHid is the id of the SMsgH scene when it is saved to your system )
    • See below for examples
    • messageHub global no longer required (please delete when you have migrated all your scenes to using 1.1)
  • Added support for sleepState (no TTS messages if set to Sleep)
  • Additional support for HC2 popup notifications
    • Types (Critical, Successs, Info, Warning)
    • Images (use full url)
    • Buttons (represented as a table) - See @Sankotronic 

      Please login or register to see this link.

      on popup notifications to see how to format
    • Added ability to delay unloading of TTS messages by predefined time in seconds
    • Added support for custom language in for TTS and Notify redirects default Popup title and subtitle
    • Minor bug fixing and code cleaning

 

Configuration options also include a default message notification target, title, subtitle and volume but all these can also be specified as part of the message invocation.

There are three levels of debug verbosity. In normal mode there is a minimal amount of information displayed as the scene is triggered.

The two other modes allow for much more expressive displaying of scene variables as well as configuration settings if enabled

deBgVar is enabled in the scene so you can see the interactions- it can be disabled in normal running mode

 

SCENE MESSAGING OPTIONS
The supported services in this release include the following (supported in 1.0 & 1.1)

  • Pushover Notifications ------------------------------------------------------->  

    Please login or register to see this link.

  • allinone ( jompa68 scene)
  • Telegram messages
  • hc2email (Home Center 2 email service) 
  • hc2push (Home Center 2 push notification service)
  • hc2popup (Home Center 2 Popup Notification service) -------------------> [TUTORIAL}

    Please login or register to see this link.

     
  • Sonos-api based TTS -------------------------------------------------------->  [TUTORIAL] 

    Please login or register to see this link.

  • Sonos VD Remote based TTS ----------------------------------------------->

    Please login or register to see this link.

 

I have also included a Companion Demo VD. The virtual device will allow the user to demonstrate the scenes queuing/unloading capabilities.

CAUTION: The companion VD in demo mode can adjust the presentState and sleepState globals and will cause any other scene you may have with this as a trigger to execute

 

A simplified version of the LAN Monitor VD called  the WWWAPI Monitor will monitor just the sonos-api if desired and does not any in-built notification options like the LAN Monitor VD 2.5.Smart Message Hub users should use either the WWWAPI Monitor or LAN Monitor 2.6

 

Special thanks extended to  @Sankotronic @petergebruers, @jompa68 and @szmyk for their contributions leading to 1.2

 

Once the scene configuration is complete I would recommend running the demonstration virtual device.

This will give you a better understanding of the options and features as well providing some sample messages that you can run.

 

Ideas for subsequent revisions are always welcome
_f

    
  RELEASE CHANGELOG
  v1.0  - First release (march 4th 2017)

  v1.1 - Second release (march 17th 2017)

  v1.2 - Third Release (june 24th 2017) 

 

 

                                                                            ================================================

                                                                             FIRST TIME USERS - INSTALLATION & CONFIGURATION

                                                                            ================================================
The code is available in both lua and txt format below

Paste code into scene and run - All global variables will be automatically created (Please do not adjust global triggers in scene header)

  • Configure options as required at top of scene (line 100 onwards)
  • Configure enable smart redirects
  • Configure HC2 email settings, HC2 push settings and TTS services
  • Configure default message titles, subtitles and volume
  • Configuration notification settings, tokens, etc
  • Enable/Disable increased debug and config verbosity for troubleshooting

  
MESSAGE INVOCATION
  This message hub can be called from either a scene or a virtual device using a startScene call. The following is an example Sample invocations are included below

Please see the section on Message Invocation lower down in this post of you wish to send messages with international characters

Please login or register to see this code.

Note: Replace IDofSMsgHscene with HomeTable reference of numerical ID of the SMsgH scene when it is installed on your system    

You need to include all parameters up to last one you populate. For example, if you want to specify a subtitle, you need to include message, target, volume and title as well.

You CANNOT leave out a parameter in the call. Leave as "" if not used/required and default will be invoked.

 

**USER CONFIGURATIONS & SETTINGS**


OPTIONS FOR SMART RE-ROUTING OF MESSAGES
The following four options can be set to true or false depending on what features you wish to enable.

Please login or register to see this code.

Set to true to enables re-routing of sonos TTS messages from either the Sonos VD or the sonos-api solution to HC2 notification Popup if the sonos-http-api or Internet is unavailable/offline to your local LAN  

Please login or register to see this code.

Enable to Silence  TTS announcement in sleepState, TTS announcements are NOT queued, they are simply discarded

Please login or register to see this code.

 

Enable a Delay before TTS announcements are unloaded (seconds). Leave as "" for no delay

Please login or register to see this code.

 

Set to true to enable Sonos TTS messages to queue when presentState = 'Away'. When presentState is set to Home it triggers the scene to automatically unload all the messages in the TTS queue to the default player that has been named in the configuration section  

Please login or register to see this code.

Set to true to enable all notifications to re-route to HC2Popup notifications if the internet is unavailable/offline to your local LAN  

Please login or register to see this code.

Set to true to enable all notifications to queue when presentState= 'Away'. When presentState is set to Home it triggers the scene automatically and unloads the message in the notifications queue to the default notification service that has been named in the configuration section below

 

The scene as provided has all these 4 options set to true and this is the recommended setup if you wish to leverage full functionality and the demo
  
OPTIONS TO MONITOR THE INTERNET STATUS
To achieve the most benefit from this scene the internet and sonos-api should be dynamically monitored. Dynamically monitoring the internet will enable messages (TTS and notifications) to be queued while the internet if offline. Queued message can also be sent as hc2 pop notifications on the local LAN. The preferred monitoring option is named here. The example below is setup to use the LAN Monitor VD 2.5

Please login or register to see this code.

There are 3 options available: 

  • Select 'manual' if you wish internet and sonos-api to be permanently set to online. Please 
  • note that this option does NOT enable queuing of notification messages.
  • Select 'networkTable' to leverage the LAN Monitor VD 2.5, 
  • Select 'wwwapiTable' to leverage the new simplified WWWAPI Monitor 1.0

                               
 

HC2 EMAIL CONFIGURATION

Please login or register to see this code.

List all users that you want to be able send messages to. The user id's are located from the HC2. Select Configuration, then Access Control to see the current users.

 

 

HC2 PUSH CONFIGURATION

Please login or register to see this code.

List all users that you want to be able send push messages to. The mobile devices ID can be found by going to http://<HC_IP>/docs/ and looking under iosDevices section. 

Please login or register to see this code.

Select a default user from this list and this is used if there is no user specified as part of the message invocation. 

                               
 

TTS PREFERENCES

Select your TTS preference. If you use the sonos-http-api solution please enter API. 
If you use the Sonos VD Remote solution please enter REM. 

Please login or register to see this code.

Default volume for TTS announcements

Please login or register to see this code.

This allows you to select a default volume and this aplies to both the API and REM sonos solutions. This volume can be changed by including a different volume in the message invocation

 

 

SONOS-API PREFERENCES
Configure this section if you have selected API in the above section.

Please login or register to see this code.

List all the sonos players you want to send TTS messages to.

The zone/player names must match exactly what is on your sonos native application

Please login or register to see this code.

The default player/zone selected is used to unload the TTS message when presentState = Home.

The default player must be included in the overall players list above

Please login or register to see this code.

                          

The ip address and port are of the device that is hosting the sonos-api

Please login or register to see this code.

The final item here is the language or voice code for the respective TTS service. Thisoculd be something like en-gb for google or Amy for AWS Polly
                                 

 

SONOS REMOTE VD PREFERENCES
Configure this section if you have selected REM in the above section.

Please login or register to see this code.

List all the sonos player virtual devices you want to send TTS messages to. The virtual device id's and process button id’s much match exactly what is on your HC2 for each virtual device. Please note the process button may differ if you have modified the standard virtual device. 

Please login or register to see this code.

The default player/zone is user to unload the TTS message when presentState = Home.

This zone must be included in the overall REMplayers table and the name must match exactly.

Please login or register to see this code.

The final item in this section is the language or voice code for the respective TTS service

 

 

DEFAULT TITLES AND SUBTITLES

This scene has default titles and subtitles and these are used if no title or subtitle is included in the message invocation. 

Please login or register to see this code.

Adjust the default titles and subtitles as you require. Note: Subtitles are only used for PopUp Notifications

 

 

NOTIFICATION SERVICES
There is a broad range of notification services available to use. Some are native to the home center and others are third party services provided by external vendors.

Please login or register to see this code.

                               
Select the default notification service that you wish to use. This default service will be used if no service is invoked in the message and is also used as the service to unload the queued messages when presentState = Home

 

 

PUSHOVER CONFIGURATION
This service is provided by pushover.org. You will need to register with them and obtain a token and user key.

Please login or register to see this code.

     
Once registered you will need to select the devices that you wish to send the pushover notifications to. Once they are added to your pushover account you will need to add their details below. Currently there is only one setting for device which means that all messages to pushover will be send to the devices named in this list. Priority can be set at ) like I have below

Please login or register to see this code.

                                  
TELEGRAM CONFIGURATION
This service is provided by telegram.org. You will need to register with them and obtain a token and a chat ID

Please login or register to see this code.

DEBUG VERBOSITY OPTIONS
This allows a number of levels of debug verbosity. There is a minimal amount of debug window responses running in normal mode but these two capabilities allow the user to observe extra information in the debug window when  the scene is running. 

Please login or register to see this code.

 

OCCUPANCY/PRESENCE STATE

I am also supporting the presentState as it is defined by Sankotronic and others.
-- "PresentState" is predefined global value that determines if you are at home
-- or away. This variable value is set by other scene or VD. Enter name of your
-- global variable between "" if called different or leave as it is

Please login or register to see this code.

-- Enter corresponding values that you use for presence in your language. Change
-- the one in quotes or leave as it is

Please login or register to see this code.


HOMETABLE
There is also support for the hometable solution. Hometable is a approach to storing all device ID in a global variable. Please Uncomment the following line if you wish to use Hometable data in scene

Please login or register to see this code.

 

 

POPUP MESSAGE TYPES

Default popup message type, possible values: Success, Info, Warning, Critical.

Please define popup message default popup type, button caption and buttons if you wish

These defaults can be left as is or modified/translated into your own language 

Please login or register to see this code.

Please refer to Sankotronic Tutorial "Popup Notifications and Custom Images" for format and examples

 

POPUP REDIRECT TITLES AND SUBTITLES

Please amend the text sent to PopUp Notification when Internet or TTS is offline to your own language if you wish. Both Title and subtitle can be modified

Please login or register to see this code.

 
SAMPLE MESSAGE INVOCATIONS
The message function can be invoked with as little as one parameter or as many as five parameters. The following examples will provide a good understanding. 
 
Send message to default notification service, with default titles/subtitles

Please login or register to see this code.

Send message to specific notification service
(The notification service must match exactly what is contained in the notifySve table in the variables section)

Please login or register to see this code.

(The hc2user in the message invocation must match exactly what is contained in the hc2emailUsers table in the user configuration section)

Please login or register to see this code.

(The hc2push device in the message invocation must match exactly what is contained in the hc2emailUsers table in the user configuration section)

Please login or register to see this code.

(The sonos player name in the message invocation must match exactly what is contained in either the APIplayers or REMplayers table in the user configuration section)

 

The target can also specify sonos player or VD id for TTS with options

Please login or register to see this code.

Custom titles and subtitles can also be specified. These will overwrite the default titles and subtitles. Subtitles are only available for HC2 Popup notifications. They can be used with or with a target notification. If the target is omitted it will send to the default notification service that has been named in the configuration section

Please login or register to see this code.

Finally an example of a Message to popup with specified popup type

 

Please login or register to see this code.

 

MESSAGE WITH INTERNATIONAL CHARACTERS

 

If you want to send message with special characters just use urlencode function:

Please login or register to see this code.

Please login or register to see this code.

 

COMPANION DEMONSTRATION VD INSTRUCTIONS (1.1)

A number of sample notification and TTS messages can be activated  giving the user an understanding of the message invocation format and options
Demonstration mode enabled the toggling of 'Internet online/offline', presentState Home/Away, sleepState Sleep/Awake modes. This capability allows the used to observe the queuing and unloading of queued notification messages and TTS messages in action. 

 

Import the VD into your home center 2.

Review the messages and adjust based on your own implementation of Smart Message Hub
Send messages and TTS as required
To demonstrate the queuing and unload of queue’s

  1. Set demo mode to ON. 
  2. Send messages and TTS and observe in selected notification services and apps, 
  3. Set internet to offline, sent messages and observe queuing, 
  4. Set internet to online, observer unloading of queue. 
  5. Set presetState to Away, send messages and observe queuing. 
  6. Set presentState to Home and observe unloading of queue. 
  7. Set sleepState to Sleep and observe TTS are silenced. 
  8. For normal operation - set Demo mode to OFF

 

 

FILES

[Smart Message Hub SCENE]  

Please login or register to see this attachment.

    (lua file)

 

WWWAPI Monitor Virtual Device

[VIRTUAL DEVICE] 

Please login or register to see this attachment.

 

Companion Virtual Device

[VIRTUAL DEVICE] 

Please login or register to see this attachment.

  

Edited by AutoFrank
Link to comment
Share on other sites

Recommended Posts

  • 0

@

Please login or register to see this link.

 your scene sounds very cool! it's something iv'e been trying myself to create, but without any luck.. would you mind posting it? 

Link to comment
Share on other sites

  • 0
Just now, matt1981 said:

@

Please login or register to see this link.

 your scene sounds very cool! it's something iv'e been trying myself to create, but without any luck.. would you mind posting it? 

Sure no problem :)

It's a work in progress so you'll have to adjust for your own needs :)

Link to comment
Share on other sites

  • 0
Just now, jimicr said:

Sure no problem :)

It's a work in progress so you'll have to adjust for your own needs :)

i can't thank you enough! i am definitely looking forward to tweaking it for my project!

 

Thanks!

Link to comment
Share on other sites

  • 0
  • Inquirer
  • 1 hour ago, jimicr said:

    Goodmorning @AutoFrank, when your HC2 is working like it is supposed to can you help me with the following:

    I have a scene that checks doors and windows if they are closed before arming the alarm, this TTS the state and when all are closed it'll launch the arming scene

    Which in turn wishes us goodnight and tells us the house is armed.

    Now if the first TTS is active and the second one starts it interrupts the first one and starts the second one, maybe there is a way to queue them?

     

    thest scene:

    Please login or register to see this code.

    At the moment I've setup a sleep time so both play normally. No hurry!!

     

    Jim

     

    Hi @jimicr

    I have been grappling with the issue for a while and I haven't found a solution.

    I haven;'t been able to find a way to queue the TTS messages and I've been onto the api develper and he said he is looking into it,

     

    There is a slight advantage because the hub can only process one message at a time and my testing shows they can be as close as 100ms.

    If we were to hold the message hub in a wait state for the  end of one TTS then you wouldn't be able to send another message. I send two separate messages to two separate sonos players as part of my wake up routine in quick succession and a wait would break that ability.

     

    I have been looking to tackle this from a different and perhaps more basic way.

    For I was thinking about counted the chars in a message and then calculating a suitable sleep between calls

    it's a bit low tech but mighty work until the api can queue TTS messages

     

     

     

    Link to comment
    Share on other sites

    • 0
    2 minutes ago, AutoFrank said:

     

    Hi @jimicr

    I have been grappling with the issue for a while and I haven't found a solution.

    I haven;'t been able to find a way to queue the TTS messages and I've been onto the api develper and he said he is looking into it,

     

    There is a slight advantage because the hub can only process one message at a time and my testing shows they can be as close as 100ms.

    If we were to hold the message hub in a wait state for the  end of one TTS then you wouldn't be able to send another message. I send two separate messages to two separate sonos players as part of my wake up routine in quick succession and a wait would break that ability.

     

    I have been looking to tackle this from a different and perhaps more basic way.

    For I was thinking about counted the chars in a message and then calculating a suitable sleep between calls

    it's a bit low tech but mighty work until the api can queue TTS messages

     

     

     

    It's no problem , just something I ran into ;)

    Link to comment
    Share on other sites

    • 0

    @jimicr,

     

    That is why I use function to add one TTS message to another before sending it to the Sonos. So in my case,  Angelina first do checking of doors and windows and if anything is left open then we get only warning for that. If everything is closed then on good night greeting first status of coffee machine is added, then status of monitored appliances and then alarm clock status plus a joke and then all that is sent to Sonos as one nice TTS message :-) 

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • 9 minutes ago, Sankotronic said:

    @jimicr,

     

    That is why I use function to add one TTS message to another before sending it to the Sonos. So in my case,  Angelina first do checking of doors and windows and if anything is left open then we get only warning for that. If everything is closed then on good night greeting first status of coffee machine is added, then status of monitored appliances and then alarm clock status plus a joke and then all that is sent to Sonos as one nice TTS message :-) 

     

    @Sankotronic

    that's a cool solution... :-)

     

    Link to comment
    Share on other sites

    • 0

    That's very cool indeed.

    I am using @AutoFrank's API solution with google TTS and that's limited to +/-120 caracters

    Link to comment
    Share on other sites

    • 0

    Well, I'm using Krikroff's VD and VoiceRSS and I still didn't manage to hit the limit :-) 

    Link to comment
    Share on other sites

    • 0

    I switched because Google TTS sounds a lot better in dutch than VoisRSS.

    So now I need to find a way to stack messages. wondering if the API can report back when it's done??

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • 4 minutes ago, jimicr said:

    That's very cool indeed.

    I am using @AutoFrank's API solution with google TTS and that's limited to +/-120 caracters

     

    @jimicr

    I use AWS Polly and have been okay so far

    You should switch from Google to another TTS solution :-)

     

     

     

    Link to comment
    Share on other sites

    • 0

    AWS isn't available in the Netherlands, and Google's TTS sounds a lot better in Dutch than VoiceRss

     

    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • 1 minute ago, jimicr said:

    I switched because Google TTS sounds a lot better in dutch than VoisRSS.

     

    Amazon Polly (according to amazon) is only in Ireland but I though I heard somebody use it in mainland europe 

    Link to comment
    Share on other sites

    • 0
    3 minutes ago, AutoFrank said:

     

    Amazon Polly (according to amazon) is only in Ireland but I though I heard somebody use it in mainland europe 

    Thanks for the tip, I'll give a go soon if I can get it to work.

     

    Oh and I found that there are a lot of great Fibaro deals on

    Please login or register to see this link.

    some things cost half from what they cost in the Netherlands! Some items I got 2 days after ordering so if anyone needs something I suggest you take a look!

     

    Jim

    Edited by jimicr
    Link to comment
    Share on other sites

    • 0

    Hi @jompa68,

     

    @AutoFrank omitted table formatting for buttons. To make it work with one button you have to modify this part of code from line 770 to 778:

    Please login or register to see this code.

    I haven't noticed that before, sorry. I'm now busy with notifications system and then this catch my attention.

    Link to comment
    Share on other sites

    • 0

    Hi all,

     

    I'm trying to install this scene, but all I manage to get is this error:

    [DEBUG] 08:17:02: line 74: bad argument #1 to 'match' (string expected, got nil)

    [DEBUG] 08:17:02: line 74: bad argument #1 to 'match' (string expected, got nil)

    [DEBUG] 08:17:02: line 74: bad argument #1 to 'match' (string expected, got nil)

    I have zero clues about what is wrong, one thing is for sure: Line 74 is not the issue as that is in the comments part of the scene.
     
    Any one have any ideas?
     
    thanks,
    activ
    Link to comment
    Share on other sites

    • 0
  • Inquirer
  • 1 hour ago, activ said:

    Hi all,

     

    I'm trying to install this scene, but all I manage to get is this error:

    [DEBUG] 08:17:02: line 74: bad argument #1 to 'match' (string expected, got nil)

    [DEBUG] 08:17:02: line 74: bad argument #1 to 'match' (string expected, got nil)

    [DEBUG] 08:17:02: line 74: bad argument #1 to 'match' (string expected, got nil)

    I have zero clues about what is wrong, one thing is for sure: Line 74 is not the issue as that is in the comments part of the scene.
     
    Any one have any ideas?
     
    thanks,
    activ

     

     

    Hi @activ

    Thanks for the interest in the scene...

     

    a Line 74 error indicates an issue with the global variable creation (not sure what it appears as line 74) 

    some system have an issue with the scene when it creates the global variables forst time round

     

    If you look at post 89 in this thread (one page back)  there is a piece of code to run once and this will create the global variables and after that the scene should work okay 

     

    give that a go and let me know how it works out.

    I have a major issue with my system over the last few weeks and haven't been able to spend as much time on evolving the message hub as I would have liked but this should get you running.. :-)

     

    _f

     

     

     

     

    Link to comment
    Share on other sites

    • 0

    Thanks, that was half of it. After running the script to create the variables there was a second problem. I had installed the wwwapi vd which said to just delete the Sonos part if not using it, but doing so broke this script. Now I've put the Sonos part back and it all works fine.

     

    Thanks for making this.

    Link to comment
    Share on other sites

    Join the conversation

    You can post now and register later. If you have an account, sign in now to post with your account.

    Guest
    Answer this question...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    ×
    ×
    • Create New...