FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: stevie72 am 31 März 2018, 11:56:24

Titel: 433 Mhz Temperatur / Luftfeuchte Sender auslesen ..
Beitrag von: stevie72 am 31 März 2018, 11:56:24
Hallo und Guten Tag erstmal Forumskollegen!
Ich bin neu hier und habe direkt eine Frage: ist es möglich, einen 433 Mhz Temperatur / Luftfeuchte Sender auslesen ?

Dieser sendet in intervallen auf 3 möglichen Kanälen, intern über Dip Switch einstellbar (bei mir Kanal 1) ein Protokoll über die Aussentemperatur / Luftfeuchte.

Ich habe den Sonof Basic mit dem original 433 Mhz Modul nachgerüstet. Dieser funktioniert.
Wenn der sonoff in der lage ist, eine 433 Mhz Fernbedienung zu empfangen / dekodieren dann müsste es doch auch möglich sein, das Funksignal
von dem Aussensensor zu empfangen / dekodieren ?

Ich verwende die tasmota Firmware. Oder müsste ich hierfür selber Firmware schreiben?

Vielen Dank vorab für Infos
LG Stefan

Titel: Antw:433 Mhz Temperatur / Luftfeuchte Sender auslesen ..
Beitrag von: Amenophis86 am 31 März 2018, 12:04:10
Ja, es ist möglich. Allerdings werden dazu natürlich weitere Details nötig sein, wie zB das Protokoll. Ansonsten einfach mal die Suche nutzen, ob vielleicht jemand das Gerät schon in ein Modul eingebunden hat.
Titel: Antw:433 Mhz Temperatur / Luftfeuchte Sender auslesen ..
Beitrag von: stevie72 am 31 März 2018, 12:25:26
da bin ich nochmals: im Web habe ich das gefunden:
Hersteller: Krippl-Watches



Datenburst   8mal gesendet

Burst      37 Pulse  für 36 Bits

Pulszeit 0.55ms

Pause zwischen Datenburst 9.5ms Periode

Bit0   2.5ms Periode
Bit1   4.5ms Periode



Bit 0-3      Zufallszahl wird beim Einschalten des Senders erzeugt

Bit 4-5      11=Kanal3 10=Kanal2 01=Kanal1
Bit 6-7      Batterie-Indikator 00 oder 01 BattOk   11=BattLeer ????

Bit 8-23    Bit 8=2^1 Bit9=2^2 Bit10=2^4 Bit11=2^8 Bit12=2^16 Bit13=2^32 usw..
            16 Bit Integer mit Vorzeichen für Temperatur.    GradCelsius=Wert / 160

Bit 24-27   Bit 24=2^1 Bit25=2^2 Bit26=2^4 Bit27=2^8   Hygrometer Einerstelle
Bit 28-31   Bit 28=2^1 Bit29=2^2 Bit30=2^4 Bit31=2^8   Hygrometer Zehnerstelle

Bit 32-35   Checksumme 4Bit Summe aller (9x) 4Bit Nibbles muss Bit0-3 den Wert 0xF enthalten

Titel: Antw:433 Mhz Temperatur / Luftfeuchte Sender auslesen ..
Beitrag von: stevie72 am 31 März 2018, 14:30:33

hier gefunden: http://old.ethersex.de/index.php/Funk-wetterstations-protokoll (http://old.ethersex.de/index.php/Funk-wetterstations-protokoll)



Protokoll Aufbau:

Bit Selektion mittels Zeitspannen monuladion des Ausbleibenden traeger signals.
mittels Zeitspannen monuladion des Traegers wird zwichen normale Bits (440 bis 519us) und einer
unvollstaendigen uebertragung unterschieden (360 bis 369us).
Datenblock Start Uebertragungs ankuendigung durch traeger pause von 8890 bis 8939us.
Logisch "1" Pegel Endspricht einer traeer pause von 3990us bis 4059us
Logisch "0" Pegel Endspricht einer traeer pause von 1920us bis 1999us
Der Datenblock ende wird mittels leicht Verlaengertem "0" oder "1" Pegel angekuendigt,
die Letes Bit "0" Pegel endspricht einer traeger pause von 2060 bis 2089us,
sowie Letzes Bit "1" Pegel endspricht einer traeger pause von 4130 bis 4169us.
Jeder Gueltige Datenblock besteht aus 37 Traeger Pulsen, und somit 36 Bits.
um funkstoerungen aus zu gleichen, wird jeder Datenblock innerhalb eines telegrams, 7 bis 9 mal wiederholt.




Linux shell Script für eigene Daten Auswertung/Aufbereitung

cat -                                                   |
        while read Line1 ; do echo $Line1               |
                sed 's/p.*\ 4[456789][0-9]$/_/'         |       #       "_"             pulse  440us bis 519us
                sed 's/p.*\ 5[01][0-9]$/_/'             |       #
                sed 's/p.*\ 36[0-9]$/End-/'             |       #       "End-"          pulse  360us bis 369us
                sed 's/s.*\ 89[01][0-9]$/Start/'        |       #       "Start"         space 8890us bis 8939us
                sed 's/s.*\ 88[9][0-9]$/Start/'         |       #
                sed 's/s.*\ 19[23456789][0-9]$/L/'      |       #       "L"             space 1920us bis 1999us
                sed 's/s.*\ 40[01234][0-9]$/H/'         |       #       "H"             space 3990us bis 4049us
                sed 's/s.*\ 399[0-9]$/H/'               |       #
                sed 's/s.*\ 20[678][0-9]$/End-l\\\\n/'  |       #       "End-l"         space 2060us bis 2089us
                sed 's/s.*\ 41[3456][0-9]$/End-h\\\\n/' |       #       "End-h"         space 4130us bis 4169us
                sed 's/s.*\ 16777215$/Pause/'                   #       "Pause"
        done                                            |
        while read Line2 ; do
                if [ "$Line2" = "Pause" ] ; then
                        echo -en "\n$Line2\n"

                else
                        echo -en "$Line2"
                fi
        done




Beispiel Ausgaben des Scripts

Sensor Geschaltet auf Kanal 1
Pause
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_L_L_L_L_L_L_H_L_H_L_L_End-low
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_L_L_L_L_L_L_H_L_H_L_L_End-low
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_L_L_L_L_L_L_H_L_H_L_L_End-low
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_L_L_L_L_L_L_H_L_H_L_L_End-low
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_L_L_L_L_L_L_H_L_H_L_L_End-low
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_L_L_L_L_L_L_H_L_H_L_L_End-low
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_L_L_L_L_L_L_H_L_H_L_L_End-low
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_L_L_L_L_L_L_H_L_H_L_L_End-low
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_LEnd-
Pause
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_H_L_L_H_H_H_L_L_H_L_L_End-high
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_H_L_L_H_H_H_L_L_H_L_L_End-high
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_H_L_L_H_H_H_L_L_H_L_L_End-high
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_H_L_L_H_H_H_L_L_H_L_L_End-high
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_H_L_L_H_H_H_L_L_H_L_L_End-high
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_H_L_L_H_H_H_L_L_H_L_L_End-high
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_H_L_L_H_H_H_L_L_H_L_L_End-high
_Start_H_L_L_L_L_H_H_H_L_L_L_L_L_H_L_H_L_L_L_L_H_L_L_L_H_L_L_H_H_H_L_L_H_L_L_End-high
_StartEnd-
Pause