freezer thermometer added
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
@ -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");
|
||||
}
|
||||
|
Reference in New Issue
Block a user