Einbinden von FSK Sensoren wie z.B. TX22, TX38, WS1080, W136, WH24 in den sduino

Begonnen von Ralf9, 13 August 2021, 23:41:50

Vorheriges Thema - Nächstes Thema

Ralf9

Hallo,

ich möchte gerne nach und nach ein großteil der FSK Sensoren vom LaCrosseGateway und JeeLink in den Signalduino übernehmen.

Ich hab mir mal den LaCrosseGateway Sketch angeschaut, die folgenden Sensoren sollte ich eigentlich mit überschaubarem Aufwand in den Signalduino übernehmen können:

TX38IT    dataRate = 17241
WS 1080   dataRate = 17241
TX22IT    dataRate = 8842 
W136      dataRate = 4800 
WH24      dataRate = 17241
WH25      dataRate = 17241
LevelSender dataRate = 17241


Zum Einbauen reichen mir in einem ersten Schritt die Raw Nachrichten vom LaCrosseGateway oder JeeLink.
Vom WS 1080 und TX22IT habe ich schon Raw Nachrichten gefunden.

Von den restlichen Sensoren kann ich noch Raw Nachrichten gebrauchen.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7

Ralf9

Bei der Übernahme der crc Prüfungen in den Signalduino ist mir aufgefallen, daß im LaCrosseGateway zwei verschiedene CRC8 Routinen verwendet werden.
Wenn ich das richtig überblicke machen diese das gleiche. Beide haben init = 0 und Poly 0x31.

Ich hab sie in Perl umgeschrieben, kann jemand abschätzen welche Routine eine kürzere Laufzeit hat?


  my $res = 0;
  for ($j = 0; $j < $len; $j++) {
    $val = $data[$j];
    for ($i = 0; $i < 8; $i++) {
      $tmp = ($res ^ $val) & 0x80;
      $res <<= 1;
      $res &= 0xFF;
      if ($tmp != 0) {
        $res ^= 0x31;
      }
      $val <<= 1;
    }
  }
  return $res;


  my $res = 0;
  for (my $j = 0; $j < $len; $j++) {
    $res ^= $data[$j];
    for (my $i = 0; $i < 8; $i++) {
      if ($res & 0x80) {
        $res = ($res << 1) ^ 0x31;
      }
      else {
        $res = ($res << 1)
      }
      $res &= 0xFF;
    }
  }
  return $res;



Ich kann vom TX38IT noch Raw Nachrichten gebrauchen.

Vom LevelSender habe ich bis jetzt auch noch keine raw Nachrichten gefunden.

Gruß Ralf
FHEM auf Cubietruck mit Igor-Image, SSD und  hmland + HM-CFG-USB-2,  HMUARTLGW Lan,   HM-LC-Bl1PBU-FM, HM-CC-RT-DN, HM-SEC-SC-2, HM-MOD-Re-8, HM-MOD-Em-8
HM-Wired:  HMW_IO_12_FM, HMW_Sen_SC_12_DR, Selbstbau IO-Module HBW_IO_SW
Maple-SIGNALduino, WH3080,  Hideki, Id 7