The Vera Community forums have moved!

General => Blinds & Window Covering Control => Topic started by: Bemba on January 22, 2014, 07:38:29 pm

Title: Qmotion Blinds
Post by: Bemba on January 22, 2014, 07:38:29 pm
Hi Everyone,

I've been readying this forum for a couple of days now and wish to take the road to integrating Vera Lite into my home.

I currently have 4 Qmotion blinds which I can control with an Android App.

The request I have is.

Will I be able to integrate my blinds into Vera Lite using the ImperiHome app on a Android Tablet ?

I'm looking for a one screen interface, I do not with to switch from one application to another.

The current blinds are Wifi enabled.

Any ideas ?

Thank you
Title: Re: Qmotion Blinds
Post by: zwavemotors on January 23, 2014, 10:24:01 am
are you using the Qmotion bridge, Qsync or Qconnect?
Does it show in the ImperiHome app?
Would be interested in a solution, contact us at info@zwavemotors.com

Title: Re: Qmotion Blinds
Post by: sameri on April 01, 2014, 08:52:55 pm
Any updates on this as I have a client wanting to do exactly the same thing.
Title: Re: Qmotion Blinds
Post by: sameri on April 02, 2014, 10:54:55 pm
Rather than start another thread hopefully I can revive this one.

I have a customer who simply wants to open and close his new QMotion blinds via his Vera.

Is there anyone that has done this? He just wants to be able to integrate it so that the blinds open and close automatically as triggered by scenes in his vera.

Any help would be greatly appreciated.

Cheers,

Sam.
Title: Re: Qmotion Blinds
Post by: vas5150 on June 19, 2014, 09:24:05 pm
Hi I am also interested in this. Is a great solution if only someone could make a vera app.
Title: Re: Qmotion Blinds
Post by: Javelin on June 22, 2014, 02:39:26 am
How expensive are these blinds in Australia they look like a nice solution even if can't be integrated with very.
Title: Re: Qmotion Blinds
Post by: wilme2 on July 28, 2014, 11:37:40 am
I am meeting with a QMotion rep tomorrow.  I don't see why these can't be connected to a Qconnect, and then controlled by Vera via a iTach IP2SL...

Bizarrely enough, looks like I would have to create a DB9 to RJ45 cable...  I don't understand why they don't have a true ethernet interface...
Title: Re: Qmotion Blinds
Post by: zwavemotors on July 28, 2014, 06:19:02 pm
As mention before, it should be no problem to use a Qconnect with the same or very similar plugin as for other motors (ask Shady)
Nobody in the motor business uses the same serial to RJ cables (don't ask)
Please ask the Qmotion rep why they don't make their motors Z-Wave native as the company was one of the original Z-Wave developers
Title: Re: Qmotion Blinds
Post by: wilme2 on July 29, 2014, 02:52:49 pm
As mention before, it should be no problem to use a Qconnect with the same or very similar plugin as for other motors (ask Shady)
Nobody in the motor business uses the same serial to RJ cables (don't ask)
Please ask the Qmotion rep why they don't make their motors Z-Wave native as the company was one of the original Z-Wave developers

Heck, their new motorized drapery rods don't even work on the same frequency as their honeycomb and roller shades.  And the products I really wanted (Transitions and QTandem) are either not yet available or it is unclear if they are still offering.  So lots of changes - which makes it dicey to buy now and find out they might not support that frequency/configuration in the future.

I am likely to order four roller shades and a QConnect in the next few weeks, and then start working on a way to send commands from Vera to QConnect via an iTach IP2SL (not USB direct)... 

I really want them to publish an API for QSync, as that would be a much cleaner install, but not sure I want to take the risk of trying to reverse engineer via Wireshark or similar...
Title: Re: Qmotion Blinds
Post by: wilme2 on August 14, 2014, 11:41:15 am
I did order the 4 roller blinds and the QConnect.  Should be installed around the end of the month.
Then I will work on the RS232 messaging...
Title: Re: Qmotion Blinds
Post by: zwavemotors on August 15, 2014, 09:11:22 am
can you give us an idea what size and of how much you are paying for the shades and the Qconnect?
Title: Re: Qmotion Blinds
Post by: wilme2 on August 18, 2014, 01:52:44 pm
They are all roughly 2 feet by 6 feet at $820 for the shade, plus roughly another $100 for the fascia, and roughly $100 for the install, bringing the per-shade effective price before tax right around $1,000 each window.  The QConnect added around $400, plus $200 for some of their traditional remotes. 

I know, I know... That is as much as the windows they are going to be covering...
Title: Re: Qmotion Blinds
Post by: Javelin on August 19, 2014, 03:15:10 am
They are all roughly 2 feet by 6 feet at $820 for the shade, plus roughly another $100 for the fascia, and roughly $100 for the install, bringing the per-shade effective price before tax right around $1,000 each window.  The QConnect added around $400, plus $200 for some of their traditional remotes. 

I know, I know... That is as much as the windows they are going to be covering...

Thanks for sharing the feedback as soon as I get my painting done Im jumping aboard too, looking at hacking a remote to a quad relay board for my route. Unless I hear you are successful with the Qconnect. It does serial as well but my knowledge of this is limited on sending codes etc.
Title: Re: Qmotion Blinds
Post by: vas5150 on September 10, 2014, 12:26:13 am
Any updates Wilme2?
Title: Re: Qmotion Blinds
Post by: wilme2 on September 12, 2014, 11:40:56 am
The QMotion blinds were installed this Wednesday, and last night I got the Qconnect working with the GC IP2SL using iRule to send the commands.  So I have the shades working with the AV remote control software on our phones and tablets...  The hardest part by far was making the DB9 to RJ45 interface cable.  Should have been easy, but took me a dozen tries...

Next I will try to configure Vera to send the commands via the Global Cache plug-in and the RS232 codes.  I assume there is a RS232 example I can follow?  I did a little playing around with Vera and IP2IR a few weeks ago, but haven't tried a IP2SL and entering serial commands via hex...
Title: Re: Qmotion Blinds
Post by: vas5150 on September 13, 2014, 08:36:23 am
Cheers for the update. Very interested in how you go with rs232. Do you have a list of the commands?
Title: Re: Qmotion Blinds
Post by: sameri on September 13, 2014, 09:27:27 am
Good work mate. If you have the time and patience I know I and others would massively appreciate some kind of 'How To' guide when you're done.
Title: Re: Qmotion Blinds
Post by: wilme2 on September 15, 2014, 02:50:43 pm
Cheers for the update. Very interested in how you go with rs232. Do you have a list of the commands?

http://www.qmotionshades.com/support-center/tabs/manuals and pull up "Qconnect Manual"...

I attached here.  Note in the document is a link to software you can use to generate the commands (so you don't have to manually calculate length or checksum)...
Title: Re: Qmotion Blinds
Post by: wilme2 on September 15, 2014, 03:36:53 pm
Got a shade to move via Vera on the very first try.  I installed the GC-100 plug-in, and set the port, but I really don't think I needed to do that at all.  The below code will move the shade paired to channel #1 down...

Code: [Select]
local socket = require("socket")
host = "192.168.0.123"
c = assert(socket.connect(host, 4999))
c:settimeout(5)
local sres, serr = c:send(string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x02,0x00,0xFF))
print("Send:", sres, serr)
local data, rerr = c:receive(300)
luup.log (data)
print ("Receive:", data, rerr)
c:close()
Title: Re: Qmotion Blinds
Post by: wilme2 on September 15, 2014, 03:44:01 pm
I uninstalled the Global Cache plug-in, and can control shades without it via the code I posted above...  To be clear, the IP is the IP of my IP2SL, so I am still using a Global Cache iTach, I just don't see the point in using the plug-in right now...

(BTW, that code was borrowed from a @RexBeckett post...)
Title: Re: Qmotion Blinds
Post by: Javelin on September 17, 2014, 07:32:37 am
To clarify what components are needed?

Global Cache? which one
Qconnect box? the rs232 one?

Trying to get a idea of cost involved as always with home-automation.
Title: Re: Qmotion Blinds
Post by: wilme2 on September 18, 2014, 03:54:44 pm
What I bought:

1) Qconnect.  (List $488, I paid $415) There is only one model, but it can be connected to via RS232, RS485, or dry contact closure.
2) Global Cache IP2SL - ($91 on Amazon or slighly more for the PoE model)
3) DB9 to RJ45 (still for RS232, but the Qconnect only accepts RS232 via RJ45) cable to connect the two devices above- you have to make one - the instructions are in the Qconnect manual.  I used this $3.50 adapter to make it easy.  http://www.altex.com/Modular-Adapter-Kit-DB9-Female-RJ-45-8P8C-MA9F-8-P140560.aspx (http://www.altex.com/Modular-Adapter-Kit-DB9-Female-RJ-45-8P8C-MA9F-8-P140560.aspx)
4) two cat 5 patch cables, one to connect the RJ45 on the adapter above to the RJ45 on the Qconnect (carrying RS232) and one to connect the IP2SL to my ethernet switch.

So outside of the blinds themselves, I have about $520 plus tax into the integration...
Title: Re: Qmotion Blinds
Post by: wilme2 on September 18, 2014, 04:05:19 pm
As I previously mentioned I am using iRule for manual shade control.  That is part of why I like using an IP2SL instead of directly connecting the Qconnect to Vera (which is theoretically possible via a USB to DB9 adapter that is then connected to the DB9 to RJ45 adapater) - I can control the blinds from multiple systems.

For automation, of course, Vera moves the blinds.  Here is my current PLEG logic to open them at first light (20 minutes before sunrise), and close a little after sundown (15 minutes after sunset):

Schedules:
Name   On Type   On Time   On Days   Random On Delay   Off After Type   Off Time   Off Days   Random Off Delay
MorningBlindsOpen   Weekly   -00:20:00r   1,2,3,4,5,6,7   None   Weekly   -00:19:00r   1,2,3,4,5,6,7   None
NightBlindsClose   Weekly   +00:15:00t   1,2,3,4,5,6,7   None   Weekly   +00:16:00t   1,2,3,4,5,6,7   None

Conditions:
Name   Repeat   Expression
BlindsNeedClosing   No   NightBlindsClose
BlindsNeedOpening   No   MorningBlindsOpen


Actions:
Actions for Condition: BlindsNeedClosing

LUA:
Code: [Select]
local socket = require("socket")
host = "192.168.0.123"
c = assert(socket.connect(host, 4999))
c:settimeout(5)

local sres, serr = c:send(string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x02,0x00,0xFF))-- Channel 1 down
print("Send:", sres, serr)
local data, rerr = c:receive(300)
luup.log (data)
print ("Receive:", data, rerr)

local sres, serr = c:send(string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x02,0x00,0xFC))-- Channel 2 down
print("Send:", sres, serr)
local data, rerr = c:receive(300)
luup.log (data)
print ("Receive:", data, rerr)

local sres, serr = c:send(string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x02,0x00,0xFD))-- Channel 3 down
print("Send:", sres, serr)
local data, rerr = c:receive(300)
luup.log (data)
print ("Receive:", data, rerr)

local sres, serr = c:send(string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x02,0x00,0xFA))-- Channel 4 down
print("Send:", sres, serr)
local data, rerr = c:receive(300)
luup.log (data)
print ("Receive:", data, rerr)

c:close()

Actions for Condition: BlindsNeedOpening

LUA:
Code: [Select]
local socket = require("socket")
host = "192.168.0.123"
c = assert(socket.connect(host, 4999))
c:settimeout(5)

local sres, serr = c:send(string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x01,0x00,0xFC))-- Channel 1 up
print("Send:", sres, serr)
local data, rerr = c:receive(300)
luup.log (data)
print ("Receive:", data, rerr)

local sres, serr = c:send(string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x01,0x00,0xFF))-- Channel 2 up
print("Send:", sres, serr)
local data, rerr = c:receive(300)
luup.log (data)
print ("Receive:", data, rerr)

local sres, serr = c:send(string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x01,0x00,0xFE))-- Channel 3 up
print("Send:", sres, serr)
local data, rerr = c:receive(300)
luup.log (data)
print ("Receive:", data, rerr)

local sres, serr = c:send(string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x01,0x00,0xF9))-- Channel 4 up
print("Send:", sres, serr)
local data, rerr = c:receive(300)
luup.log (data)
print ("Receive:", data, rerr)

c:close()
Title: Re: Qmotion Blinds
Post by: Javelin on September 29, 2014, 05:36:13 pm
Thanks for the clear answers wilme2 cant wait to do this once I finish painting my arcs!
Title: Re: Qmotion Blinds
Post by: wilme2 on October 01, 2014, 05:35:03 pm
I have been a little disappointed with the range of the QMotion remote controls/receivers.  All of my shades so far are on one floor, and there is a wall-mounted 7 channel remote right in the middle, so no more than 20-25 feet away from any of the shades - and sometimes one of the shades will refuse to respond to the command.  You have to pull the remote out of its holder and get close to the shade to make it go.  This happens maybe 25% of the time when manually moving shades.

The QConnect does a lot better, it has more power than the hand-held remotes.  But still, sometimes I will come downstairs in the morning and one of the shades is still closed.  Sadly enough the suggestion is to try again - I pulled this quote out of the Qrelay manual.

Quote
4. If the shade responds unreliably to one command, send another command
5 seconds later.
? If the transmitter is a Qconnect, this may be able to be programmed into the
system that controls it.

So I call the scene twice after a few seconds of delay... 

Still, I am happy with the investment and especially the lack of wires on automated shades, but I may have some tweaking to do to get the RF just right...
Title: Re: Qmotion Blinds
Post by: wilme2 on October 20, 2014, 02:08:43 pm
I wanted to clean up the lua a little - didn't make sense to have to copy and paste the whole code each time I wanted to adjust the shades via PLEG, so I wrote it into a function below.  This can be used in the main Startup LUA for traditional scenes and/or in PLEGs Statup LUA for use in PLEG.

So in Startup LUA I have:

Code: [Select]
function MoveQMotionShades(shadeNum, openAmtNum)
local CommandtoSend

if shadeNum == 1 then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x01,0x00,0xFC) -- Channel 1 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x04,0x00,0xF9) -- Channel 1 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x08,0x00,0xF5) -- Channel 1 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x0C,0x00,0xF1) -- Channel 1 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x02,0x00,0xFF) -- Channel 1 Down
end
elseif shadeNum == 2 then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x01,0x00,0xFF) -- Channel 1 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x04,0x00,0xFA) -- Channel 1 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x08,0x00,0xF6) -- Channel 1 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x0C,0x00,0xF2) -- Channel 1 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x02,0x00,0xFC) -- Channel 1 Down
end
elseif shadeNum == 3 then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x01,0x00,0xFE) -- Channel 1 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x04,0x00,0xFB) -- Channel 1 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x08,0x00,0xF7) -- Channel 1 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x0C,0x00,0xF3) -- Channel 1 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x02,0x00,0xFD) -- Channel 1 Down
end
elseif shadeNum == 4 then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x01,0x00,0xF9) -- Channel 1 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x04,0x00,0xFC) -- Channel 1 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x08,0x00,0xF0) -- Channel 1 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x0C,0x00,0xF4) -- Channel 1 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x02,0x00,0xFA) -- Channel 1 Down
end
end

print (commandtoSend)

-- Connect and Send Command

local socket = require("socket")
host = "192.168.0.123"
c = assert(socket.connect(host, 4999))
c:settimeout(5)

local sres, serr = c:send(CommandtoSend)
print("Send:", sres, serr)
local data, rerr = c:receive(5)
luup.log (data)
print ("Receive:", data, rerr)

c:close()

end

which means the call to close shade on channel 1 is as simple as:

Code: [Select]
MoveQMotionShades(1,0)
Title: Re: Qmotion Blinds
Post by: bcr83 on October 21, 2014, 06:48:55 am
Hi,

I am in Australia and also about to install 8 Qmotion blinds and was a little disappointed they have no Zwave solution.

The dealer did advise that there were developments coming potentially involving voice commands??

I am trying to work out if I go the Irule road with the Vera plug in and control all future Zwave devices and IR device (Split system and Qmotion)

Or - use the method included here with the DB9 to RJ45 and IP2Sl. I think I would also need the remotec device for my Split system..?

Can anyone here with experience advise what is the best route to go down??

Thanks in advance
Title: Re: Qmotion Blinds
Post by: wilme2 on October 21, 2014, 02:14:19 pm
Hi,

I am in Australia and also about to install 8 Qmotion blinds and was a little disappointed they have no Zwave solution.

The dealer did advise that there were developments coming potentially involving voice commands??

I am trying to work out if I go the Irule road with the Vera plug in and control all future Zwave devices and IR device (Split system and Qmotion)

Or - use the method included here with the DB9 to RJ45 and IP2Sl. I think I would also need the remotec device for my Split system..?

Can anyone here with experience advise what is the best route to go down??

Thanks in advance

Which plug-in are you referencing?
Title: Re: Qmotion Blinds
Post by: bcr83 on October 21, 2014, 03:22:40 pm
Hi,

I am in Australia and also about to install 8 Qmotion blinds and was a little disappointed they have no Zwave solution.

The dealer did advise that there were developments coming potentially involving voice commands??

I am trying to work out if I go the Irule road with the Vera plug in and control all future Zwave devices and IR device (Split system and Qmotion)

Or - use the method included here with the DB9 to RJ45 and IP2Sl. I think I would also need the remotec device for my Split system..?

Can anyone here with experience advise what is the best route to go down??

Thanks in advance

Which plug-in are you referencing?

Hi, There is a plug in available through Irule for $25 that links iIrule to an existing Vera controller allowing you to take control of z wave devices through the iIrule app as well as blinds (I am not sure on this?)

I've actually read an outside forum page where a lot of members have said the supporting modules for irule particularly Vera do not work well together, sonos etc are fine however scene creation and more detailed levels of control are not available though the plugin.
Apologies typing this on the phone!

Title: Re: Qmotion Blinds
Post by: BoffinGus on October 22, 2014, 10:04:19 am
I've started some work on adapting the Somfy plugin to be used with QMotion, I'm still getting my head around Luup but can't quite follow the walk through for Somfy for where the Serial Hex code goes for actions. The Somfy commands are mentioned at the beginning but don't appear anywhere later  ???

Any pointers to a basic Luup/plugin that sends serial hex commands would be appreciated.

Gus..
Title: Re: Qmotion Blinds
Post by: wilme2 on October 22, 2014, 10:39:56 am
The iRule plug-in for VERA is really poor.  In my case I have both VERA and iRule communicating directly with the Qconnect via the IP2SL.

VERA uses my LUA function above, and iRule sends the serial commands in Hex...
Title: Re: Qmotion Blinds
Post by: bcr83 on October 22, 2014, 09:08:19 pm
The iRule plug-in for VERA is really poor.  In my case I have both VERA and iRule communicating directly with the Qconnect via the IP2SL.

VERA uses my LUA function above, and iRule sends the serial commands in Hex...

Thanks Wilme2,

For a beginner Z waver like myself, in your experience what would the easiest implementation involve the IP2SR or the Vera to Qconnect method?
I will also need remotec ZXT-120R for my split system, this doesn't clash with any of the above does it?

Apologies, rookie questions but in the process of mapping out what I need!
Title: Re: Qmotion Blinds
Post by: wilme2 on October 24, 2014, 02:17:58 pm
I personally recommend the Vera to IP2SL to Qconnect to Qmotion blinds method. 
And at the same time the iRule to IP2SL to Qconnect to Qmotion blinds method.

Meaning make the Qconnect IP addressable by connecting to it via the IP2SL.  Then you can use any number of devices to send commands to the Qconnect via the IP2SL.  I know some people on this board might prefer a direct connect between Vera and Qconnect, and hence if a plug-in gets built it might expect that direct connection, but I am definitely not in that camp.  I prefer to IP enable Qconnect and then send commands via IP.

One of the devices you will use to control the blinds under this scenario will obviously be Vera.  Then, if desired, your phones/tables running iRule or RoomieRemote would be another set of devices.

If you haven't configured an ITach device before, there will be a learning curve, but these devices are essential to making devices with IR, RS232, or contact closure part of your automation strategy, and hence I think the time is well spent.  I had the advantage of already having configured multiple IP2IR and IP2SL devices for my iRule remote control network, and had figured out how to create and modify the Hex commands sent by iRule, so I had the confidence to know it could be done.
Title: Re: Qmotion Blinds
Post by: wilme2 on November 07, 2014, 12:34:33 pm
I updated my function to take a single string as a parameter, and then parse it back to numerics.  It is uglier, but now can be used with luup.call_delay()...

Code: [Select]
function MoveQMotionShades(ParamString)

local shadeChar,openAmtChar = string.match(ParamString,"(%d+),(%d+)")
local shadeNum = tonumber(shadeChar)
local openAmtNum = tonumber(openAmtChar)
local CommandtoSend

if shadeNum == 1 then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x01,0x00,0xFC) -- Channel 1 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x04,0x00,0xF9) -- Channel 1 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x08,0x00,0xF5) -- Channel 1 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x0C,0x00,0xF1) -- Channel 1 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x02,0x00,0xFF) -- Channel 1 Down
end
elseif shadeNum == 2 then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x01,0x00,0xFF) -- Channel 1 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x04,0x00,0xFA) -- Channel 1 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x08,0x00,0xF6) -- Channel 1 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x0C,0x00,0xF2) -- Channel 1 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x02,0x00,0xFC) -- Channel 1 Down
end
elseif shadeNum == 3 then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x01,0x00,0xFE) -- Channel 1 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x04,0x00,0xFB) -- Channel 1 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x08,0x00,0xF7) -- Channel 1 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x0C,0x00,0xF3) -- Channel 1 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x02,0x00,0xFD) -- Channel 1 Down
end
elseif shadeNum == 4 then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x01,0x00,0xF9) -- Channel 1 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x04,0x00,0xFC) -- Channel 1 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x08,0x00,0xF0) -- Channel 1 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x0C,0x00,0xF4) -- Channel 1 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x02,0x00,0xFA) -- Channel 1 Down
end
end


-- Connect and Send Command

local socket = require("socket")
host = "192.168.0.123"
c = assert(socket.connect(host, 4999))
c:settimeout(5)

local sres, serr = c:send(CommandtoSend)
print("Send:", sres, serr)
local data, rerr = c:receive(5)
luup.log (data)
print ("Receive:", data, rerr)

c:close()

end

And so now to call you send a string...

Code: [Select]
MoveQMotionShades("2,0")
Title: Re: Qmotion Blinds
Post by: wilme2 on January 16, 2015, 02:47:26 pm
I had an ah-ha moment today in another thread.  http://forum.micasaverde.com/index.php/topic,11964.msg214086.html#msg214086

I have been having a lot of problems with the Qmotion shade in my kitchen not responding to open/close commands - not just via the Qconnect, but also the hand held remotes in close proximity.  I also have an Oregon Scientific receiver on my kitchen counter, and a remote temp sensor just outside the window.   Yesterday I tracked down the Qmotion frequency on the FCC website as they do not list it in any of their documentation - 433.92 MHZ.  I bet the Oregon Scientific is the interference - that is the EXACT same frequency.

http://fccid.net/number.php?fcc=X6P-EX11059&id=398176#axzz3OvOQwzEn

On one hand, if you are using a RFXtrx433 with Vera - be careful if you order Qmotion shades due to possible interference.  On the other hand, in theory with some work it should be possible to build support for the Qmotion shades into the RFXtrx Gateway, and hence control the shades from a RFXtrx433 without the $500 expense of buying a Qconnect like I did...

(Update Qmotion transmit/receive possibly encrypted :  http://fccid.net/document.php?id=2156824#axzz3OvOQwzEn)
Title: Re: Qmotion Blinds
Post by: wilme2 on April 03, 2015, 11:11:08 am
I added another 4 Qmotion blinds two weeks ago, and have updated the procedure below with all 15 channels (although I am only using 11).  I also added in check of an associated device - meaning a window sensor - before I move any roller shade.  If the window is closed, the command is sent, but if the window is open, nothing is transmitted.  That way if the window is open, the shade can only be moved manually (well not via Vera anyway), but if closed they move the position dictated by Vera.  You should customize as needed, of course...

Code: [Select]
function MoveQMotionShades(ParamString)

local shadeChar,openAmtChar = string.match(ParamString,"(%d+),(%d+)")
local shadeNum = tonumber(shadeChar)
local openAmtNum = tonumber(openAmtChar)
local CommandtoSend

if shadeNum == 1 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 26)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x01,0x00,0xFC) -- Channel 1 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x04,0x00,0xF9) -- Channel 1 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x08,0x00,0xF5) -- Channel 1 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x0C,0x00,0xF1) -- Channel 1 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x01,0x02,0x00,0xFF) -- Channel 1 Down
end
end
elseif shadeNum == 2 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 27)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x01,0x00,0xFF) -- Channel 2 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x04,0x00,0xFA) -- Channel 2 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x08,0x00,0xF6) -- Channel 2 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x0C,0x00,0xF2) -- Channel 2 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x02,0x02,0x00,0xFC) -- Channel 2 Down
end
end
elseif shadeNum == 3 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 28)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x01,0x00,0xFE) -- Channel 3 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x04,0x00,0xFB) -- Channel 3 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x08,0x00,0xF7) -- Channel 3 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x0C,0x00,0xF3) -- Channel 3 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x03,0x02,0x00,0xFD) -- Channel 3 Down
end
end
elseif shadeNum == 4 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 21)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x01,0x00,0xF9) -- Channel 4 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x04,0x00,0xFC) -- Channel 4 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x08,0x00,0xF0) -- Channel 4 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x0C,0x00,0xF4) -- Channel 4 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x04,0x02,0x00,0xFA) -- Channel 4 Down
end
end
elseif shadeNum == 5 then
-- Non-opening window, no need to check sensor
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x05,0x01,0x00,0xF8) -- Channel 5 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x05,0x04,0x00,0xFD) -- Channel 5 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x05,0x08,0x00,0xF1) -- Channel 5 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x05,0x0C,0x00,0xF5) -- Channel 5 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x05,0x02,0x00,0xFB) -- Channel 5 Down
end
elseif shadeNum == 6 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 25)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x06,0x01,0x00,0xFB) -- Channel 6 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x06,0x04,0x00,0xFE) -- Channel 6 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x06,0x08,0x00,0xF2) -- Channel 6 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x06,0x0C,0x00,0xF6) -- Channel 6 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x06,0x02,0x00,0xF8) -- Channel 6 Down
end
end
elseif shadeNum == 7 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 22)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x07,0x01,0x00,0xFA) -- Channel 7 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x07,0x04,0x00,0xFF) -- Channel 7 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x07,0x08,0x00,0xF3) -- Channel 7 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x07,0x0C,0x00,0xF7) -- Channel 7 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x07,0x02,0x00,0xF9) -- Channel 7 Down
end
end
elseif shadeNum == 8 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 23)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x08,0x01,0x00,0xF5) -- Channel 8 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x08,0x04,0x00,0xF0) -- Channel 8 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x08,0x08,0x00,0xFC) -- Channel 8 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x08,0x0C,0x00,0xF8) -- Channel 8 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x08,0x02,0x00,0xF6) -- Channel 8 Down
end
end
elseif shadeNum == 9 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 23)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x09,0x01,0x00,0xF4) -- Channel 9 Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x09,0x04,0x00,0xF1) -- Channel 9 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x09,0x08,0x00,0xFD) -- Channel 9 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x09,0x0C,0x00,0xF9) -- Channel 9 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x09,0x02,0x00,0xF7) -- Channel 9 Down
end
end
elseif shadeNum == 10 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 24)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0A,0x01,0x00,0xF7) -- Channel 10/A Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0A,0x04,0x00,0xF2) -- Channel 10/A 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0A,0x08,0x00,0xFE) -- Channel 10/A 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0A,0x0C,0x00,0xFA) -- Channel 10/A 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0A,0x02,0x00,0xF4) -- Channel 10/A Down
end
end
elseif shadeNum == 11 then
local tripped = luup.variable_get( "urn:micasaverde-com:serviceId:SecuritySensor1", "Tripped", 24)
if tripped == "0" then
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0B,0x01,0x00,0xF6) -- Channel 11/B Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0B,0x04,0x00,0xF3) -- Channel 11/B 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0B,0x08,0x00,0xFF) -- Channel 11/B 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0B,0x0C,0x00,0xFB) -- Channel 11/B 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0B,0x02,0x00,0xF5) -- Channel 11/B Down
end
end
elseif shadeNum == 12 then
-- Future Use
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0C,0x01,0x00,0xF1) -- Channel 12/C Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0C,0x04,0x00,0xF4) -- Channel 12/C 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0C,0x08,0x00,0xF8) -- Channel 12/C 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0C,0x0C,0x00,0xFC) -- Channel 12/C 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0C,0x02,0x00,0xF2) -- Channel 12/C Down
end
elseif shadeNum == 13 then
-- Future Use
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0D,0x01,0x00,0xF0) -- Channel 13/D Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0D,0x04,0x00,0xF5) -- Channel 13/D 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0D,0x08,0x00,0xF9) -- Channel 13/D 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0D,0x0C,0x00,0xFD) -- Channel 13/D 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0D,0x02,0x00,0xF3) -- Channel 13/D Down
end
elseif shadeNum == 14 then
-- Future Use
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0E,0x01,0x00,0xF3) -- Channel 14/E Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0E,0x04,0x00,0xF6) -- Channel 14/E 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0E,0x08,0x00,0xFA) -- Channel 14/E 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0E,0x0C,0x00,0xFE) -- Channel 14/E 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0E,0x02,0x00,0xF0) -- Channel 14/E Down
end
elseif shadeNum == 15 then
-- Future Use
if openAmtNum == 100 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0F,0x01,0x00,0xF2) -- Channel 15/F Up
elseif openAmtNum == 75 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0F,0x04,0x00,0xF7) -- Channel 15/F 75% Up
elseif openAmtNum == 50 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0F,0x08,0x00,0xFB) -- Channel 15/F 50% Up
elseif openAmtNum == 25 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0F,0x0C,0x00,0xFF) -- Channel 15/F 25% Up
elseif openAmtNum == 0 then CommandtoSend= string.char(0x01,0x07,0x00,0x05,0x01,0x0F,0x02,0x00,0xF1) -- Channel 15/F Down
end
end


-- Connect and Send Command

local socket = require("socket")
host = "192.168.0.123"
c = assert(socket.connect(host, 4999))
c:settimeout(5)

local sres, serr = c:send(CommandtoSend)
print("Send:", sres, serr)
local data, rerr = c:receive(5)
luup.log (data)
print ("Receive:", data, rerr)

c:close()

end


As before it is called as
Code: [Select]
MoveQMotionShades ("10,25")
or if you want a delay
Code: [Select]
luup.call_delay("MoveQMotionShades",40,"10,25")

And this is designed to work with a Global Cache iTach IP2SL connected to a Qmotion Qconnect via custom serial cable.  This config allows Vera control via IP, as well as control via other applications like iRule custom remote controls.
Title: Re: Qmotion Blinds
Post by: Pseudomizer on April 03, 2015, 02:29:27 pm
Just to clarify guys...

We are talking about Qmotion blinds where you can tilt them via the proposed solutions here. Qmotion show cased a solution last year where they will offer blinds which can be lowered/raised and also tilted at the same time and all motorized. This solution is not on the market yet.

All the code I have seen here was just to open or close the blinds which implies they are either shades to lower or raise them... or they are blinds which are always manually raised or lowered and the motorization only applies to tilt them.

Did I get this right here?
Title: Re: Qmotion Blinds
Post by: wilme2 on April 03, 2015, 03:51:15 pm
Everything I have posted here is for their roller shades or honeycomb shades.  So just raise and lower (with 3 intermediate positions).
Title: Re: Qmotion Blinds
Post by: Pseudomizer on April 03, 2015, 03:52:26 pm
Everything I have posted here is for their roller shades or honeycomb shades.  So just raise and lower (with 3 intermediate positions).

Thank you for the clarification.
Title: Re: Qmotion Blinds
Post by: Javelin on July 28, 2015, 04:43:02 am
I just purchased 8 motorized blinds with a qsync was abit nervous going the qconnect route as im not tech savy in coding or making my own cable. I see you mentioned wireshark may be able to sniff code. How hard is it to setup to see if anything is readable over the wifi network? I could give it it a try.
Title: Re: Qmotion Blinds
Post by: wilme2 on July 29, 2015, 12:11:36 pm
I don't have much experience with Wireshark sniffing - I have it installed on my laptop and use it for work - but really just to be able to read traces I get sent by another team (reviewing SIP headers to correct VOIP problems).  That said - it is easy to setup- you just pick a interface (wi-fi device) and hit start.  If the data is an HTTP call, I think you will see it in all of its glory - if some other type of communication I am not sure what you will get...

Too bad they didn't just create an API for Qsync and publish it.  Maybe they will at some point - I would rather use straight IP instead of having to do the serial encapsulation into HTTP and add the Itach IP to serial device.  (Course, now that I have that serial conversion done, it works great...)
Title: Re: Qmotion Blinds
Post by: Javelin on August 01, 2015, 02:37:36 am
Cool Ill post back if I find anything when it arrives in 3 weeks.

I sent a email to qmotion support asking about api and recived a postive reply.

We are currently working towards a two way solution-if you look for us at CEDIA you should be able to have more details on it then! Thank you for your support of our products.
Title: Re: Qmotion Blinds
Post by: Javelin on September 04, 2015, 07:38:35 am
Hooked up qsync and had alook with wireshark on my laptop I was able to find this on the IP.

Should I try hooking the qsync to my latop and making a hotspot for my android phone to connect to instead of trying to monitor it through the main 24 port switch? and router?

I can see command received in the hex data when I fire off 4 blinds.

Title: Re: Qmotion Blinds
Post by: wilme2 on September 04, 2015, 10:32:58 am
I guess 192.168.0.7 is the Qsync?  So looks like we are not seeing the call to the QSync, but instead we are seeing the response coming back after it receives a command (which is broadcast to the whole subnet, I think)...

So what we really want to capture is the message from the phone to the QSync...
Title: Re: Qmotion Blinds
Post by: mzpost on September 17, 2015, 01:36:45 pm
I've been told that qmotion are launching zwave blind in October. Once it's launched in the USA it should then be available in other regions as well.
Title: Re: Qmotion Blinds
Post by: wilme2 on September 17, 2015, 02:03:13 pm
I've been told that qmotion are launching zwave blind in October. Once it's launched in the USA it should then be available in other regions as well.

That would be cool - and certainly would help them in the market...
Title: Re: Qmotion Blinds
Post by: wilme2 on October 16, 2015, 02:55:49 pm
I've been told that qmotion are launching zwave blind in October. Once it's launched in the USA it should then be available in other regions as well.

What they launched was Zigbee.  I met with QMotion at CEDIA yesterday (http://forum.micasaverde.com/index.php/topic,34270.0.html).

I am short on time today, but if you are thinking about ordering QMotion in the next few days I would hold off.  They have cool things that are not yet available...
Title: Re: Qmotion Blinds
Post by: Javelin on October 16, 2015, 08:49:22 pm
I've been told that qmotion are launching zwave blind in October. Once it's launched in the USA it should then be available in other regions as well.

What they launched was Zigbee.  I met with QMotion at CEDIA yesterday (http://forum.micasaverde.com/index.php/topic,34270.0.html).

I am short on time today, but if you are thinking about ordering QMotion in the next few days I would hold off.  They have cool things that are not yet available...

Hopefully a product for backwards compatibility for people who already spent 1000s on the blinds..
Title: Re: Qmotion Blinds
Post by: wilme2 on October 16, 2015, 08:51:45 pm
I've been told that qmotion are launching zwave blind in October. Once it's launched in the USA it should then be available in other regions as well.

What they launched was Zigbee.  I met with QMotion at CEDIA yesterday (http://forum.micasaverde.com/index.php/topic,34270.0.html).

I am short on time today, but if you are thinking about ordering QMotion in the next few days I would hold off.  They have cool things that are not yet available...

Hopefully a product for backwards compatibility for people who already spent 1000s on the blinds..
They told me $50 per zigbeee retrofit for new motor and that includes new batteries. Course they thought I was a dealer, so there might be mark-up!

Sent from my SM-G900V using Tapatalk

Title: Re: Qmotion Blinds
Post by: Javelin on October 17, 2015, 06:30:25 am
Is zigbee helpful for vera as we use zwave.. or will new vera most likely support zigbee?
Title: Re: Qmotion Blinds
Post by: wilme2 on October 17, 2015, 10:55:14 am
Is zigbee helpful for vera as we use zwave.. or will new vera most likely support zigbee?
The Vera Plus is supposed to support Zigbee.  Me, I plan to wave for QMotion's Zwave motors, which they told me would be ready 1st half of 2016.  I just hope they offer a similarly cheap motor upgrade program...

Sent from my SM-G900V using Tapatalk

Title: Re: Qmotion Blinds
Post by: wilme2 on January 21, 2016, 02:41:45 pm
Sounds like Qmotion is moving ahead with Z-Wave.  They were just acquired by Legrand, I hope that won't derail anything...

"See the latest QMotion Shading Systems at the CES 2016 show in Las Vegas! Our Motorized Shades are being demonstrated in the Z-Wave Alliance Booth (South Hall #21000) and the CEL Booth (Sands Expo Level 2 #70957)"

https://www.facebook.com/QmotionShades/posts/1102120829807841 (https://www.facebook.com/QmotionShades/posts/1102120829807841)
Title: Re: Qmotion Blinds
Post by: Javelin on January 21, 2016, 06:36:05 pm
Hopefully they go with a zwave multi channel remote, that can talk back to the vera 2 way.
Title: Re: Qmotion Blinds
Post by: wilme2 on May 13, 2016, 11:04:45 am
I added recursive calls to my function, so that if it receives a call to move a group of shades, and one of the associated windows is open, instead of just ignoring the request, it recursively attempts to perform the same action on each individual shade.  If all the windows are open, it would be the same result - no action - but if only one of three windows in a group is open, the remaining two shades would move to the requested position.  This requires the shades to both be in a group and also individually controlled by the QConnect. 

To accommodate this, I also moved from running the function via call_delay(), to instead incorporating a delay timer "BlindChangeDelay". 

And finally I added a second QConnect with the same configuration as the first one.  The need for this is maddening, but this has dramatically improved the reliability of my shades moving as they are supposed to do.  My theory is the shades often lock out a given controller, and so by sending from two different controllers within a second or two, one of the controllers is always recognized.  I got the second controller on eBay for $40, slightly less than the ~ $500 I paid my QMotion dealer for the first one...

I attached my PLEG that peforms all the automated changes.  I have the same function in both PLEG Lua startup for this PLEG, as well as the overall Vera Lua startup, so that I can manually make changes via scenes called either by my Amazon Echo or via AutHomation on a phone/tablet .
Title: Re: Qmotion Blinds
Post by: bigmusic11 on November 02, 2018, 12:24:57 am
Oh what to do what to do. Australia now have Zigbee motors in the Qmotion blinds and can be controlled Via Alexa
But to upgrade my existing blinds would cost around $2500 though.
I have the Qsync and looking for the easiest solution for integrating to Vera Plus and Alexa.
Everything here looks so complicated and above my level of expertise.
Need someone to spell out each step for me to follow if possible. 
Title: Re: Qmotion Blinds
Post by: wilme2 on November 02, 2018, 10:43:18 am
But to upgrade my existing blinds would cost around $2500 though.

I was quoted (by QMotion itself as if I was a dealer) less than $100 USD per blind ($50? I think) to upgrade to Zigbee motors.  So even with some mark-up, I was under the impression it would be pretty cheap on my 11 blinds.  I just don't see the point since it is not tested with Vera...