diff --git a/front/src/components/device/SelectPilotWireMode.jsx b/front/src/components/device/SelectPilotWireMode.jsx
new file mode 100644
index 0000000000..3a3d8ecf3a
--- /dev/null
+++ b/front/src/components/device/SelectPilotWireMode.jsx
@@ -0,0 +1,62 @@
+import { Component } from 'preact';
+import { Text } from 'preact-i18n';
+import Select from 'react-select';
+import get from 'get-value';
+
+import { PILOT_WIRE_MODE } from '../../../../server/utils/constants';
+import withIntlAsProp from '../../utils/withIntlAsProp';
+
+class SelectPilotWireMode extends Component {
+ handleValueChange = ({ value }) => {
+ this.props.updateValue(value);
+ };
+
+ getOptions = () => {
+ const deviceFeatureOptions = Object.keys(PILOT_WIRE_MODE).map(key => {
+ const value = PILOT_WIRE_MODE[key];
+ return {
+ label: get(this.props.intl.dictionary, `deviceFeatureValue.category.heater.pilot-wire-mode.${value}`, {
+ default: value
+ }),
+ value
+ };
+ });
+
+ this.setState({ deviceFeatureOptions });
+ };
+
+ getSelectedOption = () => {
+ const value = this.props.value;
+
+ if (value !== undefined) {
+ return {
+ label: get(this.props.intl.dictionary, `deviceFeatureValue.category.heater.pilot-wire-mode.${value}`, {
+ default: value
+ }),
+ value
+ };
+ } else {
+ return;
+ }
+ };
+
+ componentDidMount() {
+ this.getOptions();
+ }
+
+ render(props, { deviceFeatureOptions }) {
+ const selectedOption = this.getSelectedOption();
+ return (
+ }
+ />
+ );
+ }
+}
+
+export default withIntlAsProp(SelectPilotWireMode);
diff --git a/front/src/config/i18n/de.json b/front/src/config/i18n/de.json
index 7aa907b04e..2ef3b832c0 100644
--- a/front/src/config/i18n/de.json
+++ b/front/src/config/i18n/de.json
@@ -2853,6 +2853,16 @@
"51": "Doppeltes Drücken"
}
},
+ "heater": {
+ "pilot-wire-mode": {
+ "0": "Aus",
+ "1": "Frostschutz",
+ "2": "Öko",
+ "3": "Komfort -1°C",
+ "4": "Komfort -2°C",
+ "5": "Komfort"
+ }
+ },
"opening-sensor": {
"binary": {
"other": "Kein Wert empfangen",
diff --git a/front/src/config/i18n/en.json b/front/src/config/i18n/en.json
index 10acaf6e99..05c245aa73 100644
--- a/front/src/config/i18n/en.json
+++ b/front/src/config/i18n/en.json
@@ -2853,6 +2853,16 @@
"51": "Double press"
}
},
+ "heater": {
+ "pilot-wire-mode": {
+ "0": "Off",
+ "1": "Frost Protection",
+ "2": "Eco",
+ "3": "Comfort -1°C",
+ "4": "Comfort -2°C",
+ "5": "Comfort"
+ }
+ },
"opening-sensor": {
"binary": {
"other": "No value received",
diff --git a/front/src/config/i18n/fr.json b/front/src/config/i18n/fr.json
index 47dea0ad50..a23d5b0bac 100644
--- a/front/src/config/i18n/fr.json
+++ b/front/src/config/i18n/fr.json
@@ -2853,6 +2853,16 @@
"51": "Pression double"
}
},
+ "heater": {
+ "pilot-wire-mode": {
+ "0": "Off",
+ "1": "Hors Gel",
+ "2": "Eco",
+ "3": "Confort -1°C",
+ "4": "Confort -2°C",
+ "5": "Confort"
+ }
+ },
"opening-sensor": {
"binary": {
"other": "Aucune valeur reçue",
diff --git a/front/src/routes/scene/edit-scene/actions/DeviceSetValue.jsx b/front/src/routes/scene/edit-scene/actions/DeviceSetValue.jsx
index 7b1cd3b295..3f81fb8e6f 100644
--- a/front/src/routes/scene/edit-scene/actions/DeviceSetValue.jsx
+++ b/front/src/routes/scene/edit-scene/actions/DeviceSetValue.jsx
@@ -13,6 +13,7 @@ import TextWithVariablesInjected from '../../../../components/scene/TextWithVari
import '../../../../components/boxs/device-in-room/device-features/style.css';
import style from './DeviceSetValue.css';
import ShutterButtons from '../../../../components/device/ShutterButtons';
+import SelectPilotWireMode from '../../../../components/device/SelectPilotWireMode';
class DeviceSetValue extends Component {
constructor(props) {
@@ -144,6 +145,17 @@ class DeviceSetValue extends Component {
);
}
+ if (this.state.deviceFeature.type === DEVICE_FEATURE_TYPES.HEATER.PILOT_WIRE_MODE) {
+ return (
+