{% extends "base.html" %} {% block title %}{{ device_id }} — standalone{% endblock %} {% block content %}

Device {{ device_id }}

{% if load_diagnostic %} {% endif %} {% if action_error %} {% if action_error.get("reason") in ("binding_absent", "binding_stale") %} {# The binding refusals offer the way out (#385 §1.4): the scan-and-pick flow. #}

Scan and re-pick the endpoint

{% endif %} {% endif %}
{% if connected %} connected
{% else %} disconnected
{% endif %}
{% if scenarios %}

Scenario

The switch applies to the next connection — a live connection keeps its transport.

{% endif %} {% if presets %}

Presets

{# Selection performs no device I/O; the apply form is the write action. #}

Applying validates the preset, checks the device firmware before any write, then writes and re-reads each setting.

{% endif %} {% if has_presentation %}

Presentation pages

The plugin's declared manifest renders at its own pages; this page keeps the session controls.

{% else %}

Readings

Declared parameters: {%- for parameter in parameters %} {{ parameter.name }}{% if parameter.unit %} ({{ parameter.unit }}){% endif %}{{ "," if not loop.last }}{% endfor %}

{% include "readings.html" %}
{% endif %} {% endblock %}