Wanted to share how I get BI and HomeSeer (HS) to update each other so that the two applications remain in sync.
This can apply for just about anything needed to share between the two, but in my example it is for the BI profile. I must keep the two applications in sync so that they each behave properly based on the profile that has been set in BI.
Note that with two way communication between the two (shown below), I can set the profile in BI or in HS and they both stay in sync.
For BI --> HS I use JSON and from HS --> BI I just use HTTP. There is a plugin for HS that works with BI, but I found it easier to not use it.
Here is the JSON for BI --> HS:
192.168.1.41/JSON?request=controldevicebyvalue&ref=387&value=%P
Here is where you would place that string:

For HS --> BI I place these lines into a VB script.
The script is run any time I make a change to the virtual device I built that mirror the 7 profiles I use in BI:
/ Set up an Object that will hold the profile value currently in HS
Dim BI As Object
/ Get the current profile I just set in HS (387 is the number of my Virtual Device)
BI = hs.CAPIGetStatus(387)
/ Set the profile variable into a String
UrlString = "" & BI.Value & "&user=admin&pw=My%20pass%20word"
/ Call the URL with the profile variable already set into it - meaning call BI with the latest profile value
hs.URLAction(UrlString , "GET", "", "")
I specifically don't use any queues/topics (like RabbitMQ/MQTT/etc) simply because in the 14 months I have had this setup there has not been a single failed call. Plus I don't need military grade fail over architecture. Plus it is just one more layer to install, maintain, debug, etc.
This can apply for just about anything needed to share between the two, but in my example it is for the BI profile. I must keep the two applications in sync so that they each behave properly based on the profile that has been set in BI.
Note that with two way communication between the two (shown below), I can set the profile in BI or in HS and they both stay in sync.
For BI --> HS I use JSON and from HS --> BI I just use HTTP. There is a plugin for HS that works with BI, but I found it easier to not use it.
Here is the JSON for BI --> HS:
192.168.1.41/JSON?request=controldevicebyvalue&ref=387&value=%P
Here is where you would place that string:

For HS --> BI I place these lines into a VB script.
The script is run any time I make a change to the virtual device I built that mirror the 7 profiles I use in BI:
/ Set up an Object that will hold the profile value currently in HS
Dim BI As Object
/ Get the current profile I just set in HS (387 is the number of my Virtual Device)
BI = hs.CAPIGetStatus(387)
/ Set the profile variable into a String
UrlString = "" & BI.Value & "&user=admin&pw=My%20pass%20word"
/ Call the URL with the profile variable already set into it - meaning call BI with the latest profile value
hs.URLAction(UrlString , "GET", "", "")
I specifically don't use any queues/topics (like RabbitMQ/MQTT/etc) simply because in the 14 months I have had this setup there has not been a single failed call. Plus I don't need military grade fail over architecture. Plus it is just one more layer to install, maintain, debug, etc.