Compare commits
No commits in common. "2d3c9cf674a50971277298eeb6df098315947070" and "6482453a1d86d288574709e8e2898d5621604781" have entirely different histories.
2d3c9cf674
...
6482453a1d
@ -1 +1 @@
|
|||||||
2023.11.1
|
2023.11.0
|
@ -1,505 +0,0 @@
|
|||||||
substitutions:
|
|
||||||
name: "riden-labornetzteil"
|
|
||||||
friendly_name: "Riden Labornetzteil"
|
|
||||||
# Change this model to fit your particular one.
|
|
||||||
# You can find it in Home Assistant as the device diagnostic "Model Name".
|
|
||||||
model: "RD6018"
|
|
||||||
device_name: "rd6018-controller"
|
|
||||||
device_friendly_name: "Riden RD6018"
|
|
||||||
device_description: "Labornetzteil"
|
|
||||||
time_timezone: "Europe/Berlin"
|
|
||||||
|
|
||||||
# Model specific settings (Don't change these!)
|
|
||||||
RD6006_voltage_maximum: "60"
|
|
||||||
RD6006_voltage_accuracy: "2"
|
|
||||||
RD6006_voltage_multiplier: "0.01"
|
|
||||||
RD6006_current_maximum: "6"
|
|
||||||
RD6006_current_accuracy: "3"
|
|
||||||
RD6006_current_multiplier: "0.001"
|
|
||||||
|
|
||||||
RD6006P_voltage_maximum: "60"
|
|
||||||
RD6006P_voltage_accuracy: "3"
|
|
||||||
RD6006P_voltage_multiplier: "0.001"
|
|
||||||
RD6006P_current_maximum: "6"
|
|
||||||
RD6006P_current_accuracy: "4"
|
|
||||||
RD6006P_current_multiplier: "0.0001"
|
|
||||||
|
|
||||||
RD6012_voltage_maximum: "60"
|
|
||||||
RD6012_voltage_accuracy: "2"
|
|
||||||
RD6012_voltage_multiplier: "0.01"
|
|
||||||
RD6012_current_maximum: "12"
|
|
||||||
RD6012_current_accuracy: "2"
|
|
||||||
RD6012_current_multiplier: "0.01"
|
|
||||||
|
|
||||||
RD6018_voltage_maximum: "60"
|
|
||||||
RD6018_voltage_accuracy: "2"
|
|
||||||
RD6018_voltage_multiplier: "0.01"
|
|
||||||
RD6018_current_maximum: "18"
|
|
||||||
RD6018_current_accuracy: "2"
|
|
||||||
RD6018_current_multiplier: "0.01"
|
|
||||||
|
|
||||||
esphome:
|
|
||||||
name: $device_name
|
|
||||||
friendly_name: $device_friendly_name
|
|
||||||
comment: $device_description
|
|
||||||
name_add_mac_suffix: false
|
|
||||||
project:
|
|
||||||
name: "wildekek.rd6006-controller"
|
|
||||||
version: "1.4.1"
|
|
||||||
|
|
||||||
esp8266:
|
|
||||||
board: esp12e
|
|
||||||
|
|
||||||
wifi:
|
|
||||||
ssid: "Voltage-legacy"
|
|
||||||
password: !secret voltage_legacy_psk
|
|
||||||
use_address: riden-labornetzteil.home
|
|
||||||
power_save_mode: high
|
|
||||||
fast_connect: on
|
|
||||||
|
|
||||||
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
|
||||||
ap:
|
|
||||||
ssid: "RD6018 Fallback Hotspot"
|
|
||||||
password: !secret fallback_psk
|
|
||||||
|
|
||||||
captive_portal:
|
|
||||||
|
|
||||||
# Enable logging
|
|
||||||
logger:
|
|
||||||
level: INFO
|
|
||||||
# Disable logging via UART, since we're using this for modbus communication
|
|
||||||
baud_rate: 0
|
|
||||||
|
|
||||||
# Enable Home Assistant API
|
|
||||||
api:
|
|
||||||
encryption:
|
|
||||||
key: !secret apikey
|
|
||||||
|
|
||||||
ota:
|
|
||||||
password: !secret ota
|
|
||||||
|
|
||||||
# Enable status LED
|
|
||||||
status_led:
|
|
||||||
pin:
|
|
||||||
number: GPIO2
|
|
||||||
inverted: true
|
|
||||||
|
|
||||||
uart:
|
|
||||||
id: mod_bus
|
|
||||||
tx_pin: GPIO1
|
|
||||||
rx_pin: GPIO3
|
|
||||||
baud_rate: 115200
|
|
||||||
data_bits: 8
|
|
||||||
stop_bits: 1
|
|
||||||
parity: none
|
|
||||||
|
|
||||||
modbus:
|
|
||||||
id: modbus1
|
|
||||||
|
|
||||||
modbus_controller:
|
|
||||||
- id: powersupply
|
|
||||||
## This address should be set to the "Address" value in the config menu
|
|
||||||
address: 0x01
|
|
||||||
modbus_id: modbus1
|
|
||||||
setup_priority: -10
|
|
||||||
update_interval: 5s
|
|
||||||
|
|
||||||
time:
|
|
||||||
# Get the time from HA, so we can use it for uptime
|
|
||||||
- platform: homeassistant
|
|
||||||
id: time_homeassistant
|
|
||||||
timezone: "${time_timezone}"
|
|
||||||
on_time_sync:
|
|
||||||
- logger.log: Time has been set and is valid!
|
|
||||||
- component.update: sensor_uptime_timestamp
|
|
||||||
- number.set:
|
|
||||||
id: date_year
|
|
||||||
value: !lambda return id(time_homeassistant).now().year;
|
|
||||||
- number.set:
|
|
||||||
id: date_month
|
|
||||||
value: !lambda return id(time_homeassistant).now().month;
|
|
||||||
- number.set:
|
|
||||||
id: date_day
|
|
||||||
value: !lambda return id(time_homeassistant).now().day_of_month;
|
|
||||||
- number.set:
|
|
||||||
id: date_hour
|
|
||||||
value: !lambda return id(time_homeassistant).now().hour;
|
|
||||||
- number.set:
|
|
||||||
id: date_minute
|
|
||||||
value: !lambda return id(time_homeassistant).now().minute;
|
|
||||||
- number.set:
|
|
||||||
id: date_second
|
|
||||||
value: !lambda return id(time_homeassistant).now().second;
|
|
||||||
|
|
||||||
sensor:
|
|
||||||
- platform: modbus_controller
|
|
||||||
id: model_number
|
|
||||||
name: "Model Number"
|
|
||||||
entity_category: diagnostic
|
|
||||||
disabled_by_default: True
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 0
|
|
||||||
skip_updates: 10
|
|
||||||
unit_of_measurement: ""
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_WORD
|
|
||||||
accuracy_decimals: 0
|
|
||||||
on_value:
|
|
||||||
then:
|
|
||||||
- lambda: |-
|
|
||||||
id(model_name).publish_state(value_accuracy_to_string(x, 0));
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
name: "Serial Number"
|
|
||||||
entity_category: diagnostic
|
|
||||||
disabled_by_default: True
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 1
|
|
||||||
skip_updates: 10
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_DWORD
|
|
||||||
accuracy_decimals: 0
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 3
|
|
||||||
name: "Firmware version"
|
|
||||||
entity_category: diagnostic
|
|
||||||
disabled_by_default: True
|
|
||||||
unit_of_measurement: ""
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_WORD
|
|
||||||
accuracy_decimals: 2
|
|
||||||
filters:
|
|
||||||
- multiply: 0.01
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 10
|
|
||||||
name: "Output voltage"
|
|
||||||
device_class: voltage
|
|
||||||
state_class: measurement
|
|
||||||
unit_of_measurement: "V"
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_WORD
|
|
||||||
accuracy_decimals: ${${model}_voltage_accuracy}
|
|
||||||
filters:
|
|
||||||
- multiply: ${${model}_voltage_multiplier}
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 11
|
|
||||||
name: "Output current"
|
|
||||||
device_class: current
|
|
||||||
state_class: measurement
|
|
||||||
unit_of_measurement: "A"
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_WORD
|
|
||||||
accuracy_decimals: ${${model}_current_accuracy}
|
|
||||||
filters:
|
|
||||||
- multiply: ${${model}_current_multiplier}
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 12
|
|
||||||
name: "Output Power"
|
|
||||||
device_class: power
|
|
||||||
state_class: measurement
|
|
||||||
unit_of_measurement: "W"
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_DWORD
|
|
||||||
accuracy_decimals: 2
|
|
||||||
filters:
|
|
||||||
- multiply: 0.01
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 33
|
|
||||||
name: "Battery voltage"
|
|
||||||
device_class: voltage
|
|
||||||
state_class: measurement
|
|
||||||
unit_of_measurement: "V"
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_WORD
|
|
||||||
accuracy_decimals: ${${model}_voltage_accuracy}
|
|
||||||
filters:
|
|
||||||
- multiply: ${${model}_voltage_multiplier}
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 38
|
|
||||||
name: "Battery charge"
|
|
||||||
device_class: "energy_storage"
|
|
||||||
state_class: measurement
|
|
||||||
unit_of_measurement: "Ah"
|
|
||||||
icon: "mdi:battery-60"
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_DWORD
|
|
||||||
accuracy_decimals: 3
|
|
||||||
filters:
|
|
||||||
- multiply: 0.001
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 40
|
|
||||||
name: "Battery energy"
|
|
||||||
device_class: "energy_storage"
|
|
||||||
state_class: measurement
|
|
||||||
unit_of_measurement: "Wh"
|
|
||||||
icon: "mdi:battery-60"
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_DWORD
|
|
||||||
accuracy_decimals: 3
|
|
||||||
filters:
|
|
||||||
- multiply: 0.001
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 14
|
|
||||||
name: "Input voltage"
|
|
||||||
device_class: voltage
|
|
||||||
unit_of_measurement: "V"
|
|
||||||
register_type: holding
|
|
||||||
value_type: U_WORD
|
|
||||||
accuracy_decimals: ${${model}_voltage_accuracy}
|
|
||||||
filters:
|
|
||||||
- multiply: ${${model}_voltage_multiplier}
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
name: "Temperature"
|
|
||||||
device_class: temperature
|
|
||||||
state_class: measurement
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
register_type: holding
|
|
||||||
address: 4
|
|
||||||
value_type: S_DWORD
|
|
||||||
unit_of_measurement: "°C"
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
name: "Temperature external"
|
|
||||||
state_class: measurement
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
register_type: holding
|
|
||||||
address: 34
|
|
||||||
value_type: S_DWORD
|
|
||||||
device_class: temperature
|
|
||||||
unit_of_measurement: "°C"
|
|
||||||
|
|
||||||
- platform: wifi_signal
|
|
||||||
name: "Wi-Fi Signal"
|
|
||||||
disabled_by_default: True
|
|
||||||
update_interval: 60s
|
|
||||||
|
|
||||||
# Uptime is used internally only
|
|
||||||
- platform: uptime
|
|
||||||
id: sensor_uptime
|
|
||||||
# This sensor is an alternative for the uptime sensor, which only sends the
|
|
||||||
# startup timestamp of the device to home assistant once
|
|
||||||
- platform: template
|
|
||||||
id: sensor_uptime_timestamp
|
|
||||||
name: "Uptime"
|
|
||||||
entity_category: diagnostic
|
|
||||||
device_class: "timestamp"
|
|
||||||
accuracy_decimals: 0
|
|
||||||
update_interval: never
|
|
||||||
lambda: |-
|
|
||||||
static float timestamp = (
|
|
||||||
id(time_homeassistant).utcnow().timestamp - id(sensor_uptime).state
|
|
||||||
);
|
|
||||||
return timestamp;
|
|
||||||
|
|
||||||
text_sensor:
|
|
||||||
- platform: wifi_info
|
|
||||||
ip_address:
|
|
||||||
name: "IP Address"
|
|
||||||
disabled_by_default: True
|
|
||||||
ssid:
|
|
||||||
name: "Wi-Fi SSID"
|
|
||||||
disabled_by_default: True
|
|
||||||
bssid:
|
|
||||||
name: "Wi-Fi BSSID"
|
|
||||||
disabled_by_default: True
|
|
||||||
- platform: template
|
|
||||||
id: model_name
|
|
||||||
name: "Model Name"
|
|
||||||
entity_category: diagnostic
|
|
||||||
# Updated by model number
|
|
||||||
update_interval: never
|
|
||||||
filters:
|
|
||||||
- map:
|
|
||||||
- 60062 -> RD6006
|
|
||||||
- 60065 -> RD6006P
|
|
||||||
- 60121 -> RD6012
|
|
||||||
- 60181 -> RD6018
|
|
||||||
|
|
||||||
binary_sensor:
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Keypad lock"
|
|
||||||
entity_category: diagnostic
|
|
||||||
device_class: lock
|
|
||||||
address: 15
|
|
||||||
register_type: holding
|
|
||||||
bitmask: 0x1
|
|
||||||
filters:
|
|
||||||
- invert:
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
address: 32
|
|
||||||
name: "Battery mode"
|
|
||||||
device_class: connectivity
|
|
||||||
register_type: holding
|
|
||||||
bitmask: 0x1
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Over Voltage Protection"
|
|
||||||
device_class: problem
|
|
||||||
address: 16
|
|
||||||
register_type: holding
|
|
||||||
bitmask: 0x1
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Over Current Protection"
|
|
||||||
device_class: problem
|
|
||||||
address: 16
|
|
||||||
register_type: holding
|
|
||||||
bitmask: 0x2
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Constant Voltage"
|
|
||||||
address: 17
|
|
||||||
register_type: holding
|
|
||||||
bitmask: 0x1
|
|
||||||
filters:
|
|
||||||
- invert:
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Constant Current"
|
|
||||||
address: 17
|
|
||||||
register_type: holding
|
|
||||||
bitmask: 0x1
|
|
||||||
|
|
||||||
number:
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Backlight"
|
|
||||||
icon: "mdi:lightbulb"
|
|
||||||
entity_category: config
|
|
||||||
address: 72
|
|
||||||
value_type: U_WORD
|
|
||||||
min_value: 0
|
|
||||||
max_value: 5
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Output voltage"
|
|
||||||
device_class: voltage
|
|
||||||
unit_of_measurement: "V"
|
|
||||||
entity_category: config
|
|
||||||
address: 8
|
|
||||||
value_type: U_WORD
|
|
||||||
min_value: 0
|
|
||||||
max_value: ${${model}_voltage_maximum}
|
|
||||||
step: ${${model}_voltage_multiplier}
|
|
||||||
lambda: !lambda return x * ${${model}_voltage_multiplier};
|
|
||||||
write_lambda: !lambda return x * (1/${${model}_voltage_multiplier});
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Output current"
|
|
||||||
device_class: current
|
|
||||||
unit_of_measurement: "A"
|
|
||||||
entity_category: config
|
|
||||||
address: 9
|
|
||||||
value_type: U_WORD
|
|
||||||
min_value: 0
|
|
||||||
max_value: ${${model}_current_maximum}
|
|
||||||
step: ${${model}_current_multiplier}
|
|
||||||
lambda: !lambda return x * ${${model}_current_multiplier};
|
|
||||||
write_lambda: !lambda return x * (1/${${model}_current_multiplier});
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Over Voltage Protection"
|
|
||||||
device_class: voltage
|
|
||||||
unit_of_measurement: "V"
|
|
||||||
address: 82
|
|
||||||
entity_category: config
|
|
||||||
value_type: U_WORD
|
|
||||||
min_value: 0
|
|
||||||
max_value: ${${model}_voltage_maximum}
|
|
||||||
step: ${${model}_voltage_multiplier}
|
|
||||||
lambda: !lambda return x * ${${model}_voltage_multiplier};
|
|
||||||
write_lambda: !lambda return x * (1/${${model}_voltage_multiplier});
|
|
||||||
|
|
||||||
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Over Current Protection"
|
|
||||||
device_class: current
|
|
||||||
unit_of_measurement: "A"
|
|
||||||
address: 83
|
|
||||||
entity_category: config
|
|
||||||
value_type: U_WORD
|
|
||||||
min_value: 0
|
|
||||||
max_value: ${${model}_current_maximum}
|
|
||||||
step: ${${model}_current_multiplier}
|
|
||||||
lambda: !lambda return x * ${${model}_current_multiplier};
|
|
||||||
write_lambda: !lambda return x * (1/${${model}_current_multiplier});
|
|
||||||
|
|
||||||
# Date components are kept internal
|
|
||||||
- platform: modbus_controller
|
|
||||||
id: date_year
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
entity_category: diagnostic
|
|
||||||
register_type: holding
|
|
||||||
address: 48
|
|
||||||
value_type: U_WORD
|
|
||||||
- platform: modbus_controller
|
|
||||||
id: date_month
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
entity_category: diagnostic
|
|
||||||
register_type: holding
|
|
||||||
address: 49
|
|
||||||
value_type: U_WORD
|
|
||||||
- platform: modbus_controller
|
|
||||||
id: date_day
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
entity_category: diagnostic
|
|
||||||
register_type: holding
|
|
||||||
address: 50
|
|
||||||
value_type: U_WORD
|
|
||||||
- platform: modbus_controller
|
|
||||||
id: date_hour
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
entity_category: diagnostic
|
|
||||||
register_type: holding
|
|
||||||
address: 51
|
|
||||||
value_type: U_WORD
|
|
||||||
- platform: modbus_controller
|
|
||||||
id: date_minute
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
entity_category: diagnostic
|
|
||||||
register_type: holding
|
|
||||||
address: 52
|
|
||||||
value_type: U_WORD
|
|
||||||
- platform: modbus_controller
|
|
||||||
id: date_second
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
entity_category: diagnostic
|
|
||||||
register_type: holding
|
|
||||||
address: 53
|
|
||||||
value_type: U_WORD
|
|
||||||
|
|
||||||
switch:
|
|
||||||
- platform: modbus_controller
|
|
||||||
modbus_controller_id: powersupply
|
|
||||||
name: "Output"
|
|
||||||
address: 18
|
|
||||||
register_type: holding
|
|
||||||
bitmask: 0x1
|
|
||||||
entity_category: config
|
|
||||||
|
|
||||||
button:
|
|
||||||
- platform: safe_mode
|
|
||||||
name: "Safe mode"
|
|
Loading…
Reference in New Issue
Block a user