[RELEASE] Rainforest Eagle

It's using the uploader API. If the local API is the same it's likely that this driver will work with the new device

1 Like

Hi guys. I can confirm it works and have an Eagle 3 running without issues. The same configuration (per the old Google album link above) applied.

In addition, if anyone else has a 2 meter property I can confirm the Eagle 200 (house meter) and Eagle 3 (garage meter) run on the same C5 hub without any issues. I was able to aggregate the total power to see what my total import/solar exports are between the two buildings as well.

1 Like

@DanaSmetanick Awesome, thanks for the report!

I created an application to push the eagle power metrics to Prometheus, enabling easy visualization in Grafana. The forwarding functionality that @augoisms added works smoothly, and I've shared the project for anyone interested in setting it up. You can find the repository here: Eagle Energy Exporter

1 Like

Finally go this working.
Added Via Package Manager.
And once I finally found the Rainforest Eagle device at the bottom of the Virtual device list things started working.
No to build some rules for this device.

Thanks for making this. I finally migrated from polling my eagle 100 to having it push to this app sometime last year. Worked beautifully for months and months and just stopped reporting in Feb and it fell off my radar.

Tried power cycling everything, that didn't work, so I deleted the device re-initialized everything and I'm back in business now.

The issue that I'm running into now is I'm unable to see summationDelivered in the json output when querying using the maker API to expose Hubitat states. (I use the generic "all") link what should display.

Total summation is being displayed in the Hubitat UI. When I look at the logging the XML being sent from the Eagle has the tag SummationDelivered.

0x000000000d562791

Here is what's returned from the Maker API. Any thoughts on why current summation isn't there? I'm not sure what's changed as my understanding is that neither Maker nor this app have been updated in quite some time.

  {
    "name": "Generic Component Energy Meter",
    "label": "Rainforest2",
    "type": "Rainforest Eagle",
    "id": "26",
    "date": "2025-04-11T20:53:07+0000",
    "model": null,
    "manufacturer": null,
    "room": null,
    "capabilities": [
      "EnergyMeter",
      "PowerMeter",
      "Sensor"
    ],
    "attributes": {
      "price": "0",
      "dataType": "NUMBER",
      "values": null,
      "status": "Connected",
      "costPerHour": "0",
      "power": "1473",
      "cost": "0",
      "energy": "39.413"
    },
    "commands": [
      {
        "command": "resetEnergy"
      }
    ]
  }

@thegazelle If this used to work before, I wonder if Hubitat dropped support for state variables in the Maker API. The docs say this about it:

State Variables (may not appear if device has none) are generally intended only for internal use by the driver and are not of concern for regular use of the device

You may need to convert summationDelivered to an attribute from a state variable. I'm pretty confident this will solve your issue.

I have not tested this but you can try it out:

Rainforest Eagle Driver with summationDelivered changes · GitHub

Thanks for such a quick response. Unfortunately that didn't solve it. The attribute visible in the Maker JSON file but it's value is null. I'll continue poking around.

  {
    "name": "Generic Component Energy Meter",
    "label": "Rainforest2",
    "type": "Rainforest Eagle",
    "id": "26",
    "date": "2025-04-12T20:57:30+0000",
    "model": null,
    "manufacturer": null,
    "room": null,
    "capabilities": [
      "EnergyMeter",
      "PowerMeter",
      "Sensor"
    ],
    "attributes": {
      "summationDelivered": null,
      "dataType": "NUMBER",
      "values": null,
      "energy": "80.177",
      "status": "Connected",
      "price": "0",
      "costPerHour": "0",
      "power": "3022",
      "cost": "0"
    },
    "commands": [
      {
        "command": "resetEnergy"
      }
    ]

@augoisms Took a break from trying to troubleshoot this and the summationDelivered is now reporting is now populating. I didn't change anything since updating with your changes. Not sure if it was a Hubitat issue or something with the Rainforest.

Thanks again for the assistance.

1 Like

I have and Eagle 200 and things seem to be working properly except for an error I continually see in the logs:
dev:302025-08-21 11:20:08.844 PM error java.lang.NumberFormatException: For input string: "x000538" on line 284 (method parse)
dev:302025-08-21 11:20:05.228 PM error java.lang.NumberFormatException: For input string: "4950x" on line 284 (method parse)
dev:302025-08-21 11:20:01.090 PM error java.lang.NumberFormatException: For input string: "80x0008" on line 284 (method parse)
dev:302025-08-21 11:19:59.025 PM warn healthCheck: not healthy
dev:302025-08-21 11:19:57.013 PM error java.lang.NumberFormatException: For input string: "930x000" on line 284 (method parse)
dev:302025-08-21 11:19:54.569 PM error java.lang.NumberFormatException: For input string: "8a30x00" on line 284 (method parse)

These are lines 283-285 in the driver code:
private Integer convertHexToInt(hex) {
return hex ? new BigInteger(hex[2..-1], 16) : 0
}

Is there a fix for that? Btw @augoisms , I REALLY appreciate the work on this!

@user3220 The issue is that the strings being passed into convertHexToInt are not valid hexidecimal strings. I could add a check that just returns zero if the strings are invalid which would resolve the error, but that kind of papers over the issue that the Eagle (or perhaps your meter) is sending invalid data, which I'm not sure how we would solve. I'll try and get that error handling implemented soon.

I had a Rainforest Eagle, Texas utilities no longer support remote display connections. The Power went out here and when it returned that Rainforest Eagle could no longer connect to the smart meter.