This commit is contained in:
Wolfgang Hottgenroth
2017-11-15 18:06:56 +01:00
parent 7df95c52b3
commit 632782cf15
18 changed files with 115 additions and 10 deletions

View File

@ -16,11 +16,17 @@ public class MBusParser extends AMessageParser {
static final String TOPIC = "IoT/Measurement/MeterbusHub";
private final JSONParser jsonParser;
private final HottisFourChannelThermometer hottisFourChannelThermometer;
private final FinderOnePhasePowerMeter finderOnePhasePowerMeter;
private final FinderThreePhasePowerMeter finderThreePhasePowerMeter;
public MBusParser() {
super(TOPIC);
JsonParserFactory jsonParserFactory = JsonParserFactory.getInstance();
jsonParser = jsonParserFactory.newJsonParser();
hottisFourChannelThermometer = new HottisFourChannelThermometer();
finderOnePhasePowerMeter = new FinderOnePhasePowerMeter();
finderThreePhasePowerMeter = new FinderThreePhasePowerMeter();
}
@Override
@ -40,8 +46,33 @@ public class MBusParser extends AMessageParser {
variableDataStructure.decode();
List<DataRecord> dataRecords = variableDataStructure.getDataRecords();
for (DataRecord dataRecord : dataRecords) {
System.out.println(dataRecord.getScaledDataValue() + " " + dataRecord.getUnit().getUnit());
//for (DataRecord dataRecord : dataRecords) {
// System.out.println(dataRecord.getScaledDataValue() + " " + dataRecord.getUnit().getUnit());
//}
List<ADataObject> measurementItems;
switch (name) {
case "thermom.":
measurementItems = hottisFourChannelThermometer.parse(timestamp, name, dataRecords);
break;
case "light":
case "computer":
case "freezer":
case "dryer":
case "laundry":
case "dishwasher":
measurementItems = finderOnePhasePowerMeter.parse(timestamp, name.substring(0,1).toUpperCase() + name.substring(1).toLowerCase(), dataRecords);
break;
case "electricity":
measurementItems = finderThreePhasePowerMeter.parse(timestamp, "Total", dataRecords);
break;
default:
System.out.println("unknown name");
measurementItems = null;
}
for (ADataObject ado : measurementItems) {
System.out.println(ado);
}
} catch (Exception e) {
System.out.println("Exception when handling mbus message: " + e);