Added power, voltage and current to MQTT parsing
This commit is contained in:
parent
f68ec9a8e9
commit
17026db07e
11 changed files with 484 additions and 42 deletions
|
|
@ -1,10 +1,7 @@
|
|||
package se.hal.plugin.mqtt.detector;
|
||||
|
||||
import org.junit.Test;
|
||||
import se.hal.plugin.mqtt.device.HalMqttDeviceConfig;
|
||||
import se.hal.plugin.mqtt.device.HalMqttHumidityDeviceConfig;
|
||||
import se.hal.plugin.mqtt.device.HalMqttParticularMatterDeviceConfig;
|
||||
import se.hal.plugin.mqtt.device.HalMqttTemperatureDeviceConfig;
|
||||
import se.hal.plugin.mqtt.device.*;
|
||||
import se.hal.struct.devicedata.HumiditySensorData;
|
||||
import se.hal.struct.devicedata.ParticulateMatterSensorData;
|
||||
import se.hal.struct.devicedata.TemperatureSensorData;
|
||||
|
|
@ -90,4 +87,45 @@ public class GenericMqttDetectorTest {
|
|||
devices.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseVoltage() {
|
||||
GenericMqttDetector detector = new GenericMqttDetector();
|
||||
|
||||
List<HalMqttDeviceConfig> devices = detector.parseTopic(
|
||||
"zigbee2mqtt/Kitchen air quality/voltage",
|
||||
Converter.toBytes(1));
|
||||
assertEquals(1, devices.size());
|
||||
assertEquals(
|
||||
new HalMqttVoltageDeviceConfig("zigbee2mqtt/Kitchen air quality/voltage"),
|
||||
devices.get(0));
|
||||
|
||||
devices = detector.parseTopic(
|
||||
"zigbee2mqtt/Kitchen air quality",
|
||||
"{\"voltage\": 1}".getBytes(StandardCharsets.UTF_8));
|
||||
assertEquals(1, devices.size());
|
||||
assertEquals(
|
||||
new HalMqttVoltageDeviceConfig("zigbee2mqtt/Kitchen air quality", "$.voltage"),
|
||||
devices.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseCurrent() {
|
||||
GenericMqttDetector detector = new GenericMqttDetector();
|
||||
|
||||
List<HalMqttDeviceConfig> devices = detector.parseTopic(
|
||||
"zigbee2mqtt/Kitchen air quality/current",
|
||||
Converter.toBytes(1));
|
||||
assertEquals(1, devices.size());
|
||||
assertEquals(
|
||||
new HalMqttCurrentDeviceConfig("zigbee2mqtt/Kitchen air quality/current"),
|
||||
devices.get(0));
|
||||
|
||||
devices = detector.parseTopic(
|
||||
"zigbee2mqtt/Kitchen air quality",
|
||||
"{\"current\": 1}".getBytes(StandardCharsets.UTF_8));
|
||||
assertEquals(1, devices.size());
|
||||
assertEquals(
|
||||
new HalMqttCurrentDeviceConfig("zigbee2mqtt/Kitchen air quality", "$.current"),
|
||||
devices.get(0));
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,9 @@ import org.junit.Test;
|
|||
import se.hal.plugin.mqtt.device.HalMqttDeviceConfig;
|
||||
import se.hal.plugin.mqtt.device.HalMqttOnOffEventConfig;
|
||||
import se.hal.plugin.mqtt.device.HalMqttParticularMatterDeviceConfig;
|
||||
import se.hal.plugin.mqtt.device.HalMqttPowerConsumptionDeviceConfig;
|
||||
import se.hal.test.MockHalDeviceReportListener;
|
||||
import zutil.converter.Converter;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.List;
|
||||
|
|
@ -24,45 +26,33 @@ public class Zigbee2mqttDetectorTest {
|
|||
devices = detector.parseTopic("invalid/topic", new byte[]{});
|
||||
assertEquals(0, devices.size());
|
||||
|
||||
devices = detector.parseTopic("zigbee2mqtt/Kitchen Plant Light", "{\"power\":10.48,\"state\":\"ON\"}".getBytes(StandardCharsets.UTF_8));
|
||||
HalMqttOnOffEventConfig actualOnOff = new HalMqttOnOffEventConfig("zigbee2mqtt/Kitchen Plant Light", "$.state");
|
||||
actualOnOff.setWriteTopicName("zigbee2mqtt/Kitchen Plant Light/set");
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseState() {
|
||||
Zigbee2mqttDetector detector = new Zigbee2mqttDetector();
|
||||
|
||||
List<HalMqttDeviceConfig> devices = devices = detector.parseTopic(
|
||||
"zigbee2mqtt/Kitchen Plant Light",
|
||||
"{\"invalid_power\":10.48,\"state\":\"ON\"}".getBytes(StandardCharsets.UTF_8));
|
||||
assertEquals(1, devices.size());
|
||||
|
||||
HalMqttOnOffEventConfig actualOnOff = new HalMqttOnOffEventConfig("zigbee2mqtt/Kitchen Plant Light", "$.state");
|
||||
actualOnOff.setWriteTopicName("zigbee2mqtt/Kitchen Plant Light/set/state");
|
||||
assertEquals(actualOnOff, devices.get(0));
|
||||
|
||||
}
|
||||
/*
|
||||
@Test
|
||||
public void parseTemperature() {
|
||||
Zigbee2mqttDetector detector = new Zigbee2mqttDetector();
|
||||
|
||||
assertEquals(
|
||||
Collections.emptyList(),
|
||||
detector.parseTopic(
|
||||
"zigbee2mqtt/Kitchen air quality",
|
||||
"{\"temperature\":26}".getBytes(StandardCharsets.UTF_8)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseHumidity() {
|
||||
public void parsePower() {
|
||||
Zigbee2mqttDetector detector = new Zigbee2mqttDetector();
|
||||
|
||||
List<HalMqttDeviceConfig> devices = detector.parseTopic(
|
||||
"zigbee2mqtt/Kitchen air quality",
|
||||
"{\"power\": 1}".getBytes(StandardCharsets.UTF_8));
|
||||
assertEquals(1, devices.size());
|
||||
assertEquals(
|
||||
Collections.emptyList(),
|
||||
detector.parseTopic(
|
||||
"zigbee2mqtt/Kitchen air quality",
|
||||
"{\"humidity\":51}".getBytes(StandardCharsets.UTF_8)));
|
||||
new HalMqttPowerConsumptionDeviceConfig("zigbee2mqtt/Kitchen air quality", "$.power"),
|
||||
devices.get(0));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseParticularMatter() {
|
||||
Zigbee2mqttDetector detector = new Zigbee2mqttDetector();
|
||||
|
||||
assertEquals(
|
||||
Collections.list(new HalMqttParticularMatterDeviceConfig()),
|
||||
detector.parseTopic(
|
||||
"zigbee2mqtt/Kitchen air quality",
|
||||
"{\"pm25\":1}".getBytes(StandardCharsets.UTF_8)));
|
||||
}
|
||||
*/
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue