homebridge-enphase-envoy 10.2.6-beta.9 → 10.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/package.json +1 -1
- package/src/customcharacteristics.js +176 -173
- package/src/energymeter.js +7 -7
- package/src/envoydevice.js +22 -21
package/CHANGELOG.md
CHANGED
|
@@ -16,7 +16,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
16
16
|
- fix [#216](https://github.com/grzegorz914/homebridge-enphase-envoy/issues/216)
|
|
17
17
|
- fix [#217](https://github.com/grzegorz914/homebridge-enphase-envoy/issues/217)
|
|
18
18
|
- fix wireless connections kit publish
|
|
19
|
-
- added network interface
|
|
19
|
+
- added network interface service and characteristics
|
|
20
20
|
- cleanup
|
|
21
21
|
|
|
22
22
|
## [10.2.5] - (17.10.2025)
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"private": false,
|
|
3
3
|
"displayName": "Enphase Envoy",
|
|
4
4
|
"name": "homebridge-enphase-envoy",
|
|
5
|
-
"version": "10.2.6
|
|
5
|
+
"version": "10.2.6",
|
|
6
6
|
"description": "Homebridge p7ugin for Photovoltaic Energy System manufactured by Enphase.",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "grzegorz914",
|
|
@@ -1892,69 +1892,7 @@ export default (api) => {
|
|
|
1892
1892
|
}
|
|
1893
1893
|
Service.EnvoyService = EnvoyService;
|
|
1894
1894
|
|
|
1895
|
-
//
|
|
1896
|
-
class NetworkInterfaceService extends Service {
|
|
1897
|
-
constructor(displayName, subtype) {
|
|
1898
|
-
super(displayName, '00000010-000A-1000-8000-0026BB765291', subtype);
|
|
1899
|
-
// Mandatory Characteristics
|
|
1900
|
-
this.addCharacteristic(Characteristic.Type);
|
|
1901
|
-
// Optional Characteristics
|
|
1902
|
-
this.addOptionalCharacteristic(Characteristic.SignalStrength);
|
|
1903
|
-
this.addOptionalCharacteristic(Characteristic.AddressIp);
|
|
1904
|
-
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
1905
|
-
}
|
|
1906
|
-
}
|
|
1907
|
-
Service.NetworkInterfaceService = NetworkInterfaceService;
|
|
1908
|
-
|
|
1909
|
-
//Wireless connection kit service
|
|
1910
|
-
class WirelessConnectionKitService extends Service {
|
|
1911
|
-
constructor(displayName, subtype) {
|
|
1912
|
-
super(displayName, '00000010-000A-1000-8000-0026BB765291', subtype);
|
|
1913
|
-
// Mandatory Characteristics
|
|
1914
|
-
this.addCharacteristic(Characteristic.Type);
|
|
1915
|
-
// Optional Characteristics
|
|
1916
|
-
this.addOptionalCharacteristic(Characteristic.SignalStrength);
|
|
1917
|
-
this.addOptionalCharacteristic(Characteristic.Connected);
|
|
1918
|
-
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
1919
|
-
}
|
|
1920
|
-
}
|
|
1921
|
-
Service.WirelessConnectionKitService = WirelessConnectionKitService;
|
|
1922
|
-
|
|
1923
|
-
//Microinverter service
|
|
1924
|
-
class MicroinverterService extends Service {
|
|
1925
|
-
constructor(displayName, subtype) {
|
|
1926
|
-
super(displayName, '00000007-000A-1000-8000-0026BB765291', subtype);
|
|
1927
|
-
// Mandatory Characteristics
|
|
1928
|
-
this.addCharacteristic(Characteristic.Status);
|
|
1929
|
-
// Optional Characteristics
|
|
1930
|
-
this.addOptionalCharacteristic(Characteristic.Producing);
|
|
1931
|
-
this.addOptionalCharacteristic(Characteristic.Communicating);
|
|
1932
|
-
this.addOptionalCharacteristic(Characteristic.Provisioned);
|
|
1933
|
-
this.addOptionalCharacteristic(Characteristic.Operating);
|
|
1934
|
-
this.addOptionalCharacteristic(Characteristic.GfiClear);
|
|
1935
|
-
this.addOptionalCharacteristic(Characteristic.Phase);
|
|
1936
|
-
this.addOptionalCharacteristic(Characteristic.Firmware);
|
|
1937
|
-
this.addOptionalCharacteristic(Characteristic.PowerW);
|
|
1938
|
-
this.addOptionalCharacteristic(Characteristic.PowerPeakW);
|
|
1939
|
-
this.addOptionalCharacteristic(Characteristic.EnergyTodayWh);
|
|
1940
|
-
this.addOptionalCharacteristic(Characteristic.EnergyYesterdayWh);
|
|
1941
|
-
this.addOptionalCharacteristic(Characteristic.EnergyLastSevenDays);
|
|
1942
|
-
this.addOptionalCharacteristic(Characteristic.EnergyLifetime);
|
|
1943
|
-
this.addOptionalCharacteristic(Characteristic.Current);
|
|
1944
|
-
this.addOptionalCharacteristic(Characteristic.Voltage);
|
|
1945
|
-
this.addOptionalCharacteristic(Characteristic.Frequency);
|
|
1946
|
-
this.addOptionalCharacteristic(Characteristic.CurrentDc);
|
|
1947
|
-
this.addOptionalCharacteristic(Characteristic.VoltageDc);
|
|
1948
|
-
this.addOptionalCharacteristic(Characteristic.Temperature);
|
|
1949
|
-
this.addOptionalCharacteristic(Characteristic.PlcLevel);
|
|
1950
|
-
this.addOptionalCharacteristic(Characteristic.GridProfile);
|
|
1951
|
-
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
1952
|
-
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
1953
|
-
}
|
|
1954
|
-
}
|
|
1955
|
-
Service.MicroinverterService = MicroinverterService;
|
|
1956
|
-
|
|
1957
|
-
//qrelay service
|
|
1895
|
+
//Qrelay service
|
|
1958
1896
|
class QrelayService extends Service {
|
|
1959
1897
|
constructor(displayName, subtype) {
|
|
1960
1898
|
super(displayName, '00000002-000A-1000-8000-0026BB765291', subtype);
|
|
@@ -1985,50 +1923,6 @@ export default (api) => {
|
|
|
1985
1923
|
}
|
|
1986
1924
|
Service.QrelayService = QrelayService;
|
|
1987
1925
|
|
|
1988
|
-
//AC Batterie service
|
|
1989
|
-
class AcBatterieService extends Service {
|
|
1990
|
-
constructor(displayName, subtype) {
|
|
1991
|
-
super(displayName, '00000006-000A-1000-8000-0026BB765291', subtype);
|
|
1992
|
-
// Mandatory Characteristics
|
|
1993
|
-
this.addCharacteristic(Characteristic.ChargeState);
|
|
1994
|
-
// Optional Characteristics
|
|
1995
|
-
this.addOptionalCharacteristic(Characteristic.Status);
|
|
1996
|
-
this.addOptionalCharacteristic(Characteristic.Producing);
|
|
1997
|
-
this.addOptionalCharacteristic(Characteristic.Communicating);
|
|
1998
|
-
this.addOptionalCharacteristic(Characteristic.Provisioned);
|
|
1999
|
-
this.addOptionalCharacteristic(Characteristic.Operating);
|
|
2000
|
-
this.addOptionalCharacteristic(Characteristic.GfiClear);
|
|
2001
|
-
this.addOptionalCharacteristic(Characteristic.SleepEnabled);
|
|
2002
|
-
this.addOptionalCharacteristic(Characteristic.PercentFull);
|
|
2003
|
-
this.addOptionalCharacteristic(Characteristic.MaxCellTemp);
|
|
2004
|
-
this.addOptionalCharacteristic(Characteristic.SleepMinSoc);
|
|
2005
|
-
this.addOptionalCharacteristic(Characteristic.SleepMaxSoc);
|
|
2006
|
-
this.addOptionalCharacteristic(Characteristic.Firmware);
|
|
2007
|
-
this.addOptionalCharacteristic(Characteristic.PlcLevel);
|
|
2008
|
-
this.addOptionalCharacteristic(Characteristic.GridProfile);
|
|
2009
|
-
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2010
|
-
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2011
|
-
}
|
|
2012
|
-
}
|
|
2013
|
-
Service.AcBatterieService = AcBatterieService;
|
|
2014
|
-
|
|
2015
|
-
//AC Batterie summary service
|
|
2016
|
-
class AcBatterieSummaryService extends Service {
|
|
2017
|
-
constructor(displayName, subtype) {
|
|
2018
|
-
super(displayName, '00000005-000A-1000-8000-0026BB765291', subtype);
|
|
2019
|
-
// Mandatory Characteristics
|
|
2020
|
-
this.addCharacteristic(Characteristic.ChargeState);
|
|
2021
|
-
// Optional Characteristics
|
|
2022
|
-
this.addOptionalCharacteristic(Characteristic.Power);
|
|
2023
|
-
this.addOptionalCharacteristic(Characteristic.Energy);
|
|
2024
|
-
this.addOptionalCharacteristic(Characteristic.PercentFull);
|
|
2025
|
-
this.addOptionalCharacteristic(Characteristic.ActiveCount);
|
|
2026
|
-
this.addOptionalCharacteristic(Characteristic.GridProfile);
|
|
2027
|
-
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2028
|
-
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2029
|
-
}
|
|
2030
|
-
}
|
|
2031
|
-
Service.AcBatterieSummaryService = AcBatterieSummaryService;
|
|
2032
1926
|
|
|
2033
1927
|
//Meters service
|
|
2034
1928
|
class MeterService extends Service {
|
|
@@ -2083,24 +1977,109 @@ export default (api) => {
|
|
|
2083
1977
|
}
|
|
2084
1978
|
Service.PowerAndEnergyService = PowerAndEnergyService;
|
|
2085
1979
|
|
|
2086
|
-
//
|
|
2087
|
-
class
|
|
1980
|
+
//AC Batterie summary service
|
|
1981
|
+
class AcBatterieSummaryService extends Service {
|
|
2088
1982
|
constructor(displayName, subtype) {
|
|
2089
|
-
super(displayName, '
|
|
1983
|
+
super(displayName, '00000005-000A-1000-8000-0026BB765291', subtype);
|
|
1984
|
+
// Mandatory Characteristics
|
|
1985
|
+
this.addCharacteristic(Characteristic.ChargeState);
|
|
1986
|
+
// Optional Characteristics
|
|
1987
|
+
this.addOptionalCharacteristic(Characteristic.Power);
|
|
1988
|
+
this.addOptionalCharacteristic(Characteristic.Energy);
|
|
1989
|
+
this.addOptionalCharacteristic(Characteristic.PercentFull);
|
|
1990
|
+
this.addOptionalCharacteristic(Characteristic.ActiveCount);
|
|
1991
|
+
this.addOptionalCharacteristic(Characteristic.GridProfile);
|
|
1992
|
+
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
1993
|
+
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
1994
|
+
}
|
|
1995
|
+
}
|
|
1996
|
+
Service.AcBatterieSummaryService = AcBatterieSummaryService;
|
|
1997
|
+
|
|
1998
|
+
//AC Batterie service
|
|
1999
|
+
class AcBatterieService extends Service {
|
|
2000
|
+
constructor(displayName, subtype) {
|
|
2001
|
+
super(displayName, '00000006-000A-1000-8000-0026BB765291', subtype);
|
|
2002
|
+
// Mandatory Characteristics
|
|
2003
|
+
this.addCharacteristic(Characteristic.ChargeState);
|
|
2004
|
+
// Optional Characteristics
|
|
2005
|
+
this.addOptionalCharacteristic(Characteristic.Status);
|
|
2006
|
+
this.addOptionalCharacteristic(Characteristic.Producing);
|
|
2007
|
+
this.addOptionalCharacteristic(Characteristic.Communicating);
|
|
2008
|
+
this.addOptionalCharacteristic(Characteristic.Provisioned);
|
|
2009
|
+
this.addOptionalCharacteristic(Characteristic.Operating);
|
|
2010
|
+
this.addOptionalCharacteristic(Characteristic.GfiClear);
|
|
2011
|
+
this.addOptionalCharacteristic(Characteristic.SleepEnabled);
|
|
2012
|
+
this.addOptionalCharacteristic(Characteristic.PercentFull);
|
|
2013
|
+
this.addOptionalCharacteristic(Characteristic.MaxCellTemp);
|
|
2014
|
+
this.addOptionalCharacteristic(Characteristic.SleepMinSoc);
|
|
2015
|
+
this.addOptionalCharacteristic(Characteristic.SleepMaxSoc);
|
|
2016
|
+
this.addOptionalCharacteristic(Characteristic.Firmware);
|
|
2017
|
+
this.addOptionalCharacteristic(Characteristic.PlcLevel);
|
|
2018
|
+
this.addOptionalCharacteristic(Characteristic.GridProfile);
|
|
2019
|
+
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2020
|
+
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2021
|
+
}
|
|
2022
|
+
}
|
|
2023
|
+
Service.AcBatterieService = AcBatterieService;
|
|
2024
|
+
|
|
2025
|
+
|
|
2026
|
+
//Microinverter service
|
|
2027
|
+
class MicroinverterService extends Service {
|
|
2028
|
+
constructor(displayName, subtype) {
|
|
2029
|
+
super(displayName, '00000007-000A-1000-8000-0026BB765291', subtype);
|
|
2090
2030
|
// Mandatory Characteristics
|
|
2091
2031
|
this.addCharacteristic(Characteristic.Status);
|
|
2092
2032
|
// Optional Characteristics
|
|
2033
|
+
this.addOptionalCharacteristic(Characteristic.Producing);
|
|
2093
2034
|
this.addOptionalCharacteristic(Characteristic.Communicating);
|
|
2035
|
+
this.addOptionalCharacteristic(Characteristic.Provisioned);
|
|
2094
2036
|
this.addOptionalCharacteristic(Characteristic.Operating);
|
|
2095
2037
|
this.addOptionalCharacteristic(Characteristic.GfiClear);
|
|
2038
|
+
this.addOptionalCharacteristic(Characteristic.Phase);
|
|
2096
2039
|
this.addOptionalCharacteristic(Characteristic.Firmware);
|
|
2040
|
+
this.addOptionalCharacteristic(Characteristic.PowerW);
|
|
2041
|
+
this.addOptionalCharacteristic(Characteristic.PowerPeakW);
|
|
2042
|
+
this.addOptionalCharacteristic(Characteristic.EnergyTodayWh);
|
|
2043
|
+
this.addOptionalCharacteristic(Characteristic.EnergyYesterdayWh);
|
|
2044
|
+
this.addOptionalCharacteristic(Characteristic.EnergyLastSevenDays);
|
|
2045
|
+
this.addOptionalCharacteristic(Characteristic.EnergyLifetime);
|
|
2046
|
+
this.addOptionalCharacteristic(Characteristic.Current);
|
|
2047
|
+
this.addOptionalCharacteristic(Characteristic.Voltage);
|
|
2048
|
+
this.addOptionalCharacteristic(Characteristic.Frequency);
|
|
2049
|
+
this.addOptionalCharacteristic(Characteristic.CurrentDc);
|
|
2050
|
+
this.addOptionalCharacteristic(Characteristic.VoltageDc);
|
|
2051
|
+
this.addOptionalCharacteristic(Characteristic.Temperature);
|
|
2052
|
+
this.addOptionalCharacteristic(Characteristic.PlcLevel);
|
|
2053
|
+
this.addOptionalCharacteristic(Characteristic.GridProfile);
|
|
2054
|
+
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2055
|
+
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2056
|
+
}
|
|
2057
|
+
}
|
|
2058
|
+
Service.MicroinverterService = MicroinverterService;
|
|
2059
|
+
|
|
2060
|
+
// Enpower service
|
|
2061
|
+
class EnpowerService extends Service {
|
|
2062
|
+
constructor(displayName, subtype) {
|
|
2063
|
+
super(displayName, '00000008-000A-1000-8000-0026BB765291', subtype);
|
|
2064
|
+
// Mandatory Characteristics
|
|
2065
|
+
this.addCharacteristic(Characteristic.AdminState);
|
|
2066
|
+
// Optional Characteristics
|
|
2067
|
+
this.addOptionalCharacteristic(Characteristic.Communicating);
|
|
2068
|
+
this.addOptionalCharacteristic(Characteristic.CommLevelSubGhz);
|
|
2069
|
+
this.addOptionalCharacteristic(Characteristic.CommLevel24Ghz);
|
|
2070
|
+
this.addOptionalCharacteristic(Characteristic.Temperature);
|
|
2071
|
+
this.addOptionalCharacteristic(Characteristic.OperatingState);
|
|
2072
|
+
this.addOptionalCharacteristic(Characteristic.GridMode);
|
|
2073
|
+
this.addOptionalCharacteristic(Characteristic.EnchgGridMode);
|
|
2074
|
+
this.addOptionalCharacteristic(Characteristic.Status);
|
|
2097
2075
|
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2098
2076
|
this.addOptionalCharacteristic(Characteristic.CommInterface);
|
|
2099
|
-
this.addOptionalCharacteristic(Characteristic.
|
|
2077
|
+
this.addOptionalCharacteristic(Characteristic.PlcLevel);
|
|
2078
|
+
this.addOptionalCharacteristic(Characteristic.GridProfile);
|
|
2100
2079
|
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2101
2080
|
}
|
|
2102
2081
|
}
|
|
2103
|
-
Service.
|
|
2082
|
+
Service.EnpowerService = EnpowerService;
|
|
2104
2083
|
|
|
2105
2084
|
//Ennsemble service
|
|
2106
2085
|
class EnsembleSummaryService extends Service {
|
|
@@ -2135,6 +2114,81 @@ export default (api) => {
|
|
|
2135
2114
|
}
|
|
2136
2115
|
Service.EnsembleSummaryService = EnsembleSummaryService;
|
|
2137
2116
|
|
|
2117
|
+
//Wireless connection kit service
|
|
2118
|
+
class WirelessConnectionKitService extends Service {
|
|
2119
|
+
constructor(displayName, subtype) {
|
|
2120
|
+
super(displayName, '00000010-000A-1000-8000-0026BB765291', subtype);
|
|
2121
|
+
// Mandatory Characteristics
|
|
2122
|
+
this.addCharacteristic(Characteristic.Type);
|
|
2123
|
+
// Optional Characteristics
|
|
2124
|
+
this.addOptionalCharacteristic(Characteristic.SignalStrength);
|
|
2125
|
+
this.addOptionalCharacteristic(Characteristic.Connected);
|
|
2126
|
+
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2127
|
+
}
|
|
2128
|
+
}
|
|
2129
|
+
Service.WirelessConnectionKitService = WirelessConnectionKitService;
|
|
2130
|
+
|
|
2131
|
+
//Ensemble inventory service
|
|
2132
|
+
class EnsembleService extends Service {
|
|
2133
|
+
constructor(displayName, subtype) {
|
|
2134
|
+
super(displayName, '00000011-000B-1000-8000-0026BB765291', subtype);
|
|
2135
|
+
// Mandatory Characteristics
|
|
2136
|
+
this.addCharacteristic(Characteristic.Status);
|
|
2137
|
+
// Optional Characteristics
|
|
2138
|
+
this.addOptionalCharacteristic(Characteristic.Communicating);
|
|
2139
|
+
this.addOptionalCharacteristic(Characteristic.Operating);
|
|
2140
|
+
this.addOptionalCharacteristic(Characteristic.GfiClear);
|
|
2141
|
+
this.addOptionalCharacteristic(Characteristic.Firmware);
|
|
2142
|
+
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2143
|
+
this.addOptionalCharacteristic(Characteristic.CommInterface);
|
|
2144
|
+
this.addOptionalCharacteristic(Characteristic.AdminState);
|
|
2145
|
+
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2146
|
+
}
|
|
2147
|
+
}
|
|
2148
|
+
Service.EnsembleService = EnsembleService;
|
|
2149
|
+
|
|
2150
|
+
//Live data service
|
|
2151
|
+
class LiveDataService extends Service {
|
|
2152
|
+
constructor(displayName, subtype) {
|
|
2153
|
+
super(displayName, '00000012-000A-1000-8000-0026BB765291', subtype);
|
|
2154
|
+
// Mandatory Characteristics
|
|
2155
|
+
this.addCharacteristic(Characteristic.Power);
|
|
2156
|
+
// Optional Characteristics
|
|
2157
|
+
this.addOptionalCharacteristic(Characteristic.PowerL1);
|
|
2158
|
+
this.addOptionalCharacteristic(Characteristic.PowerL2);
|
|
2159
|
+
this.addOptionalCharacteristic(Characteristic.PowerL3);
|
|
2160
|
+
this.addOptionalCharacteristic(Characteristic.ApparentPower);
|
|
2161
|
+
this.addOptionalCharacteristic(Characteristic.ApparentPowerL1);
|
|
2162
|
+
this.addOptionalCharacteristic(Characteristic.ApparentPowerL2);
|
|
2163
|
+
this.addOptionalCharacteristic(Characteristic.ApparentPowerL3);
|
|
2164
|
+
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2165
|
+
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2166
|
+
}
|
|
2167
|
+
}
|
|
2168
|
+
Service.LiveDataService = LiveDataService;
|
|
2169
|
+
|
|
2170
|
+
//Generator service
|
|
2171
|
+
class GerneratorService extends Service {
|
|
2172
|
+
constructor(displayName, subtype) {
|
|
2173
|
+
super(displayName, '00000013-000A-1000-8000-0026BB765291', subtype);
|
|
2174
|
+
// Mandatory Characteristics
|
|
2175
|
+
this.addCharacteristic(Characteristic.AdminMode);
|
|
2176
|
+
// Optional Characteristics
|
|
2177
|
+
this.addOptionalCharacteristic(Characteristic.Type);
|
|
2178
|
+
this.addOptionalCharacteristic(Characteristic.AdminState);
|
|
2179
|
+
this.addOptionalCharacteristic(Characteristic.OperatingState);
|
|
2180
|
+
this.addOptionalCharacteristic(Characteristic.StartSoc);
|
|
2181
|
+
this.addOptionalCharacteristic(Characteristic.StopSoc);
|
|
2182
|
+
this.addOptionalCharacteristic(Characteristic.ExexOn);
|
|
2183
|
+
this.addOptionalCharacteristic(Characteristic.Shedule);
|
|
2184
|
+
this.addOptionalCharacteristic(Characteristic.Present);
|
|
2185
|
+
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2186
|
+
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2187
|
+
}
|
|
2188
|
+
}
|
|
2189
|
+
Service.GerneratorService = GerneratorService;
|
|
2190
|
+
|
|
2191
|
+
|
|
2138
2192
|
//Encharge service
|
|
2139
2193
|
class EnchargeService extends Service {
|
|
2140
2194
|
constructor(displayName, subtype) {
|
|
@@ -2165,34 +2219,10 @@ export default (api) => {
|
|
|
2165
2219
|
}
|
|
2166
2220
|
Service.EnchargeService = EnchargeService;
|
|
2167
2221
|
|
|
2168
|
-
// Enpower service
|
|
2169
|
-
class EnpowerService extends Service {
|
|
2170
|
-
constructor(displayName, subtype) {
|
|
2171
|
-
super(displayName, '00000008-000A-1000-8000-0026BB765291', subtype);
|
|
2172
|
-
// Mandatory Characteristics
|
|
2173
|
-
this.addCharacteristic(Characteristic.AdminState);
|
|
2174
|
-
// Optional Characteristics
|
|
2175
|
-
this.addOptionalCharacteristic(Characteristic.Communicating);
|
|
2176
|
-
this.addOptionalCharacteristic(Characteristic.CommLevelSubGhz);
|
|
2177
|
-
this.addOptionalCharacteristic(Characteristic.CommLevel24Ghz);
|
|
2178
|
-
this.addOptionalCharacteristic(Characteristic.Temperature);
|
|
2179
|
-
this.addOptionalCharacteristic(Characteristic.OperatingState);
|
|
2180
|
-
this.addOptionalCharacteristic(Characteristic.GridMode);
|
|
2181
|
-
this.addOptionalCharacteristic(Characteristic.EnchgGridMode);
|
|
2182
|
-
this.addOptionalCharacteristic(Characteristic.Status);
|
|
2183
|
-
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2184
|
-
this.addOptionalCharacteristic(Characteristic.CommInterface);
|
|
2185
|
-
this.addOptionalCharacteristic(Characteristic.PlcLevel);
|
|
2186
|
-
this.addOptionalCharacteristic(Characteristic.GridProfile);
|
|
2187
|
-
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2188
|
-
}
|
|
2189
|
-
}
|
|
2190
|
-
Service.EnpowerService = EnpowerService;
|
|
2191
|
-
|
|
2192
2222
|
//Collar service
|
|
2193
2223
|
class CollarService extends Service {
|
|
2194
2224
|
constructor(displayName, subtype) {
|
|
2195
|
-
super(displayName, '
|
|
2225
|
+
super(displayName, '00000015-000A-1000-8000-0026BB765291', subtype);
|
|
2196
2226
|
// Mandatory Characteristics
|
|
2197
2227
|
this.addCharacteristic(Characteristic.AdminState);
|
|
2198
2228
|
// Optional Characteristics
|
|
@@ -2211,7 +2241,7 @@ export default (api) => {
|
|
|
2211
2241
|
//C6 combiner controler service
|
|
2212
2242
|
class C6CombinerControlerService extends Service {
|
|
2213
2243
|
constructor(displayName, subtype) {
|
|
2214
|
-
super(displayName, '
|
|
2244
|
+
super(displayName, '00000016-000A-1000-8000-0026BB765291', subtype);
|
|
2215
2245
|
// Mandatory Characteristics
|
|
2216
2246
|
this.addCharacteristic(Characteristic.AdminState);
|
|
2217
2247
|
// Optional Characteristics
|
|
@@ -2227,7 +2257,7 @@ export default (api) => {
|
|
|
2227
2257
|
//C6 rgm servicee
|
|
2228
2258
|
class C6RgmService extends Service {
|
|
2229
2259
|
constructor(displayName, subtype) {
|
|
2230
|
-
super(displayName, '
|
|
2260
|
+
super(displayName, '00000017-000A-1000-8000-0026BB765291', subtype);
|
|
2231
2261
|
// Mandatory Characteristics
|
|
2232
2262
|
this.addCharacteristic(Characteristic.Status);
|
|
2233
2263
|
// Optional Characteristics
|
|
@@ -2239,46 +2269,19 @@ export default (api) => {
|
|
|
2239
2269
|
}
|
|
2240
2270
|
Service.C6RgmService = C6RgmService;
|
|
2241
2271
|
|
|
2242
|
-
//
|
|
2243
|
-
class
|
|
2244
|
-
constructor(displayName, subtype) {
|
|
2245
|
-
super(displayName, '00000013-000A-1000-8000-0026BB765291', subtype);
|
|
2246
|
-
// Mandatory Characteristics
|
|
2247
|
-
this.addCharacteristic(Characteristic.AdminMode);
|
|
2248
|
-
// Optional Characteristics
|
|
2249
|
-
this.addOptionalCharacteristic(Characteristic.Type);
|
|
2250
|
-
this.addOptionalCharacteristic(Characteristic.AdminState);
|
|
2251
|
-
this.addOptionalCharacteristic(Characteristic.OperatingState);
|
|
2252
|
-
this.addOptionalCharacteristic(Characteristic.StartSoc);
|
|
2253
|
-
this.addOptionalCharacteristic(Characteristic.StopSoc);
|
|
2254
|
-
this.addOptionalCharacteristic(Characteristic.ExexOn);
|
|
2255
|
-
this.addOptionalCharacteristic(Characteristic.Shedule);
|
|
2256
|
-
this.addOptionalCharacteristic(Characteristic.Present);
|
|
2257
|
-
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2258
|
-
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2259
|
-
}
|
|
2260
|
-
}
|
|
2261
|
-
Service.GerneratorService = GerneratorService;
|
|
2262
|
-
|
|
2263
|
-
//Live data service
|
|
2264
|
-
class LiveDataService extends Service {
|
|
2272
|
+
//Network interafe service
|
|
2273
|
+
class NetworkInterfaceService extends Service {
|
|
2265
2274
|
constructor(displayName, subtype) {
|
|
2266
|
-
super(displayName, '
|
|
2275
|
+
super(displayName, '00000018-000A-1000-8000-0026BB765291', subtype);
|
|
2267
2276
|
// Mandatory Characteristics
|
|
2268
|
-
this.addCharacteristic(Characteristic.
|
|
2277
|
+
this.addCharacteristic(Characteristic.Type);
|
|
2269
2278
|
// Optional Characteristics
|
|
2270
|
-
this.addOptionalCharacteristic(Characteristic.
|
|
2271
|
-
this.addOptionalCharacteristic(Characteristic.
|
|
2272
|
-
this.addOptionalCharacteristic(Characteristic.PowerL3);
|
|
2273
|
-
this.addOptionalCharacteristic(Characteristic.ApparentPower);
|
|
2274
|
-
this.addOptionalCharacteristic(Characteristic.ApparentPowerL1);
|
|
2275
|
-
this.addOptionalCharacteristic(Characteristic.ApparentPowerL2);
|
|
2276
|
-
this.addOptionalCharacteristic(Characteristic.ApparentPowerL3);
|
|
2277
|
-
this.addOptionalCharacteristic(Characteristic.ReadingTime);
|
|
2279
|
+
this.addOptionalCharacteristic(Characteristic.SignalStrength);
|
|
2280
|
+
this.addOptionalCharacteristic(Characteristic.AddressIp);
|
|
2278
2281
|
this.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2279
2282
|
}
|
|
2280
2283
|
}
|
|
2281
|
-
Service.
|
|
2284
|
+
Service.NetworkInterfaceService = NetworkInterfaceService;
|
|
2282
2285
|
|
|
2283
2286
|
// EVE electric meter
|
|
2284
2287
|
class EvePower extends Characteristic {
|
package/src/energymeter.js
CHANGED
|
@@ -960,8 +960,8 @@ class EnergyMeter extends EventEmitter {
|
|
|
960
960
|
const key = MetersKeyMap[meterType];
|
|
961
961
|
const measurementType = ApiCodes[meterType];
|
|
962
962
|
|
|
963
|
-
let sourceMeter, sourceEnergy
|
|
964
|
-
let power, energyLifetime;
|
|
963
|
+
let sourceMeter, sourceEnergy;
|
|
964
|
+
let power, energyLifetime, energyLifetimeWithOffset;
|
|
965
965
|
switch (key) {
|
|
966
966
|
case 'production': {
|
|
967
967
|
const sourcePcu = this.pv.powerAndEnergy[key].pcu;
|
|
@@ -970,7 +970,7 @@ class EnergyMeter extends EventEmitter {
|
|
|
970
970
|
sourceEnergy = meterEnabled ? sourceEim : sourcePcu;
|
|
971
971
|
power = this.functions.isValidValue(sourceMeter.power) ? sourceMeter.power : null;
|
|
972
972
|
energyLifetime = this.functions.isValidValue(sourceMeter.energyLifetime) ? sourceMeter.energyLifetime / 1000 : null;
|
|
973
|
-
energyLifetimeWithOffset = this.functions.isValidValue(
|
|
973
|
+
energyLifetimeWithOffset = this.functions.isValidValue(energyLifetime) ? energyLifetime + this.energyProductionLifetimeOffset : null;
|
|
974
974
|
break;
|
|
975
975
|
}
|
|
976
976
|
case 'consumptionNet': {
|
|
@@ -978,7 +978,7 @@ class EnergyMeter extends EventEmitter {
|
|
|
978
978
|
sourceEnergy = this.pv.powerAndEnergy.consumptionNet;
|
|
979
979
|
power = this.functions.isValidValue(sourceMeter.power) ? sourceMeter.power : null;
|
|
980
980
|
energyLifetime = this.functions.isValidValue(sourceMeter.energyLifetime) ? sourceMeter.energyLifetime / 1000 : null;
|
|
981
|
-
energyLifetimeWithOffset = this.functions.isValidValue(
|
|
981
|
+
energyLifetimeWithOffset = this.functions.isValidValue(energyLifetime) ? energyLifetime + this.energyConsumptionNetLifetimeOffset : null;
|
|
982
982
|
break;
|
|
983
983
|
}
|
|
984
984
|
case 'consumptionTotal': {
|
|
@@ -986,7 +986,7 @@ class EnergyMeter extends EventEmitter {
|
|
|
986
986
|
sourceEnergy = this.pv.powerAndEnergy.consumptionTotal;
|
|
987
987
|
power = this.functions.isValidValue(sourceMeter.power) ? sourceMeter.power : null;
|
|
988
988
|
energyLifetime = this.functions.isValidValue(sourceMeter.energyLifetime) ? sourceMeter.energyLifetime / 1000 : null;
|
|
989
|
-
energyLifetimeWithOffset = this.functions.isValidValue(
|
|
989
|
+
energyLifetimeWithOffset = this.functions.isValidValue(energyLifetime) ? energyLifetime + this.energyConsumptionTotalLifetimeOffset : null;
|
|
990
990
|
break;
|
|
991
991
|
}
|
|
992
992
|
}
|
|
@@ -1015,8 +1015,8 @@ class EnergyMeter extends EventEmitter {
|
|
|
1015
1015
|
|
|
1016
1016
|
// Create characteristics energy meter
|
|
1017
1017
|
const characteristics = [
|
|
1018
|
-
{ type: Characteristic.EvePower, value:
|
|
1019
|
-
{ type: Characteristic.EveEnergyLifetime, value:
|
|
1018
|
+
{ type: Characteristic.EvePower, value: power },
|
|
1019
|
+
{ type: Characteristic.EveEnergyLifetime, value: energyLifetimeWithOffset },
|
|
1020
1020
|
];
|
|
1021
1021
|
|
|
1022
1022
|
// Create characteristics energy meter
|
package/src/envoydevice.js
CHANGED
|
@@ -3272,6 +3272,15 @@ class EnvoyDevice extends EventEmitter {
|
|
|
3272
3272
|
powerFactorDivide: meter.powerFactorDivide,
|
|
3273
3273
|
};
|
|
3274
3274
|
|
|
3275
|
+
// Emit info logs if enabled
|
|
3276
|
+
if (this.logInfo) {
|
|
3277
|
+
this.emit('info', `Meter: ${measurementType}, state: ${meterData.state ? 'Enabled' : 'Disabled'}`);
|
|
3278
|
+
this.emit('info', `Meter: ${measurementType}, phase mode: ${meterData.phaseMode}`);
|
|
3279
|
+
this.emit('info', `Meter: ${measurementType}, phase count: ${meterData.phaseCount}`);
|
|
3280
|
+
this.emit('info', `Meter: ${measurementType}, metering status: ${meterData.meteringStatus}`);
|
|
3281
|
+
this.emit('info', `Meter: ${measurementType}, status: ${meterData.deviceStatus}`);
|
|
3282
|
+
}
|
|
3283
|
+
|
|
3275
3284
|
// Create characteristics
|
|
3276
3285
|
const characteristics = [
|
|
3277
3286
|
{ type: Characteristic.State, value: meterData.state },
|
|
@@ -3303,6 +3312,16 @@ class EnvoyDevice extends EventEmitter {
|
|
|
3303
3312
|
channels: meter.channels,
|
|
3304
3313
|
});
|
|
3305
3314
|
|
|
3315
|
+
// Emit info logs if enabled
|
|
3316
|
+
if (this.logInfo) {
|
|
3317
|
+
this.emit('info', `Meter: ${measurementType}, power: ${meterData.powerKw} kW`);
|
|
3318
|
+
this.emit('info', `Meter: ${measurementType}, energy lifetime: ${meterData.energyLifetimeKw} kWh`);
|
|
3319
|
+
this.emit('info', `Meter: ${measurementType}, current: ${meterData.current} A`);
|
|
3320
|
+
this.emit('info', `Meter: ${measurementType}, voltage: ${meterData.voltage} V`);
|
|
3321
|
+
this.emit('info', `Meter: ${measurementType}, power factor: ${meterData.pwrFactor} cos φ`);
|
|
3322
|
+
this.emit('info', `Meter: ${measurementType}, frequency: ${meterData.frequency} Hz`);
|
|
3323
|
+
}
|
|
3324
|
+
|
|
3306
3325
|
// Add characteristics
|
|
3307
3326
|
characteristics.push(
|
|
3308
3327
|
{ type: Characteristic.Power, value: meterData.powerKw },
|
|
@@ -3318,24 +3337,6 @@ class EnvoyDevice extends EventEmitter {
|
|
|
3318
3337
|
if (measurementType !== 'Consumption Total') characteristics.push({ type: Characteristic.EnergyLifetimeUpload, value: meterData.energyLifetimeUploadKw });
|
|
3319
3338
|
}
|
|
3320
3339
|
|
|
3321
|
-
// Emit info logs if enabled
|
|
3322
|
-
if (this.logInfo) {
|
|
3323
|
-
this.emit('info', `Meter: ${measurementType}, state: ${meterData.state ? 'Enabled' : 'Disabled'}`);
|
|
3324
|
-
this.emit('info', `Meter: ${measurementType}, phase mode: ${meterData.phaseMode}`);
|
|
3325
|
-
this.emit('info', `Meter: ${measurementType}, phase count: ${meterData.phaseCount}`);
|
|
3326
|
-
this.emit('info', `Meter: ${measurementType}, metering status: ${meterData.meteringStatus}`);
|
|
3327
|
-
this.emit('info', `Meter: ${measurementType}, status: ${meterData.deviceStatus}`);
|
|
3328
|
-
|
|
3329
|
-
if (meter.state) {
|
|
3330
|
-
this.emit('info', `Meter: ${measurementType}, power: ${meterData.powerKw} kW`);
|
|
3331
|
-
this.emit('info', `Meter: ${measurementType}, energy lifetime: ${meterData.energyLifetimeKw} kWh`);
|
|
3332
|
-
this.emit('info', `Meter: ${measurementType}, current: ${meterData.current} A`);
|
|
3333
|
-
this.emit('info', `Meter: ${measurementType}, voltage: ${meterData.voltage} V`);
|
|
3334
|
-
this.emit('info', `Meter: ${measurementType}, power factor: ${meterData.pwrFactor} cos φ`);
|
|
3335
|
-
this.emit('info', `Meter: ${measurementType}, frequency: ${meterData.frequency} Hz`);
|
|
3336
|
-
}
|
|
3337
|
-
}
|
|
3338
|
-
|
|
3339
3340
|
// Update meters services
|
|
3340
3341
|
for (const { type, value } of characteristics) {
|
|
3341
3342
|
if (!this.functions.isValidValue(value)) continue;
|
|
@@ -3819,7 +3820,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
3819
3820
|
energyLastSevenDays = this.functions.isValidValue(sourceEnergy.energyLastSevenDays) ? sourceEnergy.energyLastSevenDays : null;
|
|
3820
3821
|
energyLifetime = this.functions.isValidValue(sourceMeter.energyLifetime) ? sourceMeter.energyLifetime : null;
|
|
3821
3822
|
energyLifetimeUpload = this.functions.isValidValue(sourceMeter.energyLifetimeUpload) ? sourceMeter.energyLifetimeUpload : null;
|
|
3822
|
-
energyLifetimeWithOffset = this.functions.isValidValue(
|
|
3823
|
+
energyLifetimeWithOffset = this.functions.isValidValue(energyLifetime) ? energyLifetime + this.energyProductionLifetimeOffset : null;
|
|
3823
3824
|
break;
|
|
3824
3825
|
}
|
|
3825
3826
|
case 'consumptionNet': {
|
|
@@ -3832,7 +3833,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
3832
3833
|
energyLastSevenDays = this.functions.isValidValue(sourceEnergy.energyLastSevenDays) ? sourceEnergy.energyLastSevenDays : null;
|
|
3833
3834
|
energyLifetime = this.functions.isValidValue(sourceMeter.energyLifetime) ? sourceMeter.energyLifetime : null;
|
|
3834
3835
|
energyLifetimeUpload = this.functions.isValidValue(sourceMeter.energyLifetimeUpload) ? sourceMeter.energyLifetimeUpload : null;
|
|
3835
|
-
energyLifetimeWithOffset = this.functions.isValidValue(
|
|
3836
|
+
energyLifetimeWithOffset = this.functions.isValidValue(energyLifetime) ? energyLifetime + this.energyConsumptionNetLifetimeOffset : null;
|
|
3836
3837
|
break;
|
|
3837
3838
|
}
|
|
3838
3839
|
case 'consumptionTotal': {
|
|
@@ -3844,7 +3845,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
3844
3845
|
energyToday = this.functions.isValidValue(sourceEnergy.energyToday) ? sourceEnergy.energyToday : null;
|
|
3845
3846
|
energyLastSevenDays = this.functions.isValidValue(sourceEnergy.energyLastSevenDays) ? sourceEnergy.energyLastSevenDays : null;
|
|
3846
3847
|
energyLifetime = this.functions.isValidValue(sourceMeter.energyLifetime) ? sourceMeter.energyLifetime : null;
|
|
3847
|
-
energyLifetimeWithOffset = this.functions.isValidValue(
|
|
3848
|
+
energyLifetimeWithOffset = this.functions.isValidValue(energyLifetime) ? energyLifetime + this.energyConsumptionTotalLifetimeOffset : null;
|
|
3848
3849
|
break;
|
|
3849
3850
|
}
|
|
3850
3851
|
}
|