2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.nikohomecontrol.internal.protocol.nhc2;
15 import java.util.List;
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.eclipse.jdt.annotation.Nullable;
21 * {@link NhcDevice2} represents a Niko Home Control II device. It is used when parsing the device response json and
22 * when creating the state update json to send to the Connected Controller.
24 * @author Mark Herwege - Initial Contribution
28 static class NhcProperty {
45 // fields for thermostats and hvac
47 String setpointTemperature;
51 String overruleActive;
53 String overruleSetpoint;
63 String ambientTemperature;
70 // fields for fans and ventilation
73 // fields for electricity metering
75 String electricalEnergy;
77 String electricalPower;
79 String electricalPowerToGrid;
81 String electricalPowerFromGrid;
83 String electricalPowerProduction;
85 String electricalPowerSelfConsumption;
87 String electricalPowerConsumption;
89 String electricalPowerProductionThresholdExceeded;
91 String reportInstantUsage;
92 // fields for access control
97 static class NhcTrait {
100 // fields for energyMeters metering
107 static class NhcParameter {
114 // fields for electricity metering
127 String technology = "";
128 String identifier = "";
133 List<NhcProperty> properties;
135 List<NhcTrait> traits;
137 List<NhcParameter> parameters;