How to make your home automation communicate with 433mhz devices a draft list of gateways comparison

Tags: #<Tag:0x00007f1862765f08> #<Tag:0x00007f1862765e40> #<Tag:0x00007f1862765d00>

Hello,

I intiated a list below of gateways available for 433mhz devices, it can be helpfull for beginners:

Feel free to comment

2 Likes

Thank you for compiling the list.
Do you know if this USB RF Transceiver can be controlled with OpenHAB?
https://www.amazon.com/433Mhz-Wireless-Transceiver-Transparent-Transmission/dp/B07P5FS4T7/ref=sr_1_1?keywords=usb+rf+transceiver&qid=1573319226&sr=8-1

I never tested the one in your link.
Nevertheless I can confirm that this one is able to receive RF and can ne hacked with OpenMQTTGateway :

1 Like

what about Sonoff RF Bridge ?
why is not there ?

Thank you :pray:

I’m not a programmer so I don’t have the needed technical gear or programming knowledge to flash OpenMQTTGateway on that USB stick.

Can you recommend another simple solution to add a 433MHz RF transceiver to a Raspberry Pi 4 running OpenHAB 2? (the solution doesn’t have to be USB based if it’s simple enough).
I would like to control two ceiling fans with RF remotes using OpenHAB.

In my opinion 433 can be quite painfull. There seem to be different “standard” of 433 and tons of protocols. You´ll not be able to tell, if gateway you buy will support your devices, unless its 100% specified.
I have a Sonoff RF brigde. I have a 433mhz doorbell. Sonoff can not receive the signal from this doorbell. On the doorbell it just state 433mhz… Well, thank you doorbell maker for given me an information I cant use.
Sonoff RF bridge can be flashed with yet another firmware which will change the support for more diffirent 433mhz protocols… I have not yet testet this part.

So bottomline in this.
You either need to know exactly which 433mhz your devices is supporting, or get a gateway which support the most, and hope for the best.

If you don’t want to flash or to build a gateway you can go to an off the shelf device with a binding :

1 Like

Following the brand and model, you have to check if they are compatible with rfxcom.

1 Like

Indeed 433mhz is the frequency but as 2.4ghz you can have different protocols behind the frequency.
433mhz have many protocols but you can find easily compatible devices if you stay with the basics ones SC5262, HX2262 or PT2262.

Because the doc is from 2017 : -).

I agree it needs an update.

1 Like

hehe now i see orginal dates of msg :slight_smile:

I know… But the problem is the opposite way… When one already have the device, and now looking for a gateway to handle it. Its not enough that device say its 433mhz…
I already got this Friedland doorbell. The Friedland device says 433mhz. I then bought the Sonoff RF bridge, but it doesnt work, probably due to the fact that the Friedland device uses another 433mhz protocol which the Sonoff RF bridge doesnt support by default. And I will have no guantee that flashing the Sonoff radio firmware will make it working.

I have a Friedland doorbell, bought probably 10-15 years ago. It works great with RFlink - the solution I’m using right now. I ended up using just the door bell button and receiving the button press in OpenHAB and playing an MP3 over my google home speakers, so the Friedland chime is no longer used.

Then recently I installed a xiaomi aqara zigbee button to replace the door bell button. So now I need to figure out how to cover up the holes in the wall from the old door bell screws. Or just have two door bell buttons to confuse people.

How did you get get to work with RFlink?

I connected the arduino mega to a usb port, and read the data using the Serial binding. So in my items file I have this:

String RFLink "RF Link Received Data" { serial="/dev/ttyRFLink@57600" } 

Note I am on (Centos7) Linux and set a persistent alias for the USB device name.

Then I wrote a rule to parse the RFLink data and update the corresponding item, e.g. doorbell, like this

Switch DoorBell "Door Bell" 
rule "Process RFLink Data"
when
    Item RFLink received update
then
	val RFbuffer = RFLink.state.toString.split(";")
    if (RFbuffer.length < 4) {
        return
    }
//	val RFprefix = RFbuffer.get(0)
//	val RFstamp = RFbuffer.get(1)
	val VendorID = RFbuffer.get(2)
    val Data = <String, String>newHashMap
    for (var i = 3; i < RFbuffer.length; i++) {
        val f = RFbuffer.get(i).split("=")
        if (f.length > 1) {
            Data.put(f.get(0), f.get(1))
        } else {
            Data.put(i, RFbuffer.get(i)) // if the field is not in the form of X=Y then just put("index", field content)
        }
    }
	val DeviceID = Data.get("ID")

	switch (VendorID) {
  		case "Oregon TempHygro" : {
            if (DeviceID == "CC05") { // this was CC6F
                val tempHex = Data.get("TEMP")
                val tempDec = (Integer::parseInt(tempHex, 16) as Number) / 10
                Outdoor_Temperature.postUpdate(tempDec) 
                Outdoor_Humidity.postUpdate(Data.get("HUM"))
            }
        }
        case "Friedland": {
            if (DeviceID.startsWith("69ac")) {
                logInfo("Doorbell", "********** Front Door Bell pressed *********")
                DoorBell.sendCommand(ON)
            }
        }
        case "Eurodomest": {
            if (DeviceID == "2fd95b") {
                switch (Data.get("SWITCH")) {
                    case "04": {
                        MasterBathroom_Button_Click.postUpdate("single")
                    }
                    case "02": {
                        if (Hallway_Light_Power.state == ON) {
                            Hallway_Light_Power.sendCommand(OFF)
                        } else {
                            Hallway_Light_Color.sendCommand("FFFFFFFF")
                            Hallway_Light_Dimmer.sendCommand(new PercentType(100))
                            Hallway_Light_Power.sendCommand(ON)
                        }
                    }
                }
            }
        }
  		// default : logInfo("RFLink", "completely irrelevant data received from " + RFvendor)
	}

end
1 Like