Victron-Blue.yaml hinzugefügt
This commit is contained in:
@@ -0,0 +1,268 @@
|
|||||||
|
substitutions:
|
||||||
|
external_components_source: github://KinDR007/VictronMPPT-ESPHOME@main
|
||||||
|
lower_devicename: "victron-blue"
|
||||||
|
devicename: "BlueSolar_75_10"
|
||||||
|
config_version: "v2023.12.30"
|
||||||
|
wifi_fast_connect: "false"
|
||||||
|
accuracy: "2"
|
||||||
|
|
||||||
|
esphome:
|
||||||
|
name: "${lower_devicename}"
|
||||||
|
# platform: ESP8266
|
||||||
|
esp8266:
|
||||||
|
board: d1_mini
|
||||||
|
# board: nodemcuv2
|
||||||
|
|
||||||
|
external_components:
|
||||||
|
- source: ${external_components_source}
|
||||||
|
refresh: 0s
|
||||||
|
|
||||||
|
wifi:
|
||||||
|
ssid: !secret wifi_ssid
|
||||||
|
password: !secret wifi_password
|
||||||
|
power_save_mode: none
|
||||||
|
fast_connect: $wifi_fast_connect
|
||||||
|
|
||||||
|
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||||
|
ap:
|
||||||
|
ssid: "${devicename} Hotspot"
|
||||||
|
password: Andra1977
|
||||||
|
|
||||||
|
captive_portal:
|
||||||
|
logger:
|
||||||
|
baud_rate: 0
|
||||||
|
# level: VERY_VERBOSE
|
||||||
|
esp8266_store_log_strings_in_flash: false
|
||||||
|
|
||||||
|
# Enable Home Assistant API
|
||||||
|
api:
|
||||||
|
encryption:
|
||||||
|
key: "ck+V6y6vOpR9ty6rMXshGFb4L/15rPM+P34D6yBbV/s="
|
||||||
|
#reboot_timeout: 0s
|
||||||
|
|
||||||
|
ota:
|
||||||
|
- platform: esphome
|
||||||
|
password: "0dd572e476ee28d45e11707f63b4c8a3"
|
||||||
|
|
||||||
|
web_server:
|
||||||
|
port: 80
|
||||||
|
|
||||||
|
time:
|
||||||
|
- platform: homeassistant
|
||||||
|
|
||||||
|
uart:
|
||||||
|
id: uart_bus
|
||||||
|
tx_pin: D8 # Not connected! The communication is read-only
|
||||||
|
rx_pin: D7 # Connect this this GPIO and GND to the MPPT charger
|
||||||
|
baud_rate: 19200
|
||||||
|
stop_bits: 1
|
||||||
|
data_bits: 8
|
||||||
|
parity: NONE
|
||||||
|
rx_buffer_size: 256
|
||||||
|
|
||||||
|
victron:
|
||||||
|
id: victron0
|
||||||
|
uart_id: uart_bus
|
||||||
|
throttle: 10s
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
- platform: victron
|
||||||
|
victron_id: victron0
|
||||||
|
panel_voltage:
|
||||||
|
name: "Panel voltage"
|
||||||
|
id: pv
|
||||||
|
battery_voltage:
|
||||||
|
name: "Battery voltage"
|
||||||
|
id: bv
|
||||||
|
# battery_current:
|
||||||
|
# name: "Battery current"
|
||||||
|
# id: bc
|
||||||
|
load_current:
|
||||||
|
name: "Load current"
|
||||||
|
id: load_current
|
||||||
|
max_power_yesterday:
|
||||||
|
name: "Max power yesterday"
|
||||||
|
id: max_power_yesterday
|
||||||
|
max_power_today:
|
||||||
|
name: "Max power today"
|
||||||
|
id: max_power_today
|
||||||
|
accuracy_decimals: ${accuracy}
|
||||||
|
# yield_total:
|
||||||
|
# name: "Yield total"
|
||||||
|
# id: yield_total
|
||||||
|
# filters:
|
||||||
|
# # Multiplication factor from W to kW is 0.001
|
||||||
|
# - multiply: 0.001
|
||||||
|
# unit_of_measurement: kWh
|
||||||
|
# accuracy_decimals: ${accuracy}
|
||||||
|
# yield_yesterday:
|
||||||
|
# name: "Yield yesterday"
|
||||||
|
# id: yield_yesterday
|
||||||
|
# filters:
|
||||||
|
# # Multiplication factor from W to kW is 0.001
|
||||||
|
# - multiply: 0.001
|
||||||
|
# unit_of_measurement: kWh
|
||||||
|
# accuracy_decimals: ${accuracy}
|
||||||
|
yield_today:
|
||||||
|
name: "Yield today"
|
||||||
|
id: yt
|
||||||
|
filters:
|
||||||
|
# Multiplication factor from W to kW is 0.001
|
||||||
|
- multiply: 0.001
|
||||||
|
unit_of_measurement: kWh
|
||||||
|
accuracy_decimals: ${accuracy}
|
||||||
|
panel_power:
|
||||||
|
name: "Panel power"
|
||||||
|
id: panel_power
|
||||||
|
# day_number:
|
||||||
|
# name: "Day sequence number"
|
||||||
|
# id: day_number
|
||||||
|
# icon: "mdi:calendar-today"
|
||||||
|
# charging_mode_id:
|
||||||
|
# name: "Charger mode id"
|
||||||
|
error_code:
|
||||||
|
name: "Error code"
|
||||||
|
tracking_mode_id:
|
||||||
|
name: "Tracker mode id"
|
||||||
|
|
||||||
|
# - platform: wifi_signal
|
||||||
|
# name: "${devicename} WiFi Signal Sensor"
|
||||||
|
# id: rssi_sensor
|
||||||
|
# update_interval: 15s
|
||||||
|
|
||||||
|
# - platform: template
|
||||||
|
# name: "Wifi Quality"
|
||||||
|
# unit_of_measurement: "%"
|
||||||
|
# accuracy_decimals: 0
|
||||||
|
# icon: "mdi:wifi"
|
||||||
|
# update_interval: 15s
|
||||||
|
# lambda: |-
|
||||||
|
# int quality;
|
||||||
|
# const int rssi = id(rssi_sensor).state;
|
||||||
|
# if (rssi <= -100) {
|
||||||
|
# quality = 0;
|
||||||
|
# } else if (rssi >= -50) {
|
||||||
|
# quality = 100;
|
||||||
|
# } else {
|
||||||
|
# quality = 2 * (rssi + 100);
|
||||||
|
# }
|
||||||
|
# return quality;
|
||||||
|
|
||||||
|
- platform: uptime
|
||||||
|
name: "${devicename} Uptime"
|
||||||
|
id: uptime_s
|
||||||
|
update_interval: 5s
|
||||||
|
|
||||||
|
# - platform: template # for 1 cell of battery
|
||||||
|
# name: "Bat S1 " # 6S pack
|
||||||
|
# lambda: |-
|
||||||
|
# if ((((id(bv).state) / 6) > 4.22) && (((id(bv).state) / 6) < 3.0)) {
|
||||||
|
# return NAN;
|
||||||
|
# }
|
||||||
|
# return ((id(bv).state) / 6);
|
||||||
|
|
||||||
|
# update_interval: 10s
|
||||||
|
# icon: "mdi:battery"
|
||||||
|
# unit_of_measurement: V
|
||||||
|
# device_class: "voltage"
|
||||||
|
# accuracy_decimals: ${accuracy}
|
||||||
|
# - platform: template # Battery working percent
|
||||||
|
# name: "Bat working percent" # cycle batt between 3,0v - 4.01v
|
||||||
|
# lambda: |-
|
||||||
|
# if (((((((((id(bv).state) / 7 )) - 3.142) / (4.01142 - 3.142)) * 100)) >= 115) && ((((((((id(bv).state) / 7 )) - 3.142) / (4.01142 - 3.142)) * 100)) <= -25)) {
|
||||||
|
# return NAN;
|
||||||
|
# }
|
||||||
|
# return ((((((id(bv).state) / 7 )) - 3.142) / (4.01142 - 3.142) ) * 100);
|
||||||
|
|
||||||
|
# update_interval: 15s
|
||||||
|
# icon: "mdi:battery"
|
||||||
|
# unit_of_measurement: "%"
|
||||||
|
# device_class: "voltage"
|
||||||
|
# accuracy_decimals: ${accuracy}
|
||||||
|
|
||||||
|
# - platform: template # FVE percent
|
||||||
|
# name: "FVE percent" # 500Wp max power of my FVE grid
|
||||||
|
# lambda: |-
|
||||||
|
# if (((((id(panel_power).state) / 500) * 100) >= 120) && ((((id(panel_power).state) / 500) * 100) < 0)) {
|
||||||
|
# return NAN;
|
||||||
|
# }
|
||||||
|
# return (((id(panel_power).state) / 500) * 100);
|
||||||
|
# icon: "mdi:gauge"
|
||||||
|
# unit_of_measurement: "%"
|
||||||
|
# device_class: "power"
|
||||||
|
# accuracy_decimals: ${accuracy}
|
||||||
|
# update_interval: 15s
|
||||||
|
|
||||||
|
# - platform: template # median generated day energy
|
||||||
|
# name: "Day median generated " # 500Wp max power of my FVE grid
|
||||||
|
# lambda: |-
|
||||||
|
# return (id(yield_total).state) / (id(day_number).state);
|
||||||
|
# update_interval: 15s
|
||||||
|
# icon: "mdi:gauge"
|
||||||
|
# unit_of_measurement: "kWh"
|
||||||
|
# device_class: "power"
|
||||||
|
# accuracy_decimals: 3
|
||||||
|
|
||||||
|
text_sensor:
|
||||||
|
- platform: victron
|
||||||
|
victron_id: victron0
|
||||||
|
charging_mode:
|
||||||
|
name: "Charging Mode"
|
||||||
|
error:
|
||||||
|
name: "Error"
|
||||||
|
tracking_mode:
|
||||||
|
name: "Tracking Mode"
|
||||||
|
firmware_version:
|
||||||
|
name: "Firmware Version"
|
||||||
|
device_type:
|
||||||
|
name: "Device Type"
|
||||||
|
|
||||||
|
# - platform: template
|
||||||
|
# name: "${devicename} Config Version"
|
||||||
|
# icon: mdi:information-outline
|
||||||
|
# lambda: |-
|
||||||
|
# return {"${config_version}"};
|
||||||
|
# - platform: version
|
||||||
|
# name: "${devicename} Esphome Version"
|
||||||
|
# icon: mdi:information-outline
|
||||||
|
# - platform: wifi_info
|
||||||
|
# ip_address:
|
||||||
|
# name: "${devicename} IP Address"
|
||||||
|
# icon: mdi:ip
|
||||||
|
# ssid:
|
||||||
|
# name: "${devicename} Connected SSID"
|
||||||
|
# icon: mdi:wifi
|
||||||
|
# bssid:
|
||||||
|
# name: "${devicename} Connected BSSID"
|
||||||
|
# mac_address:
|
||||||
|
# name: "${devicename} Mac Wifi Address"
|
||||||
|
- platform: template
|
||||||
|
name: "${devicename} Uptime (formatted)"
|
||||||
|
lambda: |-
|
||||||
|
uint32_t dur = id(uptime_s).state;
|
||||||
|
int dys = 0;
|
||||||
|
int hrs = 0;
|
||||||
|
int mnts = 0;
|
||||||
|
if (dur > 86399) {
|
||||||
|
dys = trunc(dur / 86400);
|
||||||
|
dur = dur - (dys * 86400);
|
||||||
|
}
|
||||||
|
if (dur > 3599) {
|
||||||
|
hrs = trunc(dur / 3600);
|
||||||
|
dur = dur - (hrs * 3600);
|
||||||
|
}
|
||||||
|
if (dur > 59) {
|
||||||
|
mnts = trunc(dur / 60);
|
||||||
|
dur = dur - (mnts * 60);
|
||||||
|
}
|
||||||
|
char buffer[17];
|
||||||
|
sprintf(buffer, "%ud %02uh %02um %02us", dys, hrs, mnts, dur);
|
||||||
|
return {buffer};
|
||||||
|
icon: mdi:clock-start
|
||||||
|
update_interval: 5s
|
||||||
|
|
||||||
|
switch:
|
||||||
|
- platform: restart
|
||||||
|
icon: mdi:reload-alert
|
||||||
|
name: "${devicename} Restart"
|
||||||
|
|
||||||
Reference in New Issue
Block a user