You are logged in as {{user}}. {% if user != 'admin' %} You may not have sufficient permissions for the commands below unless you login as user admin. {% endif %}
{% else %}You are not logged in. This page will probably not render correctly.
{% endif %}In Igor terms, a device is something that Igor may send commands to. It exports some sort of service (for example using http or https) that Igor can contact. If something is a device as well as a sensor it will be listed amongst the devices here.
Name | Hostname | Type(s) | Entry | Status Entry | {% if hasCapabilitySupport %}Secret Shared keys | {% endif %}Actions | OP |
---|---|---|---|---|---|---|---|
{{name}} | {{hostName}} |
{% if device.get('deviceType') %}
{{device.deviceType}}
{% else %}
{% if device.get('isDevice') %}
Device {% endif %} {% if device.get('isSensor') %} Sensor {% endif %} {% if device.get('isPlugin') %} Plugin {% endif %} {% endif %} |
{% for ent in device.get('entry', []) %}
{{ent}} {% endfor %} |
{% for ent in device.get('status', []) %}
{{ent}} {% endfor %} |
{% if hasCapabilitySupport %}
{% if hasAudSecretKey %}
aud={{hostName}} {% endif %} {% if hasSubSecretKey %} sub={{hostName}} {% endif %} |
{% endif %}
{% for action in device.get('actions', []) %}
{% set actionName = igor.database.getValues(action+'/name', token=token) %}
{% set actionNameDisplay = actionName[0][1] if actionName else action %}
{{actionNameDisplay}} {% endfor %} |
{% if hasCapabilitySupport %} {% if hostName and device.get('isDevice') and not hasAudSecretKey %} {% endif %} {% if hostName and (device.get('isDevice') or device.get('isSensor')) and not hasSubSecretKey %} {% endif %} {% if device.get('isSensor') or device.get('isDevice') %} {% endif %} {% endif %} |
Add a new device or sensor to Igor:
{% if hasCapabilitySupport %}A device that wants to contact Igor needs a shared secret key with itself (the device) as subject and Igor as the audience. This key is used by the device to sign the capability, and ensures to igor that the device is the right one.
A device to which Igor needs to send requests needs a shared key with the device as audience and either no subject or Igor itself as the subject. Igor will sign capabilities with this key, and the device can confirm that the request actually comes from Igor.
Igor has the following shared secret keys:
Issuer | Audience | Subject | OP |
---|---|---|---|
{{iss}} | {{aud}} | {{sub}} |
Key | Value |
---|---|
{{k}} | {{v}} |
Note: you must still add the plugin through this link: {{addPluginLink}}.
{% endif %} {% if deviceTokenId %}If the device is accessed over https://{{hostname}} you may still need to create a certificate using the CA plugin.
{% endif %} {% if deviceType in ("activeSensor", "activeSensorDevice") %}You probably want to add actions triggered by this sensor. Unfortunately there is no GUI for that yet.
{% if hasCapabilitySupport %} {% if isDevice %} {% set representing = 'devices/' + name %} {% else %} {% set representing = 'sensors/' + name %} {% endif %}You probably want to add an action capability if this sensors triggers actions that are already in the database.
{% endif %} {% endif %} {% elif action == "addActionCap" %}If device {{name}} {% if hostname %} (hostname {{hostname}}) {% endif %} needs a capability to emit http(s) GET requests to trigger an Igor action use this form:
If device {{name}} {% if hostname %} (hostname {{hostname}}) {% endif %} needs a capability to emit other http(s) requests to Igor action use this form:
{% elif action == "addActionResult" %}Key | Value |
---|---|
aud | {{aud}} |
aud | {{aud}} |
aud | {{aud}} |
Do you want to add a shared secret key for signing capabilities with subject (source) {{sub if sub else 'Igor itself'}} and audience (destination) {{aud if aud else'Igor itself'}}?
{% elif action == "deleteKey" %}Are you sure you want to delete the secret key that allows subject "{{sub}}" to contact audience "{{aud}}" signed by issuer "{{iss}}"? This action cannot be undone.
{% elif action == "deleteDevice" %}Are you sure you want to delete device {{name}} completely? This action cannot be undone.
{% endif %}