# ¶ Device Specific Information

The CoFyBox's glue configuration depends on the type of devices attached to it, which each have their own quirks. This page gives examples and relevant information for different types of device.

## ¶ EmonEVSE

As the name suggests, these are EV chargers. Each has a four character uuid, and broadcasts its MQTT topics on openevse-<uuid>. The uuid may be have been recorded on the PowerShaper Flex Admin page for the box, but the safest way to find it is in Home Assistant, by going to Go to Settings → Devices & Services and clicking on the ‘devices’ link under configuration.yaml in the MQTT tile.
Here's an example glue config file with the placeholder uuid `2b9s`, for a box with no other sensors attached:

    {
        "version": "Example",
        "ingredients": {
            "ev_voltage": {
                "friendly_name": "EV charging supply voltage",
                "topic_in": "openevse-2b9s/voltage",
                "json_template": null
            },
            "ev_charging_current": {
                "friendly_name": "EV charging current",
                "topic_in": "openevse-2b9s/amp",
                "json_template": "{{value / 1000.0}}"
            },
            "ev_charging_energy_consumption": {
                "friendly_name": "EV charging energy consumption total",
                "topic_in": "openevse-2b9s/wh",
                "json_template": null
            }
        },
        "recipes": {
            "ev_voltage_phase_l1": {
                "friendly_name": "EV charging supply voltage",
                "topic_out": "data/devices/ev/voltage_phase_l1",
                "recipe": "{{ev_voltage}}",
                "entity": "ev",
                "channel": "voltage_phase_l1",
                "unit": "V",
                "metricKind": "gauge",
                "metric": "electricVehicleCharging",
                "ignore_after": 300,
                "ignore": false
            },
            "ev_current_l1": {
                "friendly_name": "EV charging current",
                "topic_out": "data/devices/ev/charging_current_l1",
                "recipe": "{{ev_charging_current}}",
                "entity": "ev",
                "channel": "charging_current_l1",
                "unit": "A",
                "metricKind": "gauge",
                "metric": "electricVehicleCharging",
                "ignore_after": 300,
                "ignore": false
            },
            "ev_charging_energy_consumption": {
                "friendly_name": "EV charging energy consumption total",
                "topic_out": "data/devices/ev/total_consumption",
                "recipe": "{{ev_charging_energy_consumption}}",
                "entity": "ev",
                "channel": "total_consumption",
                "unit": "Wh",
                "metricKind": "cumulative",
                "metric": "electricVehicleCharging",
                "ignore_after": 300,
                "ignore": false
            }
        }
    }

Note that currently (as at 20/9/2022) some boxes will have config files listening to MQTT on a topic like `openevse/+/voltage` or similar. These are best deleted, as unfortunately we can't use wildcards in MQTT topics like this.

### ¶ EmonEVSE MQTT information

The EmonEVSE publishes on MQTT every 30 seconds, on the following topics:

Topic | Information | Unit
--- | --- | ---
`openevse-fab0/amp` | Instant charging current | mA
`openevse-fab0/voltage` | Supply voltage | V
`openevse-fab0/pilot` | Pilot current sent to vehicle | A
`openevse-fab0/wh` | Cumulative energy use to date | wh
`openevse-fab0/temp1` | Temperature sensor 1 | °C x 10
`openevse-fab0/temp2` | Temperature sensor 2 | °C x 10
`openevse-fab0/temp3` | Temperature sensor 3 | °C x 10
`openevse-fab0/state` | State 1–Ready, 2-Connected, 3-Charging, 4-Error |
`openevse-fab0/freeram` | WiFi free Ram |
`openevse-fab0/divertmode` | Divert Mode 1–Normal, 2–Eco Divert |
`openevse-fab0/srssi` | ??? - not mentioned in docs I've found |

Presumably the temperature is being multiplied by ten to avoid rounding when using an `int`.
Information taken from OpenEVSE Developers' guide.