# Loads default set of integrations. Do not remove. default_config: # Load frontend themes from the themes folder frontend: themes: !include_dir_merge_named themes automation: !include automations.yaml script: !include scripts.yaml scene: !include scenes.yaml # ================== DRAGONFLY FULL CONFIG ================== # Relays & Sensors - 4 second polling rest: - resource: http://[YOUR DRAGONFLY IP ADDRESS]/slp/relio/relayreadall scan_interval: 4 sensor: - name: "Dragonfly Relays Raw" unique_id: dragonfly_relays_raw value_template: "{{ value }}" - resource: http://[YOUR DRAGONFLY IP ADDRESS]/slp/relio/sensorreadalldig scan_interval: 4 sensor: - name: "Dragonfly Sensors Raw" unique_id: dragonfly_sensors_raw value_template: "{{ value }}" # ================== CONTROL COMMANDS ================== # Using explicit on/off endpoints instead of toggle (rlchg/2) to ensure # HA can set a relay to a known state rather than blindly toggling. rest_command: dragonfly_relay_on: url: "http://[YOUR DRAGONFLY IP ADDRESS]/slp/relio/rlchg/1/{{ relay }}/1" method: GET dragonfly_relay_off: url: "http://[YOUR DRAGONFLY IP ADDRESS]/slp/relio/rlchg/0/{{ relay }}/1" method: GET # ================== ALL 8 RELAYS ================== template: - switch: - name: "Mini S12 Power Relay R1" unique_id: dragonfly_internal_relay_0 state: >- {% set raw = states('sensor.dragonfly_relays_raw') | default('!relio relayreadall:0#') %} {% set num = raw | regex_findall('relayreadall:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(1)) != 0 }} turn_on: service: rest_command.dragonfly_relay_on data: relay: 0 turn_off: service: rest_command.dragonfly_relay_off data: relay: 0 icon: mdi:toggle-switch-variant - name: "Beelink Power Relay R2" unique_id: dragonfly_internal_relay_1 state: >- {% set raw = states('sensor.dragonfly_relays_raw') | default('!relio relayreadall:0#') %} {% set num = raw | regex_findall('relayreadall:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(2)) != 0 }} turn_on: service: rest_command.dragonfly_relay_on data: relay: 1 turn_off: service: rest_command.dragonfly_relay_off data: relay: 1 icon: mdi:toggle-switch-variant - name: "Unused Relay R3" unique_id: dragonfly_internal_relay_2 state: >- {% set raw = states('sensor.dragonfly_relays_raw') | default('!relio relayreadall:0#') %} {% set num = raw | regex_findall('relayreadall:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(4)) != 0 }} turn_on: service: rest_command.dragonfly_relay_on data: relay: 2 turn_off: service: rest_command.dragonfly_relay_off data: relay: 2 icon: mdi:toggle-switch-variant - name: "AP Power Relay R4" unique_id: dragonfly_internal_relay_3 state: >- {% set raw = states('sensor.dragonfly_relays_raw') | default('!relio relayreadall:0#') %} {% set num = raw | regex_findall('relayreadall:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(8)) != 0 }} turn_on: service: rest_command.dragonfly_relay_on data: relay: 3 turn_off: service: rest_command.dragonfly_relay_off data: relay: 3 icon: mdi:toggle-switch-variant - name: "Mount Power Relay R5" unique_id: dragonfly_internal_relay_4 state: >- {% set raw = states('sensor.dragonfly_relays_raw') | default('!relio relayreadall:0#') %} {% set num = raw | regex_findall('relayreadall:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(16)) != 0 }} turn_on: service: rest_command.dragonfly_relay_on data: relay: 4 turn_off: service: rest_command.dragonfly_relay_off data: relay: 4 icon: mdi:toggle-switch-variant - name: "Inverter On/Off Relay R6" unique_id: dragonfly_internal_relay_5 state: >- {% set raw = states('sensor.dragonfly_relays_raw') | default('!relio relayreadall:0#') %} {% set num = raw | regex_findall('relayreadall:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(32)) != 0 }} turn_on: service: rest_command.dragonfly_relay_on data: relay: 5 turn_off: service: rest_command.dragonfly_relay_off data: relay: 5 icon: mdi:toggle-switch-variant - name: "Roof Open/Close Relay R7" unique_id: dragonfly_internal_relay_6 state: >- {% set raw = states('sensor.dragonfly_relays_raw') | default('!relio relayreadall:0#') %} {% set num = raw | regex_findall('relayreadall:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(64)) != 0 }} turn_on: service: rest_command.dragonfly_relay_on data: relay: 6 turn_off: service: rest_command.dragonfly_relay_off data: relay: 6 icon: mdi:toggle-switch-variant - name: "Unused Relay R8" unique_id: dragonfly_internal_relay_7 state: >- {% set raw = states('sensor.dragonfly_relays_raw') | default('!relio relayreadall:0#') %} {% set num = raw | regex_findall('relayreadall:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(128)) != 0 }} turn_on: service: rest_command.dragonfly_relay_on data: relay: 7 turn_off: service: rest_command.dragonfly_relay_off data: relay: 7 icon: mdi:toggle-switch-variant # ================== ALL 8 DIGITAL SENSORS ================== - binary_sensor: - name: "Roof Open Sensor S1" unique_id: dragonfly_internal_sensor_0 state: >- {% set raw = states('sensor.dragonfly_sensors_raw') | default('!relio sensorreadalldig:0#') %} {% set num = raw | regex_findall('sensorreadalldig:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(1)) != 0 }} device_class: door - name: "Roof Closed Sensor S2" unique_id: dragonfly_internal_sensor_1 state: >- {% set raw = states('sensor.dragonfly_sensors_raw') | default('!relio sensorreadalldig:0#') %} {% set num = raw | regex_findall('sensorreadalldig:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(2)) != 0 }} device_class: door - name: "Mount Parked Sensor S3" unique_id: dragonfly_internal_sensor_2 state: >- {% set raw = states('sensor.dragonfly_sensors_raw') | default('!relio sensorreadalldig:0#') %} {% set num = raw | regex_findall('sensorreadalldig:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(4)) != 0 }} device_class: occupancy - name: "Rain Sensor S4" unique_id: dragonfly_internal_sensor_3 state: >- {% set raw = states('sensor.dragonfly_sensors_raw') | default('!relio sensorreadalldig:0#') %} {% set num = raw | regex_findall('sensorreadalldig:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(8)) != 0 }} device_class: moisture - name: "Roof Button Sensor S5" unique_id: dragonfly_internal_sensor_4 state: >- {% set raw = states('sensor.dragonfly_sensors_raw') | default('!relio sensorreadalldig:0#') %} {% set num = raw | regex_findall('sensorreadalldig:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(16)) != 0 }} - name: "Unused Sensor S6" unique_id: dragonfly_internal_sensor_5 state: >- {% set raw = states('sensor.dragonfly_sensors_raw') | default('!relio sensorreadalldig:0#') %} {% set num = raw | regex_findall('sensorreadalldig:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(32)) != 0 }} - name: "Unused Sensor S7" unique_id: dragonfly_internal_sensor_6 state: >- {% set raw = states('sensor.dragonfly_sensors_raw') | default('!relio sensorreadalldig:0#') %} {% set num = raw | regex_findall('sensorreadalldig:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(64)) != 0 }} - name: "Unused Sensor S8" unique_id: dragonfly_internal_sensor_7 state: >- {% set raw = states('sensor.dragonfly_sensors_raw') | default('!relio sensorreadalldig:0#') %} {% set num = raw | regex_findall('sensorreadalldig:(\d+)') | first | default(0) | int %} {{ (num | bitwise_and(128)) != 0 }}