2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.teleinfo.internal;
15 import java.util.stream.IntStream;
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.openhab.core.thing.ThingTypeUID;
21 * The {@link TeleinfoBindingConstants} class defines common constants, which are
22 * used across the whole binding.
24 * @author Nicolas SIBERIL - Initial contribution
27 public class TeleinfoBindingConstants {
29 private TeleinfoBindingConstants() {
32 private static final String BINDING_ID = "teleinfo";
34 // List of all Thing Type UIDs
35 public static final ThingTypeUID THING_TYPE_SERIAL_CONTROLLER = new ThingTypeUID(BINDING_ID, "serialcontroller");
36 public static final String THING_SERIAL_CONTROLLER_CHANNEL_INVALID_FRAME_COUNTER = "invalidFrameCounter";
38 // List of commons channel ids
39 public static final String CHANNEL_LAST_UPDATE = "lastUpdate";
40 // List of HC frames channel ids
41 public static final String CHANNEL_HC_FRAME_HCHC = "hchc";
42 public static final String CHANNEL_HC_FRAME_HCHP = "hchp";
43 public static final String CHANNEL_HHPHC = "hhphc";
44 // List of BASE frames channel ids
45 public static final String CHANNEL_BASE_FRAME_BASE = "base";
46 // List of TEMPO frames channel ids
47 public static final String CHANNEL_TEMPO_FRAME_BBRHPJR = "bbrhpjr";
48 public static final String CHANNEL_TEMPO_FRAME_BBRHCJR = "bbrhcjr";
49 public static final String CHANNEL_TEMPO_FRAME_BBRHPJW = "bbrhpjw";
50 public static final String CHANNEL_TEMPO_FRAME_BBRHCJW = "bbrhcjw";
51 public static final String CHANNEL_TEMPO_FRAME_BBRHPJB = "bbrhpjb";
52 public static final String CHANNEL_TEMPO_FRAME_BBRHCJB = "bbrhcjb";
53 public static final String CHANNEL_TEMPO_FRAME_DEMAIN = "demain";
54 public static final String CHANNEL_TEMPO_FRAME_PROGRAMME_CIRCUIT_1 = "programmeCircuit1";
55 public static final String CHANNEL_TEMPO_FRAME_PROGRAMME_CIRCUIT_2 = "programmeCircuit2";
56 // List of EJP frames channel ids
57 public static final String CHANNEL_EJP_FRAME_PEJP = "pejp";
58 public static final String CHANNEL_EJP_FRAME_EJPHPM = "ejphpm";
59 public static final String CHANNEL_EJP_FRAME_EJPHN = "ejphn";
60 // List of CBEMM Channel ids
61 public static final String CHANNEL_ISOUSC = "isousc";
62 public static final String CHANNEL_PTEC = "ptec";
63 public static final String CHANNEL_CBEMM_IMAX = "imax";
64 public static final String CHANNEL_CBEMM_ADPS = "adps";
65 public static final String CHANNEL_CBEMM_IINST = "iinst";
66 public static final String CHANNEL_MOTDETAT = "motdetat";
67 // List of CBEMM EVOLUTION ICC Channel ids
68 public static final String CHANNEL_PAPP = "papp";
69 // List of CBETM Channel ids
70 public static final String CHANNEL_CBETM_IINST1 = "iinst1";
71 public static final String CHANNEL_CBETM_IINST2 = "iinst2";
72 public static final String CHANNEL_CBETM_IINST3 = "iinst3";
73 public static final String CHANNEL_CBETM_LONG_IMAX1 = "imax1";
74 public static final String CHANNEL_CBETM_LONG_IMAX2 = "imax2";
75 public static final String CHANNEL_CBETM_LONG_IMAX3 = "imax3";
76 public static final String CHANNEL_CBETM_LONG_PMAX = "pmax";
77 public static final String CHANNEL_CBETM_LONG_PPOT = "ppot";
78 public static final String CHANNEL_CBETM_SHORT_ADIR1 = "adir1";
79 public static final String CHANNEL_CBETM_SHORT_ADIR2 = "adir2";
80 public static final String CHANNEL_CBETM_SHORT_ADIR3 = "adir3";
81 // List of Linky standard mode channel ids
82 public static final String CHANNEL_LSM_NGTF = "commonLSMGroup#ngtf";
83 public static final String CHANNEL_LSM_LTARF = "commonLSMGroup#ltarf";
84 public static final String CHANNEL_LSM_EAST = "commonLSMGroup#east";
85 public static final String CHANNEL_LSM_EASF01 = "commonLSMGroup#easf01";
86 public static final String CHANNEL_LSM_EASF02 = "commonLSMGroup#easf02";
87 public static final String CHANNEL_LSM_EASF03 = "commonLSMGroup#easf03";
88 public static final String CHANNEL_LSM_EASF04 = "commonLSMGroup#easf04";
89 public static final String CHANNEL_LSM_EASF05 = "commonLSMGroup#easf05";
90 public static final String CHANNEL_LSM_EASF06 = "commonLSMGroup#easf06";
91 public static final String CHANNEL_LSM_EASF07 = "commonLSMGroup#easf07";
92 public static final String CHANNEL_LSM_EASF08 = "commonLSMGroup#easf08";
93 public static final String CHANNEL_LSM_EASF09 = "commonLSMGroup#easf09";
94 public static final String CHANNEL_LSM_EASF10 = "commonLSMGroup#easf10";
95 public static final String CHANNEL_LSM_EASD01 = "commonLSMGroup#easd01";
96 public static final String CHANNEL_LSM_EASD02 = "commonLSMGroup#easd02";
97 public static final String CHANNEL_LSM_EASD03 = "commonLSMGroup#easd03";
98 public static final String CHANNEL_LSM_EASD04 = "commonLSMGroup#easd04";
99 public static final String CHANNEL_LSM_IRMS1 = "commonLSMGroup#irms1";
100 public static final String CHANNEL_LSM_URMS1 = "commonLSMGroup#urms1";
101 public static final String CHANNEL_LSM_PREF = "commonLSMGroup#pref";
102 public static final String CHANNEL_LSM_PCOUP = "commonLSMGroup#pcoup";
103 public static final String CHANNEL_LSM_SINSTS = "commonLSMGroup#sinsts";
104 public static final String CHANNEL_LSM_SMAXSN = "commonLSMGroup#smaxsn";
105 public static final String CHANNEL_LSM_SMAXSN_MINUS_1 = "commonLSMGroup#smaxsnMinus1";
106 public static final String CHANNEL_LSM_CCASN = "commonLSMGroup#ccasn";
107 public static final String CHANNEL_LSM_CCASN_MINUS_1 = "commonLSMGroup#ccasnMinus1";
108 public static final String CHANNEL_LSM_UMOY1 = "commonLSMGroup#umoy1";
109 public static final String CHANNEL_LSM_STGE = "commonLSMGroup#stge";
110 public static final String CHANNEL_LSM_DPM1 = "commonLSMGroup#dpm1";
111 public static final String CHANNEL_LSM_FPM1 = "commonLSMGroup#fpm1";
112 public static final String CHANNEL_LSM_DPM2 = "commonLSMGroup#dpm2";
113 public static final String CHANNEL_LSM_FPM2 = "commonLSMGroup#fpm2";
114 public static final String CHANNEL_LSM_DPM3 = "commonLSMGroup#dpm3";
115 public static final String CHANNEL_LSM_FPM3 = "commonLSMGroup#fpm3";
116 public static final String CHANNEL_LSM_MSG1 = "commonLSMGroup#msg1";
117 public static final String CHANNEL_LSM_MSG2 = "commonLSMGroup#msg2";
118 public static final String CHANNEL_LSM_PRM = "commonLSMGroup#prm";
119 public static final String[] CHANNELS_LSM_RELAIS = IntStream.range(1, 9).mapToObj(i -> "commonLSMGroup#relais" + i)
120 .toArray(String[]::new);
121 public static final String CHANNEL_LSM_NTARF = "commonLSMGroup#ntarf";
122 public static final String CHANNEL_LSM_NJOURF = "commonLSMGroup#njourf";
123 public static final String CHANNEL_LSM_NJOURF_PLUS_1 = "commonLSMGroup#njourfPlus1";
124 public static final String CHANNEL_LSM_PJOURF_PLUS_1 = "commonLSMGroup#pjourfPlus1";
125 public static final String CHANNEL_LSM_PPOINTE = "commonLSMGroup#ppointe";
127 public static final String CHANNEL_LSM_IRMS2 = "threePhasedLSMGroup#irms2";
128 public static final String CHANNEL_LSM_IRMS3 = "threePhasedLSMGroup#irms3";
129 public static final String CHANNEL_LSM_URMS2 = "threePhasedLSMGroup#urms2";
130 public static final String CHANNEL_LSM_URMS3 = "threePhasedLSMGroup#urms3";
131 public static final String CHANNEL_LSM_SINSTS1 = "threePhasedLSMGroup#sinsts1";
132 public static final String CHANNEL_LSM_SINSTS2 = "threePhasedLSMGroup#sinsts2";
133 public static final String CHANNEL_LSM_SINSTS3 = "threePhasedLSMGroup#sinsts3";
134 public static final String CHANNEL_LSM_SMAXSN1 = "threePhasedLSMGroup#smaxsn1";
135 public static final String CHANNEL_LSM_SMAXSN2 = "threePhasedLSMGroup#smaxsn2";
136 public static final String CHANNEL_LSM_SMAXSN3 = "threePhasedLSMGroup#smaxsn3";
137 public static final String CHANNEL_LSM_SMAXSN1_MINUS_1 = "threePhasedLSMGroup#smaxsn1Minus1";
138 public static final String CHANNEL_LSM_SMAXSN2_MINUS_1 = "threePhasedLSMGroup#smaxsn2Minus1";
139 public static final String CHANNEL_LSM_SMAXSN3_MINUS_1 = "threePhasedLSMGroup#smaxsn3Minus1";
140 public static final String CHANNEL_LSM_UMOY2 = "threePhasedLSMGroup#umoy2";
141 public static final String CHANNEL_LSM_UMOY3 = "threePhasedLSMGroup#umoy3";
143 public static final String CHANNEL_LSM_EAIT = "producerLSMGroup#eait";
144 public static final String CHANNEL_LSM_ERQ1 = "producerLSMGroup#erq1";
145 public static final String CHANNEL_LSM_ERQ2 = "producerLSMGroup#erq2";
146 public static final String CHANNEL_LSM_ERQ3 = "producerLSMGroup#erq3";
147 public static final String CHANNEL_LSM_ERQ4 = "producerLSMGroup#erq4";
148 public static final String CHANNEL_LSM_SINSTI = "producerLSMGroup#sinsti";
149 public static final String CHANNEL_LSM_SMAXIN = "producerLSMGroup#smaxin";
150 public static final String CHANNEL_LSM_SMAXIN_MINUS_1 = "producerLSMGroup#smaxinMinus1";
151 public static final String CHANNEL_LSM_CCAIN = "producerLSMGroup#ccain";
152 public static final String CHANNEL_LSM_CCAIN_MINUS_1 = "producerLSMGroup#ccainMinus1";
154 public static final String CHANNEL_LSM_DATE = "commonLSMGroup#date";
155 public static final String CHANNEL_LSM_SMAXSN_DATE = "commonLSMGroup#smaxsnDate";
156 public static final String CHANNEL_LSM_SMAXSN_MINUS_1_DATE = "commonLSMGroup#smaxsnMinus1Date";
157 public static final String CHANNEL_LSM_CCASN_DATE = "commonLSMGroup#ccasnDate";
158 public static final String CHANNEL_LSM_CCASN_MINUS_1_DATE = "commonLSMGroup#ccasnMinus1Date";
159 public static final String CHANNEL_LSM_UMOY1_DATE = "commonLSMGroup#umoy1Date";
160 public static final String CHANNEL_LSM_DPM1_DATE = "commonLSMGroup#dpm1Date";
161 public static final String CHANNEL_LSM_FPM1_DATE = "commonLSMGroup#fpm1Date";
162 public static final String CHANNEL_LSM_DPM2_DATE = "commonLSMGroup#dpm2Date";
163 public static final String CHANNEL_LSM_FPM2_DATE = "commonLSMGroup#fpm2Date";
164 public static final String CHANNEL_LSM_DPM3_DATE = "commonLSMGroup#dpm3Date";
165 public static final String CHANNEL_LSM_FPM3_DATE = "commonLSMGroup#fpm3Date";
167 public static final String CHANNEL_LSM_SMAXIN_DATE = "producerLSMGroup#smaxinDate";
168 public static final String CHANNEL_LSM_SMAXIN_MINUS_1_DATE = "producerLSMGroup#smaxinMinus1Date";
169 public static final String CHANNEL_LSM_CCAIN_DATE = "producerLSMGroup#ccainDate";
170 public static final String CHANNEL_LSM_CCAIN_MINUS_1_DATE = "producerLSMGroup#ccainMinus1Date";
172 public static final String CHANNEL_LSM_SMAXSN1_DATE = "threePhasedLSMGroup#smaxsn1Date";
173 public static final String CHANNEL_LSM_SMAXSN2_DATE = "threePhasedLSMGroup#smaxsn2Date";
174 public static final String CHANNEL_LSM_SMAXSN3_DATE = "threePhasedLSMGroup#smaxsn3Date";
175 public static final String CHANNEL_LSM_SMAXSN1_MINUS_1_DATE = "threePhasedLSMGroup#smaxsn1Minus1Date";
176 public static final String CHANNEL_LSM_SMAXSN2_MINUS_1_DATE = "threePhasedLSMGroup#smaxsn2Minus1Date";
177 public static final String CHANNEL_LSM_SMAXSN3_MINUS_1_DATE = "threePhasedLSMGroup#smaxsn3Minus1Date";
178 public static final String CHANNEL_LSM_UMOY2_DATE = "threePhasedLSMGroup#umoy2Date";
179 public static final String CHANNEL_LSM_UMOY3_DATE = "threePhasedLSMGroup#umoy3Date";
181 public static final String NOT_A_CHANNEL = "";
183 public static final String THING_ELECTRICITY_METER_PROPERTY_ADCO = "adco";
185 public static final ThingTypeUID THING_HC_CBEMM_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
186 "cbemm_hc_electricitymeter");
188 public static final ThingTypeUID THING_BASE_CBEMM_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
189 "cbemm_base_electricitymeter");
191 public static final ThingTypeUID THING_EJP_CBEMM_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
192 "cbemm_ejp_electricitymeter");
194 public static final ThingTypeUID THING_TEMPO_CBEMM_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
195 "cbemm_tempo_electricitymeter");
197 public static final ThingTypeUID THING_HC_CBEMM_EVO_ICC_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
198 "cbemm_evolution_icc_hc_electricitymeter");
200 public static final ThingTypeUID THING_BASE_CBEMM_EVO_ICC_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
201 "cbemm_evolution_icc_base_electricitymeter");
203 public static final ThingTypeUID THING_EJP_CBEMM_EVO_ICC_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
204 "cbemm_evolution_icc_ejp_electricitymeter");
206 public static final ThingTypeUID THING_TEMPO_CBEMM_EVO_ICC_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
207 "cbemm_evolution_icc_tempo_electricitymeter");
209 public static final ThingTypeUID THING_HC_CBETM_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
210 "cbetm_hc_electricitymeter");
212 public static final ThingTypeUID THING_BASE_CBETM_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
213 "cbetm_base_electricitymeter");
215 public static final ThingTypeUID THING_EJP_CBETM_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
216 "cbetm_ejp_electricitymeter");
218 public static final ThingTypeUID THING_TEMPO_CBETM_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
219 "cbetm_tempo_electricitymeter");
221 public static final ThingTypeUID THING_LSMT_PROD_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
222 "lsmt_prod_electricitymeter");
224 public static final ThingTypeUID THING_LSMM_PROD_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
225 "lsmm_prod_electricitymeter");
227 public static final ThingTypeUID THING_LSMT_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
228 "lsmt_electricitymeter");
230 public static final ThingTypeUID THING_LSMM_ELECTRICITY_METER_TYPE_UID = new ThingTypeUID(BINDING_ID,
231 "lsmm_electricitymeter");
233 public static final String ERROR_OFFLINE_SERIAL_NOT_FOUND = "@text/teleinfo.thingstate.serial_notfound";
234 public static final String ERROR_OFFLINE_SERIAL_INUSE = "@text/teleinfo.thingstate.serial_inuse";
235 public static final String ERROR_OFFLINE_SERIAL_UNSUPPORTED = "@text/teleinfo.thingstate.serial_unsupported";
236 public static final String ERROR_OFFLINE_SERIAL_LISTENERS = "@text/teleinfo.thingstate.serial_listeners";
237 public static final String ERROR_OFFLINE_CONTROLLER_OFFLINE = "@text/teleinfo.thingstate.controller_offline";
238 public static final String ERROR_UNKNOWN_RETRY_IN_PROGRESS = "@text/teleinfo.thingstate.controller_unknown_retry_inprogress";