]> git.basschouten.com Git - openhab-addons.git/blob
8da35e9163669f00237a25a840b977e87b921aba
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2024 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.denonmarantz.internal;
14
15 import java.math.BigDecimal;
16 import java.util.HashMap;
17 import java.util.LinkedHashMap;
18 import java.util.Map;
19
20 import org.openhab.core.thing.ThingTypeUID;
21 import org.openhab.core.thing.type.ChannelTypeUID;
22
23 /**
24  * The {@link DenonMarantzBindingConstants} class defines common constants, which are
25  * used across the whole binding.
26  *
27  * @author Jan-Willem Veldhuis - Initial contribution
28  */
29 public class DenonMarantzBindingConstants {
30
31     public static final String BINDING_ID = "denonmarantz";
32
33     public static final String VENDOR_DENON = "Denon";
34     public static final String VENDOR_MARANTZ = "Marantz";
35
36     // List of all Thing Type UIDs
37     public static final ThingTypeUID THING_TYPE_AVR = new ThingTypeUID(BINDING_ID, "avr");
38
39     // List of thing Parameters names
40     public static final String PARAMETER_ZONE_COUNT = "zoneCount";
41     public static final String PARAMETER_HOST = "host";
42     public static final String PARAMETER_TELNET_ENABLED = "telnetEnabled";
43     public static final String PARAMETER_TELNET_PORT = "telnetPort";
44     public static final String PARAMETER_HTTP_PORT = "httpPort";
45     public static final String PARAMETER_POLLING_INTERVAL = "httpPollingInterval";
46
47     // List of all Channel ids
48     public static final String CHANNEL_POWER = "general#power";
49     public static final String CHANNEL_SURROUND_PROGRAM = "general#surroundProgram";
50     public static final String CHANNEL_COMMAND = "general#command";
51     public static final String CHANNEL_NOW_PLAYING_ARTIST = "general#artist";
52     public static final String CHANNEL_NOW_PLAYING_ALBUM = "general#album";
53     public static final String CHANNEL_NOW_PLAYING_TRACK = "general#track";
54
55     public static final String CHANNEL_MAIN_ZONE_POWER = "mainZone#power";
56     public static final String CHANNEL_MAIN_VOLUME = "mainZone#volume";
57     public static final String CHANNEL_MAIN_VOLUME_DB = "mainZone#volumeDB";
58     public static final String CHANNEL_MUTE = "mainZone#mute";
59     public static final String CHANNEL_INPUT = "mainZone#input";
60
61     public static final String CHANNEL_ZONE2_POWER = "zone2#power";
62     public static final String CHANNEL_ZONE2_VOLUME = "zone2#volume";
63     public static final String CHANNEL_ZONE2_VOLUME_DB = "zone2#volumeDB";
64     public static final String CHANNEL_ZONE2_MUTE = "zone2#mute";
65     public static final String CHANNEL_ZONE2_INPUT = "zone2#input";
66
67     public static final String CHANNEL_ZONE3_POWER = "zone3#power";
68     public static final String CHANNEL_ZONE3_VOLUME = "zone3#volume";
69     public static final String CHANNEL_ZONE3_VOLUME_DB = "zone3#volumeDB";
70     public static final String CHANNEL_ZONE3_MUTE = "zone3#mute";
71     public static final String CHANNEL_ZONE3_INPUT = "zone3#input";
72
73     public static final String CHANNEL_ZONE4_POWER = "zone4#power";
74     public static final String CHANNEL_ZONE4_VOLUME = "zone4#volume";
75     public static final String CHANNEL_ZONE4_VOLUME_DB = "zone4#volumeDB";
76     public static final String CHANNEL_ZONE4_MUTE = "zone4#mute";
77     public static final String CHANNEL_ZONE4_INPUT = "zone4#input";
78
79     // Map of Zone2 Channel Type UIDs (to be added to Thing later when needed)
80     public static final Map<String, ChannelTypeUID> ZONE2_CHANNEL_TYPES = new LinkedHashMap<>();
81     static {
82         ZONE2_CHANNEL_TYPES.put(CHANNEL_ZONE2_POWER, new ChannelTypeUID(BINDING_ID, "zonePower"));
83         ZONE2_CHANNEL_TYPES.put(CHANNEL_ZONE2_VOLUME, new ChannelTypeUID(BINDING_ID, "volume"));
84         ZONE2_CHANNEL_TYPES.put(CHANNEL_ZONE2_VOLUME_DB, new ChannelTypeUID(BINDING_ID, "volumeDB"));
85         ZONE2_CHANNEL_TYPES.put(CHANNEL_ZONE2_MUTE, new ChannelTypeUID(BINDING_ID, "mute"));
86         ZONE2_CHANNEL_TYPES.put(CHANNEL_ZONE2_INPUT, new ChannelTypeUID(BINDING_ID, "input"));
87     }
88
89     // Map of Zone3 Channel Type UIDs (to be added to Thing later when needed)
90     public static final Map<String, ChannelTypeUID> ZONE3_CHANNEL_TYPES = new LinkedHashMap<>();
91     static {
92         ZONE3_CHANNEL_TYPES.put(CHANNEL_ZONE3_POWER, new ChannelTypeUID(BINDING_ID, "zonePower"));
93         ZONE3_CHANNEL_TYPES.put(CHANNEL_ZONE3_VOLUME, new ChannelTypeUID(BINDING_ID, "volume"));
94         ZONE3_CHANNEL_TYPES.put(CHANNEL_ZONE3_VOLUME_DB, new ChannelTypeUID(BINDING_ID, "volumeDB"));
95         ZONE3_CHANNEL_TYPES.put(CHANNEL_ZONE3_MUTE, new ChannelTypeUID(BINDING_ID, "mute"));
96         ZONE3_CHANNEL_TYPES.put(CHANNEL_ZONE3_INPUT, new ChannelTypeUID(BINDING_ID, "input"));
97     }
98
99     // Map of Zone4 Channel Type UIDs (to be added to Thing later when needed)
100     public static final Map<String, ChannelTypeUID> ZONE4_CHANNEL_TYPES = new LinkedHashMap<>();
101     static {
102         ZONE4_CHANNEL_TYPES.put(CHANNEL_ZONE4_POWER, new ChannelTypeUID(BINDING_ID, "zonePower"));
103         ZONE4_CHANNEL_TYPES.put(CHANNEL_ZONE4_VOLUME, new ChannelTypeUID(BINDING_ID, "volume"));
104         ZONE4_CHANNEL_TYPES.put(CHANNEL_ZONE4_VOLUME_DB, new ChannelTypeUID(BINDING_ID, "volumeDB"));
105         ZONE4_CHANNEL_TYPES.put(CHANNEL_ZONE4_MUTE, new ChannelTypeUID(BINDING_ID, "mute"));
106         ZONE4_CHANNEL_TYPES.put(CHANNEL_ZONE4_INPUT, new ChannelTypeUID(BINDING_ID, "input"));
107     }
108
109     /**
110      * Static mapping of ChannelType-to-ItemType (workaround while waiting for
111      * https://github.com/eclipse/smarthome/issues/4950 as yet there is no convenient way to extract the item type from
112      * thing-types.xml)
113      * See https://github.com/eclipse/smarthome/pull/4787#issuecomment-362287430
114      */
115     public static final Map<String, String> CHANNEL_ITEM_TYPES = new HashMap<>();
116     static {
117         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE2_POWER, "Switch");
118         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE2_VOLUME, "Dimmer");
119         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE2_VOLUME_DB, "Number");
120         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE2_MUTE, "Switch");
121         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE2_INPUT, "String");
122
123         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE3_POWER, "Switch");
124         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE3_VOLUME, "Dimmer");
125         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE3_VOLUME_DB, "Number");
126         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE3_MUTE, "Switch");
127         CHANNEL_ITEM_TYPES.put(CHANNEL_ZONE3_INPUT, "String");
128     }
129
130     // Offset in dB from the actual dB value to the volume as presented by the AVR (0 == -80 dB)
131     public static final BigDecimal DB_OFFSET = new BigDecimal("80");
132 }