[New Binding] Rainforest Eagle 200 local binding

I’m not sure if it helps track down the level at which it’s failing, but I just got an opportunity to try reconfiguring the thing in PaperUI rather than doing a full restart of OH2: I tried reconfiguring both things, and could see the following log entries:

14:40:55.111 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'eagle200:eagle200_bridge:eagle-00a578' has been updated.
14:40:55.112 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'eagle200:eagle200_bridge:eagle-00a578' changed from OFFLINE (CONFIGURATION_ERROR) to ONLINE
14:40:55.116 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'eagle200:eagle200_bridge:eagle-00a578' has been updated.
14:41:31.512 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'eagle200:eagle200_electric_meter:0x00135003007dae51' has been updated.
14:41:37.890 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'eagle200:eagle200_electric_meter:0x00135003007dae51' has been updated.
14:41:39.435 [INFO ] [smarthome.event.ThingUpdatedEvent    ] - Thing 'eagle200:eagle200_electric_meter:0x00135003007dae51' has been updated.
14:41:39.435 [INFO ] [ome.event.ThingStatusInfoChangedEvent] - 'eagle200:eagle200_electric_meter:0x00135003007dae51' changed from OFFLINE (COMMUNICATION_ERROR) to ONLINE

… but beyond that, no luck. However, after a quit and relaunch of OH2, it started reporting again immediately. I regularly check the Rainforest web interface when this is happening to see if it’s reporting, and so far that doesn’t seem to have any impact (and every time but once, when they messed up a firmware update, it has been). The one - and, it seems, only - way to get the binding to start getting data again is to restart OH2 in its entirety.

@captndelta
Thomas, I am having trouble getting any data out of my Eagle. The bridge and meter set up normally, the channels link to the text file versions of the channels, but all of the data in the channels is missing. The TRACE log shows some data:

2018-10-27 19:40:57.319 [TRACE] [.eagle200.handler.Eagle200Connection] - Eagle200 meter query 0x001c6400100756e2: <Device>  <DeviceDetails>    <Name>Power Meter</Name>    <HardwareAddress>0x001c6400100756e2</HardwareAddress>    <NetworkInterface>0xd8d5b9000000ea25</NetworkInterface>    <Protocol>Zigbee</Protocol>    <NetworkAddress>0x0000</NetworkAddress>    <Manufacturer>Generic</Manufacturer>    <ModelId>electric_meter</ModelId>    <LastContact>0x5bd50591</LastContact>    <ConnectionStatus>Connected</ConnectionStatus>  </DeviceDetails>  <Components>    <Component>      <HardwareId></HardwareId>      <FixedId>0</FixedId>      <Name>Main</Name>      <Variables>        <Variable>          <Name>zigbee:InstantaneousDemand</Name>          <Value>1.623000</Value>          <Units>kW</Units>          <Description>Instantaneous Demand</Description>        </Variable>        <Variable>          <Name>zigbee:Multiplier</Name>          <Value>1</Value>          <Units></Units>          <Description>Multiplier applied to demand and summation values</Description>        </Variable>        <Variable>          <Name>zigbee:Divisor</Name>          <Value>10000</Value>          <Units></Units>          <Description>Divisor applied to demand and summation values</Description>        </Variable>        <Variable>          <Name>zigbee:CurrentSummationDelivered</Name>          <Value>174634.714800</Value>          <Units>kWh</Units>          <Description>Summation Delivered to Home</Description>        </Variable>        <Variable>          <Name>zigbee:CurrentSummationReceived</Name>          <Value>0.000000</Value>          <Units>kWh</Units>          <Description>Summation Received from Home</Description>        </Variable>        <Variable>          <Name>zigbee:Price</Name>          <Value>0.110000</Value>          <Units></Units>          <Description>Price of electricity</Description>        </Variable>        <Variable>          <Name>zigbee:TrailingDigits</Name>          <Value>2</Value>          <Units></Units>          <Description>Indicates the number of digits to the right of the decimal point</Description>        </Variable>        <Variable>          <Name>zigbee:RateLabel</Name>          <Value>Set by User</Value>          <Units></Units>          <Description>Active priuce rate label</Description>        </Variable>        <Variable>          <Name>zigbee:Currency</Name>          <Value>USD</Value>          <Units></Units>          <Description>The local unit of currency used in the price field</Description>        </Variable>        <Variable>          <Name>zigbee:PriceTier</Name>          <Value>1</Value>          <Units></Units>          <Description>The current Price Tier</Description>        </Variable>        <Variable>          <Name>zigbee:PriceStartTime</Name>          <Value>Fri Dec 31 23:59:59 1999</Value>          <Units></Units>          <Description>The time at which the price signal becomes valid</Description>        </Variable>        <Variable>          <Name>zigbee:PriceDuration</Name>          <Value>-1</Value>          <Units>min</Units>          <Description>Amount of time in minutes after the Start Time during which the price signal is valid</Description>        </Variable>        <Variable>          <Name>zigbee:Message</Name>          <Value></Value>          <Units></Units>          <Description>Message from utility to customer</Description>        </Variable>        <Variable>          <Name>zigbee:MessageId</Name>          <Value></Value>          <Units></Units>          <Description>Message unique ID</Description>        </Variable>        <Variable>          <Name>zigbee:MessageStartTime</Name>          <Value></Value>          <Units></Units>          <Description>Start time for current message</Description>        </Variable>        <Variable>          <Name>zigbee:MessageDurationInMinutes</Name>          <Value></Value>          <Units>min</Units>          <Description>Start time for current message</Description>        </Variable>        <Variable>          <Name>zigbee:MessagePriority</Name>          <Value></Value>          <Units></Units>          <Description>Message priority</Description>        </Variable>        <Variable>          <Name>zigbee:MessageConfirmationRequired</Name>          <Value>N</Value>          <Units></Units>          <Description>Indicates if the message requires user confirmation</Description>        </Variable>        <Variable>          <Name>zigbee:MessageConfirmed</Name>          <Value>N</Value>          <Units></Units>          <Description>Indicates if the message has received user confirmation</Description>        </Variable>        <Variable>          <Name>zigbee:BlockPeriodNumberOfBlocks</Name>          <Value>0</Value>          <Units></Units>          <Description></Description>        </Variable>        <Variable>          <Name>zigbee:BlockPeriodConsumption</Name>          <Value>0.000000</Value>          <Units>kWh</Units>          <Description>The most recent summed value of Energy, Gas or Water delivered and consumed in the premises during the Block Tariff Period</Description>        </Variable>        <Variable>          <Name>zigbee:Block1Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block2Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block3Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block4Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block5Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block6Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block7Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block8Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block1Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block2Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block3Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block4Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block5Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block6Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block7Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block8Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:BlockPeriodStart</Name>          <Value>946684800</Value>          <Units></Units>          <Description>The start time of the current block tariff period</Description>        </Variable>        <Variable>          <Name>zigbee:BlockPeriodDuration</Name>          <Value>0</Value>          <Units>min</Units>          <Description>The current block tariff period duration in minutes</Description>        </Variable>        <Variable>          <Name>zigbee:BlockThresholdMultiplier</Name>          <Value>1</Value>          <Units></Units>          <Description>Provides a value to be multiplied against Threshold attributes</Description>        </Variable>        <Variable>          <Name>zigbee:BlockThresholdDivisor</Name>          <Value>1</Value>          <Units></Units>          <Description>Provides a value to divide the result of applying the threshold multiplier attribute to Block Threshold values</Description>        </Variable>        <Variable>          <Name>zigbee:BillingPeriodStart</Name>          <Value>1525629953</Value>          <Units></Units>          <Description>The start time of the current billing period</Description>        </Variable>        <Variable>          <Name>zigbee:BillingPeriodDuration</Name>          <Value>61933702</Value>          <Units>min</Units>          <Description>The current billing period duration in minutes</Description>        </Variable>      </Variables>    </Component>  </Components></Device>

Is this an error with the binding or my set up?

Unless there is more in the logs that indicates an error, the log message you posted is normal. I formatted it:

<Device>
    <DeviceDetails>
        <Name>Power Meter</Name>
        <HardwareAddress>0x001c6400100756e2</HardwareAddress>
        <NetworkInterface>0xd8d5b9000000ea25</NetworkInterface>
        <Protocol>Zigbee</Protocol>
        <NetworkAddress>0x0000</NetworkAddress>
        <Manufacturer>Generic</Manufacturer>
        <ModelId>electric_meter</ModelId>
        <LastContact>0x5bd50591</LastContact>
        <ConnectionStatus>Connected</ConnectionStatus>
    </DeviceDetails>
    <Components>
        <Component>
            <HardwareId></HardwareId>
            <FixedId>0</FixedId>
            <Name>Main</Name>
            <Variables>
                <Variable>
                    <Name>zigbee:InstantaneousDemand</Name>
                    <Value>1.623000</Value>
                    <Units>kW</Units>
                    <Description>Instantaneous Demand</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Multiplier</Name>
                    <Value>1</Value>
                    <Units></Units>
                    <Description>Multiplier applied to demand and summation values</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Divisor</Name>
                    <Value>10000</Value>
                    <Units></Units>
                    <Description>Divisor applied to demand and summation values</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:CurrentSummationDelivered</Name>
                    <Value>174634.714800</Value>
                    <Units>kWh</Units>
                    <Description>Summation Delivered to Home</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:CurrentSummationReceived</Name>
                    <Value>0.000000</Value>
                    <Units>kWh</Units>
                    <Description>Summation Received from Home</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Price</Name>
                    <Value>0.110000</Value>
                    <Units></Units>
                    <Description>Price of electricity</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:TrailingDigits</Name>
                    <Value>2</Value>
                    <Units></Units>
                    <Description>Indicates the number of digits to the right of the decimal point</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:RateLabel</Name>
                    <Value>Set by User</Value>
                    <Units></Units>
                    <Description>Active priuce rate label</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Currency</Name>
                    <Value>USD</Value>
                    <Units></Units>
                    <Description>The local unit of currency used in the price field</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:PriceTier</Name>
                    <Value>1</Value>
                    <Units></Units>
                    <Description>The current Price Tier</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:PriceStartTime</Name>
                    <Value>Fri Dec 31 23:59:59 1999</Value>
                    <Units></Units>
                    <Description>The time at which the price signal becomes valid</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:PriceDuration</Name>
                    <Value>-1</Value>
                    <Units>min</Units>
                    <Description>Amount of time in minutes after the Start Time during which the price signal is valid</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Message</Name>
                    <Value></Value>
                    <Units></Units>
                    <Description>Message from utility to customer</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:MessageId</Name>
                    <Value></Value>
                    <Units></Units>
                    <Description>Message unique ID</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:MessageStartTime</Name>
                    <Value></Value>
                    <Units></Units>
                    <Description>Start time for current message</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:MessageDurationInMinutes</Name>
                    <Value></Value>
                    <Units>min</Units>
                    <Description>Start time for current message</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:MessagePriority</Name>
                    <Value></Value>
                    <Units></Units>
                    <Description>Message priority</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:MessageConfirmationRequired</Name>
                    <Value>N</Value>
                    <Units></Units>
                    <Description>Indicates if the message requires user confirmation</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:MessageConfirmed</Name>
                    <Value>N</Value>
                    <Units></Units>
                    <Description>Indicates if the message has received user confirmation</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:BlockPeriodNumberOfBlocks</Name>
                    <Value>0</Value>
                    <Units></Units>
                    <Description></Description>
                </Variable>
                <Variable>
                    <Name>zigbee:BlockPeriodConsumption</Name>
                    <Value>0.000000</Value>
                    <Units>kWh</Units>
                    <Description>The most recent summed value of Energy, Gas or Water delivered and consumed in the premises during the Block Tariff Period</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block1Price</Name>
                    <Value></Value>
                    <Units>USD/kWh</Units>
                    <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block2Price</Name>
                    <Value></Value>
                    <Units>USD/kWh</Units>
                    <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block3Price</Name>
                    <Value></Value>
                    <Units>USD/kWh</Units>
                    <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block4Price</Name>
                    <Value></Value>
                    <Units>USD/kWh</Units>
                    <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block5Price</Name>
                    <Value></Value>
                    <Units>USD/kWh</Units>
                    <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block6Price</Name>
                    <Value></Value>
                    <Units>USD/kWh</Units>
                    <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block7Price</Name>
                    <Value></Value>
                    <Units>USD/kWh</Units>
                    <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block8Price</Name>
                    <Value></Value>
                    <Units>USD/kWh</Units>
                    <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block1Threshold</Name>
                    <Value></Value>
                    <Units>kWh</Units>
                    <Description>the block threshold values for a given period (typically the billing cycle)</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block2Threshold</Name>
                    <Value></Value>
                    <Units>kWh</Units>
                    <Description>the block threshold values for a given period (typically the billing cycle)</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block3Threshold</Name>
                    <Value></Value>
                    <Units>kWh</Units>
                    <Description>the block threshold values for a given period (typically the billing cycle)</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block4Threshold</Name>
                    <Value></Value>
                    <Units>kWh</Units>
                    <Description>the block threshold values for a given period (typically the billing cycle)</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block5Threshold</Name>
                    <Value></Value>
                    <Units>kWh</Units>
                    <Description>the block threshold values for a given period (typically the billing cycle)</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block6Threshold</Name>
                    <Value></Value>
                    <Units>kWh</Units>
                    <Description>the block threshold values for a given period (typically the billing cycle)</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block7Threshold</Name>
                    <Value></Value>
                    <Units>kWh</Units>
                    <Description>the block threshold values for a given period (typically the billing cycle)</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:Block8Threshold</Name>
                    <Value></Value>
                    <Units>kWh</Units>
                    <Description>the block threshold values for a given period (typically the billing cycle)</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:BlockPeriodStart</Name>
                    <Value>946684800</Value>
                    <Units></Units>
                    <Description>The start time of the current block tariff period</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:BlockPeriodDuration</Name>
                    <Value>0</Value>
                    <Units>min</Units>
                    <Description>The current block tariff period duration in minutes</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:BlockThresholdMultiplier</Name>
                    <Value>1</Value>
                    <Units></Units>
                    <Description>Provides a value to be multiplied against Threshold attributes</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:BlockThresholdDivisor</Name>
                    <Value>1</Value>
                    <Units></Units>
                    <Description>Provides a value to divide the result of applying the threshold multiplier attribute to Block Threshold values</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:BillingPeriodStart</Name>
                    <Value>1525629953</Value>
                    <Units></Units>
                    <Description>The start time of the current billing period</Description>
                </Variable>
                <Variable>
                    <Name>zigbee:BillingPeriodDuration</Name>
                    <Value>61933702</Value>
                    <Units>min</Units>
                    <Description>The current billing period duration in minutes</Description>
                </Variable>
            </Variables>
        </Component>
    </Components>
</Device>

If there is a error message in the following log, please post it. If there isn’t, perhaps the problem is caused by the way the channel is linked?

BTW, all values that are inside the “Variable” tags become (meter) channels.

Cheers,
-Th

@captndelta
Thank you for looking at this, Thomas. Yes, the trace data looked normal to me as well. I’m not getting any errors, just blank channels, both the Paper UI and my text file channels in the Basic UI.

Hi Steve,
I’m very sorry about the tardy reply, I read your post while traveling but was unable to respond at the time, and then simply forgot to check back. Did you ever figure why there’s no channel updates?

Cheers,
-Th

No worries, Thomas. I appreciate the follow up.

I have not got this working yet. In fact I’ve had to remove the binding because it was crashing my OH instance for some reason. I also am resetting up my Eagle. It seems as though Rainforest updated the software and I lost my connection with my meter.

When I get my Eagle reconnected to my meter, I’ll try again and provide the errors I was seeing before my system locked up. Since removing the binding, OH has been stable.

@captndelta
Hi Thomas,

I was finally able to get my Eagle re-added working. I still have blank channels. I added a trace to the binding. Here is the output:

2018-12-08 20:41:27.970 [TRACE] [e200.discovery.EagleDiscoveryService] - Scanning for energy meters

2018-12-08 20:41:28.195 [TRACE] [.eagle200.handler.Eagle200Connection] - Eagle200 meter HW address: <DeviceList>  <Device>    <HardwareAddress>0x001c6400100756e2</HardwareAddress>    <Manufacturer>Generic</Manufacturer>    <ModelId>electric_meter</ModelId>    <Protocol>Zigbee</Protocol>    <LastContact>0x5c0c80d0</LastContact>    <ConnectionStatus>Connected</ConnectionStatus>    <NetworkAddress>0x0000</NetworkAddress>  </Device></DeviceList>

2018-12-08 20:41:28.197 [TRACE] [e200.discovery.EagleDiscoveryService] - Bridge eagle200:eagle200_bridge:e2f61bfb for device eagle200:eagle200_electric_meter:0x001c6400100756e2 is in state ONLINE, scan count 76

2018-12-08 20:41:33.670 [TRACE] [.eagle200.handler.Eagle200Connection] - Eagle200 meter query 0x001c6400100756e2: <Device>  <DeviceDetails>    <Name>Power Meter</Name>    <HardwareAddress>0x001c6400100756e2</HardwareAddress>    <NetworkInterface>0xd8d5b9000000ea25</NetworkInterface>    <Protocol>Zigbee</Protocol>    <NetworkAddress>0x0000</NetworkAddress>    <Manufacturer>Generic</Manufacturer>    <ModelId>electric_meter</ModelId>    <LastContact>0x5c0c80d9</LastContact>    <ConnectionStatus>Connected</ConnectionStatus>  </DeviceDetails>  <Components>    <Component>      <HardwareId></HardwareId>      <FixedId>0</FixedId>      <Name>Main</Name>      <Variables>        <Variable>          <Name>zigbee:InstantaneousDemand</Name>          <Value>2.231000</Value>          <Units>kW</Units>          <Description>Instantaneous Demand</Description>        </Variable>        <Variable>          <Name>zigbee:Multiplier</Name>          <Value>1</Value>          <Units></Units>          <Description>Multiplier applied to demand and summation values</Description>        </Variable>        <Variable>          <Name>zigbee:Divisor</Name>          <Value>10000</Value>          <Units></Units>          <Description>Divisor applied to demand and summation values</Description>        </Variable>        <Variable>          <Name>zigbee:CurrentSummationDelivered</Name>          <Value>176896.840800</Value>          <Units>kWh</Units>          <Description>Summation Delivered to Home</Description>        </Variable>        <Variable>          <Name>zigbee:CurrentSummationReceived</Name>          <Value>0.000000</Value>          <Units>kWh</Units>          <Description>Summation Received from Home</Description>        </Variable>        <Variable>          <Name>zigbee:Price</Name>          <Value>0.000000</Value>          <Units></Units>          <Description>Price of electricity</Description>        </Variable>        <Variable>          <Name>zigbee:TrailingDigits</Name>          <Value>255</Value>          <Units></Units>          <Description>Indicates the number of digits to the right of the decimal point</Description>        </Variable>        <Variable>          <Name>zigbee:RateLabel</Name>          <Value></Value>          <Units></Units>          <Description>Active priuce rate label</Description>        </Variable>        <Variable>          <Name>zigbee:Currency</Name>          <Value>USD</Value>          <Units></Units>          <Description>The local unit of currency used in the price field</Description>        </Variable>        <Variable>          <Name>zigbee:PriceTier</Name>          <Value>0</Value>          <Units></Units>          <Description>The current Price Tier</Description>        </Variable>        <Variable>          <Name>zigbee:PriceStartTime</Name>          <Value>Sat Jan  1 00:00:00 2000</Value>          <Units></Units>          <Description>The time at which the price signal becomes valid</Description>        </Variable>        <Variable>          <Name>zigbee:PriceDuration</Name>          <Value>0</Value>          <Units>min</Units>          <Description>Amount of time in minutes after the Start Time during which the price signal is valid</Description>        </Variable>        <Variable>          <Name>zigbee:Message</Name>          <Value></Value>          <Units></Units>          <Description>Message from utility to customer</Description>        </Variable>        <Variable>          <Name>zigbee:MessageId</Name>          <Value></Value>          <Units></Units>          <Description>Message unique ID</Description>        </Variable>        <Variable>          <Name>zigbee:MessageStartTime</Name>          <Value></Value>          <Units></Units>          <Description>Start time for current message</Description>        </Variable>        <Variable>          <Name>zigbee:MessageDurationInMinutes</Name>          <Value></Value>          <Units>min</Units>          <Description>Start time for current message</Description>        </Variable>        <Variable>          <Name>zigbee:MessagePriority</Name>          <Value></Value>          <Units></Units>          <Description>Message priority</Description>        </Variable>        <Variable>          <Name>zigbee:MessageConfirmationRequired</Name>          <Value>N</Value>          <Units></Units>          <Description>Indicates if the message requires user confirmation</Description>        </Variable>        <Variable>          <Name>zigbee:MessageConfirmed</Name>          <Value>N</Value>          <Units></Units>          <Description>Indicates if the message has received user confirmation</Description>        </Variable>        <Variable>          <Name>zigbee:BlockPeriodNumberOfBlocks</Name>          <Value>0</Value>          <Units></Units>          <Description></Description>        </Variable>        <Variable>          <Name>zigbee:BlockPeriodConsumption</Name>          <Value>0.000000</Value>          <Units>kWh</Units>          <Description>The most recent summed value of Energy, Gas or Water delivered and consumed in the premises during the Block Tariff Period</Description>        </Variable>        <Variable>          <Name>zigbee:Block1Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block2Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block3Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block4Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block5Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block6Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block7Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block8Price</Name>          <Value></Value>          <Units>USD/kWh</Units>          <Description>The price of Energy, Gas, or Water delivered to the premises at a specific price tier</Description>        </Variable>        <Variable>          <Name>zigbee:Block1Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block2Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block3Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block4Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block5Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block6Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block7Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:Block8Threshold</Name>          <Value></Value>          <Units>kWh</Units>          <Description>the block threshold values for a given period (typically the billing cycle)</Description>        </Variable>        <Variable>          <Name>zigbee:BlockPeriodStart</Name>          <Value>946684800</Value>          <Units></Units>          <Description>The start time of the current block tariff period</Description>        </Variable>        <Variable>          <Name>zigbee:BlockPeriodDuration</Name>          <Value>0</Value>          <Units>min</Units>          <Description>The current block tariff period duration in minutes</Description>        </Variable>        <Variable>          <Name>zigbee:BlockThresholdMultiplier</Name>          <Value>1</Value>          <Units></Units>          <Description>Provides a value to be multiplied against Threshold attributes</Description>        </Variable>        <Variable>          <Name>zigbee:BlockThresholdDivisor</Name>          <Value>1</Value>          <Units></Units>          <Description>Provides a value to divide the result of applying the threshold multiplier attribute to Block Threshold values</Description>        </Variable>        <Variable>          <Name>zigbee:BillingPeriodStart</Name>          <Value>1544319944</Value>          <Units></Units>          <Description>The start time of the current billing period</Description>        </Variable>        <Variable>          <Name>zigbee:BillingPeriodDuration</Name>          <Value>61622202</Value>          <Units>min</Units>          <Description>The current billing period duration in minutes</Description>        </Variable>      </Variables>    </Component>  </Components></Device>


Any idea why I’m not getting any data in OH?

Thank you!
Steve

@captndelta
Can you offer me any advice? The binding is finding my meter and capturing data but no data shows in the binding fields. When you first posted this binding, you did have to make a change due to a difference in how my provider was publishing meter data. [New Binding] Rainforest Eagle 200 local binding

Could that issue be related now?

Sorry, late reply. I checked the XML from the meter you posted, and it looks good, so it’s not the same ‘malformed xml’ problem that you linked to.

One thing I noticed (and I think I posted that here somewhere) is that b/c this binding creates channels dynamically based on what it finds in the xml, the paper UI linking mechanism doesn’t work for those channels - the channels don’t update. I’m not sure why that is, I haven’t found a smoking gun yet.

It works (for me) when I link the binding channel to the item in the .items file like:

Number PowerInstantDemand               "Eagle Power Demand Channel"            (gEnergy, gEnergyCurrent) {channel="eagle200:eagle200_electric_meter:0x00123456789123456:InstantaneousDemand"}

Could that be the problem?

Cheers,
-Th

It seems my channels are all linking to my .items file okay.

My .items:

String BillingPeriodDuration "Billing Period Duration" <energy> (EnergyUsage) {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:BillingPeriodDuration"}
String BillingPeriodStart "Billing Period Start" <energy> (EnergyUsage) {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:BillingPeriodStart"}
String Block1Price "Block 1 Price" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block1Price"}
String Block1Threshold "Block 1 Threshold" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block1Threshold"}
String Block2Price "Block 2 Price" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block2Price"}
String Block2Threshold "Block 2 Threshold" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block2Threshold"}
String Block3Price "Block 3 Price" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block3Price"}
String Block3Threshold "Block 3 Threshold" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block3Threshold"}
String Block4Price "Block 4 Price" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block4Price"}
String Block4Threshold "Block 4 Threshold" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block4Threshold"}
String Block5Price "Block 5 Price" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block5Price"}
String Block5Threshold "Block 5 Threshold" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block5Threshold"}
String Block6Price "Block 6 Price" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block6Price"}
String Block6Threshold "Block 6 Threshold" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block6Threshold"}
String Block7Price "Block 7 Price" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block7Price"}
String Block7Threshold "Block 7 Threshold" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block7Threshold"}
String Block8Price "Block 8 Price" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block8Price"}
String Block8Threshold "Block 8 Threshold" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Block8Threshold"}
String BlockPeriodConsumption "Block Period Consumption" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:BlockPeriodConsumption"}
String BlockPeriodDuration "Block Period Duration" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:BlockPeriodDuration"}
String BlockPeriodNumberOfBlocks "Block Period Number Of Blocks" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:BlockPeriodNumberOfBlocks"}
String BlockPeriodStart "Block Period Start" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:BlockPeriodStart"}
String BlockThresholdDivisor "Block Threshold Divisor" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:BlockThresholdDivisor"}
String BlockThresholdMultiplier "Block Threshol dMultiplier" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:BlockThresholdMultiplier"}
String Currency "Currency" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Currency"}
String CurrentSummationDelivered "Current Summation Delivered" <energy> (EnergyUsage) {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:CurrentSummationDelivered"}
String CurrentSummationReceived "Current Summation Received" <energy> (EnergyUsage) {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:CurrentSummationReceived"}
String Divisor "Divisor" <energy> (EnergyUsage) {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Divisor"}
String InstantaneousDemand "Instantaneous Demand" <energy> (EnergyUsage) {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:InstantaneousDemand"}
String Message "Message" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Message"}
String MessageConfirmationRequired "Message Confirmation Required" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:MessageConfirmationRequired"}
String MessageConfirmed "Message Confirmed" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:MessageConfirmed"}
String MessageDurationInMinutes "Message Duration In Minutes" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:MessageDurationInMinutes"}
String MessageId "MessageId" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:MessageId"}
String MessagePriority "Message Priority" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:MessagePriority"}
String MessageStartTime "Message Start Time" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:MessageStartTime"}
String Multiplier "Multiplier" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Multiplier"}
String Price "Price" <energy> (EnergyUsage) {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:Price"}
String PriceDuration "Price Duration" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:PriceDuration"}
String PriceStartTime "Price Start Time" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:PriceStartTime"}
String PriceTier "Price Tier" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:PriceTier"}
String RateLabel "Rate Label" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:RateLabel"}
String TrailingDigits "Trailing Digits" <energy> {channel="eagle200:eagle200_electric_meter:0x001c6400100756e2:TrailingDigits"}

The result in the Paper UI (no data shown):

My Sitemap output:

At some period of time after initially finding the meter, the PaperUI things file will no longer show any of the items anymore.

Humm, that’s interesting, it doesn’t show any meter channels for me in paper ui:

Also, I noticed you mapped those values to String items, I mapped them to Number.

You’re sure you only have one instance of the binding running (you can check that in the karaff console via “list”), correct?

Can you try to:

  1. remove the meter thing, and
  2. the items from the .items file, and any residue from the paper UI, (you can backup your items somewhere else in the meantime)
  3. restart openhab,
  4. assure that there is nothing left from the old meter in paper UI (no things, no items), then
  5. rediscover the meter thing, and
  6. only assign the “InstantaneousDemand” to a Number item via the .items file

and see if that changes anything? Since you’re seeing the xml updates, the problem here is somewhere inside OpenHAB and how it hooks up to the binding (which is pretty pre-determined by the OHAB framework).

What puzzles me is that you see the meter channels in paper UI, and I don’t - and which hints to me that you may have a “double linkage” via paper ui’s mechanism and the .items file.

While in karaff, you may also wanna set the binding logging to ‘trace’, perhaps that offers more clues to what’s going on.

Cheers,
-Th

Great suggestions, @captndelta! Thank you!

I started with the most obvious which was updating my .items file by changing select items to “number” vs. “string” type fields and I now have several of the data fields back in the Paper UI. Most importantly the current meter and instant meter data fields are now showing data.

I guess I didn’t realize the dependency/correlation of the .items file to the PaperUI.

For the record, I only see all of the data elements in the PaperUI for my meter for a short period of time after a reset/reinstall. Typically, I don’t see all of the fields either.

Hi there! I picked up an Eagle-200 of my own, and have it plugged into the network, but openhab doesn’t seem to find it.

All I know about the Eagle 200 is that it got an IP address. If I go to that IP in a browser, I’m asked for an HTTP password, which I don’t know.

I installed the latest binding from the releases link, 0.0.7. It’s in the addons directory, and karaf bundle:list shows it as active.

On further work, I found some log entries:

22:22:33.515 [DEBUG] [org.openhab.binding.eagle200         ] - ServiceEvent REGISTERED - {org.eclipse.smarthome.config.discovery.mdns.MDNSDiscoveryParticipant}={service.id=390, service.bundleid=231, service.scope=bundle, component.name=org.openhab.binding.eagle200.discovery.Eagle200DiscoveryParticipant, component.id=258} - org.openhab.binding.eagle200
22:22:33.533 [DEBUG] [org.openhab.binding.eagle200         ] - ServiceEvent REGISTERED - {org.eclipse.smarthome.core.thing.binding.ThingHandlerFactory}={service.id=391, service.bundleid=231, service.scope=bundle, component.name=org.openhab.binding.eagle200.internal.Eagle200HandlerFactory, component.id=259} - org.openhab.binding.eagle200
22:22:33.553 [DEBUG] [org.openhab.binding.eagle200         ] - BundleEvent STARTING - org.openhab.binding.eagle200
22:22:33.561 [DEBUG] [org.openhab.binding.eagle200         ] - BundleEvent STARTED - org.openhab.binding.eagle200


22:37:05.090 [DEBUG] [org.eclipse.jetty.server.HttpChannel ] - REQUEST for //mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan on HttpChannelOverHttp@fcef3c{r=5,c=false,a=IDLE,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan}
POST //mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan HTTP/1.1
22:37:05.093 [DEBUG] [g.eclipse.jetty.server.HttpConnection] - HttpConnection@6941ed[SelectChannelEndPoint@14a0ea2{/192.168.0.53:65256<->8080,Open,in,out,-,-,80/30000,HttpConnection@6941ed}{io=0/0,kio=0,kro=1}][p=HttpParser{s=CONTENT,0 of 24},g=HttpGenerator@1577edc{s=START},c=HttpChannelOverHttp@fcef3c{r=5,c=false,a=IDLE,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan}] parsed true HttpParser{s=CONTENT,0 of 24}
22:37:05.095 [DEBUG] [org.eclipse.jetty.server.HttpChannel ] - HttpChannelOverHttp@fcef3c{r=5,c=false,a=IDLE,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan} handle //mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan 
22:37:05.100 [DEBUG] [org.eclipse.jetty.server.HttpChannel ] - HttpChannelOverHttp@fcef3c{r=5,c=false,a=DISPATCHED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan} action DISPATCH
22:37:05.102 [DEBUG] [org.eclipse.jetty.server.Server      ] - REQUEST POST /rest/discovery/bindings/eagle200/scan on HttpChannelOverHttp@fcef3c{r=5,c=false,a=DISPATCHED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan}
22:37:05.104 [DEBUG] [pax.web.service.spi.model.ServerModel] - Matching [/rest/discovery/bindings/eagle200/scan]...
22:37:05.106 [DEBUG] [pax.web.service.spi.model.ServerModel] - Path [/rest/discovery/bindings/eagle200/scan] matched to {pattern=/rest/.*,model=ServletModel{id=org.ops4j.pax.web.service.spi.model.ServletModel-6,name=org.ops4j.pax.web.service.spi.model.ServletModel-6,urlPatterns=[/rest/*],alias=/rest,servlet=com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge@17d42fa,initParams={},context=ContextModel{id=org.ops4j.pax.web.service.spi.model.ContextModel-5,name=,httpContext=DefaultHttpContext [bundle=com.eclipsesource.jaxrs.publisher_5.3.1.201602281253 [15], contextID=default],contextParams={},virtualHosts={},connectors={}}}}
22:37:05.108 [DEBUG] [e.jetty.server.handler.ContextHandler] - scope null||/rest/discovery/bindings/eagle200/scan @ HttpServiceContext{httpContext=DefaultHttpContext [bundle=com.eclipsesource.jaxrs.publisher_5.3.1.201602281253 [15], contextID=default]}
22:37:05.110 [DEBUG] [e.jetty.server.handler.ContextHandler] - context=||/rest/discovery/bindings/eagle200/scan @ HttpServiceContext{httpContext=DefaultHttpContext [bundle=com.eclipsesource.jaxrs.publisher_5.3.1.201602281253 [15], contextID=default]}
22:37:05.117 [DEBUG] [.eclipse.jetty.servlet.ServletHandler] - servlet |/rest|/discovery/bindings/eagle200/scan -> org.ops4j.pax.web.service.spi.model.ServletModel-6@378be0fe==com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge,jsp=null,order=-1,inst=true
22:37:05.119 [DEBUG] [ice.jetty.internal.HttpServiceContext] - Handling request for [/rest/discovery/bindings/eagle200/scan] using http context [DefaultHttpContext [bundle=com.eclipsesource.jaxrs.publisher_5.3.1.201602281253 [15], contextID=default]]
22:37:05.140 [DEBUG] [org.eclipse.jetty.server.HttpChannel ] - COMMIT for /rest/discovery/bindings/eagle200/scan on HttpChannelOverHttp@fcef3c{r=5,c=true,a=DISPATCHED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan}
22:37:05.163 [DEBUG] [org.eclipse.jetty.server.Server      ] - handled=true async=false committed=true on HttpChannelOverHttp@fcef3c{r=5,c=true,a=DISPATCHED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan}
22:37:05.167 [DEBUG] [org.eclipse.jetty.server.HttpChannel ] - HttpChannelOverHttp@fcef3c{r=5,c=true,a=COMPLETING,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan} action COMPLETE
22:37:05.170 [DEBUG] [org.eclipse.jetty.server.HttpChannel ] - COMPLETE for /rest/discovery/bindings/eagle200/scan written=1
22:37:05.173 [DEBUG] [g.eclipse.jetty.server.HttpConnection] - unconsumed input HttpConnection@6941ed[SelectChannelEndPoint@14a0ea2{/192.168.0.53:65256<->8080,Open,in,out,-,-,19/30000,HttpConnection@6941ed}{io=0/0,kio=0,kro=1}][p=HttpParser{s=CONTENT,0 of 24},g=HttpGenerator@1577edc{s=END},c=HttpChannelOverHttp@fcef3c{r=5,c=true,a=COMPLETED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan}]
22:37:05.176 [DEBUG] [g.eclipse.jetty.server.HttpConnection] - HttpConnection@6941ed[SelectChannelEndPoint@14a0ea2{/192.168.0.53:65256<->8080,Open,in,out,-,-,22/30000,HttpConnection@6941ed}{io=0/0,kio=0,kro=1}][p=HttpParser{s=CONTENT,0 of 24},g=HttpGenerator@1577edc{s=END},c=HttpChannelOverHttp@fcef3c{r=5,c=true,a=COMPLETED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan}] parse HeapByteBuffer@deebd[p=566,l=590,c=8192,r=24]={POST /rest/discov...uage: en-us\r\n\r\n<<<{"bindingId":"eagle200"}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00} {}
22:37:05.179 [DEBUG] [org.eclipse.jetty.http.HttpParser    ] - parseNext s=CONTENT HeapByteBuffer@deebd[p=566,l=590,c=8192,r=24]={POST /rest/discov...uage: en-us\r\n\r\n<<<{"bindingId":"eagle200"}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
22:37:05.182 [DEBUG] [org.eclipse.jetty.server.HttpChannel ] - HttpChannelOverHttp@fcef3c{r=5,c=true,a=COMPLETED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan} content Content@27b1cb{HeapByteBufferR@1283695[p=566,l=590,c=8192,r=24]={POST /rest/discov...uage: en-us\r\n\r\n<<<{"bindingId":"eagle200"}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}}
22:37:05.184 [DEBUG] [org.eclipse.jetty.server.HttpInput   ] - HttpInputOverHTTP@13e56b9[c=0,q=1,[0]=Content@27b1cb{HeapByteBufferR@1283695[p=566,l=590,c=8192,r=24]={POST /rest/discov...uage: en-us\r\n\r\n<<<{"bindingId":"eagle200"}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}},s=STREAM] addContent Content@27b1cb{HeapByteBufferR@1283695[p=566,l=590,c=8192,r=24]={POST /rest/discov...uage: en-us\r\n\r\n<<<{"bindingId":"eagle200"}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}}
22:37:05.189 [DEBUG] [org.eclipse.jetty.server.HttpChannel ] - HttpChannelOverHttp@fcef3c{r=5,c=true,a=COMPLETED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan} onContentComplete
22:37:05.191 [DEBUG] [org.eclipse.jetty.server.HttpChannel ] - HttpChannelOverHttp@fcef3c{r=5,c=true,a=COMPLETED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan} onRequestComplete
22:37:05.194 [DEBUG] [org.eclipse.jetty.server.HttpInput   ] - HttpInputOverHTTP@13e56b9[c=0,q=2,[0]=Content@27b1cb{HeapByteBufferR@1283695[p=566,l=590,c=8192,r=24]={POST /rest/discov...uage: en-us\r\n\r\n<<<{"bindingId":"eagle200"}>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}},s=STREAM] addContent EOF
22:37:05.197 [DEBUG] [g.eclipse.jetty.server.HttpConnection] - HttpConnection@6941ed[SelectChannelEndPoint@14a0ea2{/192.168.0.53:65256<->8080,Open,in,out,-,-,43/30000,HttpConnection@6941ed}{io=0/0,kio=0,kro=1}][p=HttpParser{s=END,24 of 24},g=HttpGenerator@1577edc{s=END},c=HttpChannelOverHttp@fcef3c{r=5,c=true,a=COMPLETED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan}] parsed false HttpParser{s=END,24 of 24}
22:37:05.200 [DEBUG] [g.eclipse.jetty.server.HttpConnection] - releaseRequestBuffer HttpConnection@6941ed[SelectChannelEndPoint@14a0ea2{/192.168.0.53:65256<->8080,Open,in,out,-,-,46/30000,HttpConnection@6941ed}{io=0/0,kio=0,kro=1}][p=HttpParser{s=END,24 of 24},g=HttpGenerator@1577edc{s=END},c=HttpChannelOverHttp@fcef3c{r=5,c=true,a=COMPLETED,uri=//mastercontrol.geekhaus.stormtiger.org:8080/rest/discovery/bindings/eagle200/scan}]
22:37:14.622 [DEBUG] [le.osgi.LoggingCommandSessionListener] - Executing command: 'log:display --no-color | grep --color=never binding | grep eagle'

It does show in Paper UI as a binding, although it says it supports no things.

Going to the Paper UI Inbox and picking that binding and searching for things looks like things are happening, but nothing in the logs. I tried TRACE level, which was really noisy, and didn’t see anything.

Any suggestion what I might have gotten wrong?

Usually the user name and password are the Cloud ID and the IN from the bottom of the Eagle 200:

image

However, that probably won’t help with the discovery. I think the only thing you can set from the web page is the Wifi.

Is your Eagle reporting to the Rainforest cloud portal?

The Rainforest is plugged into Ethernet, so shouldn’t need any wifi configuration.

I haven’t configured the cloud portal, and was hoping not to. I will if it’s required, or is the only way we can diagnose the discovery.

I don’t think you need to configure the portal - just curious to see if it showed that it is alive. The next thing to try are the curl commands such as this one. For a default set up you should be able to remove the -u user:password. See if you get any response from the device - adjust the IP as needed.

By the way, I’m not the developer - just a user with some experience with these devices and trying to help.

curl  -X POST -i -H "Content-Type: text/xml" -u 'user:password' --data-binary '<Command><Name>device_list</Name></Command>' http://192.168.1.201/cgi-bin/post_manager

Thank you for the help; I do appreciate it.

The username and password was required, but with that it gives a response… of no devices.

> curl -X POST -i -H "Content-Type: text/xml" -u 'user:password' --data-binary '<Command><Name>device_list</Name></Command>' http://192.168.0.61/cgi-bin/post_manager
HTTP/1.1 200 OK
Content-type: text/html
Access-Control-Allow-Origin: http://homebase.rainforestautomation.com:8080
Access-Control-Allow-Headers: Authorization, Content-Type, Accept
Access-Control-Allow-Methods: GET, POST
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 86400
Content-Length: 30
Date: Sat, 26 Jan 2019 23:26:02 GMT
Server: lighttpd/1.4.48

<DeviceList></DeviceList>

I get a reply from the device, but it’s empty; maybe I do have to set it up with the portal. I really didn’t want it sending my data off-site, but if it doesn’t show a device until then it won’t be much use.

I think my next step is to set up the cloud. Foo.

Just occurred to me: you have paired it with your utility, right? Usually you have to contact your utility and get them to provision the meter and your Eagle in order for it to connect. Maybe that’s why it can’t see any devices? Which of the 5 LED’s are on? I think the rightmost one is Zigbee, but I can’t recall if it is lit before the device is paired or not.

I realized the same thing! I found the local API doc and read devicelist was the list of paired meters. Derp!

I jumped over to PG&E’s web site, filled out the form, and it did some magic stuff on their end. PG&E says the connection worked. At first nothing showed, but the device does now show in the output of device_list.

The binding hasn’t noticed it yet, though, and I don’t know why. I restarted Openhab and the binding looks for items, but hasn’t found it yet.

I followed a slightly different path this time, and I think I am unstuck!

I went to the Things and added the Eagle 200 itself. I could fill in the IP address, Install Code, and Cloud ID. Once I had those things, it automatically found the meter, and I now have a bunch of channels.

Yay! It was just pilot error!

Thanks for the help untangling it, John!

Thomas, thanks for sharing this with us, and please consider releasing it to the Openhab marketplace!