• 10 dec 2017: forum version update. In case of issues use this topic.
  • 30 nov 2017: pilight moved servers. In case of issues use this topic.
Hello There, Guest! Login Register


Pearl weatherstation sensor for FWS-686 & FWS-665
#1
Hi everybody,

I've bought a weatherstation sensor from Pearl branded as infactory wireless sensor for FWS-686 & FWS-665. It didn't work out of the box with pilight, but I've reverse engineered the protocol to some extend.

I've used the tfa source code to make some new draft protocol code. That's why I just renamed every occurrence of tfa to tfa2. Here is the tfa2.c:

Code:
/*
    Copyright (C) 2014 CurlyMo

    This file is part of pilight.

    pilight 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 3 of the License, or (at your option) any later
    version.

    pilight is distributed in the hope that it will be useful, but WITHOUT ANY
    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with pilight. If not, see    <http://www.gnu.org/licenses/>
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>

#include "../../core/pilight.h"
#include "../../core/common.h"
#include "../../core/dso.h"
#include "../../core/log.h"
#include "../protocol.h"
#include "../../core/binary.h"
#include "../../core/gc.h"
#include "tfa2.h"

#define PULSE_MULTIPLIER    6
#define MIN_PULSE_LENGTH    460
#define MAX_PULSE_LENGTH    530
#define AVG_PULSE_LENGTH    471
#define RAW_LENGTH                82

typedef struct settings_t {
    double id;
    double channel;
    double temp;
    double humi;
    struct settings_t *next;
} settings_t;

static struct settings_t *settings = NULL;

static int validate(void) {
    if(tfa2->rawlen == RAW_LENGTH) {
        if(tfa2->raw[tfa2->rawlen-1] >= (MIN_PULSE_LENGTH*PULSE_DIV) &&
           tfa2->raw[tfa2->rawlen-1] <= (MAX_PULSE_LENGTH*PULSE_DIV)) {
            return 0;
        }
    }

    return -1;
}

static void parseCode(void) {
    int binary[RAW_LENGTH/2];
    int temp1 = 0;//, temp2 = 0, temp3 = 0;
    int humi1 = 0, humi2 = 0;
    int id = 0, battery = 0;
    int channel = 0;
    int i = 0, x = 0;
    double humi_offset = 0.0, temp_offset = 0.0;
    double temperature = 0.0, humidity = 0.0;
    char binstr[RAW_LENGTH/2+1];

    for(x=1;x<tfa2->rawlen-2;x+=2) {
        if(tfa2->raw[x] > AVG_PULSE_LENGTH*PULSE_MULTIPLIER) {
            binstr[i]='1';
            binary[i++] = 1;
        } else {
            binstr[i]='0';
            binary[i++] = 0;
        }
    }
    binstr[i]='\0';

    id = binToDecRev(binary, 0, 7);
    channel = binToDecRev(binary, 38, 39);

    temp1 = binToDecRev(binary, 16, 27);
                                                         /* Convert F to C */
    temperature = (int)((float)(((temp1*10) - 9000) - 3200) * ((float)5/(float)9));

    humi1 = binToDecRev(binary, 28, 31);
    humi2 = binToDecRev(binary, 32, 35);
    humidity = ((humi1*10)+(humi2));

    if(binToDecRev(binary, 36, 37) > 1) {
        battery = 0;
    } else {
        battery = 1;
    }

    struct settings_t *tmp = settings;
    while(tmp) {
        if(fabs(tmp->id-id) < EPSILON && fabs(tmp->channel-channel) < EPSILON) {
            humi_offset = tmp->humi;
            temp_offset = tmp->temp;
            break;
        }
        tmp = tmp->next;
    }

    temperature += temp_offset;
    humidity += humi_offset;

    tfa2->message = json_mkobject();
    json_append_member(tfa2->message, "id", json_mknumber(id, 0));
    json_append_member(tfa2->message, "temperature", json_mknumber(temperature/100, 2));
    json_append_member(tfa2->message, "humidity", json_mknumber(humidity, 2));
    json_append_member(tfa2->message, "battery", json_mknumber(battery, 0));
    json_append_member(tfa2->message, "channel", json_mknumber(channel, 0));
    json_append_member(tfa2->message, "binary", json_mkstring(binstr));
}

static int checkValues(struct JsonNode *jvalues) {
    struct JsonNode *jid = NULL;

    if((jid = json_find_member(jvalues, "id"))) {
        struct settings_t *snode = NULL;
        struct JsonNode *jchild = NULL;
        struct JsonNode *jchild1 = NULL;
        double channel = -1, id = -1;
        int match = 0;

        jchild = json_first_child(jid);
        while(jchild) {
            jchild1 = json_first_child(jchild);
            while(jchild1) {
                if(strcmp(jchild1->key, "channel") == 0) {
                    channel = jchild1->number_;
                }
                if(strcmp(jchild1->key, "id") == 0) {
                    id = jchild1->number_;
                }
                jchild1 = jchild1->next;
            }
            jchild = jchild->next;
        }

        struct settings_t *tmp = settings;
        while(tmp) {
            if(fabs(tmp->id-id) < EPSILON && fabs(tmp->channel-channel) < EPSILON) {
                match = 1;
                break;
            }
            tmp = tmp->next;
        }

        if(match == 0) {
            if((snode = MALLOC(sizeof(struct settings_t))) == NULL) {
                fprintf(stderr, "out of memory\n");
                exit(EXIT_FAILURE);
            }
            snode->id = id;
            snode->channel = channel;
            snode->temp = 0;
            snode->humi = 0;

            json_find_number(jvalues, "temperature-offset", &snode->temp);
            json_find_number(jvalues, "humidity-offset", &snode->humi);

            snode->next = settings;
            settings = snode;
        }
    }
    return 0;
}

static void gc(void) {
    struct settings_t *tmp = NULL;
    while(settings) {
        tmp = settings;
        settings = settings->next;
        FREE(tmp);
    }
    if(settings != NULL) {
        FREE(settings);
    }
}

#if !defined(MODULE) && !defined(_WIN32)
__attribute__((weak))
#endif
void tfa2Init(void) {
    protocol_register(&tfa2);
    protocol_set_id(tfa2, "tfa2");
    protocol_device_add(tfa2, "tfa2", "inFactory weather sensor");
    tfa2->devtype = WEATHER;
    tfa2->hwtype = RF433;
    tfa2->maxgaplen = MAX_PULSE_LENGTH*PULSE_DIV;
    tfa2->mingaplen = MIN_PULSE_LENGTH*PULSE_DIV;
    tfa2->minrawlen = 82;
    tfa2->maxrawlen = 82;
    
    options_add(&tfa2->options, 't', "temperature", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[0-9]{1,3}$");
    options_add(&tfa2->options, 'i', "id", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]");
    options_add(&tfa2->options, 'c', "channel", OPTION_HAS_VALUE, DEVICES_ID, JSON_NUMBER, NULL, "[0-9]");
    options_add(&tfa2->options, 'h', "humidity", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "[0-9]");
    options_add(&tfa2->options, 'b', "battery", OPTION_HAS_VALUE, DEVICES_VALUE, JSON_NUMBER, NULL, "^[01]$");

    // options_add(&tfa2->options, 0, "decimals", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)2, "[0-9]");
    options_add(&tfa2->options, 0, "temperature-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]");
    options_add(&tfa2->options, 0, "humidity-offset", OPTION_HAS_VALUE, DEVICES_SETTING, JSON_NUMBER, (void *)0, "[0-9]");
    options_add(&tfa2->options, 0, "temperature-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]");
    options_add(&tfa2->options, 0, "humidity-decimals", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)2, "[0-9]");
    options_add(&tfa2->options, 0, "show-humidity", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$");
    options_add(&tfa2->options, 0, "show-temperature", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$");
    options_add(&tfa2->options, 0, "show-battery", OPTION_HAS_VALUE, GUI_SETTING, JSON_NUMBER, (void *)1, "^[10]{1}$");
    
    tfa2->parseCode=&parseCode;
    tfa2->checkValues=&checkValues;
    tfa2->validate=&validate;
    tfa2->gc=&gc;
}

#if defined(MODULE) && !defined(_WIN32)
void compatibility(struct module_t *module) {
    module->name = "tfa2";
    module->version = "1.0";
    module->reqversion = "6.0";
    module->reqcommit = "84";
}

void init(void) {
    tfa2Init();
}
#endif

It works so far, but up to now, I've only found out the meaning of some of the bits sent by the sensor, but not all.

Following, I post a couple of bit-streams from the sensor with corresponding temperature and humidity values. The last 3 digit is the long footer pulse.
I assume, that the first 8 bits are the id, since they change whenever I put out the batteries.
After that, there are 8 bits, I have no clue about. They change every telegram seemingly random, so it could be a checksum. On the other hand, Pearl claims, that this sensor also measures the pressure. While I actually doubt it, it could have to do something with that.
The next 8 bits represent the temperature+90.0°F in Fahrenheit as a binary number with one decimal place, so you need to subtract 90.0°F from it.
After that there are 8 bits for the humidity, divided in 2 groups of 4, each one presenting one digit of the decimal value in binary.
The next two bits could be the battery state.
The last two bits represent the channel 1-3, which can be selected by a switch.

Code:
00010000100010010110011101100100001100013 - 24.1°C 43%
00010000000110010110011101010100010100013 - 24.0°C 45%
0001000001??10100110011010110100010000013 - 23.5°C 44%
00010000011010100110011010110?00010000013 - 23.5°C 44%
00010000110010100110010111000100010000013 - 22.6°C 44%
00010000111110100110001101100100011100013 - 20.5°C 47%
00010000000010100110001101100100100000013 - 20.5°C 48%
00010000011010100110001110010100100000013 - 20.7°C 48%
00010000001110100110001110000100100000013 - 20.6°C 48%
00010000000010100110001101100100100000013 - 20.5°C 48%
00010000101010100110001101000100100000013 - 20.4°C 48%
00010000011010100110001110010100100000013 - 20.7°C 48%
00010000111110100110001101100100011100013 - 20.5°C 47%
00010111010110000110001000110100100100013 - 19.5°C 49%
00010111011010000110000110100101000000013 - 19.0°C 66.2°F 50%
00010111111110000110000111010101000100013 - 19.1°C 66.5°F 51%
00010111000010000110001000000101000000013 - 19.3°C 66.8°F 50%
00010111110010000110001001100101000100013 - 19.6°C 67.4°F 51%
00010111111110000110001010000101000100013 - 19.7°C 67.6°F 51%
00010111000010000110001010110101000100013 - 19.9°C 67.9°F 51%
00010111001010000110001011100101000100013 - 20.1°C 68.2°F 51%
00010111010100010110001110010101001000013 - 20.7°C 69.3°F 52%

Okay, I now need your help in deciphering the second group of 8 bits and further more, I need some hints as to how I get the code into a style, that it could appear in the official pilight version, and how to get it there.

Since this is my first post in this forum, please let me know, if I've violated some rules or whatever.

Cheers
 
Reply
#2
Hi,

why do you assume that the sensor cannot measure the pressure? It seems like the weather station shows an air pressure. Do you own the station? Which values does it show when the telegrams are sent? Could you provide a table?

Cheers
 
Reply
#3
Unfortunately, I only own the sensor, not the station.

Most cheap weatherstations I know have their pressure sensor in the station and not in the wireless sensors, since the pressure indoors and outdoors should be more or less the same and the pressure sensor is relatively expansive, so it's only built in once, not once per wireless sensor.

But I would be more than happy, if we will find out, that the sensor indeed has a built in pressure sensor.

Best regards
 
Reply
#4
I also just bought the sensor (those are really cheap Big Grin). When mine arrives I'll open it up and have a look. But you're probably right that the sensor is only in the station itself.
 
Reply
#5
Any news on that sensor? Have you opened your device and found out, if there's a pressure sensor inside?
 
Reply
#6
Thumbs Up 
(09-12-2017, 02:47 PM)chklump Wrote: Any news on that sensor? Have you opened your device and found out, if there's a pressure sensor inside?

Hello,

first of all, thank you very much for your code. Smile

I also have three cheapy Pearl outside sensors and with your rewritten tfa2.c I could receive the signals. Smile

Since every sensor has its own ID, it is great!
I had previously run this with the signalduino + fhem, only there I could not operate 3 sensors at the same time, because the signalduino did not recognize the ID.

But now it's working perfectly!

It would be great, if it would be included in the official sources.


To the outside sensors that measure temperature and humidity.

I have a Pearl station and one sensor is outside, the humidity values are different from the station inside and the sensor outside.

My outside Sensors:
NX-5796-675 / FWS-150
https://www.pearl.de/a-HPM5797-3041.shtml?vid=910

Station:
https://www.pearl.de/a-GRA15797-3041.shtml?vid=910

Code:
{
        "message": {
                "id": 5,
                "temperature": 22.66,
                "humidity": 51.00,
                "battery": 1,
                "channel": 1,
                "binary": "0000010101110010011001011100010100010001"
        },
        "origin": "receiver",
        "protocol": "tfa2",
        "uuid": "0000-08-00-27-e5069d",
        "repeats": 2
}
{
        "message": {
                "id": 5,
                "temperature": 26.44,
                "humidity": 61.00,
                "battery": 1,
                "channel": 1,
                "binary": "0000010110110001011010100000011000010001"
        },
        "origin": "receiver",
        "protocol": "tfa2",
        "uuid": "0000-08-00-27-e5069d",
        "repeats": 2
}

greetings
Mark
 
Reply
#7
Was there a pull request for this (new) code?
 
Reply
#8
Sorry, I have no idea. I've been using pilight for 3 days and spent two of them, to get the SRX882 running. :/

chklump knows more about it. I'll write him a PM, because he hasn't been here in the Forum Online for a while.

But the code works.
 
Reply
#9
Hi,
good to know that somebody can make use of my two or so lines of code.
Up to now, I haven't considered a pull request, because first, nobody seems to use this Pearl sensor and second, because there still are unrecognised bits which probably represent some kind of checksum.
My sensor values jump around a couple of times a day (completely wrong readings) which could be detected by a checksum. So we should perhaps work a bit on the code and then include it into the official sources?!
Regards
 
Reply
#10
I use the sensors, and they're pretty cheap. Smile

I looked it up once, with a Signalduino he receives this from the Pearl sensor:
Maybe this will help to decode the remaining bits.... I have no idea myself.

Code:
2017.11.13 21:41:56 4: sduino/msg READ: MS;P1=588;P2=-1022;P3=997;P4=-7896;P5=-4061;P6=-1852;P7=-15980;D=17323232321415151616161516161515151616161516161516151616161516161615151616161615151516161615;CP=1;SP=7;R=248;O;
2017.11.13 21:41:56 4: sduino: Matched MS Protocol id 51 -> weather51
2017.11.13 21:41:56 5: sduino: Starting demodulation at Position 12
2017.11.13 21:41:56 4: sduino: Decoded MS Protocol id 51 dmsg W51#C4E2511871 length 40 RSSI = -78
2017.11.13 21:41:56 5: sduino Dispatch: W51#C4E2511871, test ungleich: disabled
2017.11.13 21:41:56 5: sduino Dispatch: W51#C4E2511871, -78 dB, dispatch
2017.11.13 21:41:56 5: sduino: dispatch W51#C4E2511871
2017.11.13 21:41:56 4: SD_WS_Parse: Protocol: 51, rawData: C4E2511871
2017.11.13 21:41:56 4: sduino decoded protocolid: 51 (Lidl Wetterstation 2759001/IAN114324) sensor id=6300, channel=1, temp=4.3, hum=87, bat=ok

...

2017.11.13 22:03:47 4: sduino/msg READ: MS;P1=-1002;P2=1012;P3=571;P4=-7897;P5=-4060;P6=-1893;P7=-16010;D=37212121213435353636363536363536363636363636363536353636363536363636353636363536363636363635;CP=3;SP=7;R=249;O;
2017.11.13 22:03:47 4: sduino: Matched MS Protocol id 51 -> weather51
2017.11.13 22:03:47 5: sduino: Starting demodulation at Position 12
2017.11.13 22:03:47 4: sduino: Decoded MS Protocol id 51 dmsg W51#C480510881 length 40 RSSI = -77.5
2017.11.13 22:03:47 5: sduino Dispatch: W51#C480510881, test gleich
2017.11.13 22:03:47 5: sduino Dispatch: W51#C480510881, -77.5 dB, dispatch
2017.11.13 22:03:47 5: sduino: dispatch W51#C480510881
2017.11.13 22:03:47 4: SD_WS_Parse: Protocol: 51, rawData: C480510881
2017.11.13 22:03:47 4: sduino decoded protocolid: 51 (Lidl Wetterstation 2759001/IAN114324) sensor id=6288, channel=1, temp=4.2, hum=88, bat=ok
2017.11.13 22:03:47 4: sduino/msg READ: MS;P0=573;P1=-1852;P2=-4034;P3=-15991;P4=1010;P5=-1007;P6=-7935;D=06020201010102010102010101010101010102010201010102010101010201010102010101010101020345454545;CP=0;SP=6;R=249;O;
2017.11.13 22:03:47 4: sduino: Matched MS Protocol id 51 -> weather51
2017.11.13 22:03:47 5: sduino: Starting demodulation at Position 2
2017.11.13 22:03:47 5: sduino: Found wrong signalpattern, catched 40 bits, aborting demodulation
2017.11.13 22:03:47 4: sduino: Decoded MS Protocol id 51 dmsg W51#C480510881 length 40 RSSI = -77.5
2017.11.13 22:03:47 5: sduino Dispatch: W51#C480510881, test gleich
2017.11.13 22:03:47 4: sduino Dispatch: W51#C480510881, Dropped due to short time or equal msg
2017.11.13 22:03:47 4: sduino/msg READ: MU;P0=595;P1=-4051;P2=-1875;P3=-18398;P4=1017;P5=-1001;P6=-7892;D=0102020201020202020102020201020202020202010345454545060101020202010202010202020202020202010201020202010202020201020202010202020202020103;CP=0;R=249;
2017.11.13 22:03:47 4: sduino: Fingerprint for MU Protocol id 13.1 -> FLAMINGO FA21 b matches, trying to demodulate
2017.11.13 22:03:47 5: sduino: start pattern for MU Protocol id 13.1 -> FLAMINGO FA21 b mismatches, aborting
2017.11.13 22:03:47 5: sduino: applying filterfunc SIGNALduino_filterSign
2017.11.13 22:03:48 4: sduino: Fingerprint for MU Protocol id 28 -> IC Ledspot matches, trying to demodulate
2017.11.13 22:03:48 5: sduino: start pattern for MU Protocol id 28 -> IC Ledspot mismatches, aborting
2017.11.13 22:03:48 4: sduino: Fingerprint for MU Protocol id 31 -> pollin isotronic matches, trying to demodulate
2017.11.13 22:03:48 5: sduino: Starting demodulation at Position 1
2017.11.13 22:03:48 4: sduino: Fingerprint for MU Protocol id 36 -> socket36 matches, trying to demodulate
2017.11.13 22:03:48 5: sduino: start pattern for MU Protocol id 36 -> socket36 mismatches, aborting
2017.11.13 22:03:48 5: sduino: applying filterfunc SIGNALduino_compPattern
2017.11.13 22:03:48 4: sduino: Fingerprint for MU Protocol id 39 -> X10 Protocol matches, trying to demodulate
2017.11.13 22:03:48 5: sduino: start pattern for MU Protocol id 39 -> X10 Protocol mismatches, aborting
2017.11.13 22:03:48 4: sduino: Fingerprint for MU Protocol id 5 -> unitec6899 matches, trying to demodulate
2017.11.13 22:03:48 5: sduino: Starting demodulation at Position 2
2017.11.13 22:03:48 4: sduino: Fingerprint for MU Protocol id 50 -> optus_XT300 matches, trying to demodulate
2017.11.13 22:03:48 5: sduino: Starting demodulation at Position 44
2017.11.13 22:03:48 4: sduino: Fingerprint for MU Protocol id 69 -> Hoermann matches, trying to demodulate
2017.11.13 22:03:48 5: sduino: start pattern for MU Protocol id 69 -> Hoermann mismatches, aborting
2017.11.13 22:03:49 4: sduino/msg READ: MC;LL=-1075;LH=881;SL=-575;SH=394;D=670605F7B56A396;C=487;L=59;R=11;
2017.11.13 22:03:49 4: sduino: Found manchester Protocol id 52 clock 487 RSSI -68.5 -> OS_PIR
2017.11.13 22:03:49 5: sduino: extracted data 100110001111100111111010000010000100101010010101110001101001 (bin)
2017.11.13 22:03:49 5: sduino: protocol does not match return from method: ( header not found)
2017.11.13 22:03:49 4: sduino: Found manchester Protocol id 58 clock 487 RSSI -68.5 -> tfa 30.3208.0
2017.11.13 22:03:49 5: sduino: extracted data 100110001111100111111010000010000100101010010101110001101001 (bin)
2017.11.13 22:03:49 5: sduino: protocol does not match return from method: (undef)
2017.11.13 22:03:49 4: sduino/msg READ: MU;P0=-1058;P1=898;P2=-572;P3=216;P4=408;D=0101232404242424242421242404210124240104210104242104242124242424042124242424240104242424210424242104210101042101010104212401042424;CP=4;R=12;
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 16 -> Dooya shutter matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 16 -> Dooya shutter mismatches, aborting
2017.11.13 22:03:49 5: sduino: applying filterfunc SIGNALduino_filterSign
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 20 -> livolo matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: Starting demodulation at Position 5
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 21 -> einhell garagedoor matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 21 -> einhell garagedoor mismatches, aborting
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 26 -> remote26 matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 26 -> remote26 mismatches, aborting
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 27 -> remote27 matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 27 -> remote27 mismatches, aborting
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 28 -> IC Ledspot matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 28 -> IC Ledspot mismatches, aborting
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 30 -> unitec47031 matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 30 -> unitec47031 mismatches, aborting
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 31 -> pollin isotronic matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: Starting demodulation at Position 8
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 36 -> socket36 matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 36 -> socket36 mismatches, aborting
2017.11.13 22:03:49 5: sduino: applying filterfunc SIGNALduino_compPattern
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 40 -> romotec matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: Starting demodulation at Position 2
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 49 -> quigg_gt9000 matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 49 -> quigg_gt9000 mismatches, aborting
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 61 -> FS10 matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: Starting demodulation at Position 9
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 69 -> Hoermann matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 69 -> Hoermann mismatches, aborting
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 70 -> FHT80TF matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: Starting demodulation at Position 9
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 72 -> Siro shutter matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: start pattern for MU Protocol id 72 -> Siro shutter mismatches, aborting
2017.11.13 22:03:49 4: sduino: Fingerprint for MU Protocol id 8 -> TX3 Protocol matches, trying to demodulate
2017.11.13 22:03:49 5: sduino: Starting demodulation at Position 1
2017.11.13 22:03:50 4: sduino/msg READ: MC;LL=-1071;LH=897;SL=-577;SH=397;D=B783C68B5BC1817DED5A9FF8;C=490;L=93;R=13;
2017.11.13 22:03:50 4: sduino: Found manchester Protocol id 10 clock 490 RSSI -67.5 -> OSV2o3
2017.11.13 22:03:50 5: sduino: extracted data 010010000111110000111001011101001010010000111110011111101000001000010010101001010110000000000111 (bin)
2017.11.13 22:03:50 5: sduino: protocol does not match return from method: (undef)
2017.11.13 22:03:50 4: sduino: Found manchester Protocol id 12 clock 490 RSSI -67.5 -> Hideki protocol
2017.11.13 22:03:50 5: sduino: extracted data 010010000111110000111001011101001010010000111110011111101000001000010010101001010110000000000111 (bin)
2017.11.13 22:03:50 5: sduino: protocol does not match return from method: (Start pattern (10101110) not found)
2017.11.13 22:03:50 4: sduino: Found manchester Protocol id 12.1 clock 490 RSSI -67.5 -> Hideki protocol not invert
2017.11.13 22:03:50 5: sduino: extracted data 101101111000001111000110100010110101101111000001100000010111110111101101010110101001111111111000 (bin)
2017.11.13 22:03:50 5: sduino: protocol does not match return from method: (Start pattern (10101110) not found)
2017.11.13 22:03:50 4: sduino: Found manchester Protocol id 52 clock 490 RSSI -67.5 -> OS_PIR
2017.11.13 22:03:50 5: sduino: extracted data 010010000111110000111001011101001010010000111110011111101000001000010010101001010110000000000111 (bin)
2017.11.13 22:03:50 5: sduino: protocol does not match return from method: ( header not found)
2017.11.13 22:03:50 4: sduino: Found manchester Protocol id 58 clock 490 RSSI -67.5 -> tfa 30.3208.0
2017.11.13 22:03:50 5: sduino: extracted data 010010000111110000111001011101001010010000111110011111101000001000010010101001010110000000000111 (bin)
2017.11.13 22:03:50 5: sduino: protocol does not match return from method: (undef)

Code:
LASTInputDev
sduino
MSGCNT
1099
NAME
Aussen_Temp_Sensor
NR
152
STATE
T: 4.4 H: 88
TYPE
SD_WS
bitMSG
1100010010110010010100010011100010000001
lastMSG
C4B2513881
lastReceive
1510606268
sduino_DMSG
W51#C4B2513881
sduino_MSGCNT
1099
sduino_RAWMSG
MS;P0=-1009;P1=1003;P2=607;P3=-7884;P4=-4126;P5=-1862;P6=-14710;D=26101010102324242525252425252425242425252425252425242525252425252424242525252425252525252524;CP=2;SP=6;R=245;
sduino_RSSI
-79.5
sduino_TIME
2017-11-13 21:51:08

The only problem is with the sduino, which starts to spin on multiple sensors because it jumbles the IDs.
 
Reply
  


Possibly Related Threads...
Thread Author Replies Views Last Post
  Weatherstation ADE WS 1503 Rschnauzer 5 1,239 01-19-2019, 07:53 PM
Last Post: Rschnauzer
  gs-iwds07 window sensor Loggisch 46 11,882 01-02-2019, 09:11 PM
Last Post: curlymo
  TFA 30.3160 Pool Sensor wseifert 4 828 05-30-2018, 09:24 AM
Last Post: wseifert
  Digoo / Baldr / Nexus / Rubicson temperature/humidity sensor thielj 0 1,129 03-23-2018, 11:29 PM
Last Post: thielj
Lightbulb BH1750 i2c digital illuminance sensor marcm 14 3,257 02-25-2018, 08:40 PM
Last Post: morph027
  [Fully Supported] LM75 and LM76 temperature sensor horst_dieter 64 24,390 11-19-2017, 08:54 PM
Last Post: edepi
  Air Pollution Data Sensor Alex 0 810 08-07-2017, 06:26 AM
Last Post: Alex
  Froggit Weatherstation Alex 22 13,171 07-22-2017, 07:46 PM
Last Post: drobskind
Lightbulb TSL2561 i2c digital illuminance sensor marcm 9 2,938 06-25-2017, 10:36 AM
Last Post: marcm
  eTiger Contact Sensor (ES-D3C) Terra 0 1,033 02-02-2017, 03:25 AM
Last Post: Terra

Forum Jump:


Browsing: 1 Guest(s)