This is an old revision of the document!
A notarized beta of XTension 9.4.40 is available as of 4/25/2021
This version includes a beta plugin for SDR radios via a wrapper for the rtl_433 application. The current support is incomplete but should support everything that the now more difficult to obtain RFX radios and most, but not all, of the speciality devices that the rtl_433 program supports. I will endeavor to complete special handling for everything that needs it before the release but if a specific device you are using does not work with this beta but is supported by the rtl_433 software please let me know and I’ll make sure I support it’s custom data output. As of this release every weather type instrument should work from Oregon Scientific like the RFX and also those from accurite and others that are supported by the rtl_433. For more info on the rtl_433 software please see rtl_433 git hub page for more info on what it supports or doesn’t. Please note that the rtl_433 plugin is a receive only device and cannot transmit to control the devices you are receiving.
NOTE that rtl_sdr supported radios are tested. The software is present for the soapy_sdr supported radios but as I don’t have any of those I have not tested and you may encounter problems. If you are using one of those please send me any log output if there is any problem. If you don’t have any problems please let me know that also.
In addition to the rtl_433 plugin this build also includes a fix for the database sharing where it might throw an error because of it trying to use the wrong version of the python libraries to connect via a secure connection. This should be fixed in this version as well.
There is not yet a wiki page devoted to the SDR radio info so I’ll place some of this info here:
Setting up the SDR should be very straightforward assuming that you have only one radio connected to the Mac in question and you only want to receive already supported devices. The current XTension configuration screen, subject to many changes before release, looks like this:
For any radio connected to your mac and receiving the supported 433 devices you should leave this as is.
If you are using a supported SDR on the Mac itself then none of the following about the raspberry pi is needed. This is only needed if you wish to use a pi as a remote host for an SDR. If you wish to run a remote connection to a host pi then select “remote via ssh” from the popup menu labeled “connection type“
Note that this section is only necessary if you are wanting to connect to a radio hosted remotely via a raspberry pi. Otherwise skip this!
Running SDR software on the Pi takes a considerable amount of resources. I would not recommend running this on a Pi Zero or a very old device. It runs just fine on a previous generation Pi 3B+ and will run perfectly on the newer pi4’s without having to purchase the more expensive ones with more memory unless you want to host multiple radios.
If you wish to have many radios installed away from the XTension mac you can install the rtl_433 software on a raspberry pi and place that anywhere on the local network. You can create additional interfaces to connect to any number of raspberry pi hosts. This functionality is also working as of this beta version.
The connection to the raspberry pi is via an ssh session. There is no way to save the password into the interface so you must configure your mac and the pi to connect via ssh without a password. If you have never done this on your mac you must first create an ssh key that you can share with the pi. Start the terminal and enter this command:
ssh-keygen -t rsa
The switch for -t rsa may not be needed depending on the OS version. Use the default key name and do not set an encryption password for the key.
now you need to send that to the raspberry pi so that you can connect from your mac to the pi without having to send the password each time. This is also done via the command line on the Mac to the pi. (make sure you have changed the default password on the pi and set it’s hostname to something other than the default of raspberrypi.local or you’ll run into trouble later)
the command to register your ssh key with the pi is:
if your user is other than the default pi make sure to change that. You can connect via the IP address of the pi if you have assigned it a static IP or via it’s hostname.local as long as you have changed it from the default of raspberrypi.local or you’ll not be able to setup more than a single pi on the network.
You may have to answer several questions about are you sure if you have setup other pi’s as the keys will have changed and ssh will warn you that it can’t verify that you’re connecting to the right machine. If you have setup other pi’s in the past it may refuse to connect at all because it’s in your known host file with a different machines key. If thats the case you need to edit your known hosts file to remove it. If you haven’t ever done this you can do it at the command line via something like:
then use the control-w to find “raspberrypi.local” and delete that whole line. Then save by doing a control-o and then exit with a control-x. There are many many other resources for more info on doing this on the web if you need more info.
Once that is done and you have copied the key via the above please do test that you can ssh in without a password. It may require that you do it once manually and OK the fact that it can’t verify the key if you have every connected to another one and you need to do that before the software can connect without your attention so once that has completed test it via ssh’ing in via a regular command like:
it may ask you “are you sure” because something cannot be verified. Please answer yes and if you end up at the ssh prompt for the pi then all is well. You can then move on to compiling the rtl_433 software on the pi.
There are 2 steps to installing the software on the pi. You need both the low level SDR radio software and the rtl_433 software. They are very easy to install.
If you haven’t already load up the most recent pi software and do any updates available. I wont post instructions for this here, if you can’t do this and can’t find instructions on the internet for it you probably shouldn’t be trying this ;) The program will work with the “lite” versions of the raspian images or the desktop and full installs but those are not necessary and if you’re not using the pi for desktop work you will only be wasting space by using those.
try this command to see if git is installed on your device or not:
if you get a “command not found” error then you need to install git. That command is:
sudo apt install git
it will tell you that another 33meg of disk space or other is needed and you need to say Yes so that it will install
Once that is finshed you can retry the git –version command. As of this writing the version installed is 2.20.1
The following packets are required to finish the rest of the install. If you already have any of them then the installer will just skip that part:
sudo apt install cmake libusb-1.0-0-dev build-essential autoconf libtool pkg-config
git clone git://git.osmocom.org/rtl-sdr.git cd rtl-sdr mkdir build cd build cmake -DINSTALL_UDEV_RULES=ON .. make sudo make install sudo ldconfig
git clone https://github.com/merbanan/rtl_433 cd rtl_433 mkdir build cd build cmake .. make sudo make install
Once you’ve done all that you can select “Remote via SSH” from the Connection Type popup as shown above and unless you changed the install locations on purpose the defaults should all work just fine and you can connect an interface to a device connected via USB to a remote raspberry pi. If you need to have more than one radio connected to the same mac or raspberry pi that is also possible, but read on for even more configuration:
XTension will support multiple SDR radios on the same machine via the serial number of the device. Unfortunately all the devices I have seen come with the serial number set to “0000001” or something similar. So you have to use the rtl_eeprom tool to set the serial number before filling it into the XTension interface as shown above. This will work for both local SDR’s as well as those connected to remote Raspberry Pi hosts. I will not include instructions for how to use the rtl_eeprom tool here, please look those up on the wiki page for the rtl_433 page linked to above. You’ll find the app compiled for the Mac inside the plugin folder which is inside the XTension app. If you control click on XTension in the finder and select “show package contents” and then open the Contents folder, and then the Resources folder and then the Plugins folder and finally the “rtl_433.isf” folder you’ll find the supporting applications such as rtl_eeprom. You can take a terminal session in there and then use the app to write a specific serial number or id string to the radio which you can then use in the SDR Serial Number field of the XTension settings window as shown above.
Currently temperature, humidity, rain and wind sensors are supported from multiple manufacturers. Far more than the RFX radios supported. What does not work well yet are all the 433Mhz remote control devices. They will create units in XTension but they are not filtered properly for debouncing and repeats and such. You’ll also find that if you leave the “create unit in XTension automatically” checkbox turned on that you’ll receive things that have nothing to do with an actual device but that are just noise. I would not rely on this for those types of devices yet. The temperature and other RFX receivable devices all seem to work very well for me as of this moment.