rtl433  UNKNOWN
RTL-433 utility
philips_aj7010.c File Reference

Philips outdoor temperature sensor. More...

Functions

static int philips_aj7010_decode (r_device *decoder, bitbuffer_t *bitbuffer)
 Philips outdoor temperature sensor – used with various Philips clock radios (tested on AJ7010). More...
 

Variables

static char * output_fields []
 
r_device philips_aj7010
 

Detailed Description

Philips outdoor temperature sensor.

Copyright (C) 2018 Nicolas Jourden nicol.nosp@m.as.j.nosp@m.ourde.nosp@m.n@la.nosp@m.poste.nosp@m..net

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

◆ philips_aj7010_decode()

static int philips_aj7010_decode ( r_device decoder,
bitbuffer_t bitbuffer 
)
static

Philips outdoor temperature sensor – used with various Philips clock radios (tested on AJ7010).

This is inspired from the other Philips driver made by Chris Coffey.

A complete message is 40 bits:

  • 3 times sync of 1000us pulse + 1000us gap.
  • 40 bits, 2000 us short or 6000 us long
  • packet gap is 38 ms
  • Packets are repeated 3 times.

40-bit data packet format:

00000000 01000101 00100010 00101001 01001110 : g_philips_21.1_ch2_B.cu8
00000000 01011010 01111100 00101001 00001111 : g_philips_21.4_ch1_C.cu8
00000000 01011010 00000101 00100110 01111001 : gph_bootCh1_17.cu8
00000000 01000101 00011110 00100110 01111101 : gph_bootCh2_17.cu8
00000000 00110110 11100011 00100101 11110000 : gph_bootCh3_17.cu8

Data format is:

00000000  0ccccccc tttttttt TTTTTTTT XXXXXXXX
  • c: 7 bit channel: 0x5A=channel 1, 0x45=channel 2, 0x36=channel 3
  • t: 16 bit temperature in ADC value that is then converted to deg. C.
  • X: XOR sum, every 2nd packet without last data byte (T).

References bitbuffer::bb, bitbuffer_invert(), bitbuffer::bits_per_row, DATA_DOUBLE, DATA_FORMAT, DATA_INT, data_make(), DATA_STRING, DECODE_ABORT_LENGTH, DECODE_FAIL_MIC, DECODE_FAIL_SANITY, decoder_output_data(), bitbuffer::num_rows, r_device::verbose, and xor_bytes().

Variable Documentation

◆ output_fields

char* output_fields[]
static
Initial value:
= {
"time",
"model",
"channel",
"temperature_C",
"mic",
NULL,
}

◆ philips_aj7010

r_device philips_aj7010
Initial value:
= {
.name = "Philips outdoor temperature sensor (type AJ7010)",
.modulation = OOK_PULSE_PWM,
.short_width = 2000,
.long_width = 6000,
.sync_width = 1000,
.reset_limit = 30000,
.decode_fn = &philips_aj7010_decode,
.disabled = 0,
.fields = output_fields,
}
static char * output_fields[]
Definition: philips_aj7010.c:129
Pulse Width Modulation with precise timing parameters.
Definition: r_device.h:13
static int philips_aj7010_decode(r_device *decoder, bitbuffer_t *bitbuffer)
Philips outdoor temperature sensor – used with various Philips clock radios (tested on AJ7010)...
Definition: philips_aj7010.c:41