freezer thermometer added

This commit is contained in:
Wolfgang Hottgenroth
2017-11-29 19:49:35 +01:00
parent c2b9affbaa
commit 809653812a
2 changed files with 66 additions and 0 deletions

View File

@ -0,0 +1,61 @@
package de.hottis.measurementCollector;
import java.lang.reflect.Constructor;
import java.time.LocalDateTime;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import com.json.parsers.JSONParser;
import com.json.parsers.JsonParserFactory;
import de.hottis.common.MyQueue;
import de.hottis.smarthomelib.ADataObject;
import de.hottis.smarthomelib.TemperatureDataObject;
import java.util.ArrayList;
public class HottisFreezerThermometerParser extends AMessageParser {
/*
{ "metadata": { "device": "ModbusHub", "Slave": "Thermometer", "connectionValid": "1", "requests": 151, "successfulRequests": 150, "failedRequests": 1, "exceptionErrors": 0, "retries": 0}, "data": {"n1": 194825, "u1": 1.86, "r1": 1035.02, "offset1": -0.24, "factor1": 1.00, "tRaw1": 9.09, "t1": 9.07, "alpha1": 1.00, "n2": 198656, "u2": 1.89, "r2": 951.77, "offset2": -0.31, "factor2": 0.99, "tRaw2": -12.52, "t2": -12.52, "alpha2": 1.00, "uptime": 3183}}
*/
static final String TOPIC = "IoT/Measurement/ModbusHub";
private final JSONParser jsonParser;
private HashMap<String, ADataParser> dataParsers;
public HottisFreezerThermometerParser(Properties config, MyQueue<ADataObject> queue) {
super(TOPIC, config, queue);
JsonParserFactory jsonParserFactory = JsonParserFactory.getInstance();
jsonParser = jsonParserFactory.newJsonParser();
}
@Override
public void execute(LocalDateTime timestamp, String msgPayload) {
try {
@SuppressWarnings("rawtypes")
Map payloadMap = jsonParser.parseJson(msgPayload);
ArrayList<ADataObject> temperatureList = new ArrayList<>();
@SuppressWarnings("rawtypes")
double tFreezer = Double.parseDouble((String)(((Map)(payloadMap.get("data"))).get("t2")));
TemperatureDataObject tdo = new TemperatureDataObject(timestamp, "Freezer", tFreezer);
temperatureList.add(tdo);
@SuppressWarnings("rawtypes")
double tFridge = Double.parseDouble((String)(((Map)(payloadMap.get("data"))).get("t1")));
tdo = new TemperatureDataObject(timestamp, "Fridge", tFridge);
temperatureList.add(tdo);
enqueue(temperatureList);
} catch (Exception e) {
logger.error("Exception when handling Modbus thermometer message: ", e);
}
}
}

View File

@ -40,6 +40,11 @@ public class MeasurementCollector {
mqttReceiver.registerParser(espThermometerParser);
logger.debug("EspThermometerParser started");
HottisFreezerThermometerParser hottisFreezerThermometerParser = new HottisFreezerThermometerParser(config, queue);
hottisFreezerThermometerParser.init();
mqttReceiver.registerParser(hottisFreezerThermometerParser);
logger.debug("HottisFreezerThermometerParser started");
mqttReceiver.connect();
logger.debug("MqttReceiver connected");
}