Smart home
  • Register

I have been dreaming about smart-home since  - eh... maybe forever. But my family and work have kept me quite busy. So I'm starting a bit later than I expected. Well - it's better to be late than dead, so I'm starting now.

The goal(s)

  • Create/configure an automation HAB 
  • Integrate all main devices in the house
    • MVHR unit
    • A/C unit
    • Solar pump controller
    • PV controller
    • Heating management
    • Water management (well pump & support technology)
    • Lights
    • Doorbell
    • Cameras
    • TV
    • Google assistant 
    • Weather station
    • Alarm unit
  • Perform at least a year of intensive data collection and monitoring
  • Analyze data and start to do some real "smart-home" shit

 

Well - just buy one and you are good to go. Maybe - but I know myself and there is something that I don't like on all these available devices - borders, limits,limited device support,... so no - that's not the way for me. I have tried the (at that time) new Fibaro Home Center and the packaging is superb, the device looks wery good, the user interface is also good looking. If you look at the videos or presentation materials online, it look good. But I've tried it and it's horrible.  And of course, I cannot integrate everything there. 

I always wanted to write my own home automation controller software. But the time is my enemy here, so to be realistic - I will not try that. 

There is a couple of high-quality open source home automation systems and from that I have selected Homeassistant  (HA) as my favorite. It's not perfect, but I don't need to develop something, that is already there and I have to woory just about integrating my devices (if they are not already supported by HA). The community is great, programming language is python and that is very positive for me.

No - I will not write an article about installing homeassistant on raspberry pi, banana pi, orange pi or any fruit pi - plenty of beople have covered that for me. Lets just say, I'm running Homeassistant Supervised (docker) on Raspberry Pi 3. I have been running it on bananapi, but it looks like that piece of hardware is out of order now.  

Status: Working

I have installed an AUX Air conditioning unit, equipped with WiFi module. 

After a smple look into the android application, that is used to control the A/C unit, I found out, that it's using the broadlink cloud. I wanted to sniff and reverse engineer the communication, but then I found a github project, that supports broadlink based A/C units. https://github.com/liaan/broadlink_ac_mqtt a docker version is also available https://github.com/broadlink-ac/broadlink_ac_mqtt_docker so thanks to you, liian.

It handles the communication with A/C module locally and supports mqtt interface - It even supports homeassistant autoconfigure/autodiscover feature, so I'm very happy with that. 

And that's all I needed :) 

As I wanted to control my blinds and curtains via HomeAssistant, I have decided to order this MS-108ZR module:

moeshouse zigbee rf433 smart curtain switch moduleIt's a module from MoesHouse with the possibility to control via ZigBee, Hard switch and RF remote control. The RF remote is a perfect feature (from my point of view), because a cable connected wall swicth installation would not be easy in one of my rooms. Plus I don't need to get my phone, start homeassistant interface and select the apropriate page for controlling blinds.

 

 

 

 

 

 

 

I don't have an TuYa ZigBee Gateway and i'm using zigbee2mqtt for my ZigBee devices.

The device is identified in zigbee2mqtt as TuYa TS130F and the OPEN/CLOSE and STOP functions work fine, setting to requested position also works fine. One thing doesn't work - the calibration. By default, the opening and closing times are cca 10 seconds. If you have smaller or bigger shutter/curtain then the calibration is important. 

The device should be tuya compatible and by looking in to the module, we can see, it's using the Tuya ZS2S module for ZigBee communication.

Dz1WF2MdM v3.0Dz1WF2MdM v3.0ms108zr2

The main board is labelled Dz1WF2MdM v3.0 and I think, Moes could be using the same board also for WiFi version of this curtain controller. The RF part is connected via daughter board (Dz1WF1CurS v1.2) in my case with two boards on it  - the mentioned ZS2S module for Zigbee and one RF module (Dz1WF1CurW v1.0). There is also one switch, that is used for RF link & Zigbee pairing

ms108zr4ms108zr5

Button functions

  • Press 5 times - pairing OPEN button (RF433)
  • Press 6 times - pairing CLOSE button (RF433)
  • Press 7 times - pairing STOP button (RF433)
  • Press more than 7 times - Reset WiFi method? maybe Zigbee 
  • Press for more than 7 seconds to enter into Zigbee pairing mode.

Dz1WF1CurW v1.0

The RF board has 6 soldering contacts and is based on a Synoxo SYN590R (marked as U3 on the board), which is a ASK/OOK RF Receiver (http://www.synoxo.com/syne/product.php?flm=6&lm=9&zlm=12). There is also another chip, marked as U2, an SO8 packaging, but the marking is either covered or removed. 

ms108zr6

 I have decided, that this is not worth further reverse-engineering if we have a another way to get it working...

Zigbee sniffing 

Yes, this is the easier way. But we will need a tuya zigbee gateway, so I have ordered one and had to wait for it - it took very long but it came.

What do you need? Pretty much everything is very goog described here: zigbee2mqtt :: How to sniff Zigbee traffic - i strongly recommend visiting & reading this.

With tuya gateway and a cc2531 stick flashed with sniffing firmware, I installed requred software and started my (short) work.

whsniff -c 20 | wireshark -k -i -

I also had to find the right channel, so I have paired the Curtain module with my Gateway and was going channel-by channel up to channel #20 where I found the communication - hence the -c 20 parameter.

I did not see any usable data, because I did not have the encryption key, but that we'll get there... Now, I removed the device from tuya gateway (unpaired it) and with sniffer stick connected, whsniff & wireshark running, I continued.

Zigbee key

When you can sniff the pairing process, the key can be found in the Device Announcement packet:

zigbee_sniffing-1-key

You just need to copy & add it to the keys for zigbee protocol:

zigbee_sniffing-2-key

And now we should see correctly decoded data.

As I have alredy mentioned, this module was supported via zigbee2mqtt, but it was incorrectly identified as TuYa TS130F

 

 zigbee_sniffing-3-identification

As we can see, the device indeed anounces itself as a TS130F - would not be a problem if it would be 100% compatible, but it is not.

Let's not waste time and try to set the Calibration Time from Tuya App. This is what I got after setting 90s (seconds) in calibration:

zigbee_sniffing-4a-traveltime-90s

So there was a write attribute request, where the attribute was 0xf003 and value 900. Tha value was then automatically reported on line 1234:

zigbee_sniffing-5a-traveltime-90s-reported

Just to be sure, I changed the calibration time to 50s and got this:

zigbee_sniffing-4-traveltime-50s

Again - Attribute is 0xf003 and the value is number_of_seconds * 10.

Just to be sure, I have tried to change an attribute, that is already working via zigbee2mqtt:

zigbee_sniffing-6-motorreversation

And that was the motor reversation - attribute 0xf002.

Now I just needed to implement it into the zigbee-herdsmann-converters, test it and create a pull request. Meanwhile, I have published my changes for people waiting to get the calibration working here 

 

Status: In progress

This unit is covered by my work here: https://github.com/aelias-eu/vent-axia-remote

It is in the early stage - I have detected the communication interface and the protocol it uses for wired remote keypad/display unit. Now I need to implement everything into a ESP8266 or ESP32 and implement interface to MQTT server.