Skip to content

house.devices

Non-Zigbee devices such as NixOS hosts and ESP32 hardware. 16 options.

Type: attribute set of (submodule)

Default: { }

Declared in: options/devices.nix

Enables this device to be monitored.

Type: boolean

Default: true

Example: false

Declared in: options/devices.nix

Material Design icon name representing this device.

Type: string

Default: "mdi:duck"

Example: "mdi:toilet"

Declared in: options/devices.nix

Device IP address

Type: string

Example: "192.168.1.210"

Declared in: options/devices.nix

Room where this device is located

Type: one of “bedroom”, “hallway”, “kitchen”, “livingroom”, “other”, “tv-area”, “wc”

Example: "livingroom"

Declared in: options/devices.nix

Define custom controls surfaced as widgets in the GNOME panel detail view. Each key is a field name present at Mosquitto BASE_TOPIC/<device_name>.

Type: attribute set of (submodule)

Default: { }

Declared in: options/devices.nix

house.devices.<name>.controls.<name>.actions

Section titled “house.devices.<name>.controls.<name>.actions”

Actions executed when this control changes. The new value is available as $VALUE (and as {value} inside non-shell actions). $KEY, $DEVICE, $IP and $MQTT_PAYLOAD are also set. Leave empty for read-only sensor controls.

Type: list of (string or (submodule))

Default: [ ]

Example:

[
{
command = ''
'
curl -s -X POST "http://$IP/api/settings/mic/volume/$VALUE"
'';
type = "shell";
}
]

Declared in: options/devices.nix

house.devices.<name>.controls.<name>.description

Section titled “house.devices.<name>.controls.<name>.description”

Optional description of this control action.

Type: null or string

Default: null

Example: "Control the display brightness."

Declared in: options/devices.nix

Material Design icon name representing this state/value.

Type: string

Default: "mdi:duck"

Example: "mdi:toilet"

Declared in: options/devices.nix

Maximum value

Type: signed integer

Default: 100

Example: 1000

Declared in: options/devices.nix

Minimum value

Type: signed integer

Default: 0

Example: 0

Declared in: options/devices.nix

Widget type rendered in the frontend.

Type: one of “bool”, “slider”, “sensor”

Example: "slider"

Declared in: options/devices.nix

house.devices.<name>.controls.<name>.values

Section titled “house.devices.<name>.controls.<name>.values”

List of allowed values, restricting this control action to only send one of these values.

Type: list of string

Default: [ ]

Example:

[
"0"
"1"
"10"
"20"
]

Declared in: options/devices.nix

State endpoint configuration for this device.

Type: submodule

Default: { }

Example:

{
endpoint = "/api/sensors";
refresh = 60;
}

Declared in: options/devices.nix

State JSON endpoint — extension refetches this after every control action so the frontend reflects the new value immediately without waiting for the next MQTT publish.

Type: null or string

Default: null

Example: "/api/sensors"

Declared in: options/devices.nix

Interval, in seconds, between automatic refreshes of the JSON fetched from state.endpoint.

Set to null to disable automatic polling — the endpoint will then only be fetched on demand (e.g. immediately after a control action is triggered from the frontend).

Type: null or (positive integer, meaning >0)

Default: null

Example: 45

Declared in: options/devices.nix