Halo / Halo+ Smoke and CO detectors

Correct, they stopped development on this driver but did release the code to their public GitHub repo.

Mine still has 7 years left on it's life. I wish the WX would work on it since it is a plus. I had to move it back to ST with the recent hurricane/TS that came through because the wife has to have the weather alerts. Would be great to get it on HE with the WX so I can unplug the ST hub. I, however, know nothing about programming.

Yeah I am thinking I might just keep my ST v2 hub around simply for the Halo devices. Maybe I will try to pull the driver and tinker with it. It would be nice if ST would release their darn driver so it could be ported that way with full functionality.

7 years left? My understanding was that they had an expiration of 7 years entirely. Since they closed in 2018 any of their gear (assuming it was manufactured then) should only have 5 years left. I think the newest of my 4 only has 2 years remaining. Truly a bummer.

Smoke detectors have a 10 year life, even says it in the manual. 2017 + 10= 2027 - 2020 = 7 years left. Sticker has the 2017 date on the bottom with a 2027 exp. date.

Good and bad news. I had read the element in CO detectors only lasts 7, so having extra life is good.
The unending beep the manual mentions is not. I thought I would remove them as detectors but keep them elsewhere as AC wired status lights and such. Cannot do that unless I kill the speaker also it sounds like.

1 Like

My battery went bad in mine for some reason and I was about to do the same thing, cut the buzzer, but I found the battery on eBay and replaced it. At least I was able to fix the "battery fail" message. I will do the same on the end of life because I want to keep it as a light and a weather radio, if that stays working.

2 Likes

Old thread I know, but I wanted to share what I ended doing. As there is no decent zigbee driver for the Halo+, what I figured is that I would leave a Halo+ on SmartThings (my last and sole device, it hurts my soul to know is still connected) and then tapped into the capabilities of the driver. Using @csteele HubConnect, I came up with a virtual driver that would include the coveted "alarm_state" which I use along a RM rule to triggers Alexas advestisements throughout the house.
Hope this helps someone still holding on one these awesome devices

/*

  • Copyright 2019-2020 Steve White, Retail Media Concepts LLC.
  • Licensed under the Apache License, Version 2.0 (the "License"); you may not
  • use this file except in compliance with the License. You may obtain a copy
  • of the License at:
  •    http://www.apache.org/licenses/LICENSE-2.0
    
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  • WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  • License for the specific language governing permissions and limitations
  • under the License.

*/
def getDriverVersion() {[platform: "Universal", major: 2, minor: 0, build: 0]}

metadata
{
definition(name: "HaloPlusSmokeDetector", namespace: "shackrat", author: "Steve White")
{
capability "SmokeDetector"
capability "Switch"
capability "Refresh"
capability "CarbonMonoxideDetector"

  // Autogenerated attributes
  //attribute "carbonMonoxide", "string"
  attribute "alarm_state", "string"
  attribute "temperature", "string"
  attribute "humidity", "string"
  attribute "mute", "string"
            
  attribute "version", "string"

  command "sync"
    command "Unmute"
    command "Mute"
    command "HushWeather"
    command "Test"

}
}

/*
installed
*/

def installed()
{
initialize()
}

/*
updated
*/
def updated()
{
initialize()
}

/*
initialize
*/
def initialize()
{
refresh()
}

def Test()
{
parent.sendDeviceEvent(device.deviceNetworkId, "testStart")
}

def HushWeather()
{
parent.sendDeviceEvent(device.deviceNetworkId, "hushWeather")
}

def Unmute()
{
parent.sendDeviceEvent(device.deviceNetworkId, "unmute")
}

def Mute()
{
parent.sendDeviceEvent(device.deviceNetworkId, "mute", )
}

def on()
{
// The server will update on/off status
parent.sendDeviceEvent(device.deviceNetworkId, "on")
}

/*
off

Turns the device off.
*/
def off()
{
// The server will update on/off status
parent.sendDeviceEvent(device.deviceNetworkId, "off")
}

/*
uninstalled

Reports to the remote that this device is being uninstalled.
*/
def uninstalled()
{
// Report
parent?.sendDeviceEvent(device.deviceNetworkId, "uninstalled")
}

/*
refresh
*/
def refresh()
{
// The server will update status
parent.sendDeviceEvent(device.deviceNetworkId, "refresh")
}

/*
sync
*/
def sync()
{
// The server will respond with updated status and details
parent.syncDevice(device.deviceNetworkId, "SmokeDetector")
sendEvent([name: "version", value: "v${driverVersion.major}.${driverVersion.minor}.${driverVersion.build}"])
}

1 Like

Does this fix the inability to use the weather radio on the + models? I have the same problem where I want to kill my SmartThings Hub but can't because of that single device. I had it on Hubitat but the wife wanted me to get the weather radio back working since we usually get bad weather in this area, so I had to move it back. I read your post twice and couldn't figure out if you got that part working.

Sorry wasn't clear. The device is still connected to ST to zigbee. Using hubconnect, I created this driver so I can synchronize the ST device over a virtual device at Hubitat.
It looks like this at hubi:

So, that variable you see on top right "alarm_state" is where you will get the weather status. I have also included some native commands such as hush weather, test, mute/unmute weather station.

:+1: Thanks for the clarification, guess the ST hub will have to say for a while longer. I read it again and I guess I just wasn't fully awake yesterday :grin:

I have 3 Halo+ units available for sale of anyone is still looking for them. Manafacture dates are between 2017 and 2018