https://github.com/thestaticturtle/open433
This project is an opensource usb 433Mhz rf transmitter / receiver based on an atmega328p
https://github.com/thestaticturtle/open433
Last synced: 10 months ago
JSON representation
This project is an opensource usb 433Mhz rf transmitter / receiver based on an atmega328p
- Host: GitHub
- URL: https://github.com/thestaticturtle/open433
- Owner: TheStaticTurtle
- License: gpl-3.0
- Created: 2020-05-04T13:27:40.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-06-06T17:01:38.000Z (almost 4 years ago)
- Last Synced: 2025-06-24T06:11:41.985Z (10 months ago)
- Language: Python
- Homepage: https://blog.thestaticturtle.fr/open433-lets-turn-light-on-with-the-computer
- Size: 397 KB
- Stars: 37
- Watchers: 5
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Open433
This project is an opensource usb 433Mhz rf transmitter / receiver based on an atmega328p the board uses a serial communication with a "packet" based systems (simples structs that are sent over the serial port).
The project has a basic but working implementation of a custom component for homeassistant which is similar to the rpi_rf configuration)
See my blog articles on the implementation / creation of the project:
[https://blog.thestaticturtle.fr/open433-lets-turn-light-on-with-the-computer](https://blog.thestaticturtle.fr/open433-lets-turn-light-on-with-the-computer)
[https://blog.thestaticturtle.fr/creating-a-custom-component-for-homeassistant](https://blog.thestaticturtle.fr/creating-a-custom-component-for-homeassistant)
# Building the project
If you just got your own barebone pcbs you just need to flash the arduino bootloader to do that you can use any iscp programmer (or even "arduino as isp") for the bootloader I use the arduino uno bootloader the hardware is using an atmega328p running at 16MHz at 5V.
After that you just have to compile compile and upload the scketch in the arduino folder
# Using the project
## Using the library
If you don't use homeassistant you can see an example in the software folder.
## From homeassistant
If you want to use the board with homeassistant you need to create a `custom_components` folder in the homeassistant configuration directory (same one as the configuration.yaml) then you need to rename the `homeassistant_open433` to `open433` and put it in the `custom_components`.
Then after restarting the server you need to set the configure homeassistant to use the module:
```
open433:
port: COM3
speed: 9600 #(Optional default to 9600)
```
Then you can add switches like this:
```
switch:
- platform: open433
switches:
KitchenLamp:
code_on: 2523794944
code_off: 2658012672
protocol: 2 #(Optional default to 2)
length: 32 #(Optional default to 32)
signal_repetitions: 5 #(Optional default to 15)
enable_receive: true #(Optional default to false) enable listening to incoming rf message of the switch codes
```
Or add binary sensors (with a possible timeout) like this:
```
binary_sensor:
- platform: open433
switches:
inputA:
code_on: 2389577216
code_off: 2171473408
protocol: 2 #(Optional default to 2)
length: 32 #(Optional default to 32)
on_timeout: 2 #(Optional 0 to turn off) Will turn off 2sec after receiving code_on, code_off will still be functional
```
An implementation of the light component has been done and can be used like this:
```
light:
- platform: open433
switches:
BedSideLamp:
levels:
- brightness: 0
code: 2658045484
- brightness: 100
code: 2523827756
protocol: 2
length: 32
signal_repetitions: 5
enable_receive: true
force_levels: true
```
For this example, the entity KitchenLamp will send the code `2658045484` from brightness 0 to 99 and `2523827756` to 100
The `force_levels` option allows the module to clamp homeassistant brightness slider to the specific value set in the config (ie. here sending the value 42 will go back to 0)
You can add multiple brightness stages with different codes, example:
```
- brightness: 0
code: 2658045484
- brightness: 50
code: 2926480940
- brightness: 100
code: 2523827756
```
This will send the code `2658045484` from 0 to 49 , the code `2926480940` from 50 to 99 and the code `2523827756` at 100
You can also listen to events (open433_rx) to get received codes and send events to open433_tx with the following data to send an rf code:
```
code: 2658012672
protocol: 2
bitlength: 32
```
## Licences
- Software License: GPL v. 3
- Hardware License: CERN OHL v. 1.2
- Documentation License: CC BY-SA 4.0 International