Skip to main content

HDFury smart home integration, free and open source

HDFury integration for Gladys Assistant

HDFury HDMI boxes on the local network: signal, audio, inputs, mode, hotplug, reboot.

Follow your HDFury HDMI boxes (VRRoom, Vertex2, Diva, Arcana...) from Gladys, locally, without any cloud: input and output signals (resolution, HDR, colour), audio formats, connected displays and soundbar, operation mode and input of each output, hotplug and reboot.

Important. This integration has never been tested with a real box: it was written after the hdfury library (the one of Home Assistant) and tested against a fake box only. Your feedback is welcome. Unofficial integration, not affiliated with HDFury.

Installation​

  1. Plug the box into your network (LAN port) and give it a fixed IP address in your router (reserved DHCP lease).
  2. Check that its web page opens in a browser at that address (http://192.168.1.60 for example): the integration reads the same interface.
  3. In Gladys, install the HDFury integration, open its configuration and type the IP addresses, separated by commas (port 80 by default, another one as 192.168.1.60:8080).
  4. The boxes appear in the Discovery tab: create them.

Each box is identified by its serial number (read from its brdinfo page, as Home Assistant does): its address may change, type the new one then. A box whose serial number is unreadable is not added (the integration status says so, tried again every minute at most). The device name uses the host name of the box (HDFury VRROOM-02).

What you get​

FeatureGladys typeNote
Onlinebinary (read only)1 when the box answered the last read
Operation modedropdownMode 0 to 5 (splitter, matrix...), VRRoom
Input of TX0, input of TX1dropdownInput 0 to 3, or a copy of the other output
Hotplugbuttonthe sources and displays handshake again
Rebootbuttonrefused while the "Allow rebooting" option is off
Input RX0, RX1 signaltext (read only)for example 4K59.937 593MHz 422 BT2020 12b 2.2
Output TX0, TX1 signaltext (read only)resolution, rate, colour, depth, HDR
Audio TX0, TX1, audio output, eARCtext (read only)for example bitstream 48kHz
Display TX0, TX1, audio devicetext (read only)what the display or soundbar announces (EDID)
Audio formats TX0, TX1, audio outputtext (read only)the audio formats announced

The texts are the box's own, in English. A box offers only the features its info page holds (a Diva or an Arcana fewer than a VRRoom); a feature that appeared is never removed afterwards. No switch: an "everything off" of a voice assistant or a scene never reboots a box.

Commands​

Before each command, the brdinfo page of the box is read again: its serial number must be the device's. Another box at that address: nothing is sent, and the address is forgotten. An unreadable serial number: nothing is sent (identity not checked), but the address is kept; at a background read, only "Online" is then published (the texts read are not credited to the box) and the status says so. The same box typed under two addresses stays at the first one, and the status says so.

  • Input of TX0 / TX1: the inputs are read again just before; the box receives both outputs together (insel), the other output sent back as it is (only when it is a known value; two outputs copying each other are refused). Already selected: nothing is sent.
  • Operation mode: sent after the identity is read again.
  • For the input and the mode, the info page is read again within the same command (2 seconds after sending when time allows, else as late as possible): the command is a success only when the value read is the one asked; otherwise, or when there is no time left to read it, it is reported "sent, without confirmation".
  • Hotplug: sent after the identity is read again; there is nothing to read back: success is the box's acknowledgement (HTTP 200 answer).
  • Reboot: off by default. Tick "Allow rebooting the boxes from Gladys"; the option is checked again just before sending (unticking it while a command waits cancels it). At most one reboot per box every 2 minutes: its time is written to the data folder before sending (if the write fails, nothing is sent), and holds across a restart of the integration. Success is the box's acknowledgement (HTTP 200 answer). A reboot cuts the picture and the sound for a while.

Every command is answered within 4 seconds (Gladys waits 5 seconds). A command that left without an answer from the box in time is reported "sent, without confirmation"; a command that could not leave is reported "nothing sent". The box is read again 2.5 seconds after each command (the reference library waits 2 seconds after a command before reading), 45 seconds after a reboot.

Configuration button​

  • Check the boxes: the state of each box. A box read less than an interval ago is not read again: the answer gives the last read and its age.

Refresh, status and limits​

  • Each box is read every 30 seconds by default (15 to 600), in two requests (brdinfo, then the info page), never faster: neither a reconnection to Gladys, nor saving an unchanged configuration, nor the button, nor a restart of the integration (the time of the last attempt is kept in the data folder) reads sooner.
  • A box that does not answer shows "Online" 0, keeps its last texts, and is named in the integration status.
  • An answer larger than 32 KB, or that is not a JSON object, counts as "does not answer". Texts are cleaned (control characters removed, 200 characters at most).
  • The states sent to Gladys stay under 240 a minute for the whole integration (Gladys accepts 300); what does not fit goes at the next read.

Data and privacy​

The interface of the box has no password: the integration asks for none. It keeps in /data/hdfury.json the known boxes (serial number, address, port, host name, model, firmware, features offered, time of the last reboot sent) and the time of the last read. Nothing leaves your local network.

Known limits​

  • Not yet the settings of the configuration page of the box (automatic input switching, HTPC mode, CEC, OLED, relay, audio mute...).
  • The relay of the box is deliberately not offered (it may drive a device plugged into it).
  • Never tested with a real box: real answers may differ.

Configuration settings​

These are the settings HDFury asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
Your HDFury boxes, on your local networksectionNoInput and output signals (resolution, HDR, colour), audio formats, connected displays, operation mode and input of each output, hotplug and reboot of each HDFury box (VRRoom, Vertex2, Diva, Arcana...), through the HTTP interface of the box, without any cloud. Give each box a fixed IP address in your router and type it below; the boxes then appear in the Discovery tab. Reboot is a button, disabled until you allow it below. Never tested with a real box. Unofficial integration, not affiliated with HDFury.
IP addresses of the boxesstringNoSeparated by commas, for example 192.168.1.60, 192.168.1.61. Port 80 by default (another one: 192.168.1.60:8080).
Allow rebooting the boxes from GladysbooleanNoOff by default: the "Reboot" button is refused. On, the button, a scene or a dashboard can reboot a box, which cuts the picture and the sound for a while. At most one reboot per box every 2 minutes.
Refresh interval (s)numberNoHow often each box is read, in seconds (15 to 600).

How to install HDFury in Gladys​

  1. In Gladys, open Integrations: HDFury appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/lm1lc3n7/gladys-hdfury:0.1.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/LM1LC3N7/gladys-hdfury.

HDFury requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

HDFury is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by LM1LC3N7, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂