[RELEASE] Greenwave PowerNode 6

Are your devices working via Alexa? I am still not able to get that working. Also anyone have the gauge part working?

Thank you! Excellent instructions. For everyone else who just received a huge box of “stuff” from the monoprice deal, follow these directions!

Thanks. Now… what the hell does the color selection do exactly? Other than show up in the up as the color selected? The only function I can think of is to identify one plug from another.

The internet is your friend.

Has anyone tried to get the energy reader thing working? Is it even zwave or some other protocol?

The full technical documentation for this device is here…

I found a different Parent/Child DTH that works better for me, it’s less chatty, automatic power reporting doesn’t work like the other DTH, but refresh works, and it doesn’t send messages continuously to the hub.
I just edited the DTH to add the “fingerprint” of the Greenwave to be accepted at inclusion.

I did ask the author of the above DTH to see if he could adapt it, but he only works with companies directly for integrations, and said not having the physical device would be x5 more work.

To get rid of the flashing spinning wheel, I used Z-Wave Tweaker to change paramter 4 to 0

Short version:

  • param 0: Power change required to send a notification, in % from 1 to 100, default 10
  • param 1: Keep alive time, in minutes from 1 to 255, default 2
  • param 2: Colour wheel selection, read only
  • param 3: State after power loss, 0 = all off, 1 = remember last state, 2 = all on, default 2
  • param 4: Led for network error, 0 = disable, 1 = enable, default 0
  • assoc group 1: Colour wheel change
  • assoc group 2: Relay health
  • assoc group 3: Power value change
  • assoc group 4: Over-current protection

https://www.domoticz.com/forum/viewtopic.php?t=9216

Hey Alwas, perhaps you could ‘fork’ the Zooz repo to your own repo so we could try out your greenwave-modified version?

For some reason the forum isn’t letting me post the modified DTH, says “body is limited to 32000 characters”. Anyway the correct fingerprint for the Greenwave 6 node is this…

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

So just swap that with whats on line 79 of the Zooz parent DTH here krlaframboise/SmartThings/blob/master/devicetypes/krlaframboise/zooz-power-strip-ver-2-0.src/zooz-power-strip-ver-2-0.groovy

Also add the Zooz child DTH to your IDE from here krlaframboise/SmartThings/blob/master/devicetypes/krlaframboise/zooz-power-strip-outlet-ver-2-0.src/zooz-power-strip-outlet-ver-2-0.groovy

So when you include the Greenwave it’ll find it automatically and create the children. Give it a whirl…

See what you think, but it would need someone slightly more intelligent than me to adapt it completely to be honest, possibly looking at the work done by @zcapr17 (he knew his stuff!) on the Greenwave Single powernode to get full functionality. I have a WebCoRE rule that if any of the children change state, wait 10 seconds, refresh parent device, wait 1 minute refresh parent device, which works for me for now.

Getting this error after editing line 79:

Org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: script_dth_metadata_507144e9_e346_44d1_873b_84507b73981a: 79: Invalid variable name. Must start with a letter but was: “0099” . At [79:29] @ line 79, column 29. fingerprint manufacturer: “0099”, prod: “0003”, model: “0004”, deviceJoinName: “Zooz Power Strip VER 2.0” ^ 1 error

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.