Hallo, ich hab mich gerade mal daran gemacht einen Funk-Temperatur Sensor zu dekodieren. Das Signal hab ich an der Wetterstation (ist ne Wetterstation von Aldi) direkt abgegriffen und per Soundkarte sowie At90s2313 aufgezeichnet. Soundkarte hatte ich zum Schluss genommen wegen Probleme auf meinem Testboard. Immerhin hab ich auch schon etwas rausgefunden. Allderings hab ich noch keine Lösung gefunden, die Temperatur daten zu dekodieren. Hier sind mal ein paar geloggte Daten : 24,6 58 11 0001 0110 1111 0101 0110 1011 1 11 0001 0110 1111 0101 0110 1101 1 25,9 59 11 0001 0110 1111 1010 1111 1110 111 11 0001 0110 1111 1010 1111 1111 011 24,1 52 11 0001 0110 1110 0101 1001 0111 11 0001 0110 1110 0101 1001 1011 23,6 53 11 0001 0110 1110 1101 0110 1011 1 11 0001 0110 1110 1101 0110 1101 1 8,2 40 11 0001 0110 1100 0111 1010 0111 11 0001 0110 1100 0111 1010 1011 10,7 65 11 0001 0111 0001 0111 1011 0011 11 0001 0111 0001 0111 1011 0101 Die ersten beiden bits sagen mir nichts, die nächsten 4 sind definitiv der Hauscode. Man kann den Hauscode von 1 - 15 einstellen, und die 4 Bits ändern sich auch passend. In den Daten oben ist z.B. 10,7 für die Temperatur und 65 für dich Luftfeuchtigkeit. Vielleicht hat ja einer ne Idee womit das codiert ist. So, danke schonmal im vorraus Gruß Micha
Ich kann mir nicht so richtig vorstellen, dass die Telegramme unterschiedlich lang sind. Vielleicht müssen die mit 0en aufgefüllt werden oder Du hast falsch gemessen? Kannst Du nach Möglichkeit mal nur einen Wert ändern und den anderen stabil lassen? Wahrscheinlich ist auf den Werten noch irgendein Offset drauf, wie ist denn der Messbereich angegeben? Markus
Tja, wegen den Unterschiedlichen längen hab ich mich auch schon gewundert. Manchmal tritt es auch nicht auf. Festzustellen ist, das auch eventuell das letzte "bit" zeitlich kürzer ist (ich hab das kurze Intervall als 1 angenommen (Hauscode)) Vielleicht ist es auch andersherum. Die unterschiedliche Länge könnte man sich vielleicht auch mit einer Checksumm erklären. Zur Verdeutlichung hab ich mal ein paar Bilder eingefügt. Es sind jeweils die 3 Datensätze von 2 Messungen. Wenn ich nachher zu Hause bin versuche ich mal 2 Messungen mitzuloggen wo sich die Temp (oder was wäre besser??) nur um eine Stelle unterscheidet. Ist halt nich so einfach, da das halt immer mal um die kommastelle schwank. Aber es wird schon irgendwie hinhaun. Für weitere Anregungen und gewünschte Testprotokolle bin natürlich offen ... Micha
Auch mit Prüfsumme sollte das Telegramm immer gleich lang sein. Wenn die Nachkommastelle sich ändert ist das genau das, was Du hier brauchst: Eine möglichst kleine Änderung, damit Du das niederwertigste Bit identifizieren kannst. Am besten bei beiden Werten. Markus
Ich finde im Moment leider meine Unterlagen von damals nicht, ich habe mir auch mal die Zähne an so einer Aldi-Station ausgebissen. Bei mir waren die Telegramme auch unterschiedlich lang. Ich habe zu Testzwecken die empfangenen Telegramme exakt wieder gesendet: Sie konnten immer empfangen werden. Edit: war keine Aldi sondern Lidl Im Anhang mal die empfangenen Telegramme. Diese Telegramme wurden zwecks Kontrolle auch von mir gesendet um so kontrollieren ob die Station sie auch auswertet.
Anhang Edit: wieso klappt das mit dem Anhang eigendlich so oft nicht auf Anhieb?
Darfst nicht auf 'Vorschau' klicken, das haut den Anhang 'raus! Könnte ruhig mal geändert werden!
Ja solch einen Sensor hab ich auch schon decodiert. Dort ist es ja auch relativ einfach. (Fast alles BCD). Ausserdem sendet solch ein Sensor auch keine Luftfeuchtigkeit, welches es hier noch schwerer macht. Aber ich habe gerade noch ein paar Testaufnahmen gemacht und werde sie in der nächste 0,5-1 h hier posten.
so, ich habe jetzt mal weiter analysiert. Diesmal hab ich mir die Mühe gemacht genau zu schauen in den Aufnahmen (also auch nur richtig saubere Aufnahmen verwendet). Dabei habe ich folgendes herausgefunden. Pakete die die selben Werte übertragen sind diesmal auch richtig gleich (hatte erst eins was nicht gestimmt hat, aber anscheinend habe ich nich richtig auf den Wert an der Anzeige geschaut oder dieser hat sich innerhalb kurzer Zeit geändert). Wie auch immer,die gleichen wären hierbei : 21,2 55 test9 110001011011111010111011001 1100010110111110101110110111 1100010110111110101110111011 21,2 55 test10 110001011011111010111011001 1100010110111110101110110111 1100010110111110101110111011 Ausserdem habe ich noch 3 brauchbare werte aufgenommen, bei denen sich nur die kommastelle der Temperatur verändert: 21,4 56 test12 110001011011100101110111011 110001011011100101110111101 1100010110111001011101111111 21,5 56 test13 11000101101110010111100011 11000101101110010111100101 11000101101110010111100111 21,6 56 test14 110001011011100101111010111 110001011011100101111010111 110001011011100101111011011 Aber irgendwie denke ich das ich auf dem Holzweg bin mit der Puls-Frequenz-Modulation. In dem Bild was ich angehängt habe sind jeweils die ersten pakete der 3 Temperatur Messungen von oben zu sehen. Die Länge eines solchen Paketes ist bei allen gleich lang. Allerdings ist das LowLevel zwischen zwei einsen kürzer als bei einer 0. Dadurch kommen auch die unterschiedlichen Längen nach meiner Überlegung zu stande. Nun also die Frage, hat jemand ne Idee wie das ganze noch Verschlüsselt sein könnte (mir fällt gerade ein ich könnte ja mal bei Manchester Code nachlesen). Na mal schauen ob einer was erkennt :) Gruß Micha
Nachdem mir das mit Manchester eingefallen ist musste ich doch gleich mal schauen. Also es könnte gut sein das es damit codiert ist. Lege ich mal eine Maske drüber ala Manchester (verwendet ist dabei Standard, also fallende Flanke = 1, wobei ich mir nicht sicher bin die Quasi syncronisation richtig getroffen zu haben, aber immerhin würde das die beiden "einsen" nach alter Methode am Anfang erklären) habe ich auch die gleiche Anzahl von Bits. Bei den 3 Werten wo sich nur die Nachkommastelle ändert sind nun nur noch 8Bit verschieden. Hierbei könnte natürlich die Checksumme drinne stecken. Ich hab mal versucht das ganze in einer Grafik zu verdeutlichen (man is das ein Krampf wenn man mal ein Bildbearbeitungsprogramm sucht was nur ein paar Linien und Zahlen einfügen kann :)) ) Ich hoffe man kann etwas erkennen :) Was haltet ihr von der Idee? Ich bin mal guter zuversicht das ich nun ein Stückchen weiter auf dem richtigen Weg bin. Gruß Micha
Manche Funkmodule verlangen eine gleichstromfreie übertragung. Deswegen wird dort gerne die Manchestercodierung benutzt. Eine Prüfsumme ist im Telegramm sicher auch enthalten, denn sonst müßte man öfters mal völlig falsche Werte sehen. Markus
Biphase Mark ist wohl die Lösung! Betrachte das so: an jeder Bitgrenze ist eine Flanke, bei einer 1 auch in der Mitte. Dann liefern die Dateien 24_6_58_x.. aus deinem ZIP-File folgendes: 110000010011 0011 1010 0100 1010 1010 0011 58 24,6 0x4aa=1194 110000010011 0011 1010 0100 1010 1010 0110 110000010011 0011 1010 0100 1010 1010 1001 Die ersten zwölf Bits sind Startbit, Hauscode, BatLow usw. Dann kommen 8 Bit mit der Luftfeuchtigkeit, einfach binär 0x3a=58 dezimal. Danach 12 Bit mit der Temperatur und zwar in 1/16°C +50°. 1194/16-50=24,625 Die letzten 4 Bit ändern sich wahrscheinlich bei jeder Übertragung. Eine Prüfsumme ist es nicht, die müsste ja immer gleich sein. Oder sind es etwa 16 Bit für die Temperatur? Die anderen Dateien und das MessungManchester.jpg bestätigen das. War mal wieder ein nettes Puzzle... Welche Aldi-Station war das? Ich habe eine so eine silberne, bei der man rechts die Tastatur umklappen kann. Die hat aber ein anderes Protokoll.
He supi, muss ich gleich mal schauen. Hab mir gerade die Zeit damit vertrieben mir ein kleinen LogicAnalyser in C# für die Soundkarte zu schreiben (also genauer gesasgt für Wave files). Es funktioniert zumindest schonmal für die Wavefiles von den tests. Werde ich dann hier mal posten wenn es relativ stabil läuft (hab momentan noch ein paar Methoden für Manchester drin, aber das hat sich dann wohl jetzt erstmal erledigt). Die Wetterstation hatte ich mir neulich bei Aldi (ich glaub vorrige Woche) geholt. Ist eigentlich nen ganz lustiges Teil für 25€. Wenn man überlegt das da zig Bauteile drin sind die man brauchen kann (z.B. ist das ein ganz normales 433 MHz Empfangsmodul (so wie das von Conrad z.B.) was man ohne Aufwände rausbauen kann wenn man will. http://www.dmv-electronics.com/site_1.php?lg=de (auf der Website sieht man die Wetterstation) Wenn das alles so stimmt wie du schreibst werde ich das dann mal in ein kleines Programm für nen at90s2313 reinpacken und ebenfalls hier posten. Danke schonmal an alle
So, hab mal kurz mein C# Programm umgebaut auf deinen Hinweis hin. Und siehe da, es funktioniert mit den von mir aufgenommen Wave files. Werde es morgen dann mal in den at90s2313 reinbauen und noch ein paar Tests fahren. Aber ich bin da guter Zuversicht das es nun so klappt. Hab ich mal wieder einiges dazugelernt (immerhin bin ich schonmal draufgekommen das es keine Puls-Frequenz-Modulation war, aber für das von dir (@Uwe) hätte ich wohl noch ein paar Tage gebraucht. DANKE nochmal an alle ... Ist echt ein Super Forum hier... hat mir bis jetzt immer geholfen Micha
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.