|
33 | 33 | import org.openhab.binding.linky.internal.types.InvalidFrameException;
|
34 | 34 | import org.openhab.binding.linky.internal.types.LinkyChannel;
|
35 | 35 | import org.openhab.binding.linky.internal.types.LinkyTicMode;
|
| 36 | +import org.openhab.binding.linky.internal.types.Meter; |
36 | 37 | import org.openhab.binding.linky.internal.types.Phase;
|
37 | 38 | import org.openhab.binding.linky.internal.types.ValueType;
|
38 | 39 | import org.openhab.core.config.core.Configuration;
|
@@ -285,6 +286,31 @@ protected void handleFrame(LinkyFrame frame) {
|
285 | 286 |
|
286 | 287 | if (channel == LinkyChannel.STGE) {
|
287 | 288 | handleStgePayload(value);
|
| 289 | + } |
| 290 | + if (channel == LinkyChannel.ADSC || channel == LinkyChannel.ADCO) { |
| 291 | + String adco = frame.get(LinkyChannel.ADCO) != null ? frame.get(LinkyChannel.ADCO) |
| 292 | + : frame.get(LinkyChannel.ADSC); |
| 293 | + |
| 294 | + if (adco.length() != 12) { |
| 295 | + |
| 296 | + } else { |
| 297 | + String manufacturer = adco.substring(0, 2); |
| 298 | + String year = adco.substring(2, 4); |
| 299 | + String type = adco.substring(4, 6); |
| 300 | + String matricule = adco.substring(6, 12); |
| 301 | + |
| 302 | + Meter cpt = Meter.getCompteurForId(Integer.parseInt(type)); |
| 303 | + |
| 304 | + updateState(LINKY_LOCAL_METER_BASE_GROUP, CHANNEL_METER_MANUFACTURER, |
| 305 | + new DecimalType(manufacturer)); |
| 306 | + updateState(LINKY_LOCAL_METER_BASE_GROUP, CHANNEL_METER_TYPE, new DecimalType(type)); |
| 307 | + updateState(LINKY_LOCAL_METER_BASE_GROUP, CHANNEL_METER_MATRICULE, |
| 308 | + new StringType(matricule)); |
| 309 | + updateState(LINKY_LOCAL_METER_BASE_GROUP, CHANNEL_METER_CATEGORY, |
| 310 | + new DecimalType(cpt.getCompteurType().getId())); |
| 311 | + updateState(LINKY_LOCAL_METER_BASE_GROUP, CHANNEL_METER_MANUFACTURE_YEAR, |
| 312 | + new StringType("" + (Integer.parseInt(year) + 2000))); |
| 313 | + } |
288 | 314 | } else if (channel == LinkyChannel.RELAIS) {
|
289 | 315 | handleRelaisPayload(value);
|
290 | 316 | } else if (channel == LinkyChannel.PJOURF_PLUS_1) {
|
@@ -319,11 +345,6 @@ protected void handleFrame(LinkyFrame frame) {
|
319 | 345 | }
|
320 | 346 |
|
321 | 347 | updateCalcVars(urms, sinst);
|
322 |
| - |
323 |
| - // updateState(LINKY_DIRECT_MAIN_GROUP, "_ID_D2L", new StringType(payLoad.get("_ID_D2L"))); |
324 |
| - // updateState(LINKY_DIRECT_MAIN_GROUP, "SINSTS", new StringType(payLoad.get("SINSTS"))); |
325 |
| - // updateState(LINKY_DIRECT_MAIN_GROUP, "DATE", new StringType(payLoad.get("DATE"))); |
326 |
| - // updateState(LINKY_DIRECT_MAIN_GROUP, "IRMS1", new StringType(payLoad.get("IRMS1"))); |
327 | 348 | }
|
328 | 349 |
|
329 | 350 | private void updateCalcVars(double urms, double sinst) {
|
|
0 commit comments