RSSI z.B. 27 in Rohdaten, wie muss man den Wert interpretieren?

Begonnen von piro299, 01 Dezember 2013, 22:34:35

Vorheriges Thema - Nächstes Thema

piro299

Moin,

ich habe ASH2200-1 Sensoren, die Temperatur und Luftfeuchtigkeit schicken.

Hier ein Beispiel:
ZitatK1169214727
27 = RSSI

Welcher Wert steckt dahinter? Normalerweiser sind die Werte in Minus. Sind sie immer im Minus?

Wäre dankbar für eine kleine Erläuterung.

Danke im Voraus.
Sven

rudolfkoenig

Die Umrechnung steht in FHEM/00_CUL.pm:  $rssi = ($rssi>=128 ? (($rssi-256)/2-74) : ($rssi/2-74));

Erklaerung dazu bitte aus der TI Handbuch zu CC1101 entnehmen.

piro299

#2
Danke für die Antwort.

Leider bin ich nicht so technisch versiert.

Habe mir das Modul in FHEM angesehen. Da ich Perl nicht kann, etwas schwer zu verstehen.


my $rssi;

my $dmsg = $rmsg;
if($dmsg =~ m/^[AFTKEHRStZri]([A-F0-9][A-F0-9])+$/) { # RSSI
    my $l = length($dmsg);
    $rssi = hex(substr($dmsg, $l-2, 2)); # Letzten beiden Stellen, wäre bei mir 27
    $rssi = ($rssi>=128 ? (($rssi-256)/2-74) : ($rssi/2-74));
}


Wenn man jetzt die 27 (=Dezimal) in Hex umwandelt, kommt 1B heraus. Hex 128 sind 296 Dezimal. Der Wert wird doch nie sein, denn es sind doch immer 2 Stellen, oder irre ich mich?

Vielen Dank im Voraus.
Sven

piro299

Habe die Formel verstanden. Die 27 ist ein Hex-String. Das war der Knackpunkt.

Danke für den Tipp.