@enyo-energy/energy-app-sdk 0.0.165 → 0.0.167
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/dist/cjs/energy-app-appliance-type.enum.cjs +1 -0
- package/dist/cjs/energy-app-appliance-type.enum.d.cts +2 -1
- package/dist/cjs/implementations/appliances/appliance-manager.cjs +2 -0
- package/dist/cjs/implementations/appliances/appliance-manager.d.cts +5 -1
- package/dist/cjs/implementations/appliances/in-memory-appliance-manager.cjs +17 -4
- package/dist/cjs/index.cjs +1 -0
- package/dist/cjs/index.d.cts +1 -0
- package/dist/cjs/types/enyo-appliance.cjs +1 -0
- package/dist/cjs/types/enyo-appliance.d.cts +5 -1
- package/dist/cjs/types/enyo-data-bus-value.cjs +1 -0
- package/dist/cjs/types/enyo-data-bus-value.d.cts +17 -0
- package/dist/cjs/types/enyo-heating-rod-appliance.cjs +24 -0
- package/dist/cjs/types/enyo-heating-rod-appliance.d.cts +37 -0
- package/dist/cjs/types/enyo-network-device.d.cts +30 -0
- package/dist/cjs/version.cjs +1 -1
- package/dist/cjs/version.d.cts +1 -1
- package/dist/energy-app-appliance-type.enum.d.ts +2 -1
- package/dist/energy-app-appliance-type.enum.js +1 -0
- package/dist/implementations/appliances/appliance-manager.d.ts +5 -1
- package/dist/implementations/appliances/appliance-manager.js +2 -0
- package/dist/implementations/appliances/in-memory-appliance-manager.js +17 -4
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/types/enyo-appliance.d.ts +5 -1
- package/dist/types/enyo-appliance.js +1 -0
- package/dist/types/enyo-data-bus-value.d.ts +17 -0
- package/dist/types/enyo-data-bus-value.js +1 -0
- package/dist/types/enyo-heating-rod-appliance.d.ts +37 -0
- package/dist/types/enyo-heating-rod-appliance.js +21 -0
- package/dist/types/enyo-network-device.d.ts +30 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/implementations/modbus/EnergyAppModbusBattery.cjs +0 -388
- package/dist/cjs/implementations/modbus/EnergyAppModbusBattery.d.cts +0 -59
- package/dist/cjs/implementations/modbus/EnergyAppModbusInverter.cjs +0 -348
- package/dist/cjs/implementations/modbus/EnergyAppModbusInverter.d.cts +0 -56
- package/dist/cjs/implementations/modbus/EnergyAppModbusMeter.cjs +0 -199
- package/dist/cjs/implementations/modbus/EnergyAppModbusMeter.d.cts +0 -26
- package/dist/cjs/implementations/modbus/sunspec/sunspec-devices.cjs +0 -342
- package/dist/cjs/implementations/modbus/sunspec/sunspec-devices.d.cts +0 -95
- package/dist/cjs/implementations/modbus/sunspec/sunspec-modbus-client.cjs +0 -433
- package/dist/cjs/implementations/modbus/sunspec/sunspec-modbus-client.d.cts +0 -171
- package/dist/cjs/implementations/udp/EnergyAppUdpServer.cjs +0 -174
- package/dist/cjs/implementations/udp/EnergyAppUdpServer.d.cts +0 -42
- package/dist/cjs/packages/energy-app-electricity-prices.cjs +0 -2
- package/dist/cjs/packages/energy-app-electricity-prices.d.cts +0 -74
- package/dist/cjs/types/enyo-electricity-prices.cjs +0 -2
- package/dist/cjs/types/enyo-electricity-prices.d.cts +0 -65
- package/dist/cjs/types/enyo-energy-tariff.cjs +0 -2
- package/dist/cjs/types/enyo-energy-tariff.d.cts +0 -64
- package/dist/cjs/types/enyo-storage.cjs +0 -2
- package/dist/cjs/types/enyo-storage.d.cts +0 -4
- package/dist/implementations/appliances/demo-appliance-manager.d.ts +0 -118
- package/dist/implementations/appliances/demo-appliance-manager.js +0 -277
- package/dist/implementations/modbus/EnergyAppModbusBattery.d.ts +0 -59
- package/dist/implementations/modbus/EnergyAppModbusBattery.js +0 -384
- package/dist/implementations/modbus/EnergyAppModbusInverter.d.ts +0 -56
- package/dist/implementations/modbus/EnergyAppModbusInverter.js +0 -344
- package/dist/implementations/modbus/EnergyAppModbusMeter.d.ts +0 -26
- package/dist/implementations/modbus/EnergyAppModbusMeter.js +0 -195
- package/dist/implementations/modbus/sunspec/sunspec-devices.d.ts +0 -95
- package/dist/implementations/modbus/sunspec/sunspec-devices.js +0 -335
- package/dist/implementations/modbus/sunspec/sunspec-modbus-client.d.ts +0 -171
- package/dist/implementations/modbus/sunspec/sunspec-modbus-client.js +0 -429
- package/dist/implementations/udp/EnergyAppUdpServer.d.ts +0 -42
- package/dist/implementations/udp/EnergyAppUdpServer.js +0 -169
- package/dist/packages/energy-app-electricity-prices.d.ts +0 -74
- package/dist/packages/energy-app-electricity-prices.js +0 -1
- package/dist/types/enyo-electricity-prices.d.ts +0 -65
- package/dist/types/enyo-electricity-prices.js +0 -1
- package/dist/types/enyo-energy-tariff.d.ts +0 -64
- package/dist/types/enyo-energy-tariff.js +0 -1
- package/dist/types/enyo-storage.d.ts +0 -4
- package/dist/types/enyo-storage.js +0 -1
|
@@ -20,4 +20,5 @@ var EnergyAppApplianceTypeEnum;
|
|
|
20
20
|
EnergyAppApplianceTypeEnum["Oven"] = "oven";
|
|
21
21
|
EnergyAppApplianceTypeEnum["Freezer"] = "freezer";
|
|
22
22
|
EnergyAppApplianceTypeEnum["AirConditioning"] = "air-conditioning";
|
|
23
|
+
EnergyAppApplianceTypeEnum["HeatingRod"] = "heating-rod";
|
|
23
24
|
})(EnergyAppApplianceTypeEnum || (exports.EnergyAppApplianceTypeEnum = EnergyAppApplianceTypeEnum = {}));
|
|
@@ -59,6 +59,7 @@ const MERGEABLE_METADATA_KEYS = [
|
|
|
59
59
|
'meter',
|
|
60
60
|
'temperatureSensor',
|
|
61
61
|
'airConditioning',
|
|
62
|
+
'heatingRod',
|
|
62
63
|
];
|
|
63
64
|
/**
|
|
64
65
|
* Manages appliances in the energy system with configurable identification strategies.
|
|
@@ -207,6 +208,7 @@ class ApplianceManager {
|
|
|
207
208
|
inverter: appliance.inverter,
|
|
208
209
|
temperatureSensor: appliance.temperatureSensor,
|
|
209
210
|
airConditioning: appliance.airConditioning,
|
|
211
|
+
heatingRod: appliance.heatingRod,
|
|
210
212
|
// Conditionally spread the two optional top-level fields that are NOT
|
|
211
213
|
// covered by MERGEABLE_METADATA_KEYS. If they were always materialized
|
|
212
214
|
// as explicit keys, an omitted (undefined) value would clobber the
|
|
@@ -8,6 +8,7 @@ import type { EnyoInverterApplianceMetadata } from "../../types/enyo-inverter-ap
|
|
|
8
8
|
import type { EnyoMeterAppliance } from "../../types/enyo-meter-appliance.cjs";
|
|
9
9
|
import type { EnyoTemperatureSensorApplianceMetadata } from "../../types/enyo-temperature-sensor-appliance.cjs";
|
|
10
10
|
import type { EnyoAirConditioningApplianceMetadata } from "../../types/enyo-air-conditioning-appliance.cjs";
|
|
11
|
+
import type { EnyoHeatingRodApplianceMetadata } from "../../types/enyo-heating-rod-appliance.cjs";
|
|
11
12
|
import { IdentifierStrategy } from "./identifier-strategies.cjs";
|
|
12
13
|
/**
|
|
13
14
|
* Thrown when {@link ApplianceManager.createOrUpdateAppliance} is called with
|
|
@@ -59,6 +60,7 @@ export interface ApplianceConfig {
|
|
|
59
60
|
battery?: EnyoBatteryApplianceMetadata;
|
|
60
61
|
temperatureSensor?: EnyoTemperatureSensorApplianceMetadata;
|
|
61
62
|
airConditioning?: EnyoAirConditioningApplianceMetadata;
|
|
63
|
+
heatingRod?: EnyoHeatingRodApplianceMetadata;
|
|
62
64
|
availableFeatures?: EnyoApplianceAvailableFeaturesEnum[];
|
|
63
65
|
/**
|
|
64
66
|
* Optional identifier of the cloud-deployed energy app package that manages
|
|
@@ -140,7 +142,7 @@ export declare class ApplianceManager {
|
|
|
140
142
|
* @param update The partial update data to merge
|
|
141
143
|
* @returns The merged appliance data (without `id`)
|
|
142
144
|
*/
|
|
143
|
-
|
|
145
|
+
protected mergeApplianceData(existing: EnyoAppliance, update: Partial<Omit<PartialEnyoAppliance, 'id'>>): Omit<EnyoAppliance, 'id'>;
|
|
144
146
|
/**
|
|
145
147
|
* Creates a new ApplianceManager instance.
|
|
146
148
|
*
|
|
@@ -418,6 +420,8 @@ export interface PartialEnyoAppliance {
|
|
|
418
420
|
temperatureSensor?: Partial<EnyoTemperatureSensorApplianceMetadata>;
|
|
419
421
|
/** Optional Metadata of the Appliance if of type AirConditioning */
|
|
420
422
|
airConditioning?: Partial<EnyoAirConditioningApplianceMetadata>;
|
|
423
|
+
/** Optional Metadata of the Appliance if of type HeatingRod */
|
|
424
|
+
heatingRod?: Partial<EnyoHeatingRodApplianceMetadata>;
|
|
421
425
|
/** Optional custom name for the appliance, defined by the user */
|
|
422
426
|
customName?: string;
|
|
423
427
|
/**
|
|
@@ -52,10 +52,12 @@ class InMemoryApplianceManager extends appliance_manager_js_1.ApplianceManager {
|
|
|
52
52
|
enyo_appliance_js_1.EnyoApplianceStateEnum.Connected,
|
|
53
53
|
...appliance.metadata
|
|
54
54
|
};
|
|
55
|
-
// Build appliance data
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
// Build the incoming appliance data covering every ApplianceConfig field.
|
|
56
|
+
// The two optional top-level fields that are NOT shallow-merged by
|
|
57
|
+
// mergeApplianceData (`cloudPackageId`, `availableFeatures`) are only
|
|
58
|
+
// materialized when provided so an omitted value cannot clobber the stored
|
|
59
|
+
// one during an update; pass an explicit value (e.g. `[]`) to clear them.
|
|
60
|
+
const newApplianceData = {
|
|
59
61
|
name: appliance.name,
|
|
60
62
|
type: appliance.type,
|
|
61
63
|
networkDeviceIds,
|
|
@@ -66,7 +68,18 @@ class InMemoryApplianceManager extends appliance_manager_js_1.ApplianceManager {
|
|
|
66
68
|
battery: appliance.battery,
|
|
67
69
|
charger: appliance.charger,
|
|
68
70
|
inverter: appliance.inverter,
|
|
71
|
+
temperatureSensor: appliance.temperatureSensor,
|
|
72
|
+
airConditioning: appliance.airConditioning,
|
|
73
|
+
heatingRod: appliance.heatingRod,
|
|
74
|
+
...(appliance.cloudPackageId !== undefined && { cloudPackageId: appliance.cloudPackageId }),
|
|
75
|
+
...(appliance.availableFeatures !== undefined && { availableFeatures: appliance.availableFeatures }),
|
|
69
76
|
};
|
|
77
|
+
// On update, merge onto the stored appliance so type-specific metadata and
|
|
78
|
+
// top-level fields that were not supplied in this call are preserved.
|
|
79
|
+
const applianceId = existingAppliance?.id || (0, node_crypto_1.randomUUID)();
|
|
80
|
+
const applianceData = existingAppliance
|
|
81
|
+
? { ...this.mergeApplianceData(existingAppliance, newApplianceData), id: applianceId }
|
|
82
|
+
: { id: applianceId, ...newApplianceData };
|
|
70
83
|
// Save to memory store
|
|
71
84
|
this.memoryStore.set(applianceId, applianceData);
|
|
72
85
|
// Store network devices if provided
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -74,6 +74,7 @@ __exportStar(require("./packages/energy-app-grid-connection-point.cjs"), exports
|
|
|
74
74
|
__exportStar(require("./types/enyo-configuration-manager.cjs"), exports);
|
|
75
75
|
__exportStar(require("./packages/energy-app-configuration-manager.cjs"), exports);
|
|
76
76
|
__exportStar(require("./types/enyo-air-conditioning-appliance.cjs"), exports);
|
|
77
|
+
__exportStar(require("./types/enyo-heating-rod-appliance.cjs"), exports);
|
|
77
78
|
__exportStar(require("./types/enyo-onboarding.cjs"), exports);
|
|
78
79
|
__exportStar(require("./packages/energy-app-onboarding.cjs"), exports);
|
|
79
80
|
__exportStar(require("./types/enyo-retry-manager.cjs"), exports);
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -58,6 +58,7 @@ export * from './packages/energy-app-grid-connection-point.cjs';
|
|
|
58
58
|
export * from './types/enyo-configuration-manager.cjs';
|
|
59
59
|
export * from './packages/energy-app-configuration-manager.cjs';
|
|
60
60
|
export * from './types/enyo-air-conditioning-appliance.cjs';
|
|
61
|
+
export * from './types/enyo-heating-rod-appliance.cjs';
|
|
61
62
|
export * from './types/enyo-onboarding.cjs';
|
|
62
63
|
export * from './packages/energy-app-onboarding.cjs';
|
|
63
64
|
export * from './types/enyo-retry-manager.cjs';
|
|
@@ -10,6 +10,7 @@ var EnyoApplianceTypeEnum;
|
|
|
10
10
|
EnyoApplianceTypeEnum["Heatpump"] = "Heatpump";
|
|
11
11
|
EnyoApplianceTypeEnum["AirConditioning"] = "AirConditioning";
|
|
12
12
|
EnyoApplianceTypeEnum["TemperatureSensor"] = "TemperatureSensor";
|
|
13
|
+
EnyoApplianceTypeEnum["HeatingRod"] = "HeatingRod";
|
|
13
14
|
})(EnyoApplianceTypeEnum || (exports.EnyoApplianceTypeEnum = EnyoApplianceTypeEnum = {}));
|
|
14
15
|
var EnyoApplianceStateEnum;
|
|
15
16
|
(function (EnyoApplianceStateEnum) {
|
|
@@ -6,6 +6,7 @@ import { EnyoInverterApplianceMetadata } from "./enyo-inverter-appliance.cjs";
|
|
|
6
6
|
import { EnyoMeterAppliance } from "./enyo-meter-appliance.cjs";
|
|
7
7
|
import { EnyoTemperatureSensorApplianceMetadata } from "./enyo-temperature-sensor-appliance.cjs";
|
|
8
8
|
import { EnyoAirConditioningApplianceMetadata } from "./enyo-air-conditioning-appliance.cjs";
|
|
9
|
+
import { EnyoHeatingRodApplianceMetadata } from "./enyo-heating-rod-appliance.cjs";
|
|
9
10
|
export declare enum EnyoApplianceTypeEnum {
|
|
10
11
|
Inverter = "Inverter",
|
|
11
12
|
Charger = "Charger",
|
|
@@ -13,7 +14,8 @@ export declare enum EnyoApplianceTypeEnum {
|
|
|
13
14
|
Meter = "Meter",
|
|
14
15
|
Heatpump = "Heatpump",
|
|
15
16
|
AirConditioning = "AirConditioning",
|
|
16
|
-
TemperatureSensor = "TemperatureSensor"
|
|
17
|
+
TemperatureSensor = "TemperatureSensor",
|
|
18
|
+
HeatingRod = "HeatingRod"
|
|
17
19
|
}
|
|
18
20
|
export interface EnyoApplianceName {
|
|
19
21
|
language: EnergyAppPackageLanguage;
|
|
@@ -247,6 +249,8 @@ export interface EnyoAppliance {
|
|
|
247
249
|
temperatureSensor?: EnyoTemperatureSensorApplianceMetadata;
|
|
248
250
|
/** Optional Metadata of the Appliance if of type AirConditioning */
|
|
249
251
|
airConditioning?: EnyoAirConditioningApplianceMetadata;
|
|
252
|
+
/** Optional Metadata of the Appliance if of type HeatingRod */
|
|
253
|
+
heatingRod?: EnyoHeatingRodApplianceMetadata;
|
|
250
254
|
/** Optional custom name for the appliance, defined by the user */
|
|
251
255
|
customName?: string;
|
|
252
256
|
/**
|
|
@@ -219,6 +219,7 @@ var EnyoDataBusMessageEnum;
|
|
|
219
219
|
EnyoDataBusMessageEnum["ClearChargingProfilesV1"] = "ClearChargingProfilesV1";
|
|
220
220
|
EnyoDataBusMessageEnum["HeatpumpOverheatingV1"] = "HeatpumpOverheatingV1";
|
|
221
221
|
EnyoDataBusMessageEnum["HeatpumpAvailablePowerAnnouncementV1"] = "HeatpumpAvailablePowerAnnouncementV1";
|
|
222
|
+
EnyoDataBusMessageEnum["HeatingRodAvailablePowerAnnouncementV1"] = "HeatingRodAvailablePowerAnnouncementV1";
|
|
222
223
|
EnyoDataBusMessageEnum["AirConditioningValuesUpdateV1"] = "AirConditioningValuesUpdateV1";
|
|
223
224
|
EnyoDataBusMessageEnum["AirConditioningTemperaturesUpdateV1"] = "AirConditioningTemperaturesUpdateV1";
|
|
224
225
|
EnyoDataBusMessageEnum["StartAirConditioningV1"] = "StartAirConditioningV1";
|
|
@@ -251,6 +251,7 @@ export declare enum EnyoDataBusMessageEnum {
|
|
|
251
251
|
ClearChargingProfilesV1 = "ClearChargingProfilesV1",
|
|
252
252
|
HeatpumpOverheatingV1 = "HeatpumpOverheatingV1",
|
|
253
253
|
HeatpumpAvailablePowerAnnouncementV1 = "HeatpumpAvailablePowerAnnouncementV1",
|
|
254
|
+
HeatingRodAvailablePowerAnnouncementV1 = "HeatingRodAvailablePowerAnnouncementV1",
|
|
254
255
|
AirConditioningValuesUpdateV1 = "AirConditioningValuesUpdateV1",
|
|
255
256
|
AirConditioningTemperaturesUpdateV1 = "AirConditioningTemperaturesUpdateV1",
|
|
256
257
|
StartAirConditioningV1 = "StartAirConditioningV1",
|
|
@@ -1594,6 +1595,22 @@ export interface EnyoDataBusHeatpumpAvailablePowerAnnouncementV1 extends EnyoDat
|
|
|
1594
1595
|
reason?: EnyoDataBusCommandReason;
|
|
1595
1596
|
};
|
|
1596
1597
|
}
|
|
1598
|
+
/**
|
|
1599
|
+
* Data bus message announcing available power for a heating rod appliance.
|
|
1600
|
+
* Used to inform the heating rod about how much power is available for consumption.
|
|
1601
|
+
*/
|
|
1602
|
+
export interface EnyoDataBusHeatingRodAvailablePowerAnnouncementV1 extends EnyoDataBusMessage {
|
|
1603
|
+
type: 'message';
|
|
1604
|
+
message: EnyoDataBusMessageEnum.HeatingRodAvailablePowerAnnouncementV1;
|
|
1605
|
+
/** ID of the heating rod appliance */
|
|
1606
|
+
applianceId: string;
|
|
1607
|
+
data: {
|
|
1608
|
+
/** Available power for the heating rod to use (in Watt) */
|
|
1609
|
+
powerW: number;
|
|
1610
|
+
/** Optional reason why this announcement was issued */
|
|
1611
|
+
reason?: EnyoDataBusCommandReason;
|
|
1612
|
+
};
|
|
1613
|
+
}
|
|
1597
1614
|
/**
|
|
1598
1615
|
* Data bus message for reporting air conditioning power values.
|
|
1599
1616
|
* Contains the current operating mode and power consumption.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EnyoHeatingRodApplianceModeEnum = exports.EnyoHeatingRodApplianceAvailableFeaturesEnum = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Available features for a heating rod (immersion / electric resistive heating
|
|
6
|
+
* element) appliance.
|
|
7
|
+
*/
|
|
8
|
+
var EnyoHeatingRodApplianceAvailableFeaturesEnum;
|
|
9
|
+
(function (EnyoHeatingRodApplianceAvailableFeaturesEnum) {
|
|
10
|
+
/** If the heating rod reports electrical power values (e.g. consumption in watts) */
|
|
11
|
+
EnyoHeatingRodApplianceAvailableFeaturesEnum["Power"] = "Power";
|
|
12
|
+
/** If the heating rod supports available power announcements */
|
|
13
|
+
EnyoHeatingRodApplianceAvailableFeaturesEnum["AvailablePowerAnnouncement"] = "AvailablePowerAnnouncement";
|
|
14
|
+
})(EnyoHeatingRodApplianceAvailableFeaturesEnum || (exports.EnyoHeatingRodApplianceAvailableFeaturesEnum = EnyoHeatingRodApplianceAvailableFeaturesEnum = {}));
|
|
15
|
+
/**
|
|
16
|
+
* Operating modes for a heating rod appliance.
|
|
17
|
+
*/
|
|
18
|
+
var EnyoHeatingRodApplianceModeEnum;
|
|
19
|
+
(function (EnyoHeatingRodApplianceModeEnum) {
|
|
20
|
+
/** The heating rod is idle (not consuming power) */
|
|
21
|
+
EnyoHeatingRodApplianceModeEnum["Idle"] = "Idle";
|
|
22
|
+
/** The heating rod is actively heating */
|
|
23
|
+
EnyoHeatingRodApplianceModeEnum["Heating"] = "Heating";
|
|
24
|
+
})(EnyoHeatingRodApplianceModeEnum || (exports.EnyoHeatingRodApplianceModeEnum = EnyoHeatingRodApplianceModeEnum = {}));
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Available features for a heating rod (immersion / electric resistive heating
|
|
3
|
+
* element) appliance.
|
|
4
|
+
*/
|
|
5
|
+
export declare enum EnyoHeatingRodApplianceAvailableFeaturesEnum {
|
|
6
|
+
/** If the heating rod reports electrical power values (e.g. consumption in watts) */
|
|
7
|
+
Power = "Power",
|
|
8
|
+
/** If the heating rod supports available power announcements */
|
|
9
|
+
AvailablePowerAnnouncement = "AvailablePowerAnnouncement"
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Operating modes for a heating rod appliance.
|
|
13
|
+
*/
|
|
14
|
+
export declare enum EnyoHeatingRodApplianceModeEnum {
|
|
15
|
+
/** The heating rod is idle (not consuming power) */
|
|
16
|
+
Idle = "Idle",
|
|
17
|
+
/** The heating rod is actively heating */
|
|
18
|
+
Heating = "Heating"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Type-specific metadata for a heating rod appliance.
|
|
22
|
+
* Contains available features, current operating mode, rated power, and an
|
|
23
|
+
* optional reference to the heat pump the heating rod is associated with.
|
|
24
|
+
*/
|
|
25
|
+
export interface EnyoHeatingRodApplianceMetadata {
|
|
26
|
+
/** List of features supported by this heating rod */
|
|
27
|
+
availableFeatures: EnyoHeatingRodApplianceAvailableFeaturesEnum[];
|
|
28
|
+
/** Current operating mode of the heating rod */
|
|
29
|
+
mode?: EnyoHeatingRodApplianceModeEnum;
|
|
30
|
+
/** Rated electrical power of the heating rod in watts */
|
|
31
|
+
ratedPowerW?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Optional identifier of the heat pump appliance this heating rod is
|
|
34
|
+
* associated with. References the `id` of an EnyoAppliance of type Heatpump.
|
|
35
|
+
*/
|
|
36
|
+
heatpumpApplianceId?: string;
|
|
37
|
+
}
|
|
@@ -27,8 +27,38 @@ export interface EnyoNetworkDevice {
|
|
|
27
27
|
/** Access status for the device */
|
|
28
28
|
accessStatus: EnyoNetworkDeviceAccessStatus | undefined;
|
|
29
29
|
detectedAt: EnyoNetworkDeviceDetectedAtEnum[];
|
|
30
|
+
/**
|
|
31
|
+
* Structured DNS-SD service data for mDNS-discovered devices, one entry per
|
|
32
|
+
* advertised service type. Populated only for devices found via mDNS
|
|
33
|
+
* (otherwise `undefined`) and refreshed on re-discovery. A host may advertise
|
|
34
|
+
* several service types, so this is an array. Additive to `ports` — existing
|
|
35
|
+
* fields are unchanged.
|
|
36
|
+
*/
|
|
37
|
+
mdnsServices?: EnyoMdnsService[];
|
|
30
38
|
}
|
|
31
39
|
export type EnyoNetworkDeviceAccessStatus = 'granted' | 'denied' | 'pending';
|
|
40
|
+
/**
|
|
41
|
+
* One advertised DNS-SD service for an mDNS-discovered device, retained verbatim
|
|
42
|
+
* so partner integrations can read service-specific TXT data (e.g. the
|
|
43
|
+
* Bosch/Buderus heat-pump gateway publishes its OAuth `authport` only in TXT,
|
|
44
|
+
* used to build the token URL `https://<host>:<authport>/auth/token`). `txt`
|
|
45
|
+
* values are kept as raw strings — consumers parse what they need.
|
|
46
|
+
*/
|
|
47
|
+
export interface EnyoMdnsService {
|
|
48
|
+
/** DNS-SD service type, e.g. `"_gateway-tt-local-api._tcp.local"`. */
|
|
49
|
+
serviceType: string;
|
|
50
|
+
/** DNS-SD instance name, e.g. `"k40rf-101042019"`. */
|
|
51
|
+
instanceName: string;
|
|
52
|
+
/** SRV target host. Optional — currently omitted by core. */
|
|
53
|
+
target?: string;
|
|
54
|
+
/** SRV port (the API port, e.g. 8443). Optional. */
|
|
55
|
+
port?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Full TXT key/value map (e.g. `authport`, `model`, `brand`, `uuid`,
|
|
58
|
+
* `serial`, `txtvers`). Values are raw strings and are not coerced.
|
|
59
|
+
*/
|
|
60
|
+
txt: Record<string, string>;
|
|
61
|
+
}
|
|
32
62
|
/**
|
|
33
63
|
* Represents an open network port on a device.
|
|
34
64
|
*/
|
package/dist/cjs/version.cjs
CHANGED
|
@@ -9,7 +9,7 @@ exports.getSdkVersion = getSdkVersion;
|
|
|
9
9
|
/**
|
|
10
10
|
* Current version of the enyo Energy App SDK.
|
|
11
11
|
*/
|
|
12
|
-
exports.SDK_VERSION = '0.0.
|
|
12
|
+
exports.SDK_VERSION = '0.0.167';
|
|
13
13
|
/**
|
|
14
14
|
* Gets the current SDK version.
|
|
15
15
|
* @returns The semantic version string of the SDK
|
package/dist/cjs/version.d.cts
CHANGED
|
@@ -17,4 +17,5 @@ export var EnergyAppApplianceTypeEnum;
|
|
|
17
17
|
EnergyAppApplianceTypeEnum["Oven"] = "oven";
|
|
18
18
|
EnergyAppApplianceTypeEnum["Freezer"] = "freezer";
|
|
19
19
|
EnergyAppApplianceTypeEnum["AirConditioning"] = "air-conditioning";
|
|
20
|
+
EnergyAppApplianceTypeEnum["HeatingRod"] = "heating-rod";
|
|
20
21
|
})(EnergyAppApplianceTypeEnum || (EnergyAppApplianceTypeEnum = {}));
|
|
@@ -8,6 +8,7 @@ import type { EnyoInverterApplianceMetadata } from "../../types/enyo-inverter-ap
|
|
|
8
8
|
import type { EnyoMeterAppliance } from "../../types/enyo-meter-appliance.js";
|
|
9
9
|
import type { EnyoTemperatureSensorApplianceMetadata } from "../../types/enyo-temperature-sensor-appliance.js";
|
|
10
10
|
import type { EnyoAirConditioningApplianceMetadata } from "../../types/enyo-air-conditioning-appliance.js";
|
|
11
|
+
import type { EnyoHeatingRodApplianceMetadata } from "../../types/enyo-heating-rod-appliance.js";
|
|
11
12
|
import { IdentifierStrategy } from "./identifier-strategies.js";
|
|
12
13
|
/**
|
|
13
14
|
* Thrown when {@link ApplianceManager.createOrUpdateAppliance} is called with
|
|
@@ -59,6 +60,7 @@ export interface ApplianceConfig {
|
|
|
59
60
|
battery?: EnyoBatteryApplianceMetadata;
|
|
60
61
|
temperatureSensor?: EnyoTemperatureSensorApplianceMetadata;
|
|
61
62
|
airConditioning?: EnyoAirConditioningApplianceMetadata;
|
|
63
|
+
heatingRod?: EnyoHeatingRodApplianceMetadata;
|
|
62
64
|
availableFeatures?: EnyoApplianceAvailableFeaturesEnum[];
|
|
63
65
|
/**
|
|
64
66
|
* Optional identifier of the cloud-deployed energy app package that manages
|
|
@@ -140,7 +142,7 @@ export declare class ApplianceManager {
|
|
|
140
142
|
* @param update The partial update data to merge
|
|
141
143
|
* @returns The merged appliance data (without `id`)
|
|
142
144
|
*/
|
|
143
|
-
|
|
145
|
+
protected mergeApplianceData(existing: EnyoAppliance, update: Partial<Omit<PartialEnyoAppliance, 'id'>>): Omit<EnyoAppliance, 'id'>;
|
|
144
146
|
/**
|
|
145
147
|
* Creates a new ApplianceManager instance.
|
|
146
148
|
*
|
|
@@ -418,6 +420,8 @@ export interface PartialEnyoAppliance {
|
|
|
418
420
|
temperatureSensor?: Partial<EnyoTemperatureSensorApplianceMetadata>;
|
|
419
421
|
/** Optional Metadata of the Appliance if of type AirConditioning */
|
|
420
422
|
airConditioning?: Partial<EnyoAirConditioningApplianceMetadata>;
|
|
423
|
+
/** Optional Metadata of the Appliance if of type HeatingRod */
|
|
424
|
+
heatingRod?: Partial<EnyoHeatingRodApplianceMetadata>;
|
|
421
425
|
/** Optional custom name for the appliance, defined by the user */
|
|
422
426
|
customName?: string;
|
|
423
427
|
/**
|
|
@@ -53,6 +53,7 @@ const MERGEABLE_METADATA_KEYS = [
|
|
|
53
53
|
'meter',
|
|
54
54
|
'temperatureSensor',
|
|
55
55
|
'airConditioning',
|
|
56
|
+
'heatingRod',
|
|
56
57
|
];
|
|
57
58
|
/**
|
|
58
59
|
* Manages appliances in the energy system with configurable identification strategies.
|
|
@@ -201,6 +202,7 @@ export class ApplianceManager {
|
|
|
201
202
|
inverter: appliance.inverter,
|
|
202
203
|
temperatureSensor: appliance.temperatureSensor,
|
|
203
204
|
airConditioning: appliance.airConditioning,
|
|
205
|
+
heatingRod: appliance.heatingRod,
|
|
204
206
|
// Conditionally spread the two optional top-level fields that are NOT
|
|
205
207
|
// covered by MERGEABLE_METADATA_KEYS. If they were always materialized
|
|
206
208
|
// as explicit keys, an omitted (undefined) value would clobber the
|
|
@@ -49,10 +49,12 @@ export class InMemoryApplianceManager extends ApplianceManager {
|
|
|
49
49
|
EnyoApplianceStateEnum.Connected,
|
|
50
50
|
...appliance.metadata
|
|
51
51
|
};
|
|
52
|
-
// Build appliance data
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
// Build the incoming appliance data covering every ApplianceConfig field.
|
|
53
|
+
// The two optional top-level fields that are NOT shallow-merged by
|
|
54
|
+
// mergeApplianceData (`cloudPackageId`, `availableFeatures`) are only
|
|
55
|
+
// materialized when provided so an omitted value cannot clobber the stored
|
|
56
|
+
// one during an update; pass an explicit value (e.g. `[]`) to clear them.
|
|
57
|
+
const newApplianceData = {
|
|
56
58
|
name: appliance.name,
|
|
57
59
|
type: appliance.type,
|
|
58
60
|
networkDeviceIds,
|
|
@@ -63,7 +65,18 @@ export class InMemoryApplianceManager extends ApplianceManager {
|
|
|
63
65
|
battery: appliance.battery,
|
|
64
66
|
charger: appliance.charger,
|
|
65
67
|
inverter: appliance.inverter,
|
|
68
|
+
temperatureSensor: appliance.temperatureSensor,
|
|
69
|
+
airConditioning: appliance.airConditioning,
|
|
70
|
+
heatingRod: appliance.heatingRod,
|
|
71
|
+
...(appliance.cloudPackageId !== undefined && { cloudPackageId: appliance.cloudPackageId }),
|
|
72
|
+
...(appliance.availableFeatures !== undefined && { availableFeatures: appliance.availableFeatures }),
|
|
66
73
|
};
|
|
74
|
+
// On update, merge onto the stored appliance so type-specific metadata and
|
|
75
|
+
// top-level fields that were not supplied in this call are preserved.
|
|
76
|
+
const applianceId = existingAppliance?.id || randomUUID();
|
|
77
|
+
const applianceData = existingAppliance
|
|
78
|
+
? { ...this.mergeApplianceData(existingAppliance, newApplianceData), id: applianceId }
|
|
79
|
+
: { id: applianceId, ...newApplianceData };
|
|
67
80
|
// Save to memory store
|
|
68
81
|
this.memoryStore.set(applianceId, applianceData);
|
|
69
82
|
// Store network devices if provided
|
package/dist/index.d.ts
CHANGED
|
@@ -58,6 +58,7 @@ export * from './packages/energy-app-grid-connection-point.js';
|
|
|
58
58
|
export * from './types/enyo-configuration-manager.js';
|
|
59
59
|
export * from './packages/energy-app-configuration-manager.js';
|
|
60
60
|
export * from './types/enyo-air-conditioning-appliance.js';
|
|
61
|
+
export * from './types/enyo-heating-rod-appliance.js';
|
|
61
62
|
export * from './types/enyo-onboarding.js';
|
|
62
63
|
export * from './packages/energy-app-onboarding.js';
|
|
63
64
|
export * from './types/enyo-retry-manager.js';
|
package/dist/index.js
CHANGED
|
@@ -58,6 +58,7 @@ export * from './packages/energy-app-grid-connection-point.js';
|
|
|
58
58
|
export * from './types/enyo-configuration-manager.js';
|
|
59
59
|
export * from './packages/energy-app-configuration-manager.js';
|
|
60
60
|
export * from './types/enyo-air-conditioning-appliance.js';
|
|
61
|
+
export * from './types/enyo-heating-rod-appliance.js';
|
|
61
62
|
export * from './types/enyo-onboarding.js';
|
|
62
63
|
export * from './packages/energy-app-onboarding.js';
|
|
63
64
|
export * from './types/enyo-retry-manager.js';
|
|
@@ -6,6 +6,7 @@ import { EnyoInverterApplianceMetadata } from "./enyo-inverter-appliance.js";
|
|
|
6
6
|
import { EnyoMeterAppliance } from "./enyo-meter-appliance.js";
|
|
7
7
|
import { EnyoTemperatureSensorApplianceMetadata } from "./enyo-temperature-sensor-appliance.js";
|
|
8
8
|
import { EnyoAirConditioningApplianceMetadata } from "./enyo-air-conditioning-appliance.js";
|
|
9
|
+
import { EnyoHeatingRodApplianceMetadata } from "./enyo-heating-rod-appliance.js";
|
|
9
10
|
export declare enum EnyoApplianceTypeEnum {
|
|
10
11
|
Inverter = "Inverter",
|
|
11
12
|
Charger = "Charger",
|
|
@@ -13,7 +14,8 @@ export declare enum EnyoApplianceTypeEnum {
|
|
|
13
14
|
Meter = "Meter",
|
|
14
15
|
Heatpump = "Heatpump",
|
|
15
16
|
AirConditioning = "AirConditioning",
|
|
16
|
-
TemperatureSensor = "TemperatureSensor"
|
|
17
|
+
TemperatureSensor = "TemperatureSensor",
|
|
18
|
+
HeatingRod = "HeatingRod"
|
|
17
19
|
}
|
|
18
20
|
export interface EnyoApplianceName {
|
|
19
21
|
language: EnergyAppPackageLanguage;
|
|
@@ -247,6 +249,8 @@ export interface EnyoAppliance {
|
|
|
247
249
|
temperatureSensor?: EnyoTemperatureSensorApplianceMetadata;
|
|
248
250
|
/** Optional Metadata of the Appliance if of type AirConditioning */
|
|
249
251
|
airConditioning?: EnyoAirConditioningApplianceMetadata;
|
|
252
|
+
/** Optional Metadata of the Appliance if of type HeatingRod */
|
|
253
|
+
heatingRod?: EnyoHeatingRodApplianceMetadata;
|
|
250
254
|
/** Optional custom name for the appliance, defined by the user */
|
|
251
255
|
customName?: string;
|
|
252
256
|
/**
|
|
@@ -7,6 +7,7 @@ export var EnyoApplianceTypeEnum;
|
|
|
7
7
|
EnyoApplianceTypeEnum["Heatpump"] = "Heatpump";
|
|
8
8
|
EnyoApplianceTypeEnum["AirConditioning"] = "AirConditioning";
|
|
9
9
|
EnyoApplianceTypeEnum["TemperatureSensor"] = "TemperatureSensor";
|
|
10
|
+
EnyoApplianceTypeEnum["HeatingRod"] = "HeatingRod";
|
|
10
11
|
})(EnyoApplianceTypeEnum || (EnyoApplianceTypeEnum = {}));
|
|
11
12
|
export var EnyoApplianceStateEnum;
|
|
12
13
|
(function (EnyoApplianceStateEnum) {
|
|
@@ -251,6 +251,7 @@ export declare enum EnyoDataBusMessageEnum {
|
|
|
251
251
|
ClearChargingProfilesV1 = "ClearChargingProfilesV1",
|
|
252
252
|
HeatpumpOverheatingV1 = "HeatpumpOverheatingV1",
|
|
253
253
|
HeatpumpAvailablePowerAnnouncementV1 = "HeatpumpAvailablePowerAnnouncementV1",
|
|
254
|
+
HeatingRodAvailablePowerAnnouncementV1 = "HeatingRodAvailablePowerAnnouncementV1",
|
|
254
255
|
AirConditioningValuesUpdateV1 = "AirConditioningValuesUpdateV1",
|
|
255
256
|
AirConditioningTemperaturesUpdateV1 = "AirConditioningTemperaturesUpdateV1",
|
|
256
257
|
StartAirConditioningV1 = "StartAirConditioningV1",
|
|
@@ -1594,6 +1595,22 @@ export interface EnyoDataBusHeatpumpAvailablePowerAnnouncementV1 extends EnyoDat
|
|
|
1594
1595
|
reason?: EnyoDataBusCommandReason;
|
|
1595
1596
|
};
|
|
1596
1597
|
}
|
|
1598
|
+
/**
|
|
1599
|
+
* Data bus message announcing available power for a heating rod appliance.
|
|
1600
|
+
* Used to inform the heating rod about how much power is available for consumption.
|
|
1601
|
+
*/
|
|
1602
|
+
export interface EnyoDataBusHeatingRodAvailablePowerAnnouncementV1 extends EnyoDataBusMessage {
|
|
1603
|
+
type: 'message';
|
|
1604
|
+
message: EnyoDataBusMessageEnum.HeatingRodAvailablePowerAnnouncementV1;
|
|
1605
|
+
/** ID of the heating rod appliance */
|
|
1606
|
+
applianceId: string;
|
|
1607
|
+
data: {
|
|
1608
|
+
/** Available power for the heating rod to use (in Watt) */
|
|
1609
|
+
powerW: number;
|
|
1610
|
+
/** Optional reason why this announcement was issued */
|
|
1611
|
+
reason?: EnyoDataBusCommandReason;
|
|
1612
|
+
};
|
|
1613
|
+
}
|
|
1597
1614
|
/**
|
|
1598
1615
|
* Data bus message for reporting air conditioning power values.
|
|
1599
1616
|
* Contains the current operating mode and power consumption.
|
|
@@ -216,6 +216,7 @@ export var EnyoDataBusMessageEnum;
|
|
|
216
216
|
EnyoDataBusMessageEnum["ClearChargingProfilesV1"] = "ClearChargingProfilesV1";
|
|
217
217
|
EnyoDataBusMessageEnum["HeatpumpOverheatingV1"] = "HeatpumpOverheatingV1";
|
|
218
218
|
EnyoDataBusMessageEnum["HeatpumpAvailablePowerAnnouncementV1"] = "HeatpumpAvailablePowerAnnouncementV1";
|
|
219
|
+
EnyoDataBusMessageEnum["HeatingRodAvailablePowerAnnouncementV1"] = "HeatingRodAvailablePowerAnnouncementV1";
|
|
219
220
|
EnyoDataBusMessageEnum["AirConditioningValuesUpdateV1"] = "AirConditioningValuesUpdateV1";
|
|
220
221
|
EnyoDataBusMessageEnum["AirConditioningTemperaturesUpdateV1"] = "AirConditioningTemperaturesUpdateV1";
|
|
221
222
|
EnyoDataBusMessageEnum["StartAirConditioningV1"] = "StartAirConditioningV1";
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Available features for a heating rod (immersion / electric resistive heating
|
|
3
|
+
* element) appliance.
|
|
4
|
+
*/
|
|
5
|
+
export declare enum EnyoHeatingRodApplianceAvailableFeaturesEnum {
|
|
6
|
+
/** If the heating rod reports electrical power values (e.g. consumption in watts) */
|
|
7
|
+
Power = "Power",
|
|
8
|
+
/** If the heating rod supports available power announcements */
|
|
9
|
+
AvailablePowerAnnouncement = "AvailablePowerAnnouncement"
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Operating modes for a heating rod appliance.
|
|
13
|
+
*/
|
|
14
|
+
export declare enum EnyoHeatingRodApplianceModeEnum {
|
|
15
|
+
/** The heating rod is idle (not consuming power) */
|
|
16
|
+
Idle = "Idle",
|
|
17
|
+
/** The heating rod is actively heating */
|
|
18
|
+
Heating = "Heating"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Type-specific metadata for a heating rod appliance.
|
|
22
|
+
* Contains available features, current operating mode, rated power, and an
|
|
23
|
+
* optional reference to the heat pump the heating rod is associated with.
|
|
24
|
+
*/
|
|
25
|
+
export interface EnyoHeatingRodApplianceMetadata {
|
|
26
|
+
/** List of features supported by this heating rod */
|
|
27
|
+
availableFeatures: EnyoHeatingRodApplianceAvailableFeaturesEnum[];
|
|
28
|
+
/** Current operating mode of the heating rod */
|
|
29
|
+
mode?: EnyoHeatingRodApplianceModeEnum;
|
|
30
|
+
/** Rated electrical power of the heating rod in watts */
|
|
31
|
+
ratedPowerW?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Optional identifier of the heat pump appliance this heating rod is
|
|
34
|
+
* associated with. References the `id` of an EnyoAppliance of type Heatpump.
|
|
35
|
+
*/
|
|
36
|
+
heatpumpApplianceId?: string;
|
|
37
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Available features for a heating rod (immersion / electric resistive heating
|
|
3
|
+
* element) appliance.
|
|
4
|
+
*/
|
|
5
|
+
export var EnyoHeatingRodApplianceAvailableFeaturesEnum;
|
|
6
|
+
(function (EnyoHeatingRodApplianceAvailableFeaturesEnum) {
|
|
7
|
+
/** If the heating rod reports electrical power values (e.g. consumption in watts) */
|
|
8
|
+
EnyoHeatingRodApplianceAvailableFeaturesEnum["Power"] = "Power";
|
|
9
|
+
/** If the heating rod supports available power announcements */
|
|
10
|
+
EnyoHeatingRodApplianceAvailableFeaturesEnum["AvailablePowerAnnouncement"] = "AvailablePowerAnnouncement";
|
|
11
|
+
})(EnyoHeatingRodApplianceAvailableFeaturesEnum || (EnyoHeatingRodApplianceAvailableFeaturesEnum = {}));
|
|
12
|
+
/**
|
|
13
|
+
* Operating modes for a heating rod appliance.
|
|
14
|
+
*/
|
|
15
|
+
export var EnyoHeatingRodApplianceModeEnum;
|
|
16
|
+
(function (EnyoHeatingRodApplianceModeEnum) {
|
|
17
|
+
/** The heating rod is idle (not consuming power) */
|
|
18
|
+
EnyoHeatingRodApplianceModeEnum["Idle"] = "Idle";
|
|
19
|
+
/** The heating rod is actively heating */
|
|
20
|
+
EnyoHeatingRodApplianceModeEnum["Heating"] = "Heating";
|
|
21
|
+
})(EnyoHeatingRodApplianceModeEnum || (EnyoHeatingRodApplianceModeEnum = {}));
|
|
@@ -27,8 +27,38 @@ export interface EnyoNetworkDevice {
|
|
|
27
27
|
/** Access status for the device */
|
|
28
28
|
accessStatus: EnyoNetworkDeviceAccessStatus | undefined;
|
|
29
29
|
detectedAt: EnyoNetworkDeviceDetectedAtEnum[];
|
|
30
|
+
/**
|
|
31
|
+
* Structured DNS-SD service data for mDNS-discovered devices, one entry per
|
|
32
|
+
* advertised service type. Populated only for devices found via mDNS
|
|
33
|
+
* (otherwise `undefined`) and refreshed on re-discovery. A host may advertise
|
|
34
|
+
* several service types, so this is an array. Additive to `ports` — existing
|
|
35
|
+
* fields are unchanged.
|
|
36
|
+
*/
|
|
37
|
+
mdnsServices?: EnyoMdnsService[];
|
|
30
38
|
}
|
|
31
39
|
export type EnyoNetworkDeviceAccessStatus = 'granted' | 'denied' | 'pending';
|
|
40
|
+
/**
|
|
41
|
+
* One advertised DNS-SD service for an mDNS-discovered device, retained verbatim
|
|
42
|
+
* so partner integrations can read service-specific TXT data (e.g. the
|
|
43
|
+
* Bosch/Buderus heat-pump gateway publishes its OAuth `authport` only in TXT,
|
|
44
|
+
* used to build the token URL `https://<host>:<authport>/auth/token`). `txt`
|
|
45
|
+
* values are kept as raw strings — consumers parse what they need.
|
|
46
|
+
*/
|
|
47
|
+
export interface EnyoMdnsService {
|
|
48
|
+
/** DNS-SD service type, e.g. `"_gateway-tt-local-api._tcp.local"`. */
|
|
49
|
+
serviceType: string;
|
|
50
|
+
/** DNS-SD instance name, e.g. `"k40rf-101042019"`. */
|
|
51
|
+
instanceName: string;
|
|
52
|
+
/** SRV target host. Optional — currently omitted by core. */
|
|
53
|
+
target?: string;
|
|
54
|
+
/** SRV port (the API port, e.g. 8443). Optional. */
|
|
55
|
+
port?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Full TXT key/value map (e.g. `authport`, `model`, `brand`, `uuid`,
|
|
58
|
+
* `serial`, `txtvers`). Values are raw strings and are not coerced.
|
|
59
|
+
*/
|
|
60
|
+
txt: Record<string, string>;
|
|
61
|
+
}
|
|
32
62
|
/**
|
|
33
63
|
* Represents an open network port on a device.
|
|
34
64
|
*/
|
package/dist/version.d.ts
CHANGED