MQTT433gateway -- MQTT 433.92 MHz radio-frequency device gateway

Hi again puuu

Maybe you can help me… i tried to use your sketch with an rxb6 ( ), but i did not receive anything. Then i tried with a cheaper rx unit ( ) and then i recive the codes.

Hi tbs,

authentication for the mqtt broker is on the way: PR #7

The rxb6 modules work for me. Have you checked the voltage levels? You need to supply 5V. Have you seen the schematic in the hardware folder?

Hi puuu

Thank you for taking the time to write back to me. I have looked at schematics at hardware folder and everything is wired up correctly. I am measuring 5,7 vdc between gnd and vcc. If i use one of the cheap chinese rf rx modules i works, thats really frustrating because i really wanna use your sketch with the support for the weatherstations while using at good rx module. If try with 1technophile’s OpenMQTTGateway sketch the RXB6 also works.

So both works, other module with MQTT433gateway and the RXB6 with the same hardware but another sketch?

This sounds weird. Have you tried to enable Logging mode and RAW mode? What is the output?

Before hijacking this thread, please consider to discuss it in a github issue.

Yes RXB6 works with another sketch.

I will open an issue on github to post the output of RAW and Logging mode

Thanks for sharing this. I am already using the OpenMQTTGateway. It works great except it doesn’t support some sensors such as weather stations that sense temperature and humidity. Before I try yours, I have a couple of question.

  1. Can your gateway support the sensors listed in 433toMQTTto433 Gateway Device List ?
  2. Can your gateway support any weather station? If yes, which one?
  3. Since I already have a working OpenMQTTGateway, I can replace it with yours by replace the sketch without any hardware changes?

For decoding/encoding ESPiLight is used, which based on pilight. So all protocols supported by pilight should work with MQTT433gateway. A list of supported protocols can be found [here]
( This list also includes weather station and I have two different weather station are running.

If you change the pin configuration in the sketch, it should work.

I really like the sound of this but I’m having problems uploading the code, I have downloaded MQTT433gateway and placed it my Arduino folder and then downloaded ESPiLight and placed into my libraries folder, when I tried to upload it to my ESP I get a compile error…
in file included from sketch/src/ESPiLight.cpp:22:0: /Users/xxxxxxxx/Documents/Arduino/libraries/ESPiLight-master/src/pilight/libs/pilight/protocols/protocol.h:26:26: fatal error: ../core/json.h: No such file or directory #include "../core/json.h" ^ compilation terminated.
I am using Arduino IDE 1.8.2… I am not a programmer and I can’t fix this could do with some help so please if you can thank you

You probably have not installed ESPiLight correctly. The easiest way is to use the Arduino Library Manager. If you install from source, you have to run make. Please see the README of ESPiLight.

Hi Puuu, thanks for your response I reinstall the library and everything is working fine, can you tell me is it possible to interact with the gateway using an Arduino and 433tx if so how and do you have an example sketch that I can work from thank you.

Sorry, I don’t get what you want. You can interact with the Gateway via MQTT. Why one want to interact with an Arduino? For sure you can simulate a 433 MHz remote control or weather station with an Arduino and 433-transmitter. For this you have to use a library like rc-switch or ESPiLigh (only ESP8266).

Yes I suppose I want to emulate a remote i.e…“weather station with an Arduino and 433-transmitter. For this you have to use a library like rc-switch” I have the library rc-switch, but don’t seem to be getting anywhere. I need to create some small low powered sensors using Arduino and 433-transmitter, eventually I will swap the Arduino for tiny85.

I’m trying to get you code to work with a 3-pack of Telldus Slim RF outlets.
I begun with trying to sniff the codes, and this is what I get:

pulses: 132 possible protocol: arctech_switch
RF signal arrived [arctech_switch][52381518] (3) {"id":52381518,"unit":15,"state":"off"}
pulses: 132 possible protocol: arctech_screen
RF signal arrived [arctech_screen][52381518] (3) {"id":52381518,"unit":15,"state":"down"}
pulses: 132 possible protocol: arctech_contact
RF signal arrived [arctech_contact][52381518] (3) {"id":52381518,"unit":15,"state":"closed"}

pulses: 132 possible protocol: arctech_switch
RF signal arrived [arctech_switch][52381518] (0) {"id":52381518,"unit":15,"state":"on"}
pulses: 132 possible protocol: arctech_screen
RF signal arrived [arctech_screen][52381518] (0) {"id":52381518,"unit":15,"state":"up"}
pulses: 132 possible protocol: arctech_contact
RF signal arrived [arctech_contact][52381518] (0) {"id":52381518,"unit":15,"state":"opened"}

for off and on respectivly. So i tried to set it up in my config file like this:

  - platform: mqtt
    name: "arctech_switch"
    command_topic: "rf434/send/arctech_switch"
    payload_on: '{"id":52381518,"unit":15,"on":1}'
    payload_off: '{"id":52381518,"unit":15,"off":1}'

But it is not really working as it should, the outlets aint turning either on or off. This is what I get when I subscribe to the topic:

Client mosqsub|2882-hassbian received PUBLISH (d0, q0, r0, m0, 'rf434/send/arctech_switch', ... (32 bytes))
Client mosqsub|2882-hassbian received PUBLISH (d0, q0, r0, m0, 'rf434/recv/arctech_switch/52381518', ... (38 bytes))
Client mosqsub|2882-hassbian received PUBLISH (d0, q0, r0, m0, 'rf434/recv/arctech_screen/52381518', ... (38 bytes))
Client mosqsub|2882-hassbian received PUBLISH (d0, q0, r0, m0, 'rf434/recv/arctech_contact/0', ... (34 bytes))

It looks like the last line with arctech_contact is not getting the correct id and unit. Do you have any idea of what could be wrong or could be done?
Or maybe it is more of question to the PiLight guys/guy?

This is really great stuff. I used a cheap superheterodyne receiver and transmitter set, from China ($1.25)

Somehow I had to comment out this line to get the receiver working.

pinMode(RECEIVER_PIN, INPUT_PULLUP); //5V protection with reverse diode needs pullup

Additionally, I added this library myself to enable a wall switch :
iwds07, found in

The wall switch ( is firing an event only, so I have to figure out how to make it behave like a statefull switch.

Thanks a lot @puuu. Your work is really appreciated.

This looks like, your RF outlets are not supported by pilight. The arctech_switch may be very similar to the protocol of your outlet.

The MQTT433gateway uses ESPilight which use the RF protocols as they are in the development branch of pilight. Any protocol development should be done by pilight. Usually, this requires discussion on the piligh forum.

You can enable the RAW mode of MQTT433gateway to get raw signal and observe the differences.

The ESP8266 officially only supports 3.3V on the GPIO, but most of the rf receiver have a output of 5V. As 5V protection, the schematic show a simple diode on the receiver pin. Using this diode requires the pullup.

If you connect the reciever directly to the receiver pin, the pullup can make trouble. So you can remove this line to disable the pullup, but be warned when applying 5V to the ESP8266 GPIOs.

As soon as the iwds07 protocol is merged in the pilight development branch, I can release a new Version of ESPilight. Please open a github issue at ESPilight to remind me. :wink:

I had the same experience.

The rfCallback() procedure checks if the received message is valid (valid flag is set)
It turns out that every message is flagged as invalid, hence the messages is not published.

I didn’t have the time to do a deeper investigation but removed the validity check.
This did the trick. Still I have to figure out why every messages is invalid.

I need some help!

I got the software running on a wemos and connected the receiver to see if I can find the RF code of my remote that controlls the blinds on the outside of the appartment (4 high)

Since I dont have access to the motors and program button. I was hoping I could use the remote???

anyway I was testing your software with the car remote for the gate and I got this when I put it in protocolRAW:

RAW RF signal (26): c:00101200101100101100110013;p:388,734,585,12189@
RAW RF signal (26): c:01212301212301212300220024;p:406,255,764,595,12198@
RAW RF signal (26): c:00101200101100101100110013;p:384,732,591,12187@
RAW RF signal (26): c:00101100101100101100110012;p:391,736,12188@
RAW RF signal (26): c:00101100101100101100110012;p:394,740,12180@
RAW RF signal (26): c:01212301212301212300220024;p:410,254,759,617,12200@
RAW RF signal (26): c:00101100101100101100110012;p:384,731,12196@
RAW RF signal (26): c:00101100101100101100110012;p:391,737,12182@
RAW RF signal (26): c:00101100101100101100110012;p:393,740,12193@
RAW RF signal (26): c:00101100101100101100110012;p:393,744,12192@
RAW RF signal (26): c:00101100101100101100110012;p:394,738,12192@
RAW RF signal (26): c:00101100101100101100110012;p:393,740,12202@
RAW RF signal (26): c:01212301212301212300220024;p:409,256,759,616,12204@
RAW RF signal (26): c:00101200101100101100110013;p:383,732,564,12194@
RAW RF signal (26): c:00101100101100101100110012;p:391,739,12194@
RAW RF signal (26): c:00101100101100101100110012;p:393,740,12197@
RAW RF signal (26): c:00101100101100101100110012;p:393,739,12196@
RAW RF signal (26): c:00102000101100101100110013;p:393,742,893,12191@
RAW RF signal (26): c:00101100101100101100110012;p:393,739,12195@

is it even possible to do what I want? or do I need to rent a crane to reprogram everything.

For the car key it is unlikely that the library would work as it uses a protection mechanism (ie. rolling code) thus no two consecutive codes will be the same. Otherwise you should ditch the car immediately as it could get stolen by any 13 years old kid in the neighborhood.
However, for the blinds it is likely to work with the current settings. As an alternative I would highly recommend:

Case larger horizon is needed, then RFLink ( has the largest number of compatible devices but it is sometimes erratic. Also, it works only on Arduino Mega (so no Wemos D1 Mini or D1 R2 support).

Tried openmqttgateway but couldnt get it to work on a wemos. I think its a case of finding a needle in a haystack with the needle being the right tutorial.

I had some compiling errors. I will try again.