MimoLite switches keep switchig off

Hi Guys,
I have what it seems like a weird issue and would appreciate any guidance and see if anyone else has this problem.

I got 3 Mimolite’s and want to use them as regular switches to control low power outdoor lights.

I am using SmartThings (v1) and successfully added the devices to the z-wave network; I also changed the device type from MimoLite Garage Door Controller to a Z-Wave Switch (see the screenshot below showing one
of these).

The issue is that when I turn these on, they automatically switch off after 2-3 seconds. I have no other apps or rules controlling these. As per their documentation - I have double checked that the jumper (P5) is setup as latched and that is how it was when they were included in the network. I have excluded them and included them back in multiple times, and each time it is the same issue – after switching them on, they automatically switch off.

Any suggestions on what is wrong and why these are not working?

The installers for the outdoor/landscape lights, had these connected to lights in their office to test it and they had excluded them too – not sure if that would make any difference; it doesn’t make sense to me as they are now part of this network.

Thanks,
Amit.

Sorry one thing to clarify - they automatically switch off in 2-3 seconds; no matter how many times I switch them on. Nothing obvious shows up in the logs. Thanks.

You have the mimolite in relay mode, and that’s why it’s doing that.

I suspect you need to put the jumper back in place. Did you remove the jumper from the Mimolite, or is it still connected on the circuit board (location P5 on the board)? If you removed it, you’ll have to put it back and exclude the device from ST and then add it back.

1 Like

Thanks @johnconstantelo - however the jumper is in place and that is how it was when I had added these; that was one of the first thing I had checked as per their official documentation. For kicks I tried one without the jumper (when it is in relay) and it is exhibiting this behavior (as expected).

So, unfortunately still stuck in the same issue, Wonder if anyone has any other suggestions?

Thanks in advance.

Amit.

OK @johnconstantelo I saw your message and was able to create a new custom type and change the code as suggested and then after testing it was able to change it back to a z-wave and it seems to be working fine now. This is weird - was it ‘stuck’ in some way on the device - doesn’t make sense. Thanks for your help and will report back here once I have it fully tested in the next day or so. Cheers.

1 Like

Hi @bahree, excellent. I had edited that out originally, and then was going to post that back when I saw your previous post. Glad you saw that.

If you need any help with the mimolite, please let me know.

1 Like

So this is interesting, of the 3 switches, one is working as expected after performing the aforementioned steps. And this was the one I had excluded and included a few times. The other two switches, even when going through these steps do not work as expected and they switch off after a couple of seconds.

For those two, I changed the type to my new custom type, and toggled it (e.g. in the log I can see the configuring messages), and then when I switched it back to the z-wave switch same issue. I will try and exclude them, reset them and then include them back and follow the above steps and then report that and let the others know if that did fix anything or not.

Thanks.

Same issue here did you ever figure it out? I have one that’s working fine but two others that keep switching off. Jumper is in the correct position. It’s inconsistent sometimes it switches off other times it stays on very strange.

I did get it working; the folks who were installing this (outdoor landscape lighting), they had tested it on their network and whilst they had excluded it, for some reason it had not. So I had to do a force exclusion and then add them back and it started working OK. It seems like the ‘old’ network was sticking even though it was reset. I also did a factory reset on the switch and the exclusion - and those worked.

Oh and I also did a custom device type - as I said it was in the thread. Let me dig it out and post it here.

Here is the custom device handler I wrote. This shows up as Bahree Mimolite Switch. You can change the name to anything else (as long as it is unique) - this is in the first couple of lines where it says Definition name.

Once you have this published, then changed the switch type in the IDE to this, publish it, save it, and then it worked. Eventually I changed it back to the regular Z-Wave Switch in the type and it has been working fine. Hope this helps.

metadata {
	// Automatically generated. Make future change here.
	definition (name: "Bahree Mimolite Switch", namespace: "bahree", author: "Amit Bahree") {
		capability "Configuration"
		capability "Polling"
		capability "Switch"
		capability "Refresh"
		capability "Contact Sensor"

		attribute "powered", "string"

		command "on"
		command "off"
        
        fingerprint deviceId: "0x1000", inClusters: "0x72,0x86,0x71,0x30,0x31,0x35,0x70,0x85,0x25,0x03"
	}

	simulator {
	// Simulator stuff
    
	}

	// UI tile definitions 
	tiles {
        standardTile("switch", "device.switch", width: 2, height: 2, canChangeIcon: true) {
			state "doorClosed", label: "Closed", action: "on", icon: "st.doors.garage.garage-closed", backgroundColor: "#79b821"
            state "doorOpen", label: "Open", action: "on", icon: "st.doors.garage.garage-open", backgroundColor: "#ffa81e"
            state "doorOpening", label: "Opening", action: "on", icon: "st.doors.garage.garage-opening", backgroundColor: "#ffa81e"
            state "doorClosing", label: "Closing", action: "on", icon: "st.doors.garage.garage-closing", backgroundColor: "#ffa81e"
            state "on", label: "Actuate", action: "off", icon: "st.doors.garage.garage-closed", backgroundColor: "#53a7c0"
			state "off", label: '${name}', action: "on", icon: "st.switches.switch.off", backgroundColor: "#ffffff"
        }
        standardTile("contact", "device.contact", inactiveLabel: false) {
			state "open", label: '${name}', icon: "st.contact.contact.open", backgroundColor: "#ffa81e"
			state "closed", label: '${name}', icon: "st.contact.contact.closed", backgroundColor: "#79b821"
		}
        standardTile("refresh", "device.switch", inactiveLabel: false, decoration: "flat") {
			state "default", label:'', action:"refresh.refresh", icon:"st.secondary.refresh"
		}
        standardTile("powered", "device.powered", inactiveLabel: false) {
			state "powerOn", label: "Power On", icon: "st.switches.switch.on", backgroundColor: "#79b821"
			state "powerOff", label: "Power Off", icon: "st.switches.switch.off", backgroundColor: "#ffa81e"
		}
		standardTile("configure", "device.configure", inactiveLabel: false, decoration: "flat") {
			state "configure", label:'', action:"configuration.configure", icon:"st.secondary.configure"
		}
		main (["switch", "contact"])
		details(["switch", "powered", "refresh", "configure"])
	}
}

def parse(String description) {
log.debug "description is: ${description}"

	def result = null
	def cmd = zwave.parse(description, [0x20: 1, 0x84: 1, 0x30: 1, 0x70: 1])
    
    log.debug "command value is: $cmd.CMD"
    
    if (cmd.CMD == "7105") {				//Mimo sent a power loss report
    	log.debug "Device lost power"
    	sendEvent(name: "powered", value: "powerOff", descriptionText: "$device.displayName lost power")
    } else {
    	sendEvent(name: "powered", value: "powerOn", descriptionText: "$device.displayName regained power")
    }
    
	if (cmd) {
		result = createEvent(zwaveEvent(cmd))
	}
	log.debug "Parse returned ${result?.descriptionText}"
	return result
}

def sensorValueEvent(Short value) {
	if (value) {
        sendEvent(name: "contact", value: "open")
        sendEvent(name: "switch", value: "doorOpen")
	} else {
        sendEvent(name: "contact", value: "closed")
        sendEvent(name: "switch", value: "doorClosed")
	}
}

def zwaveEvent(physicalgraph.zwave.commands.basicv1.BasicReport cmd) {
	[name: "switch", value: cmd.value ? "on" : "off", type: "physical"]
}

def zwaveEvent(physicalgraph.zwave.commands.basicv1.BasicSet cmd)
{
	sensorValueEvent(cmd.value)
}

def zwaveEvent(physicalgraph.zwave.commands.switchbinaryv1.SwitchBinaryReport cmd) {
	def doorState = device.currentValue('contact')
    if ( doorState == "closed")
		[name: "switch", value: cmd.value ? "on" : "doorOpening", type: "digital"]
    else
    	[name: "switch", value: cmd.value ? "on" : "doorClosing", type: "digital"]
}

def zwaveEvent(physicalgraph.zwave.commands.sensorbinaryv1.SensorBinaryReport cmd)
{
	sensorValueEvent(cmd.sensorValue)
}

def zwaveEvent(physicalgraph.zwave.commands.alarmv1.AlarmReport cmd)
{
    log.debug "We lost power" //we caught this up in the parse method. This method not used.
}

def zwaveEvent(physicalgraph.zwave.Command cmd) {
	// Handles all Z-Wave commands we aren't interested in
	[:]
}

def configure() {
	log.debug "Configuring...." //setting up to monitor power alarm and actuator duration
	delayBetween([
		zwave.associationV1.associationSet(groupingIdentifier:3, nodeId:[zwaveHubNodeId]).format(),
        zwave.configurationV1.configurationSet(configurationValue: [0], parameterNumber: 11, size: 1).format(),
        zwave.configurationV1.configurationGet(parameterNumber: 11).format()
	])
}

def on() {
	delayBetween([
		zwave.basicV1.basicSet(value: 0xFF).format(),
		zwave.switchBinaryV1.switchBinaryGet().format()
	])
}

def off() {
	delayBetween([
		zwave.basicV1.basicSet(value: 0x00).format(),
		zwave.switchBinaryV1.switchBinaryGet().format()
	])
}

def poll() {
	zwave.switchBinaryV1.switchBinaryGet().format()
}

def refresh() {
	zwave.switchBinaryV1.switchBinaryGet().format()
}