[New device support]: TRV3RF SALUS

Open
#33,657 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
50/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
typescript
Domain
embedded-iot

Research direction

The reporter's external definition for model TRV3RF (vendor SALUS) is in the issue body and maps endpoints 1, 2 and 6 with thermostat, battery and temperature extends. Start by finding how existing SALUS or thermostat devices are declared in the zigbee-herdsman-converters device files, then add the TRV3RF entry there. Done means the device shows as supported with its heating setpoint, system mode and both temperature readings exposed, confirmed against the JSON payload in the issue.

Written by the indexing model from the issue text.

Description

new device support
Link

https://saluscontrols.com/fr/produit/vanne-thermostatique-de-radiateur-intelligente-trv3rf/

Database entry

0x001e5e0902c6f338

Zigbee2MQTT version

2.14.2

External definition
import * as m from 'zigbee-herdsman-converters/lib/modernExtend';

export default {
    zigbeeModel: ['TRV3RF'],
    model: 'TRV3RF',
    vendor: 'SALUS',
    description: 'Automatically generated definition',
    extend: [m.deviceEndpoints({"endpoints":{"1":1,"2":2,"6":6},"multiEndpointSkip":["local_temperature","occupied_heating_setpoint","occupied_cooling_setpoint","system_mode","running_state","keypad_lockout","temperature_display_mode","programming_operation_mode"]}), m.battery(), m.identify(), m.thermostat({"localTemperature":{},"runningState":{"values":["idle","heat"]},"setpoints":{"values":{"occupiedHeatingSetpoint":{"min":7,"max":30,"step":0.5}}},"systemMode":{"values":["off","heat"]}}), m.thermostatUi(), m.temperature({"endpointNames":["1","2"]})],
};
What does/doesn't work with the external definition?
Image Image

{
"device": {
"applicationVersion": 0,
"dateCode": "20250627",
"friendlyName": "0x001e5e0902c6f338",
"hardwareVersion": 197,
"ieeeAddr": "0x001e5e0902c6f338",
"manufacturerID": 4216,
"manufacturerName": "SALUS",
"model": "TRV3RF",
"networkAddress": 43907,
"powerSource": "Battery",
"stackVersion": 0,
"type": "EndDevice",
"zclVersion": 3
},
"last_seen": "2026-11-09T13:58:35.254Z",
"linkquality": 54,
"battery": 82,
"local_temperature": 25.75,
"occupied_heating_setpoint": 7,
"system_mode": "heat",
"running_state": "idle",
"keypad_lockout": "unlock",
"temperature_1": 26.6,
"temperature_2": 25.68,
"temperature_display_mode": "celsius"
}

Notes

No response

Dominant language
TypeScript
Stars
15.8k
Forks
2.1k
Avg merge
1d 6h
Merged PRs (30d)
38

Getting set up

Open in Codespaces

Starts the project's dev container in your browser, under your own GitHub account.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Koenkk/zigbee2mqtt

All issues in Koenkk/zigbee2mqtt

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.