Skip to main content

RFPlayer smart home integration, free and open source

RFPlayer integration for Gladys Assistant

Ziblue RFPlayer 433/868 MHz dongle: sensors, remotes, alarms and RF actuators.

Connect a Ziblue / GCE Electronics RFPlayer RFP1000 (433 and 868 MHz) to Gladys: radio sensors and detectors, remotes and wall switches, and the receivers the dongle drives (plugs, lights, Somfy RTS shutters, gates).

1. Expose the dongle over TCP​

The integration runs in an isolated container that cannot open a USB port. The RFPlayer stays plugged into a machine of your network (the Gladys host, a Raspberry Pi…), and a small "serial-to-TCP bridge" makes its serial port reachable on the network. The data is the same, at 115200 bauds.

Find the stable name of the dongle:

ls -l /dev/serial/by-id/

With ser2net 4 (Debian 11+, Raspberry Pi OS)​

sudo apt install ser2net

/etc/ser2net.yaml:

connection: &rfplayer
accepter: tcp,4000
enable: on
options:
kickolduser: true
connector: serialdev,/dev/serial/by-id/usb-XXXX-if00-port0,115200n81,local

Replace the /dev/serial/by-id/... path with yours, then sudo systemctl restart ser2net.

With ser2net 3​

/etc/ser2net.conf:

4000:raw:0:/dev/serial/by-id/usb-XXXX-if00-port0:115200 8DATABITS NONE 1STOPBIT

With socat (quick test)​

socat TCP-LISTEN:4000,reuseaddr,fork FILE:/dev/serial/by-id/usb-XXXX-if00-port0,b115200,raw,echo=0

The bridge has no password: whoever reaches the port drives your radio devices. Keep it on your LAN, never forward it to the Internet. With ser2net you can bind it to one address: accepter: tcp,192.168.1.10,4000.

2. Configure the integration​

FieldWhat to put
Bridge hostIP of the machine running the bridge. For the Gladys host itself, its LAN IP — localhost is the container itself.
Bridge TCP port4000 in the examples above.
Protocols receivedLeave empty for all. Untick what you do not use to hear fewer neighbours.
Minimum radio quality0 keeps everything; 3 or 4 drops the far-away (neighbours') emitters.
Jamming detection threshold7 by default; 1 = very sensitive, 10 = needs a jammer on both bands, 0 = off.
Identify Oregon / OWL probes"Address" (default) or "Model and channel" — see below.
ActuatorsThe receivers the dongle drives — see section 4.
Detector typesWhich detector is a door contact, a smoke detector… — see section 3.

Click Test the connection: it shows the model, the firmware, the answer time and the protocols received, plus any error in your settings.

3. Sensors, detectors and remotes (heard)​

Nothing to declare: as soon as the dongle hears a device, it appears in the Discovery tab. Create the ones that are yours — the neighbours' probes are heard too, they simply stay there. Values and scene triggers only reach the devices you created.

  • Oregon Scientific probes: temperature, humidity, pressure, wind speed and direction, rain, UV. OWL meters: power (per phase on CM180i) and energy. Oregon probes draw a new random address at every battery change. With "Address", two identical probes on the same channel are told apart, but a battery change creates a new device. With "Model and channel", the device survives battery changes, as long as each probe of a model is set on its own channel. Changing this setting creates new devices.
  • Visonic and X2D detectors: alarm, tamper and low battery. On the air a door contact looks like a motion detector, so tell the integration in Detector types, e.g. VISONIC 1166992416 = opening; X2D 7894561 = smoke (kinds: motion, opening, smoke, leak, vibration, presence). The id is shown in the widget and in the device parameters. Motion and smoke detectors never send "it stopped": their alarm returns to 0 after 1 to 2 minutes.
  • KD101 smoke detectors: the alert.
  • Remotes and wall switches (Chacon/DiO, X10, Domia, Blyss, Somfy RTS, X2D, Visonic keyfobs, FS20…): the device shows the last on/off order (up/my/down for an RTS remote), and every press fires the A radio remote is pressed scene trigger with the exact order.

4. Actuators (driven by the dongle)​

A receiver cannot be discovered over the air: declare it. The easiest way is the Pair an actuator button:

  1. put the receiver in learning mode (press the button of a Chacon plug, hold PROG on the original remote of a Somfy RTS shutter until it jogs…);
  2. fill in a name, the kind, the protocol and a free address (0 to 255, or A1 to P16), then run the action;
  3. the dongle sends the pairing frame, and the receiver is added to the Actuators field. Create it from the Discovery tab.

You can also type the field by hand, entries separated by ;:

Living room shutter = shutter RTS 1; Desk lamp = switch CHACON 12; Hall = light X10 A3; Gate = button RTS 2 qualifier=1
KindWhat it does
switchOn / off.
lightOn / off and brightness (protocols with a dim order: X10, Chacon dimmers, FS20…).
shutterOpen / stop / close. On Somfy RTS, stop is the "my" button.
buttonA single order (gate, garage door, bell). An RTS gate needs qualifier=1.

The address is not the one of your old remote: the dongle combines it with its own identifier, so ID 1 of your RFPlayer never drives a neighbour's device. Radio orders are never acknowledged: Gladys shows what it sent.

5. Scenes and dashboard (Gladys 5.1+)​

Triggers:

  • A radio remote is pressed — filter on the remote and the order; variables: name, order, protocol, address.
  • A radio detector is triggered — alarm or tamper.
  • A radio device battery is low.
  • Radio jamming — started or stopped. A jammer is the classic way to blind a wireless alarm: build a notification scene on it.

Actions:

  • Send a radio order — any order to any address, even one not declared (a second channel, the RTS "my"…). Its sent output is false when the dongle is not connected.
  • Simulate a radio jamming — to test your alarm scene end to end.

The RFPlayer radio widget shows whether the dongle is connected, the jamming state, the counters and the last emitters heard, with a badge telling whether each one is already a device in Gladys.

Troubleshooting​

  • "RFPlayer unreachable": check the bridge (systemctl status ser2net), the IP and port, and that no other program holds the serial port (kickolduser helps with ser2net). From another machine: nc 192.168.1.10 4000 then type ZIA++HELLO + Enter: the dongle answers ZIA--Welcome to Ziblue Dongle….
  • Connected, then unreachable every minute: the bridge port is open but the dongle does not answer PING — unplugged, or another baud rate.
  • A remote is not seen: is its protocol ticked in "Protocols received"? Is the minimum quality too high? The widget lists what is heard, created or not.
  • A shutter does not move: it must be paired once (section 4). For RTS, the shutter must be in programming mode (PROG held on its remote) when the pairing frame is sent.
  • Too many devices in Discovery: raise the minimum radio quality, untick the protocols you do not use.

Configuration settings​

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

SettingTypeRequiredDescription
Getting startedsectionNoThe integration runs in a sandboxed container that cannot open a USB port: plug the RFPlayer into a machine of your network and expose its serial port over TCP with ser2net (or socat, an ESP-Link…), at 115200 bauds. Then type that address below. The documentation gives a ready-to-use ser2net configuration.
Bridge hoststringYesIP address or name of the machine running the serial-to-TCP bridge. To reach the Gladys host itself, use its LAN IP (not localhost: the integration has its own network).
Bridge TCP portnumberNoTCP port the bridge listens on (ser2net example: 4000).
Protocols receivedmulti_selectNoRadio protocols the dongle decodes. Leave everything unticked to receive them all. Unticking the protocols you do not use reduces false detections and the neighbours heard.
Minimum radio qualitynumberNoFrames heard with a quality below this value (1 to 10, as graded by the dongle) are ignored: raise it to 3 or 4 to stop picking up the neighbours. 0 keeps everything.
Jamming detection thresholdnumberNoSensitivity of the jamming detector built into the dongle: 1 is very sensitive (false alarms), 10 needs a jammer on both bands, 0 turns it off. The dongle default is 7.
Identify Oregon / OWL probes byselectNoTheir random address changes at every battery change. "Address" tells apart two identical probes on the same channel, but creates a new device after a battery change. "Model and channel" survives battery changes, as long as each probe of a model has its own channel. Changing this creates new devices.
ActuatorsstringNoReceivers the dongle drives, separated by ";": Name = kind PROTOCOL address. Kinds: switch, light, shutter, button. Address: 0 to 255, or A1 to P16. Options: qualifier=n, burst=n. The "Pair an actuator" button fills this field for you.
Detector typesstringNoOn the air a door contact and a motion detector look the same. Tell which is which, separated by ";": PROTOCOL id = kind (motion, opening, smoke, leak, vibration, presence). The id is shown in the widget. Unlisted detectors are motion detectors (smoke for KD101).

How to install RFPlayer in Gladys​

  1. In Gladys, open Integrations: RFPlayer appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/prohand/gladys-rfplayer:2.0.0), 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/prohand/gladys-rfplayer.

RFPlayer 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​

RFPlayer 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 prohand, 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 🙂