Giter VIP home page Giter VIP logo

rtl_433_tests's Introduction

rtl_433 test samples

rtl_433_tests contains the test suite for rtl_433

This repository contains lots of signal recordings that are supported by rtl_433.

The regtest system is not developed yet, but accepting signal recordings.

Installation instructions

Clone this reposity to the root of rtl_433

Running

Enter the directory and run make test. The output will tell if the tests failed or not.

Contributing

Run rtl_433 with rtl_433 -S unknown and wait for you signal to be detected. When it is detected note what gfile name it has. This file can now be run through rtl_433 offline:

$ rtl_433 -r g001.cu8

Look at the -A analyze mode output and include a timing description if you like. You can also include a flex decoder (-X ...), don't include raw analyzer output.

Organization

Add signals by creating directories and then add the sample files. We need to watch the repo size, add only about 5 interesting sample files. If you have more interesting samples (e.g. to recover a checksum), include the bitbuffer codes in the README.md.

You can rename the sample files to add information, e.g. replace g001 with low_battery. Do not remove the frequency and sample rate information.

Also add a README.md and perhaps pictures of the hardware. E.g. front.jpg, back.jpg, inside.jpg. Limit the picture size to about 50k by cropping and compression.

Samples are contained in directories with the scheme: tests/GROUP/DEVICE/SET

  • GROUP is optional and usually the manufacturer or common protocol, e.g. lacrosse
  • DEVICE is the device name, e.g. tx141w
  • SET is optional and used for different actual devices, not functions. E.g. 01
  • Each level should have a README.md describing that level.

Browse the Decoder and Sample Explorer to see how we extract metadata from rtl_433_tests.

To discuss the device and decoding open an issue on rtl_433. Issues in rtl_433_tests are used for the acutal building and testing only. PRs on rtl_433_tests should only discuss the merging and not the device.

rtl_433_tests's People

Contributors

curlyel avatar enavarro222 avatar eusahues avatar evilpete avatar fraschizzato avatar hkazu avatar ionum avatar iotzo avatar johnjore avatar jonathanmbradshaw avatar keonen avatar kissandr avatar klohner avatar ludwich66 avatar mattrivett avatar mbruski avatar merbanan avatar mhansen avatar mindavi avatar mnhauke avatar ovrheat avatar pjkundert avatar pucebaboon avatar rct avatar robho avatar storole avatar untergasser avatar vestom avatar ygator avatar zuckschwerdt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rtl_433_tests's Issues

Analyzing BMW Continental TPMS

recorded cu8 signals in https://github.com/merbanan/rtl_433_tests/tree/master/tests/continental_tpms/01

i can't make anything useful out of those recording. Tried with

$ rtl_433 -R 0 -X "n=MYFIRSTTEST,m=FSK_PCM,s=26.042,l=26.042,r=1000" -r ~/bmw_g004_433.92M_250k.cu8

$ rtl_433 -s 250k -W /home/kellogs/bmw_g004_433.92M_250k.sr /home/kellogs/bmw_g004_433.92M_250k.cu8

Looked for the IDs provided but the signal appears unrecognizable to me. How do i extract the useful data (including known ID) from them ?

Thank you

Interlogix-Security Tests fail with current rtl_433 content

Hello,

When I get the current master content from rtl_433 and run the tests, I get the following 4 errors:

## Fail with 'tests\interlogix\03\gfile001.cu8':
 values_changed
  * root['switch1']
 Expected: {'model': 'Interlogix-Security', 'subtype': 'motion', 'id': '4aa707', 'battery_ok': 1, 'switch1': 'CLOSED', 'switch2': 'OPEN', 'switch3': 'OPEN', 'switch4': 'OPEN', 'switch5': 'OPEN', 'raw_message': '0955b0'}
  But got: {'model': 'Interlogix-Security', 'subtype': 'motion', 'id': '4aa707', 'battery_ok': 1, 'switch1': 'OPEN', 'switch2': 'OPEN', 'switch3': 'OPEN', 'switch4': 'OPEN', 'switch5': 'OPEN', 'raw_message': '0955b0'}
## Fail with 'tests\interlogix\03\gfile002.cu8':
 values_changed
  * root['switch1']
 Expected: {'model': 'Interlogix-Security', 'subtype': 'motion', 'id': '4aa707', 'battery_ok': 1, 'switch1': 'CLOSED', 'switch2': 'OPEN', 'switch3': 'OPEN', 'switch4': 'OPEN', 'switch5': 'OPEN', 'raw_message': '0955b0'}
  But got: {'model': 'Interlogix-Security', 'subtype': 'motion', 'id': '4aa707', 'battery_ok': 1, 'switch1': 'OPEN', 'switch2': 'OPEN', 'switch3': 'OPEN', 'switch4': 'OPEN', 'switch5': 'OPEN', 'raw_message': '0955b0'}
## Fail with 'tests\interlogix\03\gfile003.cu8':
 values_changed
  * root['switch1']
 Expected: {'model': 'Interlogix-Security', 'subtype': 'motion', 'id': '4aa707', 'battery_ok': 1, 'switch1': 'CLOSED', 'switch2': 'OPEN', 'switch3': 'OPEN', 'switch4': 'OPEN', 'switch5': 'OPEN', 'raw_message': '0955b0'}
  But got: {'model': 'Interlogix-Security', 'subtype': 'motion', 'id': '4aa707', 'battery_ok': 1, 'switch1': 'OPEN', 'switch2': 'OPEN', 'switch3': 'OPEN', 'switch4': 'OPEN', 'switch5': 'OPEN', 'raw_message': '0955b0'}
## Fail with 'tests\interlogix\03\gfile004.cu8':
 values_changed
  * root['switch1']
 Expected: {'model': 'Interlogix-Security', 'subtype': 'motion', 'id': '4aa707', 'battery_ok': 1, 'switch1': 'CLOSED', 'switch2': 'OPEN', 'switch3': 'OPEN', 'switch4': 'OPEN', 'switch5': 'OPEN', 'raw_message': '0955b0'}
  But got: {'model': 'Interlogix-Security', 'subtype': 'motion', 'id': '4aa707', 'battery_ok': 1, 'switch1': 'OPEN', 'switch2': 'OPEN', 'switch3': 'OPEN', 'switch4': 'OPEN', 'switch5': 'OPEN', 'raw_message': '0955b0'}

I haven't tried to debug it to figure out if anything is wrong but a quick git blame did not show any recent changes in related files.

What would you suggest that I try?

Hi-res timestamps causes failures

Not sure which patch caused this fail. But e.g. a py -2 bin\run_test.py -C -c ..\rtl_433.exe acuri*:

## Failed: F:\gv\dx-radio\RTL_433\rtl_433_tests\tests\acurite\08\ext-lowbattery.cu8:
{ 'values_changed': { "root[0]['time']": { 'new_value': u'@0.044108s',
                                           'old_value': u'@0.000000s'}}}
...

It seems the previous coarse time-stamp (on Windows at-least) has caused these diffs. Since the first timestamp is now at 0.044108s. Not at 0.000000s as expected.

Where are Travis / AppVeyor when you need them?

Add samples for HTZSafe 1/2 Mile Solar Wireless Driveway Alarm

I haven't had any luck locating the manufacturer website, but this brand/model of driveway alarm is available everywhere - amazon, walmart, ebay - it's all over the place. The model number is HB-T001Q3 and I have found its FCC application info. Not only does the model number match, but the diagrams show the particular units I'm working with.

https://fccid.io/2AJP6HB-T001Q3/

In the attached sample files, I triggered the alarm twice. I am fairly remote, and running rtl_433 to listen to my environment found no signals, so this test should be clean of interference. The receiver unit has the ability to assign different tones to each sensor, so I assume that each sensor transmits a unique ID

rtl_433.zip
.

Interlogix Saw Sensors

#73

First off, forgive me for something I've probably done wrong. I'm new to rtl_433, git and github. I'm a hobby programmer at best.

I'm looking for help demodulating a set of alarm sensors I have installed in my home. The pull request I just did has all the relevant details in the readme. Thank you very much for your help!

'make test' doesn't work with systems still running python 2

Hi,
I tried the instructions after cloning the repository and got an error when I ran make test.
Essentially it failed because my system defaults to python2 and couldn't print.
I amended the make file to explicitly use python3 and it worked perfectly:

.PHONY: test

test:
	python3 bin/run_test.py -I time --first-line

LTV-R3 Rain Sensor

Hello,

I wanted to add a directory for LTV-R3 under this one:
https://github.com/merbanan/rtl_433_tests/tree/master/tests/lacrosse_ltv

But I may have a mistake. I think I made a pull request for a file named LTV-R3. You can ignore it. I hope I have not broken anything.

Can someone create it for me?
And how can I import the CU8 files?
In the LTV-R1 version, I see rain1 and rain2, I suspect it could be rain-mm and rain-rate, isn't it?

Can someone help me to get this device supported by rtl-433?

Thanks in advance

Update the GS-WDS07 decode?

Hello and thanks for your work on this great project! Already using the hertzg/rtl_433_docker container on a Pi to collect the temp and humidity from a few Oregon Scientific sensors and send it via MQTT to Home Assistant. It's working well!

Here's my issue. I'm attempting to add new GS-WDS07 door/window sensors and having a few issues. Would really like to use these sensors as they are cheap (~$4/ea), readily available and can be used for many things in home automation. If we can get these working properly, I'll document everything and share it on the Home Assistant and Reddit forums. Since it uses MQTT it can be used with almost any home automation system, not just Home Assistant. I think many others would like to do this if it's easy and works reliably as the Oregon Scientific decoding does. Found device protocol 30 and the flex decode example for the GS-WDS07 in the conf file but neither seems to work well.

Protocol 30
This triggers anywhere from 60 to 100 messages from one state change of the sensor. The issue is 60+ messages will cause Home Assistant to trigger for each, causing a huge and unnecessary use of resources for each state change.

Flex Decode
This also triggers 60 to 100 messages via MQTT and there is no consistency to the topics sent. For instance, there is not one topic updated per state change and some topics are updated multiple times.

What I'm hoping to do is have a new protocol or decode that sends only one message per state change of the sensor... IE Open, close or low battery.

I've attached a signal capture and corresponding console output from the GS-WDS07. As you can see there are 21 signals received for one state change (close). Plus a couple of signals are recognized as a different device "Smoke-GS558".

Not really sure where to go from here. Is there anyone that can help with creating a new decode? Or can someone point me in the right direction to work on this myself?

Thanks!

g001_433.92M_250k-2.cu8.zip
GS-WDS07 output.txt

RFC: Remove false-positives and don't test for them

I'd like to adapt the run_tests and refresh_all scripts to leave out any false positives. This would ensure the .json reference files don't contain any output from decoders that are not the one being tested.

Besides that, a script could be created that points out false positives and gives a nice overview of which decoders give most false positives. This would prevent false positives from being invisible, without polluting the reference files per se.

Please let me know what your thoughts are about this. I'm not fully sure on the details, but I think there's room for improvement and I'd like to document what improvements are desired and/or needed.

[feature request] Limit output to decodings matching a given list of mappings

The getters need some restructuring anyway.

Originally posted by @zuckschwerdt in #286 (comment)

If this is going to happen, you might consider expanding the getters logic to limit the generated output to just the packets/decodes, where one of the getters map conditions is met, drop all others e.g.:

get=@0:{20}:code:[123456:REMOTE-A 987654:REMOTE-B 345699:REMOTE-C]:exclusive

This would reduce the 'noise' of unwanted decodes being published and prevents potential duplicate decodings from different flex decoders matching on similar settings/timings.

Add a license file?

Hi, adding a license to the repo would help clear up rights using this. Should probably be the same license as the system-under-test in case the repos merge at some stage? I'm guessing this stuff is GPL 2.0 because the main RTL repo is GPL2, but not sure.

Remove or split up samples that contain signals from multiple devices

For me (or anyone interested) to pick up later:

[nix-shell:~/hobby/rtl/tests/tests/oregon_scientific/sl109h]$ $rtl -r ./1461447923.gfile.cu8 -F json
...
Test mode active. Reading samples from file: ./1461447923.gfile.cu8
{"time" : "@0.133180s", "model" : "Oregon-SL109H", "id" : 134, "channel" : 2, "temperature_C" : 26.800, "humidity" : 45, "status" : 0, "mic" : "CHECKSUM"}
{"time" : "@0.672996s", "model" : "Acurite-609TXC", "id" : 94, "battery_ok" : 1, "temperature_C" : 22.600, "humidity" : 55, "status" : 1, "mic" : "CHECKSUM"}

Because that folder contains loads of samples, removing this is fine for me. Prevents people from trying to solve a deemed 'false positive' that's actually a true positive in the wrong location.

Also this one should be split up:

WARNING: LaCrosse-TX35DTHIT generated 1 false positive(s) in other decoders: {'LaCrosse-TX29IT'}

It contains samples of both devices.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.