Aeon Multisensor 4 in 1

Hi all,

Has anyone gotten the Aeon Multisensor 4 in 1 to work on Hubitat? I had one sitting around that I decided I wanted to use outside but it loooks like the Gen 5 Device Code make motion not report and Gen 6 take way to long to update.

For reference, this is the one I have:

https://www.amazon.com/Aeon-Labs-Aeotec-Z-Wave-Multi-Sensor/dp/B008D5TYGU

If you have one then you are one of the few. Nowhere to be found... released and then disappeared....

Yes, indeed i have one of these, i tried pairing it about three months ago to blast out a driver for it, no bueno. It acted at the time as if it wasn't reset. To be honest, it's pretty much banished to my pile of unloved devices to forever sit and gather dust, it just wasnt an awesome device to begin with, and only 6 people in the continental USA own one, so its probably not going get much effort from us unfortunatly, at least not any time soon.

I think it holds the record for fastest on/off the market.

3 Likes

I have one of those. I changed it to Aeon Multisensor 6 and it seems to be working .

I tried that. It looks like it takes forever for it to update. It goes active, but then takes a couple of minutes to become inactive. I also can't seem to get the lux value to update.

i have two. i'm using this driver;

/*
 *  Copyright 2015 SmartThings
 *  hubitat port: gn0st1c
 *
 *  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 {
	definition (name: "Aeon Multisensor", namespace: "gn0st1c", author: "gn0st1c") {
		capability "Motion Sensor"
		capability "Temperature Measurement"
		capability "Relative Humidity Measurement"
		capability "Illuminance Measurement"
		capability "Configuration"
		capability "Sensor"
		capability "Battery"

		fingerprint deviceId: "0x2001", inClusters: "0x30,0x31,0x80,0x84,0x70,0x85,0x72,0x86"
	}
}

def installed() {
	//
}

def updated() {
	//
}

// Parse incoming device messages to generate events
def parse(String description) {
	def result = []
	def cmd = zwave.parse(description, [0x31: 2, 0x30: 1, 0x84: 1])
	if (cmd) {
		if (cmd.CMD == "8407") {
			result << new hubitat.device.HubAction(zwave.wakeUpV1.wakeUpNoMoreInformation().format())
		}
		result << createEvent(zwaveEvent(cmd))
	}
	log.debug "Parse returned ${result}"
	return result
}

// Event Generation
def zwaveEvent(hubitat.zwave.commands.wakeupv1.WakeUpNotification cmd) {
	def result = [createEvent(descriptionText: "${device.displayName} woke up", isStateChange: false)]

	if (!isConfigured()) {
		// we're still in the process of configuring a newly joined device
		log.debug("not sending wakeUpNoMoreInformation yet: late configure")
		result += response(configure())
	} else {
		result += response(zwave.wakeUpV1.wakeUpNoMoreInformation())
	}
	result
}

def zwaveEvent(hubitat.zwave.commands.batteryv1.BatteryReport cmd) {
	def map = [ name: "battery", unit: "%" ]
	map.value = cmd.batteryLevel > 0 ? cmd.batteryLevel.toString() : 1
	map.displayed = false
	state.lastbatt = new Date().time

	createEvent(map)
}

def zwaveEvent(hubitat.zwave.commands.sensormultilevelv2.SensorMultilevelReport cmd) {
	switch (cmd.sensorType) {
		case 1:
			// temperature
			def map = [ name: "temperature" ]
			def cmdScale = cmd.scale == 1 ? "F" : "C"
			map.value = convertTemperatureIfNeeded(cmd.scaledSensorValue, cmdScale, cmd.precision)
			map.unit = getTemperatureScale()
			break
		case 3:
			// luminance
			def map = [ name: "illuminance", unit: "lux" ]
			map.value = cmd.scaledSensorValue.toInteger()
			break
		case 5:
			// humidity
			def map = [ name: "humidity", unit: "%" ]
			map.value = cmd.scaledSensorValue.toInteger()
			break
		default:
			def map = [:]
			map.descriptionText = cmd.toString()
	}
	createEvent(map)
}

def zwaveEvent(hubitat.zwave.commands.basicv1.BasicSet cmd) {
	createEvent(name:"motion", value:cmd.value ? "active" : "inactive")
}

def zwaveEvent(hubitat.zwave.commands.sensorbinaryv1.SensorBinaryReport cmd) {
	createEvent(name:"motion", value:cmd.sensorValue ? "active" : "inactive")
}

def zwaveEvent(hubitat.zwave.Command cmd) {
	createEvent(descriptionText: cmd.toString(), isStateChange: false)
}

/*
 * PING is used by Device-Watch in attempt to reach the Device
 */
def ping() {
	secure(zwave.batteryV1.batteryGet())
}

def configure() {
	def request = []

	// send binary sensor report instead of basic set for motion
	request << zwave.configurationV1.configurationSet(parameterNumber: 5, size: 1, scaledConfigurationValue: 2)

	// send no-motion report 15 seconds after motion stops
	request << zwave.configurationV1.configurationSet(parameterNumber: 3, size: 2, scaledConfigurationValue: 15)

	// send all data (temperature, humidity, illuminance & battery) periodically
	request << zwave.configurationV1.configurationSet(parameterNumber: 101, size: 4, scaledConfigurationValue: 225)

	// set data reporting period to 5 minutes
	request << zwave.configurationV1.configurationSet(parameterNumber: 111, size: 4, scaledConfigurationValue: 300)

	setConfigured()

	secureSequence(request) + ["delay 20000", zwave.wakeUpV1.wakeUpNoMoreInformation().format()]
}

private setConfigured(configure) {
	device.updateDataValue("configured", "true")
}

private isConfigured() {
	device.getDataValue(["configured"]).toString() == "true"
}

private secure(hubitat.zwave.Command cmd) {
	zwave.securityV1.securityMessageEncapsulation().encapsulate(cmd).format()
}

private secureSequence(commands, delay=200) {
	delayBetween(commands.collect{ secure(it) }, delay)
}

btw, can someone fix the typo in the title? ( Mutlisensor )

Done

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.