FHEM Forum

FHEM - Hausautomations-Systeme => Sonstige Systeme => Thema gestartet von: Ralf9 am 13 August 2021, 23:41:50

Titel: Einbinden von FSK Sensoren wie z.B. TX22, TX38, WS1080, W136, WH24 in den sduino
Beitrag von: Ralf9 am 13 August 2021, 23:41:50
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
Titel: Antw:Einbinden von FSK Sensoren wie z.B. TX22, TX38, WS1080, W136, WH24 in den sduino
Beitrag von: Ralf9 am 29 August 2021, 22:54:27
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