rtl433  UNKNOWN
RTL-433 utility
proove.c File Reference

Proove decoder. More...

Functions

static int proove_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 Proove/Nexa/Kaku decoder. More...
 

Variables

static char * output_fields []
 
r_device proove
 

Detailed Description

Proove decoder.

Copyright (C) 2016 Ask Jakobsen, Christian Juncker Brædstrup

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Function Documentation

◆ proove_callback()

static int proove_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

Proove/Nexa/Kaku decoder.

Might be similar to an x1527. S.a. Kaku, Nexa.

Tested devices:

  • Magnetic door & window sensor
    • "Proove" from 'Kjell & Company'
    • "Anslut" from "Jula"
    • "Telecontrol Plus" remote by "REV Ritter GmbH" (Germany) , model number "008341C-1"
    • "Nexa"
    • "Intertechno ITLS-16" (OEM model # "ITAPT-821")
    • Nexa - LMST-606

From http://elektronikforumet.com/wiki/index.php/RF_Protokoll_-_Proove_self_learning

Proove packet structure (32 bits or 36 bits with dimmer value):

HHHH HHHH HHHH HHHH HHHH HHHH HHGO CCEE [DDDD]
  • H = The first 26 bits are transmitter unique codes, and it is this code that the receiver “learns” to recognize.
  • G = Group command. Set to 1 for on, 0 for off.
  • O = On/Off bit. Set to 1 for on, 0 for off.
  • C = Channel bits (inverted).
  • E = Unit bits (inverted). Device to be turned on or off. Unit #1 = 00, #2 = 01, #3 = 10.
  • D = Dimmer value (optional).

Physical layer: Every bit in the packets structure is sent as two physical bits. Where the second bit is the inverse of the first, i.e. 0 -> 01 and 1 -> 10. Example: 10101110 is sent as 1001100110101001 The sent packet length is thus 64 bits. A message is made up by a Sync bit followed by the Packet bits and ended by a Pause bit. Every message is repeated about 5-15 times. Packet gap is 10 ms.

References bitbuffer::bb, bitbuffer_invert(), bitbuffer_manchester_decode(), bitbuffer::bits_per_row, DATA_INT, data_make(), DATA_STRING, DECODE_ABORT_EARLY, DECODE_ABORT_LENGTH, decoder_output_data(), and bitbuffer::syncs_before_row.

Variable Documentation

◆ output_fields

char* output_fields[]
static
Initial value:
= {
"model",
"id",
"channel",
"state",
"unit",
"group",
NULL,
}

◆ proove

r_device proove
Initial value:
= {
.name = "Proove / Nexa / KlikAanKlikUit Wireless Switch",
.modulation = OOK_PULSE_PPM,
.short_width = 270,
.long_width = 1300,
.sync_width = 2700,
.tolerance = 200,
.gap_limit = 1500,
.reset_limit = 2800,
.decode_fn = &proove_callback,
.disabled = 0,
.fields = output_fields,
}
static int proove_callback(r_device *decoder, bitbuffer_t *bitbuffer)
Proove/Nexa/Kaku decoder.
Definition: proove.c:50
Pulse Position Modulation. Short gap = 0, Long = 1.
Definition: r_device.h:12
static char * output_fields[]
Definition: proove.c:93