akirjavainen / markisol

Arduino control for Markisol protocol 433.92MHz window shades and BF-101, BF-301, BF-305 remotes
GNU General Public License v3.0
22 stars 3 forks source link

Not detecting any controls? #5

Open ReadieFur opened 2 years ago

ReadieFur commented 2 years ago

Hey there, I was wondering if you could help me get setup and goind with this. If so, this thread may be useful to others too in the future if they encounter this problem too.

Setup:

I am using a D1 Mini with the reciever wired to pin D4, which I believe is pin 2 as required by the example. For the reciever/transmitter I am using the Dollatek 433mhz RF, which can be found here.

Problem:

I have sucesfully uploaded the sketch but when I press the buttons on my remote, the serial dosent seem to pickup anything. If I enable debug and additional modes, the serial outputs a bunch of messages saying invalid timings and commands. even when I'm not pressing anything on the remotes.

Other details:

The remote I am using says its the model BF-305 frequency 433.92mhz, so I'm pretty sure this should be valid correct? The buttons on the remote are up, down, stop, channel+- (left right buttons to control multiple blinds).

Any ideas or tips on how to work around this? Thanks.

drphungky commented 2 years ago

I'm mainly monitoring this repo in case more people can put their heads together and decode the remote signals this program helps you capture (mainly the checksum at the end). So, totally hijacking the thread to answer, but if your interest is purely functional and since you mentioned workarounds, there are other tactics if you can't get this working:

If you don't get a response or can't get the program to work, I was able to copy my signals using a Software Defined Radio (SDR) and Universal Radio Hacker. That's extra beneficial in case your remote doesn't match the structure in this program. It did an excellent job of getting the signals in and readable, then I had to use a python program or spreadsheet to convert the tribits to bits (i.e. 010 is 0, 011 is 1). Then the 41 bit signal you can try to decode the individual bytes, or you can just take the raw signal from Universal Radio Hacker and have whatever your broadcast software of choice is rebroadcast it if you don't care to understand how it works, and only duplicate the signal. In that case, you could use something like ESPHome (what I did), or write your own basic Arduino program to transmit your hardcoded values.

computerdude95 commented 2 years ago

@drphungky You mentioned you were able to use ESPHome to duplicate the signal this program can send out. Would you care to share how you did that? I have made my blinds work with this sketch, but would like to integrate with Home Assistant via ESPHome.

drphungky commented 2 years ago

@computerdude95 I forgot to respond to this, sorry. For ESPHome I actually hardcoded the values becuase I had them from trying to crack the encoding. I went all back and forth on the Home Assistant discord and the ESPHome documentation trying to make my blinds "Devices" but they ended up being entities becuase it's easier with the defualt way the integrations are setup. Generally speaking, unless you're writing your own integration in Python, it's hard to make a device. I made one that was auto discoverable via MQTT because you can do that, but then it wasn't recognized as a "Blinds" type by Google Home, so I ended up scrapping everything and doing ESPHome, which adds entities. It also lets me use Google voice to activate them with standard commands (though no tilt which is what I was trying to solve with the cutom device). Anyway, here's a pastebin of my ESPHome YAML in case it helps. Sorry it took so long!

https://pastebin.com/ztj4V1W0

akirjavainen commented 2 years ago

Apologies for the (very) delayed answer. There is some variation with timings on different remotes and receivers. I'd try modifying AGC timings from RemoteCapture.ino wider from the while loops. For example, change 4500 smaller and 6000 higher. If you then get AGC 1 in console with debug mode enabled, do the same (if necessary) for AGC 2.