rtl433  UNKNOWN
RTL-433 utility
oil_standard.c File Reference

Oil tank monitor using manchester encoded FSK/ASK protocol. More...

Functions

static int oil_standard_decode (r_device *decoder, bitbuffer_t *bitbuffer, unsigned row, unsigned bitpos)
 The sensor sends a single packet once every hour or twice a second for 11 minutes when in pairing/test mode (pairing needs 35 sec). More...
 
static int oil_standard_callback (r_device *decoder, bitbuffer_t *bitbuffer)
 

Variables

static const unsigned char preamble_pattern0 [2] = {0x55, 0x5D}
 
static const unsigned char preamble_pattern1 [2] = {0x55, 0x62}
 
static char * output_fields []
 
r_device oil_standard
 
r_device oil_standard_ask
 

Detailed Description

Oil tank monitor using manchester encoded FSK/ASK protocol.

Tested devices:

  • APOLLO ULTRASONIC STANDARD (maybe also VISUAL but not SMART, FSK)
  • Tekelek TEK377E (E: European, A: American version)
  • Beckett Rocket TEK377A (915MHz, ASK) Should apply to similar Watchman, Beckett, and Apollo devices too.

Copyright (C) 2017 Christian W. Zuckschwerdt zany@.nosp@m.triq.nosp@m..net based on code Copyright (C) 2015 David Woodhouse

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

◆ oil_standard_callback()

static int oil_standard_callback ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

◆ oil_standard_decode()

static int oil_standard_decode ( r_device decoder,
bitbuffer_t bitbuffer,
unsigned  row,
unsigned  bitpos 
)
static

The sensor sends a single packet once every hour or twice a second for 11 minutes when in pairing/test mode (pairing needs 35 sec).

depth reading is in cm, lowest reading is ~3, highest is ~305, 0 is invalid

IIII IIII IIII IIII 0FFF L0OP DDDD DDDD

The TEK377E might send an additional 8 zero bits.

example packets are:

010101 01010101 01010111 01101001 10011010 10101001 10100101 10011010 01101010 10011001 10011010 0000
010101 01010101 01011000 10011010 01010110 01101010 10101010 10100101 01101010 10100110 10101001 1111

Start of frame full preamble is depending on first data bit either

01 0101 0101 0101 0101 0111 01
01 0101 0101 0101 0101 1000 10

References bitbuffer::bb, bitbuffer_manchester_decode(), bitbuffer::bits_per_row, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, and decoder_output_data().

Referenced by oil_standard_callback().

Variable Documentation

◆ oil_standard

r_device oil_standard
Initial value:
= {
.name = "Oil Ultrasonic STANDARD FSK",
.modulation = FSK_PULSE_PCM,
.short_width = 500,
.long_width = 500,
.reset_limit = 2000,
.decode_fn = &oil_standard_callback,
.disabled = 0,
.fields = output_fields,
}
FSK, Pulse Code Modulation.
Definition: r_device.h:19
static char * output_fields[]
Definition: oil_standard.c:121
static int oil_standard_callback(r_device *decoder, bitbuffer_t *bitbuffer)
Definition: oil_standard.c:101

◆ oil_standard_ask

r_device oil_standard_ask
Initial value:
= {
.name = "Oil Ultrasonic STANDARD ASK",
.modulation = OOK_PULSE_PCM_RZ,
.short_width = 500,
.long_width = 500,
.reset_limit = 2000,
.decode_fn = &oil_standard_callback,
.disabled = 0,
.fields = output_fields,
}
Pulse Code Modulation with Return-to-Zero encoding, Pulse = 0, No pulse = 1.
Definition: r_device.h:11
static char * output_fields[]
Definition: oil_standard.c:121
static int oil_standard_callback(r_device *decoder, bitbuffer_t *bitbuffer)
Definition: oil_standard.c:101

◆ output_fields

char* output_fields[]
static
Initial value:
= {
"model",
"id",
"flags",
"alarm",
"binding_countdown",
"depth_cm",
NULL
}

◆ preamble_pattern0

const unsigned char preamble_pattern0[2] = {0x55, 0x5D}
static

Referenced by oil_standard_callback().

◆ preamble_pattern1

const unsigned char preamble_pattern1[2] = {0x55, 0x62}
static

Referenced by oil_standard_callback().