Fortrezz MIMO2+ Voltage Readings

Hi everyone, I'm using the hubitat for a unique sensing network application and am trying to utilize the MIMO2+'s as basically a z-wave two-channel ADC. I have two MIMO2+'s on the network however the driver doesn't seem to support voltage reads. Any idea on how I could do this?

Thank you all!

Probably have to write a driver. You could likely get a head start by looking at Fortrezz's repo.

Thanks for linking me this github it'll be a good guideline. Do you have any resources that would help me understand how I would have to adapt this to the hubitat? Thank you!

Here's a great link on porting:

Two other documents that I think you will want:

https://static1.squarespace.com/static/57363221555986b60e62f0f0/t/5919d8a2c534a5e1ade94384/1494866089142/User+Manual+MIMO2%2B+8May2017+removed+MI+address.pdf

https://static1.squarespace.com/static/57363221555986b60e62f0f0/t/5919d919ff7c50802f0b93da/1494866202716/Tech+Appendix+MIMO2%2B+8May2017+removed+MI+address.pdf

Thanks so much for all of this. Is there anything more basic as a guide on how to do this? I haven't dealt with drivers before in any sort of way.

How soon do you need a driver?

I am aiming to get it done by the end of this week (weekend included).

I have a MIMO2+ around here somewhere, and was thinking I could create a driver for you to test, but I honestly don't know that I could have it by this weekend.

Thank you so much for all your help. Through the smartthings groovy walkthrough I've been understanding how to make a device handler and will come back here if I have any specific questions for my code (I would be shocked if I didn't).

I got curious and started putting together a communication framework for the MIMO2+. You're welcome to use it if you like. You can find it on GitHub here.

1 Like

This is awesome, I was actually able to get the relays working too just now but your code is more efficient (I didn't have a method to shorten the endpoint commands). I am about to use the same structure to get voltage data and then am going to try to create a preference that allows you to turn on a poll of the voltage.

I don't think you need to poll. See parameter 3 and 9. Bit 6 enables periodic sends, and bits 0-5 control the period.

Interesting, so I could just create a command that configures it to send data periodically and I can receive that data as events. I could set a preference that can allow me to change the time period too. Do you think that would be a good way to do it?

Yep. A configuration value to enable/disable the periodic sends and control the interval.

1 Like

I pushed a small update that retrieves the current configuration.

1 Like

Thanks for your help. Here is what I have been able to come up with (lots of learning and a bit of inspiration from you!).

Here is an issue I'm facing right now that maybe you could help with: To test my ADC output I added a 1V signal to both sig1 and sig2. However, as soon as I am connecting my 1V signal to the ADC contacts, something is driving it to 1.7V . I checked with a multimeter directly and confirmed this so it doesn't seem to be inaccurate drivers. I'm very confused with this behavior. I thought it could be an offset but that doesn't seem to be the case either. The voltage reading I get with no signal is 2.5V and when I connect it to ground I get 0V. I have also tested it with two MIMO's so it isn't just a fault device. I'm stumped. Maybe you have any ideas? Thanks.

Hmm... what kind of source are you using as the input voltage?

I checked my MIMO2+. Unloaded, I'm seeing a bias voltage of 2.782v. When measured with a meter, I would expect to see some pull from the bias voltage. But the important part is what does it report?

Unloaded mine reports an output of ~3070, which seems about right. I don't have a voltage standard, but did check with a battery (1.611v), and am seeing an output of ~1988, which also seems relatively close. When measured with a meter, I do see a bit pull up at 1.624v while connected.

[Edit: Also, with the terminals shorted, I see a reported value of 1 which is as you would expect.]

What do you see as reported output with a 1v input? I would expect somewhere around ~1100.

The curve looks pretty linear up to the bias voltage level, but then starts to fall off. I'm not sure how much accuracy over what range you need for what you're doing, but it seems like you are going to have to do some amount of calibrating disconnected voltages to outputs when connected.

I went back and looked at the magic calculation they use in the SmartThings device handler. If I use that calculation, I get 1.563v for my battery.

I hate magic calculations like that.

1 Like

I made a simple voltage divider with a 3.3V source to test out the values the MIMO2+ reads. My unloaded reads around 2.468V through the hubitat and also with a multimeter so i'm not sure if there is any bias pull for me. With the terminals shorted I am reading a decimal value of 0, and this was what made me believe there isn't really a fixed offset.

When I put the 1V signal, the hubitat read 1.7V, and so did the multimeter, with the conversion being through the magic equation they provided. These results were identical for all my MIMOs. Judging by the fact that you got a linear result and a close to accurate one for your battery reads, I am probably doing something wrong....just not sure what that may be.....

My question would be, how does 3070 mean 2.782V but ~1988 seem like 1.611V? I don't really get how their equation works and the raw values also don't really make sense to me. Any guidance regarding those would be much appreciated.

Furthermore, even if we understand the equation, is there any way I could make this thing take proper sensor measurements, given that right now, it drives up a voltage so severely (converting a 1V signal to 1.7V)?