Appearance
Reference — EnOcean SFSP receptor
The MUXEN devices this gateway publishes
| Device | Function | Instance | What it carries |
|---|---|---|---|
| SFSP receptor | 22 | configured (InstanceNum, 0…62) | the gateway itself: how many transmitters are loaded, and the identifier of any transmitter heard but not paired |
| SFSP switch | 23 | the pairing slot number, 0…62 | one per paired transmitter: which buttons are down, and the radio signal strength |
MQTT topics on the Brain follow device/<function>/<instance>/<frame>, so device/23/5/life is the switch paired in slot 5.
The gateway publishes nothing else, and commands nothing. No MUXEN frame addressed to it changes anything on the radio side.
SFSP receptor — device/22/<instance>/life
| Field | Meaning |
|---|---|
NbEmulatedInter | how many pairing slots were loaded at the last startup |
counter | rolling 0…15, one step per frame — a gap means a lost frame |
Published only when the instance is 0…62. A gateway parked on 63 publishes nothing.
SFSP receptor — device/22/<instance>/state
| Field | Meaning |
|---|---|
UnknowInterId | the 32-bit identifier of the transmitter just heard |
Emitted only when a switch telegram arrives from a transmitter that is not in any pairing slot — or, if the report-every-transmitter routine is on, from every transmitter. This is the frame the pairing procedure reads.
SFSP switch — device/23/<slot>/life
| Field | Meaning |
|---|---|
bp0 … bp3 | the four buttons of the transmitter |
bp4 … bp7 | present in the frame, never set by this firmware |
rssi | the radio module's reading for the last telegram received from this transmitter; 0 until the transmitter is first heard |
counter | rolling 0…15, one step per frame |
The button fields report the most recent radio event, not a cumulative set of held buttons. A press reports its button, or its pair of buttons when two are pressed together; a release, or any code this firmware does not recognise, reports all four clear.
Parameters — SFSP receptor (function 22)
| Parameter | Type | Default | Meaning |
|---|---|---|---|
InstanceNum | 0…62 | 255 | the gateway's own instance. Any value above 62 is replaced at startup by 63, the parking address: reachable over UDS, publishing nothing |
SfspInter0 … SfspInter62 | 32-bit | 0 | the EnOcean identifier of the transmitter paired in this slot; 0 = empty. The slot number is the MUXEN instance of that switch |
FonctionGroup | read-only | 22 | the function this device answers on |
ProductId, HardwareId, SoftwareId, SoftwareVersion | read-only | see Reference |
Changes to the pairing slots take effect at the next restart — write with --reboot.
Pairing storage
| Where it lives | in the gateway's own non-volatile configuration |
| Slots | 63, SfspInter0 … SfspInter62 |
| One slot holds | one 32-bit EnOcean transmitter identifier |
| Empty slot | 0 |
| Slot number means | the MUXEN instance of the switch published for that transmitter |
| Read at | startup only — the list is built once, when the firmware boots |
| Survives | a firmware update, and a reset of the instance number |
| Erased by | a reset of the device configuration (muxen-uds factory --reset-device-configuration), which clears all 63 slots and keeps the instance number |
| Held by the switches | nothing — a switch is not commissioned, paired or bound in any way. It broadcasts its identifier, and the gateway decides what to do with it |
Because nothing is stored in the switch, a switch can be moved to another boat, or replaced by writing the new identifier into the slot the old one used. Nothing on the switch has to be reset.
Slots are independent: clearing one leaves the others where they are, and there is no renumbering.
A transmitter written into two slots is only served by the lowest-numbered of them; the other publishes a switch whose buttons never move.
Routines
| Routine | Payload | Effect |
|---|---|---|
| 1 | 0001 | restore the instance number to its default |
| 1 | any bit above bit 0 | restore every other parameter — erases all 63 pairing slots, and keeps the instance number |
| 2 | 01 / 00 | report the identifier of every transmitter heard, not only unpaired ones. Not saved; off after a restart |
Routine 2 replaces the usual "locate" animation on this firmware.
Timings
| SFSP switch frame published every | 500 ms per paired transmitter |
| …plus | immediately on every radio event from that transmitter |
| Buttons release themselves after | 5 s without a further telegram from that transmitter |
| SFSP receptor life frame every | 1 s |
The periodic switch frames are spread 7 ms apart across the period, so that a fully loaded gateway does not put 63 frames on the bus at once.
The EnOcean side
| Receiver | built into the gateway |
| Telegrams read | broadcast switch telegrams: a 32-bit transmitter identifier and a button code |
| Telegrams written | none — the gateway only listens |
| Everything else | ignored, including EnOcean sensors |
| Buttons understood | four, singly or two at a time |
Limits
| Paired transmitters | 63 (slots 0…62) |
| Buttons reported per transmitter | 4 |
| Usable instance numbers | 0…62 (63 is the parking address) |
Known limitations
- The button state is the last event, not a set of held buttons. Two buttons held from separate presses report only the second.
bp4…bp7are always clear.- A duplicate identifier across two slots is served by the lowest-numbered slot only.
- The pairing list is read at startup. Nothing takes effect until the gateway restarts.
Firmware
| Product ID | Hardware ID | Software ID | Version | Image |
|---|---|---|---|---|
| 010010033 | 990010062 | 990050024 | 6.1 | 010010033-app_sfsp_enocean-firmware.srec |
Updating is the same on every gateway: Loading and updating a firmware. An update does not touch the pairing slots.
