[deconz] Support for air quality sensor (#11885)
[deconz] Support for air quality sensor Signed-off-by: Philipp Schneider <philipp.schneider@nixo-soft.de>
This commit is contained in:
@@ -53,6 +53,7 @@ import com.google.gson.GsonBuilder;
|
||||
*
|
||||
* @author Jan N. Klug - Initial contribution
|
||||
* @author Lukas Agethen - Added Thermostat
|
||||
* @author Philipp Schneider - Added air quality sensor
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
@NonNullByDefault
|
||||
@@ -85,6 +86,46 @@ public class SensorsTest {
|
||||
Mockito.verify(thingHandlerCallback).stateUpdated(eq(channelUID), eq(OnOffType.ON));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void airQualitySensorUpdateTest() throws IOException {
|
||||
// ARRANGE
|
||||
SensorMessage sensorMessage = DeconzTest.getObjectFromJson("airquality.json", SensorMessage.class, gson);
|
||||
assertNotNull(sensorMessage);
|
||||
|
||||
ThingUID thingUID = new ThingUID("deconz", "sensor");
|
||||
ChannelUID channelUID = new ChannelUID(thingUID, "airquality");
|
||||
Thing sensor = ThingBuilder.create(THING_TYPE_AIRQUALITY_SENSOR, thingUID)
|
||||
.withChannel(ChannelBuilder.create(channelUID, "String").build()).build();
|
||||
SensorThingHandler sensorThingHandler = new SensorThingHandler(sensor, gson);
|
||||
sensorThingHandler.setCallback(thingHandlerCallback);
|
||||
|
||||
// ACT
|
||||
sensorThingHandler.messageReceived("", sensorMessage);
|
||||
|
||||
// ASSERT
|
||||
Mockito.verify(thingHandlerCallback).stateUpdated(eq(channelUID), eq(StringType.valueOf("good")));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void airQualityPpbSensorUpdateTest() throws IOException {
|
||||
// ARRANGE
|
||||
SensorMessage sensorMessage = DeconzTest.getObjectFromJson("airquality.json", SensorMessage.class, gson);
|
||||
assertNotNull(sensorMessage);
|
||||
|
||||
ThingUID thingUID = new ThingUID("deconz", "sensor");
|
||||
ChannelUID channelUID = new ChannelUID(thingUID, "airqualityppb");
|
||||
Thing sensor = ThingBuilder.create(THING_TYPE_AIRQUALITY_SENSOR, thingUID)
|
||||
.withChannel(ChannelBuilder.create(channelUID, "Number").build()).build();
|
||||
SensorThingHandler sensorThingHandler = new SensorThingHandler(sensor, gson);
|
||||
sensorThingHandler.setCallback(thingHandlerCallback);
|
||||
|
||||
// ACT
|
||||
sensorThingHandler.messageReceived("", sensorMessage);
|
||||
|
||||
// ASSERT
|
||||
Mockito.verify(thingHandlerCallback).stateUpdated(eq(channelUID), eq(new DecimalType(129)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void thermostatSensorUpdateTest() throws IOException {
|
||||
SensorMessage sensorMessage = DeconzTest.getObjectFromJson("thermostat.json", SensorMessage.class, gson);
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"config": {
|
||||
"battery": 100,
|
||||
"on": true,
|
||||
"reachable": true
|
||||
},
|
||||
"ep": 38,
|
||||
"etag": "ca904b42f63d0ccccccccccccccccccccc",
|
||||
"lastannounced": "2021-12-28T23:59:02Z",
|
||||
"lastseen": "2021-12-29T01:18Z",
|
||||
"manufacturername": "Develco Products A/S",
|
||||
"modelid": "AQSZB-110",
|
||||
"name": "AirQuality 4",
|
||||
"state": {
|
||||
"airquality": "good",
|
||||
"airqualityppb": 129,
|
||||
"lastupdated": "2021-12-29T01:18:41.184"
|
||||
},
|
||||
"swversion": "2021-10-28 08:59",
|
||||
"type": "ZHAAirQuality",
|
||||
"uniqueid": "00:00:00:00:00:00:00:00-00-fc03"
|
||||
}
|
||||
Reference in New Issue
Block a user