OmniLinkBridge to integrate Home Assistant, SmartThings, Node-RED

Pete, very nice looking dashboard, do you mind sharing the config as an example? I could use it as a "home screen" in HA, but my bigger quest is how to easily browse my thousands of devices and events. In Homeseer that is accomplished via a database like presentation layer with drop-down filters, so I can choose a view on the fly and quickly find anything. And it has the ability to hide/show selections, which I think is the collapsible lovelace card may allow.
 
tigers said:
We are getting off topic, but it's a thing I'd like to discuss, so if there isn't a topic, let's open one.
Until then I give my opinion in brief: you're right, PC Access programming of the HAI was VERY limited but it did what it was supposed to very well and very easily, and you could do a big big part of what's needed for home automation. What it didn't do by default could be done via serial and some tinkering.
On the other hand HA is VERY VERY hard to tackle even for the very basic tasks. I have a background in BASIC, visual basic, Pascal, regular C, and I put together even some complex project with Arduino and ESP, but boy, it was hard even to configure a basic timer in HA.
It lacks even some very basic tools and the answer in the forum is almost always: Hey, just build your own add-on, this is open source baby. Or: just use add-on $this, that is going to get broken at the next UI update and you'll have no clue how to fix it.
 
And this is for BASIC things. Of course you can do some pretty complicated things which opens up the world and that very nice too, but they are still lacking some basic tools like an easier way to build a dashboard, some basic manipulation that doesn't require ssh-ing and changing 3 files in 3 different directories.
 
What's worse it's that some of these things are like this BY DESIGN; an example: I was looking for a basic scheduling system that is one of the basic things in Home automation and the answer is: there's none, and we are not going to put up any, because we have scripts and automation that are way more powerful. I'm puzzled because now for very basic tasks I did in minutes with PC ACCESS I now have to spend a week to write pages of scripts and automations.
 
Don't get me wrong, I'm enthusiast of the system and it's a huge leap ahead from my previous setup but it could be much MUCH better.
That would be almost exactly my experience. I was hoping that I just don't have enough mileage with HA yet, and will find it more friendly as I learn. But after a year of trying I was compelled to ask my question here to see what others who come from HAI/Elk based systems found beneficial in utilizing the Home assistant.
 
do you mind sharing the config as an example?
 
It is just a copy and paste from a search.
 
I just installed appdaemon in Docker and having issues.  It starts and keeps restarting.  

Your post got me tinkering today and looks like I got it running.  The error was in the configuration file logs section.
 

_HS3Lite:/opt/appdaemon# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2e2d1624611e acockburn/appdaemon:latest "./dockerStart.sh" 12 minutes ago Up About a minute 0.0.0.0:5050->5050/tcp appdaemon
4b986ea7e23a homeassistant/home-assistant "/init" 2 weeks ago Up 8 hours home-assistant
d6e6891aaa75 dfarkov/onvif2mqtt "docker-entrypoint.s…" 2 months ago Up 3 days onvif2mqtt
8c7d3ee95182 omnilink-bridge "mono OmniLinkBridge…" 7 months ago Up 3 days omnilink-bridge


 
 
Tinkering some more tonight installed:
 
1 - Portainer-IO
2 - AppDaemon
3 - TileBoard
 
Tileboard is easiest to install.
 
1 - cd to www directory
2 - git clone hxxps://github.com/resoai/TileBoard.git
3 - cd tileboard
4 - cp config.example.js config.js
5 - edit config.js to your liking
6 - go to hxxp://192.168.244.150:8123/local/TileBoard/index.html
 
Working on my first touchscreen using Tileboard for HA.
 
It is a bit of a pain but it looks nice so far but a bit slow on my old Atom tabletops.  Works great mobile wise if you utilize VPN to access your home network.
 
I tried to use an editor called Atom and it reformatted the configuration file so gave up and doing it manually....it is a PITA and similar to editing a yaml file.
 
Here is one column, one group, left side of one page.

 

/*
 This is an example configuration file.


 COPY OR RENAME THIS FILE TO config.js.


 Make sure you use real IDs from your HA entities.
*/




var CONFIG = {
   customTheme: null, // CUSTOM_THEMES.TRANSPARENT, CUSTOM_THEMES.MATERIAL, CUSTOM_THEMES.MOBILE, CUSTOM_THEMES.COMPACT, CUSTOM_THEMES.HOMEKIT, CUSTOM_THEMES.WINPHONE, CUSTOM_THEMES.WIN95
   transition: TRANSITIONS.ANIMATED_GPU, //ANIMATED or SIMPLE (better perfomance)
   entitySize: ENTITY_SIZES.NORMAL, //SMALL, BIG are available
   tileSize: 150,
   tileMargin: 6,
   serverUrl: 'http://' + location.hostname + ':8123',
   wsUrl: 'ws://' + location.hostname + ':8123/api/websocket',
   authToken: null, // optional long-lived token (CAUTION: only if TileBoard is not exposed to the internet)
   //googleApiKey: "XXXXXXXXXX", // Required if you are using Google Maps for device tracker
   //mapboxToken: "XXXXXXXXXX", // Required if you are using Mapbox for device tracker
   debug: false, // Prints entities and state change info to the console.
   pingConnection: true, //ping connection to prevent silent disconnections


   // next fields are optional
   events: [],
   timeFormat: 12,
   menuPosition: MENU_POSITIONS.LEFT, // or BOTTOM
   hideScrollbar: false, // horizontal scrollbar
   groupsAlign: GROUP_ALIGNS.HORIZONTALLY, // or VERTICALLY
   onReady: function () {},


   header: { // https://github.com/resoai/TileBoard/wiki/Header-configuration
      styles: {
         padding: '1px 1px 0',
         fontSize: '40px'
      },
      right: [],
      left: [
         {
            type: HEADER_ITEMS.DATETIME,
            dateFormat: 'EEEE, LLLL dd', //https://docs.angularjs.org/api/ng/filter/date
         }
      ]
   },


   /*screensaver: {// optional. https://github.com/resoai/TileBoard/wiki/Screensaver-configuration
      timeout: 300, // after 5 mins of inactive
      slidesTimeout: 10, // 10s for one slide
      styles: { fontSize: '40px' },
      leftBottom: [{ type: SCREENSAVER_ITEMS.DATETIME }], // put datetime to the left-bottom of screensaver
      slides: [
         { bg: 'images/bg1.jpeg' },
         {
            bg: 'images/bg2.png',
            rightTop: [ // put text to the 2nd slide
               {
                  type: SCREENSAVER_ITEMS.CUSTOM_HTML,
                  html: 'Welcome to the <b>TileBoard</b>',
                  styles: { fontSize: '40px' }
               }
            ]
         },
         { bg: 'images/bg3.jpg' }
      ]
   },*/


   pages: [
      {
         title: 'Main page',
         bg: 'images/bg1.jpeg',
         icon: 'mdi-home-outline', // home icon
         groups: [
            {
               title: '',
               width: 2,
               height: 3,
               items: [
                  {
                     position: [0, 1],
                     width: 2,
                     type: TYPES.CAMERA_THUMBNAIL,
                     id: 'camera.frontdoor', // using empty object for an unknown id
                     state: false, // disable state element
                                          
                  },
                  {
                     position: [0, 2],
                     width: 1,
                     height: .75,
                     type: TYPES.LIGHT,
                     title: 'Front Porch Light',
                     states: {
                     on: "On",
                     off: "Off"
                     },
                     id: 'light.front_door', // using empty object for an unknown id
                     state: false, // disable state element
                     icons: {
                     on: "mdi-lightbulb-on",
                     off: "mdi-lightbulb",
                   }
                  },
                    {
                     position: [1, 2],
                     width: 1,
                     height: .75,
                     title: 'Outside Temp',
                     type: TYPES.SENSOR,
                     id: 'sensor.outside_1wire', // Assign the sensor
                     state: false, // hidding state
                     }, 
               ]
            },

 

Here is what it looks like.
 
Tried to edit the above post and it turned to trash so just adding pic of first attempt at this here.
 
[sharedmedia=gallery:images:1366]
 
Would anyone be kind enough to assist with thoughts on deploying OLB on a rpi4 buster? Have been reading this topic for days and attempted every install option on git with no luck. I picked up the rpi4 for the sole purpose of running OLB. Had OLB running a year ago on windows but ran into the SmartThings ID conflict (MAC address) with smartthings-mqtt-bridge. I don’t use HA, only ST. I’m sure it’s a case of too many “new-to-me” black holes such as the rpi4, Raspbian, docker, mono, etc.
 
So, with all due humility, can someone suggest the most straightforward method to get OLB running on the rpi4?
 
I can try, even if I'm absolutely no expert. But I climbed the same wall a couple of weeks ago with no experience in raspberry or Linux and maybe I can point out some newbie mistakes you could make.
Did you read my post a page or two back on how I managed to get everything to work?
 
Thanks tigers. I did, several times, trying to adapt it to ST. THANK YOU! Excellent job, btw.
 
Unfortunately I'm trying to use the web service api approach to interact with ST since I don't use HA.
 
As a side note, when I ran into the conflicting ST ID's issue last year, I set up OLB (pseudo HA style) by running omnilinkbridge.exe, node-red, smartthings-mqtt-bridge (SMB) and mosquitto on the same windows box and simply change the mqtt prefix to "smartthings". Works fine except arming, zone and unit status would occasionally go out of sync since we use both ST and the OP2 console to interact with the OP2.
 
I was hoping the web service api approach would take node-red, mqtt and SMB out of the equation.
 
My goal is to go from this: OP2 <=> OLB <=> MQTT <=> Node-Red <=> SMB <=> ST <=> webCoRE 
To this: OP2 <=> OLB <=> ST.
 
I sincerely appreciate your offer to help.
 
Oh, ok. Sorry but I think I'm not experienced enough to help. I can see the problem though, with so many links in between it's too easy to get something messed up. I'm a bit shooting in the dark here since I have no experience with smart things, but I believe home assistant can handle it too, so why not try to install home assistant to act as a more direct bridge? I think I'd be a little overkill but while you find another solution maybe it's a patch.
 
Thanks again for your help. I even tried running it on Windows again and its throwing the same error as on Raspbian. Oh well. OLB does seem more tailored to HA now and it would kill me to start over with yet another automation platform. I've been doing this for over 20 years (still have a few Ocelots) and despite all of its shortcomings, Smartthings is pretty much "set and forget". After I plugged it in I looked up and couldn't figure out who all these people were in my house until it dawned on me that they were my family.
 
Although I hate to throw hardware at a problem (haha, rpi4?), I think its time to try Konnected. Maybe I'll strap the rpi4 board to the dog's chest and freak out my wife - "Cyborg Dog".
 
That sounds very strange to me since OmniLinkBridge is not oriented towards a specific platform: it just keeps polling the HAI via its web interface, and publish that data to a MQTT server and vice versa: it "reads" the MQTT server and sends it to the HAI panel via web interface.
So it should work exactly the same way with Home assistant or any other hub, as long as it can read and write to the MQTT server. I believe the problem is somewhere in your (too long) chain of communication. I'd try to investigate if OmniLinkBridge and the MQTT server are up and communicating properly (running omnilinkbridge.exe -i should give you a hint about that: the debug messages are pretty strightforward. If OLB is working, I'll try and look at the data published on the MQTT server with MQTT explorer.
Try this and then we can dig deeper into the problem.
 
Forgive me as I haven't had a chance to read through all the recent posts. The intention of OmniLinkBridge was not to be tailored to one platform or another. As I've progressed with automation in my house I've added features as needed. The first version started out with just time sync and the MySQL logger.
 
When I added Z-wave locks and a few outlet modules I went with SmartThings. The SmartThings hub only has basic support to talk to other platforms through the LAN-connected device types. I wanted to avoid exposing the OmniLinkBridge outside the local network. When I built the integration around those requirements I tried to keep it generic so it could be reused by other platforms by building a web api the uses json. The MAC address limitation comes from SmartThings using the MAC address from the incoming request to bind to a device handler. Additionally since I didn't build out any authentication for the web API I left off the ability to arm/disarm. I didn't want a rouge IoT device to be able to disarm my house.
 
Over the years I've experienced reliability issues with SmartThings. Occasionally in the middle of the night I would wake up and ask Alexa to run a command and I would find SmartThings would be down. This led me to look at platforms that weren't dependent on the cloud. After trying various solutions I settled upon Home Assistant. Again I didn't want to build a platform specific interface. In doing research Home Assistant, OpenHAB, HomeSeer, NodeRED and others all supported MQTT so I went that route. Since MQTT became popular it ended up with additional features that the web service api didn't have.
 
rsw686 said:
ask Alexa to run a command and I would find SmartThings would be down. This led me to look at platforms that weren't dependent on the cloud.
Isn't Alexa dependent on the cloud?
:rofl:
 
I have just started using the OB to see if I could transition from HaikuHelper, so far it looks very promising and thank you for the great app! I did find one limitation though: no audio zones, or am I missing something?
 
rsw686 said:
Forgive me as I haven't had a chance to read through all the recent posts. The intention of OmniLinkBridge was not to be tailored to one platform or another. As I've progressed with automation in my house I've added features as needed. The first version started out with just time sync and the MySQL logger.
 
When I added Z-wave locks and a few outlet modules I went with SmartThings. The SmartThings hub only has basic support to talk to other platforms through the LAN-connected device types. I wanted to avoid exposing the OmniLinkBridge outside the local network. When I built the integration around those requirements I tried to keep it generic so it could be reused by other platforms by building a web api the uses json. The MAC address limitation comes from SmartThings using the MAC address from the incoming request to bind to a device handler. Additionally since I didn't build out any authentication for the web API I left off the ability to arm/disarm. I didn't want a rouge IoT device to be able to disarm my house.
 
Over the years I've experienced reliability issues with SmartThings. Occasionally in the middle of the night I would wake up and ask Alexa to run a command and I would find SmartThings would be down. This led me to look at platforms that weren't dependent on the cloud. After trying various solutions I settled upon Home Assistant. Again I didn't want to build a platform specific interface. In doing research Home Assistant, OpenHAB, HomeSeer, NodeRED and others all supported MQTT so I went that route. Since MQTT became popular it ended up with additional features that the web service api didn't have.
Nice to know you are still around. Everything is going good so far, only issue I had was with the sensors I used as thermostats but the generic thermostat in Home assistant works just fine using the temperature sensor and the output I use on the OPII for running my heat valves.
The only small issue is some objects are randomly not recongnized, I just have to cross my fingers with every reboot of the Rasberry Pi that none of the important switch is left behind.
 
Back
Top