@teslemetry/api 0.5.1 → 0.5.3
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/index.cjs +45 -13
- package/dist/index.d.cts +181 -175
- package/dist/index.d.mts +181 -175
- package/dist/index.mjs +45 -13
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -3115,8 +3115,8 @@ var TeslemetryStream = class extends events.EventEmitter {
|
|
|
3115
3115
|
this.cloudCache = options.cache;
|
|
3116
3116
|
this.localCache = options.cache;
|
|
3117
3117
|
} else {
|
|
3118
|
-
this.cloudCache = options?.cache?.cloud;
|
|
3119
|
-
this.localCache = options?.cache?.local;
|
|
3118
|
+
this.cloudCache = options?.cache?.cloud ?? true;
|
|
3119
|
+
this.localCache = options?.cache?.local ?? true;
|
|
3120
3120
|
}
|
|
3121
3121
|
this.logger = root.logger;
|
|
3122
3122
|
if (this.vin) this.getVehicle(this.vin);
|
|
@@ -3341,11 +3341,30 @@ var TeslemetryChargingApi = class {
|
|
|
3341
3341
|
}
|
|
3342
3342
|
};
|
|
3343
3343
|
|
|
3344
|
+
//#endregion
|
|
3345
|
+
//#region src/reuse.ts
|
|
3346
|
+
const reuse = (linger = 0) => {
|
|
3347
|
+
let promise = null;
|
|
3348
|
+
return async (func) => {
|
|
3349
|
+
if (promise) return promise;
|
|
3350
|
+
try {
|
|
3351
|
+
promise = func();
|
|
3352
|
+
return await promise;
|
|
3353
|
+
} finally {
|
|
3354
|
+
setTimeout(() => promise = null, linger);
|
|
3355
|
+
}
|
|
3356
|
+
};
|
|
3357
|
+
};
|
|
3358
|
+
|
|
3344
3359
|
//#endregion
|
|
3345
3360
|
//#region src/TeslemetryEnergyApi.ts
|
|
3346
3361
|
var TeslemetryEnergyApi = class extends events.EventEmitter {
|
|
3347
3362
|
root;
|
|
3348
3363
|
siteId;
|
|
3364
|
+
cache = {
|
|
3365
|
+
siteInfo: null,
|
|
3366
|
+
liveStatus: null
|
|
3367
|
+
};
|
|
3349
3368
|
refreshDelay = 3e4;
|
|
3350
3369
|
refreshInterval = {
|
|
3351
3370
|
siteInfo: null,
|
|
@@ -3362,6 +3381,11 @@ var TeslemetryEnergyApi = class extends events.EventEmitter {
|
|
|
3362
3381
|
this.siteId = siteId;
|
|
3363
3382
|
root.api.energySites.set(siteId, this);
|
|
3364
3383
|
}
|
|
3384
|
+
on(event, listener) {
|
|
3385
|
+
const cached = this.cache[event];
|
|
3386
|
+
if (cached) listener(cached);
|
|
3387
|
+
return super.on(event, listener);
|
|
3388
|
+
}
|
|
3365
3389
|
/**
|
|
3366
3390
|
* Adjust the site's backup reserve.
|
|
3367
3391
|
* @param backup_reserve_percent The backup reserve percentage
|
|
@@ -3413,29 +3437,37 @@ var TeslemetryEnergyApi = class extends events.EventEmitter {
|
|
|
3413
3437
|
});
|
|
3414
3438
|
return data;
|
|
3415
3439
|
}
|
|
3440
|
+
getLiveStatusReuse = reuse(1e3);
|
|
3416
3441
|
/**
|
|
3417
3442
|
* Returns the live status of the site (power, state of energy, grid status, storm mode).
|
|
3418
3443
|
* @return Promise to an object with response containing current live status of the energy site
|
|
3419
3444
|
*/
|
|
3420
3445
|
async getLiveStatus() {
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3446
|
+
return this.getLiveStatusReuse(async () => {
|
|
3447
|
+
const { data } = await getApi1EnergySitesByIdLiveStatus({
|
|
3448
|
+
path: { id: this.siteId },
|
|
3449
|
+
client: this.root.client
|
|
3450
|
+
});
|
|
3451
|
+
this.cache.liveStatus = data;
|
|
3452
|
+
this.emit("liveStatus", data);
|
|
3453
|
+
return data;
|
|
3424
3454
|
});
|
|
3425
|
-
this.emit("liveStatus", data);
|
|
3426
|
-
return data;
|
|
3427
3455
|
}
|
|
3456
|
+
getSiteInfoReuse = reuse(1e3);
|
|
3428
3457
|
/**
|
|
3429
3458
|
* Returns information about the site. Things like assets (has solar, etc), settings (backup reserve, etc), and features (storm_mode_capable, etc).
|
|
3430
3459
|
* @return Promise to an object with response containing detailed information about the energy site
|
|
3431
3460
|
*/
|
|
3432
3461
|
async getSiteInfo() {
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3462
|
+
return this.getSiteInfoReuse(async () => {
|
|
3463
|
+
const { data } = await getApi1EnergySitesByIdSiteInfo({
|
|
3464
|
+
path: { id: this.siteId },
|
|
3465
|
+
client: this.root.client
|
|
3466
|
+
});
|
|
3467
|
+
this.cache.siteInfo = data;
|
|
3468
|
+
this.emit("siteInfo", data);
|
|
3469
|
+
return data;
|
|
3436
3470
|
});
|
|
3437
|
-
this.emit("siteInfo", data);
|
|
3438
|
-
return data;
|
|
3439
3471
|
}
|
|
3440
3472
|
/**
|
|
3441
3473
|
* Adjust the site's off-grid vehicle charging backup reserve.
|
|
@@ -5045,7 +5077,7 @@ const consoleLogger = {
|
|
|
5045
5077
|
|
|
5046
5078
|
//#endregion
|
|
5047
5079
|
//#region package.json
|
|
5048
|
-
var version = "0.5.
|
|
5080
|
+
var version = "0.5.3";
|
|
5049
5081
|
|
|
5050
5082
|
//#endregion
|
|
5051
5083
|
//#region src/Teslemetry.ts
|
package/dist/index.d.cts
CHANGED
|
@@ -7988,86 +7988,192 @@ type GetApi1EnergySitesByIdSiteInfoResponses = {
|
|
|
7988
7988
|
* Default Response
|
|
7989
7989
|
*/
|
|
7990
7990
|
200: {
|
|
7991
|
-
response
|
|
7992
|
-
id
|
|
7991
|
+
response: {
|
|
7992
|
+
id: string;
|
|
7993
7993
|
site_name?: string;
|
|
7994
|
-
site_number?: string;
|
|
7995
7994
|
backup_reserve_percent?: number;
|
|
7996
7995
|
default_real_mode?: string;
|
|
7997
|
-
installation_date
|
|
7998
|
-
user_settings
|
|
7999
|
-
go_off_grid_test_banner_enabled
|
|
8000
|
-
storm_mode_enabled
|
|
8001
|
-
powerwall_onboarding_settings_set
|
|
8002
|
-
powerwall_tesla_electric_interested_in
|
|
8003
|
-
vpp_tour_enabled
|
|
8004
|
-
off_grid_vehicle_charging_enabled
|
|
8005
|
-
};
|
|
8006
|
-
components
|
|
8007
|
-
solar
|
|
7996
|
+
installation_date: string;
|
|
7997
|
+
user_settings: {
|
|
7998
|
+
go_off_grid_test_banner_enabled: null | boolean;
|
|
7999
|
+
storm_mode_enabled: null | boolean;
|
|
8000
|
+
powerwall_onboarding_settings_set: null | boolean;
|
|
8001
|
+
powerwall_tesla_electric_interested_in: null | boolean;
|
|
8002
|
+
vpp_tour_enabled: null | boolean;
|
|
8003
|
+
off_grid_vehicle_charging_enabled: null | boolean;
|
|
8004
|
+
};
|
|
8005
|
+
components: {
|
|
8006
|
+
solar: boolean;
|
|
8008
8007
|
solar_type?: string;
|
|
8009
|
-
battery
|
|
8010
|
-
grid
|
|
8011
|
-
backup
|
|
8012
|
-
gateway
|
|
8013
|
-
load_meter
|
|
8014
|
-
tou_capable
|
|
8015
|
-
storm_mode_capable
|
|
8016
|
-
off_grid_vehicle_charging_reserve_supported
|
|
8017
|
-
vehicle_charging_performance_view_enabled
|
|
8018
|
-
vehicle_charging_solar_offset_view_enabled
|
|
8019
|
-
battery_solar_offset_view_enabled
|
|
8020
|
-
|
|
8008
|
+
battery: boolean;
|
|
8009
|
+
grid: boolean;
|
|
8010
|
+
backup: boolean;
|
|
8011
|
+
gateway: string;
|
|
8012
|
+
load_meter: boolean;
|
|
8013
|
+
tou_capable: boolean;
|
|
8014
|
+
storm_mode_capable: boolean;
|
|
8015
|
+
off_grid_vehicle_charging_reserve_supported: boolean;
|
|
8016
|
+
vehicle_charging_performance_view_enabled: boolean;
|
|
8017
|
+
vehicle_charging_solar_offset_view_enabled: boolean;
|
|
8018
|
+
battery_solar_offset_view_enabled: boolean;
|
|
8019
|
+
solar_value_enabled?: boolean;
|
|
8020
|
+
energy_value_header?: string;
|
|
8021
|
+
energy_value_subheader?: string;
|
|
8022
|
+
energy_service_self_scheduling_enabled: boolean;
|
|
8023
|
+
show_battery_soe_graph?: boolean;
|
|
8024
|
+
show_grid_import_battery_source_cards?: boolean;
|
|
8025
|
+
set_islanding_mode_enabled?: boolean;
|
|
8026
|
+
wifi_commissioning_enabled?: boolean;
|
|
8027
|
+
backup_time_remaining_enabled?: boolean;
|
|
8028
|
+
battery_type?: string;
|
|
8029
|
+
configurable?: boolean;
|
|
8030
|
+
grid_services_enabled?: boolean;
|
|
8031
|
+
gateways?: Array<{
|
|
8032
|
+
device_id: string;
|
|
8033
|
+
din: string;
|
|
8034
|
+
serial_number: string;
|
|
8035
|
+
part_number: string;
|
|
8036
|
+
part_type: number;
|
|
8037
|
+
part_name: string;
|
|
8038
|
+
is_active: boolean;
|
|
8039
|
+
site_id: string;
|
|
8040
|
+
firmware_version: string;
|
|
8041
|
+
updated_datetime: string;
|
|
8042
|
+
leader_device_id?: string;
|
|
8043
|
+
}>;
|
|
8044
|
+
customer_preferred_export_rule?: string;
|
|
8045
|
+
edit_setting_permission_to_export?: boolean;
|
|
8046
|
+
edit_setting_grid_charging?: boolean;
|
|
8047
|
+
edit_setting_energy_exports?: boolean;
|
|
8048
|
+
system_alerts_enabled?: boolean;
|
|
8049
|
+
service_mode_enabled?: boolean;
|
|
8050
|
+
support_manual_backup?: boolean;
|
|
8051
|
+
rate_tariff_service_options: {
|
|
8052
|
+
rate_plan_configured_by_rts: boolean;
|
|
8053
|
+
rate_tariff_service_enabled: boolean;
|
|
8054
|
+
request_export_tariff: boolean;
|
|
8055
|
+
request_network_fees: boolean;
|
|
8056
|
+
};
|
|
8021
8057
|
wall_connectors?: Array<{
|
|
8022
|
-
device_id
|
|
8023
|
-
din
|
|
8024
|
-
serial_number
|
|
8025
|
-
part_number
|
|
8058
|
+
device_id: string;
|
|
8059
|
+
din: string;
|
|
8060
|
+
serial_number: string;
|
|
8061
|
+
part_number: string;
|
|
8062
|
+
part_type: number;
|
|
8063
|
+
part_name: string;
|
|
8064
|
+
is_active: boolean;
|
|
8065
|
+
}>;
|
|
8066
|
+
net_meter_mode?: string;
|
|
8067
|
+
batteries?: Array<{
|
|
8068
|
+
device_id: string;
|
|
8069
|
+
din: string;
|
|
8070
|
+
serial_number: string;
|
|
8071
|
+
part_number: string;
|
|
8026
8072
|
part_type?: number;
|
|
8027
8073
|
part_name?: string;
|
|
8028
|
-
|
|
8074
|
+
nameplate_max_charge_power: number;
|
|
8075
|
+
nameplate_max_discharge_power: number;
|
|
8076
|
+
nameplate_energy: number;
|
|
8077
|
+
is_active: boolean;
|
|
8029
8078
|
}>;
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
|
|
8035
|
-
|
|
8036
|
-
request_network_fees?: boolean;
|
|
8079
|
+
non_export_configured?: boolean;
|
|
8080
|
+
disallow_charge_from_grid_with_solar_installed?: boolean;
|
|
8081
|
+
ITC_cliff?: number;
|
|
8082
|
+
sunrun_options?: {
|
|
8083
|
+
my_home_info_deeplink_enabled: boolean;
|
|
8084
|
+
support_screen_deeplink_enabled: boolean;
|
|
8037
8085
|
};
|
|
8038
|
-
|
|
8039
|
-
|
|
8040
|
-
|
|
8041
|
-
|
|
8086
|
+
inverters?: Array<{
|
|
8087
|
+
device_id: string;
|
|
8088
|
+
din: string;
|
|
8089
|
+
serial_number: string;
|
|
8090
|
+
part_number: string;
|
|
8091
|
+
part_type: number;
|
|
8092
|
+
part_name: string;
|
|
8093
|
+
is_active: boolean;
|
|
8094
|
+
site_id: string;
|
|
8095
|
+
firmware_version?: string;
|
|
8096
|
+
}>;
|
|
8097
|
+
nbt_supported?: boolean;
|
|
8098
|
+
local_offline_monitoring_enabled?: boolean;
|
|
8099
|
+
hide_time_of_use_card?: boolean;
|
|
8042
8100
|
};
|
|
8043
8101
|
version?: string;
|
|
8044
8102
|
battery_count?: number;
|
|
8103
|
+
/**
|
|
8104
|
+
* See https://digitalassets-energy.tesla.com/raw/upload/app/fleet-api/example-tariff/PGE-EV2-A.json for example
|
|
8105
|
+
*/
|
|
8106
|
+
tariff_content?: {
|
|
8107
|
+
[key: string]: unknown;
|
|
8108
|
+
};
|
|
8045
8109
|
nameplate_power?: number;
|
|
8046
|
-
nameplate_energy?: number;
|
|
8047
8110
|
installation_time_zone?: string;
|
|
8048
8111
|
max_site_meter_power_ac?: number;
|
|
8049
8112
|
min_site_meter_power_ac?: number;
|
|
8113
|
+
/**
|
|
8114
|
+
* See https://digitalassets-energy.tesla.com/raw/upload/app/fleet-api/example-tariff/PGE-EV2-A.json for example
|
|
8115
|
+
*/
|
|
8050
8116
|
tariff_content_v2?: {
|
|
8051
|
-
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
|
|
8117
|
+
[key: string]: unknown;
|
|
8118
|
+
};
|
|
8119
|
+
vpp_backup_reserve_percent?: number;
|
|
8120
|
+
utility?: string;
|
|
8121
|
+
island_config?: {
|
|
8122
|
+
low_soe_limit?: number;
|
|
8123
|
+
jump_start_soe_threshold?: number;
|
|
8124
|
+
wait_for_solar_retry_soe?: number;
|
|
8125
|
+
max_frequency_shift_hz?: number;
|
|
8126
|
+
wait_for_solar_soe_threshold?: number;
|
|
8127
|
+
microgrid_not_ok_timeout?: number;
|
|
8128
|
+
manual_backup?: boolean;
|
|
8129
|
+
neutral_balancer_type?: string;
|
|
8130
|
+
};
|
|
8131
|
+
vehicle_charging_settings?: {
|
|
8132
|
+
evses: Array<{
|
|
8133
|
+
din: string;
|
|
8134
|
+
smart_charging?: {
|
|
8135
|
+
enable?: boolean;
|
|
8136
|
+
schedules?: Array<{
|
|
8137
|
+
time: string;
|
|
8138
|
+
}>;
|
|
8139
|
+
min_hours_charging?: number;
|
|
8140
|
+
};
|
|
8141
|
+
modbus_id?: number;
|
|
8056
8142
|
}>;
|
|
8057
|
-
|
|
8058
|
-
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
|
|
8064
|
-
|
|
8065
|
-
|
|
8066
|
-
|
|
8067
|
-
|
|
8143
|
+
};
|
|
8144
|
+
nameplate_energy?: number;
|
|
8145
|
+
off_grid_vehicle_charging_reserve_percent?: number;
|
|
8146
|
+
tariff_id?: string;
|
|
8147
|
+
site_number?: string;
|
|
8148
|
+
time_zone_offset?: number;
|
|
8149
|
+
app_settings?: {
|
|
8150
|
+
live_status_local_refresh_s: number;
|
|
8151
|
+
};
|
|
8152
|
+
csip?: {
|
|
8153
|
+
dcap_url: string;
|
|
8154
|
+
device_certificate: string;
|
|
8155
|
+
csip_australia: {
|
|
8156
|
+
national_meter_identifier: string;
|
|
8068
8157
|
};
|
|
8069
8158
|
};
|
|
8159
|
+
external_switch?: {
|
|
8160
|
+
input_type: string;
|
|
8161
|
+
control_behavior: string;
|
|
8162
|
+
};
|
|
8163
|
+
aggregation_program?: {
|
|
8164
|
+
name: string;
|
|
8165
|
+
description: string;
|
|
8166
|
+
link_name: string;
|
|
8167
|
+
link_url: string;
|
|
8168
|
+
};
|
|
8169
|
+
tesla_electric_billing_periods?: Array<{
|
|
8170
|
+
start_time: string;
|
|
8171
|
+
end_time: string;
|
|
8172
|
+
}>;
|
|
8070
8173
|
};
|
|
8174
|
+
error?: string;
|
|
8175
|
+
error_description?: string;
|
|
8176
|
+
txid?: string;
|
|
8071
8177
|
};
|
|
8072
8178
|
};
|
|
8073
8179
|
type GetApi1EnergySitesByIdSiteInfoResponse = GetApi1EnergySitesByIdSiteInfoResponses[keyof GetApi1EnergySitesByIdSiteInfoResponses];
|
|
@@ -10007,20 +10113,24 @@ type OmitKeys<T, K$1> = Pick<T, Exclude<keyof T, K$1>>;
|
|
|
10007
10113
|
type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown, TResponseStyle extends ResponseStyle = 'fields'> = OmitKeys<RequestOptions<TResponse, TResponseStyle, ThrowOnError>, 'body' | 'path' | 'query' | 'url'> & ([TData] extends [never] ? unknown : Omit<TData, 'url'>);
|
|
10008
10114
|
//#endregion
|
|
10009
10115
|
//#region src/TeslemetryEnergyApi.d.ts
|
|
10116
|
+
type TeslemetryEnergyEventMap = {
|
|
10117
|
+
siteInfo: GetApi1EnergySitesByIdSiteInfoResponse;
|
|
10118
|
+
liveStatus: GetApi1EnergySitesByIdLiveStatusResponse;
|
|
10119
|
+
};
|
|
10010
10120
|
declare interface TeslemetryEnergyApi {
|
|
10011
|
-
on(event:
|
|
10012
|
-
|
|
10013
|
-
|
|
10014
|
-
|
|
10015
|
-
once(event: "siteInfo", listener: (data: GetApi1EnergySitesByIdSiteInfoResponse) => void): this;
|
|
10016
|
-
once(event: "liveStatus", listener: (data: GetApi1EnergySitesByIdLiveStatusResponse) => void): this;
|
|
10017
|
-
emit(event: "siteInfo", data: GetApi1EnergySitesByIdSiteInfoResponse): boolean;
|
|
10018
|
-
emit(event: "liveStatus", data: GetApi1EnergySitesByIdLiveStatusResponse): boolean;
|
|
10121
|
+
on<K$1 extends keyof TeslemetryEnergyEventMap>(event: K$1, listener: (data: TeslemetryEnergyEventMap[K$1]) => void): this;
|
|
10122
|
+
off<K$1 extends keyof TeslemetryEnergyEventMap>(event: K$1, listener: (data: TeslemetryEnergyEventMap[K$1]) => void): this;
|
|
10123
|
+
once<K$1 extends keyof TeslemetryEnergyEventMap>(event: K$1, listener: (data: TeslemetryEnergyEventMap[K$1]) => void): this;
|
|
10124
|
+
emit<K$1 extends keyof TeslemetryEnergyEventMap>(event: K$1, data: TeslemetryEnergyEventMap[K$1]): boolean;
|
|
10019
10125
|
}
|
|
10020
10126
|
type PollingEndpoints = "siteInfo" | "liveStatus";
|
|
10021
10127
|
declare class TeslemetryEnergyApi extends EventEmitter {
|
|
10022
10128
|
private root;
|
|
10023
10129
|
siteId: number;
|
|
10130
|
+
cache: {
|
|
10131
|
+
siteInfo: GetApi1EnergySitesByIdSiteInfoResponse | null;
|
|
10132
|
+
liveStatus: GetApi1EnergySitesByIdLiveStatusResponse | null;
|
|
10133
|
+
};
|
|
10024
10134
|
refreshDelay: number;
|
|
10025
10135
|
private refreshInterval;
|
|
10026
10136
|
private refreshClients;
|
|
@@ -10080,122 +10190,18 @@ declare class TeslemetryEnergyApi extends EventEmitter {
|
|
|
10080
10190
|
gridImportExport(customer_preferred_export_rule: "battery_ok" | "pv_only" | "never", disallow_charge_from_grid_with_solar_installed?: boolean): Promise<{
|
|
10081
10191
|
response?: string;
|
|
10082
10192
|
}>;
|
|
10193
|
+
private getLiveStatusReuse;
|
|
10083
10194
|
/**
|
|
10084
10195
|
* Returns the live status of the site (power, state of energy, grid status, storm mode).
|
|
10085
10196
|
* @return Promise to an object with response containing current live status of the energy site
|
|
10086
10197
|
*/
|
|
10087
|
-
getLiveStatus(): Promise<
|
|
10088
|
-
|
|
10089
|
-
solar_power?: number;
|
|
10090
|
-
energy_left?: number;
|
|
10091
|
-
total_pack_energy?: number;
|
|
10092
|
-
percentage_charged?: number;
|
|
10093
|
-
backup_capable?: boolean;
|
|
10094
|
-
battery_power?: number;
|
|
10095
|
-
load_power?: number;
|
|
10096
|
-
grid_status?: string;
|
|
10097
|
-
grid_power?: number;
|
|
10098
|
-
generator_power?: number;
|
|
10099
|
-
island_status?: string;
|
|
10100
|
-
storm_mode_active?: boolean;
|
|
10101
|
-
wall_connectors?: Array<{
|
|
10102
|
-
din: string;
|
|
10103
|
-
vin?: string;
|
|
10104
|
-
wall_connector_state: number;
|
|
10105
|
-
wall_connector_fault_state?: number;
|
|
10106
|
-
wall_connector_power: number;
|
|
10107
|
-
ocpp_status?: number;
|
|
10108
|
-
powershare_session_state?: number;
|
|
10109
|
-
}>;
|
|
10110
|
-
timestamp: string;
|
|
10111
|
-
};
|
|
10112
|
-
}>;
|
|
10198
|
+
getLiveStatus(): Promise<any>;
|
|
10199
|
+
private getSiteInfoReuse;
|
|
10113
10200
|
/**
|
|
10114
10201
|
* Returns information about the site. Things like assets (has solar, etc), settings (backup reserve, etc), and features (storm_mode_capable, etc).
|
|
10115
10202
|
* @return Promise to an object with response containing detailed information about the energy site
|
|
10116
10203
|
*/
|
|
10117
|
-
getSiteInfo(): Promise<
|
|
10118
|
-
response?: {
|
|
10119
|
-
id?: string;
|
|
10120
|
-
site_name?: string;
|
|
10121
|
-
site_number?: string;
|
|
10122
|
-
backup_reserve_percent?: number;
|
|
10123
|
-
default_real_mode?: string;
|
|
10124
|
-
installation_date?: string;
|
|
10125
|
-
user_settings?: {
|
|
10126
|
-
go_off_grid_test_banner_enabled?: null | boolean;
|
|
10127
|
-
storm_mode_enabled?: null | boolean;
|
|
10128
|
-
powerwall_onboarding_settings_set?: null | boolean;
|
|
10129
|
-
powerwall_tesla_electric_interested_in?: null | boolean;
|
|
10130
|
-
vpp_tour_enabled?: null | boolean;
|
|
10131
|
-
off_grid_vehicle_charging_enabled?: null | boolean;
|
|
10132
|
-
};
|
|
10133
|
-
components?: {
|
|
10134
|
-
solar?: boolean;
|
|
10135
|
-
solar_type?: string;
|
|
10136
|
-
battery?: boolean;
|
|
10137
|
-
grid?: boolean;
|
|
10138
|
-
backup?: boolean;
|
|
10139
|
-
gateway?: string;
|
|
10140
|
-
load_meter?: boolean;
|
|
10141
|
-
tou_capable?: boolean;
|
|
10142
|
-
storm_mode_capable?: boolean;
|
|
10143
|
-
off_grid_vehicle_charging_reserve_supported?: boolean;
|
|
10144
|
-
vehicle_charging_performance_view_enabled?: boolean;
|
|
10145
|
-
vehicle_charging_solar_offset_view_enabled?: boolean;
|
|
10146
|
-
battery_solar_offset_view_enabled?: boolean;
|
|
10147
|
-
energy_service_self_scheduling_enabled?: boolean;
|
|
10148
|
-
wall_connectors?: Array<{
|
|
10149
|
-
device_id?: string;
|
|
10150
|
-
din?: string;
|
|
10151
|
-
serial_number?: string;
|
|
10152
|
-
part_number?: string;
|
|
10153
|
-
part_type?: number;
|
|
10154
|
-
part_name?: string;
|
|
10155
|
-
is_active?: boolean;
|
|
10156
|
-
}>;
|
|
10157
|
-
nbt_supported?: boolean;
|
|
10158
|
-
system_alerts_enabled?: boolean;
|
|
10159
|
-
rate_tariff_service_options?: {
|
|
10160
|
-
rate_plan_configured_by_rts?: boolean;
|
|
10161
|
-
rate_tariff_service_enabled?: boolean;
|
|
10162
|
-
request_export_tariff?: boolean;
|
|
10163
|
-
request_network_fees?: boolean;
|
|
10164
|
-
};
|
|
10165
|
-
solar_value_enabled?: boolean;
|
|
10166
|
-
set_islanding_mode_enabled?: boolean;
|
|
10167
|
-
battery_type?: string;
|
|
10168
|
-
configurable?: boolean;
|
|
10169
|
-
};
|
|
10170
|
-
version?: string;
|
|
10171
|
-
battery_count?: number;
|
|
10172
|
-
nameplate_power?: number;
|
|
10173
|
-
nameplate_energy?: number;
|
|
10174
|
-
installation_time_zone?: string;
|
|
10175
|
-
max_site_meter_power_ac?: number;
|
|
10176
|
-
min_site_meter_power_ac?: number;
|
|
10177
|
-
tariff_content_v2?: {
|
|
10178
|
-
name?: string;
|
|
10179
|
-
utility?: string;
|
|
10180
|
-
version?: number;
|
|
10181
|
-
daily_charges?: Array<{
|
|
10182
|
-
name?: string;
|
|
10183
|
-
}>;
|
|
10184
|
-
demand_charges?: {
|
|
10185
|
-
[key: string]: unknown;
|
|
10186
|
-
};
|
|
10187
|
-
energy_charges?: {
|
|
10188
|
-
[key: string]: unknown;
|
|
10189
|
-
};
|
|
10190
|
-
seasons?: {
|
|
10191
|
-
[key: string]: unknown;
|
|
10192
|
-
};
|
|
10193
|
-
sell_tariff?: {
|
|
10194
|
-
[key: string]: unknown;
|
|
10195
|
-
};
|
|
10196
|
-
};
|
|
10197
|
-
};
|
|
10198
|
-
}>;
|
|
10204
|
+
getSiteInfo(): Promise<any>;
|
|
10199
10205
|
/**
|
|
10200
10206
|
* Adjust the site's off-grid vehicle charging backup reserve.
|
|
10201
10207
|
* @param off_grid_vehicle_charging_reserve_percent The off-grid vehicle charging backup reserve percentage
|
package/dist/index.d.mts
CHANGED
|
@@ -7988,86 +7988,192 @@ type GetApi1EnergySitesByIdSiteInfoResponses = {
|
|
|
7988
7988
|
* Default Response
|
|
7989
7989
|
*/
|
|
7990
7990
|
200: {
|
|
7991
|
-
response
|
|
7992
|
-
id
|
|
7991
|
+
response: {
|
|
7992
|
+
id: string;
|
|
7993
7993
|
site_name?: string;
|
|
7994
|
-
site_number?: string;
|
|
7995
7994
|
backup_reserve_percent?: number;
|
|
7996
7995
|
default_real_mode?: string;
|
|
7997
|
-
installation_date
|
|
7998
|
-
user_settings
|
|
7999
|
-
go_off_grid_test_banner_enabled
|
|
8000
|
-
storm_mode_enabled
|
|
8001
|
-
powerwall_onboarding_settings_set
|
|
8002
|
-
powerwall_tesla_electric_interested_in
|
|
8003
|
-
vpp_tour_enabled
|
|
8004
|
-
off_grid_vehicle_charging_enabled
|
|
8005
|
-
};
|
|
8006
|
-
components
|
|
8007
|
-
solar
|
|
7996
|
+
installation_date: string;
|
|
7997
|
+
user_settings: {
|
|
7998
|
+
go_off_grid_test_banner_enabled: null | boolean;
|
|
7999
|
+
storm_mode_enabled: null | boolean;
|
|
8000
|
+
powerwall_onboarding_settings_set: null | boolean;
|
|
8001
|
+
powerwall_tesla_electric_interested_in: null | boolean;
|
|
8002
|
+
vpp_tour_enabled: null | boolean;
|
|
8003
|
+
off_grid_vehicle_charging_enabled: null | boolean;
|
|
8004
|
+
};
|
|
8005
|
+
components: {
|
|
8006
|
+
solar: boolean;
|
|
8008
8007
|
solar_type?: string;
|
|
8009
|
-
battery
|
|
8010
|
-
grid
|
|
8011
|
-
backup
|
|
8012
|
-
gateway
|
|
8013
|
-
load_meter
|
|
8014
|
-
tou_capable
|
|
8015
|
-
storm_mode_capable
|
|
8016
|
-
off_grid_vehicle_charging_reserve_supported
|
|
8017
|
-
vehicle_charging_performance_view_enabled
|
|
8018
|
-
vehicle_charging_solar_offset_view_enabled
|
|
8019
|
-
battery_solar_offset_view_enabled
|
|
8020
|
-
|
|
8008
|
+
battery: boolean;
|
|
8009
|
+
grid: boolean;
|
|
8010
|
+
backup: boolean;
|
|
8011
|
+
gateway: string;
|
|
8012
|
+
load_meter: boolean;
|
|
8013
|
+
tou_capable: boolean;
|
|
8014
|
+
storm_mode_capable: boolean;
|
|
8015
|
+
off_grid_vehicle_charging_reserve_supported: boolean;
|
|
8016
|
+
vehicle_charging_performance_view_enabled: boolean;
|
|
8017
|
+
vehicle_charging_solar_offset_view_enabled: boolean;
|
|
8018
|
+
battery_solar_offset_view_enabled: boolean;
|
|
8019
|
+
solar_value_enabled?: boolean;
|
|
8020
|
+
energy_value_header?: string;
|
|
8021
|
+
energy_value_subheader?: string;
|
|
8022
|
+
energy_service_self_scheduling_enabled: boolean;
|
|
8023
|
+
show_battery_soe_graph?: boolean;
|
|
8024
|
+
show_grid_import_battery_source_cards?: boolean;
|
|
8025
|
+
set_islanding_mode_enabled?: boolean;
|
|
8026
|
+
wifi_commissioning_enabled?: boolean;
|
|
8027
|
+
backup_time_remaining_enabled?: boolean;
|
|
8028
|
+
battery_type?: string;
|
|
8029
|
+
configurable?: boolean;
|
|
8030
|
+
grid_services_enabled?: boolean;
|
|
8031
|
+
gateways?: Array<{
|
|
8032
|
+
device_id: string;
|
|
8033
|
+
din: string;
|
|
8034
|
+
serial_number: string;
|
|
8035
|
+
part_number: string;
|
|
8036
|
+
part_type: number;
|
|
8037
|
+
part_name: string;
|
|
8038
|
+
is_active: boolean;
|
|
8039
|
+
site_id: string;
|
|
8040
|
+
firmware_version: string;
|
|
8041
|
+
updated_datetime: string;
|
|
8042
|
+
leader_device_id?: string;
|
|
8043
|
+
}>;
|
|
8044
|
+
customer_preferred_export_rule?: string;
|
|
8045
|
+
edit_setting_permission_to_export?: boolean;
|
|
8046
|
+
edit_setting_grid_charging?: boolean;
|
|
8047
|
+
edit_setting_energy_exports?: boolean;
|
|
8048
|
+
system_alerts_enabled?: boolean;
|
|
8049
|
+
service_mode_enabled?: boolean;
|
|
8050
|
+
support_manual_backup?: boolean;
|
|
8051
|
+
rate_tariff_service_options: {
|
|
8052
|
+
rate_plan_configured_by_rts: boolean;
|
|
8053
|
+
rate_tariff_service_enabled: boolean;
|
|
8054
|
+
request_export_tariff: boolean;
|
|
8055
|
+
request_network_fees: boolean;
|
|
8056
|
+
};
|
|
8021
8057
|
wall_connectors?: Array<{
|
|
8022
|
-
device_id
|
|
8023
|
-
din
|
|
8024
|
-
serial_number
|
|
8025
|
-
part_number
|
|
8058
|
+
device_id: string;
|
|
8059
|
+
din: string;
|
|
8060
|
+
serial_number: string;
|
|
8061
|
+
part_number: string;
|
|
8062
|
+
part_type: number;
|
|
8063
|
+
part_name: string;
|
|
8064
|
+
is_active: boolean;
|
|
8065
|
+
}>;
|
|
8066
|
+
net_meter_mode?: string;
|
|
8067
|
+
batteries?: Array<{
|
|
8068
|
+
device_id: string;
|
|
8069
|
+
din: string;
|
|
8070
|
+
serial_number: string;
|
|
8071
|
+
part_number: string;
|
|
8026
8072
|
part_type?: number;
|
|
8027
8073
|
part_name?: string;
|
|
8028
|
-
|
|
8074
|
+
nameplate_max_charge_power: number;
|
|
8075
|
+
nameplate_max_discharge_power: number;
|
|
8076
|
+
nameplate_energy: number;
|
|
8077
|
+
is_active: boolean;
|
|
8029
8078
|
}>;
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8033
|
-
|
|
8034
|
-
|
|
8035
|
-
|
|
8036
|
-
request_network_fees?: boolean;
|
|
8079
|
+
non_export_configured?: boolean;
|
|
8080
|
+
disallow_charge_from_grid_with_solar_installed?: boolean;
|
|
8081
|
+
ITC_cliff?: number;
|
|
8082
|
+
sunrun_options?: {
|
|
8083
|
+
my_home_info_deeplink_enabled: boolean;
|
|
8084
|
+
support_screen_deeplink_enabled: boolean;
|
|
8037
8085
|
};
|
|
8038
|
-
|
|
8039
|
-
|
|
8040
|
-
|
|
8041
|
-
|
|
8086
|
+
inverters?: Array<{
|
|
8087
|
+
device_id: string;
|
|
8088
|
+
din: string;
|
|
8089
|
+
serial_number: string;
|
|
8090
|
+
part_number: string;
|
|
8091
|
+
part_type: number;
|
|
8092
|
+
part_name: string;
|
|
8093
|
+
is_active: boolean;
|
|
8094
|
+
site_id: string;
|
|
8095
|
+
firmware_version?: string;
|
|
8096
|
+
}>;
|
|
8097
|
+
nbt_supported?: boolean;
|
|
8098
|
+
local_offline_monitoring_enabled?: boolean;
|
|
8099
|
+
hide_time_of_use_card?: boolean;
|
|
8042
8100
|
};
|
|
8043
8101
|
version?: string;
|
|
8044
8102
|
battery_count?: number;
|
|
8103
|
+
/**
|
|
8104
|
+
* See https://digitalassets-energy.tesla.com/raw/upload/app/fleet-api/example-tariff/PGE-EV2-A.json for example
|
|
8105
|
+
*/
|
|
8106
|
+
tariff_content?: {
|
|
8107
|
+
[key: string]: unknown;
|
|
8108
|
+
};
|
|
8045
8109
|
nameplate_power?: number;
|
|
8046
|
-
nameplate_energy?: number;
|
|
8047
8110
|
installation_time_zone?: string;
|
|
8048
8111
|
max_site_meter_power_ac?: number;
|
|
8049
8112
|
min_site_meter_power_ac?: number;
|
|
8113
|
+
/**
|
|
8114
|
+
* See https://digitalassets-energy.tesla.com/raw/upload/app/fleet-api/example-tariff/PGE-EV2-A.json for example
|
|
8115
|
+
*/
|
|
8050
8116
|
tariff_content_v2?: {
|
|
8051
|
-
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
|
|
8117
|
+
[key: string]: unknown;
|
|
8118
|
+
};
|
|
8119
|
+
vpp_backup_reserve_percent?: number;
|
|
8120
|
+
utility?: string;
|
|
8121
|
+
island_config?: {
|
|
8122
|
+
low_soe_limit?: number;
|
|
8123
|
+
jump_start_soe_threshold?: number;
|
|
8124
|
+
wait_for_solar_retry_soe?: number;
|
|
8125
|
+
max_frequency_shift_hz?: number;
|
|
8126
|
+
wait_for_solar_soe_threshold?: number;
|
|
8127
|
+
microgrid_not_ok_timeout?: number;
|
|
8128
|
+
manual_backup?: boolean;
|
|
8129
|
+
neutral_balancer_type?: string;
|
|
8130
|
+
};
|
|
8131
|
+
vehicle_charging_settings?: {
|
|
8132
|
+
evses: Array<{
|
|
8133
|
+
din: string;
|
|
8134
|
+
smart_charging?: {
|
|
8135
|
+
enable?: boolean;
|
|
8136
|
+
schedules?: Array<{
|
|
8137
|
+
time: string;
|
|
8138
|
+
}>;
|
|
8139
|
+
min_hours_charging?: number;
|
|
8140
|
+
};
|
|
8141
|
+
modbus_id?: number;
|
|
8056
8142
|
}>;
|
|
8057
|
-
|
|
8058
|
-
|
|
8059
|
-
|
|
8060
|
-
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
|
|
8064
|
-
|
|
8065
|
-
|
|
8066
|
-
|
|
8067
|
-
|
|
8143
|
+
};
|
|
8144
|
+
nameplate_energy?: number;
|
|
8145
|
+
off_grid_vehicle_charging_reserve_percent?: number;
|
|
8146
|
+
tariff_id?: string;
|
|
8147
|
+
site_number?: string;
|
|
8148
|
+
time_zone_offset?: number;
|
|
8149
|
+
app_settings?: {
|
|
8150
|
+
live_status_local_refresh_s: number;
|
|
8151
|
+
};
|
|
8152
|
+
csip?: {
|
|
8153
|
+
dcap_url: string;
|
|
8154
|
+
device_certificate: string;
|
|
8155
|
+
csip_australia: {
|
|
8156
|
+
national_meter_identifier: string;
|
|
8068
8157
|
};
|
|
8069
8158
|
};
|
|
8159
|
+
external_switch?: {
|
|
8160
|
+
input_type: string;
|
|
8161
|
+
control_behavior: string;
|
|
8162
|
+
};
|
|
8163
|
+
aggregation_program?: {
|
|
8164
|
+
name: string;
|
|
8165
|
+
description: string;
|
|
8166
|
+
link_name: string;
|
|
8167
|
+
link_url: string;
|
|
8168
|
+
};
|
|
8169
|
+
tesla_electric_billing_periods?: Array<{
|
|
8170
|
+
start_time: string;
|
|
8171
|
+
end_time: string;
|
|
8172
|
+
}>;
|
|
8070
8173
|
};
|
|
8174
|
+
error?: string;
|
|
8175
|
+
error_description?: string;
|
|
8176
|
+
txid?: string;
|
|
8071
8177
|
};
|
|
8072
8178
|
};
|
|
8073
8179
|
type GetApi1EnergySitesByIdSiteInfoResponse = GetApi1EnergySitesByIdSiteInfoResponses[keyof GetApi1EnergySitesByIdSiteInfoResponses];
|
|
@@ -10007,20 +10113,24 @@ type OmitKeys<T, K$1> = Pick<T, Exclude<keyof T, K$1>>;
|
|
|
10007
10113
|
type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown, TResponseStyle extends ResponseStyle = 'fields'> = OmitKeys<RequestOptions<TResponse, TResponseStyle, ThrowOnError>, 'body' | 'path' | 'query' | 'url'> & ([TData] extends [never] ? unknown : Omit<TData, 'url'>);
|
|
10008
10114
|
//#endregion
|
|
10009
10115
|
//#region src/TeslemetryEnergyApi.d.ts
|
|
10116
|
+
type TeslemetryEnergyEventMap = {
|
|
10117
|
+
siteInfo: GetApi1EnergySitesByIdSiteInfoResponse;
|
|
10118
|
+
liveStatus: GetApi1EnergySitesByIdLiveStatusResponse;
|
|
10119
|
+
};
|
|
10010
10120
|
declare interface TeslemetryEnergyApi {
|
|
10011
|
-
on(event:
|
|
10012
|
-
|
|
10013
|
-
|
|
10014
|
-
|
|
10015
|
-
once(event: "siteInfo", listener: (data: GetApi1EnergySitesByIdSiteInfoResponse) => void): this;
|
|
10016
|
-
once(event: "liveStatus", listener: (data: GetApi1EnergySitesByIdLiveStatusResponse) => void): this;
|
|
10017
|
-
emit(event: "siteInfo", data: GetApi1EnergySitesByIdSiteInfoResponse): boolean;
|
|
10018
|
-
emit(event: "liveStatus", data: GetApi1EnergySitesByIdLiveStatusResponse): boolean;
|
|
10121
|
+
on<K$1 extends keyof TeslemetryEnergyEventMap>(event: K$1, listener: (data: TeslemetryEnergyEventMap[K$1]) => void): this;
|
|
10122
|
+
off<K$1 extends keyof TeslemetryEnergyEventMap>(event: K$1, listener: (data: TeslemetryEnergyEventMap[K$1]) => void): this;
|
|
10123
|
+
once<K$1 extends keyof TeslemetryEnergyEventMap>(event: K$1, listener: (data: TeslemetryEnergyEventMap[K$1]) => void): this;
|
|
10124
|
+
emit<K$1 extends keyof TeslemetryEnergyEventMap>(event: K$1, data: TeslemetryEnergyEventMap[K$1]): boolean;
|
|
10019
10125
|
}
|
|
10020
10126
|
type PollingEndpoints = "siteInfo" | "liveStatus";
|
|
10021
10127
|
declare class TeslemetryEnergyApi extends EventEmitter {
|
|
10022
10128
|
private root;
|
|
10023
10129
|
siteId: number;
|
|
10130
|
+
cache: {
|
|
10131
|
+
siteInfo: GetApi1EnergySitesByIdSiteInfoResponse | null;
|
|
10132
|
+
liveStatus: GetApi1EnergySitesByIdLiveStatusResponse | null;
|
|
10133
|
+
};
|
|
10024
10134
|
refreshDelay: number;
|
|
10025
10135
|
private refreshInterval;
|
|
10026
10136
|
private refreshClients;
|
|
@@ -10080,122 +10190,18 @@ declare class TeslemetryEnergyApi extends EventEmitter {
|
|
|
10080
10190
|
gridImportExport(customer_preferred_export_rule: "battery_ok" | "pv_only" | "never", disallow_charge_from_grid_with_solar_installed?: boolean): Promise<{
|
|
10081
10191
|
response?: string;
|
|
10082
10192
|
}>;
|
|
10193
|
+
private getLiveStatusReuse;
|
|
10083
10194
|
/**
|
|
10084
10195
|
* Returns the live status of the site (power, state of energy, grid status, storm mode).
|
|
10085
10196
|
* @return Promise to an object with response containing current live status of the energy site
|
|
10086
10197
|
*/
|
|
10087
|
-
getLiveStatus(): Promise<
|
|
10088
|
-
|
|
10089
|
-
solar_power?: number;
|
|
10090
|
-
energy_left?: number;
|
|
10091
|
-
total_pack_energy?: number;
|
|
10092
|
-
percentage_charged?: number;
|
|
10093
|
-
backup_capable?: boolean;
|
|
10094
|
-
battery_power?: number;
|
|
10095
|
-
load_power?: number;
|
|
10096
|
-
grid_status?: string;
|
|
10097
|
-
grid_power?: number;
|
|
10098
|
-
generator_power?: number;
|
|
10099
|
-
island_status?: string;
|
|
10100
|
-
storm_mode_active?: boolean;
|
|
10101
|
-
wall_connectors?: Array<{
|
|
10102
|
-
din: string;
|
|
10103
|
-
vin?: string;
|
|
10104
|
-
wall_connector_state: number;
|
|
10105
|
-
wall_connector_fault_state?: number;
|
|
10106
|
-
wall_connector_power: number;
|
|
10107
|
-
ocpp_status?: number;
|
|
10108
|
-
powershare_session_state?: number;
|
|
10109
|
-
}>;
|
|
10110
|
-
timestamp: string;
|
|
10111
|
-
};
|
|
10112
|
-
}>;
|
|
10198
|
+
getLiveStatus(): Promise<any>;
|
|
10199
|
+
private getSiteInfoReuse;
|
|
10113
10200
|
/**
|
|
10114
10201
|
* Returns information about the site. Things like assets (has solar, etc), settings (backup reserve, etc), and features (storm_mode_capable, etc).
|
|
10115
10202
|
* @return Promise to an object with response containing detailed information about the energy site
|
|
10116
10203
|
*/
|
|
10117
|
-
getSiteInfo(): Promise<
|
|
10118
|
-
response?: {
|
|
10119
|
-
id?: string;
|
|
10120
|
-
site_name?: string;
|
|
10121
|
-
site_number?: string;
|
|
10122
|
-
backup_reserve_percent?: number;
|
|
10123
|
-
default_real_mode?: string;
|
|
10124
|
-
installation_date?: string;
|
|
10125
|
-
user_settings?: {
|
|
10126
|
-
go_off_grid_test_banner_enabled?: null | boolean;
|
|
10127
|
-
storm_mode_enabled?: null | boolean;
|
|
10128
|
-
powerwall_onboarding_settings_set?: null | boolean;
|
|
10129
|
-
powerwall_tesla_electric_interested_in?: null | boolean;
|
|
10130
|
-
vpp_tour_enabled?: null | boolean;
|
|
10131
|
-
off_grid_vehicle_charging_enabled?: null | boolean;
|
|
10132
|
-
};
|
|
10133
|
-
components?: {
|
|
10134
|
-
solar?: boolean;
|
|
10135
|
-
solar_type?: string;
|
|
10136
|
-
battery?: boolean;
|
|
10137
|
-
grid?: boolean;
|
|
10138
|
-
backup?: boolean;
|
|
10139
|
-
gateway?: string;
|
|
10140
|
-
load_meter?: boolean;
|
|
10141
|
-
tou_capable?: boolean;
|
|
10142
|
-
storm_mode_capable?: boolean;
|
|
10143
|
-
off_grid_vehicle_charging_reserve_supported?: boolean;
|
|
10144
|
-
vehicle_charging_performance_view_enabled?: boolean;
|
|
10145
|
-
vehicle_charging_solar_offset_view_enabled?: boolean;
|
|
10146
|
-
battery_solar_offset_view_enabled?: boolean;
|
|
10147
|
-
energy_service_self_scheduling_enabled?: boolean;
|
|
10148
|
-
wall_connectors?: Array<{
|
|
10149
|
-
device_id?: string;
|
|
10150
|
-
din?: string;
|
|
10151
|
-
serial_number?: string;
|
|
10152
|
-
part_number?: string;
|
|
10153
|
-
part_type?: number;
|
|
10154
|
-
part_name?: string;
|
|
10155
|
-
is_active?: boolean;
|
|
10156
|
-
}>;
|
|
10157
|
-
nbt_supported?: boolean;
|
|
10158
|
-
system_alerts_enabled?: boolean;
|
|
10159
|
-
rate_tariff_service_options?: {
|
|
10160
|
-
rate_plan_configured_by_rts?: boolean;
|
|
10161
|
-
rate_tariff_service_enabled?: boolean;
|
|
10162
|
-
request_export_tariff?: boolean;
|
|
10163
|
-
request_network_fees?: boolean;
|
|
10164
|
-
};
|
|
10165
|
-
solar_value_enabled?: boolean;
|
|
10166
|
-
set_islanding_mode_enabled?: boolean;
|
|
10167
|
-
battery_type?: string;
|
|
10168
|
-
configurable?: boolean;
|
|
10169
|
-
};
|
|
10170
|
-
version?: string;
|
|
10171
|
-
battery_count?: number;
|
|
10172
|
-
nameplate_power?: number;
|
|
10173
|
-
nameplate_energy?: number;
|
|
10174
|
-
installation_time_zone?: string;
|
|
10175
|
-
max_site_meter_power_ac?: number;
|
|
10176
|
-
min_site_meter_power_ac?: number;
|
|
10177
|
-
tariff_content_v2?: {
|
|
10178
|
-
name?: string;
|
|
10179
|
-
utility?: string;
|
|
10180
|
-
version?: number;
|
|
10181
|
-
daily_charges?: Array<{
|
|
10182
|
-
name?: string;
|
|
10183
|
-
}>;
|
|
10184
|
-
demand_charges?: {
|
|
10185
|
-
[key: string]: unknown;
|
|
10186
|
-
};
|
|
10187
|
-
energy_charges?: {
|
|
10188
|
-
[key: string]: unknown;
|
|
10189
|
-
};
|
|
10190
|
-
seasons?: {
|
|
10191
|
-
[key: string]: unknown;
|
|
10192
|
-
};
|
|
10193
|
-
sell_tariff?: {
|
|
10194
|
-
[key: string]: unknown;
|
|
10195
|
-
};
|
|
10196
|
-
};
|
|
10197
|
-
};
|
|
10198
|
-
}>;
|
|
10204
|
+
getSiteInfo(): Promise<any>;
|
|
10199
10205
|
/**
|
|
10200
10206
|
* Adjust the site's off-grid vehicle charging backup reserve.
|
|
10201
10207
|
* @param off_grid_vehicle_charging_reserve_percent The off-grid vehicle charging backup reserve percentage
|
package/dist/index.mjs
CHANGED
|
@@ -3115,8 +3115,8 @@ var TeslemetryStream = class extends EventEmitter {
|
|
|
3115
3115
|
this.cloudCache = options.cache;
|
|
3116
3116
|
this.localCache = options.cache;
|
|
3117
3117
|
} else {
|
|
3118
|
-
this.cloudCache = options?.cache?.cloud;
|
|
3119
|
-
this.localCache = options?.cache?.local;
|
|
3118
|
+
this.cloudCache = options?.cache?.cloud ?? true;
|
|
3119
|
+
this.localCache = options?.cache?.local ?? true;
|
|
3120
3120
|
}
|
|
3121
3121
|
this.logger = root.logger;
|
|
3122
3122
|
if (this.vin) this.getVehicle(this.vin);
|
|
@@ -3341,11 +3341,30 @@ var TeslemetryChargingApi = class {
|
|
|
3341
3341
|
}
|
|
3342
3342
|
};
|
|
3343
3343
|
|
|
3344
|
+
//#endregion
|
|
3345
|
+
//#region src/reuse.ts
|
|
3346
|
+
const reuse = (linger = 0) => {
|
|
3347
|
+
let promise = null;
|
|
3348
|
+
return async (func) => {
|
|
3349
|
+
if (promise) return promise;
|
|
3350
|
+
try {
|
|
3351
|
+
promise = func();
|
|
3352
|
+
return await promise;
|
|
3353
|
+
} finally {
|
|
3354
|
+
setTimeout(() => promise = null, linger);
|
|
3355
|
+
}
|
|
3356
|
+
};
|
|
3357
|
+
};
|
|
3358
|
+
|
|
3344
3359
|
//#endregion
|
|
3345
3360
|
//#region src/TeslemetryEnergyApi.ts
|
|
3346
3361
|
var TeslemetryEnergyApi = class extends EventEmitter {
|
|
3347
3362
|
root;
|
|
3348
3363
|
siteId;
|
|
3364
|
+
cache = {
|
|
3365
|
+
siteInfo: null,
|
|
3366
|
+
liveStatus: null
|
|
3367
|
+
};
|
|
3349
3368
|
refreshDelay = 3e4;
|
|
3350
3369
|
refreshInterval = {
|
|
3351
3370
|
siteInfo: null,
|
|
@@ -3362,6 +3381,11 @@ var TeslemetryEnergyApi = class extends EventEmitter {
|
|
|
3362
3381
|
this.siteId = siteId;
|
|
3363
3382
|
root.api.energySites.set(siteId, this);
|
|
3364
3383
|
}
|
|
3384
|
+
on(event, listener) {
|
|
3385
|
+
const cached = this.cache[event];
|
|
3386
|
+
if (cached) listener(cached);
|
|
3387
|
+
return super.on(event, listener);
|
|
3388
|
+
}
|
|
3365
3389
|
/**
|
|
3366
3390
|
* Adjust the site's backup reserve.
|
|
3367
3391
|
* @param backup_reserve_percent The backup reserve percentage
|
|
@@ -3413,29 +3437,37 @@ var TeslemetryEnergyApi = class extends EventEmitter {
|
|
|
3413
3437
|
});
|
|
3414
3438
|
return data;
|
|
3415
3439
|
}
|
|
3440
|
+
getLiveStatusReuse = reuse(1e3);
|
|
3416
3441
|
/**
|
|
3417
3442
|
* Returns the live status of the site (power, state of energy, grid status, storm mode).
|
|
3418
3443
|
* @return Promise to an object with response containing current live status of the energy site
|
|
3419
3444
|
*/
|
|
3420
3445
|
async getLiveStatus() {
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3446
|
+
return this.getLiveStatusReuse(async () => {
|
|
3447
|
+
const { data } = await getApi1EnergySitesByIdLiveStatus({
|
|
3448
|
+
path: { id: this.siteId },
|
|
3449
|
+
client: this.root.client
|
|
3450
|
+
});
|
|
3451
|
+
this.cache.liveStatus = data;
|
|
3452
|
+
this.emit("liveStatus", data);
|
|
3453
|
+
return data;
|
|
3424
3454
|
});
|
|
3425
|
-
this.emit("liveStatus", data);
|
|
3426
|
-
return data;
|
|
3427
3455
|
}
|
|
3456
|
+
getSiteInfoReuse = reuse(1e3);
|
|
3428
3457
|
/**
|
|
3429
3458
|
* Returns information about the site. Things like assets (has solar, etc), settings (backup reserve, etc), and features (storm_mode_capable, etc).
|
|
3430
3459
|
* @return Promise to an object with response containing detailed information about the energy site
|
|
3431
3460
|
*/
|
|
3432
3461
|
async getSiteInfo() {
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3462
|
+
return this.getSiteInfoReuse(async () => {
|
|
3463
|
+
const { data } = await getApi1EnergySitesByIdSiteInfo({
|
|
3464
|
+
path: { id: this.siteId },
|
|
3465
|
+
client: this.root.client
|
|
3466
|
+
});
|
|
3467
|
+
this.cache.siteInfo = data;
|
|
3468
|
+
this.emit("siteInfo", data);
|
|
3469
|
+
return data;
|
|
3436
3470
|
});
|
|
3437
|
-
this.emit("siteInfo", data);
|
|
3438
|
-
return data;
|
|
3439
3471
|
}
|
|
3440
3472
|
/**
|
|
3441
3473
|
* Adjust the site's off-grid vehicle charging backup reserve.
|
|
@@ -5045,7 +5077,7 @@ const consoleLogger = {
|
|
|
5045
5077
|
|
|
5046
5078
|
//#endregion
|
|
5047
5079
|
//#region package.json
|
|
5048
|
-
var version = "0.5.
|
|
5080
|
+
var version = "0.5.3";
|
|
5049
5081
|
|
|
5050
5082
|
//#endregion
|
|
5051
5083
|
//#region src/Teslemetry.ts
|