homebridge-enphase-envoy 10.2.6-beta.8 → 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 +36 -35
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
|
@@ -2083,10 +2083,10 @@ class EnvoyDevice extends EventEmitter {
|
|
|
2083
2083
|
if (this.logDebug) this.emit('debug', `Prepare ${enchargeName} Backup Level Summary Service`);
|
|
2084
2084
|
|
|
2085
2085
|
const control = this.enchargeBackupLevelSummaryAccessory;
|
|
2086
|
-
const { namePrefix,
|
|
2086
|
+
const { namePrefix, serviceType, characteristicType, characteristicType1 } = control;
|
|
2087
2087
|
const serviceName = namePrefix ? `${accessoryName} ${enchargeName}` : enchargeName;
|
|
2088
2088
|
|
|
2089
|
-
const controlService = accessory.addService(serviceType, serviceName, `
|
|
2089
|
+
const controlService = accessory.addService(serviceType, serviceName, `enchargeBackupLevelSummaryAccessoryService`);
|
|
2090
2090
|
controlService.addOptionalCharacteristic(Characteristic.ConfiguredName);
|
|
2091
2091
|
controlService.setCharacteristic(Characteristic.ConfiguredName, serviceName);
|
|
2092
2092
|
controlService.getCharacteristic(characteristicType)
|
|
@@ -2128,14 +2128,14 @@ class EnvoyDevice extends EventEmitter {
|
|
|
2128
2128
|
}
|
|
2129
2129
|
});
|
|
2130
2130
|
|
|
2131
|
-
this.
|
|
2131
|
+
this.enchargeBackupLevelSummaryAccessoryService = controlService;
|
|
2132
2132
|
}
|
|
2133
2133
|
|
|
2134
2134
|
//backup level summary sensors
|
|
2135
2135
|
if (this.enchargeBackupLevelSummarySensors.length > 0) {
|
|
2136
2136
|
if (this.logDebug) this.emit('debug', `Prepare ${enchargeName} Backup Level Sensor Services`);
|
|
2137
2137
|
|
|
2138
|
-
this.
|
|
2138
|
+
this.enchargeBackupLevelSummarySensorServices = [];
|
|
2139
2139
|
for (let i = 0; i < this.enchargeBackupLevelSummarySensors.length; i++) {
|
|
2140
2140
|
const sensor = this.enchargeBackupLevelSummarySensors[i];
|
|
2141
2141
|
const { namePrefix, name, serviceType, characteristicType } = sensor;
|
|
@@ -2151,13 +2151,13 @@ class EnvoyDevice extends EventEmitter {
|
|
|
2151
2151
|
return currentState;
|
|
2152
2152
|
});
|
|
2153
2153
|
|
|
2154
|
-
this.
|
|
2154
|
+
this.enchargeBackupLevelSummarySensorServices.push(sensorService);
|
|
2155
2155
|
}
|
|
2156
2156
|
}
|
|
2157
2157
|
|
|
2158
2158
|
//devices
|
|
2159
2159
|
this.enchargeServices = [];
|
|
2160
|
-
this.
|
|
2160
|
+
this.enchargeBackupLevelAndStatServices = [];
|
|
2161
2161
|
|
|
2162
2162
|
for (const encharge of this.pv.inventoryData.esubs.encharges.devices) {
|
|
2163
2163
|
const serialNumber = encharge.serialNumber;
|
|
@@ -2208,7 +2208,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
2208
2208
|
return currentChargeState;
|
|
2209
2209
|
});
|
|
2210
2210
|
|
|
2211
|
-
this.
|
|
2211
|
+
this.enchargeBackupLevelAndStatServices.push(controlService);
|
|
2212
2212
|
}
|
|
2213
2213
|
|
|
2214
2214
|
if (this.logDebug) this.emit('debug', `Prepare ${enchargeName} ${serialNumber} Service`);
|
|
@@ -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
|
}
|
|
@@ -4272,7 +4273,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
4272
4273
|
|
|
4273
4274
|
// Create characteristics
|
|
4274
4275
|
const characteristics = [
|
|
4275
|
-
{ type: characteristicType, value: state, valueKey: '
|
|
4276
|
+
{ type: characteristicType, value: state, valueKey: 'state' },
|
|
4276
4277
|
{ type: characteristicType1, value: backupLevel, valueKey: 'backupLevel' },
|
|
4277
4278
|
];
|
|
4278
4279
|
|
|
@@ -4280,7 +4281,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
4280
4281
|
for (const { type, value, valueKey } of characteristics) {
|
|
4281
4282
|
if (!this.functions.isValidValue(value)) continue;
|
|
4282
4283
|
accessory[valueKey] = value;
|
|
4283
|
-
this.
|
|
4284
|
+
this.enchargeBackupLevelSummaryAccessoryService?.updateCharacteristic(type, value);
|
|
4284
4285
|
}
|
|
4285
4286
|
}
|
|
4286
4287
|
|
|
@@ -4299,7 +4300,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
4299
4300
|
for (const { type, value, valueKey } of characteristics) {
|
|
4300
4301
|
if (!this.functions.isValidValue(value)) continue;
|
|
4301
4302
|
sensor[valueKey] = value;
|
|
4302
|
-
this.
|
|
4303
|
+
this.enchargeBackupLevelSummarySensorServices?.[i]?.updateCharacteristic(type, value);
|
|
4303
4304
|
};
|
|
4304
4305
|
}
|
|
4305
4306
|
}
|
|
@@ -4623,7 +4624,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
4623
4624
|
for (const { type, value, valueKey } of characteristics) {
|
|
4624
4625
|
if (!this.functions.isValidValue(value)) continue;
|
|
4625
4626
|
accessory[valueKey] = value;
|
|
4626
|
-
this.
|
|
4627
|
+
this.enchargeBackupLevelAndStatServices?.[index]?.updateCharacteristic(type, value);
|
|
4627
4628
|
}
|
|
4628
4629
|
}
|
|
4629
4630
|
|
|
@@ -5551,7 +5552,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
5551
5552
|
|
|
5552
5553
|
// Create characteristics
|
|
5553
5554
|
const characteristics = [
|
|
5554
|
-
{ type: characteristicType, value: state, valueKey: '
|
|
5555
|
+
{ type: characteristicType, value: state, valueKey: 'state' },
|
|
5555
5556
|
{ type: characteristicType1, value: backupLevel, valueKey: 'backupLevel' },
|
|
5556
5557
|
];
|
|
5557
5558
|
|
|
@@ -5559,7 +5560,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
5559
5560
|
for (const { type, value, valueKey } of characteristics) {
|
|
5560
5561
|
if (!this.functions.isValidValue(value)) continue;
|
|
5561
5562
|
accessory[valueKey] = value;
|
|
5562
|
-
this.
|
|
5563
|
+
this.enchargeBackupLevelSummaryAccessoryService?.updateCharacteristic(type, value);
|
|
5563
5564
|
}
|
|
5564
5565
|
}
|
|
5565
5566
|
|
|
@@ -5578,7 +5579,7 @@ class EnvoyDevice extends EventEmitter {
|
|
|
5578
5579
|
for (const { type, value, valueKey } of characteristics) {
|
|
5579
5580
|
if (!this.functions.isValidValue(value)) continue;
|
|
5580
5581
|
sensor[valueKey] = value;
|
|
5581
|
-
this.
|
|
5582
|
+
this.enchargeBackupLevelSummarySensorServices?.[i]?.updateCharacteristic(type, value);
|
|
5582
5583
|
};
|
|
5583
5584
|
}
|
|
5584
5585
|
}
|