La Crosse WS7014
I have owned a La Crosse Weather Station WS7014 for quite a long time (I would say it is around 15 years old or so) and if one of the sensor (TX2) can't be used outdoor because it is no longer waterproof, the base station is still going strong. The newer (but at least 7 years old) sensor is a TX3-P.
Found on ebay a 433Mhz RF transmitter and receiver kit for 1 € (inc. pp)! It turned out to be a FS1000A + XY-MK-5V.
I'm not too much bothered about the transmitter but if the receiver can do the trick (at this price), why not?
Note that some projects seem to rely heavily on Aurel's modules which are in the 30€ range.
All these sensors communicate the 433Mhz band and it would be nice to be able to intercept the signal. Fortunately some people have already decoded it.
Based on this page http://www.f6fbb.org/domo/sensors/tx3_th.php and this one http://www.f6fbb.org/domo/sensors/tx_signals.php for starters and on this arduino forum as well the decoding should have been easy.
But after several hours, nothing was showing up on the arduino serial console.
Using the code posted on one of the messages it turned out that all the timings were off by 25-30%. Ajusting the ranges helped and some values from the nearest sensor appeared within minutes.
If the code in the PDF document (for Funksensor TFA 30.3120.90) is handly, I really think that Mr ROUBELAT is right when he considers a short pulse as bit 1 and a long one as bit 0 and not the other way around.
Another observation is that as far as I can tell the parity bit is always correct from the TX3 but not so from the TX2. So I decided not to rely on it but on the CRC and on the redundancy instead.
During the day I can't receive anything from the outdoor sensor but in the evening, it appears as well. Maybe the dead cheap receiver it not completely up to task to cope with the distance and several concrete walls.
Replacing the Arduino
Due to the asynchronous nature of the transmission and on the timings (a few hundred µS), using the Raspberry Pi directly won't do. Using a full size Arduino for this is certainly a waste. Maybe a ATtiny would do but I have no experience in programming them so I went for something in the middle: A digispark.
To be continued...