Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elsner Solexa 230V #2798

Open
rauar opened this issue Jan 20, 2024 · 8 comments
Open

Elsner Solexa 230V #2798

rauar opened this issue Jan 20, 2024 · 8 comments

Comments

@rauar
Copy link

rauar commented Jan 20, 2024

Manufacturer: Elsner Elektronik

Product Website

This device shows the following measures:

  • temperature outdoor (degree celcius)
  • temperature indoor (degree celcius)
  • light intensity (lux)
  • wind speed (m/s)

Furthermore there are controls for:

  • open sunblind
  • stop sunblind
  • close sunblind

So far so good. My wind sensor always shows 70m/s which causes the sunblind to never open. The windsensor is a separate device (not shown on the product website). Hardware replacement seems complicated and it's physically difficult to get hands on the wind sensor.

The plan: reverse engineer the handset. If successful then i can control everything from HomeAssistant and potentially use a different 3rd party wind sensor (or an existing one in my neighbourhood).

I collected quite a few samples for open/stop/close and sensor measures.

Using rtl_433 -R 0 -X 'n=elsner,m=FSK_MC_ZEROBIT,short=11,long=21,gap=25,reset=300' -f 868200000 I can see decoded bytes. But as I'm new with modulations and decoders I'm not 100% if this is an appropriate setting.

Screenshot 2024-01-20 at 19 22 55

@rauar
Copy link
Author

rauar commented Jan 20, 2024

Some sample cu8's.
elsner.zip

@rauar rauar changed the title Elsner Solexa 230V Sunblind Elsner Solexa 230V Jan 20, 2024
@zuckschwerdt
Copy link
Collaborator

You should use -X 'n=elsner,m=FSK_MC_ZEROBIT,short=11,long=11,reset=25' and -f 868.2M
Short is long for MC (NRZ), s.a. https://triq.org/rtl_433/PULSE_FORMATS.html
There are no packets separated by a gap, reset needs to be the first invalid gap, i.e. somewhat longer than 22 µs.

@rauar
Copy link
Author

rauar commented Jan 28, 2024

Thanks for the hints. I did look into the payloads for a couple of hours and tried to find the temperature value but the whole payload seems to be at least for the most part (except a static preamble or network id) obfuscated or even encrypted.

Not sure if I will put more effort into it with questionable outcome.

One question which I could not figure out yet is: when rtl_433 detects and decodes a page it shows "code: {some number}. I guess some number is the payload length but it does not match up with the payload string length it outputs. What exactly is that number?

For future reference - the handset seems to send payload with "length" 314. The outdoor station sends messages with 315 "length".

Some messages:

02b3ab64eeae603a45dbf7f5aad1f3a70468e070988330904f602cecaca32fb576b93e489d79c6c
02b3ab64eea7105c8a240815eb123468876eed4848226f0fc9d55741d737d9489d46993e48ee150
02b3ab64ee9cbaf2b63c3835eb1274e9ca34775ef53c6337d9f55741d7789acbe39332306ccbca0
02b3ab64eeb933a49a040815eb12342806ad69027c0a7f31c9d55741d73819891e489d0658c5b1c
02b3ab64ee88d2a459c3c7d5aad1b366c3e81fed11b5149edf402cecace3b0f7bb0250ad6681028
02b3ab64ee9efc3c09e3c7d5aad1b3260264d860f944f4675e7fecac6c222db16ea91e081c0bbd8
02b3ab64eeb6aa9a461c3835eb123428472eab8705dda5d8640a821701cd441e081c44953651a88
02b3ab64eead17747a040815eb123468c8306f0e543a5f2c89955741d737d9081c44953678f81ca
02b3ab64ee9a312862142815eb1274e9c9f3f65cb0f391da546a8217018cc31c44953678fdb4d10
02b3ab64eea80ca052342815eb123468c7f02e8d52365736e9955741d737d9085cc5973a40c56fc
02b3ab64ee87cb2011f3e7d5aad1b3668366dc2807a12c90ff402cecace3b0b77a814ea95eb47dc
02b3ab64ee8f9a3e4e2c1835eb1274a90870f01017c1adddc48a8217018d039d46997e891e4cd74
02b3ab64ee9f38fc4a240815eb1274e9ca34b7dfb6ffa9d2b4aa8217018cc31c04143474f5952c0
02b3ab64eebe36b842142815eb123428066ce840b8c3b1d614aa821701cd445e895ec99f0a5c0f4
02b3ab64eeb8ebe419c3c7d5aad1f3e7c5ec26bd31b51489df002cecaca2ef3474f5b77a816b9ac
02b3ab64eeb19cc65e0c1835eb12342846ee2ac5c3185b1c79b55741d73819c99f0a200c64c9aec
02b3ab64ee86865a461c3835eb1274a94932b39725dda5f4a48a8217018d03ddc7db8352f19cc88
02b3ab64ee8d53f63dcbd7f5aad1b366c4285f2e547ae06e0f1fecac6c21ed302c649536382535c
02b3ab64ee94201072342815eb1274e9897334996a267708c9955741d7789a8b62d1af2a60c23ba
02b3ab64eea807e052342815eb123468c7f02e8d52365709e9955761d737d9085cc5973a40d12ec
02b3ab64eea0780215fbf7f5aad1f3a744ea22b56256d85d2f1fecac6c626e3270eda71a000cf84
02b3ab64eeae527a05dbf7f5ead1f3a70468e070988330b0cfe02cecaca32fb576b93e489d50afc
02b3ab64eeb35b8e2debd7f5aad1f3e785aba73baeaf08b6ef602cecaca2ef74f5f7fb83528a9f4
02b3ab64eea6819a461c3835eb123468876eed88c92473115a355741d737db489d46d9ff8b2dd14
02b3ab64ee959e567e0c1835eb1274e989733619eb287b353a355741d7789a8b62d1efeba33b00a
02b3ab64eeab092c6a240815eb123468c7efef4c50324f1d0a155741d737d9085c85d6f9bf10934
02b3ab64eea3368c6a240815eb12346887afaf0b8eef89f434aa821701cd849f0a200c64d58da8c
02b3ab64ee99e3a821d3e7d5aad1b32602a55a623b893c98bf402cecace37076f9bf4aa14e93f54
02b3ab64eeb3968e6e2c1835eb12342846edeb443fd18dfb048a821701cd441e489d46993e55db6
02b3ab64eea77e1e0debd7f5aad1f3a7452aa537a69f28b0af602cecaca32ff5f7fbc393729757c
02b3ab64ee9d69b63dcbd7f5aad1b32602651a21ba87388c6f602cecace37076b93e081c8559198
02b3ab64eea8bde2563c3835eb123468c7f02fcd11f595cf248a821701cd84df8b2250ad2647c70
02b3ab64ee910e845a140815eb1274e989b3765a6c2a7f21c9d55741d7789a8b2250ad2658f0c78
02b3ab64ee83310c6a240815eb1274a948f1f35460124f00c9d55741d7785a0a608566d9bf3c998
02b3ab64ee8636d842142815eb1274a94932b4d7661e672ba9d55741d7785a0a200c64d5b72d9b8
02b3ab64ee8c437235fbf7f5aad1b366c42860ae9cbb20a08f602cecace3b0f7fb831270ad630d0
02b3ab64eeb18d065e0c1835eb12342846ee2c15c3185b203a355741d73819c99f0a200c64ca230
02b3ab64ee8d03747a040815eb1274a9087132119ac7b9d634aa8217018d039d46d9ff8b2256bc8
02b3ab64ee9a5dea25dbf7f5aad1b32602a59ae37e4eca78af5fecac6c222db12e285cc5d7c31a8
02b3ab64eea97b661dcbd7f5aad1f3a704a962725c4ac06a8f5fecac6c626e72f1af6ae1cfc8354
02b3ab64ee8a3be862142815eb1274a908b1b2d35e0e47382a155741d7785a4ae1cfab2250f1a94
02b3ab64eea8b862563c3835eb123468c7f02fcd11f595d564ca821701cd84df8b2250ad2642c20
02b3ab64ee9149c61dcbd7f5aad1b32642e61c258297189aefa02cecace3703678fdc79b42b7eac
02b3ab64eeae42ba05dbf7f5aad1f3a70468e1b09083308acfa02cecaca32fb576b93e489d685ec
02b3ab64eea4ee9439c3c7d5aad1f3a7452a64b6e55ce4729f7fecac6c626e32306ce5d7fbf504c
02b3ab64ee8d3df47a040815eb1274a9087132119ac7b9e3f4ea8217018d039d46d9ff8b227f952
02b3ab64ee93ca9031f3e7d5aad1b32642e5db643f910c8d7f802cecace3703678bd46997eac69c
02b3ab64ee8f413e0debd7f5aad1b366c428a12f96bf28a12fa02cecace3b0f7fbc3d3b3728b1c8
02b3ab64ee9edffc09e3c7d5aad1b3260264d9a0f944f4479f7fecac6c222db16ea91e081c13128
02b3ab64ee8ade2469e3c7d5be91b366c3d122448952a54ad5ab56ed9af5ab166c9931e34691b90

and here some info on change frequency and number of different hexcodes used (calculated with 2 byte width):

Change Frequencies:
Pos 0+2:  0.00%
Pos 1+2:  0.00%
Pos 2+2:  0.00%
Pos 3+2:  0.00%
Pos 4+2:  0.00%
Pos 5+2:  0.00%
Pos 6+2:  0.00%
Pos 7+2:  0.00%
Pos 8+2:  0.00%
Pos 9+2: ############################### 77.55%
Pos 10+2: ######################################## 100.00%
Pos 11+2: ######################################## 100.00%
Pos 12+2: ######################################## 100.00%
Pos 13+2: ######################################## 100.00%
Pos 14+2: ####################################### 97.96%
Pos 15+2: ####################################### 97.96%
Pos 16+2: ####################################### 97.96%
Pos 17+2: ##################################### 93.88%
Pos 18+2: ##################################### 93.88%
Pos 19+2: ################################# 83.67%
Pos 20+2: ################################# 83.67%
Pos 21+2: ########################## 67.35%
Pos 22+2: ########################## 67.35%
Pos 23+2: #################### 51.02%
Pos 24+2: #################### 51.02%
Pos 25+2: ################## 46.94%
Pos 26+2: ################## 46.94%
Pos 27+2: ############################## 75.51%
Pos 28+2: ############################## 75.51%
Pos 29+2: #################################### 91.84%
Pos 30+2: #################################### 91.84%
Pos 31+2: ####################################### 97.96%
Pos 32+2: ######################################## 100.00%
Pos 33+2: ######################################## 100.00%
Pos 34+2: ######################################## 100.00%
Pos 35+2: ######################################## 100.00%
Pos 36+2: ######################################## 100.00%
Pos 37+2: ######################################## 100.00%
Pos 38+2: ######################################## 100.00%
Pos 39+2: ######################################## 100.00%
Pos 40+2: ######################################## 100.00%
Pos 41+2: ######################################## 100.00%
Pos 42+2: ######################################## 100.00%
Pos 43+2: ######################################## 100.00%
Pos 44+2: ######################################## 100.00%
Pos 45+2: ####################################### 97.96%
Pos 46+2: ######################################## 100.00%
Pos 47+2: ######################################## 100.00%
Pos 48+2: ####################################### 97.96%
Pos 49+2: ################################# 83.67%
Pos 50+2: ################################# 83.67%
Pos 51+2: ############################ 71.43%
Pos 52+2: ############################ 71.43%
Pos 53+2: ############################# 73.47%
Pos 54+2: ############################# 73.47%
Pos 55+2: ############################ 71.43%
Pos 56+2: ############################ 71.43%
Pos 57+2: ################################### 89.80%
Pos 58+2: ##################################### 93.88%
Pos 59+2: ####################################### 97.96%
Pos 60+2: ####################################### 97.96%
Pos 61+2: ####################################### 97.96%
Pos 62+2: ####################################### 97.96%
Pos 63+2: ######################################## 100.00%
Pos 64+2: ######################################## 100.00%
Pos 65+2: ######################################## 100.00%
Pos 66+2: ######################################## 100.00%
Pos 67+2: ######################################## 100.00%
Pos 68+2: ######################################## 100.00%
Pos 69+2: ######################################## 100.00%
Pos 70+2: ######################################## 100.00%
Pos 71+2: ######################################## 100.00%
Pos 72+2: ######################################## 100.00%
Pos 73+2: ######################################## 100.00%
Pos 74+2: ######################################## 100.00%
Pos 75+2: ######################################## 100.00%
Pos 76+2: ####################################### 97.96%
Pos 77+2: ######################################## 100.00%
Character Spread:
Pos 0+2:  0
Pos 1+2:  0
Pos 2+2:  0
Pos 3+2:  0
Pos 4+2:  0
Pos 5+2:  0
Pos 6+2:  0
Pos 7+2:  0
Pos 8+2:  0
Pos 9+2: # 3
Pos 10+2: ############## 33
Pos 11+2: ################### 44
Pos 12+2: #################### 46
Pos 13+2: ################### 43
Pos 14+2: ################## 42
Pos 15+2: ############# 31
Pos 16+2: ############## 33
Pos 17+2: ####### 16
Pos 18+2: ###### 15
Pos 19+2: ### 7
Pos 20+2: ### 7
Pos 21+2: # 3
Pos 22+2: # 3
Pos 23+2:  2
Pos 24+2: # 3
Pos 25+2:  2
Pos 26+2:  2
Pos 27+2: # 3
Pos 28+2: # 3
Pos 29+2: ### 7
Pos 30+2: ### 7
Pos 31+2: ###### 15
Pos 32+2: ######### 21
Pos 33+2: ############ 29
Pos 34+2: ############## 33
Pos 35+2: ################ 38
Pos 36+2: ################### 43
Pos 37+2: ################## 42
Pos 38+2: ################### 44
Pos 39+2: ################# 39
Pos 40+2: ################# 40
Pos 41+2: ################## 41
Pos 42+2: ################# 40
Pos 43+2: ################ 37
Pos 44+2: ################ 36
Pos 45+2: ################# 39
Pos 46+2: #################### 45
Pos 47+2: #################### 46
Pos 48+2: ############### 34
Pos 49+2: ######### 22
Pos 50+2: ######### 21
Pos 51+2: # 4
Pos 52+2: # 4
Pos 53+2: ## 5
Pos 54+2: ## 5
Pos 55+2: # 4
Pos 56+2: # 4
Pos 57+2: ### 8
Pos 58+2: ##### 12
Pos 59+2: ###### 15
Pos 60+2: ####### 16
Pos 61+2: ############ 28
Pos 62+2: ############ 27
Pos 63+2: ################ 36
Pos 64+2: ################ 36
Pos 65+2: ################# 40
Pos 66+2: ################ 38
Pos 67+2: ################ 38
Pos 68+2: ################# 39
Pos 69+2: ################# 39
Pos 70+2: ################# 39
Pos 71+2: ################# 39
Pos 72+2: ################# 39
Pos 73+2: ################### 43
Pos 74+2: #################### 46
Pos 75+2: #################### 47
Pos 76+2: ################### 44
Pos 77+2: ################# 39

@zuckschwerdt
Copy link
Collaborator

it shows "code: {some number}. I guess some number is the payload length

Yes, the code length in bits. The hex string is nibbles and thus rounded up to 4.

The codes have little structure and are too long for such little data to be easy to figure out, I agree :/

@RogerHartmann
Copy link

hello @rauar, do you have progress on this? I also have a Solexa. I am searching the web if somebody was successful in connecting it to other systems. Thanks

@rauar
Copy link
Author

rauar commented May 20, 2024 via email

@ProfBoc75
Copy link
Collaborator

Hi,

I did a little analysis from the data shared here, I don't have these devices, just want to share my findings.
First, with sync/preamble = 0x0a, we have 304 bit = 38 bytes, tried with
-X 'n=elsner,m=FSK_MC_ZEROBIT,short=11,long=11,reset=25,preamble=0a'

The 2 last byte are a CRC-16, poly 0x1021, init 0x68b3, from the previous 36 bytes.

Then there is a structure, but difficult to say what is what ?
Few nibbles are static or with very few changes like only 2 values 0x0 and 0xF for example , other nibbles are more dynamic and change each message, and others have a small change, could be Temp values with slow variations.

My understanding is that the signal is bi-directional, the console is able to send and receive signal, and in such situation we may find into the message, some commands, the sender and the receiver ids into the frame, acknowledge and so on.

I noticed that sometimes data is present from one signal to the next, but shifted to the left. Could be 1 bit left shift, or 1 byte left shift. Here we can recognize the bytes shifted to the left line after line on the right part of the message just before the CRC-16.

{304}cead93bae7a88c874f9f18cb47cf9f55b088c7bfaf8f4fcfcfcfcfcfcfcfceccc8c0b090 4f71 [ open ]
{304}cead93bacf772cc7cf9f18cb47cf9e54aec7bfaf8f2b31ffcfcfcfcfcfceccc8c0b09050 2010 [ open ]
{304}cead93ba9f166c47cf9f18cb47ce9d52aa7aaf8f4fcfcfcfcfcfcfcfceccc8c0b09050d0 48cd [ open ]

bitbench

@m1cha77
Copy link

m1cha77 commented May 24, 2024

Hello, I have some information about the communication protocol of the WiFi interface SOL here. I hope this helps. Unfortunately, I can't do much with it myself, but I have an elsner system and would like to integrate it into Home Assistant. Greetings - Micha
WLAN_Kommunikation.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants