[RELEASE] Hubitat Alarm for DSC / Honeywell using Envisalink or IT-100

The main idea of this project is to implement both DSC and Honeywell Alarm system using either Envisalink or IT-100 in a single project.

This project allows you to control your home alarm (DSC or Honeywell) using Hubitat from anywhere. It's compatible with HSM (Hubitat Safety Monitor) you can ARM, Disarm all modes using HSM, Rule Machine or any other automation.

Alarm dashboard:

Hubitat Alarm is all in one solution with the following features:

  • Easy deployment and management

  • Auto mapping Alarm Zones to device Types

  • Compatible with Serial board DSC-IT100 or Envisalink. In case of DSC alarm you can choose the one you are using. Honeywell is only compatible with Envisalink.

  • Backup and Restore, you can restore either the Raspberry Pi configuration or Hubitat Alarm app settings.

  • Supports two communication methods WSS or API

  • Installation available using Hubitat Package Manager

  • Raspberry Pi deployment using docker or installation script

Screen Shots:

https://github.com/Welasco/HubitatAlarm

5 Likes

Is this a fork of the Envisalink app/driver or a ground up write?
My current setup works fine but it is no longer supported; not that has been any issues, knock on wood.

Short answer no, it's not related with any official project.

Envisalink works with both DSC and Honeywell and each alarm has its own serial command interface. For DSC implementation I wrote from scratch. For Honeywell implementation I implemented a code interface based in NodeProxy.

It also implements the IT-100 official serial board for DSC.

I get internal log errors every day when the serial comms die and get restarted. Before I try a test install of your app do you think your version avoids these timeouts?

dev:1522021-12-05 06:30:55.515 warntelnet input stream closed

app:1202021-12-05 06:30:55.485 errorEnvisalink Integration: Connection Driver: Telnet is restarting...

app:1202021-12-05 06:30:55.474 errorEnvisalink Integration: Connection Driver: telnetStatus- error: receive error: Stream is closed

Looks like the implementation you are using is connecting directly from Hubitat HUB to Envisalink using Telnet. Your problem might be related to how this connection are happening:

  • Are you using Wifi? It could be related to a network issue or Wifi disconnection.
  • Connection Time-out, as far as I know if you are using Honeywell it doesn't have a heartbeat on it to keep the connection open all the time, I had some trouble with it but I fix that in the code (Node.JS). If you are using DSC it has a heartbeat per minute which maintain the connection open.

If you have a local network problem my code won't fix it.

In my case I wrote a Node.JS app to run in a Raspberry Pi to work as a bridge and control the communication to DSC/Honeywell using Evisalink or IT-100. The code take different paths depending on what type of alarm you are using and it has retry logic and reconnection logic in either case.

Semi-supported :slight_smile: There have been some fixes over the last couple of months. You might want to post your question in this evisalink thread (the title is a bit misleading...) or one of the others related specifically to the older direct-telnet integration. [RELEASE] Envisalink App & Driver for Vista/Ademco/Honeywell Alarm via smartthings-nodeproxy - #191 by brad5

Thanks for your effort in creating this!

I’m having trouble getting a docker-compose version of this running on Ubuntu. I own an Envisalink with a Honeywell panel and I have been using this Envisalink integration (Envisalink Integration) but would like to try yours.

Here is my docker-compose syntax:

  hubitatalarm:
    container_name: hubitatalarm
    image: welasco/hubitatalarm:latest
    restart: always 
    ports:
      - 3000:3000
    volumes:
      - /home/robert/docker/hubitatalarm:/opt/Alarm/config
    environment:
      - TZ=US/Central

Docker-compose seemed to pull and make your image fine and presents no errors when running it, but the Hubitat app fails to connect to the Docker container with this error in WSS mode:

dev:7372022-09-18 09:28:43.877 pm warnHubitat Alarm Panel - WebSocket failure message from web socket failure: connect timed out
dev:7372022-09-18 09:28:43.874 pm debugHubitat Alarm Panel - WebSocket webSocketStatus failure: connect timed out
app:8342022-09-18 09:28:43.763 pm infoHubitat Alarm - updateSettingsCallback: 408
app:8342022-09-18 09:28:43.755 pm infoHubitat Alarm - hubSubscribeCallbackSettingshttpPostCallback: 408

In API mode I get no errors, but also cannot control the Envisalink.

I can see that after entering the configuration into the Hubitat app, the config.json in the Docker instance does not automatically update. I manually entered the correct values into the config but still couldn’t get Hubitat to talk to Docker.

I know that a Docker image built for a Rasbperry Pi might fail to work on other Linux distros. Could that be the problem?

Hey @robert.leh , sorry for the delay here.

I don't believe your problem is related to be running in Ubuntu. Infact I publish the image for ARM and X86 CPUs and I tested in Ubuntu 18.04 and worked fine.

I just give it a try using docker-compose like you suggested and it seems to be working fine as well:

After execute the docker-compose file like I did I would give it a try and run curl to see if you can reach the container from the host itself like I did in the picture above: curl localhost:3000

It should print the default HTML of the container similar to this:
Hubitat Alarm Running

In your error message it give me the impression the Hubitat hub is unable to communicate with your Linux Host using the port 3000. I'm assuming you have setup HubitatAlarm app using the right IP and Port like this:

Try to access from another host the http://#LinuxHostIP#:3000 to see if you have access to the container.

Let me know the result.

Hey Victor, thanks for testing and confirming that my setup was correct. I think I was in such doubt about it that I failed to see the plain issue: I had inputted the wrong internal IP for the alarm address!

I fixed the IP and it now works perfectly. Thank you for developing the smart app, driver, and the docker image and also for being responsive. You are an awesome developer!

Edit: For other users who might want to use this integration, I needed to take a few steps to disable the other Envisalink integration I was using before I could get Hubitat Alarm to communicate with my Envisalink. I think the problem is that the Envisalink can only talk to one user at a time on port 4025. In specific, the older integration I was using was called "Envisalink for Vista Ademco/20p Alarm System by Brian Wilson" in Hubitat Package Manager.

  1. In the Envisalink device created by "Envisalink for Vista Ademco/20p Alarm System by Brian Wilson", change the Envisalink IP and password.
  2. Reboot your Hubitat hub to force the integration to close its connection with your Envisalink.
  3. Configure Hubitat Alarm with your Envisalink IP and password.
1 Like

This is true Robert, I had this same problem when I was developing. If you leave a connection behind in EnvisaLink, you won't be able to establish a new one. Thank you very much for sharing it.

Download the Hubitat app