Kidde Smart Alarms - Smoke / CO detectors

Works amazing, thanks! I have 3 IAQ alarms (so far) and a leak sensor. All are detected. Just put add custom repo in HACS, search and install Kidde, then settings->devices->Add Integration->Kidde. Give your Kidde email and password, and you are good to go.

Controls

Hush
Identifying
Test

Sensors

Air Pressure 2,984.2 inHg
Battery State ok
CO Alarm Off
CO Level 0
CO₂ Level 972.66 ppm
Humidity 44.66%
Indoor Air Quality 97.27
Indoor Temperature 75.6 °F
Last Seen 2024-04-29T03:12:27.174948328Z
Last Test Time Unknown
Overall Air Quality Moderate
Smoke Alarm Off
Smoke Hushed Off
Smoke Level 3
Total VOC 567.57 ppb
Weeks to replace 471 w

I have the same problem with 2 identical units.

I installed 1 unit and it worked fine for a few weeks then suddenly started showing a temperature value that is about 8-9 degrees too high and humidity level about 15-20% too low and bad TVOC levels. It smartened-up once for a few weeks after a firmware update, but then started misbehaving again suddenly.

I contacted Kidde and they sent me a replacement unit which did the same thing after a few weeks. They are both made in China (I was asked whether it was made in China or Mexico) and have the same date and issue number on them (2022 OCT.28).

Surprisingly I haven’t seen anyone reporting this or complaining in reviews.

Just to be clear, the problems with the detectors started occurring before I started monitoring them in Home-Assistant. The integration works great!

Sorry, I finally got around to testing this. I re-installed my old basic Kidde detector inline with the smart one.
I pressed the test button on the basic combo detector and received a push notification from the Kidde Android App stating there were smoke and CO alarms activated and cleared at “unknown location”, “no alarm event from connected Kidde wi-fi device(s)”.
I checked the Home-Assistant integration and it didn’t report any events in the log for this test.

Then I pressed the test button in Home-Assistant integration for the smart detector which triggered the siren and smoke/CO voice prompts and I received a push notification “Hallway” “System test activated”.
In Home-Assistant integration the “Test” and “Last Test Time” values were updated with the time the test was run.

Without actually using smoke to confirm, it seems that the Home-Assistant integration was not aware of the trigger from the basic detector even though the smart detector received the trigger and sent push notification on my phone.

I am also using an opto-isolator circuit to monitor the traveler wire on the smoke/CO detectors and feeding it into an alarm panel input, so I received that event in Home-Assistant for both tests.

Thanks for the integration and the fork. @FishDaddy Please do enable reporting issues in the github page for bug reports, features.

1 Like

Fork yeah! The Total VOC xxx.xx ppb are not showing from my CO Wifi Detector for some reason (they are reported in the Kidde HomeSafe app) - happy to open an issue unless I’m just being daft:

Okay, took over the repo with my fork.
Thanks again to @865charlesw for starting this.
I turned on issues. Just rolled a new release with an update to the smoke history and time relative values from a submitted PR.

1 Like

I’ve been following along with great interest, and recently - when my existing smoke detectors started hitting their 10-year expiration mark, I decided to replace all of them with these Kidde HomeSafe ACQ Smoke Detectors, specifically because of the work done on this HACS/Home Assistant integration. I’ve since extended the initial kidde_homesafe.py from GitHub - 865charlesw/kidde-homesafe: A slim python wrapper of the Kidde HomeSafe private API and built an InfluxDB V2 collector and some Grafana Dashboards to visualize the data. More details here:

Thanks again for keeping this updated!!

1 Like

This is awesome. Just out of curiosity though does your repo pull any additional/different data then what the HACS integration does?

Mainly asking as HA can already export data to influx so the data should already be possible to use without your container.

1 Like

I use HA as well. We’re stuffing everything from the device JSON the same way, so there are no new details. I also use the InfluxDB and Prometheus integrations to get all my data out of HA. They each have their benefits and drawbacks. My data dictionary is a little more straightforward as it doesn’t have to go through the HA process.

My own device JSON looks like this:

    "devices": {
        "553549": {
            "id": 553549,
            "serial_number": "001372CBA9BD",
            "model": "wifiiaqdetector",
            "notify": true,
            "location_id": 356103,
            "label": "Basement",
            "lost": false,
            "hwrev": "WD-ESP32",
            "ptt_state": "idle",
            "locate_active": false,
            "instance_id": "35845b70ef",
            "notify_contact": true,
            "last_test_time": "2024-01-28T18:52:54Z",
            "motion_active": false,
            "weather_active": false,
            "capabilities": [
                "smoke",
                "co",
                "temperature"
            ],
            "errors": [],
            "smoke_alarm": false,
            "co_alarm": false,
            "smoke_level": 3,
            "smoke_comp": -21,
            "too_much_smoke": false,
            "smoke_hushed": false,
            "co_level": 0,
            "fwrev": {
                "wm": "2.5",
                "net": "4.4.1",
                "alarm": "1.10"
            },
            "life": 514,
            "batt_volt": 0,
            "battery_state": "ok",
            "temperature_f": 78,
            "temperature": 78,
            "ptt_active": false,
            "identifying": false,
            "announcement": "Basement",
            "notify_eol": true,
            "notify_tvoc": false,
            "notify_rh": false,
            "notify_iaq_temp": false,
            "notify_mold_risk": false,
            "diag_params": {
                "ap_rssi": -58
            },
            "mb_model": 39,
            "last_seen": "2024-06-25T04:09:02.836976621Z",
            "ssid": "tyle-iot",
            "iaq_temperature": {
                "value": 73.62,
                "status": "Good",
                "Unit": "F"
            },
            "humidity": {
                "value": 36.24,
                "status": "Good",
                "Unit": "%RH"
            },
            "hpa": {
                "value": 98911,
                "status": "Unhealthy",
                "Unit": "hpa"
            },
            "tvoc": {
                "value": 1111.43,
                "status": "Moderate",
                "Unit": "ppb"
            },
            "iaq": {
                "value": 92.24,
                "status": "Good",
                "Unit": ""
            },
            "co2": {
                "value": 922.37,
                "status": "Good",
                "Unit": "PPM"
            },
            "ap_rssi": -58,
            "iaq_state": "Normal",
            "iaq_learn_countdown": 0,
            "iaq_last_test_time": "2024-06-24T23:18:25Z",
            "iaq_test_status": true,
            "reset_flag": false,
            "overall_iaq_status": "Moderate",
            "country_code": "US",
            "longitude": 0,
            "latitude": 0,
            "altitude": 0,
            "accuracy": 0,
            "end_of_life_status": 1
        },

The efforts by the HA community have been great!! So this is really a quick collector to go with my other collectors like Sense, WeatherFlow, and Kasa, as I started many of them before I ended up in the deep end of Home Assistant! :slight_smile: I can massage the data and Grafana graphs to make things a little easier to display.

Thanks to those who worked on this integration, love it. My only question is about the CO level, it is just a number with no units, any idea what the range is for CO level? Using it in a sun room with a fire table and I’ve seen the value go up to 3 but no alarm has gone off.

@Lux4rd0 could you upload your dashboard json config to your repo? I wanna steal your dashboard :slight_smile:

Ended up making a home assistant dashboard for this:

3 Likes

@keatontaylor I just started with HA and was happy to find this integration. Could you please share your dashboard setup? I have a mix of smoke, CO, and IAQ sensors and would like to do similar.

1 Like

Please share! This is excellent and just what I was looking for!
Thanks!

It would be awesome if you could share this dashboard code. I love the layout.

Here’s the one of the tiles for the temperature, adjust to your liking and repeat them for your other sensors. Uses mini-graph-card and card-mod from HACS

title: Air Quality
path: air-quality
type: sections
max_columns: 4
sections:
  - type: grid
    cards:
      - type: custom:mini-graph-card
        name: Indoor Temperature
        line_width: 1
        points_per_hour: 10
        show:
          legend: false
          state: false
        entities:
          - sensor.indoor_temperature
          - sensor.indoor_temperature_2
          - sensor.indoor_temperature_3
          - sensor.indoor_temperature_4
          - sensor.indoor_temperature_5
          - sensor.indoor_temperature_6
          - sensor.indoor_temperature_7
        color_thresholds:
          - value: 75
            color: green
          - value: 76
            color: greenyellow
          - value: 77
            color: yellow
          - value: 78
            color: orange
          - value: 79
            color: red
      - show_name: true
        show_icon: false
        show_state: true
        type: glance
        entities:
          - entity: sensor.indoor_temperature
            card_mod:
              style: |
                :host {
                  color:
                    {% if states(config.entity) | int <= 75.0 %} 
                      green
                    {% elif states(config.entity) | int <= 76.0 %}
                      greenyellow
                    {% elif states(config.entity) | int <= 77.0 %}
                      yellow
                    {% elif states(config.entity) | int <= 78.0 %}
                      orange
                    {% elif states(config.entity) | int >= 79.0 %}
                      red
                    {% endif %}
                    ;
                }
          - entity: sensor.indoor_temperature_2
            card_mod:
              style: |
                :host {
                  color:
                    {% if states(config.entity) | int <= 75.0 %} 
                      green
                    {% elif states(config.entity) | int <= 76.0 %}
                      greenyellow
                    {% elif states(config.entity) | int <= 77.0 %}
                      yellow
                    {% elif states(config.entity) | int <= 78.0 %}
                      orange
                    {% elif states(config.entity) | int >= 79.0 %}
                      red
                    {% endif %}
                    ;
                }
          - entity: sensor.indoor_temperature_4
            card_mod:
              style: |
                :host {
                  color:
                    {% if states(config.entity) | int <= 75.0 %} 
                      green
                    {% elif states(config.entity) | int <= 76.0 %}
                      greenyellow
                    {% elif states(config.entity) | int <= 77.0 %}
                      yellow
                    {% elif states(config.entity) | int <= 78.0 %}
                      orange
                    {% elif states(config.entity) | int >= 79.0 %}
                      red
                    {% endif %}
                    ;
                }
          - entity: sensor.indoor_temperature_5
            card_mod:
              style: |
                :host {
                  color:
                    {% if states(config.entity) | int <= 75.0 %} 
                      green
                    {% elif states(config.entity) | int <= 76.0 %}
                      greenyellow
                    {% elif states(config.entity) | int <= 77.0 %}
                      yellow
                    {% elif states(config.entity) | int <= 78.0 %}
                      orange
                    {% elif states(config.entity) | int >= 79.0 %}
                      red
                    {% endif %}
                    ;
                }
          - entity: sensor.indoor_temperature_6
            card_mod:
              style: |
                :host {
                  color:
                    {% if states(config.entity) | int <= 75.0 %} 
                      green
                    {% elif states(config.entity) | int <= 76.0 %}
                      greenyellow
                    {% elif states(config.entity) | int <= 77.0 %}
                      yellow
                    {% elif states(config.entity) | int <= 78.0 %}
                      orange
                    {% elif states(config.entity) | int >= 79.0 %}
                      red
                    {% endif %}
                    ;
                }
          - entity: sensor.indoor_temperature_7
            card_mod:
              style: |
                :host {
                  color:
                    {% if states(config.entity) | int <= 75.0 %} 
                      green
                    {% elif states(config.entity) | int <= 76.0 %}
                      greenyellow
                    {% elif states(config.entity) | int <= 77.0 %}
                      yellow
                    {% elif states(config.entity) | int <= 78.0 %}
                      orange
                    {% elif states(config.entity) | int >= 79.0 %}
                      red
                    {% endif %}
                    ;
                }
        columns: 3
        state_color: false

I am new HA community. Recently did my Tesla intrgeation. Now i am thinking to intregate Kiddie smoke detector. I got repository on HA community which is no longer maintained. When i try to add that repo in HACS intregation. It is not workig.
Did someone recently make it work ?

OMG! Sorry @keatontaylor - I missed this!! I’ve updated my Github and published this dashboards!! Sorry for not having them provided!!

For those who have had these for some time how has your experience been? Reviews are all over the map on false alarms and I would love to add HA connected Smoke/CO2 with some smarts.

Yes, I am aware of the Zooz Z-wave and I have the First Alert BRK RM4 now but all you get it they went off, not who or any silence option.

FYI:

I just returned from Home Depot where I purchased 3 of these for $80/ea. I was told they were clearing stock of these specific devices and the price was for in-store purchases only.

https://www.homedepot.com/p/Kidde-Smart-Smoke-and-Carbon-Monoxide-Detector-with-Indoor-Air-Quality-Monitor-Hardwired-10-Year-Lithium-Backup-Battery-21030843/320215768