Updated gartenhaus light
This commit is contained in:
444
garten_bus_controller.yaml
Normal file
444
garten_bus_controller.yaml
Normal file
@@ -0,0 +1,444 @@
|
||||
esphome:
|
||||
name: garten-bus-controller
|
||||
|
||||
esp32:
|
||||
board: esp32-poe
|
||||
framework:
|
||||
type: arduino
|
||||
|
||||
# Enable logging
|
||||
#logger:
|
||||
|
||||
# Enable Home Assistant API
|
||||
api:
|
||||
encryption:
|
||||
key: !secret api_encryption_key
|
||||
|
||||
ota:
|
||||
password: !secret ota_password
|
||||
|
||||
|
||||
external_components:
|
||||
- source:
|
||||
type: git
|
||||
url: "https://github.com/andyboeh/esphome-dmx512"
|
||||
ref: master
|
||||
|
||||
|
||||
external_components:
|
||||
- source:
|
||||
type: local
|
||||
path: my_components
|
||||
|
||||
#wifi:
|
||||
# ssid: "WLAN"
|
||||
# password: !secret wifi_password
|
||||
#
|
||||
# # Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||
# ap:
|
||||
# ssid: "Garten Bus Controller Hotspot"
|
||||
# password: !secret ota_password
|
||||
#captive_portal:
|
||||
|
||||
ethernet:
|
||||
type: LAN8720
|
||||
mdc_pin: GPIO23
|
||||
mdio_pin: GPIO18
|
||||
clk_mode: GPIO17_OUT
|
||||
phy_addr: 0
|
||||
power_pin: GPIO12
|
||||
|
||||
uart:
|
||||
- id: "uart_dmx"
|
||||
rx_pin: 0
|
||||
tx_pin: 1 # the pin where the transmission happens connected to tx (not reversed)
|
||||
stop_bits: 2
|
||||
baud_rate: 250000
|
||||
- id: uart_relays
|
||||
rx_pin: 2
|
||||
tx_pin: 3
|
||||
baud_rate: 9600
|
||||
- id: "uart_oxilife"
|
||||
rx_pin: 4
|
||||
tx_pin: 5
|
||||
baud_rate: 19200
|
||||
stop_bits: 1
|
||||
parity: NONE
|
||||
|
||||
modbus:
|
||||
- uart_id: "uart_relays"
|
||||
id: "modbus_relays"
|
||||
- uart_id: "uart_oxilife"
|
||||
id: "modbus_oxilife"
|
||||
|
||||
modbus_controller:
|
||||
- modbus_id: "modbus_relays"
|
||||
id: "relayboard32"
|
||||
address: 0x1
|
||||
- modbus_id: "modbus_relays"
|
||||
id: "relayboard8_with_inputs"
|
||||
address: 0x2
|
||||
update_interval: "1s"
|
||||
- modbus_id: "modbus_oxilife"
|
||||
id: "oxilife"
|
||||
address: 0x1
|
||||
update_interval: "1s"
|
||||
|
||||
|
||||
packages:
|
||||
# ------------ Relays of 32-Relay board ----
|
||||
relay01: !include
|
||||
file: "modbus_relay.yaml"
|
||||
vars:
|
||||
cid: relayboard32
|
||||
name: "modbus-switch01"
|
||||
dev_addr: 0x1
|
||||
register_addr: 0x01
|
||||
relay02: !include
|
||||
file: "modbus_relay.yaml"
|
||||
vars:
|
||||
cid: relayboard32
|
||||
name: "modbus-switch02"
|
||||
dev_addr: 0x1
|
||||
register_addr: 0x02
|
||||
relay03: !include
|
||||
file: "modbus_relay.yaml"
|
||||
vars:
|
||||
cid: relayboard32
|
||||
name: "modbus-switch03"
|
||||
dev_addr: 0x1
|
||||
register_addr: 0x03
|
||||
relay16: !include
|
||||
file: "modbus_relay.yaml"
|
||||
vars:
|
||||
cid: relayboard32
|
||||
name: "modbus-switch16"
|
||||
dev_addr: 0x1
|
||||
register_addr: 0x0f
|
||||
relay17: !include
|
||||
file: "modbus_relay.yaml"
|
||||
vars:
|
||||
cid: relayboard32
|
||||
name: "modbus-switch17"
|
||||
dev_addr: 0x1
|
||||
register_addr: 0x10
|
||||
# ------------ Relays of 8-Relay board ----
|
||||
b2relay1: !include
|
||||
file: "modbus_relay.yaml"
|
||||
vars:
|
||||
cid: relayboard8_with_inputs
|
||||
name: "garten_relayboard8_switch1"
|
||||
dev_addr: 0x2
|
||||
register_addr: 0x1
|
||||
b2relay2: !include
|
||||
file: "modbus_relay.yaml"
|
||||
vars:
|
||||
cid: relayboard8_with_inputs
|
||||
name: "garten_relayboard8_switch2"
|
||||
dev_addr: 0x2
|
||||
register_addr: 0x2
|
||||
|
||||
# Controls input output relationship
|
||||
# 0 no relationship
|
||||
# 1 self-locking
|
||||
# 2 interlocking
|
||||
# 3 momentary
|
||||
# commented out for now, because it sends all the time
|
||||
#number:
|
||||
# - platform: modbus_controller
|
||||
# modbus_controller_id: relayboard8_with_inputs
|
||||
# name: "relayboard8-input-output-relationship"
|
||||
# value_type: U_WORD
|
||||
# address: 0x00fd
|
||||
# min_value: 0
|
||||
# max_value: 3
|
||||
# skip_updates: true
|
||||
|
||||
|
||||
dmx512:
|
||||
id: dmx1
|
||||
uart_id: uart_dmx
|
||||
tx_pin: 1
|
||||
uart_num: 0
|
||||
periodic_update: true
|
||||
|
||||
output:
|
||||
- platform: dmx512
|
||||
channel: 1
|
||||
universe: dmx1
|
||||
id: pool_licht_r
|
||||
- platform: dmx512
|
||||
channel: 2
|
||||
universe: dmx1
|
||||
id: pool_licht_g
|
||||
- platform: dmx512
|
||||
channel: 3
|
||||
universe: dmx1
|
||||
id: pool_licht_b
|
||||
- platform: dmx512
|
||||
channel: 4
|
||||
universe: dmx1
|
||||
id: magnolie_links_r
|
||||
- platform: dmx512
|
||||
channel: 5
|
||||
universe: dmx1
|
||||
id: magnolie_links_g
|
||||
- platform: dmx512
|
||||
channel: 6
|
||||
universe: dmx1
|
||||
id: magnolie_links_b
|
||||
light:
|
||||
- platform: rgb
|
||||
name: pool_licht
|
||||
red: pool_licht_r
|
||||
green: pool_licht_g
|
||||
blue: pool_licht_b
|
||||
default_transition_length: 0s
|
||||
restore_mode: RESTORE_DEFAULT_OFF
|
||||
- platform: rgb
|
||||
name: magnolie_links
|
||||
red: magnolie_links_r
|
||||
green: magnolie_links_g
|
||||
blue: magnolie_links_b
|
||||
default_transition_length: 0s
|
||||
restore_mode: RESTORE_DEFAULT_OFF
|
||||
|
||||
|
||||
# ----------------------- Oxilife ------------------------------
|
||||
|
||||
sensor:
|
||||
#- platform: modbus_controller
|
||||
# modbus_controller_id: oxilife
|
||||
# id: oxilife_ionization_current
|
||||
# name: Ionization Strom
|
||||
# value_type: U_WORD
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
id: oxilife_hidro_current
|
||||
name: Oxilife Hydrolyse
|
||||
state_class: measurement
|
||||
device_class: POWER_FACTOR
|
||||
icon: mdi:percent
|
||||
address: 0x0101
|
||||
register_type: read
|
||||
value_type: U_WORD
|
||||
unit_of_measurement: "%"
|
||||
filters:
|
||||
- multiply: 0.1
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
id: oxilife_ph
|
||||
name: Oxilife pH
|
||||
state_class: measurement
|
||||
icon: mdi:ph
|
||||
address: 0x0102
|
||||
register_type: read
|
||||
value_type: U_WORD
|
||||
accuracy_decimals: 2
|
||||
filters:
|
||||
- multiply: 0.01
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
id: oxilife_redox_level
|
||||
name: Oxilife Redox Level
|
||||
state_class: measurement
|
||||
icon: mdi:atom
|
||||
address: 0x0103
|
||||
register_type: read
|
||||
value_type: U_WORD
|
||||
unit_of_measurement: "mV"
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
id: oxilife_clorine_ppm
|
||||
address: 0x0104
|
||||
register_type: read
|
||||
value_type: U_WORD
|
||||
internal: true
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
id: oxilife_conductivity
|
||||
address: 0x0105
|
||||
register_type: read
|
||||
value_type: U_WORD
|
||||
internal: true
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
id: oxilife_temperature
|
||||
name: Pool Temperatur
|
||||
device_class: TEMPERATURE
|
||||
state_class: measurement
|
||||
address: 0x0106
|
||||
register_type: read
|
||||
value_type: U_WORD
|
||||
unit_of_measurement: "°C"
|
||||
accuracy_decimals: 1
|
||||
filters:
|
||||
- multiply: 0.1
|
||||
# pH status
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife pH Status Alarm
|
||||
id: oxilife_ph_status_alarm
|
||||
address: 0x0107
|
||||
register_type: read
|
||||
value_type: U_WORD
|
||||
bitmask: 0x000F
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Polarization A Time
|
||||
address: 0x0214
|
||||
register_type: read
|
||||
value_type: U_DWORD
|
||||
device_class: DURATION
|
||||
state_class: total_increasing
|
||||
unit_of_measurement: "s"
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Polarization B Time
|
||||
address: 0x0216
|
||||
register_type: read
|
||||
value_type: U_DWORD
|
||||
device_class: DURATION
|
||||
state_class: total_increasing
|
||||
unit_of_measurement: "s"
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Runtime Polarity Changes
|
||||
address: 0x0216
|
||||
register_type: read
|
||||
value_type: U_DWORD
|
||||
state_class: total_increasing
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Relay State
|
||||
id: oxilife_raw_relays
|
||||
address: 0x010E
|
||||
register_type: read
|
||||
value_type: U_WORD
|
||||
|
||||
binary_sensor:
|
||||
# Oxilife
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
id: oxilife_acid_pump
|
||||
name: Oxilife Säure Pumpe
|
||||
device_class: RUNNING
|
||||
address: 0x0107
|
||||
bitmask: 0x1000
|
||||
register_type: read
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
id: oxilife_ph_module_flow_control
|
||||
name: Oxilife pH Flow Control
|
||||
device_class: RUNNING
|
||||
address: 0x0107
|
||||
bitmask: 0x0400
|
||||
register_type: read
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
id: oxilife_hydrolysis_flow
|
||||
name: Oxilife Hydrolysis Flow
|
||||
device_class: RUNNING
|
||||
address: 0x010D
|
||||
bitmask: 0x0008
|
||||
register_type: read
|
||||
#Oxilife relays
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Relay 1 pH
|
||||
address: 0x010E
|
||||
bitmask: 0x0001
|
||||
device_class: POWER
|
||||
register_type: read
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Relay 2 Filtering
|
||||
address: 0x010E
|
||||
bitmask: 0x0010
|
||||
device_class: POWER
|
||||
register_type: read
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Relay 3 Light
|
||||
address: 0x010E
|
||||
bitmask: 0x0004
|
||||
device_class: POWER
|
||||
register_type: read
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Relay 4
|
||||
address: 0x010E
|
||||
bitmask: 0x0008
|
||||
device_class: POWER
|
||||
register_type: read
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Relay Slow Speed
|
||||
address: 0x010E
|
||||
bitmask: 0x0100
|
||||
device_class: POWER
|
||||
register_type: read
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Relay Medium Speed
|
||||
address: 0x010E
|
||||
bitmask: 0x0200
|
||||
device_class: POWER
|
||||
register_type: read
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Relay High Speed
|
||||
address: 0x010E
|
||||
bitmask: 0x0400
|
||||
device_class: POWER
|
||||
register_type: read
|
||||
# Relay board
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: relayboard8_with_inputs
|
||||
name: "garten_relayboard8_input1"
|
||||
register_type: holding
|
||||
address: 0x81
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: relayboard8_with_inputs
|
||||
name: "garten_relayboard8_input2"
|
||||
register_type: holding
|
||||
address: 0x82
|
||||
|
||||
|
||||
switch:
|
||||
- platform: modbus_controller
|
||||
modbus_controller_id: oxilife
|
||||
name: Oxilife Aux Relay
|
||||
register_type: holding
|
||||
address: 0x010E
|
||||
bitmask: 0x0008
|
||||
write_lambda: |-
|
||||
uint16_t previous = id(oxilife_raw_relays).state;
|
||||
ESP_LOGE("main","Previous state to overwrite: = %d", previous);
|
||||
if(x)
|
||||
previous |= 0x0008;
|
||||
else
|
||||
previous &= ~(0x0008);
|
||||
|
||||
ESP_LOGE("main","Previous state overwritten: = %d", previous);
|
||||
|
||||
payload.push_back(0x01); // device address
|
||||
payload.push_back(0x10); // write function
|
||||
payload.push_back((uint8_t)(0x010E >> 8)); // register address high
|
||||
payload.push_back((uint8_t)(0x010E)); // register address low
|
||||
payload.push_back(0x00); // register count high
|
||||
payload.push_back(0x01); // register count low
|
||||
payload.push_back(0x02); // byte count
|
||||
|
||||
payload.push_back((uint8_t)(previous >> 8)); // data high
|
||||
payload.push_back((uint8_t)(previous)); // data low
|
||||
return true;
|
||||
|
||||
# filtration state: 0x0421 0 off, 1 is on
|
||||
# filtration mode: register 0x0411
|
||||
# 0 manual
|
||||
# 1 auto
|
||||
# 2 heating
|
||||
# 3 smart
|
||||
# 4 intelligent
|
||||
# 13 backwash
|
||||
Reference in New Issue
Block a user