GreenEye Monitor


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:
        - number: 1
          name: back_porch_temperature

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

Configuration Variables

port

(string)(Required)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.

monitors

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

serial_number

(integer)(Required)The last five digits (omitting leading zeroes) of your GEM serial number.

channels

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

number

(integer)(Required)The channel number as it appears in the GEM UI.

name

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

net_metering

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

Default value: false

temperature_sensors

(Optional)Configuration for temperature sensors

temperature_unit

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

sensors

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

number

(integer)(Required)The sensor number as it appears in the GEM UI.

name

(string)(Required)The name that should be used for this sensor in Home Assistant.

pulse_counters

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

number

(integer)(Required)The pulse counter’s number as it appears in the GEM UI.

name

(string)(Required)The name that should be used for this pulse counter in Home Assistant.

counted_quantity

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

counted_quantity_per_pulse

(float)(Optional)The number of the counted quantity represented by each pulse.

Default value: 1.0

time_unit

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

Default value: s