Skip to content

Instantly share code, notes, and snippets.

@bakman2
Created July 28, 2019 10:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bakman2/64b3bdfea577044302b6533ccdbaa42b to your computer and use it in GitHub Desktop.
Save bakman2/64b3bdfea577044302b6533ccdbaa42b to your computer and use it in GitHub Desktop.
Homekit characteristics object for reuse in Node-red
{
"homekit_services": [
{
"Name": "Name",
"service": "AirPurifier",
"characteristics": {
"Active": "0, 1 (active, inactive)",
"TargetAirPurifierState": "0,1 (manual, auto)",
"CurrentAirPurifierState": "0,1,2 (inactive, idle, purify air)",
"LockPhysicalControls": "0,1 (lock disabled, lock enabled)",
"RotationSpeed": "0-100",
"SwingMode": "0,1 (disabled, enabled)"
}
},
{
"Name": "Name",
"service": "AirQualitySensor",
"characteristics": {
"AirQuality": "0,1,2,3,4,5 (unknown, excellent, good, fair, inferior, poor)",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"CarbonMonoxideLevel": "0-100",
"OzoneDensity": "true,false",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)",
"NitrogenDioxideDensity": "0-1000",
"CarbonDioxideLevel": "0-10000",
"VOCDensity": "0-1000",
"PM2_5Density": "0-1000",
"SulphurDioxideDensity": "0-1000",
"PM10Density": "0-1000"
}
},
{
"Name": "Name",
"service": "BatteryService",
"characteristics": {
"BatteryLevel": "0-100",
"ChargingState": "0,1,2 (not charging, charging, not chargable)",
"StatusLowBattery": "0,1(normal, low)"
}
},
{
"Name": "Name",
"service": "CameraRTPStreamManagement",
"characteristics": {
"SelectedRTPStreamConfiguration": "?",
"SetupEndpoints": "?",
"SupportedAudioStreamConfiguration": "?",
"StreamingStatus": "?",
"SupportedVideoStreamConfiguration": "?",
"SupportedRTPConfiguration": "?"
}
},
{
"Name": "Name",
"service": "CarbonDioxideSensor",
"characteristics": {
"CarbonDioxideDetected": "0,1 (levels normal, levels abnormal)",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)",
"CarbonDioxideLevel": "0-10000",
"CarbonDioxidePeakLevel": "0-10000"
}
},
{
"Name": "Name",
"service": "CarbonMonoxideSensor",
"characteristics": {
"CarbonMonoxideDetected": "0,1 (levels normal, levels abnormal)",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"CarbonMonoxideLevel": "0-100",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)",
"CarbonMonoxidePeakLevel": "0-100"
}
},
{
"Name": "Name",
"service": "ContactSensor",
"characteristics": {
"ContactSensorState": "0,1 (contact detected, contact not dectected)",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)"
}
},
{
"Name": "Name",
"service": "Door",
"characteristics": {
"CurrentPosition": "0-100",
"TargetPosition": "0-100",
"PositionState": "0,1,2 (decreasing, increasing, stopped)",
"HoldPosition": "true/false",
"ObstructionDetected": "true/false"
}
},
{
"Name": "Name",
"service": "Doorbell",
"characteristics": {
"ProgrammableSwitchEvent": "0,1,2 (single press, double press, long press)",
"Volume": "0-100",
"Brightness": "0-100"
}
},
{
"Name": "Name",
"service": "Fan",
"characteristics": {
"On": "true,false",
"RotationDirection": "0,1 (clockwise, counter clockwise)",
"RotationSpeed": "0-100"
}
},
{
"Name": "Name",
"service": "Fanv2",
"characteristics": {
"Active": "0, 1 (active, inactive)",
"LockPhysicalControls": "0,1 (lock disabled, lock enabled)",
"RotationDirection": "0,1 (clockwise, counter clockwise)",
"RotationSpeed": "0-100",
"CurrentFanState": "0,1,2 (inactive, idle, blowing air)",
"SwingMode": "0,1 (disabled, enabled)",
"TargetFanState": "0,1 (manual, auto)"
}
},
{
"Name": "Name",
"service": "Faucet",
"characteristics": {
"Active": "0, 1 (active, inactive)",
"StatusFault": "0,1 (no fault, fault)"
}
},
{
"Name": "Name",
"service:": "FilterMaintenance",
"characteristics": {
"FilterChangeIndication": "0,1 (filter OK, change filter)",
"ResetFilterIndication": "1 (reset filter indication)",
"FilterLifeLevel": "0-100"
}
},
{
"Name": "Name",
"service:": "GarageDoorOpener",
"characteristics": {
"ObstructionDetected": "true/false",
"TargetDoorState": "0,1 (open, closed)",
"CurrentDoorState": "0,1,2,3,4 (open, closed, opening, closing, stopped)",
"LockTargetState": "0,1 (unsecured, secured)",
"LockCurrentState": "0,1,2,3 (unsecured, secured, jammed, unknown)"
}
},
{
"Name": "Name",
"service": "HeaterCooler",
"characteristics": {
"Active": "0, 1 (active, inactive)",
"CurrentHeaterCoolerState": "0,1,2,3 (inactive, idle, heating, cooling)",
"TargetHeaterCoolerState": "0,1,2 (auto, heat, cool)",
"CurrentTemperature": "-100 to 500",
"LockPhysicalControls": "0,1 (lock disabled, lock enabled)",
"RotationSpeed": "0-100",
"SwingMode": "0,1 (disabled, enabled)",
"HeatingThresholdTemperature": "0-38",
"TemperatureDisplayUnits": "0,1 (celsius, fahrenheit)",
"CoolingThresholdTemperature": "10-38"
}
},
{
"Name": "Name",
"service": "HumidifierDehumidifier",
"characteristics": {
"Active": "0, 1 (active, inactive)",
"CurrentHumidifierDehumidifierState": "0,1,2,3 (inactive, idle, humidifying, dehumidifying)",
"TargetHumidifierDehumidifierState": "0,1,2 (humidifier or dehumidifier, humidifier, dehumidifier)",
"CurrentRelativeHumidity": "0-100",
"LockPhysicalControls": "0,1 (lock disabled, lock enabled)",
"RotationSpeed": "0-100",
"RelativeHumidityHumidifierThreshold": "0-100",
"SwingMode": "0,1 (disabled, enabled)",
"RelativeHumidityDehumidifierThreshold": "0-100",
"WaterLevel": "0-100"
}
},
{
"Name": "Name",
"service": "HumiditySensor",
"characteristics": {
"CurrentRelativeHumidity": "0-100",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)"
}
},
{
"Name": "Name",
"service": "IrrigationSystem",
"characteristics": {
"Active": "0, 1 (active, inactive)",
"ProgramMode": "0,1,2 (no program scheduled, program scheduled, manual mode)",
"InUse": "0,1 (not in use, in use)",
"StatusFault": "0,1 (no fault, fault)",
"RemainingDuration": "0-43200"
}
},
{
"Name": "Name",
"service": "LeakSensor",
"characteristics": {
"LeakDetected": "0,1 (leak not detected, leak detected)",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)"
}
},
{
"Name": "Name",
"service": "LightSensor",
"characteristics": {
"CurrentAmbientLightLevel": "0-100",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)"
}
},
{
"Name": "Name",
"service": "Lightbulb",
"characteristics": {
"On": "true,false",
"Hue": "0-360",
"Saturation": "0-100",
"ColorTemperature": "140-15000",
"Brightness": "0-100"
}
},
{
"Name": "Name",
"service": "LockMechanism",
"characteristics": {
"LockTargetState": "0,1 (unsecured, secured)",
"LockCurrentState": "0,1,2,3 (unsecured, secured, jammed, unknown)"
}
},
{
"Name": "Name",
"service": "Microphone",
"characteristics": {
"Mute": "true,false",
"Volume": "0-100"
}
},
{
"Name": "Name",
"service": "MotionSensor",
"characteristics": {
"MotionDetected": "true,false",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)"
}
},
{
"Name": "Name",
"service": "OccupancySensor",
"characteristics": {
"OccupancyDetected": "true/false",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)"
}
},
{
"Name": "Name",
"service": "Outlet",
"characteristics": {
"On": "true/false",
"OutletInUse": "true/false"
}
},
{
"Name": "Name",
"service": "PlaybackDeviceService",
"characteristics": {
"PlaybackState": "0,1,2 (playing, paused, stopped)",
"MediaItemAlbumName": "?",
"MediaItemArtist": "?",
"MediaItemName": "?"
}
},
{
"Name": "Name",
"service": "SecuritySystem",
"characteristics": {
"SecuritySystemTargetState": "0,1,2,3,4 (stay arm, away arm, night arm, disarm)",
"SecuritySystemCurrentState": "0,1,2,3,4 (stay armed, away armed, night armed, disarmed, alarm triggered)",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"SecuritySystemAlarmType": "0,1 (no alarm, alarm)"
}
},
{
"Name": "Name",
"service": "Slat",
"characteristics": {
"CurrentSlatState": "0,1,2 (fixed, jammed, swinging)",
"SlatType": "0,1 (horizontal, vertical)",
"TargetTiltAngle": "-90 to 90",
"SwingMode": "0,1 (disabled, enabled)",
"CurrentVerticalTiltAngle": "-90 to 90"
}
},
{
"Name": "Name",
"service": "SmokeSensor",
"characteristics": {
"SmokeDetected": "",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)"
}
},
{
"Name": "Name",
"service": "Speaker",
"characteristics": {
"Mute": "true/false",
"Volume": "0-100"
}
},
{
"Name": "Name",
"service": "StatelessProgrammableSwitch",
"characteristics": {
"ProgrammableSwitchEvent": "0,1,2 (single press, double press, long press)"
}
},
{
"Name": "Name",
"service": "Switch",
"characteristics": {
"On": "true/false"
}
},
{
"Name": "Name",
"service": "TemperatureSensor",
"characteristics": {
"CurrentTemperature": "-100 to 500",
"StatusActive": "true,false",
"StatusFault": "0,1 (no fault, fault)",
"StatusTampered": "0,1 (not tampered, tampered)",
"StatusLowBattery": "0,1 (normal, low)"
}
},
{
"Name": "Name",
"service": "Thermostat",
"characteristics": {
"CurrentHeatingCoolingState": "0,1,2 (off, heat, cool)",
"TargetTemperature": "10-38",
"TemperatureDisplayUnits": "0,1 (celsius, fahrenheit)",
"CurrentTemperature": "-100 to 500",
"TargetHeatingCoolingState": "0,1,2,3 (off, heat, cool, auto)",
"HeatingThresholdTemperature": "0-38",
"TargetRelativeHumidity": "0-100",
"CoolingThresholdTemperature": "10-38",
"CurrentRelativeHumidity": "0-100"
}
},
{
"Name": "Name",
"service": "Valve",
"characteristics": {
"Active": "0, 1 (active, inactive)",
"ValveType": "0,1,2,3 (generic, irrigation, shower head, water faucet)",
"InUse": "0,1 (not in use, in use)",
"StatusFault": "0,1 (no fault, fault)",
"ServiceLabelIndex": "1-255",
"IsConfigured": "0,1 (not configured, is configured)",
"SetDuration": "0-43200",
"RemainingDuration": "0-43200"
}
},
{
"Name": "Name",
"service": "Window",
"characteristics": {
"CurrentPosition": "0-100",
"TargetPosition": "0-100",
"PositionState": "0,1,2 (decreasing, increasing, stopped)",
"HoldPosition": "true/false",
"ObstructionDetected": ""
}
},
{
"Name": "Name",
"service": "WindowCovering",
"characteristics": {
"CurrentPosition": "0-100",
"TargetPosition": "0-100",
"PositionState": "0,1,2 (decreasing, increasing, stopped)",
"CurrentHorizontalTiltAngle": "-90 to 90",
"CurrentVerticalTiltAngle": "-90 to 90",
"ObstructionDetected": "true/false",
"TargetHorizontalTiltAngle": "-90 to 90",
"HoldPosition": "true/false",
"TargetVerticalTiltAngle": "-90 to 90"
}
}
]
}
@bakman2
Copy link
Author

bakman2 commented Jul 28, 2019

Just some pre-made objects with its possible characteristics.
This can be used in combination with homebridge-mqtt or node-red-contrib-homebridge-automation

"true/false" as boolean
values as numbers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment