Skip to content

Commit

Permalink
merge upstream
Browse files Browse the repository at this point in the history
  • Loading branch information
mr-sven committed Dec 11, 2024
2 parents 5cf7078 + 568b3ab commit a9210ec
Show file tree
Hide file tree
Showing 46 changed files with 2,305 additions and 350 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-12, macos-14]
os: [macos-13, macos-14, macos-15]
runs-on: ${{ matrix.os }}
name: Build on ${{ matrix.os }}
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,10 @@ jobs:
strategy:
fail-fast: false
matrix:
os: [macos-12, macos-14]
os: [macos-13, macos-14]
feat: [rtlsdr, soapysdr]
include:
- os: macos-12
- os: macos-13
arch: x86_64
- os: macos-14
arch: arm64
Expand Down
107 changes: 107 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,112 @@
# Changelog

## Release 24.10 (2024-10-30)

### Breaking Changes

- Changed to pm_2_5_ug_m3, pm_10_ug_m3, BREAKING change to Bresser-7in1 (#2953)
- Changed Smoke-GS558, Akhan-100F14 to default disabled BREAKING CHANGE (#2958)
- Changed distance_km to storm_dist_km, BREAKING change to Bresser-Lightning (#2855)

### Highlights

- Added support for Technoline TX960 to Acurite-606TX decoder (#3078)
- Added support for Risco 2 way Agility protocol, Risco PIR/PET Sensor RWX95PA (#3066)
- Added support for Rosstech Digital Control Unit DCU-706/Sundance/Jacuzzi (#2612)
- Added support for Arexx Multilogger (#2487)
- Updated Fineoffset-WS90 to new FW timings (#3063)
- Added decoder conf for oma blind remote (#3058)
- Added decoder conf for iVac Pro remote (#3049)
- Added Vevor Weather Station 7-in-1 (#3023)
- Added support for Ecowitt WH46 air quality sensor (#3010)
- Added open in browser script (#2158)
- Added decoder conf for Hornbach MSRC-SAL Awning remote (#3009)
- Added support for Geevon TX16-3 outdoor sensor (#2910)
- Added support for Arad Master Meter water utility meter (#2984)
- Added support for ThermoPro TP829b and Improve rtl_433_mqtt_hass.py (#2964)
- Added Support for Chamberlain CWPIRC pir sensor (#2962)
- Added support for Nice One to Nice-FlorS (#2960)
- Added Support for Ecowitt WN34D and improve FineOffset WN34 (#2944)
- Added decoder conf for rolleaseacmedia blind controller (#2947)
- Added decoder conf for Thomson kinetic doorbell (#2940)
- Added ST389 temperature sensor for ORIA WA50 freezer thermometer (#2937)
- Added decoder conf for Dewenwils BH-V (#2926)
- Added Support BMW Gen3 TPMS (#2900)
- Added decoder conf for self powered QX-305 & QX-302 switches (#2903)
- Improved BMW Gen4-Gen5 TPMS and Add Support Audi TPMS Pressure Alert (#2901)
- Added support for Audi TPMS and BMW Gen4 TPMS (#2897)
- Added support for ThermoPro TP28b (#2882)
- Added Support for Mueller Hot Rod water meter (#2887)
- Added Support for Thermor DG950 Weather Station (#2886)
- Added darker colors for light terminal backgrounds (#2864)
- Added support for Watts WFHT-RF thermostat (#2648)
- Added honor the NO_COLOR env var
- Added RTL433_COLOR=always/never/auto env var
- Added support for BMW Gen5 TPMS multi-brand HUF, Continental, Schrader/Sensata (#2834)
- Added support for Bresser CO2 PN 7009977 and HCHO/VOC PN 7009978 sensors (#2815)
- Added support for Fine Offset WN32B (closes #2303)
- Added support for Fine Offset / Ecowitt WH55 water leak sensor (closes #2756)
- Added support for TechniSat IMETEO X6 and improve Holman-AOK (#2759)
- Added Motonet MTX, MarQuant Rain note to Schou-72543 (#2686)

### Changed

- Added extract_bytes_uart_parity utility function
- Fixed Acurite-590TX timings (closes #3039)
- Changed rtl_433_mqtt_hass.py to add supercap_V key
- examples: Added dup filtering to mqtt_relay (#3018)
- Fixed wmbus raw data output length (#2749)
- examples: Added ability for mqtt_relay to use a config file (#3013)
- Added MQTT dedup republish filter example (closes #2990)
- Added TX-Button to inFactory-TH
- examples: Changed mqtt_relay to always use id in topic (#3014) (#3014)
- examples: Improved mqtt_relay to make individual and json topics optional (#2975)
- examples: Removed obsolete sigrok example scripts (#2979)
- Changed Klimalogg-Pro max humidity (closes #2967)
- Changed to type-safe data_append alternative (#2667)
- Fixed rain_rate_in_h template in HA script (#2782)
- Improved Ecowitt WH53 (#2934)
- Fixed Bresser-5in1 omit temp/hum on error
- Improved Wireless-MBus 3of6 decoding (#2883)
- Added HA script compat for paho-mqtt 2.0.0 via legacy callback API (#2916)
- Fixed Nissan TPMS pressure_PSI key (#2915)
- Changed HA script power to energy and UV index to float (#2913)
- Fixed Cotech-367959 lux and uv value (#2073)
- Fixed TPMS Nissan pressure_psi value (#2906)
- Fixed Bresser-6in1 rain vs temp (closes #2184)
- Changed a HA script device trigger to avoid duplicate trigger (#2829)
- Added some known fields to Marlec-Solar
- Added log rotate support for dumper files (#2876)
- Added contact_open reed_open mappings to rtl_433_mqtt_hass.py (#2881)
- Added microseconds to OOK pulse data outputs
- Added OpenMetrics/Prometheus API (#2863)
- Added strict checks to flex argument parsing
- Fixed EcoWitt-WS68 wind unit and decoding (#2871)
- Fixed event callback on shutdown (closes #2869)
- Fixed Badger-ORION return on decode success (#2854)
- Improved Bresser lightning correct msg length and lfsr digest check
- Improved FS20 decoding, add FHT support (#1783)
- Fixed properly install to /etc for /usr prefix (closes #2827)
- Added compatible model TST-507 TPMS to EezTire E618 (#2832)
- Fixed Bresser-7in1 to exclude unavailable sensor values (#2817)
- Added HTTP cmd API examples
- Fixed TPMS Elantra2012 for longer desync (closes #2806)
- Fixed KlikAanKlikUit-Switch for DIO remotes (#2789)
- Fixed rtl_433_mqtt_hass.py rain_in value template (#2801)
- Fixed Bresser-Lightning decoding of 'count' (#2797)
- Fixed detection of Bresser-ProRainGauge (#2431)
- Improved EcoWitt-WS68 LUX and UVI decoding and add units (#2790)
- Fixed Fineoffset-WS90 to support newer firmware (closes #2732)
- Added Ecowitt air quality sensors to rtl_433_mqtt_hass.py (#2772)
- Added mqtt base topic option (closes #2768)
- Added reading mqtt auth from env vars (closes #2769)
- Fixed converting inches to mm (#2755)
- Changed rtl_433_mqtt_hass.py to support storm_dist_km from WH31L (#2748)
- Added channel/button to Acurite-606TX
- Fixed TFA-303151 negative temps (closes #2538)
- Fixed temperature for Bresser 3-in-1 Wind Gauge (closes #2523)
- Improved code and annotations for cpplint (#2683)

## Release 23.11 (2023-11-28)

### Breaking Changes
Expand Down
12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ See [CONTRIBUTING.md](./docs/CONTRIBUTING.md).
[52] Bresser Thermo-/Hygro-Sensor 3CH
[53] Springfield Temperature and Soil Moisture
[54] Oregon Scientific SL109H Remote Thermal Hygro Sensor
[55] Acurite 606TX Temperature Sensor
[55] Acurite 606TX / Technoline TX960 Temperature Sensor
[56] TFA pool temperature sensor
[57] Kedsum Temperature & Humidity Sensor, Pearl NC-7415
[58] Blyss DC5-UK-WH
Expand Down Expand Up @@ -199,7 +199,7 @@ See [CONTRIBUTING.md](./docs/CONTRIBUTING.md).
[111] Emos TTX201 Temperature Sensor
[112] Ambient Weather TX-8300 Temperature/Humidity Sensor
[113] Ambient Weather WH31E Thermo-Hygrometer Sensor, EcoWitt WH40 rain gauge, WS68 weather station
[114] Maverick et73
[114] Maverick ET73
[115] Honeywell ActivLink, Wireless Doorbell
[116] Honeywell ActivLink, Wireless Doorbell (FSK)
[117]* ESA1000 / ESA2000 Energy Monitor
Expand Down Expand Up @@ -344,9 +344,15 @@ See [CONTRIBUTING.md](./docs/CONTRIBUTING.md).
[256] ThermoPro TP28b Super Long Range Wireless Meat Thermometer for Smoker BBQ Grill
[257] BMW Gen3 TPMS
[258] Chamberlain CWPIRC PIR Sensor
[259] ThermoPro TP829b Meat Thermometer 4 coated probes
[259] ThermoPro Meat Thermometers, TP829B 4 probes with temp only
[260]* Arad/Master Meter Dialog3G water utility meter
[261] Geevon TX16-3 outdoor sensor
[262] Fine Offset Electronics WH46 air quality sensor
[263] Vevor Wireless Weather Station 7-in-1
[264] Arexx Multilogger IP-HA90, IP-TH78EXT, TSN-70E
[265] Rosstech Digital Control Unit DCU-706/Sundance/Jacuzzi
[266] Risco 2 Way Agility protocol, Risco PIR/PET Sensor RWX95P
[267] ThermoPro Meat Thermometers, TP828B 2 probes with Temp, BBQ Target LO and HI
* Disabled by default, use -R n or a conf file to enable
Expand Down
79 changes: 79 additions & 0 deletions conf/hornbach-msrc-sal.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Decoder for Hornbach awning remotes.
#
# The remote is labeled MSRC-SAL and has article number 6196477 printed on the
# label [0]. On the inside there's a chip with its markings removed, but it
# looks like an off-the-shelf, generic remote. There are multiple LED positions,
# where only one is soldered. There's unused keys, an unlabeled one on the
# front, which does not even emit an RC signal, and one on the back, 'time',
# without even a button behind it, nor was there a spot on the PCB for a key.
#
# There is also another sort of remote, which includes a wind-sensor [1].
# It is assumed that it functions just like a remote, taking light and wind
# into account to send the close signal.
#
# It should probably be mentioned, that Hornbach itself is likely not the
# manufacturer itself.
#
# The remote operates on a 433.92 MHz frequency. The PCB is labeled
# 'DC104-HD V1.3' and seems to be produced in 2019-07-04.
#
# Hornbach awnings use OOK_PWM encoding.
# - 0 is defined as a 372 µs pulse followed by a 744 µs gap.
# - 1 is defined as a 744 µs pulse followed by a 372 µs gap.
# - reset is defined as a 1116 gap followed by a 7812 µs gap.
# - sync is defined as a 4836 µs pulse, followed by a 1488 µs gap.
#
# > __Note:__ It is unclear if the last space (gap) of a bit is always extended
# to a certain length, or if this is an additional delimiter. One could argue
# the reset/delimiter is a 8928 µs gap.
#
# Transmissions starts with a sync and gap pulse, followed by 40 bits, closed
# off with a gap and reset pulse.
# These seem to be repeated at least 4 times, depending on how long the button
# is kept pressed. The exception is the light, which is never repeated more than
# 4 times, which is also visible on the remotes activity LED.
#
# Possible packet layout:
# It starts with 32 bits Remote ID, possibly a combination of vendor + function
# as commonly seen in infra-red remote controls. These are likely remote-unique.
# When programming the awning to match a new/different remote, one is expected
# to press `P2` during power-on, which the awning will acknowledge with some
# beeps. Since the code does not change when pushing `P2`, this is a fair
# assumption, but an assumption still.
#
# Following the remote ID we have a single byte that indicates the button.
#
# | Button | Byte | Bits | Function |
# |----------|------|------------------|-------------------------------------|
# | P2 | 33 | 0 0 1 1 0 0 1 1 | Program/Learn remote |
# | MODE | 3e | 0 0 1 1 1 1 1 0 | Unknown/Undocumented |
# | STOP | aa | 1 0 1 0 1 0 1 0 | Stop awning at current position |
# | DOWN rel | c3 | 1 1 0 0 0 0 1 1 | Release of button DOWN |
# | DOWN | cc | 1 1 0 0 1 1 0 0 | Open awning (via internal endstop) |
# | UP rel | e1 | 1 1 1 0 0 0 0 1 | Release of button UP |
# | UP | ee | 1 1 1 0 1 1 1 0 | Close awning (via internal endstop) |
# | LIGHT | f0 | 1 1 1 1 0 0 0 0 | Light high/low/off |
#
# The UP/DOWN buttons are the only buttons that sends a release event when the
# key is released on the remote. If the button is kept pressed until the remote
# stops the signal, the UP/DOWN (release) key is not sent. Interestingly the
# release events is the inverse of the last nibble of the press event. They are
# ignored by the awning, which makes sense, as it is already moving.

frequency 433.92M

decoder {
name = MSRC-SAL,
modulation = OOK_PWM,
bits = 40,
short = 372,
long = 744,
reset = 7812,
sync = 4836,
gap = 1488,
get = RUID:@0:{32}:%x,
get = button:@32:{8}:[0x33:P2 0x3E:MODE 0xAA:STOP 0xC3:DOWN_(release) 0xCC:DOWN 0xE1 UP_(release) 0xEE:UP 0xF0:LIGHT],
}

# [0]: https://www.hornbach.nl/p/reserveonderdeel-afstandsbediening-voor-zonnescherm-6145050-6145051-6145052-10178611-10178638-10178639-10178640-6823732-6823733-6823734-10461615-104961614-10328334-10328335-10468366-10468367-10468368-10468369-10468370/6196477/
# [1]: https://www.hornbach.de/p/windwaechter-fuer-motor-markisen-weiss-inkl-1-5-m-netzanschlussleitung/10178681/
22 changes: 22 additions & 0 deletions conf/ivac_pro.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# iVac Pro remote control that has different channels, tools and an on/off button
# https://github.com/merbanan/rtl_433/issues/3034

# -X 'n=iVacPro,m=OOK_PWM,s=420,l=856,r=2000,bits=13,unique,get=id:@0:{6}:%d,get=CMD:@8:{1}:[0:ON 1:OFF],get=SYSTEM_ADDRESS:@6:{2}:[0:D_11 1:C_01 2:B_10 3:A_00],get=TOOL_ADDRESS:@9:{3}:[0:7_111 1:6_011 2:5_101 3:4_001 4:3_110 5:2_010 6:1_100 7:8_000],get=Parity:@12:{1}:%d'


decoder {
name=iVacPro,
modulation=OOK_PWM,
short=420,
long=856,
reset=2000,
bits=13,
unique,

get=@0:{6}:id:%d,
get=@8:{1}:CMD:[0:ON 1:OFF],
get=@6:{2}:SYSTEM_ADDRESS:[0:D_11 1:C_01 2:B_10 3:A_00],
get=@9:{3}:TOOL_ADDRESS:[0:7_111 1:6_011 2:5_101 3:4_001 4:3_110 5:2_010 6:1_100 7:8_000],
get=@12:{1}:Parity:%d
}

61 changes: 61 additions & 0 deletions conf/oma-blind-remote.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Decoder for oma battery powered roller blind motor controller
# Tested with blind motor with electronic limit switch. Mechanical limit
# switch motors not tested.
# Instructions (LKC040902 ver 1.0) reference motors C-C16/C-C17.

# The device tested is model 8C-C18-DC-WA-A101 5 channels
# 433.92MHz
# https://www.omaautomation.com/
# FCC ID: Unknown

# Note. There is another controller of similar apearance, which has
# programmable date/time functions, which uses a different (incompatable)
# protocol.

# User manual: LKC040902 ver 1.0 (hardcopy)

# FCC ID: Unknown

# I have tested commands for blind up, blind stop and blind down.

# Short pulses have been found to work between 400 to 350 us, with long pulses
# twice that.

# Schema of signal is <2 byte command>
# <7 byte controller address>
# <1 byte 1's compliment of channel number>
# Up and down commands are sent as a pair of repeated commands.
# Stop command is sent as a single repeated command.
# The number of repeats received is quite variable, usually around 10.

# Channel number is 1's complement of the eigth byte. Thus 0xf = channel 0
# 0xe = channel 1
# ...
# 0x0 = channel 15

# Up commands are:
# Burst of about 6 repeats of: <ee><7 byte controler address><1 byte channel>
# followed by a burst of about 6 repeats of: <e1><7 byte controler address><1 byte channel>

# Stop commands are:
# Burst of about 6 repeats of: <aa><7 byte controler address><1 byte channel>

# Down commands are:
# Burst of about 6 repeats of: <cc><7 byte controler address><1 byte channel>
# followed by a burst of about 6 repeats of: <c3><7 byte controler address><1 byte channel>

decoder {
n=oma,
m=OOK_PWM,
s=375,
l=750,
r=11760,
g=0,t=0,
y=4824,
bits=40,
rows>=2,
get=command:@0:{8}:[238:up 225:up 170:stop 204:down 195:down],
get=@8:{28}:controller_id,
get=channel:@36:{4}:[15:0 14:1 13:2 12:3 11:4 10:5 9:6 8:7 7:8 6:9 5:10 4:11 3:12 2:13 1:14 0:15],
unique
}
13 changes: 10 additions & 3 deletions conf/qx-30x.conf
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# QX-30X
#
# This decoder reads button presses from QX-302, QX-305 self powered switches.
# This decoder reads button presses from QX-302, QX-304 and QX-305 self powered
# switches. These switches appear to use an EV1527 based encoding, where the
# first 20 bits contain the device ID, the next 4 bits identify which button on
# the device was pushed, and there may be a trailing sync bit. A sample rate of
# around 1MHz is recommended to reliably detect these devices.
#

decoder {
Expand All @@ -10,6 +14,9 @@ decoder {
long = 100,
gap = 150,
reset = 1500,
bits >= 25,
unique
bits >= 24,
bits <= 25,
unique,
get = get=@0:{20}:id,
get = get=@20:{4}:button
}
Loading

0 comments on commit a9210ec

Please sign in to comment.