diff --git a/oekoboiler.yaml b/oekoboiler.yaml deleted file mode 100644 index 6e263b3..0000000 --- a/oekoboiler.yaml +++ /dev/null @@ -1,632 +0,0 @@ -esphome: - name: oekoboiler-interface - friendly_name: Oekoboiler-Interface - -esp8266: - board: nodemcuv2 - - -# Enable logging -logger: - baud_rate: 0 - -# Enable Home Assistant API -api: - encryption: - key: !secret oekoboiler_encryptionkey - reboot_timeout: 0s - -ota: - - platform: esphome - password: !secret oekoboiler_otapassword - -wifi: - ssid: !secret wifi_ssid - password: !secret wifi_password - power_save_mode: none # Disable power saving - fast_connect: true # Skip scanning, connect faster - reboot_timeout: 0s # Disable auto-reboot on wifi loss - - - # Enable fallback hotspot (captive portal) in case wifi connection fails - ap: - ssid: "Oekoboiler-Interface" - password: !secret oekoboiler_fallbackpassword - -captive_portal: - -#web_server: -# port: 80 - -# UART configuration for Modbus (0-based register addressing) -uart: - id: mod_bus - tx_pin: GPIO1 # D10/TX - rx_pin: GPIO3 # D9/RX - baud_rate: 9600 - stop_bits: 1 - data_bits: 8 - parity: NONE - -# Modbus RTU -modbus: - flow_control_pin: GPIO5 # D1 - DE/RE pin for MAX485 - id: modbus1 - send_wait_time: 200ms - -modbus_controller: - - id: oekoboiler - address: 0x1 - modbus_id: modbus1 - setup_priority: -10 - update_interval: 10s - command_throttle: 200ms - -sensor: - # WiFi Signal - - platform: wifi_signal - name: "WiFi Signal" - update_interval: 60s - - # Uptime - - platform: uptime - name: "Uptime" - update_interval: 60s - - # ======================================== - # INPUT REGISTERS (3x) - Documentation address MINUS 1 - # ======================================== - - # A1 - Water Temperature (30001 -> 0) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Water Temperature" - address: 0 - register_type: read - value_type: S_WORD - unit_of_measurement: "°C" - device_class: temperature - state_class: measurement - accuracy_decimals: 1 - filters: - - multiply: 0.1 - - # A2 - Evaporator Temperature (30002 -> 1) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Evaporator Temperature" - address: 1 - register_type: read - value_type: S_WORD - unit_of_measurement: "°C" - device_class: temperature - state_class: measurement - accuracy_decimals: 1 - filters: - - multiply: 0.1 - - # A4 - Ambient Temperature (30003 -> 2) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Ambient Temperature" - address: 2 - register_type: read - value_type: S_WORD - unit_of_measurement: "°C" - device_class: temperature - state_class: measurement - accuracy_decimals: 1 - filters: - - multiply: 0.1 - - # A3 - Exhaust Temperature (30004 -> 3) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Exhaust Temperature" - address: 3 - register_type: read - value_type: S_WORD - unit_of_measurement: "°C" - device_class: temperature - state_class: measurement - accuracy_decimals: 1 - filters: - - multiply: 0.1 - - # A9 - Return Gas Temperature (30005 -> 4) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Return Gas Temperature" - address: 4 - register_type: read - value_type: S_WORD - unit_of_measurement: "°C" - device_class: temperature - state_class: measurement - accuracy_decimals: 1 - filters: - - multiply: 0.1 - - # ======================================== - # HOLDING REGISTERS (4x) - Read-only values - # ======================================== - - # Controller Status (41102 -> 1101) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Controller Status Raw" - id: controller_status_raw - address: 1101 - register_type: holding - value_type: U_WORD - internal: true - - # Operating Mode (41105 -> 1104) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Mode Raw" - id: mode_raw - address: 1104 - register_type: holding - value_type: U_WORD - internal: true - - # Econ Mode Time Window (41106 -> 1105) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Econ Mode Time Window" - address: 1105 - register_type: holding - value_type: U_WORD - skip_updates: 4 - - # Alarm sensors (41121-41133 -> 1120-1132) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Alarm A1 Sensor" - address: 1120 - register_type: holding - value_type: U_WORD - internal: true - id: alarm_a1 - - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Alarm A2 Sensor" - address: 1121 - register_type: holding - value_type: U_WORD - internal: true - id: alarm_a2 - - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Alarm A3 Sensor" - address: 1122 - register_type: holding - value_type: U_WORD - internal: true - id: alarm_a3 - - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Alarm A6 Sensor" - address: 1125 - register_type: holding - value_type: U_WORD - internal: true - id: alarm_a6 - - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Alarm A5 High Pressure" - address: 1126 - register_type: holding - value_type: U_WORD - internal: true - id: alarm_a5 - - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Alarm A4 Sensor" - address: 1127 - register_type: holding - value_type: U_WORD - internal: true - id: alarm_a4 - - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Water Temp Warning 55C" - address: 1128 - register_type: holding - value_type: U_WORD - internal: true - id: alarm_water_temp - - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Alarm A9 Sensor" - address: 1129 - register_type: holding - value_type: U_WORD - internal: true - id: alarm_a9 - - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Alarm A8 Condensate" - address: 1130 - register_type: holding - value_type: U_WORD - internal: true - id: alarm_a8 - -binary_sensor: - - platform: status - name: "Connection Status" - - # ======================================== - # COILS (0x) - Documentation address MINUS 1 - # ======================================== - - # Compressor (00001 -> 0) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Compressor Running" - address: 1 - register_type: coil - device_class: running - - # Heating Element (00002 -> 1) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Heating Element" - address: 2 - register_type: coil - device_class: heat - - # Fan (00004 -> 3) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Four-Way Valve" - address: 3 - register_type: coil - device_class: running - - # Fan (00004 -> 3) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Fan Running" - address: 4 - register_type: coil - device_class: running - - # ======================================== - # DISCRETE INPUTS (1x) - Documentation address MINUS 1 - # ======================================== - - - # Template binary sensors for alarms - - platform: template - name: "Alarm: A1 Water Temp Sensor" - device_class: problem - lambda: |- - return id(alarm_a1).state != 0; - - - platform: template - name: "Alarm: A2 Evaporator Sensor" - device_class: problem - lambda: |- - return id(alarm_a2).state != 0; - - - platform: template - name: "Alarm: A3 Ambient Sensor" - device_class: problem - lambda: |- - return id(alarm_a3).state != 0; - - - platform: template - name: "Alarm: A6 Heating Element" - device_class: problem - lambda: |- - return id(alarm_a6).state != 0; - - - platform: template - name: "Alarm: A5 High Pressure" - device_class: problem - lambda: |- - return id(alarm_a5).state != 0; - - - platform: template - name: "Alarm: A4 Exhaust Sensor" - device_class: problem - lambda: |- - return id(alarm_a4).state != 0; - - - platform: template - name: "Warning: Water Temperature 55°C" - device_class: problem - lambda: |- - return id(alarm_water_temp).state != 0; - - - platform: template - name: "Alarm: A9 Return Gas Sensor" - device_class: problem - lambda: |- - return id(alarm_a9).state != 0; - - - platform: template - name: "Alarm: A8 Condensate Overflow" - device_class: problem - lambda: |- - return id(alarm_a8).state != 0; - -text_sensor: - - platform: template - name: "Controller Status" - lambda: |- - int status = (int)id(controller_status_raw).state; - switch(status) { - case 0: return {"Power Off"}; - case 1: return {"Standby"}; - case 2: return {"Preheating"}; - case 3: return {"Heating"}; - case 4: return {"Before Defrost"}; - case 5: return {"Defrosting"}; - case 6: return {"After Defrost"}; - case 8: return {"Alarm"}; - default: return {"Unknown (" + to_string(status) + ")"}; - } - - - platform: template - name: "Operating Mode" - lambda: |- - int mode = (int)id(mode_raw).state; - switch(mode) { - case 0: return {"Econ Mode"}; - case 1: return {"Auto Mode"}; - case 2: return {"Heater Mode"}; - default: return {"Unknown (" + to_string(mode) + ")"}; - } - -switch: - # ======================================== - # WRITABLE HOLDING REGISTERS - Switches - # ======================================== - - # PV Mode (40067 -> 66) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "PV Mode" - address: 66 - register_type: holding - bitmask: 1 - entity_category: config - icon: "mdi:solar-power" - - # Heating Element Enable (40015 -> 14) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Heating Element Enable" - address: 14 - register_type: holding - bitmask: 1 - entity_category: config - icon: "mdi:heating-coil" - - # Heating Element for Sterilization (40017 -> 16) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Sterilization Enable" - address: 16 - register_type: holding - bitmask: 1 - entity_category: config - icon: "mdi:bacteria" - - # Heating Element in Econ Mode (40028 -> 27) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Heating Element in Econ Mode" - address: 27 - register_type: holding - bitmask: 1 - entity_category: config - - # Heat Pump in Heater Mode (40029 -> 28) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Heat Pump in Heater Mode" - address: 28 - register_type: holding - bitmask: 1 - entity_category: config - - # Save Status on Power Off (40061 -> 60) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Save Status on Power Off" - address: 60 - register_type: holding - bitmask: 1 - entity_category: config - - # Electronic Anode (40068 -> 67) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Electronic Anode" - address: 67 - register_type: holding - bitmask: 1 - entity_category: config - -number: - # ======================================== - # WRITABLE HOLDING REGISTERS - Numbers - # ======================================== - - # Set Temperature PV (40009 -> 8) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Target Temperature (PV Mode)" - address: 8 - value_type: U_WORD - unit_of_measurement: "°C" - device_class: temperature - min_value: 5 - max_value: 70 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - icon: "mdi:solar-power" - - # Set Temperature Normal (40010 -> 9) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Target Temperature (Normal)" - address: 9 - value_type: U_WORD - unit_of_measurement: "°C" - device_class: temperature - min_value: 5 - max_value: 70 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - - # Set Temperature F62=0 (40011 -> 10) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Target Temperature (F62=0)" - address: 10 - value_type: U_WORD - unit_of_measurement: "°C" - device_class: temperature - min_value: 5 - max_value: 70 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - - # Temperature Delta/Hysteresis (40012 -> 11) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Temperature Hysteresis" - address: 11 - value_type: U_WORD - unit_of_measurement: "°C" - min_value: 1 - max_value: 20 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - icon: "mdi:thermometer-lines" - - # Ambient Temperature Shutdown (40013 -> 12) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Heat Pump Shutdown Temperature" - address: 12 - value_type: S_WORD - unit_of_measurement: "°C" - device_class: temperature - min_value: -10 - max_value: 5 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - - # Maximum Temperature with Heat Pump (40014 -> 13) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Max Temperature Heat Pump" - address: 13 - value_type: U_WORD - unit_of_measurement: "°C" - device_class: temperature - min_value: 20 - max_value: 60 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - - # Ambient Temperature for Heating Element Start (40016 -> 15) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Heating Element Start Temperature" - address: 15 - value_type: U_WORD - unit_of_measurement: "°C" - device_class: temperature - min_value: 10 - max_value: 20 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - - # Sterilization Cycle (40018 -> 17) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Sterilization Cycle Hours" - address: 17 - value_type: U_WORD - unit_of_measurement: "h" - min_value: 1 - max_value: 990 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - icon: "mdi:bacteria" - - # A1 Temperature Sensor Offset (40019 -> 18) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "A1 Sensor Offset" - address: 18 - value_type: S_WORD - unit_of_measurement: "°C" - device_class: temperature - min_value: -5 - max_value: 5 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - - # Compressor Delay (40021 -> 20) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Compressor Delay" - address: 20 - value_type: U_WORD - unit_of_measurement: "min" - min_value: 0 - max_value: 10 - step: 1 - mode: box - use_write_multiple: true - entity_category: config - - # Defrost Start Temperature (40031 -> 30) - - platform: modbus_controller - modbus_controller_id: oekoboiler - name: "Defrost Start Temperature" - address: 30 - value_type: S_WORD - unit_of_measurement: "°C" - device_class: temperature - min_value: -20 - max_value: 20 - step: 1 - mode: box - use_write_multiple: true - entity_category: config diff --git a/test1.yaml b/test1.yaml deleted file mode 100644 index e69de29..0000000