Skip to content

Commit

Permalink
feat(add): Yali Parada Plus (#8732)
Browse files Browse the repository at this point in the history
  • Loading branch information
sdebruyn authored Feb 5, 2025
1 parent 0f59d49 commit f6c2922
Show file tree
Hide file tree
Showing 2 changed files with 64 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/devices/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,7 @@ import plaid from './plaid';
import plugwise from './plugwise';
import profalux from './profalux';
import prolight from './prolight';
import purmo from './purmo';
import pushok from './pushok';
import qa from './qa';
import qmotion from './qmotion';
Expand Down Expand Up @@ -544,6 +545,7 @@ export default [
...plugwise,
...profalux,
...prolight,
...purmo,
...pushok,
...qmotion,
...qoto,
Expand Down
62 changes: 62 additions & 0 deletions src/devices/purmo.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import fz from '../converters/fromZigbee';
import tz from '../converters/toZigbee';
import * as exposes from '../lib/exposes';
import * as reporting from '../lib/reporting';
import {DefinitionWithExtend} from '../lib/types';

const e = exposes.presets;

const definitions: DefinitionWithExtend[] = [
{
fingerprint: [{modelID: 'PUMM01102', manufacturerName: 'computime'}],
model: 'Yali Parada Plus',
vendor: 'Purmo/Radson',
description: 'Electric oil-filled radiator',
extend: [],
fromZigbee: [fz.thermostat],
toZigbee: [
tz.thermostat_occupancy,
tz.thermostat_local_temperature,
tz.thermostat_occupied_heating_setpoint,
tz.thermostat_unoccupied_heating_setpoint,
tz.thermostat_system_mode,
tz.thermostat_running_mode,
tz.thermostat_running_state,
tz.thermostat_max_heat_setpoint_limit,
tz.thermostat_local_temperature_calibration,
],
meta: {},
exposes: [
e
.climate()
.withSetpoint('occupied_heating_setpoint', 5, 30, 0.5)
.withSetpoint('unoccupied_heating_setpoint', 5, 30, 0.5)
.withSystemMode(['heat', 'off'])
.withLocalTemperature()
.withLocalTemperatureCalibration()
.withRunningState(['idle', 'heat'])
.withRunningMode(['off', 'heat']),
e.max_heat_setpoint_limit(5, 30, 0.5),
],
configure: async (device, coordinatorEndpoint) => {
const endpoint = device.getEndpoint(1);
const binds = ['genBasic', 'genIdentify', 'genTime', 'hvacThermostat', 'hvacUserInterfaceCfg'];
await reporting.bind(endpoint, coordinatorEndpoint, binds);

await reporting.thermostatSystemMode(endpoint);
await reporting.thermostatTemperature(endpoint);
await reporting.thermostatRunningState(endpoint);
await reporting.thermostatRunningMode(endpoint);
await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
await reporting.thermostatUnoccupiedHeatingSetpoint(endpoint);
await reporting.thermostatOccupancy(endpoint);
await reporting.thermostatTemperatureCalibration(endpoint);

device.powerSource = 'Mains (single phase)';
device.save();
},
},
];

export default definitions;
module.exports = definitions;

0 comments on commit f6c2922

Please sign in to comment.