iobroker.ecoflow-mqtt
Version:
connects to ecoflow products
1,262 lines (1,261 loc) • 37.3 kB
JavaScript
const deviceStates = {
inv: {
diagnostic: {
cfgFanMode: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Fan mode',
cfgFanMode: {
'0': 'disabled',
'1': 'Level 1',
'2': 'Level 2',
'3': 'Level 3'
}
},
cfgAcChgModeFlg: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'AC charging mode flag',
cfgAcChgModeFlg: {
'0': '?',
'1': '?'
}
},
cfgAcOutFreq: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Inverter output frequency (Hz)',
cfgAcOutFreq: {
'1': '50 Hz',
'2': '60 Hz',
'255': 'ignored'
}
},
chargerType: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Charger type',
chargerType: {
'0': 'no charging',
'1': 'AC charging',
'2': 'DC adapter charging',
'3': 'solar charging',
'4': 'CC',
'5': 'BC'
}
},
fanState: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Fan state',
fanState: {
'0': 'disabled',
'1': 'Level 1',
'2': 'Level 2',
'3': 'Level 3'
}
}
},
number: {
dcInVol: {
min: 0,
max: 60,
unit_of_measurement: 'V',
mult: 0.001,
entity_type: 'sensor',
device_class: 'voltage',
name: 'DC input voltage',
role: 'value'
},
dcInAmp: {
min: 0,
max: 13,
unit_of_measurement: 'A',
mult: 0.001,
entity_type: 'sensor',
device_class: 'current',
name: 'DC input current',
role: 'value'
},
outputWatts: {
min: 0,
max: 4000,
unit_of_measurement: 'W',
mult: 1,
entity_type: 'sensor',
device_class: 'power',
name: 'Discharging power',
role: 'value'
},
invOutFreq: {
min: 0,
max: 62,
unit_of_measurement: 'Hz',
mult: 1,
entity_type: 'sensor',
device_class: 'frequency',
name: 'Inverter output frequency',
role: 'value'
},
inTemp: {
min: 0,
max: 80,
unit_of_measurement: '°C',
mult: 1,
entity_type: 'sensor',
device_class: 'temperature',
name: 'Inverter temperature',
role: 'value'
},
outTemp: {
min: 0,
max: 90,
unit_of_measurement: '°C',
mult: 1,
entity_type: 'sensor',
device_class: 'temperature',
name: 'Inverter temperature',
role: 'value'
},
invOutVol: {
min: 0,
max: 250,
unit_of_measurement: 'V',
mult: 0.001,
entity_type: 'sensor',
device_class: 'voltage',
name: 'Actual inverter output voltage',
role: 'value'
},
invInAmp: {
min: 0,
max: 13,
unit_of_measurement: 'A',
mult: 0.001,
entity_type: 'sensor',
device_class: 'current',
name: 'Inverter input current',
role: 'value'
},
inputWatts: {
min: 0,
max: 4000,
unit_of_measurement: 'W',
mult: 1,
entity_type: 'sensor',
device_class: 'power',
name: 'Charging power',
role: 'value'
},
invInFreq: {
min: 0,
max: 62,
unit_of_measurement: 'Hz',
mult: 1,
entity_type: 'sensor',
device_class: 'frequency',
name: 'Inverter input frequency',
role: 'value'
},
invOutAmp: {
min: 0,
max: 13,
unit_of_measurement: 'A',
mult: 0.001,
entity_type: 'sensor',
device_class: 'current',
name: 'Inverter output current',
role: 'value'
},
invInVol: {
min: 0,
max: 250,
unit_of_measurement: 'V',
mult: 0.001,
entity_type: 'sensor',
device_class: 'voltage',
name: 'Inverter input voltage',
role: 'value'
}
},
string: {
cfgAcOutVoltage: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Inverter output voltage (V): 0xffffffff: ignored'
},
errCode: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Global error code'
},
invType: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'PSDR model code'
},
sysVer: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'System version'
}
},
level: {
cfgStandbyMin: {
min: 0,
max: 720,
unit_of_measurement: 'min',
mult: 1,
entity_type: 'select',
device_class: 'duration',
select: ['Never', '30 min', '1 hr', '2 hr', '4 hr', '6 hr', '12 hr'],
select_obj: {
Never: 0,
'30 min': 30,
'1 hr': 60,
'2 hr': 120,
'4 hr': 240,
'6 hr': 360,
'12 hr': 720
},
states: {
'0': 'Never',
'30': '30 min',
'60': '1 hr',
'120': '2 hr',
'240': '4 hr',
'360': '6 hr',
'720': '12 hr'
},
role: 'level',
subrole: 'timer',
name: 'AC standby time /min 0 Never standby 720 Default value'
}
},
switch: {
cfgAcEnabled: {
entity_type: 'switch',
device_class: 'outlet',
role: 'switch',
name: 'AC discharge (INV) switch setting',
payload_off: 'off',
payload_on: 'on',
cfgAcEnabled: {
'0': 'off',
'1': 'on'
}
},
cfgAcXboost: {
entity_type: 'switch',
device_class: 'switch',
role: 'switch',
name: 'X-Boost switch',
payload_off: 'off',
payload_on: 'on',
cfgAcXboost: {
'0': 'off',
'1': 'on',
ff: 'ignored'
}
}
}
},
bmsMaster: {
number: {
maxCellTemp: {
min: 0,
max: 80,
unit_of_measurement: '°C',
mult: 1,
entity_type: 'sensor',
device_class: 'temperature',
name: 'Maximum cell temperature',
role: 'value'
},
temp: {
min: 0,
max: 80,
unit_of_measurement: '°C',
mult: 1,
entity_type: 'sensor',
device_class: 'temperature',
name: 'Temperature',
role: 'value'
},
cycles: {
min: 0,
max: 6000,
unit_of_measurement: '',
mult: 1,
entity_type: 'sensor',
name: 'Number of cycles',
role: 'value'
},
remainCap: {
min: 0,
max: 80000,
unit_of_measurement: 'mAh',
mult: 1,
entity_type: 'sensor',
name: 'Remaining capacity',
role: 'value'
},
vol: {
min: 0,
max: 60,
unit_of_measurement: 'V',
mult: 0.001,
entity_type: 'sensor',
device_class: 'voltage',
name: 'Voltage',
role: 'value'
},
minCellVol: {
min: 0,
max: 60,
unit_of_measurement: 'V',
mult: 0.001,
entity_type: 'sensor',
device_class: 'voltage',
name: 'Minimum cell voltage',
role: 'value'
},
soc: {
min: 0,
max: 100,
unit_of_measurement: '%',
mult: 1,
entity_type: 'sensor',
device_class: 'battery',
name: 'Remaining battery percentage',
role: 'value'
},
amp: {
min: 0,
max: 25,
unit_of_measurement: 'A',
mult: 0.001,
entity_type: 'sensor',
device_class: 'current',
name: 'Current',
role: 'value'
},
minCellTemp: {
min: 0,
max: 80,
unit_of_measurement: '°C',
mult: 1,
entity_type: 'sensor',
device_class: 'temperature',
name: 'Minimum cell temperature',
role: 'value'
},
minMosTemp: {
min: 0,
max: 80,
unit_of_measurement: '°C',
mult: 1,
entity_type: 'sensor',
device_class: 'temperature',
name: 'Minimum MOS temperature',
role: 'value'
},
maxCellVol: {
min: 0,
max: 60,
unit_of_measurement: 'V',
mult: 0.001,
entity_type: 'sensor',
device_class: 'voltage',
name: 'Maximum cell voltage',
role: 'value'
},
fullCap: {
min: 0,
max: 80000,
unit_of_measurement: 'mAh',
mult: 1,
entity_type: 'sensor',
name: 'Full capacity',
role: 'value'
},
maxMosTemp: {
min: 0,
max: 80,
unit_of_measurement: '°C',
mult: 1,
entity_type: 'sensor',
device_class: 'temperature',
name: 'Maximum MOS temperature',
role: 'value'
}
},
string: {
bmsFault: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'BMS permanent fault'
},
sysVer: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'System version'
},
bqSysStatReg: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'BQ hardware protection register'
}
},
diagnostic: {
errCode: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Global error code',
errCode: {
'0': 'OK?'
}
}
},
icon: {
ambientLightColor: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Ambient Light Color'
},
ambientLightBrightness: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Ambient Light Brightness'
},
ambientLightAnimate: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Ambient Light Animate'
},
ambientLightEnabled: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Ambient Light Enabled'
}
}
},
pd: {
number: {
wattsInSum: {
min: 0,
max: 4000,
unit_of_measurement: 'W',
mult: 1,
entity_type: 'sensor',
device_class: 'power',
name: 'Total input power',
role: 'value'
},
dcInUsedTime: {
min: 0,
max: 9999999,
unit_of_measurement: 'min',
mult: 0.0166,
entity_type: 'sensor',
device_class: 'duration',
name: 'DC charging time',
entity_category: 'diagnostic',
role: 'value'
},
chgPowerDC: {
min: 0,
unit_of_measurement: 'kWh',
mult: 0.001,
entity_type: 'sensor',
device_class: 'energy',
state_class: 'total_increasing',
name: 'Cumulative DC power charged for PD (adapter)',
role: 'value'
},
dsgPowerDC: {
min: 0,
unit_of_measurement: 'kWh',
mult: 0.001,
entity_type: 'sensor',
device_class: 'energy',
state_class: 'total_increasing',
name: 'Cumulative DC discharge capacity',
role: 'value'
},
remainTime: {
min: 0,
max: 143999,
unit_of_measurement: 'min',
mult: 1,
entity_type: 'sensor',
device_class: 'duration',
name:
'Time remaining (min) > 0: remaining charging time; time remaining (min) < 0: remaining discharging time',
role: 'value'
},
usb3Watts: {
min: 0,
max: 500,
unit_of_measurement: 'W',
mult: 0.1,
entity_type: 'sensor',
device_class: 'power',
name: 'Common usb3 output power',
role: 'value'
},
typecUsedTime: {
min: 0,
max: 9999999,
unit_of_measurement: 'min',
mult: 0.0166,
entity_type: 'sensor',
device_class: 'duration',
name: 'Type-C use time',
entity_category: 'diagnostic',
role: 'value'
},
typecWatts: {
min: 0,
max: 500,
unit_of_measurement: 'W',
mult: 1,
entity_type: 'sensor',
device_class: 'power',
name: 'Type-C output power',
role: 'value'
},
usbqcUsedTime: {
min: 0,
max: 9999999,
unit_of_measurement: 'min',
mult: 0.0166,
entity_type: 'sensor',
device_class: 'duration',
name: 'USB QC use time',
entity_category: 'diagnostic',
role: 'value'
},
chgSunPower: {
min: 0,
max: 65000,
unit_of_measurement: 'kWh',
mult: 0.001,
entity_type: 'sensor',
device_class: 'energy',
name: 'Cumulative solar power charged',
state_class: 'total_increasing',
role: 'value'
},
wattsOutSum: {
min: 0,
max: 4000,
unit_of_measurement: 'W',
mult: 1,
entity_type: 'sensor',
device_class: 'power',
name: 'Total output power',
role: 'value'
},
carTemp: {
min: 0,
max: 80,
unit_of_measurement: '°C',
mult: 1,
entity_type: 'sensor',
device_class: 'temperature',
name: 'CAR temperature',
role: 'value'
},
usbUsedTime: {
min: 0,
max: 9999999,
unit_of_measurement: 'min',
mult: 0.0166,
entity_type: 'sensor',
device_class: 'duration',
name: 'USB use time',
entity_category: 'diagnostic',
role: 'value'
},
mpptUsedTime: {
min: 0,
max: 9999999,
unit_of_measurement: 'min',
mult: 0.0166,
entity_type: 'sensor',
device_class: 'duration',
name: 'MPPT use time',
entity_category: 'diagnostic',
role: 'value'
},
ledWatts: {
min: 0,
max: 100,
unit_of_measurement: 'W',
mult: 0.1,
entity_type: 'sensor',
device_class: 'power',
name: 'LED output power',
role: 'value'
},
usb1Watts: {
min: 0,
max: 500,
unit_of_measurement: 'W',
mult: 1,
entity_type: 'sensor',
device_class: 'power',
name: 'Common usb1 output power',
role: 'value'
},
dsgPowerAC: {
min: 0,
unit_of_measurement: 'kWh',
mult: 0.001,
entity_type: 'sensor',
device_class: 'energy',
state_class: 'total_increasing',
name: 'Cumulative AC power discharged ',
role: 'value'
},
chgPowerAC: {
min: 0,
unit_of_measurement: 'kWh',
mult: 0.001,
entity_type: 'sensor',
device_class: 'energy',
state_class: 'total_increasing',
name: 'Cumulative AC power charged for PD (wall socket)',
role: 'value'
},
carWatts: {
min: 0,
max: 500,
unit_of_measurement: 'W',
mult: 0.1,
entity_type: 'sensor',
device_class: 'power',
name: 'CAR output power',
role: 'value'
},
carUsedTime: {
min: 0,
max: 9999999,
unit_of_measurement: 'min',
mult: 0.0166,
entity_type: 'sensor',
device_class: 'duration',
name: 'Car use time',
entity_category: 'diagnostic',
role: 'value'
},
usb2Watts: {
min: 0,
max: 500,
unit_of_measurement: 'W',
mult: 1,
entity_type: 'sensor',
device_class: 'power',
name: 'Common usb2 output power',
role: 'value'
},
soc: {
min: 0,
max: 100,
unit_of_measurement: '%',
mult: 1,
entity_type: 'sensor',
device_class: 'battery',
name: 'Displayed SOC',
role: 'value'
},
typecTemp: {
min: 0,
max: 80,
unit_of_measurement: '°C',
mult: 1,
entity_type: 'sensor',
device_class: 'temperature',
name: 'Type-C temperature',
role: 'value'
},
invUsedTime: {
min: 0,
max: 9999999,
unit_of_measurement: 'min',
mult: 0.0166,
entity_type: 'sensor',
device_class: 'duration',
name: 'Inverter use time',
entity_category: 'diagnostic',
role: 'value'
}
},
string: {
model: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Product model'
},
bmsSlave: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'BMS slave'
},
sysVer: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'System version'
}
},
diagnostic: {
ledState: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'LED state',
payload_off: 'off',
payload_on: 'on',
ledState: {
'0': 'off?',
'1': 'on?'
}
},
errCode: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'info',
name: 'Global error code',
errCode: {
'0': 'OK?'
}
}
},
switch: {
beepState: {
entity_type: 'switch',
device_class: 'switch',
role: 'switch',
name: 'Beep status',
payload_off: 'normal',
payload_on: 'quiet',
beepState: {
'0': 'Normal',
'1': 'Quiet'
}
},
carSwitch: {
entity_type: 'text',
entity_category: 'diagnostic',
role: 'switch',
name: 'Car charger switch',
payload_off: 'off',
payload_on: 'on',
carSwitch: {
'0': 'off?',
'1': 'on?'
}
}
},
level: {
standByMode: {
min: 0,
max: 5999,
unit_of_measurement: 'min',
mult: 1,
entity_type: 'select',
device_class: 'duration',
select: ['Never', '30 min', '1 hr', '2 hr', '4 hr', '6 hr', '12 hr'],
select_obj: {
Never: 0,
'30 min': 30,
'1 hr': 60,
'2 hr': 120,
'4 hr': 240,
'6 hr': 360,
'12 hr': 720
},
states: {
'0': 'Never',
'30': '30 min',
'60': '1 hr',
'120': '2 hr',
'240': '4 hr',
'360': '6 hr',
'720': '12 hr'
},
UNIT_TIMEOUT_OPTIONS: {
Never: 0,
'30 min': 30,
'1 hr': 60,
'2 hr': 120,
'4 hr': 240,
'6 hr': 360,
'12 hr': 720,
'24 hr': 1440
},
role: 'level',
subrole: 'timer',
name: 'Device standby time /min 0 Never standby 5999 Max value',
standByMode: {
'0': 'Never standby',
'5999': 'Max value'
}
}
}
},
action: {
switch: {
latestQuotas: {
entity_type: 'switch',
device_class: 'switch',
role: 'switch',
name: 'Get latest Quotas',
payload_off: 'no trigger',
payload_on: 'trigger',
latestQuotas: {
'0': 'no trigger',
'1': 'trigger'
}
},
getAllTaskCfg: {
entity_type: 'switch',
device_class: 'switch',
role: 'switch',
name: 'Get all tasks',
payload_off: 'no trigger',
payload_on: 'trigger',
getAllTaskCfg: {
'0': 'no trigger',
'1': 'trigger'
}
}
}
},
info: {
diagnostic: {
status: {
entity_type: 'text',
entity_category: 'diagnostic',
name: 'Status',
role: 'info',
status: {
'0': 'offline',
'1': 'online'
}
}
}
}
};
const deviceStatesDict = {
rivermax: {
inv: {
cfgFanMode: {
entity: 'diagnostic'
},
dcInVol: {
entity: 'number'
},
cfgAcOutVoltage: {
entity: 'string'
},
cfgAcChgModeFlg: {
entity: 'diagnostic'
},
cfgStandbyMin: {
entity: 'level'
},
dcInAmp: {
entity: 'number'
},
cfgAcOutFreq: {
entity: 'diagnostic'
},
errCode: {
entity: 'string'
},
outputWatts: {
entity: 'number'
},
invOutFreq: {
entity: 'number'
},
chargerType: {
entity: 'diagnostic'
},
fanState: {
entity: 'diagnostic'
},
inTemp: {
entity: 'number'
},
cfgAcEnabled: {
entity: 'switch'
},
cfgAcXboost: {
entity: 'switch'
},
outTemp: {
entity: 'number'
},
invType: {
entity: 'string'
},
invOutVol: {
entity: 'number'
},
invInAmp: {
entity: 'number'
},
inputWatts: {
entity: 'number'
},
invInFreq: {
entity: 'number'
},
invOutAmp: {
entity: 'number'
},
invInVol: {
entity: 'number'
},
sysVer: {
entity: 'string'
}
},
bmsMaster: {
maxCellTemp: {
entity: 'number'
},
bmsFault: {
entity: 'string'
},
sysVer: {
entity: 'string'
},
temp: {
entity: 'number'
},
cycles: {
entity: 'number'
},
remainCap: {
entity: 'number'
},
vol: {
entity: 'number'
},
errCode: {
entity: 'diagnostic'
},
minCellVol: {
entity: 'number'
},
soc: {
entity: 'number'
},
bqSysStatReg: {
entity: 'string'
},
amp: {
entity: 'number'
},
minCellTemp: {
entity: 'number'
},
minMosTemp: {
entity: 'number'
},
maxCellVol: {
entity: 'number'
},
fullCap: {
entity: 'number'
},
maxMosTemp: {
entity: 'number'
},
ambientLightColor: {
entity: 'icon'
},
ambientLightBrightness: {
entity: 'icon'
},
ambientLightAnimate: {
entity: 'icon'
},
ambientLightEnabled: {
entity: 'icon'
}
},
pd: {
wattsInSum: {
entity: 'number'
},
dcInUsedTime: {
entity: 'number'
},
chgPowerDC: {
entity: 'number'
},
dsgPowerDC: {
entity: 'number'
},
model: {
entity: 'string'
},
ledState: {
entity: 'diagnostic'
},
beepState: {
entity: 'switch'
},
remainTime: {
entity: 'number'
},
usb3Watts: {
entity: 'number'
},
typecUsedTime: {
entity: 'number'
},
typecWatts: {
entity: 'number'
},
usbqcUsedTime: {
entity: 'number'
},
chgSunPower: {
entity: 'number'
},
wattsOutSum: {
entity: 'number'
},
carSwitch: {
entity: 'switch'
},
carTemp: {
entity: 'number'
},
usbUsedTime: {
entity: 'number'
},
mpptUsedTime: {
entity: 'number'
},
ledWatts: {
entity: 'number'
},
usb1Watts: {
entity: 'number'
},
standByMode: {
entity: 'level'
},
dsgPowerAC: {
entity: 'number'
},
chgPowerAC: {
entity: 'number'
},
errCode: {
entity: 'diagnostic'
},
bmsSlave: {
entity: 'string'
},
sysVer: {
entity: 'string'
},
carWatts: {
entity: 'number'
},
carUsedTime: {
entity: 'number'
},
usb2Watts: {
entity: 'number'
},
soc: {
entity: 'number'
},
typecTemp: {
entity: 'number'
},
invUsedTime: {
entity: 'number'
}
},
action: {
latestQuotas: {
entity: 'switch'
},
getAllTaskCfg: {
entity: 'switch'
}
},
info: {
status: {
entity: 'diagnostic'
}
}
}
};
const deviceRanges = {
rivermax: {
pd: {
number: {
wattsInSum: {
max: 500
}
}
}
}
};
const deviceCmd = {
rivermax: {
inv: {
cfgAcEnabled: {
valName: 'enabled',
moduleType: 0,
msg: {
from: 'Android',
operateType: 'TCP',
id: '554272649',
lang: 'en-us',
params: {
id: 66,
enabled: 1
},
version: '1.0'
}
},
cfgAcXboost: {
valName: 'xboost',
moduleType: 0,
msg: {
from: 'Android',
operateType: 'TCP',
id: '602507362',
lang: 'en-us',
params: {
id: 66,
xboost: 1
},
version: '1.0'
}
},
cfgStandbyMin: {
valName: 'standByMins',
msg: {
from: 'Android',
operateType: 'TCP',
id: '153750799',
lang: 'en-us',
params: {
id: 153,
standByMins: 360
},
version: '1.0'
}
}
},
pd: {
beepState: {
valName: 'enabled',
moduleType: 0,
msg: {
from: 'Android',
operateType: 'TCP',
id: '834553333',
lang: 'en-us',
params: {
id: 38,
enabled: 1
},
version: '1.0'
}
},
standByMode: {
valName: 'standByMode',
moduleType: 0,
msg: {
from: 'Android',
operateType: 'TCP',
id: '119032574',
lang: 'en-us',
params: {
id: 33,
standByMode: 360
},
version: '1.0'
}
},
carSwitch: {
valName: 'enabled',
moduleType: 0,
msg: {
from: 'Android',
operateType: 'TCP',
id: '689699572',
lang: 'en-us',
params: {
id: 34,
enabled: 1
},
version: '1.0'
}
}
},
action: {
latestQuotas: {
moduleType: 0,
msg: {
from: 'iOS',
operateType: 'latestQuotas',
id: '83154039',
lang: 'de-de',
params: {},
version: '1.0'
}
},
getAllTaskCfg: {
msg: {
from: 'iOS',
operateType: 'getAllTaskCfg',
id: '83154039',
lang: 'de-de',
params: {},
version: '1.0'
}
}
}
}
};
module.exports = {
deviceStates,
deviceStatesDict,
deviceRanges,
deviceCmd
};