Aeotec Water Sensor 6 ZW122 Won't Report

water sensor.log (368.9 KB) I am using OH 2.4 and I am able to successfully securely connect my ZW122 water sensor to my OH, but nothing every gets reported back to HABmin. I have the channels setup and they display in HABmin, but I don’t get any temperature or batter level readouts from it. I have tried to manually wake it up multiple times but nothing comes back. I am not sure if the device is faulty or if there is something configured incorrectly. I have attached the debut logs to this issue. (they are zipped, and due to file name restrictions you will have to change the extension from .log to .zip) If there is anything else needed to figure this out, please let me know.

I have three of these; what I finally did (after a year on battery) is hard wired them via the USB mount they offer. It’s MUCH more reliable now.

Attached PDF.Water Sensor Settings.pdf (138.1 KB)

Best, Jay

Sorry for the long delay. I contacted Aeotec and had to do some troubleshooting with them and they decided that they would replace my device. I have a new device that they already confirmed is a working unit. However, when I tried to pair it to OH it still doesn’t work. It pairs correctly from what I can see, but I just don’t get any alerts or data from the channels. So, I did as @jwiseman recommended and purchased the dock. I then removed the device from OH and then paired it again now that the device is in the dock. This hasn’t changed any of the operation. It still doesn’t report anything back on the channels. Also, the configuration parameters are not displayed in OH either. I have attached a new set of logs in case anything changed since last time. openhab.zip.log (256.5 KB)

Any suggestions that would help resolve this would be appreciated.

Thanks!

I would strongly suggest to use the latest snapshot - 2.4 is pretty old and misses some features that might help you.

Here’s my full config for the water sensor; I’m running OH 2.4 and close to the latest 2.5 zWave binding. This version of the binding also has the NIF issue resolved which has helped me also.

openhab> list -s |grep zwave
283 │ Active   │  80 │ 2.5.0.201909260727     │ org.openhab.binding.zwave
Group 				FurnaceWater <water>
Number:Temperature 	FurnaceSensor_Temp 			"Floor Temperature [%.0f %unit%]" 					(FurnaceWater)										{ channel="zwave:device:5fd3acb8:node13:sensor_temperature" }
Number 				FurnaceSensor_Temp_Rounded	"Temperature Rounded [%d]" 							(FurnaceWater, Temperatures)
Number  			FurnaceSensor_Battery 		"Battery [%d %%]" 																						{ channel="zwave:device:5fd3acb8:node13:battery-level" }
Switch  			FurnaceSensor_AlarmBurglar 	"Burglar [%s]" 										(FurnaceWater)										{ channel="zwave:device:5fd3acb8:node13:alarm_burglar" }
Switch  			FurnaceSensor_Alarm_Heat 	"Alarm Heat [%s]" 									(FurnaceWater, Heat)								{ channel="zwave:device:5fd3acb8:node13:alarm_heat" }
Switch  			FurnaceSensor_Alarm_Flood 	"Master Alarm Flood [%s]" 							(FurnaceWater, FloodFurnace)						{ channel="zwave:device:5fd3acb8:node13:alarm_flood" }
Switch  			FurnaceSensor_Alarm_Flood1 	"Alarm Flood1 [%s]" 								(FurnaceWater, FloodFurnace)						{ channel="zwave:device:5fd3acb8:node13:alarm_flood1" }
Switch  			FurnaceSensor_Alarm_Flood2 	"Alarm Flood2 [%s]" 								(FurnaceWater, FloodFurnace)						{ channel="zwave:device:5fd3acb8:node13:alarm_flood2" }
DateTime			FurnaceSensor_Update		"[%1$tm.%1$td.%1$tY %1$tH:%1$tM]"   <clock>	

Group 				SumpPumpWater <water>
Number:Temperature 	SumpPumpSensor_Temp 		"Floor Temperature [%.0f %unit%]" 					(SumpPumpWater)										{ channel="zwave:device:5fd3acb8:node12:sensor_temperature" }
Number 				SumpPumpSensor_Temp_Rounded	"Temperature Rounded [%d]" 							(SumpPumpWater, Temperatures)
Number  			SumpPumpSensor_Battery 		"Battery [%d %%]" 																						{ channel="zwave:device:5fd3acb8:node12:battery-level" }
Switch  			SumpPumpSensor_AlarmBurglar "Burglar [%s]" 										(SumpPumpWater)										{ channel="zwave:device:5fd3acb8:node12:alarm_burglar" }
Switch  			SumpPumpSensor_Alarm_Heat 	"Alarm Heat [%s]" 									(SumpPumpWater, Heat)								{ channel="zwave:device:5fd3acb8:node12:alarm_heat" }
Switch  			SumpPumpSensor_Alarm_Flood 	"Master Alarm Flood [%s]" 							(SumpPumpWater, FloodSump)							{ channel="zwave:device:5fd3acb8:node12:alarm_flood" }
Switch  			SumpPumpSensor_Alarm_Flood1 "Alarm Flood1 [%s]" 								(SumpPumpWater, FloodSump)							{ channel="zwave:device:5fd3acb8:node12:alarm_flood1" }
Switch  			SumpPumpSensor_Alarm_Flood2 "Alarm Flood2 [%s]" 								(SumpPumpWater, FloodSump)							{ channel="zwave:device:5fd3acb8:node12:alarm_flood2" }
DateTime			SumpPumpSensor_Update		"[%1$tm.%1$td.%1$tY %1$tH:%1$tM]"   <clock>	
rule "Sump Pump Water Alarm changed to ON"
    when
        Item FloodSump changed to ON
	then

		if (systemStarted.state != ON && Alexa_Status.state == 'ONLINE' && gInternet.state == ON) {

			logInfo("WATER" , "SumpPumpSensor_Alarm_Flood is at " + SumpPumpSensor_Alarm_Flood.state)
			logInfo("WATER" , "SumpPumpSensor_Alarm_Flood1 is at " + SumpPumpSensor_Alarm_Flood1.state)
			logInfo("WATER" , "SumpPumpSensor_Alarm_Flood2 is at " + SumpPumpSensor_Alarm_Flood2.state)

        	logInfo("WATER", "Water Detected in the Sump Pump Room!")

			logInfo("ECHO", "Echo speaks - Excuse me, there is a water alarm in the Sump Pump room.")

			if (systemStarted.state != ON && Home_Away.state == ON && Alexa_Status.state == 'ONLINE' && gInternet.state == ON && OnkyoLRPower.state == ON) {

				OnkyoLRMute.sendCommand(ON)
					
				logInfo("ECHO", "-----------------------------------------------------------------------------")
				logInfo("ECHO", "Echo Speaking on Living Room")
				Echo_LivingRoom_textToSpeechVolume.sendCommand('40')
					Thread::sleep(1000)  
				Echo_LivingRoom_TTS.sendCommand("Excuse me, there is a water alarm in the Sump Pump room.")
					Thread::sleep(6000)  			
					
				OnkyoLRMute.sendCommand(OFF)
					Thread::sleep(2000) 
				Onkyo_LivingRoom_Mute.sendCommand(OFF)
					Thread::sleep(1000)  					
			
			} else {
			
				logInfo("ECHO", "-----------------------------------------------------------------------------")
				logInfo("ECHO", "Echo Speaking on Living Room")
				Echo_LivingRoom_textToSpeechVolume.sendCommand('40')
					Thread::sleep(1000)  
				Echo_LivingRoom_TTS.sendCommand("Excuse me, there is a water alarm in the Sump Pump room.")
					Thread::sleep(2000)  
			}	

	    	logInfo("ECHO", "Echo Speaking on Bedroom")
			Echo_Bedroom_textToSpeechVolume.sendCommand('30')
				Thread::sleep(1000)  
	    	Echo_Bedroom_TTS.sendCommand("Excuse me, there is a water alarm in the Sump Pump room.")
				Thread::sleep(2000)  

			if (systemStarted.state != ON && Home_Away.state == ON && Alexa_Status.state == 'ONLINE' && gInternet.state == ON && Basement_Power.state == ON) {

				Basement_Mute.sendCommand(ON)
					
				logInfo("ECHO", "Echo Speaking on Basement")
				Echo_Basement_textToSpeechVolume.sendCommand('70')
					Thread::sleep(1000)  
				Echo_Basement_TTS.sendCommand("   Excuse me, there is a water alarm in the Sump Pump room.")
					Thread::sleep(6000)   			
					
				Basement_Mute.sendCommand(OFF)
					Thread::sleep(2000) 
				Onkyo_Basement_Mute.sendCommand(OFF)
					Thread::sleep(1000)  					
			
			} else {
			
				logInfo("ECHO", "Echo Speaking on Basement")
				Echo_Basement_textToSpeechVolume.sendCommand('70')
					Thread::sleep(1000)  
				Echo_Basement_TTS.sendCommand("   Excuse me, there is a water alarm in the Sump Pump room.")
					Thread::sleep(2000)  	
			}

    		logInfo("ECHO", "Echo Speaking on Jays")
			Echo_Jay_textToSpeechVolume.sendCommand('60')
				Thread::sleep(1000)  
 	    	Echo_Jay_TTS.sendCommand("Excuse me Jay, there is a water alarm in the Sump Pump room.")
				Thread::sleep(2000)  

			logInfo("ECHO", "Echo speaks - Excuse me, there is a water alarm in the Sump Pump room.")
			logInfo("ECHO", "-----------------------------------------------------------------------------")
		}

		// Echo Speaks in Lexus Sedan
		if (systemStarted.state != ON && Home_Away.state == ON && gInternet.state == ON && Alexa_LexusSedan_Status.state == 'ONLINE' && JsAndriodUnifi.state == OFF && JayAndriodUnifiRIS.state == OFF) {
		
			logInfo("ECHO", "Alexa_LexusSedan_Status THING is " + Alexa_LexusSedan_Status.state)
			logInfo("ECHO", "-----------------------------------------------------------------------------")
		    logInfo("ECHO", "Echo NOT Speaking in Lexus Sedan")
			logInfo("ECHO", "-----------------------------------------------------------------------------")
		 	// Echo_LexusSedan_textToSpeechVolume.sendCommand('70')
			// 	Thread::sleep(1000)  
		 	// Echo_LexusSedan_TTS.sendCommand("Excuse me Jay, there is a water alarm in the Sump Pump room.")
			// 	Thread::sleep(2000)  
		
			logInfo("ECHO", "Echo speaks in Lexus Sedan - Excuse me Jay, there is a water alarm in the Sump Pump room.")
			logInfo("ECHO", "-----------------------------------------------------------------------------")
		}

		if (systemStarted.state != ON && Home_Away.state == ON && gInternet.state == ON && currDayofWeek !== null && currDayofWeek != NULL) { 

			currDayofWeek = now.getDayOfWeek
				Thread::sleep(500)
			currHourVariable = now.getHourOfDay
				Thread::sleep(500)
			currHour.postUpdate(currHourVariable)
				Thread::sleep(500)
		}

		if (currDayofWeek == 2 || currDayofWeek == 4 || currDayofWeek == 5 ) {

			if (systemStarted.state != ON && JayAndriodUnifiRIS.state == ON && Home_Away.state == ON && JsAndriodUnifi.state == OFF && JaysPhoneDevice.state == OFF && Alexa_Status.state == 'ONLINE' && currHour.state >= 7 && currHour.state <= 15) {

				logInfo("ECHO", "Checking Day of Week for RIS Echo (2=Tue, 4=Thur, 5=Fri) is " + currDayofWeek)
				logInfo("ECHO", "JsAndriodUnifi (should be OFF) is " + JsAndriodUnifi.state)
				logInfo("ECHO", "JayAndriodUnifiRIS (should be ON) is " + JayAndriodUnifiRIS.state)
				logInfo("ECHO", "Alexa_Status is " + Alexa_Status.state)
				logInfo("ECHO", "-----------------------------------------------------------------------------")
    			logInfo("ECHO", "Echo Speaking on RIS on Tue, Thur and Fri")
				logInfo("ECHO", "-----------------------------------------------------------------------------")
				Echo_RIS_textToSpeechVolume.sendCommand('60')
					Thread::sleep(1000)  
 	    		Echo_RIS_TTS.sendCommand("Excuse me Jay, there is a water alarm in the Sump Pump room.")
					Thread::sleep(2000)  

				logInfo("ECHO", "Echo speaks at RIS - Excuse me, there is a water alarm in the Sump Pump room.")
			}
		}

		if (systemStarted.state != ON && gInternet.state == ON) {    

			var String subjectemailSumpPumpwater	= "openHAB - WATER - In Sump Pump Room"	
			var String bodyemailSumpPumpwater		= "openHAB - WATER - In Sump Pump Room!"

			sendMail(JaygMail, subjectemailSumpPumpwater, bodyemailSumpPumpwater)
				Thread::sleep(2000)  

			var String subjectemailSumpPumpwater2	= "WATER"	
			var String bodyemailSumpPumpwater2		= "WATER - In Sump Pump Room!"

			sendMail(JaySMS, subjectemailSumpPumpwater2, bodyemailSumpPumpwater2)
				Thread::sleep(2000)  

			sendMail(TriciaSMS, subjectemailSumpPumpwater2, bodyemailSumpPumpwater2)
				Thread::sleep(2000) 
		}	
end

Best, Jay

@chris/@jwiseman, Thanks for your response. I am trying to update my zwave binding to the 2.5 snapshot as recommended but it’s not taking it. I looked through the forums and found the post on how to do complete this, but it’s not working. As a preface, I am using openhabian pi. Here’s what I am doing:

  1. Uninstall zwave binding (I have tried through PaperUI and through karaf with the same results)
  2. Stop OH with systemctl stop openhab2
  3. Copy the JAR file to the /usr/share/openhab2/addons directory
  4. Start OH with systemctl start openhab2
  5. Install zwave binding

At step 5 when I attempt to install the zwave binding in PaperUI, only the 2.4.0 version of the binding is listed. If I go into karaf and try to do a bundle:install org.openhab.binding.zwave then I get the following error:

Error executing command: Error installing bundles:
Unable to install bundle org.openhab.binding.zwave: org.osgi.framework.BundleException: Error reading bundle content.

I have also seen some suggestions to do feature:install openhab-transport-serial as well, but that didn’t change the results either.

Here is where I have been downloading the JAR file from if that makes a difference:

https://ci.openhab.org/job/openHAB2-Bundles/org.openhab.addons.bundles%24org.openhab.binding.zwave/ws/target/

Would either of you have suggestions on what I need to do different to successfully install the 2.5 snapshot?

Thank you for continued assistance!

Here’s what I do - not saying it’s 100% the best way though.

On Karaf:

list -s | grep zwave
bundle:stop [pid]
bundle:uninstall [pid]

Go physically delete the zwave.jar from the addon’s directory. If it’s NOT in there; then go to /conf/services/addons.conf and remove the zWave reference in that file. There is NO need to have it in the addons.conf file anymore since your dropping it in the /addons directory going forward.

Download the new zWave 2.5 binding → https://ci.openhab.org/job/openHAB2-Bundles/lastSuccessfulBuild/artifact/bindings/org.openhab.binding.zwave/target/

Copy/Paste it into the /openhab/addons directory.

If your running OH 2.4; there is another JAR dependency needed with zWave 2.5 JAR which I can’t remember what it is right now. I’m guessing the name will show up in the logs files saying it’s either installing it OR you need to go find it. I find a lot of my stuff here → JFrog

There is also a script that does ALL this above from another contributor that a lot folks do use.

All these instructions are self found/tested so they are most likely not ideal for most folks.

Hope this helps a bit?

Best, Jay

@jwiseman, That helped out a lot! I now have the latest snapshot of the bindings installed. However, nothing seems to be different. The device is still not reporting anything. I tried removing it and adding back to OH, but that didn’t have any effects. Do you have any suggestions on what I could do to resolve this?

Please provide a debug log showing the initialisation of the device so I can see what is happening.

1 Like

Giving a full debug log on zWave to Chris is the next step. I’m glad my zWave upgrade process helped.

Best, Jay

2 Likes

openhab.zip.log (441.8 KB) Here is the log that you requested. I had to add/remove it a few times to get it to finally come in as a known device. Not sure why it had so many troubles. You will see that I joined it once unsecured and once secured but neither method reported back data. Let me know if there is anything else I can provide to help resolve this.

Thanks!

I cannot look right now but the log viewer sometimes helps point out issues.

https://www.cd-jackson.com/index.php/openhab/zwave-log-viewer

None of my zWave devices are secured. Temp, humidity, light levels, motion, water sensor, doors opening, etc is all I have setup on zWave.

Best, Jay

@chris, Have you had a chance to look at the logs? I tried reviewing them, but I am not very seasoned in reviewing these logs yet. Any pointers or suggestions on how to resolve this would be appreciated.

Thanks!

Sorry - I’ve been really busy over hte past week or so. I’ll try and look at it now before I go to bed.

Are you waking up the device enough to actually allow it to complete initialisation? In all 5 of the inclusion attempts, everything looks fine in general, but it never completes initialisation before you reset it and it turns into another node.

You can see below that it’s getting close to sorting out the associations, and you excluded it -:

@chris I removed the device again and added it back again. After adding it, I woke it up 16 times over the course of an hour and half. I would have thought that it should have completed initialisation in that amount of time with that number of individual wake ups. However, it still doesn’t appear to be completing initialisation. I have attached the latest log from my last attempt. Let me know if there is anything I can do or provide to resolve this.

openhab.zip.log (963.2 KB)
openhab.log.7.zip.log (890.9 KB)
openhab.log.6.zip.log (911.7 KB)

Thanks!

I wanted to provide an update that after waiting for about a day and a half, and doing nothing to the controller or the water sensor, it just decided to start sending data to the temperature channel. However, that’s the only channel that seems to be working. The channel for the batter level and the 3 flood alarm sensors don’t seem to be reporting anything. I have tried waking the device up multiple times and nothing seems to get it to report back. Any thoughts on how to resolve that?

@chris any ideas?

@chris or anyone else?