house.devices
Non-Zigbee devices such as NixOS hosts and ESP32 hardware. 16 options.
General
Section titled “General”house.devices
Section titled “house.devices”Type: attribute set of (submodule)
Default: { }
Declared in: options/devices.nix
house.devices.<name>.enable
Section titled “house.devices.<name>.enable”Enables this device to be monitored.
Type: boolean
Default: true
Example: false
Declared in: options/devices.nix
house.devices.<name>.icon
Section titled “house.devices.<name>.icon”Material Design icon name representing this device.
Type: string
Default: "mdi:duck"
Example: "mdi:toilet"
Declared in: options/devices.nix
house.devices.<name>.ip
Section titled “house.devices.<name>.ip”Device IP address
Type: string
Example: "192.168.1.210"
Declared in: options/devices.nix
house.devices.<name>.room
Section titled “house.devices.<name>.room”Room where this device is located
Type: one of “bedroom”, “hallway”, “kitchen”, “livingroom”, “other”, “tv-area”, “wc”
Example: "livingroom"
Declared in: options/devices.nix
controls
Section titled “controls”house.devices.<name>.controls
Section titled “house.devices.<name>.controls”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
house.devices.<name>.controls.<name>.icon
Section titled “house.devices.<name>.controls.<name>.icon”Material Design icon name representing this state/value.
Type: string
Default: "mdi:duck"
Example: "mdi:toilet"
Declared in: options/devices.nix
house.devices.<name>.controls.<name>.max
Section titled “house.devices.<name>.controls.<name>.max”Maximum value
Type: signed integer
Default: 100
Example: 1000
Declared in: options/devices.nix
house.devices.<name>.controls.<name>.min
Section titled “house.devices.<name>.controls.<name>.min”Minimum value
Type: signed integer
Default: 0
Example: 0
Declared in: options/devices.nix
house.devices.<name>.controls.<name>.type
Section titled “house.devices.<name>.controls.<name>.type”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
house.devices.<name>.state
Section titled “house.devices.<name>.state”State endpoint configuration for this device.
Type: submodule
Default: { }
Example:
{ endpoint = "/api/sensors"; refresh = 60;}Declared in: options/devices.nix
house.devices.<name>.state.endpoint
Section titled “house.devices.<name>.state.endpoint”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
house.devices.<name>.state.refresh
Section titled “house.devices.<name>.state.refresh”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
