]> git.basschouten.com Git - openhab-addons.git/blob
7596026529d837a183f3431bdab470debce3a504
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2021 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     private LevelcontrolModel levelcontrol;
37
38     @XmlElement(name = "button", type = ButtonModel.class)
39     private List<ButtonModel> buttons;
40
41     private ETSUnitInfoModel etsiunitinfo;
42
43     public TemperatureModel getTemperature() {
44         return temperature;
45     }
46
47     public void setTemperature(TemperatureModel temperatureModel) {
48         this.temperature = temperatureModel;
49     }
50
51     public HumidityModel getHumidity() {
52         return humidity;
53     }
54
55     public void setHumidity(HumidityModel humidityModel) {
56         this.humidity = humidityModel;
57     }
58
59     public AlertModel getAlert() {
60         return alert;
61     }
62
63     public void setAlert(AlertModel alertModel) {
64         this.alert = alertModel;
65     }
66
67     public LevelcontrolModel getLevelcontrol() {
68         return levelcontrol;
69     }
70
71     public void setLevelcontrol(LevelcontrolModel levelcontrol) {
72         this.levelcontrol = levelcontrol;
73     }
74
75     public List<ButtonModel> getButtons() {
76         return buttons == null ? List.of() : buttons;
77     }
78
79     public void setButtons(List<ButtonModel> buttons) {
80         this.buttons = buttons;
81     }
82
83     public ETSUnitInfoModel getEtsiunitinfo() {
84         return etsiunitinfo;
85     }
86
87     public void setEtsiunitinfo(ETSUnitInfoModel etsiunitinfo) {
88         this.etsiunitinfo = etsiunitinfo;
89     }
90
91     @Override
92     public String toString() {
93         return new StringBuilder(super.toString()).append(temperature).append(",").append(humidity).append(",")
94                 .append(alert).append(",").append(getButtons()).append(",").append(etsiunitinfo).append("]").toString();
95     }
96
97     @XmlAccessorType(XmlAccessType.FIELD)
98     @XmlType(propOrder = { "etsideviceid", "unittype", "interfaces" })
99     public static class ETSUnitInfoModel {
100         public static final String HAN_FUN_UNITTYPE_AC_OUTLET = "262";
101         public static final String HAN_FUN_UNITTYPE_AC_OUTLET_SIMPLE_POWER_METERING = "263";
102         public static final String HAN_FUN_UNITTYPE_SIMPLE_BUTTON = "273";
103         public static final String HAN_FUN_UNITTYPE_SIMPLE_DETECTOR = "512";
104         public static final String HAN_FUN_UNITTYPE_DOOR_OPEN_CLOSE_DETECTOR = "513";
105         public static final String HAN_FUN_UNITTYPE_WINDOW_OPEN_CLOSE_DETECTOR = "514";
106         public static final String HAN_FUN_UNITTYPE_MOTION_DETECTOR = "515";
107         public static final String HAN_FUN_UNITTYPE_SMOKE_DETECTOR = "516"; // undocumented
108         public static final String HAN_FUN_UNITTYPE_FLOOD_DETECTOR = "518";
109         public static final String HAN_FUN_UNITTYPE_GLAS_BREAK_DETECTOR = "519";
110         public static final String HAN_FUN_UNITTYPE_VIBRATION_DETECTOR = "520";
111         public static final String HAN_FUN_UNITTYPE_SIREN = "640";
112
113         public static final String HAN_FUN_INTERFACE_ALERT = "256";
114         public static final String HAN_FUN_INTERFACE_KEEP_ALIVE = "277";
115         public static final String HAN_FUN_INTERFACE_ON_OFF = "512";
116         public static final String HAN_FUN_INTERFACE_SIMPLE_POWER_METERING = "768"; // undocumented
117         public static final String HAN_FUN_INTERFACE_SIMPLE_BUTTON = "772";
118
119         private String etsideviceid;
120         private String unittype;
121         private String interfaces;
122
123         public String getEtsideviceid() {
124             return etsideviceid;
125         }
126
127         public void setEtsideviceid(String etsideviceid) {
128             this.etsideviceid = etsideviceid;
129         }
130
131         public String getUnittype() {
132             return unittype;
133         }
134
135         public void setUnittype(String unittype) {
136             this.unittype = unittype;
137         }
138
139         public String getInterfaces() {
140             return interfaces;
141         }
142
143         public void setInterfaces(String interfaces) {
144             this.interfaces = interfaces;
145         }
146
147         @Override
148         public String toString() {
149             return new StringBuilder("[etsideviceid=").append(etsideviceid).append(",unittype=").append(unittype)
150                     .append(",interfaces=").append(interfaces).append("]").toString();
151         }
152     }
153 }