Philio & zipato smart energy meter

The notes say....

v0.3 - released 04/05/16:
Added clamp1 and clamp2 data display, may have to hit configure a few times (wait at least 2 minute each time) to make the top left and right boxes show data from the clamps.

This doesn't showup in the current states ?

The code does show it sends the event for each clamp separately.

def zwaveEvent(hubitat.zwave.commands.multichannelv3.MultiChannelCmdEncap cmd) {
	//This is where the HEM clamp1 and clamp2 (subdevice) report values are defined. Scale(2,5) is in reference to the Aeon Labs HEM Gen5 (subdevice) data for W, and A respectively.
	//Z-Wave Command Class 0x60 (multichannelv3) is necessary to interpret the subdevice data from the HEM clamps.
	//In addition, "cmd.commandClass == 50" and "encapsulatedCommand([0x30: 1, 0x31: 1])" below is necessary to properly receive and inturpret the encasulated subdevice data sent to the SmartThings hub by the HEM.
	//The numbered "command class" references: 50, 0x30v1, and 0x31v1 do not seem to be true Z-Wave Command Classes and any correlation is seemingly coincidental.
	//It should also be noted that without the above, the data received will not be processed here under the 0x60 (multichannelv3) command class and you will see unhandled messages from the HEM along with references to command class 50 as well as Meter Types 33, and 161.
	//sourceEndPoint 1, and 2 are the Clamps 1, and 2.
	def dispValue
	def newValue
	def formattedValue
	def MAX_AMPS = 220
	def MAX_WATTS = 24000
	if (cmd.commandClass == 50) { //50 is likely a manufacturer specific code, Z-Wave specifies this as a "Basic Window Covering" so it's not a true Z-Wave Command Class.   
		def encapsulatedCommand = cmd.encapsulatedCommand([0x30: 1, 0x31: 1]) // The documentation on working with Z-Wave subdevices and the technical specs from Aeon Labs do not explain this adequately, but it's necessary.
	//log.debug ("Command from endpoint ${cmd.sourceEndPoint}: ${encapsulatedCommand}")
		if (encapsulatedCommand) {
			if (cmd.sourceEndPoint == 1) {
				if (encapsulatedCommand.scale == 2 ) {
						newValue = Math.round(encapsulatedCommand.scaledMeterValue)
	                    if (newValue > MAX_WATTS) { return }
						formattedValue = newValue
						dispValue = "${formattedValue}"
						sendEvent(name: "power1", value: dispValue as String, unit: "", descriptionText: "L1 Power: ${formattedValue} Watts")
				}
				if (encapsulatedCommand.scale == 5 ) {
						newValue = Math.round(encapsulatedCommand.scaledMeterValue * 100) / 100
	                    if (newValue > MAX_AMPS) { return }
						formattedValue = String.format("%5.2f", newValue)
						dispValue = "${formattedValue}"
						sendEvent(name: "current1", value: dispValue as String, unit: "", descriptionText: "L1 Current: ${formattedValue} Amps")
				}
			}
			else if (cmd.sourceEndPoint == 2) {
				if (encapsulatedCommand.scale == 2 ) {
						newValue = Math.round(encapsulatedCommand.scaledMeterValue)
	                    if (newValue > MAX_WATTS) { return }
						formattedValue = newValue
						dispValue = "${formattedValue}"
						sendEvent(name: "power2", value: dispValue as String, unit: "", descriptionText: "L2 Power: ${formattedValue} Watts")
				}
				if (encapsulatedCommand.scale == 5 ) {
						newValue = Math.round(encapsulatedCommand.scaledMeterValue * 100) / 100
	                    if (newValue > MAX_AMPS) { return }
						formattedValue = String.format("%5.2f", newValue)
						dispValue = "${formattedValue}"
						sendEvent(name: "current2", value: dispValue as String, unit: "", descriptionText: "L2 Current: ${formattedValue} Amps")
				}
			}
		}
	}
}

No, it doesnt show up.

The device itself is a Philio/Zipato device, not Aeon, although they all look similiar externally. There are some differences under the hood.

This is what shows:

image

Energy is double what the meter says. It's adding clamps 1 and 2 together.
Power is zero, because I'm currently exporting solar.

@anon61068208

How’s your progress on this? I’ve got some free time if you wanna brainstorm :slight_smile: I can start testing and debugging

1 Like

You have the same device Mike has ? All I have done was look at the code so far.

I have the Aeon version of it—which has the same issues, currently. Let me spin up a version here and see if I can replicate what Mike is experiencing.

2 Likes

So what I see is
clamp 1

sendEvent(name: "power1", value: dispValue as String, unit: "", descriptionText: "L1 Power: ${formattedValue} Watts")
sendEvent(name: "current1", value: dispValue as String, unit: "", descriptionText: "L1 Current: ${formattedValue} Amps")

clamp2

sendEvent(name: "power2", value: dispValue as String, unit: "", descriptionText: "L2 Power: ${formattedValue} Watts")
sendEvent(name: "current2", value: dispValue as String, unit: "", descriptionText: "L2 Current: ${formattedValue} Amps")

So you aren't seeing the power1/2 or current1/2

Hi guys,
I have the exact same model as @mike, am using the same driver and am seeing the same data being returned.
Namely...
image
@anon61068208 - to answer your question "So you aren't seeing the power1/2 or current1/2"
Correct, I see no power or current data for 1/2
cheers,

And you guys are using the same driver that Mike posted above ?

Correct. I just copied it from his post above and resaved it to ensure we're on the "same page"

Ok that said.... who wants to give me access to your hub so I can debug this a bit ? I can do it via teamviewer.

no probs. I'll PM the details

1 Like

Did you use a different driver because I see some empty states

yeah, ive tried a few drivers so some of those "variable" things are not relevant , i think

Did you hit configure when you changed the driver ?

yes

ok -- im looking at my copy of the code here -- trying to find where power is actually being sent

I have the documentation that came with the device if you’d like it

ya that would help

Ok let me dig it out. I know it’s been posted before also

@mike posted them here..:slight_smile:

Here is the driver
Here is the user manual . I cant seem to make sense of it. The parameters in the driver bear no relation to the parameters in the manual.

1 Like