mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2024-11-16 18:39:09 -07:00
Update zigbee-herdsman-converters to 12.0.225 (#4850)
* Update zigbee-herdsman-converters to 12.0.225 * Update homeassistant.js Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
This commit is contained in:
parent
195d56d4ef
commit
2ee3b5f12b
@ -65,24 +65,6 @@ const cfg = {
|
|||||||
value_template: '{{ value_json.click }}',
|
value_template: '{{ value_json.click }}',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
'sensor_power': {
|
|
||||||
type: 'sensor',
|
|
||||||
object_id: 'power',
|
|
||||||
discovery_payload: {
|
|
||||||
unit_of_measurement: 'W',
|
|
||||||
icon: 'mdi:flash',
|
|
||||||
value_template: '{{ value_json.power }}',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'sensor_energy': {
|
|
||||||
type: 'sensor',
|
|
||||||
object_id: 'energy',
|
|
||||||
discovery_payload: {
|
|
||||||
unit_of_measurement: 'kWh',
|
|
||||||
icon: 'mdi:power-plug',
|
|
||||||
value_template: '{{ value_json.energy }}',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
'sensor_brightness': {
|
'sensor_brightness': {
|
||||||
type: 'sensor',
|
type: 'sensor',
|
||||||
object_id: 'brightness',
|
object_id: 'brightness',
|
||||||
@ -187,6 +169,7 @@ const cfg = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* istanbul ignore next */
|
||||||
const climate = (minTemp=7, maxTemp=30, temperatureStateProperty='occupied_heating_setpoint',
|
const climate = (minTemp=7, maxTemp=30, temperatureStateProperty='occupied_heating_setpoint',
|
||||||
tempStep=1, systemModes=['off', 'auto', 'heat'], fanModes=[], holdModes=[],
|
tempStep=1, systemModes=['off', 'auto', 'heat'], fanModes=[], holdModes=[],
|
||||||
temperatureLowStateTopic=false, temperatureHighStateTopic=false, endpoint=null ) => {
|
temperatureLowStateTopic=false, temperatureHighStateTopic=false, endpoint=null ) => {
|
||||||
@ -278,47 +261,6 @@ const climate = (minTemp=7, maxTemp=30, temperatureStateProperty='occupied_heati
|
|||||||
|
|
||||||
// Map Home Assistant configurations to devices.
|
// Map Home Assistant configurations to devices.
|
||||||
const manualMaping = {
|
const manualMaping = {
|
||||||
'1TST-EU': [climate(), cfg.sensor_battery],
|
|
||||||
'AV2010/32': [climate(7, 30, 'occupied_heating_setpoint', 0.5), cfg.sensor_battery],
|
|
||||||
'SPZB0001': [climate(5, 30, 'occupied_heating_setpoint', 0.5), cfg.sensor_battery],
|
|
||||||
'ST218': [
|
|
||||||
climate(5, 30, 'occupied_heating_setpoint', 0.5),
|
|
||||||
cfg.sensor_local_temperature,
|
|
||||||
cfg.lock_keypad_lockout,
|
|
||||||
],
|
|
||||||
'TH1123ZB': [
|
|
||||||
climate(7, 30, 'occupied_heating_setpoint', 0.5), cfg.sensor_local_temperature,
|
|
||||||
cfg.lock_keypad_lockout, cfg.sensor_power, cfg.sensor_energy,
|
|
||||||
],
|
|
||||||
'TH1124ZB': [
|
|
||||||
climate(7, 30, 'occupied_heating_setpoint', 0.5), cfg.sensor_local_temperature,
|
|
||||||
cfg.lock_keypad_lockout, cfg.sensor_power, cfg.sensor_energy,
|
|
||||||
],
|
|
||||||
'TH1300ZB': [
|
|
||||||
climate(7, 30, 'occupied_heating_setpoint', 0.5), cfg.sensor_local_temperature,
|
|
||||||
cfg.lock_keypad_lockout,
|
|
||||||
],
|
|
||||||
'TH1400ZB': [climate()],
|
|
||||||
'TH1500ZB': [climate()],
|
|
||||||
'Zen-01-W': [climate(10, 30, 'occupied_heating_setpoint', 0.5)],
|
|
||||||
'UK7004240': [climate(), cfg.sensor_battery],
|
|
||||||
'WV704R0A0902': [climate()],
|
|
||||||
'STZB402': [
|
|
||||||
climate(5, 30, 'occupied_heating_setpoint', 0.5),
|
|
||||||
cfg.sensor_local_temperature,
|
|
||||||
cfg.lock_keypad_lockout,
|
|
||||||
],
|
|
||||||
'SMT402': [
|
|
||||||
climate(5, 30, 'occupied_heating_setpoint', 0.5),
|
|
||||||
cfg.sensor_local_temperature,
|
|
||||||
cfg.lock_keypad_lockout,
|
|
||||||
],
|
|
||||||
'SMT402AD': [
|
|
||||||
climate(5, 30, 'occupied_heating_setpoint', 0.5),
|
|
||||||
cfg.sensor_local_temperature,
|
|
||||||
cfg.lock_keypad_lockout,
|
|
||||||
],
|
|
||||||
'SLR1b': [climate()],
|
|
||||||
'GS361A-H04': [
|
'GS361A-H04': [
|
||||||
cfg.lock_child_lock,
|
cfg.lock_child_lock,
|
||||||
cfg.switch_window_detection,
|
cfg.switch_window_detection,
|
||||||
@ -350,9 +292,6 @@ const manualMaping = {
|
|||||||
climate(5, 35, 'current_heating_setpoint', 0.5,
|
climate(5, 35, 'current_heating_setpoint', 0.5,
|
||||||
['off', 'heat', 'auto'], [], ['none', 'away']),
|
['off', 'heat', 'auto'], [], ['none', 'away']),
|
||||||
],
|
],
|
||||||
'ZK03840': [climate()],
|
|
||||||
'U86KWF-ZPSJ': [climate(5, 30, 'current_heating_setpoint', 0.5)],
|
|
||||||
'D3-DPWK-TY': [climate(5, 30, 'current_heating_setpoint', 0.5)],
|
|
||||||
'BHT-002-GCLZB': [
|
'BHT-002-GCLZB': [
|
||||||
cfg.lock_child_lock, climate(5, 30, 'current_heating_setpoint', 1, ['off', 'heat'], [], ['hold', 'program']),
|
cfg.lock_child_lock, climate(5, 30, 'current_heating_setpoint', 1, ['off', 'heat'], [], ['hold', 'program']),
|
||||||
],
|
],
|
||||||
@ -368,7 +307,6 @@ const manualMaping = {
|
|||||||
cfg.binary_sensor_battery_low,
|
cfg.binary_sensor_battery_low,
|
||||||
climate(5, 30, 'current_heating_setpoint', 0.5, ['off', 'heat'], [], ['manual', 'auto']),
|
climate(5, 30, 'current_heating_setpoint', 0.5, ['off', 'heat'], [], ['manual', 'auto']),
|
||||||
],
|
],
|
||||||
'HY08WE': [climate(5, 30, 'current_heating_setpoint', 0.5)],
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const defaultStatusTopic = 'homeassistant/status';
|
const defaultStatusTopic = 'homeassistant/status';
|
||||||
@ -463,18 +401,74 @@ class HomeAssistant extends Extension {
|
|||||||
command_topic_prefix: expose.endpoint ? expose.endpoint : undefined,
|
command_topic_prefix: expose.endpoint ? expose.endpoint : undefined,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
} else if (expose.type === 'climate') {
|
||||||
|
assert(!expose.endpoint, `Endpoint not supported for climate type`);
|
||||||
|
const setpointProperties = ['occupied_heating_setpoint', 'current_heating_setpoint'];
|
||||||
|
const setpoint = expose.features.find((f) => setpointProperties.includes(f.name));
|
||||||
|
assert(setpoint, 'No setpoint found');
|
||||||
|
const temperature = expose.features.find((f) => f.name === 'local_temperature');
|
||||||
|
assert(temperature, 'No temperature found');
|
||||||
|
const mode = expose.features.find((f) => f.name === 'system_mode');
|
||||||
|
assert(mode, 'No mode found');
|
||||||
|
const state = expose.features.find((f) => f.name === 'running_state');
|
||||||
|
assert(state, 'No state found');
|
||||||
|
|
||||||
|
discoveryEntry = {
|
||||||
|
type: 'climate',
|
||||||
|
object_id: expose.endpoint ? `climate_${expose.endpoint}` : 'climate',
|
||||||
|
discovery_payload: {
|
||||||
|
// Static
|
||||||
|
state_topic: false,
|
||||||
|
temperature_unit: 'C',
|
||||||
|
// Setpoint
|
||||||
|
temp_step: setpoint.value_step,
|
||||||
|
min_temp: setpoint.value_min.toString(),
|
||||||
|
max_temp: setpoint.value_max.toString(),
|
||||||
|
temperature_command_topic: setpoint.property,
|
||||||
|
temperature_state_template: `{{ value_json.${setpoint.property} }}`,
|
||||||
|
temperature_state_topic: true,
|
||||||
|
// Temperature
|
||||||
|
current_temperature_topic: true,
|
||||||
|
current_temperature_template: `{{ value_json.${temperature.property} }}`,
|
||||||
|
// Mode
|
||||||
|
mode_state_topic: true,
|
||||||
|
mode_state_template: `{{ value_json.${mode.property} }}`,
|
||||||
|
modes: mode.values,
|
||||||
|
mode_command_topic: true,
|
||||||
|
// State
|
||||||
|
action_topic: true,
|
||||||
|
action_template: `{% set values = ` +
|
||||||
|
`{'idle':'off','heat':'heating','cool':'cooling','fan only':'fan'}` +
|
||||||
|
` %}{{ values[value_json.${state.property}] }}`,
|
||||||
|
},
|
||||||
|
};
|
||||||
} else if (expose.type === 'lock') {
|
} else if (expose.type === 'lock') {
|
||||||
assert(!expose.endpoint, `Endpoint not supported for lock type`);
|
assert(!expose.endpoint, `Endpoint not supported for lock type`);
|
||||||
|
const state = expose.features.find((f) => f.name === 'state');
|
||||||
|
assert(state, 'No state found');
|
||||||
discoveryEntry = {
|
discoveryEntry = {
|
||||||
type: 'lock',
|
type: 'lock',
|
||||||
object_id: 'lock',
|
object_id: 'lock',
|
||||||
discovery_payload: {
|
discovery_payload: {
|
||||||
command_topic: true,
|
command_topic: true,
|
||||||
value_template: '{{ value_json.state }}',
|
value_template: `{{ value_json.${state.property} }}`,
|
||||||
state_locked: 'LOCK',
|
|
||||||
state_unlocked: 'UNLOCK',
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (state.property === 'keypad_lockout') {
|
||||||
|
// deprecated: keypad_lockout is messy, but changing is breaking
|
||||||
|
discoveryEntry.discovery_payload.payload_lock = state.value_on;
|
||||||
|
discoveryEntry.discovery_payload.payload_unlock = state.value_off;
|
||||||
|
discoveryEntry.discovery_payload.state_topic = true;
|
||||||
|
discoveryEntry.object_id = 'keypad_lock';
|
||||||
|
} else {
|
||||||
|
discoveryEntry.discovery_payload.state_locked = state.value_on;
|
||||||
|
discoveryEntry.discovery_payload.state_unlocked = state.value_off;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state.property !== 'state') {
|
||||||
|
discoveryEntry.discovery_payload.command_topic_postfix = state.property;
|
||||||
|
}
|
||||||
} else if (expose.type === 'cover') {
|
} else if (expose.type === 'cover') {
|
||||||
assert(!expose.endpoint, `Endpoint not supported for cover type`);
|
assert(!expose.endpoint, `Endpoint not supported for cover type`);
|
||||||
const hasPosition = expose.features.find((e) => e.name === 'position');
|
const hasPosition = expose.features.find((e) => e.name === 'position');
|
||||||
@ -582,6 +576,7 @@ class HomeAssistant extends Extension {
|
|||||||
requested_brightness_percent: {icon: 'mdi:brightness-5'},
|
requested_brightness_percent: {icon: 'mdi:brightness-5'},
|
||||||
eco2: {icon: 'mdi:molecule-co2'},
|
eco2: {icon: 'mdi:molecule-co2'},
|
||||||
co2: {icon: 'mdi:molecule-co2'},
|
co2: {icon: 'mdi:molecule-co2'},
|
||||||
|
local_temperature: {device_class: 'temperature'},
|
||||||
};
|
};
|
||||||
|
|
||||||
assert(!expose.endpoint, `Endpoint not supported for numeric type`);
|
assert(!expose.endpoint, `Endpoint not supported for numeric type`);
|
||||||
|
6
npm-shrinkwrap.json
generated
6
npm-shrinkwrap.json
generated
@ -14576,9 +14576,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"zigbee-herdsman-converters": {
|
"zigbee-herdsman-converters": {
|
||||||
"version": "12.0.224",
|
"version": "12.0.225",
|
||||||
"resolved": "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.224.tgz",
|
"resolved": "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.225.tgz",
|
||||||
"integrity": "sha512-Iej1T5biRrXuKOdC6bsT8HDpayZSao/I4DWNstYlSyJhpa3QM0vZLbS4QexVmkG35gebrs1MSC7RVT4kUqizrw==",
|
"integrity": "sha512-jm3R5de5lQu8mh6WZFQ44vxrhnlqYjHX+NFF2983y+K0yLf1ZSWWtqna54TM+JM18drOeMEEYlDONAZijkzFqg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"axios": "^0.21.0",
|
"axios": "^0.21.0",
|
||||||
"buffer-crc32": "^0.2.13",
|
"buffer-crc32": "^0.2.13",
|
||||||
|
@ -53,7 +53,7 @@
|
|||||||
"winston-syslog": "^2.4.4",
|
"winston-syslog": "^2.4.4",
|
||||||
"ws": "^7.3.1",
|
"ws": "^7.3.1",
|
||||||
"zigbee-herdsman": "0.13.26",
|
"zigbee-herdsman": "0.13.26",
|
||||||
"zigbee-herdsman-converters": "12.0.224",
|
"zigbee-herdsman-converters": "12.0.225",
|
||||||
"zigbee2mqtt-frontend": "0.2.68"
|
"zigbee2mqtt-frontend": "0.2.68"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
Loading…
Reference in New Issue
Block a user