That bar graph style is lovely to look at.tuned dashboard
View attachment 275567
How can we get the same look ?
That bar graph style is lovely to look at.tuned dashboard
View attachment 275567
"I was rushing when I said that the YamBMS is working fine.@virus100b
In the file packages/base/device_base.yaml
Remove this code block and compile again.
YAML:external_components: # https://github.com/esphome/esphome/pull/7547 # api: ensure fair network sharing + prevent lost state changes via deferred publish at high event load - source: github://pr#7547 components: [ api, event ]
"I was rushing when I said that the YamBMS is working fine.
I have observed a strange behavior. The previous three days when everything was working fine; the sky was cloudy, and the production was very low, during this time i was mostly importing energy. However, yesterday it was sunny. The issue reappears when the charging or discharging power is high. I have noticed that Home Assistant freezes, and LocalTuya devices also become unavailable. I don't understand this behavior."
Previously, I was using a Hylink 48V to 5V power supply directly from the LFP pack. I have since changed that to an external power supply to test if the power supply was causing the issue, but the problem persists, so the power supply is not the cause.
Yesterday between 16-17h when discharging with over 100A the HA was unavailable and also LocalTuya.
View attachment 275808
Could be to many entities to update for the ESP32? View attachment 275811I have removed some of the entities in order to minimize the number but still 346 may be to much. As i said previously I have not experienced any problems before adding the Victron SmartShunt, the number of entities before adding the shunt was around 200.
Another thing: I have observed that the status balancing entities were not updating as they should. I noticed that once the cell delta dropped below the trigger value, the value in Yambms was showing "on," while in the BT app it was showing "off."
Is there anyone using an ESP32 Dev Kit with more than one JK PB and Victron SmartShut? I’m considering trimming more of the entities to reduce the load on the ESP.
I have reduce the update timing also:
# Shunt settings
shunt_update_interval: '5s' # frequency at which Shunt data is refreshed
shunt_combine_interval: '1s' # frequency at which data is combined in YamBMS
# BMS settings
bms_battery_chemistry: '1' # 1-LFP | 2-Li-ion | 3-LTO
bms_update_interval: '3s' # frequency at which BMS data is refreshed, going below '3s' can cause problems
bms_combine_interval: '1s' # frequency at which data is combined in YamBMS
bms_cutoff_timer: '60s'
I’m not sure what else I can do. Do you have any advice?
I know that the JK uses one set of MOSFETs for charging and a separate set for discharging. From obviously reasons only one set can be used at a time even both sets of MOSFETs are open.
It´s appears that Dmode has set his balancing trigger to a pretty narrow value, the colors shows cells that are outside of the balancing trigger value.@Dmode How did you achieve the colored bars from voltage? Mine are all gray :/ I also don't have the dashed Float lines
Perhaps the voltage difference between your cells does not exceed the threshold set in the BMS (beyond which balancing begins) taken from entity:@Dmode How did you achieve the colored bars from voltage? Mine are all gray :/ I also don't have the dashed Float lines
number.yambms_jk_bms_<Your JK BMS ID>_balancing_trigger_voltage
number.${ vars.bmsPrefixName }_cell_balancing_starting_voltage
number.${ vars.bmsPrefixName }_cell_request_float_voltage
number.${ vars.yamPrefixName }_float_voltage
number.${ vars.yamPrefixName }_bulk_voltage
number.yambms_jk_bms_3_cell_balancing_starting_voltage
number.yambms_jk_bms_3_cell_request_float_voltage
number.yambms_yambms_1_float_voltage
number.yambms_yambms_1_bulk_voltage
Hi got the atom parts today, waiting for the bms link.OK
Yes the most common CAN protocols see this page.
I recommend you to use an ESP32-S3 with a CAN + RS485 interface.
This can be the LilyGo T-Connect board or AtomS3 components.
Below is an AtomS3 with a CAN base (isolated) and a RS485 unit (isolated).
View attachment 273847
I need to prepare some YAMLs to integrate the jbd_bms_ble component developed by @syssi into YamBMS.
Hi got the atom parts today, waiting for the bms link.
@Sleeper85 I had the bug in dashboard code
https://github.com/Sleeper85/esphom...ds/YamBMS_HA_Dashboard_JK-PB_RS485_3xBMS.yaml
Min and Max cells are not colored.
sensor.yambms_jk_bms_1_max_voltage_cell & sensor.yambms_jk_bms_1_min_voltage_cell should be raplaced that
sensor.yambms_jk_bms_1_cell_voltage_max_cell_number & sensor.yambms_jk_bms_1_cell_voltage_min_cell_number
The same issue is in other dashoards
Ok, but isn't that a requirement for being able to communicate with a range of bms's? Canbus.But I don't see anywhere that the BMS-Link supports CAN bus protocols in input...
View attachment 276123
See my message of the 28/01.
influxdb:
host: influx.localdomain
database: yambms
max_retries: 3
override_measurement: state
include:
entity_globs:
- sensor.yambms_*
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"type": "dashboard"
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"id": 31,
"links": [],
"liveNow": false,
"panels": [
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-RdYlGr"
},
"decimals": 2,
"mappings": [],
"max": 55,
"min": 48.5,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "volt"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 4,
"x": 0,
"y": 0
},
"id": 58,
"options": {
"displayMode": "lcd",
"maxVizHeight": 300,
"minVizHeight": 75,
"minVizWidth": 75,
"namePlacement": "auto",
"orientation": "vertical",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showUnfilled": true,
"sizing": "auto",
"text": {},
"valueMode": "color"
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"query": "SELECT last(\"value\") FROM \"state\" WHERE (\"entity_id\"::tag = 'yambms_yambms_jbd_1_total_voltage') AND $timeFilter GROUP BY time($__interval) fill(none) ORDER BY time DESC LIMIT 1",
"rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_total_voltage"
}
]
}
],
"type": "bargauge"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-GrYlRd"
},
"decimals": 2,
"mappings": [],
"max": 440,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "super-light-orange",
"value": 180
},
{
"color": "light-orange",
"value": 280
},
{
"color": "red",
"value": 360
}
]
},
"unit": "amp"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 4,
"x": 4,
"y": 0
},
"id": 33,
"options": {
"displayMode": "lcd",
"maxVizHeight": 300,
"minVizHeight": 75,
"minVizWidth": 75,
"namePlacement": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showUnfilled": true,
"sizing": "auto",
"valueMode": "color"
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"hide": true,
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_current"
}
]
},
{
"datasource": {
"name": "Expression",
"type": "__expr__",
"uid": "__expr__"
},
"expression": "abs($A)",
"hide": false,
"refId": "B",
"type": "math"
}
],
"title": "Battery Current",
"type": "bargauge"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-GrYlRd"
},
"decimals": 0,
"mappings": [],
"max": 120,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "light-red",
"value": null
},
{
"color": "red",
"value": 10
},
{
"color": "semi-dark-red",
"value": 20
},
{
"color": "dark-red",
"value": 30
}
]
},
"unit": "fahrenheit"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 4,
"x": 8,
"y": 0
},
"id": 35,
"options": {
"displayMode": "lcd",
"maxVizHeight": 300,
"minVizHeight": 20,
"minVizWidth": 20,
"namePlacement": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showUnfilled": true,
"sizing": "auto",
"text": {
"titleSize": 16
},
"valueMode": "color"
},
"pluginVersion": "10.2.3",
"targets": [
{
"alias": "BMS",
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"query": "SELECT last($temp) FROM \"pack_health\" WHERE (\"meter\"::tag =~ /^${bms}$/) AND $timeFilter GROUP BY time($__interval) fill(none) ORDER BY time DESC LIMIT 1",
"rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_temperature_1"
}
]
},
{
"alias": "Cells 1",
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"hide": false,
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"query": "SELECT last($temp) FROM \"pack_health\" WHERE (\"meter\"::tag =~ /^${bms}$/) AND $timeFilter GROUP BY time($__interval) fill(none) ORDER BY time DESC LIMIT 1",
"rawQuery": false,
"refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_temperature_2"
}
]
},
{
"alias": "Cells 2",
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"hide": false,
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"query": "SELECT last($temp) FROM \"pack_health\" WHERE (\"meter\"::tag =~ /^${bms}$/) AND $timeFilter GROUP BY time($__interval) fill(none) ORDER BY time DESC LIMIT 1",
"rawQuery": false,
"refId": "C",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_temperature_3"
}
]
}
],
"title": "Temperatures",
"type": "bargauge"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "amps",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 100,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "stepAfter",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"log": 2,
"type": "symlog"
},
"showPoints": "never",
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "amp"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Charge"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "super-light-yellow",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "C"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "dark-orange",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Discharge"
}
]
}
]
},
"gridPos": {
"h": 6,
"w": 12,
"x": 12,
"y": 0
},
"id": 2,
"options": {
"legend": {
"calcs": [
"max",
"min",
"last"
],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "10.2.3",
"targets": [
{
"alias": "Charge",
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"0"
],
"type": "fill"
}
],
"measurement": "state",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_yam${bms}_current_s"
},
{
"condition": "AND",
"key": "value::field",
"operator": ">=",
"value": "0"
}
]
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"0"
],
"type": "fill"
}
],
"hide": true,
"measurement": "state",
"orderByTime": "ASC",
"policy": "default",
"refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_yam${bms}_current_s"
},
{
"condition": "AND",
"key": "value::field",
"operator": "<=",
"value": "0"
}
]
},
{
"datasource": {
"name": "Expression",
"type": "__expr__",
"uid": "__expr__"
},
"expression": "$B * -1",
"hide": false,
"refId": "C",
"type": "math"
}
],
"title": "Battery Current",
"transformations": [],
"type": "timeseries"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-RdYlGr"
},
"mappings": [],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "orange",
"value": 25
},
{
"color": "yellow",
"value": 50
},
{
"color": "green",
"value": 75
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 4,
"x": 4,
"y": 4
},
"id": 4,
"options": {
"displayMode": "lcd",
"maxVizHeight": 300,
"minVizHeight": 75,
"minVizWidth": 75,
"namePlacement": "auto",
"orientation": "horizontal",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showUnfilled": true,
"sizing": "auto",
"valueMode": "color"
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"hide": false,
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_battery_soc"
}
]
}
],
"title": "Battery Remaining",
"type": "bargauge"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "amps",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 100,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "stepAfter",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"decimals": 2,
"mappings": [],
"max": 55,
"min": 48,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "volt"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Voltage"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "red",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "V"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Charge"
},
"properties": [
{
"id": "unit",
"value": "percent"
},
{
"id": "custom.fillOpacity",
"value": 0
},
{
"id": "min",
"value": 0
},
{
"id": "max",
"value": 100
},
{
"id": "custom.axisLabel"
},
{
"id": "custom.axisPlacement",
"value": "hidden"
},
{
"id": "decimals",
"value": 0
}
]
},
{
"matcher": {
"id": "byName",
"options": "Capacity"
},
"properties": [
{
"id": "custom.fillOpacity",
"value": 0
},
{
"id": "min",
"value": 0
},
{
"id": "max",
"value": 200
},
{
"id": "unit",
"value": "amph"
},
{
"id": "custom.axisPlacement",
"value": "hidden"
},
{
"id": "color",
"value": {
"fixedColor": "super-light-green",
"mode": "fixed"
}
},
{
"id": "decimals",
"value": 0
}
]
}
]
},
"gridPos": {
"h": 6,
"w": 12,
"x": 12,
"y": 6
},
"id": 103,
"interval": "10s",
"options": {
"legend": {
"calcs": [
"lastNotNull",
"max",
"min"
],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"mode": "multi",
"sort": "none"
}
},
"pluginVersion": "10.2.3",
"targets": [
{
"alias": "Voltage",
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"previous"
],
"type": "fill"
}
],
"hide": false,
"measurement": "state",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_total_voltage"
}
]
},
{
"alias": "Charge",
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"previous"
],
"type": "fill"
}
],
"hide": false,
"measurement": "state",
"orderByTime": "ASC",
"policy": "default",
"refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_battery_soc"
}
]
},
{
"alias": "Capacity",
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"previous"
],
"type": "fill"
}
],
"hide": false,
"measurement": "state",
"orderByTime": "ASC",
"policy": "default",
"refId": "C",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_capacity_remaining"
}
]
}
],
"title": "Battery Charge",
"type": "timeseries"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "yellow",
"mode": "palette-classic"
},
"custom": {
"fillOpacity": 70,
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineWidth": 0,
"spanNulls": false
},
"mappings": [
{
"options": {
"1": {
"color": "super-light-green",
"index": 0
},
"2": {
"color": "super-light-red",
"index": 1
},
"3": {
"color": "super-light-purple",
"index": 2
},
"4": {
"color": "semi-dark-orange",
"index": 3
},
"5": {
"color": "dark-orange",
"index": 4
},
"6": {
"color": "dark-orange",
"index": 5
},
"7": {
"color": "dark-yellow",
"index": 6
},
"8": {
"color": "dark-green",
"index": 7
},
"9": {
"color": "dark-blue",
"index": 8
},
"10": {
"color": "dark-purple",
"index": 9
},
"11": {
"color": "red",
"index": 10
},
"12": {
"color": "orange",
"index": 11
},
"13": {
"color": "yellow",
"index": 12
},
"14": {
"color": "green",
"index": 13
},
"15": {
"color": "blue",
"index": 14
},
"16": {
"color": "purple",
"index": 15
}
},
"type": "value"
}
],
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "green",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "string"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 4,
"x": 0,
"y": 8
},
"id": 127,
"options": {
"alignValue": "left",
"legend": {
"displayMode": "list",
"placement": "bottom",
"showLegend": false
},
"mergeValues": true,
"rowHeight": 0.9,
"showValue": "auto",
"tooltip": {
"mode": "single",
"sort": "none"
}
},
"targets": [
{
"alias": "Min Cell",
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"previous"
],
"type": "fill"
}
],
"hide": false,
"measurement": "state",
"orderByTime": "ASC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_min_voltage_cell"
}
]
},
{
"alias": "Max Cell",
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"previous"
],
"type": "fill"
}
],
"hide": false,
"measurement": "state",
"orderByTime": "ASC",
"policy": "default",
"refId": "B",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_max_voltage_cell"
}
]
}
],
"type": "state-timeline"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-RdYlGr"
},
"displayName": "Capacity Remaining",
"mappings": [],
"max": 180,
"min": 0,
"thresholds": {
"mode": "percentage",
"steps": [
{
"color": "super-light-orange",
"value": null
},
{
"color": "red",
"value": 80
}
]
},
"unit": "amph"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 2,
"x": 4,
"y": 8
},
"id": 143,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"hide": false,
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_capacity_remaining"
}
]
}
],
"type": "stat"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 3,
"displayName": "cell minimum",
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "#EAB839",
"value": ""
},
{
"color": "orange",
"value": 2.8
},
{
"color": "super-light-orange",
"value": 3
},
{
"color": "orange",
"value": 3.5
},
{
"color": "red",
"value": 3.651
}
]
},
"unit": "volt"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 2,
"x": 6,
"y": 8
},
"id": 64,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_min_cell_voltage"
}
]
}
],
"type": "stat"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"decimals": 3,
"displayName": "cell maximum",
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "red",
"value": null
},
{
"color": "orange",
"value": 2.8
},
{
"color": "super-light-orange",
"value": 3
},
{
"color": "orange",
"value": 3.5
},
{
"color": "red",
"value": 3.651
}
]
},
"unit": "volt"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 2,
"x": 8,
"y": 8
},
"id": 66,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"hide": false,
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"query": "SELECT last(\"cellsmax\") FROM \"cell_data\" WHERE $timeFilter GROUP BY time($__interval) fill(null)",
"rawQuery": false,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_max_cell_voltage"
}
]
}
],
"type": "stat"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"displayName": "delta",
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "super-light-orange",
"value": null
},
{
"color": "orange",
"value": 15
},
{
"color": "red",
"value": 50
}
]
},
"unit": "volt"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 2,
"x": 10,
"y": 8
},
"id": 62,
"options": {
"colorMode": "value",
"graphMode": "none",
"justifyMode": "auto",
"orientation": "auto",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"text": {},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "10.2.3",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"none"
],
"type": "fill"
}
],
"hide": false,
"limit": "1",
"measurement": "state",
"orderByTime": "DESC",
"policy": "default",
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "last"
}
]
],
"tags": [
{
"key": "entity_id::tag",
"operator": "=",
"value": "yambms_${bms}_delta_cell_voltage"
}
]
}
],
"type": "stat"
},
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"description": "",
"fieldConfig": {
"defaults": {
"color": {
"mode": "continuous-RdYlGr"
},
"decimals": 3,
"displayName": "Cell ${cell}",
"mappings": [],
"max": 3.45,
"min": 3.1,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": null
}
]
},
"unit": "volt"
},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 3,
"x": 0,
"y": 12
},
"id": 10,
"maxPerRow": 8,
"options": {
"displayMode": "lcd",
"maxVizHeight": 300,
"minVizHeight": 75,
"minVizWidth": 75,
"namePlacement": "auto",
"orientation": "vertical",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showUnfilled": true,
"sizing": "auto",
"text": {},
"valueMode": "color"
},
"pluginVersion": "10.2.3",
"repeat": "cell",
"repeatDirection": "h",
"targets": [
{
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"groupBy": [
{
"params": [
"$__interval"
],
"type": "time"
},
{
"params": [
"null"
],
"type": "fill"
}
],
"measurement": "/^$measurement$/",
"orderByTime": "ASC",
"policy": "default",
"query": "SELECT last(\"value\") FROM \"state\" WHERE \"entity_id\" = 'yambms_${bms}_cell_voltage_$cell'",
"rawQuery": true,
"refId": "A",
"resultFormat": "time_series",
"select": [
[
{
"params": [
"value"
],
"type": "field"
},
{
"params": [],
"type": "mean"
}
]
],
"tags": []
}
],
"transformations": [],
"type": "bargauge"
}
],
"refresh": "1m",
"schemaVersion": 39,
"tags": [],
"templating": {
"list": [
{
"current": {
"selected": false,
"text": "influxdb-yambms",
"value": "ceaeb552-cabc-4621-98fe-75a7b8b89284"
},
"hide": 0,
"includeAll": false,
"multi": false,
"name": "datasource",
"options": [],
"query": "influxdb",
"queryValue": "",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"type": "datasource"
},
{
"current": {
"selected": false,
"text": "bms_1",
"value": "bms_1"
},
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"definition": "SHOW TAG VALUES FROM \"state\" WITH KEY = \"entity_id\" WHERE \"entity_id\" =~ /cell_voltage_01/",
"hide": 0,
"includeAll": false,
"multi": false,
"name": "bms",
"options": [],
"query": "SHOW TAG VALUES FROM \"state\" WITH KEY = \"entity_id\" WHERE \"entity_id\" =~ /cell_voltage_01/",
"refresh": 1,
"regex": "/yambms_(.*)_cell_voltage_/",
"skipUrlSync": false,
"sort": 0,
"type": "query"
},
{
"allValue": "",
"current": {
"selected": false,
"text": "All",
"value": "$__all"
},
"datasource": {
"type": "influxdb",
"uid": "${datasource}"
},
"definition": "SHOW TAG VALUES FROM \"state\" WITH KEY = \"entity_id\" WHERE \"entity_id\" =~ /${bms}_cell_voltage/",
"hide": 2,
"includeAll": true,
"multi": false,
"name": "cell",
"options": [],
"query": "SHOW TAG VALUES FROM \"state\" WITH KEY = \"entity_id\" WHERE \"entity_id\" =~ /${bms}_cell_voltage/",
"refresh": 2,
"regex": ".*_([0-9]+)$",
"skipUrlSync": false,
"sort": 3,
"type": "query"
}
]
},
"time": {
"from": "now-24h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "YamBMS",
"uid": "bede1bf7-bc74-478a-bd4f-95baa98eb06f",
"version": 40,
"weekStart": ""
}
hi again, yes you are correct epever confirmed that they do not support canbus.But I don't see anywhere that the BMS-Link supports CAN bus protocols in input...
View attachment 276123
See my message of the 28/01.
hi again, yes you are correct epever confirmed that they do not support canbus.
then i guess i have to check out some other project or adopt this to work with rs485
I have seen this avesome tool
I have 3 pieces JK PB2A16S20P and 1 Seplos 2.0 bms
I want them to communcate with my deye inveter
I have a Lillygo V1.1. and home assistant
IS there a very good tutorial how to do it, maybe a video. At the moment i cant see what i has to do :-D
@MrPablo where do you ordre fromI think the best for your case would be to use the LilyGo T-Connect (ESP32-S3) board with 3x RS485 and 1x CAN like @rasterer did.
You need to specify 3x RS485 modules and 1x CAN module when ordering.
@MrPablo can help you as he has already ordered several boards.
Otherwise you can build your PCB with 2x RS485 + 1x CAN interfaces.
For the configuration it is not very complicated, when you have the material I can prepare the YAML adapted to your case.
View attachment 276340
Does anyone know how to rotate the data on the Atom's display?View attachment 276583
You are awesome Sleeper. Thought I'd just tell you again.