Hi,
I would like to have motorized blinds that can report current state and can be controlled from several sources (manually via button, remotely via mqtt etc) and also be "percentage" controllable, meaning shut only 30% or so.
I can fix pretty much all with mysensors, but motor itself is a tricky part, I would like it to be robust and "properly" done (easiest is with commercial products).

I leave in Norway, Europe and I have not yet ordered any motor, still checking out options. I saw recommendations about Somfy motors (I also like that they can run on batteries). But from what I have understood the motor needs to have 3 wires (neutral and up and down) for arduino to determine current percentage? or is it?
They are also natively 433mhz, and I have rfLink for 433 comunication but again there is issue of keep state synchronized with multiple inputs (physical remote, mqtt, etc...)

I was considering something from ebay as well, but again, two vs three wires for mysensors, can that work somehow?

I never heard of motors that can be directly controlled with percentage, as usually they are "dumb" and require a controller that does the "calculation". I have seen zwave roller/shutter controllers that auto-adjust by sensing the end stops of the blinds and interpolate a percentage that you can set and they will execute.

@gohan after some more research I agree, I did see on some motors button for reset-setting end points, so I assumed that they might have more logic in them. But it looks like that built-in end point control is for the 433mhz models only, as they send/receive plain on/off/myLocation messages, and the motor must figure out where to go on its own.

I guess that with modifications a two wire motor can be used as well, by of reversing the polarity and counting the time to determine start/stop and percentage? (eventually using physical switches for calibration and to determine where the start/stop are)

Yes, but is still something that needs to be mounted somewhere (and it will be in sight too, remember the WAF) and it doesn't give you any real benefit since there is no need to measure speed since it is fixed.

@gohan Why would it be visible? Wouldn't it be in the lintel, the same as the motor? i.e. not visible.

By looking at the motor he posted I don't see any place where that speed sensor could fit and be hidden. I don't see a real benefit in putting sensors around while you could achieve the same result from the motor controller. If you have end stop sensors already, good, you can use those but if they are not accessible or not present, you can still use a current sensor to detect when motor is suddenly not drawing any current or if it is drawing too much, meaning it has reached the end stop.

My neighbour has zwave roller blinds controllers and they work like that, using end stop and calculating the position. The first time you need to "calibrate" and it will measure time between the 0/100% positions, then I suppose it's just recalibrating/realigning each time you ask it to go fully opened or fully closed, as he's been using them for a few years and never had to recalibrate. In the end it seems to work very well.

The Hunter Douglas has motors that more or less do what you describe. The easiest way to get this running is to buy into the ecosystem (including the hub). From there you control your shades by telling them to go to 50% or something. This is not time based, but based on an encoder motor.

Thank everyone, I forgot to check the topic (I was thinking email notification would arrive, but got nothing.).
It looks like most popular/easiest way is to go with using end stop and calculating the position as @Nca78 mentioned above, and this is what I have found that is closest to the commercial solution I am considering.https://www.m.nu/rullgardin/motorisera-rullgardin-1-motor-z-wave-24v

It is a website in Swedish, but basically they have a 24v DC motor and a z-wave Flush shutter from Qubino (as well as adapter for ikea blinds f.eks.). It costs a bit over 180e per window (without the blinds).
To go with mysensors I guess it would be around 35e for motor from ebay and electronic parts (and printing or making adapters). I guess 60e + time spent on it?
I would not think much if it is just one window, but I need it for five, so if I can save ~100e for window, there might be some math in the mysensors/diy approach .

In theory, the most difficult part is to make a motor controller that would control the blinds just like mentioned Qubino controller does (which I think I can make, with help from community if needed).
But then a nice remote would be needed as well, most likely mysensorified one so that it can talk directly to the blinds, thus still controlling the blinds even if gateway or controller er offline. Remote doesn't have to be that beautiful, but since it would be the only visible component, it is very much desirable. (it can be semi-hidden as well, or a nice casing could be used and converted to mysensors, not that huge deal, two buttons in the worst case)

Because of all this I am highly considering commercial approach, but it would be really cool to have this project realized in diy, to demonstrate how some serious money could be saved (and to save me some money as well where some portion would be of course donated to the mysensors again )

I have since 1.5 years a roller blind solution up and running. The logic is based upon the solution of @scalz.

It uses standard Becker (similar quality as Somfy) motors 4 wired, that normally has an indoor switch unit. I chose this since significantly cheaper than any radio controlled solution, and absolutely robust. Definitely a plus for something firmly built into the walls.

For control I have hubs for 4 windows each. They include mysensors, Arduino, and an 8 pcs relay board. Enabling of setting individual positioning by counting time. The total run time is adjustable through mysensors commands. This proved to be for me a simple but very reliable method. I can set any percentage, or even stop, and then it reports actual state. The complete ecosystem is within an openHAB controller, thus I can set automated rules, e.g. go down at the local dusk time, or gently wake up just by go up a bit.
Code is here available: https://github.com/krejcarek/mysensors

Overal very happy with the setup. Two issues I experienced:

some struggle with range, and unreliable transfer in mesh

the units are in the attic. In winter I experience some unreliable operation, some units "freeze". Can be literally, or due to some solder quality issues, not sure yet what is causing it.

@nca78
Yes, thats quite heavy. Need to check it practically. I started to test the motor (now only on the desk), but my 28BYJ-48 motor is shaking with AccelStepper library. With some simple code without included any library - working fine, so I will look why thats happening.

@dakipro I do have somfy motors wired to the control panels everywhere. The motors itself are very good. There are also newer ones I think which can be controlled wireless in case you do not have the wires yet or would need to wire it. then it only needs power at the window.

For controlling, I used to have mysensors, but never had very reliable results. Potentially my bad electronic skills and switched to comercial solution lately (Homematic).

At the end I purchased and installed z-wave roller blinds from Swedish company m.nu .

So far so good, and if all is great, I will order three more motors (and two knobs/switches) for living room and terrace doors (which should also automatically keep the shades open if doors er open, to prevent damage).

Made a basic node-red flow that uses xiaomi lux sensor to get them down, but ultimate goal is to have them understand when the light is very bright and when it is "cozy", perhaps even knowing to get the blinds just low enough. Found one good explanation on the internet, will check it out (perhaps use multiple lux sensors strategically placed around the room to determine sun position and strength). Any tips and tricks?

It is wireless, gyroscope based "button" that works directly with motor itself. They say battery lasts for 6months, but it is usb rechargeable, so not a biggie. It reports battery level to the controller so that is a plus.
As far as WAF goes, it is wireless and looks nice so that is a plus, but to use it it is a bit, well.. different to operate as it is just held by magnet on the holder/wall and has no rotation limitats, so it is not 100% intuitive for first time use as you just turn it and then nothing happens, then you have to wait almost 2s for it to settle and send new position to the shades, and one cannot change direction (at least I didn't find how) so "left" might be counter intuitive as if shades are open or closed, so it is a bit fiddly to operate. Also it has a tolerance rotation, meaning that fine adjustments for the shades are a bit hit and miss, so...
But I am hoping that blinds will mostly work automatically so that would not matter that much. And I didn't find some much better remote dimmer-like controllers for the blinds, so.. it will work for now. Easy to replace I think

@dakipro why bother with individual sensors at the windows? You can calculate the sun position (azimuth and elevation) any time during the day and check if it would be possible for the sun to shine into the room. And in second step you only need to know if sun is shining or it is cloudy. Simplest way is using an online weather service. However I noted that this is not very reliable. My solution is based on MySensors:
It is a weather station with some sensors (rain, temp, pressure). I've started with a light sensor but found it very unreliable also protection from environment is difficult.

So at the end my sun senors is quite simple. One dallas sensor exposed to the sun and a second one in the shade. If the difference is high enough, sun is shining. Depending on your geographical location and preferences values might vary but for me (Zurich, CH) 10 degree celsius seems to be a good value.

@neverdie I am not that smart, just using the library from my controller: the astro binding for openHAB. It returns any time of the day the sun position based on your location. So what I do is basically check for any window* in the house if azimuth is between two values and if true checking in addition if sun is shining and when both are true, the rollershutter will go down. When sun stops shining or the sun has moved away, it will go up again.
Elevation is no big deal in my case, only on the western side in late afternoon during winter months but for a start, I would recommend working with azimuth only.
Also the inputs for down and up should have different values (e.g. going down > 10 degree; going up < 8 degree) otherwise they might constantly go down/up when reaching the peaks.
And to make it more complicated, I also added conditions if someone is present, if it is raining, wind is too strong etc.

Elevation is mainly used to trigger sunrise and sunset events (open in the morning, close in the evening)

*for practical reasons I have groups based on the side of the house, but then doing different things.

thanks @parachutesj , I was thinking of something similar as well, sounds much simpler then my initial thought to have several sensors in a line to determine position of the shade in the room... I also like your temperature sensor solution, as that is actually what we would mostly like to react to, especially on the winter.
I have quickly found one solution on the internet, using luminosity sensor http://www.instructables.com/id/A-solar-tracking-automatic-motorized-window-blind-/

I must also deal with "manual override" but I have seen some design patterns for it already, using the "dead switches" / proxy items. And a door that should prevent blinds to go down if doors are open. Should be possible to program in node-red.

@dakipro well WAF is important. Mine complained a lot when things didn't work but as it is quite stable she enjoys it but would never state that

A perfect solution is always very difficult to achieve. However when looking at my office where all blinds are triggered at the same time on any side of the building, it never works well and just annoyes anyone.
Here at home, it works in most cases but you could always tune a bit. That is what I meant with "starting with azimuth and forget about elevation". There are cases in early morning during bright winter days when sun rises there is sun shining and blinding us at the dining room table. temperature difference is too low and it would not react. Two possibilities:
a) manually trigger or
b) build an even more complex rule (which I did).

But these are cosmetics. And one could not predict all cases over 365 days in all possible weather situations.

Regarding dead switch:
I do not have any logic in my actuators. Fullstop!
All comes from openHAB.
First of all I do have one master switch, this kills everything. No actuator can be triggered automatically (sometimes important for WAF).
Second there are certain conditions which cannot be overruled: e.g. if it starts raining, the roof windows close also when the wind speed is above trigger, rollershutters go up. These are mainly in order to prevent damage (except when master switch - rule 1 - is off).

And then the rest could be easily achieved. If done with MySensors, just send an additional fake state back to the controller when you manually trigger something and then check in your rules:

I work for example with my rollershutters like this: when it goes down automatically, it goes to 85%. If it shall go up, I also check if it is at 85% - if not, then someone set it manually and I do not move it. Chances are pretty high, that if it is triggered manually it is not at 85% and rather at 84 or 86 or even something completely different.
But then when sun sets, it overrides again and automatic kicks in again.