shelly-sdk
Version:
Shelly SDK for Node.js with Types definition
208 lines • 7.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.marshallRemoteSettings = exports.unmarshallRemoteSettings = void 0;
const relay_1 = require("./relay");
const unmarshallRemoteSettings = (settings) => {
if (!settings) {
throw new Error('Invalid settings: ' + settings);
}
return {
device: {
type: settings.device.type,
mac: settings.device.mac,
hostname: settings.device.hostname,
num_outputs: settings.device.num_outputs,
},
wifiAccessPoint: {
enabled: settings.wifi_ap.enabled,
ssid: settings.wifi_ap.ssid,
key: settings.wifi_ap.key,
},
wifi: {
enabled: settings.wifi_sta.enabled,
ssid: settings.wifi_sta.ssid,
ipv4Method: settings.wifi_sta.ipv4_method,
ip: settings.wifi_sta.ip,
gw: settings.wifi_sta.gw,
mask: settings.wifi_sta.mask,
dns: settings.wifi_sta.dns,
},
wifi02: {
enabled: settings.wifi_sta1.enabled,
ssid: settings.wifi_sta1.ssid,
ipv4Method: settings.wifi_sta1.ipv4_method,
ip: settings.wifi_sta1.ip,
gw: settings.wifi_sta1.gw,
mask: settings.wifi_sta1.mask,
dns: settings.wifi_sta1.dns,
},
accessPointRoaming: {
enabled: settings.ap_roaming.enabled,
threshold: settings.ap_roaming.threshold,
},
mqtt: {
enable: settings.mqtt.enable,
server: settings.mqtt.server,
user: settings.mqtt.user,
id: settings.mqtt.id,
reconnect_timeout_max: settings.mqtt.reconnect_timeout_max,
reconnect_timeout_min: settings.mqtt.reconnect_timeout_min,
clean_session: settings.mqtt.clean_session,
keep_alive: settings.mqtt.keep_alive,
max_qos: settings.mqtt.max_qos,
retain: settings.mqtt.retain,
update_period: settings.mqtt.update_period,
},
coiot: {
enabled: settings.coiot.enabled,
updatePeriod: settings.coiot.update_period,
peer: settings.coiot.peer,
},
sntp: { server: settings.sntp.server, enabled: settings.sntp.enabled },
login: {
enabled: settings.login.enabled,
unprotected: settings.login.unprotected,
username: settings.login.username,
},
pinCode: settings.pin_code,
name: settings.name,
fw: settings.fw,
factoryResetFromSwitch: settings.factory_reset_from_switch,
discoverable: settings.discoverable,
buildInfo: {
id: settings.build_info.build_id,
timestamp: settings.build_info.build_timestamp,
version: settings.build_info.build_version,
},
cloud: {
enabled: settings.cloud.enabled,
connected: settings.cloud.connected,
},
timezone: settings.timezone,
lat: settings.lat,
lng: settings.lng,
tzAutodetect: settings.tzautodetect,
tzUtcOffset: settings.tz_utc_offset,
tzDst: settings.tz_dst,
tzDstAuto: settings.tz_dst_auto,
time: settings.time,
unixtime: settings.unixtime,
debugEnabled: settings.debug_enable,
allowCrossOrigin: settings.allow_cross_origin,
enable: settings.ext_switch_enable,
reverse: settings.ext_switch_reverse,
switchRelays: settings.ext_switch,
actions: settings.actions,
hwinfo: settings.hwinfo,
mode: settings.mode,
longpushTime: settings.longpush_time,
relays: settings.relays.map(relay_1.unmarshallRelay),
extSensors: settings.ext_sensors,
extTemperature: settings.ext_temperature,
extHumidity: settings.ext_humidity,
ecoModeEnabled: settings.eco_mode_enabled,
};
};
exports.unmarshallRemoteSettings = unmarshallRemoteSettings;
const marshallRemoteSettings = (settings) => {
return {
device: {
type: settings.device.type,
mac: settings.device.mac,
hostname: settings.device.hostname,
num_outputs: settings.device.num_outputs,
},
wifi_ap: {
enabled: settings.wifiAccessPoint.enabled,
ssid: settings.wifiAccessPoint.ssid,
key: settings.wifiAccessPoint.key,
},
wifi_sta: {
enabled: settings.wifi.enabled,
ssid: settings.wifi.ssid,
ipv4_method: settings.wifi.ipv4Method,
ip: settings.wifi.ip,
gw: settings.wifi.gw,
mask: settings.wifi.mask,
dns: settings.wifi.dns,
},
wifi_sta1: {
enabled: settings.wifi02.enabled,
ssid: settings.wifi02.ssid,
ipv4_method: settings.wifi02.ipv4Method,
ip: settings.wifi02.ip,
gw: settings.wifi02.gw,
mask: settings.wifi02.mask,
dns: settings.wifi02.dns,
},
ap_roaming: {
enabled: settings.accessPointRoaming.enabled,
threshold: settings.accessPointRoaming.threshold,
},
mqtt: {
enable: settings.mqtt.enable,
server: settings.mqtt.server,
user: settings.mqtt.user,
id: settings.mqtt.id,
reconnect_timeout_max: settings.mqtt.reconnect_timeout_max,
reconnect_timeout_min: settings.mqtt.reconnect_timeout_min,
clean_session: settings.mqtt.clean_session,
keep_alive: settings.mqtt.keep_alive,
max_qos: settings.mqtt.max_qos,
retain: settings.mqtt.retain,
update_period: settings.mqtt.update_period,
},
coiot: {
enabled: settings.coiot.enabled,
update_period: settings.coiot.updatePeriod,
peer: settings.coiot.peer,
},
sntp: { server: settings.sntp.server, enabled: settings.sntp.enabled },
login: {
enabled: settings.login.enabled,
unprotected: settings.login.unprotected,
username: settings.login.username,
},
pin_code: settings.pinCode,
name: settings.name,
fw: settings.fw,
factory_reset_from_switch: settings.factoryResetFromSwitch,
discoverable: settings.discoverable,
build_info: {
build_id: settings.buildInfo.id,
build_timestamp: settings.buildInfo.timestamp,
build_version: settings.buildInfo.version,
},
cloud: {
enabled: settings.cloud.enabled,
connected: settings.cloud.connected,
},
timezone: settings.timezone,
lat: settings.lat,
lng: settings.lng,
tzautodetect: settings.tzAutodetect,
tz_utc_offset: settings.tzUtcOffset,
tz_dst: settings.tzDst,
tz_dst_auto: settings.tzDstAuto,
time: settings.time,
unixtime: settings.unixtime,
debug_enable: settings.debugEnabled,
allow_cross_origin: settings.allowCrossOrigin,
ext_switch_enable: settings.enable,
ext_switch_reverse: settings.reverse,
ext_switch: settings.switchRelays,
actions: settings.actions,
hwinfo: settings.hwinfo,
mode: settings.mode,
longpush_time: settings.longpushTime,
relays: settings.relays.map(relay => {
return (0, relay_1.marshallRelay)(relay);
}),
ext_sensors: settings.extSensors,
ext_temperature: settings.extTemperature,
ext_humidity: settings.extHumidity,
eco_mode_enabled: settings.ecoModeEnabled,
};
};
exports.marshallRemoteSettings = marshallRemoteSettings;
//# sourceMappingURL=settings.js.map