Aeon Minimote requires primary on node 1

In case anyone runs into this, I have confirmed with Aeotec that the minimote needs the primary on node 1 in order for it to receive scene_activation events. This can be an issue after swapping out primary controllers. Fortunately, I was already in the 200s, so after ~30 inclusions and another controller shift, I was back to node 1 for the primary and had a functioning minimote! In hind sight, and after some experimentation, it would have been much easier to backup my old controller (gen5 zstick) and restore it to the new one (HUSBZB-1). I have confirmed that the Aeon Backup Tool does work for this device. The firmware is different, but the libraries are the same.

The main issue for this is that the minimote requires the primary controller to be NodeID #1 in this case. You will need to network shift the new zstick gen5 to be a node #1 primary controller.

Cheers,
Chris Cheng
Field Application Engineer
Aeon Labs

On Sun, 16 Jul at 7:39 AM , Scott Rushworth aeotec.freshdesk@scott.rushworth.us wrote:

I was using a Zstick (gen5) as my primary controller, but had some zwave drop outs. I purchased a Linear HUSBZB-1 and set it up as secondary, then shifted it to primary, SIS and SUC. The Zstick now has no roles in the network, as shown in Zensys tools. Everything in the network is working fine except my Aeon Minimote (firmware 1.19). If I put the Ztick into my laptop and run Zensys Tools, while OpenHab is running with the USBZB-1 on another PC, and push one of the scene buttons on the minimote, Zensys Tools shows that it is sending scene_activation to the Zstick. I have excluded, reset and reincluded the Minimote to the new controller many times, but there is no change. It seems like the Minimote is not being fully reset. The new controller is node 197 and the Zstick is node 1. Does the Minimote require the primary controller to be node 1?

More details in the ticket…
https://aeotec.freshdesk.com/helpdesk/tickets/16137

Aeon has now added it to a support article…
https://aeotec.freshdesk.com/support/solutions/articles/6000035629-in-depth-minimote-guide

1 Like

Interesting, good to know, thanks. That’s the sort of thing that would have me scratching my head for hours and then bashing my head against a wall after I’d found the source of the problem.

I have two minimotes that have been sitting on my desk for months, updated them both to firmware 1.19, included one with my Zstick, went through the pantomime of repeatedly pressing the learn button until the thing appeared in the inbox (Z-Wave Node 33: DSA03202 Minimote 4 button remote control.) I then created the thing and linked an item to the single scene number channel.

However, I can’t see an an items table in MySQL for the scene number. I would have expected to see one, do you persist your items on a DB? I can see activity in the log when I press the buttons on the minimote:

2017-08-03 19:34:32.652 [icationCommandMessageClass] - NODE 33: Incoming command class SCENE_ACTIVATION
2017-08-03 19:34:32.652 [icationCommandMessageClass] - NODE 33: Found Command Class SCENE_ACTIVATION, passing to handleApplicationCommandRequest
2017-08-03 19:34:32.652 [ZWaveThingHandler         ] - NODE 33: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-08-03 19:34:32.652 [ZWaveThingHandler         ] - NODE 33: Got a value event from Z-Wave network, endpoint = 0, command class = SCENE_ACTIVATION, value = 7
2017-08-03 19:34:32.652 [ZWaveThingHandler         ] - NODE 33: Updating channel state zwave:device:6f492989:node33:scene_number to 7 [DecimalType]
2017-08-03 19:42:57.645 [icationCommandMessageClass] - NODE 33: Application Command Request (ALIVE:DONE)
2017-08-03 19:42:57.645 [ZWaveNodeInitStageAdvancer] - NODE 33: Starting initialisation from DONE
2017-08-03 19:42:57.645 [icationCommandMessageClass] - NODE 33: Incoming command class SCENE_ACTIVATION
2017-08-03 19:42:57.645 [icationCommandMessageClass] - NODE 33: Found Command Class SCENE_ACTIVATION, passing to handleApplicationCommandRequest
2017-08-03 19:42:57.645 [ZWaveThingHandler         ] - NODE 33: Got an event from Z-Wave network: ZWaveCommandClassValueEvent
2017-08-03 19:42:57.645 [ZWaveThingHandler         ] - NODE 33: Got a value event from Z-Wave network, endpoint = 0, command class = SCENE_ACTIVATION, value = 1
2017-08-03 19:42:57.645 [ZWaveThingHandler         ] - NODE 33: Updating channel state zwave:device:6f492989:node33:scene_number to 1 [DecimalType]

I thought I would be able to see the history of the scene number in an item table.

I had both remotes working on OH 1.8 with rules to control lights but decided to upgrade the firmware (I don’t remember why) and couldn’t configure parameter 250 to put them in scene mode again. I gave up after a while, hence them sitting on the desk for ages.

How are you using your minimote in your setup?

It took days to figure out! And not just once… I rebuilt my network the first time I shifted primary (when getting away from Smartthings) because I could not get the minimote to work.

I use mySQL for persistence and the minimote scene values are stored. My guess is that your mysql.persist file is not specifying the minimote scene values to be stored. I’m curious… what use would you have for storing them?

Early on, there were some troubles with doing this through OH1. I think I sent the parameter through Zensys Tools or OZW. But this was worked out and the parameter is still available in OH2.

I use it in our family room for powering on the TV and receiver (which suck like 30W in standby… yea power meter!), muting and changing songs on speakers, and adjusting lights in the room and outside. If you’d like, I can share the rules. However, our Alexa devices have taken over much of this functionality. It’s still super handy to have around though. I sometimes use it for excluding devices too.

I feel your pain,

I don’t have any need to persist them, I’ve got my system set up to persist everything because I’m lazy and it was easy to type a * in the persist file. :slight_smile: I check for an item table as a check to see if a thing is working correctly.

I compiled OZW from source and used that to set parameter 250 back when I was using OH1.8. It was nice to be able to use habmin to configure it this time.

So, after you’d set parameter 250 did you see the remote in the inbox and create a thing and link an item to it? What is the channel for the thing called? Is it called “Scene Number”?

The parameter can only be set after the Thing is created. After the inclusion, the minimote showed up in the Inbox. Once added, I usually go to the Thing in PaperUI to copy/paste the channel info into an items file. But this time I just needed the new node number because I had an existing item. The channel is scene_number. My minimote item looks like this:

Number  Minimote_Scene "Minimote Scene [%d]"   <none>  (gMinimote) {channel="zwave:device:05ce30a5:node2:scene_number"}

Would you mind posting your rules too please? Or an example of one that works. Thanks.

Here you go:

// Imports
//import org.openhab.core.library.types.*
//import org.openhab.model.script.actions.*

// Global Variables
var Integer outsideLevel = 0
var Integer familyRoomLevel = 0

rule "Minimote Button 1 (Pressed) - Scene 1"
when
	Item Minimote_Scene received update 1
then
    logInfo("Rules", "Minimote: Button 1 (Pressed) - Scene 1 (Toggle Family Room TV outlet) [{}]",if (DS_FamilyRoom_Outlet.state == OFF) "ON" else "OFF")
    if (DS_FamilyRoom_Outlet.state == OFF) {
		DS_FamilyRoom_Outlet.sendCommand(ON)
	}
	else if (DS_FamilyRoom_Outlet.state == ON) {
		DS_FamilyRoom_Outlet.sendCommand(OFF)
	}
end

rule "Minimote Button 1 (Held) - Scene 2"
when
	Item Minimote_Scene received update 2
then
    logInfo("Rules", "Minimote: Button 1 (Held) - Scene 2 (Toggle Family Room dimming w/ Kodi)")
    if (DS_FamilyRoom_Kodi_DimWhenPlaying.state == OFF) {
		DS_FamilyRoom_Kodi_DimWhenPlaying.sendCommand(ON)
	}
	else {
		DS_FamilyRoom_Kodi_DimWhenPlaying.sendCommand(OFF)
	}
end

rule "Minimote Button 2 (Pressed) - Scene 3"
when
	Item Minimote_Scene received update 3
then
    familyRoomLevel = familyRoomLevel + 1
	if (familyRoomLevel > 3) {
		familyRoomLevel = 0
	}
	switch (familyRoomLevel) {
		case 0 : gDS_FamilyRoom_Bulb.sendCommand("0")
		case 1 : gDS_FamilyRoom_Bulb.sendCommand("1")
		case 2 : gDS_FamilyRoom_Bulb.sendCommand("25")
		case 3 : gDS_FamilyRoom_Bulb.sendCommand("100")
    }
    logInfo("Rules", "Minimote: Button 2 (Pressed) - Scene 3 (Adjust Family Room lights)")
end

rule "Minimote Button 2 (Held) - Scene 4"
when
	Item Minimote_Scene received update 4
then
    logInfo("Rules", "Minimote: Button 2 (Held) - Scene 4 (Toggle Back patio lights)")
    if (gBackLight.state == 0) {
		gBackLight.sendCommand("100")
	}
	else {
		gBackLight.sendCommand("0")
	}
end

rule "Minimote Button 3 (Pressed) - Scene 5"
when
	Item Minimote_Scene received update 5
then
	outsideLevel = outsideLevel + 1
	if (outsideLevel > 3) {
		outsideLevel = 0
	}
	switch (outsideLevel) {
		case 0 : gOutsideLight.sendCommand("0")
		case 1 : gOutsideLight.sendCommand("1")
		case 2 : gOutsideLight.sendCommand("25")
		case 3 : gOutsideLight.sendCommand("100")
	}
	logInfo("Rules", "Minimote: Button 3 (Pressed) - Scene 5 (Adjust Outside lights): [{}]",outsideLevel)
end

rule "Minimote Button 3 (Held) - Scene 6"
when
	Item Minimote_Scene received update 6
then
    logInfo("Rules", "Minimote: Button 3 (Held) - Scene 6 (Toggle Outside lights on at dark)")
	if (Outside_LightsOnAtDark.state == OFF) {
		Outside_LightsOnAtDark.sendCommand(ON)
	}
	else {
		Outside_LightsOnAtDark.sendCommand(OFF)
	}
end

rule "Minimote Button 4 (Pressed) - Scene 7"
when
	Item Minimote_Scene received update 7
then
    logInfo("Rules", "Minimote: Button 4 (Pressed) - Scene 7 (Play House Shuffle on Family Room speaker, stop, or mute)")
    if (Active_Alerts.state > 0) {
        DS_FamilyRoom_Speaker_Volume.sendCommand("0")
    }
    else if (DS_FamilyRoom_Speaker_State.state.toString == "STOPPED" || DS_FamilyRoom_Speaker_State.state.toString == "NO_MEDIA_PRESENT") {
        DS_FamilyRoom_Speaker_PlayURI.sendCommand("HouseShuffle")
    }
    else if (DS_FamilyRoom_Speaker_State.state.toString == "PLAYING" || DS_FamilyRoom_Speaker_State.state.toString == "TRANSITIONING") {
        DS_FamilyRoom_Speaker_State.sendCommand("STOPPED")
    }
end

rule "Minimote Button 4 (Held) - Scene 8"
when
	Item Minimote_Scene received update 8
then
    logInfo("Rules", "Minimote: Button 4 (Held) - Scene 8 (Advance House Shuffle)")
    HouseShuffle_Advance.sendCommand(ON)
end

Interesting stuff - can I suggest you add this to the database? Maybe a few lines in the description or something - just so it’s not lost in the timeless depths of the forum…

Will do. Aeon also updated their main minimote support article, in the Pros/Cons of using Scene Mode:

NodeID of the primary controller must be NodeID = 1, this may be an issue for those who have performed a controller shift and moved the primary role to a different controller.

https://aeotec.freshdesk.com/support/solutions/articles/6000035629-in-depth-minimote-guide

1 Like