]> git.basschouten.com Git - openhab-addons.git/blob
fdcf16aeb11a0cb7e920493b5f52d174ac2d7914
[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.fronius.internal;
14
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16 import org.openhab.core.thing.ThingTypeUID;
17
18 /**
19  * The {@link FroniusBindingConstants} class defines common constants, which are
20  * used across the whole binding.
21  *
22  * @author Thomas Rokohl - Initial contribution
23  * @author Peter Schraffl - Added device status and error status channels
24  * @author Thomas Kordelle - Added inverter power, battery state of charge and PV solar yield
25  * @author Hannes Spenger - Added ohmpilot & meter power sum
26  * @author Jimmy Tanagra - Implement a common url parsing method
27  */
28 @NonNullByDefault
29 public class FroniusBindingConstants {
30
31     private static final String BINDING_ID = "fronius";
32
33     // List of all Thing Type UIDs
34     public static final ThingTypeUID THING_TYPE_BRIDGE = new ThingTypeUID(BINDING_ID, "bridge");
35     public static final ThingTypeUID THING_TYPE_INVERTER = new ThingTypeUID(BINDING_ID, "powerinverter");
36     public static final ThingTypeUID THING_TYPE_METER = new ThingTypeUID(BINDING_ID, "meter");
37     public static final ThingTypeUID THING_TYPE_OHMPILOT = new ThingTypeUID(BINDING_ID, "ohmpilot");
38
39     // Inverter channels
40     public static final String INVERTER_DATA_CHANNEL_DAY_ENERGY = "inverterdatachanneldayenergy";
41     public static final String INVERTER_DATA_CHANNEL_PAC = "inverterdatachannelpac";
42     public static final String INVERTER_DATA_CHANNEL_TOTAL = "inverterdatachanneltotal";
43     public static final String INVERTER_DATA_CHANNEL_YEAR = "inverterdatachannelyear";
44     public static final String INVERTER_DATA_CHANNEL_FAC = "inverterdatachannelfac";
45     public static final String INVERTER_DATA_CHANNEL_IAC = "inverterdatachanneliac";
46     public static final String INVERTER_DATA_CHANNEL_IDC = "inverterdatachannelidc";
47     public static final String INVERTER_DATA_CHANNEL_IDC2 = "inverterdatachannelidc2";
48     public static final String INVERTER_DATA_CHANNEL_IDC3 = "inverterdatachannelidc3";
49     public static final String INVERTER_DATA_CHANNEL_UAC = "inverterdatachanneluac";
50     public static final String INVERTER_DATA_CHANNEL_UDC = "inverterdatachanneludc";
51     public static final String INVERTER_DATA_CHANNEL_UDC2 = "inverterdatachanneludc2";
52     public static final String INVERTER_DATA_CHANNEL_UDC3 = "inverterdatachanneludc3";
53     public static final String INVERTER_DATA_CHANNEL_PDC = "inverterdatachannelpdc";
54     public static final String INVERTER_DATA_CHANNEL_PDC2 = "inverterdatachannelpdc2";
55     public static final String INVERTER_DATA_CHANNEL_PDC3 = "inverterdatachannelpdc3";
56     public static final String INVERTER_DATA_CHANNEL_DEVICE_STATUS_ERROR_CODE = "inverterdatadevicestatuserrorcode";
57     public static final String INVERTER_DATA_CHANNEL_DEVICE_STATUS_STATUS_CODE = "inverterdatadevicestatusstatuscode";
58
59     // Power Flow channels
60     public static final String POWER_FLOW_P_GRID = "powerflowchannelpgrid";
61     public static final String POWER_FLOW_P_LOAD = "powerflowchannelpload";
62     public static final String POWER_FLOW_P_AKKU = "powerflowchannelpakku";
63     public static final String POWER_FLOW_P_PV = "powerflowchannelppv";
64     public static final String POWER_FLOW_AUTONOMY = "powerflowautonomy";
65     public static final String POWER_FLOW_SELF_CONSUMPTION = "powerflowselfconsumption";
66
67     public static final String POWER_FLOW_INVERTER_1_POWER = "powerflowinverter1power";
68     public static final String POWER_FLOW_INVERTER_1_SOC = "powerflowinverter1soc";
69
70     // Meter channels
71     public static final String METER_ENABLE = "enable";
72     public static final String METER_LOCATION = "location";
73     public static final String METER_CURRENT_AC_PHASE_1 = "currentacphase1";
74     public static final String METER_CURRENT_AC_PHASE_2 = "currentacphase2";
75     public static final String METER_CURRENT_AC_PHASE_3 = "currentacphase3";
76     public static final String METER_VOLTAGE_AC_PHASE_1 = "voltageacphase1";
77     public static final String METER_VOLTAGE_AC_PHASE_2 = "voltageacphase2";
78     public static final String METER_VOLTAGE_AC_PHASE_3 = "voltageacphase3";
79     public static final String METER_POWER_PHASE_1 = "powerrealphase1";
80     public static final String METER_POWER_PHASE_2 = "powerrealphase2";
81     public static final String METER_POWER_PHASE_3 = "powerrealphase3";
82     public static final String METER_POWER_SUM = "powerrealsum";
83     public static final String METER_POWER_FACTOR_PHASE_1 = "powerfactorphase1";
84     public static final String METER_POWER_FACTOR_PHASE_2 = "powerfactorphase2";
85     public static final String METER_POWER_FACTOR_PHASE_3 = "powerfactorphase3";
86     public static final String METER_ENERGY_REAL_SUM_CONSUMED = "energyrealsumconsumed";
87     public static final String METER_ENERGY_REAL_SUM_PRODUCED = "energyrealsumproduced";
88
89     // OhmPilot channels
90     public static final String OHMPILOT_POWER_REAL_SUM = "powerrealsum";
91     public static final String OHMPILOT_ENERGY_REAL_SUM_CONSUMED = "energyrealsumconsumed";
92     public static final String OHMPILOT_ENERGY_SENSOR_TEMPERATURE_CHANNEL_1 = "temperaturechannel1";
93     public static final String OHMPILOT_ERROR_CODE = "errorcode";
94     public static final String OHMPILOT_STATE_CODE = "statecode";
95
96     // List of all Urls
97     public static final String INVERTER_REALTIME_DATA_URL = "http://%IP%/solar_api/v1/GetInverterRealtimeData.cgi?Scope=Device&DeviceId=%DEVICEID%&DataCollection=CommonInverterData";
98     public static final String POWERFLOW_REALTIME_DATA_URL = "http://%IP%/solar_api/v1/GetPowerFlowRealtimeData.fcgi";
99     public static final String METER_REALTIME_DATA_URL = "http://%IP%/solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=%DEVICEID%&DataCollection=MeterRealtimeData";
100     public static final String OHMPILOT_REALTIME_DATA_URL = "http://%IP%/solar_api/v1/GetOhmPilotRealtimeData.cgi?Scope=Device&DeviceId=%DEVICEID%";
101
102     public static String getInverterDataUrl(String ip, int deviceId) {
103         return parseUrl(INVERTER_REALTIME_DATA_URL, ip, deviceId);
104     }
105
106     public static String getPowerFlowDataUrl(String ip) {
107         return parseUrl(POWERFLOW_REALTIME_DATA_URL, ip);
108     }
109
110     public static String getMeterDataUrl(String ip, int deviceId) {
111         return parseUrl(METER_REALTIME_DATA_URL, ip, deviceId);
112     }
113
114     public static String getOhmPilotDataUrl(String ip, int deviceId) {
115         return parseUrl(OHMPILOT_REALTIME_DATA_URL, ip, deviceId);
116     }
117
118     public static String parseUrl(String url, String ip) {
119         return url.replace("%IP%", ip == null ? "" : ip.trim());
120     }
121
122     public static String parseUrl(String url, String ip, int deviceId) {
123         return parseUrl(url, ip).replace("%DEVICEID%", Integer.toString(deviceId));
124     }
125 }