Skip to content

Opal (GE) Ice Maker

MrJeems edited this page Feb 12, 2023 · 4 revisions

esp32-ble2mqtt/data/config.json:

{
  "network": {
    "hostname": "BLE2MQTT-Opal",
    "wifi": {
      "ssid": "{ ... }",
      "password": "{ ... }"
    }
  },
  "mqtt": {
    "server": {
      "host": "{ ... }",
      "port": 1883,
      "ssl": false,
      "client_cert": null,
      "client_key": null,
      "server_cert": null,
      "username": "{ ... }",
      "password": "{ ... }",
      "client_id": null
    },
    "publish": {
      "qos": 0,
      "retain": true
    },
    "topics": {
      "prefix": "opal-ice-maker/",
      "get_suffix": "/get",
      "set_suffix": "/set"
    }
  },
  "ble": {
    "whitelist": [
      "D8:28:C9:xx:xx:xx"
    ],
    "services": {
      "whitelist": [
        "3e6763c5-9429-40cc-909e-bebf8c7487be"
      ],
      "definitions": {
        "3e6763c5-9429-40cc-909e-bebf8c7487be": {
          "name": "device-service"
        }
      }
    },
    "characteristics": {
      "definitions": {
        "79994230-4b04-40cd-85c9-02dd1a8d4dd0": {
          "name": "make-ice",
          "types": [
            "uint8"
          ]
        },
        "097a2751-ca0d-432f-87b5-7d2f31e45551": {
          "name": "make-state",
          "types": [
            "uint8"
          ]
        },
        "5bcbf6b1-de80-94b6-0f4b-99fb984707b6": {
          "name": "ice-bin-state",
          "types": [
            "uint8"
          ]
        },
        "37988f00-ea39-4a2d-9983-afad6535c02e": {
          "name": "night-light",
          "types": [
            "uint8"
          ]
        },
        "efe4bd77-0600-47d7-b3f6-dc81af0d9aaf": {
          "name": "cleaning-phase",
          "types": [
            "uint8"
          ]
        }
      }
    }
  }
}

Home Assistant configuration.yaml:

mqtt:
  sensor:
    - name: Opal Ice Maker Connected
      unique_id: ble2mqtt_Opal_Connected
      state_topic: opal-ice-maker/D8:28:C9:xx:xx:xx/Connected
      icon: mdi:bluetooth-connect
  
    - name: Opal Ice Maker Status
      unique_id: ble2mqtt_Opal_Status
      state_topic: opal-ice-maker/D8:28:C9:xx:xx:xx/device-service/make-state
      value_template: >
        {% if value == '1' %}
        Making Ice
        {% elif value == '2' %}
        Add Water
        {% elif value == '3' %}
        Idle
        {% elif value == '4' %}
        Cleaning
        {% else %}
        Off
        {% endif %}
      icon: mdi:gesture-tap-button
  
    - name: Opal Ice Maker Cleaning Status
      unique_id: ble2mqtt_Opal_Cleaning_Status
      state_topic: opal-ice-maker/D8:28:C9:xx:xx:xx/device-service/cleaning-phase
      value_template: >
        {% if value == '1' %}
        Phase 1 of 4
        {% elif value == '2' %}
        Phase 2 of 4
        {% elif value == '3' %}
        Phase 3 of 4
        {% elif value == '4' %}
        Phase 4 of 4
        {% elif value == '5' %}
        Complete
        {% else %}
        Initialized
        {% endif %}
      icon: mdi:blur-linear
  
    - name: Opal Ice Maker Bin
      unique_id: ble2mqtt_Opal_Bin
      state_topic: opal-ice-maker/D8:28:C9:xx:xx:xx/device-service/ice-bin-state
      value_template: "{{ 'Open' if value == '1' else 'Closed'}}"
      icon: mdi:light-switch-off
  
    - name: Opal Ice Maker Night Light
      unique_id: ble2mqtt_Opal_Night_Light
      #Night Light ON is dimmed compared to full brightness.
      state_topic: opal-ice-maker/D8:28:C9:xx:xx:xx/device-service/night-light
      value_template: "{{ 'On' if value == '1' else 'Off'}}"
      icon: mdi:television-ambient-light
  
  switch:
    - name: "Opal Power"
      unique_id: ble2mqtt_Opal_Power_SW
      command_topic: "opal-ice-maker/D8:28:C9:xx:xx:xx/device-service/make-ice/set"
      state_topic: "opal-ice-maker/D8:28:C9:xx:xx:xx/device-service/make-ice"
      payload_on: "1"
      payload_off: "0"
     
    - name: "Opal Night Light"
      unique_id: ble2mqtt_Opal_Night_Light_SW
      command_topic: "opal-ice-maker/D8:28:C9:xx:xx:xx/device-service/night-light/set"
      state_topic: "opal-ice-maker/D8:28:C9:xx:xx:xx/device-service/night-light"
      payload_on: "1"
      payload_off: "0"

There are a number of other characteristics available, but their functions have not yet been determined.

The JSON and YAML will need to have all occurrences of "D8:28:C9:xx:xx:xx" replaced with your OPAL MAC address and replace each { ... } with the relevant information pertaining to your setup.

YAML is updated to be compatible with 2022.12+ Releases of Home Assistant.