KitDevice.json and KitDevice_Variable.json

Placeholder for discussions on KitDevice.json and KitDevice_Variable.json

References found on these two files…

The KitDevice.json file starts with a list of DeviceWizardCategories , each with their own ID. To help provide some focussed perspective, lets look at dimmers…(Specific Dimmer Extracts below)

{
  "DeviceWizardCategory": [
    {
      "PK_DeviceWizardCategory": "70",
      "LS_DeviceWizardCategory": "DEVICE_WIZARD_CATEGORY_DIMMERS_LIGHTS"
    },
….

Then there seems to be a load of specific dimmer device related references, what it’s known as (make/model) , the xml device file it needs, (which will have all the required services) and then what category/sub category it is, all linking back to the same "PK_DeviceWizardCategory": "70" ID …

  "KitDevice": [
    {
      "PK_KitDevice": "6201",
      "DeviceFile": "D_DimmableLight1.xml",
      "RequireMac": "0",
      "Protocol": "1",
      "Category": "2",
      "SubCategory": "3",
      "Manufacturer": "Aeotec",
      "Model": "ZW111",
      "Name": {
        "lang_tag": "kitdevice_6201",
        "text": "Aeotec Nano Dimmer"
      },
      "NonSpecific": "0",
      "Invisible": "0",
      "Exclude": "0",
      "ProductID": "111",
      "MfrId": "134",
      "PK_DeviceWizardCategory": "70"
    },
….

That looks to be it from the KitDevice.json, now lets have a look at the KitDevice_Variable.json, which seems to starts off by associating itself with Services, and then defining the defining the variables.

To keep this focussed, lets again look for the Aeotec Nano Dimmer above, which has the "PK_KitDevice": "6201" ID. If i look that up, i find the following…

{
  "KitDevice_Variable": [
    {
      "PK_KitDevice_Variable": "6211",
      "PK_KitDevice": "6201",
      "Service": "urn:micasaverde-com:serviceId:ZWaveDevice1",
      "Variable": "AssociationGroups",
      "Value": "1"
    },
    {
      "PK_KitDevice_Variable": "6221",
      "PK_KitDevice": "6201",
      "Service": "urn:micasaverde-com:serviceId:ZWaveDevice1",
      "Variable": "VariablesSet",
      "Value": "80-Status notification type,1d,3,90- Enable or Disable energy reporting (0-1),1d,,91-Minimum change in wattage for a REPORT (0-60000),2d,25,92-Minimum change in wattage percent for a REPORT,1d,10,120-Configure external switch mode for S1(0-3),1d,,121-Configure external switch mode for S2(0-3),1d,,128-Current working mode (0-2),1d,,129-Dimming principle (0-2),1d,,130-Dimmer load type connected(0-3),1d,,131-Minimum brightness level,1d,,132-Maximum brightness level,1d,"
    },
    {
      "PK_KitDevice_Variable": "6231",
      "PK_KitDevice": "6201",
      "Service": "urn:upnp-org:serviceId:Dimming1",
      "Variable": "TurnOnBeforeDim",
      "Value": "0"
    },

How all this maps to actual z-wave classes and commands I’m not sure yet, but the above is certainly familiar if you have built a plugin before, or when you then look at things like the Advanced and Device Options Tab which are visible via the UI.

As mentioned in one of the linked posts, it does seem to be generated from a database of some description as it has other IDs/references e.g ProductID and MfrId

2 Likes

From what I can tell KitDevice and KitDevice_Variable, is where you ultimately want your z-wave devices listed, as that means Vera will do more of the heavy lifting…

If you have something that’s not listed/supported then you seem to be on your own, however there’s potentially still hope as @therealdb showed…

Add it via the Generic Z-wave option and then use the manufacturers manual and trial an error to get somewhere.

To add to this thread…

The device number, in this case 6201, then has a dedicated json file (wizard_6201.json) , which seems to be the script that would take you through the inclusion / exclusion process etc.

{
  "category_id": "70",
  "wizard": {
    "name": "Nano Dimmer - Aeotec ZW111",
    "countable_steps": 4,
    "delete_step": 100,
    "steps": [
      {
        "id": 1,
        "step_count": 1,
        "template": 1,
        "step_headline": {
          "lang_tag": "ui7_kitdevice_6201_headline",
          "text": "Aeotec Nano Dimmer"
        },
        "text_content": [
          {
            "static_group": 1,
            "group_type": "manual",
            "target": "",
            "group_text": {
              "lang_tag": "",
              "text": ""
            }
          },
          {
            "static_group": 2,
            "group_text": [
              {
                "lang_tag": "ui7_kitdevice_6201_step_1_11",
                "text": "<span style='color: red;'><b style='color: red;'> Warning: </b>Risk of electric shock!</span><br> \nIt is strongly recommended that you consult a qualified electrician to install the Nano Dimmer.<br>\nMake sure to turn off the main power before beginning installation.<br><br>\nFollow the installation manual instructions for wiring."
              },
              {
                "lang_tag": "",
                "text": ""
              }
            ]
          }
        ],
        "images": [
          {
            "static_group": 2,
            "group_image": "aeotec_nano_dimmer_zw111_wiring.jpg"
          }
        ],
        "buttons": [
          {
            "button_id": 1,
            "label": {
              "lang_tag": "ui7_devwiz_btn_exit",
              "text": "Exit"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_exit_wizard",
                  "argument": 2
                }
              }
            ]
          },
          {
            "button_id": 2,
            "label": {
              "lang_tag": "ui7_devwiz_btn_next",
              "text": "Next"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_go_to_step",
                  "argument": "3"
                }
              }
            ]
          }
        ]
      },
      {
        "id": 2,
        "step_count": "",
        "template": 1,
        "text_content": [
          {
            "static_group": 1,
            "group_text": [
              {
                "lang_tag": "",
                "text": ""
              }
            ]
          }
        ],
        "images": [
          {
            "static_group": 1,
            "group_image": ""
          }
        ],
        "buttons": [
          {
            "button_id": 1,
            "label": {
              "lang_tag": "ui7_devwiz_btn_exit",
              "text": "Exit"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_exit_wizard",
                  "argument": 2
                }
              }
            ]
          },
          {
            "button_id": 2,
            "label": {
              "lang_tag": "ui7_devwiz_btn_next",
              "text": "Next"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_go_to_step",
                  "argument": ""
                }
              }
            ]
          }
        ]
      },
      {
        "id": 3,
        "step_count": 2,
        "template": 1,
        "text_content": [
          {
            "static_group": 1,
            "group_text": [
              {
                "lang_tag": "ui7_kitdevice_6201_step_3_01",
                "text": "Make sure to keep the Nano Dimmer exposed until pairing is successful. Press the Next button below to begin pairing.<br><br>\n<span style='color: red;'><b style='color: red;'> Warning: </b>Even when the Nano Dimmer is turned off, voltage may be present on the terminals.</span><br>"
              }
            ]
          },
          {
            "static_group": 2,
            "group_text": [
              {
                "lang_tag": "",
                "text": ""
              }
            ]
          }
        ],
        "images": [
          {
            "static_group": 1,
            "group_image": "aeotec_nano_dimmer_zw111_power.jpg"
          }
        ],
        "buttons": [
          {
            "button_id": 1,
            "label": {
              "lang_tag": "ui7_devwiz_btn_exit",
              "text": "Exit"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_exit_wizard",
                  "argument": 2
                }
              }
            ]
          },
          {
            "button_id": 2,
            "label": {
              "lang_tag": "ui7_devwiz_btn_next",
              "text": "Next"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_go_to_step",
                  "argument": 4
                }
              }
            ]
          }
        ]
      },
      {
        "id": 4,
        "step_count": 3,
        "template": 1,
        "text_content": [
          {
            "static_group": 1,
            "group_text": [
              {
                "lang_tag": "ui7_kitdevice_6201_step_4_01",
                "text": "Turn on the main power to the Nano Dimmer.<br>\nPress or flip the external wall switch connected to the (S1) input of the Nano Dimmer once. If you don't have an external wall switch connected to the (S1) input, carefully press (voltage will be present on terminals) the Action Button once on your Nano Dimmer to begin the pairing process.<br>\nThe LED will blink green for a few seconds then turn solid indicating inclusion is successful."
              }
            ]
          },
          {
            "static_group": 2,
            "group_text": [
              {
                "lang_tag": "ui7_kitdevice_6201_step_4_11",
                "text": "If the LED on your Nano Dimmer turns red for 2 seconds and then returns to a colorful gradient (changing colors), and isn't detected in 60 seconds, click the 'Retry' button below to begin un-pairing it."
              }
            ]
          }
        ],
        "images": [
          {
            "static_group": 1,
            "group_image": "aeotec_nano_dimmer_zw111_pairing.jpg"
          }
        ],
        "auto_command": [
          {
            "command_type": "gateway",
            "action": {
              "type": "include_mode"
            }
          },
          {
            "command_type": "event",
            "event_add": "device_added",
            "action": {
              "type": "action_go_to_step",
              "argument": 5
            }
          }
        ],
        "buttons": [
          {
            "button_id": 1,
            "label": {
              "lang_tag": "ui7_devwiz_btn_exit",
              "text": "Exit"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_exit_wizard",
                  "argument": 2
                }
              }
            ]
          },
          {
            "button_id": 2,
            "label": {
              "lang_tag": "ui7_devwiz_btn_reset",
              "text": "Retry"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_go_to_step",
                  "argument": 6
                }
              }
            ]
          }
        ]
      },
      {
        "id": 5,
        "step_count": 4,
        "template": 3,
        "text_content": [
          {
            "static_group": 1,
            "group_text": [
              {
                "lang_tag": "ui7_install_device_name_room_step",
                "text": "Add a name for the device and assign it to a room."
              },
              {
                "lang_tag": "",
                "text": ""
              }
            ]
          }
        ],
        "images": [
          {
            "static_group": 1,
            "group_image": ""
          }
        ],
        "auto_command": [
          {
            "command_type": "event",
            "event_remove": "device_added"
          },
          {
            "command_type": "event",
            "event_remove": "device_removed"
          }
        ],
        "widgets": [
          "device_type_found"
        ],
        "buttons": [
          {
            "button_id": 1,
            "label": {
              "lang_tag": "ui7_devwiz_btn_finish",
              "text": "Finish"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_exit_wizard",
                  "argument": 2
                }
              }
            ]
          }
        ]
      },
      {
        "id": 6,
        "template": 1,
        "reset_step": 1,
        "text_content": [
          {
            "static_group": 1,
            "group_text": [
              {
                "lang_tag": "ui7_kitdevice_6201_step_6_01",
                "text": "The controller will now begin to un-pair your device."
              },
              {
                "lang_tag": "ui7_kitdevice_6201_step_6_02",
                "text": "Carefully press (voltage will be present on terminals) the Action button once to un-pair your Nano Dimmer. The LED will be in a colorful gradient (changing colors) status indicating it has been successfully unpaired."
              }
            ]
          },
          {
            "static_group": 2,
            "group_text": [
              {
                "lang_tag": "ui7_kitdevice_6201_step_6_11",
                "text": "Click the 'Try Adding It Again' button to restart the pairing process."
              }
            ]
          }
        ],
        "images": [
          {
            "static_group": 1,
            "group_image": "aeotec_nano_dimmer_zw111_unpairing.jpg"
          }
        ],
        "auto_command": [
          {
            "command_type": "gateway",
            "action": {
              "type": "exclude_mode"
            }
          },
          {
            "command_type": "event",
            "event_remove": "device_added"
          },
          {
            "command_type": "event",
            "event_add": "device_removed",
            "action": {
              "type": "action_go_to_step",
              "argument": 1
            }
          }
        ],
        "buttons": [
          {
            "button_id": 1,
            "label": {
              "lang_tag": "ui7_devwiz_btn_exit",
              "text": "Exit"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_exit_wizard",
                  "argument": 2
                }
              }
            ]
          },
          {
            "button_id": 2,
            "label": {
              "lang_tag": "ui7_devwiz_btn_add_again",
              "text": "Try adding it again"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_go_to_step",
                  "argument": 1
                }
              }
            ]
          }
        ]
      },
      {
        "id": 100,
        "template": 1,
        "text_content": [
          {
            "static_group": 1,
            "group_text": [
              {
                "lang_tag": "ui7_devwiz_reset_intro",
                "text": "The controller will now begin the un-pairing process."
              },
              {
                "lang_tag": "ui7_kitdevice_6201_step_6_02",
                "text": "Carefully press (voltage will be present on terminals) the Action button once to un-pair your Nano Dimmer. The LED will be in a colorful gradient (changing colors) status indicating it has been successfully unpaired."
              }
            ]
          }
        ],
        "images": [
          {
            "static_group": 1,
            "group_image": "aeotec_nano_dimmer_zw111_unpairing.jpg"
          }
        ],
        "auto_command": [
          {
            "command_type": "gateway",
            "action": {
              "type": "exclude_mode"
            }
          },
          {
            "command_type": "event",
            "event_add": "device_removed",
            "action": {
              "type": "action_exit_wizard",
              "argument": 3
            }
          }
        ],
        "buttons": [
          {
            "button_id": 1,
            "label": {
              "lang_tag": "ui7_devwiz_btn_exit",
              "text": "Exit"
            },
            "button_command": [
              {
                "command_type": "navigation",
                "action": {
                  "type": "action_exit_wizard",
                  "argument": 2
                }
              }
            ]
          }
        ]
      }
    ]
  }
}