Skip to content

Commit

Permalink
New nodes: {in,out}put-dcdc
Browse files Browse the repository at this point in the history
- Support for the new Smart BuckBoost DC-DC chargers
- Updated documentation
  • Loading branch information
dirkjanfaber committed Dec 13, 2023
1 parent ddcfed6 commit 7d2d2a0
Show file tree
Hide file tree
Showing 5 changed files with 202 additions and 0 deletions.
92 changes: 92 additions & 0 deletions src/nodes/config-client.html
Original file line number Diff line number Diff line change
Expand Up @@ -923,6 +923,75 @@ <h3>Battery</h3>
</dl>
</script>

<script type="text/x-red" data-help-name="victron-input-dcdc">
<h3>Details</h3>
<p>The <strong>input nodes</strong> have two selectable inputs: the devices select and measurement select. The available options are dynamically updated based on the data that is actually available on the Venus device.</p> <ul> <li><em>Device select</em> - lists all available devices</li> <li><em>Measurement select</em> - lists all available device-specific measurements</li> <li><em>Node label input field</em> - sets a custom label for the node</li> </ul> <p>The measurement unit type is shown in the measurement label in brackets, e.g. Battery voltage (V). In case the data type is enumerated, an approppriate enum legend is shown below the selected option.</p>
<p>If the data type is <em>float</em>, a dropdown for rounding the output appears.</p>
<p>By default the node outputs its value every five seconds. If the <em>only changes</em> is checked, the node will only output on value changes.</p>
<p>This node allows for monitoring the state of a Smart BuckBoost DC-DC charger.</p>
<h3>Dcdc</h3>
<dl class="message-properties">
<dt class="optional">/Dc/0/Current (A DC)<span class="property-type">float</dt>
<dd>Dbus path: <b>/Dc/0/Current</b>
</dd>
<dt class="optional">/Dc/0/Temperature (Degrees celsius)<span class="property-type">float</dt>
<dd>Dbus path: <b>/Dc/0/Temperature</b>
</dd>
<dt class="optional">/Dc/0/Voltage (V DC)<span class="property-type">float</dt>
<dd>Dbus path: <b>/Dc/0/Voltage</b>
</dd>
<dt class="optional">/Dc/In/V (V DC)<span class="property-type">float</dt>
<dd>Dbus path: <b>/Dc/In/V</b>
</dd>
<dt class="optional">/Dc/In/P (W)<span class="property-type">float</dt>
<dd>Dbus path: <b>/Dc/In/P</b>
</dd>
<dt class="optional">/ErrorCode<span class="property-type">enum</dt>
<dd>Dbus path: <b>/ErrorCode</b>
<ul>
<li>0 - No error</li>
<li>1 - Battery temperature too high</li>
<li>2 - Battery voltage too high</li>
<li>3 - Battery temperature sensor miswired (+)</li>
<li>4 - Battery temperature sensor miswired (-)</li>
<li>5 - Battery temperature sensor disconnected</li>
<li>6 - Battery voltage sense miswired (+)</li>
<li>7 - Battery voltage sense miswired (-)</li>
<li>8 - Battery voltage sense disconnected</li>
<li>9 - Battery voltage wire losses too high</li>
<li>17 - Charger temperature too high</li>
<li>18 - Charger over-current</li>
<li>19 - Charger current polarity reversed</li>
<li>20 - Bulk time limit reached</li>
<li>22 - Charger temperature sensor miswired</li>
<li>23 - Charger temperature sensor disconnected</li>
<li>34 - Input current too high</li>
</ul>
</dd>
<dt class="optional">/FirmwareVersion<span class="property-type">float</dt>
<dd>Dbus path: <b>/FirmwareVersion</b>
</dd>
<dt class="optional">/History/Cumulative/User/ChargedAh (Ah)<span class="property-type">float</dt>
<dd>Dbus path: <b>/History/Cumulative/User/ChargedAh</b>
</dd>
<dt class="optional">/ProductId<span class="property-type">float</dt>
<dd>Dbus path: <b>/ProductId</b>
</dd>
<dt class="optional">/State<span class="property-type">enum</dt>
<dd>Dbus path: <b>/State</b>
<ul>
<li>0 - Off</li>
<li>2 - Fault</li>
<li>3 - Bulk</li>
<li>4 - Absorption</li>
<li>5 - Float</li>
<li>6 - Storage</li>
<li>7 - Equalize</li>
</ul>
</dd>
</dl>
</script>

<script type="text/x-red" data-help-name="victron-input-dcload">
<h3>Details</h3>
<p>The <strong>input nodes</strong> have two selectable inputs: the devices select and measurement select. The available options are dynamically updated based on the data that is actually available on the Venus device.</p> <ul> <li><em>Device select</em> - lists all available devices</li> <li><em>Measurement select</em> - lists all available device-specific measurements</li> <li><em>Node label input field</em> - sets a custom label for the node</li> </ul> <p>The measurement unit type is shown in the measurement label in brackets, e.g. Battery voltage (V). In case the data type is enumerated, an approppriate enum legend is shown below the selected option.</p>
Expand Down Expand Up @@ -3774,6 +3843,13 @@ <h3>Vebus</h3>
</dd>
<dt class="optional">Input voltage phase 3 (VAC)<span class="property-type">float</dt>
<dd>Dbus path: <b>/Ac/ActiveIn/L3/V</b>
</dd>
<dt class="optional">Select Remote Generator<span class="property-type">enum</dt>
<dd>Dbus path: <b>/Ac/Control/RemoteGeneratorSelected</b>
<ul>
<li>0 - Generator not selected</li>
<li>1 - Generator selected</li>
</ul>
</dd>
<dt class="optional">Input 1 current limit (A)<span class="property-type">float</dt>
<dd>Dbus path: <b>/Ac/In/1/CurrentLimit</b>
Expand Down Expand Up @@ -4269,6 +4345,22 @@ <h3>Charger</h3>
</dl>
</script>

<script type="text/x-red" data-help-name="victron-output-dcdc">
<h3>Details</h3>
<p><strong>Output nodes</strong> have the same options available as input nodes, but the selectable measurement only lists writable services. Additionally, the user can set an initial value to the service, which is sent whenever the flow is deployed.</p> <ul> <li><em>Device select</em> - lists all available devices</li> <li><em>Measurement select</em> - lists all available device-specific measurements</li> <li><em>Initial value input field</em> - lists all available device-specific measurements</li> <li><em>Node label input field</em> - sets a custom label for the node</li> </ul> <p>All output nodes should have the control value set in its incoming messages <code>msg.payload</code> property.</p>
<p>This node allows for controlling the Smart BuckBoost DC-DC chargers.</p>
<h3>Dcdc</h3>
<dl class="message-properties">
<dt class="optional">/Mode<span class="property-type">enum</dt>
<dd>Dbus path: <b>/Mode</b>
<ul>
<li>1 - On</li>
<li>4 - Off</li>
</ul>
</dd>
</dl>
</script>

<script type="text/x-red" data-help-name="victron-output-ess">
<h3>Details</h3>
<p><strong>Output nodes</strong> have the same options available as input nodes, but the selectable measurement only lists writable services. Additionally, the user can set an initial value to the service, which is sent whenever the flow is deployed.</p> <ul> <li><em>Device select</em> - lists all available devices</li> <li><em>Measurement select</em> - lists all available device-specific measurements</li> <li><em>Initial value input field</em> - lists all available device-specific measurements</li> <li><em>Node label input field</em> - sets a custom label for the node</li> </ul> <p>All output nodes should have the control value set in its incoming messages <code>msg.payload</code> property.</p>
Expand Down
1 change: 1 addition & 0 deletions src/nodes/victron-nodes.html
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,7 @@
registerInputNode('victron-input-acload', 'AC Load', 'input-acload');
registerInputNode('victron-input-alternator', 'Alternator', 'input-alternator');
registerInputNode('victron-input-battery', 'Battery Monitor', 'input-battery');
registerInputNode('victron-input-dcdc', 'DC-DC', 'input-dcdc');
registerInputNode('victron-input-dcload', 'DC Load', 'input-dcload');
registerInputNode('victron-input-dcsource', 'DC Source', 'input-dcsource');
registerInputNode('victron-input-dcsystem', 'DC System', 'input-dcsystem');
Expand Down
1 change: 1 addition & 0 deletions src/nodes/victron-nodes.js
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ module.exports = function (RED) {
RED.nodes.registerType('victron-input-alternator', BaseInputNode)
RED.nodes.registerType('victron-input-battery', BaseInputNode)
RED.nodes.registerType('victron-input-custom', BaseInputNode)
RED.nodes.registerType('victron-input-dcdc', BaseInputNode)
RED.nodes.registerType('victron-input-dcload', BaseInputNode)
RED.nodes.registerType('victron-input-dcsource', BaseInputNode)
RED.nodes.registerType('victron-input-dcsystem', BaseInputNode)
Expand Down
107 changes: 107 additions & 0 deletions src/services/services.json
Original file line number Diff line number Diff line change
Expand Up @@ -1048,6 +1048,89 @@
}
]
},
"input-dcdc": {
"help": "<p>This node allows for monitoring the state of a Smart BuckBoost DC-DC charger.</p>",
"dcdc": [
{
"path": "/Dc/0/Current",
"type": "float",
"name": "/Dc/0/Current (A DC)"
},
{
"path": "/Dc/0/Temperature",
"type": "float",
"name": "/Dc/0/Temperature (Degrees celsius)"
},
{
"path": "/Dc/0/Voltage",
"type": "float",
"name": "/Dc/0/Voltage (V DC)"
},
{
"path": "/Dc/In/V",
"type": "float",
"name": "/Dc/In/V (V DC)"
},
{
"path": "/Dc/In/P",
"type": "float",
"name": "/Dc/In/P (W)"
},
{
"path": "/ErrorCode",
"type": "enum",
"name": "/ErrorCode",
"enum": {
"0": "No error",
"1": "Battery temperature too high",
"2": "Battery voltage too high",
"3": "Battery temperature sensor miswired (+)",
"4": "Battery temperature sensor miswired (-)",
"5": "Battery temperature sensor disconnected",
"6": "Battery voltage sense miswired (+)",
"7": "Battery voltage sense miswired (-)",
"8": "Battery voltage sense disconnected",
"9": "Battery voltage wire losses too high",
"17": "Charger temperature too high",
"18": "Charger over-current",
"19": "Charger current polarity reversed",
"20": "Bulk time limit reached",
"22": "Charger temperature sensor miswired",
"23": "Charger temperature sensor disconnected",
"34": "Input current too high"
}
},
{
"path": "/FirmwareVersion",
"type": "float",
"name": "/FirmwareVersion"
},
{
"path": "/History/Cumulative/User/ChargedAh",
"type": "float",
"name": "/History/Cumulative/User/ChargedAh (Ah)"
},
{
"path": "/ProductId",
"type": "float",
"name": "/ProductId"
},
{
"path": "/State",
"type": "enum",
"name": "/State",
"enum": {
"0": "Off",
"2": "Fault",
"3": "Bulk",
"4": "Absorption",
"5": "Float",
"6": "Storage",
"7": "Equalize"
}
}
]
},
"input-dcload": {
"help": "<p>This node allows for monitoring the state of BMVs configured in Monitor Mode and DC meter type is a load.</p>",
"dcload": [
Expand Down Expand Up @@ -4787,6 +4870,15 @@
"type": "float",
"name": "Input voltage phase 3 (VAC)"
},
{
"path": "/Ac/Control/RemoteGeneratorSelected",
"type": "enum",
"name": "Select Remote Generator",
"enum": {
"0": "Generator not selected",
"1": "Generator selected"
}
},
{
"path": "/Ac/In/1/CurrentLimit",
"type": "float",
Expand Down Expand Up @@ -5420,6 +5512,21 @@
}
]
},
"output-dcdc": {
"help": "<p>This node allows for controlling the Smart BuckBoost DC-DC chargers.</p>",
"dcdc": [
{
"path": "/Mode",
"type": "enum",
"name": "/Mode",
"enum": {
"1": "On",
"4": "Off"
},
"writable": true
}
]
},
"output-ess": {
"help": "<p>This node allows for controlling the Energy Storage System (ESS).</p>",
"vebus": [
Expand Down
1 change: 1 addition & 0 deletions src/services/victron-system.js
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ class SystemConfiguration {
'input-acload': this.getNodeServices('input-acload'),
'input-alternator': this.getNodeServices('input-alternator'),
'input-battery': this.getNodeServices('input-battery'),
'input-dcdc': this.getNodeServices('input-dcdc'),
'input-dcload': this.getNodeServices('input-dcload'),
'input-dcsource': this.getNodeServices('input-dcsource'),
'input-dcsystem': this.getNodeServices('input-dcsystem'),
Expand Down

0 comments on commit 7d2d2a0

Please sign in to comment.