GreenEye Monitor (GEM)


The GreenEye Monitor (GEM) integration for Home Assistant allows you to create sensors for the various data channels of the GEM. Each current transformer (CT) channel, pulse counter, and temperature sensor appears in Home Assistant as a sensor, and can be used in automations.

Configure your GEM(s) to produce binary-format packets (for example, “Bin32 NET” for a 32-channel GEM with some channels configured for net metering) and send them to an unused port on your Home Assistant machine. (These settings are in the “Packet Send” and “Network” pages of the GEM UI.) Then specify that port and information about your monitor(s) and the data channels you wish to monitor in your configuration.yaml:

# Example configuration.yaml entry
greeneye_monitor:
  port: 8000
  monitors:
    - serial_number: "YOUR_SERIAL_NUMBER"
      channels:
        - number: 1
          name: total_power
        - number: 2
          name: solar_panels_power
          net_metering: true
      pulse_counters:
        - number: 1
          name: sprinklers_water_usage
          counted_quantity: "gal"
          counted_quantity_per_pulse: 1
          time_unit: "min"
      temperature_sensors:
        temperature_unit: "C"
        sensors:
          - number: 1
            name: back_porch_temperature
      voltage:
        - number: 1
          name: house_volts

By default, GEM will send updates every 5 seconds. That’s a lot of data, and the databases used by the recorder integration for history don’t do well with that much data, so it is recommended to configure the influxdb integration and exclude the GEM sensors from recorder.

Configuration Variables

portstringRequired

The port on which Home Assistant should listen for packets from your GEM. Must match the port set in the “Network” tab of the GEM setup UI.

monitorslist(Optional)

The list of monitors that should appear in Home Assistant. Data from other monitors will be ignored.

serial_numberstringRequired

Your 8-digit GEM serial number, as it appears in the UI.

channelslist(Optional)

The list of channels that should appear in Home Assistant for this monitor. Data from other channels will be ignored.

numberintegerRequired

The channel number as it appears in the GEM UI.

namestringRequired

The name that should be used for this channel’s sensor in Home Assistant.

net_meteringboolean(Optional, default: false)

Set to true if the channel is configured for net metering in the GEM, otherwise false.

voltage(Optional)

Configuration for voltage sensor

numberintegerRequired

A channel number that exists in the GEM. There is only one voltage sensor on current models of the GEM.

namestringRequired

The name that should be used for the voltage sensor in Home Assistant.

temperature_sensors(Optional)

Configuration for temperature sensors

temperature_unitstringRequired

The unit of measure to use for the temperature (F or C)

sensorslistRequired

The list of temperature sensors that should appear in Home Assistant for this monitor. Data from other sensors will be ignored.

numberintegerRequired

The sensor number as it appears in the GEM UI.

namestringRequired

The name that should be used for this sensor in Home Assistant.

pulse_counterslist(Optional)

The list of pulse counters that should appear in Home Assistant for this monitor. Data from other pulse counters will be ignored.

numberintegerRequired

The pulse counter’s number as it appears in the GEM UI.

namestringRequired

The name that should be used for this pulse counter in Home Assistant.

counted_quantitystringRequired

The unit being counted by this pulse counter (e.g., gal, L)

counted_quantity_per_pulsefloat(Optional, default: 1.0)

The number of the counted quantity represented by each pulse.

time_unitstring(Optional, default: s)

The time unit to use when computing rates (s, min, or h)