]> git.basschouten.com Git - openhab-addons.git/blob
075cbc7cd76e0f214352f03bacbe2b19c4a48bf9
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.avmfritz.internal.dto;
14
15 import java.util.List;
16
17 import javax.xml.bind.annotation.XmlAccessType;
18 import javax.xml.bind.annotation.XmlAccessorType;
19 import javax.xml.bind.annotation.XmlElement;
20 import javax.xml.bind.annotation.XmlType;
21
22 /**
23  * See {@link AVMFritzBaseModel}.
24  *
25  * @author Robert Bausdorf - Initial contribution
26  * @author Christoph Weitkamp - Added support for groups
27  * @author Ulrich Mertin - Added support for HAN-FUN blinds
28  */
29 @XmlAccessorType(XmlAccessType.FIELD)
30 @XmlType(name = "device")
31 public class DeviceModel extends AVMFritzBaseModel {
32
33     private TemperatureModel temperature;
34     private HumidityModel humidity;
35     private AlertModel alert;
36
37     @XmlElement(name = "levelcontrol")
38     private LevelControlModel levelControlModel;
39
40     @XmlElement(name = "colorcontrol")
41     private ColorControlModel colorControlModel;
42
43     @XmlElement(name = "button", type = ButtonModel.class)
44     private List<ButtonModel> buttons;
45
46     private ETSUnitInfoModel etsiunitinfo;
47
48     public TemperatureModel getTemperature() {
49         return temperature;
50     }
51
52     public void setTemperature(TemperatureModel temperatureModel) {
53         this.temperature = temperatureModel;
54     }
55
56     public HumidityModel getHumidity() {
57         return humidity;
58     }
59
60     public void setHumidity(HumidityModel humidityModel) {
61         this.humidity = humidityModel;
62     }
63
64     public AlertModel getAlert() {
65         return alert;
66     }
67
68     public void setAlert(AlertModel alertModel) {
69         this.alert = alertModel;
70     }
71
72     public LevelControlModel getLevelControlModel() {
73         return levelControlModel;
74     }
75
76     public void setLevelControlModel(LevelControlModel levelControlModel) {
77         this.levelControlModel = levelControlModel;
78     }
79
80     public ColorControlModel getColorControlModel() {
81         return colorControlModel;
82     }
83
84     public void setColorControlModel(ColorControlModel colorControlModel) {
85         this.colorControlModel = colorControlModel;
86     }
87
88     public List<ButtonModel> getButtons() {
89         return buttons == null ? List.of() : buttons;
90     }
91
92     public void setButtons(List<ButtonModel> buttons) {
93         this.buttons = buttons;
94     }
95
96     public ETSUnitInfoModel getEtsiunitinfo() {
97         return etsiunitinfo;
98     }
99
100     public void setEtsiunitinfo(ETSUnitInfoModel etsiunitinfo) {
101         this.etsiunitinfo = etsiunitinfo;
102     }
103
104     @Override
105     public String toString() {
106         return new StringBuilder(super.toString()).append(temperature).append(",").append(humidity).append(",")
107                 .append(alert).append(",").append(levelControlModel).append(",").append(colorControlModel).append(",")
108                 .append(getButtons()).append(",").append(etsiunitinfo).append("]").toString();
109     }
110
111     @XmlAccessorType(XmlAccessType.FIELD)
112     @XmlType(propOrder = { "etsideviceid", "unittype", "interfaces" })
113     public static class ETSUnitInfoModel {
114         public static final String HAN_FUN_UNITTYPE_AC_OUTLET = "262";
115         public static final String HAN_FUN_UNITTYPE_AC_OUTLET_SIMPLE_POWER_METERING = "263";
116         public static final String HAN_FUN_UNITTYPE_SIMPLE_BUTTON = "273";
117         public static final String HAN_FUN_UNITTYPE_SIMPLE_DETECTOR = "512";
118         public static final String HAN_FUN_UNITTYPE_DOOR_OPEN_CLOSE_DETECTOR = "513";
119         public static final String HAN_FUN_UNITTYPE_WINDOW_OPEN_CLOSE_DETECTOR = "514";
120         public static final String HAN_FUN_UNITTYPE_MOTION_DETECTOR = "515";
121         public static final String HAN_FUN_UNITTYPE_SMOKE_DETECTOR = "516"; // undocumented
122         public static final String HAN_FUN_UNITTYPE_FLOOD_DETECTOR = "518";
123         public static final String HAN_FUN_UNITTYPE_GLAS_BREAK_DETECTOR = "519";
124         public static final String HAN_FUN_UNITTYPE_VIBRATION_DETECTOR = "520";
125         public static final String HAN_FUN_UNITTYPE_SIREN = "640";
126
127         public static final String HAN_FUN_INTERFACE_ALERT = "256";
128         public static final String HAN_FUN_INTERFACE_KEEP_ALIVE = "277";
129         public static final String HAN_FUN_INTERFACE_ON_OFF = "512";
130         public static final String HAN_FUN_INTERFACE_SIMPLE_POWER_METERING = "768"; // undocumented
131         public static final String HAN_FUN_INTERFACE_SIMPLE_BUTTON = "772";
132
133         private String etsideviceid;
134         private String unittype;
135         private String interfaces;
136
137         public String getEtsideviceid() {
138             return etsideviceid;
139         }
140
141         public void setEtsideviceid(String etsideviceid) {
142             this.etsideviceid = etsideviceid;
143         }
144
145         public String getUnittype() {
146             return unittype;
147         }
148
149         public void setUnittype(String unittype) {
150             this.unittype = unittype;
151         }
152
153         public String getInterfaces() {
154             return interfaces;
155         }
156
157         public void setInterfaces(String interfaces) {
158             this.interfaces = interfaces;
159         }
160
161         @Override
162         public String toString() {
163             return new StringBuilder("[etsideviceid=").append(etsideviceid).append(",unittype=").append(unittype)
164                     .append(",interfaces=").append(interfaces).append("]").toString();
165         }
166     }
167 }