[OH3] Homekit: must have following characteristics (Smoke detector)

  • Platform information:
    • Hardware: Pi3+
    • OS: buster
    • Java Runtime Environment: Zulu 11.0.9
    • openHAB version: OH 3.0.0

I can’t configure my smokesensor - any help appreciated:

    Number:Temperature  SensorTemperature   "Temperature sensor"    (EG_Technikraum)    {homekit="TemperatureSensor.CurrentTemperature",channel="zwave:device:dummy:node40:sensor_temperature"}
    Switch              AlarmSmoke          "Smoke alarm"           (EG_Technikraum)    {homekit="SmokeSensor.SmokeDetectedState",channel="zwave:device:dummy:node40:alarm_smoke"}
    Number              BatteryLevel        "Batterieladung"        (EG_Technikraum)    {homekit="SmokeSensor.BatteryLowStatus",channel="zwave:device:dummy:node40:battery-level"} 


[WARN ] [.accessories.HomekitAccessoryFactory] - Accessory of type SmokeSensor must have following characteristics [SMOKE_DETECTED_STATE]. Found only []
[WARN ] [mekit.internal.HomekitChangeListener] - Could not add device BatteryLevel: Missing mandatory characteristics

Also the temprature is set to 10,0°C at the start - after some times it switches to normal (23,0°-25,0°)

  1. on temperature: 10,0°C is the default lowest temperature. probably SensorTemperature has no value at the beginning

  2. smoke detector. binding thinks that you have 2 different smoke detectors
    “AlarmSmoke” and “BatteryLevel” and the “BatteryLevel” has no SmokeDetectedState characteristics.
    you need to put them in one group so that binding understands that these are 2 characteristics of the same smoke detectors, e.g.

     Group gSmokeAlarm "Smoke alarm" {homekit="SmokeSensor}
     Switch              AlarmSmoke          "Smoke alarm"           (EG_Technikraum, gSmokeAlarm)    {homekit="SmokeSensor.SmokeDetectedState",channel="zwave:device:dummy:node40:alarm_smoke"}
     Number              BatteryLevel        "Batterieladung"        (EG_Technikraum, gSmokeAlarm)    {homekit="SmokeSensor.BatteryLowStatus",channel="zwave:device:dummy:node40:battery-level"}


thank you! - helpfull as always :+1:

  1. I do not know how the homekit addon works but openHAB has its state (luckily updating homekit devices dont need a full openHAB reboot). I guess the homekit addon asks every 5 minutes to update?

  2. For my understanding: do I need to put each smoke detector into the same group or do I need to split them gSmokeAlarm1, gSmokeAlarm2 ?


  1. homekit reads the values on start of home app. home app request values from openhab and afterwards openhab sends updates to home app on every changes. it can take 2-3 seconds depending on number of devices.
    please check what it the value of SensorTemperature when you see 10,0°C
  2. one group = one device. you need a separate group for every smoke detector.

Note: you only need a group if you have more than one characteristics for the same device, e.g. in your case you track smoke alarm and battery, so, 2 characteristics => you need a group.
if you would not need the battery but only smoke alarm then you would not need a group.

1 Like

Hi yfre,

Homekit tells me my battery is near empty - my smoke detector is 2 month old.

Any ideas? :thinking:

BatteryLowStatus expects a switch or contact item with ON/OFF value.
if you link it to a number, it will interpret number = 0 as OFF, means not warning and all numbers >1 as ON, means low batter warning.

probably not the best mapping, but this is how it is currently works. to fix it, i would create a separate item of type switch and make a rule, that will update this switch depending on Batterieladung.

OK thanks! I thought Homekit would be better and also show in %