Cheap weather stations send their outdoor readings over 433 MHz radio. Pogodynka (“weather station” in Polish) is my receiver for those readings, made of an RFM83C module and an Arduino, which listens to Auriol sensors and decodes the packets itself.
The protocol is pulse-distance coded, which means that after a long sync gap the values of bits depend on how long the gaps between pulses are (about 4.5 ms for a one and 2.5 ms for a zero, with a tolerance window). An interrupt handler captures pulse timings into a ring buffer, and a small state machine looks for the sync, collects bits into nibbles and assembles packets out of them.
Next to the code I kept the documents it is based on, the receiver datasheet and a community description of the Auriol RF protocol.