[RELEASE] Greenwave PowerNode 6

On line 79 you have to be quite precise when deleting just the line of text…

fingerprint manufacturer: "027A", prod: "A000", model: "A004", deviceJoinName: "Zooz Power Strip VER 2.0"

And replace it with

fingerprint manufacturer: "0099", prod: "0003", model: "0004", deviceJoinName: "Zooz Power Strip VER 2.0"

And when you save it and publish it for yourself again, if the IDE doesn’t give you any errors that should be it! Maybe you have an extra empty space or something?
And I would delete the old Greenwave DTH temprarily from your IDE so it doesn’t get attached the device when you include it again.

1 Like

It is only showing 5 of 6 plugs upon inclusion. Have you experienced that @Alwas ?

Yes exactly, it only picked up the first 5 plugs. I tried to copy/paste/add some code to get the 6th plug working but it didn’t work so I left it. @krlaframboise is the guy to speak to, he could do it easily if anyone wants to ask/hassle him! Maybe with a pot of gold!

Gotcha! Appreciate it.

here’s the Greenwave version based on Zooz powerstrip device handler…
I don’t know if this falls under the Apache license but here it’s the tweaked code for greenwave powernode 6:

My motivation was to use the master on/off for the main switch similar to the Zooz powerstrip but currently it’s not working.

Didn’t see the command register in the graph ide live logs when pressing the hardware main power button on the power strip itself. I did see the on()/off() calls when tapping the on/off main swith button through the Smarthings Classic app but nothing happens to the child (six) outlets. It might need a companion greenwave powerstrip custom smartapp* as this feature seems is not supported by greenwave powernode even after tweaks made to zooz device handler…

Disclaimer: Don’t expect further changes as I barely was able to get it to work, head is spinning.

Pro: finds the six child outlet.
some of the configuration are Zooz specific but I don’t have time to delete/comment them out, I did try to clean some but some ended up breaking code so left it as is.

*no time now, maybe in far far far future…don’t hold your breath

1 Like

Child nothing much updated, just the name to keep this organized in case you also have Zooz powerstrip like I do.

/**
 *  GreenWave PowerNode 6 Zooz Frankenstein VER 2.0 (CHILD DEVICE)
 *
 *  Author: 
 *    Kevin LaFramboise (krlaframboise),  Ulices Soriano (getterdone) tweaked for Greenwave
 *
 *  Changelog:
 *
 *    2.1.0 (11/05/2018)
 *      - Update parent when name changes.
 *
 *    2.0.2 (10/16/2018)
 *      - Added support for changing the icon.
 *
 *    2.0.1 (09/30/2018)
 *      - Initial Release
 *
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 *  in compliance with the License. You may obtain a copy of the License at:
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
 *  on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
 *  for the specific language governing permissions and limitations under the License.
 *
 */
 

metadata {
	// Automatically generated. Make future change here.
	definition (name: "GreenWave PowerNode 6 Zooz Frankenstein VER 2.0 Child", namespace: "getterdone", author: "Ulices Soriano", cstHandler: true) {
	}

//GreenWave PowerNode 6 Zooz Frankenstein VER 2.0
	definition (
		name: "GreenWave PowerNode 6 Zooz Frankenstein VER 2.0 Child", 
		namespace: "getterdone", 
		author: "Ulices Soriano",
		ocfDeviceType: "oic.d.smartplug"
           //vid:"generic-switch-power-energy"
	) {
		capability "Actuator"
		capability "Sensor"
		capability "Switch"		
		capability "Outlet"
		// capability "Acceleration Sensor"
		capability "Power Meter"
		capability "Energy Meter"
		capability "Refresh"		
		
		attribute "secondaryStatus", "string"
		attribute "energyTime", "number"
		attribute "energyDuration", "string"
		attribute "powerLow", "number"
		attribute "powerHigh", "number"
				
		command "reset"
	}
	
	simulator { }	

	tiles(scale: 2) {
		multiAttributeTile(name:"switch", type: "generic", width: 6, height: 4, canChangeIcon: true){
			tileAttribute ("device.switch", key: "PRIMARY_CONTROL") {
				attributeState "on", label: '${name}', action: "switch.off", icon: "st.switches.switch.on", backgroundColor: "#00a0dc"
				attributeState "off", label: '${name}', action: "switch.on", icon: "st.switches.switch.off", backgroundColor: "#ffffff"
			}
			tileAttribute ("device.secondaryStatus", key: "SECONDARY_CONTROL") {
				attributeState "default", label:'${currentValue}'
			}
		}
		valueTile("energy", "device.energy", width: 2, height: 2) {
			state "energy", label:'${currentValue} kWh', backgroundColor: "#cccccc"
		}
		valueTile("power", "device.power", width: 2, height: 2) {
			state "power", label:'${currentValue} W', backgroundColor: "#cccccc"
		}
		valueTile("powerHigh", "device.powerHigh", width: 2, height: 1, decoration:"flat") {
			state "powerHigh", label:'High: ${currentValue} W'
		}
		valueTile("powerLow", "device.powerLow", width: 2, height: 1, decoration:"flat") {
			state "powerLow", label:'Low: ${currentValue} W'
		}
		standardTile("refresh", "device.refresh", width: 2, height: 2) {
			state "default", label:'Refresh', action: "refresh", icon:"st.secondary.refresh-icon"
		}
		standardTile("reset", "device.reset", width: 2, height: 2) {
			state "default", label:'Reset', action: "reset", icon:"st.secondary.refresh-icon"
		}
	}
	
	preferences { }
}


def installed() { }


def updated() {	
	parent.childUpdated(device.deviceNetworkId)
}


def on() {
	parent.childOn(device.deviceNetworkId)	
}

def off() {
	parent.childOff(device.deviceNetworkId)	
}

def refresh() {
	parent.childRefresh(device.deviceNetworkId)
}

def reset() {
	parent.childReset(device.deviceNetworkId)	
}
1 Like

@Smartphi Really appreciate you showing some love to this device, can imagine it’s one of the hardest dth’s out there, so I would totally expect head spinning. Love the “Frankenstein” name :joy:
Are you able to reveal any differences in behaviour that you’ve found/made? Does the power reporting update automatically perhaps?
@saosinx88 you’re a trailblazer, here’s a little project for you!

@johnconstantelo spent an unnecessary amount of time and energy trying to get the on/off commands to work, to adjust the polling, and to get it remotely close to “operational” but came up with really nothing. This device floods your zwave network with constant polling and we could never get any of the child devices or the device as a whole to ever power off. We gave up after a few days, but maybe this is a step in the right direction!

Maybe try this new dth if you’re able.
But what do you mean trying to get the on off commands to work?
Of the child devices? Mine work.
And where do you see excessive polling? The only polling I see in the parent device is 4 “lastcheckin” polls every hour, and nothing for the child devices.

Yeah I’ll give it a try this evening. For me, it polls every 6 minutes no matter what. And no off command ever gets executed. You’ll see the command sent, but it just hangs and does nothing.

It doesn’t turn off? That shouldn’t happen. To be clear with @krlaframboise’s dth I have on/off working on 5 of 6 outlets, and it gives max and min watts per outlet. But I don’t get power reporting updated, the only way to update the Watts is to send a refresh command to the device by WebCoRE.
But I looked at the Zooz code quickly and I don’t see 6 minute polling, are you sure you’re not still stuck on the original greenwave dth?

def ping() {
	logDebug "ping()..."
	return sendCommands([basicGetCmd()])
}

Remember when you try the new Frankenstein dth, you need to exclude the outlet completely from ST first, and when it joins find the correct dth first, so for safety I would delete any competing dth’s from the IDE, or temporarily change the fingerprint so it doesn’t get picked up.

Hi @Alwas,

I was working with @saosinx88 on a DTH, and no matter what I did in the DTH, his device always polled every 6 minutes. I don’t actually have one of these devices to test with, but you’re more than welcome to take these DTH’s I tried:

This one is what we were trying to use (only the parent DTH was modified). It’s been a couple weeks since we tested, and I can’t remember all the changes we made:
https://raw.githubusercontent.com/jsconstantelos/SmartThings/master/devicetypes/copycat73/greenwave-powernode-6.src/greenwave-powernode-6.groovy

This one was based off of the Zooz device. Again, I can’t recall all the changes that were made, so the code may be a bit sloppy:

Mine was behind a fridge and didn’t want to start messing around with it. @Smartphi’s Frakenstein appears to work well, on/off like before, and now the 6th end plug works, which is quite masterful! So I’m happy with that, will monitor for a few days. Tried yours @johnconstantelo and it only came up as a generic “Switch” single device, the children weren’t created. Still had to use Z-Wave tweaker to get rid of the LED flashing every 60 seconds.
It’s hard working on a DTH if you don’t have the device in front of you, @saosinx88 i think you should send one to Mr Constantelo :crazy_face: I’m also stuck with 6 orphan devices I’m unable to delete at all now, need support to delete them for me.

I offered haha

Yeah, I can’t remember all the changes that were made because there were so many and I was focused on trying to nail down specific issues one at a time. I tested with a “virtual device” and also had orphaned child switches, but I was able to eventually delete them in the IDE after a while.

I ran into a problem not being able to force remove it as well, but had to go into IDE, delete all the child devices first, and then I could delete the parent.

1 Like

I think the way to go is first delete all children manually, then exclude the parent device, turn on exclude and tap the switch, THEN the parent finally disappears. It’s not the easiest device to work with in the world! But any future work should be based on Frankenstein, he’s added the sixth plug, and deleted the defunct USB child devices. Power reporting must be possible because one of the 4 original Greenwave parameters has per cent of power report.

Good tip @johnconstantelo, never heard of that one before, wait a few hours then you’ll be able to delete Z-Wave devices! :+1:

Now, none of the child devices are joining upon inclusion. Odd…

exclude the parent again. when adding, the parent comes first don’t click save until the children appear.