Skip to content

Commit

Permalink
control role change to switch or level
Browse files Browse the repository at this point in the history
  • Loading branch information
bolliy committed Jun 5, 2024
1 parent f835812 commit 1c6152a
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 37 deletions.
38 changes: 19 additions & 19 deletions lib/controls/service_queue.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class ServiceQueueMap {

this.serviceFields = [
{
state: {id: 'battery.chargeFromGridFunction', name: 'Charge from Grid', type: 'boolean', role: 'value', desc: 'reg: 47087, len: 1'},
state: {id: 'battery.chargeFromGridFunction', name: 'Charge from Grid', type: 'boolean', role: 'switch.enable', desc: 'reg: 47087, len: 1'},
type : deviceType.battery,
fn: async event => {
const ret = await this._writeRegisters(47087,event.value === true ? [1]: [0]);
Expand All @@ -21,7 +21,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'battery.maximumChargePower', name: 'MaximumChargePower', type: 'number', unit: 'W', role: 'value.power', desc: 'reg: 47075, len: 2'},
state: { id: 'battery.maximumChargePower', name: 'MaximumChargePower', type: 'number', unit: 'W', role: 'level.power', desc: 'reg: 47075, len: 2'},
type : deviceType.battery,
fn: async event => {
const max = this.inverterInfo.instance.stateCache.get(this.inverterInfo.path+'.battery.maximumChargePower')?.value ?? 2500;
Expand All @@ -31,7 +31,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'battery.maximumDischargePower', name: 'MaximumDischargePower', type: 'number', unit: 'W', role: 'value.power', desc: 'reg: 47077, len: 2'},
state: { id: 'battery.maximumDischargePower', name: 'MaximumDischargePower', type: 'number', unit: 'W', role: 'level.power', desc: 'reg: 47077, len: 2'},
type : deviceType.battery,
fn: async event => {
const max = this.inverterInfo.instance.stateCache.get(this.inverterInfo.path+'.battery.maximumDischargePower')?.value ?? 2500;
Expand All @@ -41,7 +41,7 @@ class ServiceQueueMap {
}
},
{
state: {id: 'battery.chargingCutoffCapacity', name: 'Charging Cutoff Capacity', type: 'number', unit: '%', role: 'value', desc: 'reg: 47081, len: 1'},
state: {id: 'battery.chargingCutoffCapacity', name: 'Charging Cutoff Capacity', type: 'number', unit: '%', role: 'level.max', desc: 'reg: 47081, len: 1'},
type : deviceType.battery,
fn: async (event) => {
if (event.value > 100) event.value = 100;
Expand All @@ -53,7 +53,7 @@ class ServiceQueueMap {
}
},
{
state: {id: 'battery.dischargeCutoffCapacity', name: 'Discharge Cutoff Capacity', type: 'number', unit: '%', role: 'value', desc: 'reg: 47082, len: 1'},
state: {id: 'battery.dischargeCutoffCapacity', name: 'Discharge Cutoff Capacity', type: 'number', unit: '%', role: 'level.min', desc: 'reg: 47082, len: 1'},
type : deviceType.battery,
fn: async event => {
if (event.value > 20) event.value = 20;
Expand All @@ -64,7 +64,7 @@ class ServiceQueueMap {
}
},
{
state: {id: 'battery.gridChargeCutoffSOC', name: 'Grid Charge Cutoff SOC', type: 'number', unit: '%', role: 'value', desc: 'reg:47088, len:1'},
state: {id: 'battery.gridChargeCutoffSOC', name: 'Grid Charge Cutoff SOC', type: 'number', unit: '%', role: 'level', desc: 'reg:47088, len:1'},
type : deviceType.battery,
fn: async event => {
if (event.value > 100) event.value = 100;
Expand All @@ -75,7 +75,7 @@ class ServiceQueueMap {
}
},
{
state: {id: 'battery.workingModeSettings', name: 'Working Mode Settings', type: 'number', unit: '', role: 'value', desc: 'reg:47086, len:1'},
state: {id: 'battery.workingModeSettings', name: 'Working Mode Settings', type: 'number', unit: '', role: 'level', desc: 'reg:47086, len:1'},
type : deviceType.battery,
fn: async event => {
if (event.value > 5) event.value = 2;
Expand All @@ -86,7 +86,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'battery.powerOfChargeFromGrid', name: 'power Of charge from grid', type: 'number', unit: 'W', role: 'value.power', desc: 'reg: 47242, len: 2'},
state: { id: 'battery.powerOfChargeFromGrid', name: 'power Of charge from grid', type: 'number', unit: 'W', role: 'level.power', desc: 'reg: 47242, len: 2'},
type : deviceType.battery,
fn: async event => {
const max = this.inverterInfo.instance.stateCache.get(this.inverterInfo.path+'.battery.maximumChargePower')?.value ?? 2500;
Expand All @@ -97,7 +97,7 @@ class ServiceQueueMap {
},
/*
{
state: { id: 'battery.forcedChargingAndDischargingPower', name: 'Forced charging and discharging power', type: 'number', unit: 'W', role: 'value.power', desc: 'reg: 47084, len: 2'},
state: { id: 'battery.forcedChargingAndDischargingPower', name: 'Forced charging and discharging power', type: 'number', unit: 'W', role: 'level.power', desc: 'reg: 47084, len: 2'},
type : deviceType.battery,
fn: async event => {
const max = this.inverterInfo.instance.stateCache.get(this.inverterInfo.path+'.battery.maximumChargePower')?.value ?? 2500;
Expand All @@ -109,7 +109,7 @@ class ServiceQueueMap {
*/
/*
{
state: { id: 'battery.maximumPowerOfChargeFromGrid', name: 'Maximum power of charge from grid', type: 'number', unit: 'W', role: 'value.power', desc: 'reg: 47244, len: 2'},
state: { id: 'battery.maximumPowerOfChargeFromGrid', name: 'Maximum power of charge from grid', type: 'number', unit: 'W', role: 'level.power', desc: 'reg: 47244, len: 2'},
type : deviceType.battery,
fn: async event => {
const max = this.inverterInfo.instance.stateCache.get(this.inverterInfo.path+'.battery.maximumChargePower')?.value ?? 2500;
Expand All @@ -120,7 +120,7 @@ class ServiceQueueMap {
},
*/
{
state: { id: 'battery.forcibleChargePower', name: 'Forcible charge power', type: 'number', unit: 'W', role: 'value.power', desc: 'reg: 47247, len: 2'},
state: { id: 'battery.forcibleChargePower', name: 'Forcible charge power', type: 'number', unit: 'W', role: 'level.power', desc: 'reg: 47247, len: 2'},
type : deviceType.battery,
fn: async event => {
const max = this.inverterInfo.instance.stateCache.get(this.inverterInfo.path+'.battery.maximumChargePower')?.value ?? 2500;
Expand All @@ -130,7 +130,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'battery.forcibleDischargePower', name: 'Forcible discharge power', type: 'number', unit: 'W', role: 'value.power', desc: 'reg: 47249, len: 2'},
state: { id: 'battery.forcibleDischargePower', name: 'Forcible discharge power', type: 'number', unit: 'W', role: 'level.power', desc: 'reg: 47249, len: 2'},
type : deviceType.battery,
fn: async event => {
const max = this.inverterInfo.instance.stateCache.get(this.inverterInfo.path+'.battery.maximumDischargePower')?.value ?? 2500;
Expand All @@ -140,7 +140,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'battery.targetSOC ', name: 'Target SOC ', type: 'number', unit: '%', role: 'value', desc: 'reg: 47101 , len: 1'},
state: { id: 'battery.targetSOC ', name: 'Target SOC ', type: 'number', unit: '%', role: 'level', desc: 'reg: 47101 , len: 1'},
type : deviceType.gridPowerControl,
fn: async event => {
if (event.value > 100) event.value = 100;
Expand All @@ -151,7 +151,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'battery.forcedChargingAndDischargingPeriod', name: 'Forced charging and discharging period', type: 'number', unit: '', role: 'value', desc: 'reg: 47083, len: 1'},
state: { id: 'battery.forcedChargingAndDischargingPeriod', name: 'Forced charging and discharging period', type: 'number', unit: '', role: 'level', desc: 'reg: 47083, len: 1'},
type : deviceType.battery,
fn: async event => {
if (event.value > 1440) event.value = 1440;
Expand All @@ -160,7 +160,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'battery.forcibleChargeOrDischargeSettingMode', name: 'Forcible charge/discharge setting mode (0: Duration,1: until SOC)', type: 'number', unit: '', role: 'value', desc: 'reg: 47246, len: 1'},
state: { id: 'battery.forcibleChargeOrDischargeSettingMode', name: 'Forcible charge/discharge setting mode (0: Duration,1: until SOC)', type: 'number', unit: '', role: 'level', desc: 'reg: 47246, len: 1'},
type : deviceType.battery,
fn: async event => {
if (event.value > 1) event.value = 1;
Expand All @@ -169,7 +169,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'battery.forcibleChargeOrDischarge', name: 'Forcible charge/discharge (0: Stop,1: Charge, 2: Discharge)', type: 'number', unit: '', role: 'value', desc: 'reg: 47100, len: 1'},
state: { id: 'battery.forcibleChargeOrDischarge', name: 'Forcible charge/discharge (0: Stop,1: Charge, 2: Discharge)', type: 'number', unit: '', role: 'level', desc: 'reg: 47100, len: 1'},
type : deviceType.battery,
fn: async event => {
if (event.value > 2) event.value = 2;
Expand All @@ -178,7 +178,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'grid.maximumFeedGridPower', name: 'Maximum Feed Grid Power', type: 'number', unit: 'kW', role: 'value.power', desc: 'reg: 47416, len: 2'},
state: { id: 'grid.maximumFeedGridPower', name: 'Maximum Feed Grid Power', type: 'number', unit: 'kW', role: 'level.power', desc: 'reg: 47416, len: 2'},
type : deviceType.gridPowerControl,
fn: async event => {
const max = 100; //100 kW
Expand All @@ -190,7 +190,7 @@ class ServiceQueueMap {
}
},
{
state: { id: 'grid.maximumFeedGridPower_percent', name: 'Maximum Feed Grid Power %', type: 'number', unit: '%', role: 'value', desc: 'reg: 47418, len: 1'},
state: { id: 'grid.maximumFeedGridPower_percent', name: 'Maximum Feed Grid Power %', type: 'number', unit: '%', role: 'level', desc: 'reg: 47418, len: 1'},
type : deviceType.gridPowerControl,
fn: async event => {
if (event.value > 100) event.value = 100;
Expand All @@ -201,7 +201,7 @@ class ServiceQueueMap {
}
},
{
state: {id: 'grid.activePowerControlMode', name: '(0: Unlimited (default), 1: DIactive scheduling, 5: Zero power grid connection, 6: Power-limited grid connection (kW), 7: Power-limited grid connection (%))', type: 'number', unit: '', role: 'value', desc: 'reg:47415, len:1'},
state: {id: 'grid.activePowerControlMode', name: '(0: Unlimited (default), 1: DIactive scheduling, 5: Zero power grid connection, 6: Power-limited grid connection (kW), 7: Power-limited grid connection (%))', type: 'number', unit: '', role: 'level', desc: 'reg:47415, len:1'},
type : deviceType.gridPowerControl,
fn: async event => {
if (event.value > 7) event.value = 7;
Expand Down
4 changes: 2 additions & 2 deletions main.js
Original file line number Diff line number Diff line change
Expand Up @@ -490,13 +490,13 @@ class Sun2000 extends utils.Adapter {
*/
onUnload(callback) {
try {
this.setState('info.connection', false, true);
this.logger.info('cleaned everything up...');
this.modbusServer && this.modbusServer.close();
this.pollingTimer && this.clearTimeout(this.pollingTimer);
this.mitnightTimer && this.clearTimeout(this.mitnightTimer);
this.watchDogHandle && this.clearInterval(this.watchDogHandle);
this.modbusClient && this.modbusClient.close();
this.logger.info('cleaned everything up...');
this.setState('info.connection', false, true);
callback();
} catch (e) {
callback();
Expand Down
41 changes: 25 additions & 16 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 1c6152a

Please sign in to comment.