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);
|
mqttReceiver.registerParser(espThermometerParser);
|
||||||
logger.debug("EspThermometerParser started");
|
logger.debug("EspThermometerParser started");
|
||||||
|
|
||||||
|
HottisFreezerThermometerParser hottisFreezerThermometerParser = new HottisFreezerThermometerParser(config, queue);
|
||||||
|
hottisFreezerThermometerParser.init();
|
||||||
|
mqttReceiver.registerParser(hottisFreezerThermometerParser);
|
||||||
|
logger.debug("HottisFreezerThermometerParser started");
|
||||||
|
|
||||||
mqttReceiver.connect();
|
mqttReceiver.connect();
|
||||||
logger.debug("MqttReceiver connected");
|
logger.debug("MqttReceiver connected");
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user