Dekodieren Temperatursensor von PEARL NC7427(NC7415) 433MHz

Hallo Kollegen,

habe o.g. Temp Sensoren hier liegen und diese Finde ich wegen der Solarunterstützung ganz praktisch.

Habe dank diesem thread:

https://forum.arduino.cc/index.php?topic=136836.60

über den Sketch Daten geloggt und 4 Tage versucht diese zu "netschlüsseln", ABER leider finde ich keine Daten von den Temp Sensoren drin.

Kann jemand drüberschauen und vielleicht bin ich "blind"?

Danke im Voraus!

001100001110010101011001101011001000000110  73,7F 44% 23,2C
001100001110010100011001101100001000001000  73,6F 44%     C
001100001110010100011001101100001000001000  73,6F 44% 23,1C
001100001110010011011001101011001000000001  73,6F 43%   , C
001100001110010010011001101011001000000111  73,4F 43%   , C
001100001110010001011001101011001000001101  73,3F 43%   , C
001100001110010001011001101011001000001101  73,3F 45% 22,9C
001100001100011111010101101011001000000110  73,1F 43%   , C
001100001110011110010101101011001000001111  73,0F 43% 22,8C
001100001101011001001101100100001100000110  69,3F 52%     C
001100001101011010001101100100001100001100  69,4F 52%     C
001100001101011011001101100011001100000010  69,5F 51%     C
001100001101011101001101100011001100000101  69,7F 51%     C

Und jetzt auf KANAL 1:

001100001110001000010001100100001100010100 70,9 53 21,6C
001100001110001001010001100011001100011010 70,9 51 21,6C
001100001110001001010001100010001100011111 70,9 50 21,6C
001100001110001001010001100011001100011010 70,9 51 21,6C

KANAL 3:

001100001110101001010001100100001100010101 70,9 52 21,6C
001100001110100111010001100100001100010111 70,7 52 21,5C
001100001110101000010001100011001100011011 70,8 51 21,5 21,6

KANAL 3 (NACH Batterie RAUS):
001010100010101101010001100011001100001010 71,2 50 21,8
001010100010101100010001100011001100001100 71,2 51 21,8

KANAL 3 (NACH 2x Batterie RAUS):

001100100110100010010101100010001100001111 71,8 50 22,1

001100100110100001010101100100001100001000 71,7 52 22,0
001100100110100001010101100011001100000000 71,7 51 22,0
001100100110100001010101100010001100000101 71,7 50 22,0
001100100110100001010101100010001100000101 71,7 50 22,0
001100100110100001010101100010001100000101 71,7 50 22,0
001100100110100001010101100001001100001010 71,7 49 22,0

ganze Ausgabe raw sieht dann so aus:

71,7 F 49

Start Bit L: 7990   H: 460
Data Bits: 42
L: 2024 2028 4080 4072 2040 2108 4072 2048 2044 4140 4076 2044 4076 2112 2044 2044 2044 4144 2048 4072 2048 4140 2044 4076 4076 2112 2044 2044 2044 4140 2044 2048 4076 4140 2044 2044 2048 2116 4076 2048 4080 2156 
H: 456 452 452 448 460 456 460 444 460 456 456 456 452 452 456 452 456 452 452 452 456 452 456 456 452 456 452 452 456 452 456 452 452 456 456 456 452 452 448 452 452 448 

001100100110100001010101100001001100001010

:slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile:
nach 2 Tagen mit bluefox (vom ioBroker Projekt) haben wir es geschafft!!!!

siehe hier:

http://forum.iobroker.net/viewtopic.php?f=35&t=3818

apropos, mysensors hat er auch schon, also könnt ihr auch VIS nutzen= Visualisierung für alles!

maxtox:
:slight_smile: :slight_smile: :slight_smile: :slight_smile: :slight_smile:
nach 2 Tagen mit bluefox (vom ioBroker Projekt) haben wir es geschafft!!!!

siehe hier:

http://forum.iobroker.net/posting.php?mode=post&f=35

apropos, mysensors hat er auch schon, also könnt ihr auch VIS nutzen= Visualisierung für alles!

Super, danke für die Info.

Wird sicher noch für andere Interessant werden.

Link hier noch mal..
jetzt ist richtig (habe oben korrigiert)

http://forum.iobroker.net/viewtopic.php?f=35&t=3818

Hallo,

ich habe die Dekodierung nach dem von maxtox gefundenen Protokoll mal ein einen Arduino Sketch gegossen.
Zugegebenermassen nicht sehr elegant, aber es funktioniert. Ich habe dazu den universellen Sketch von jurs
https://forum.arduino.cc/index.php?topic=136836.msg1036846#msg1036846
verwendet

Bisher habe ich leider nicht geschafft, die Logik für den CRC zu knacken.
Gibt es dazu mehr Infos ?

Gruß
Reinhard

PearlCheck4.ino (9.95 KB)

Hallo Reinhard,

welchen RF433 Receiver hast Du denn verbaut....?

Bisher habe ich nur mit den Sensoren ohne Interrupt gespielt....

Danke!

Viele Grüße!

Tom

Hi,

wenn es nur paar meter sen sollten nimm den billigsten von china...

wenn du durch die Wände "hören"willst nimm hSuper-heterodyne

licht2002:
welchen RF433 Receiver hast Du denn verbaut....?

Nimm lieber den besseren, damit gibt es weniger Probleme.
Die billigen sind sehr störempfindlich und in Städten fast nicht zu verwenden.

Ich empfehle diese hier: 433 MHz Empfänger

licht2002:
Hallo Reinhard,

welchen RF433 Receiver hast Du denn verbaut....?

Bisher habe ich nur mit den Sensoren ohne Interrupt gespielt....

Danke!

Viele Grüße!

Tom

War auch nur ein Billigempfänger aus China - Reichweite war ca. 10m mit einer Wand dazwischen

erni-berni:
Bisher habe ich leider nicht geschafft, die Logik für den CRC zu knacken.

Das steht aber doch explizit da, oder verstehe ich dein Problem nicht?

boolean crcValid(unsigned long value, byte checksum)
// check if received crc is correct for received value
{
  byte calculatedChecksum = 0;
  for (int i = 0 ; i < 8 ; i++) calculatedChecksum +=(byte)(value >> (i*4));
  calculatedChecksum &= 0xF;
  return calculatedChecksum == checksum;
}

Hallo Whandall,

wo steht das ? Die Funktion kommt ja aus dem Programm von jurs für die KW9010, die Version auf iobroker ist ja nicht für die Pearl Sensoren umgeschrieben.
diese Funktion hatte ich auch ausprobiert, die Logik funktioniert aber mit diesen Daten nicht.
Erste Frage dabei ist auch, welche Bits lasse ich weg, damit ich auf 32Bit komme?

Gruß
Reinhard

Whandall:
Das steht aber doch explizit da, oder verstehe ich dein Problem nicht?

boolean crcValid(unsigned long value, byte checksum)

// check if received crc is correct for received value
{
  byte calculatedChecksum = 0;
  for (int i = 0 ; i < 8 ; i++) calculatedChecksum +=(byte)(value >> (i*4));
  calculatedChecksum &= 0xF;
  return calculatedChecksum == checksum;
}

?

Wenn die letzte Zeile des Codes das macht, was ich denke, wird da nur ein „wahr“ oder „falsch“ zurückgegeben. Liege ich damit falsch?

Gruß

Gregor

Was würdest du von einer Funktion boolean crcValid(unsigned long value, byte checksum) als Rückgabe erwarten, wenn keinen boolschen Wert?

Und innerhalb der Funktion wird der CRC (Summe aller halb-Bytes) berechnet und mit dem erwarteten verglichen.

Whandall:
Was würdest du von einer Funktion boolean crcValid(unsigned long value, byte checksum) als Rückgabe erwarten, wenn keinen boolschen Wert?

Nichts, außer einem bool’schen Wert. Die Schreibweise ist für mich (der lieber „ausschweifend“ und leicht verständlich programmiert) ungewohnt. Hab mich sozusagen verguckt.

Gruß

Gregor

Hallo,

wie schon gesagt, die CRC Funktion oben passt nicht zum Pearl Sensor.
Wer sich an der Logik dieser CRC Bildung versuchen möchte:
Ich habe mal viele verschiedene Werte mit deren CRC in eine Tabelle kopiert.
Erste Spalte Bit 2-34 der Daten und zweite Spalte der CRC. Die ersten beiden Bits sind ja immer 00.

Wär super, wenn das geknackt würde
Reinhard

Pearl_Sensor_CRC.txt (7.03 KB)