-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Protokoll für WS7000-20 #136
Comments
Demodululierung für WS7000-20 #136 und Übergabe an CUL_WS Modul eingebaut
Ich habe die Demudulierung eingebaut. Allerings ist zu Beginn nur 9x das 0 Bit im Signal. In Summe sind 79 Bits vorhanden. So wie ich das Protokoll verstanden habe, sollten aber 81 Bits vorhanden sein. Das Erste fehlt und vermutlich auch das letzte. |
|
Die Werte für zero und one habe ich aus dem Link Protokollinfo... Clockabs habe ich halt mal auf 200 angenommen... in etwa passt das ja auch. Wenn der sduino auf opened steht, dann sollte er auch funktionieren. |
Vorgehensweise:
Logfile:
PS: Die aktuelle Source wird verwendet. |
Da sind ein paar Debug Meldungen enthalten... So funktioniert der kram nicht an FHEM. Nimm besser mal das Firmware File, welches ich für den Radino compiliert habe. |
Ich hatte das von der Vorversion genommen, welches auf dem Rechner liegt und bis zum Update von FHEM funktionierte. Kein Erfolg. Dein File, ich finde dies auf Anhieb nicht und unter den FIRMWARE - FHEM Verzeichnis ist dies nicht vorhanden. |
Stimmt wohl, ich hatte nach dem 5.Februar keine mehr erstellt..naja dann compiliere diese Version: |
Hier "rennt" er erstmal wieder. EDIT: Er findet zumindest schon mal Sensoren und legt diese an. Werte bleiben bisher noch aus. |
Hallo, Zeichenkette K..... welche für CUL_WS unverständlich ist
Vorschlag von mir, wäre eine Sub erstellen
und die Rückgabe an CUL_WS, das die Daten verständlich sind. Dazu noch eine Anpassung vornehmen Bsp:
Meine Frage wäre, wo wäre es am passendsten diese Sub einzubinden (00_SIGNALduino.pm am Ende bei sämtlichen Sub´s ) und wie erhalte ich die Werte darin? Das war mir noch nicht gelungen obwohl ich mit shift probierte bzw. my ($name,$bitData,$id) = @_; ... MfG |
Also, das ist mir in der culfw so nicht aufgefallen, dass die 1er Check Bits dort entfernt werden. Den Parameter Method gibt es bei den MU Nachrichten nicht. Die Demodulierung klappt in der Regel ohne Funktion. Trotzdem kein Problem, wenn wir die Daten filtern müssen, dann geht das mit dem Parameter filterfunc . Das ist aber vermutlich doch zu umständlich. |
Ich werde mal schauen ob ich es umgesetzt bekomme. Bisher hapert es daran, das ich die Übergabe in die Sub noch nicht erfolgreich umgesetzt bekam. Das "zurecht drehen" ist dann noch ein "Kinderspiel".
Die dortigen Daten sind in etwa so "For KS300: Unsere Zeichenkette K0025EB6292972DEF6ADC ist dann für das Modul etwas zu "lang" |
filterfunc passt nicht... dafür ist es nicht gedacht. es Fehlt noch eine predispatch oder sowas Option. Ich kann mich heute nicht mehr drum kümmern, baue es aber gerne ein. @Ralf9 was meinst Du sollen wir in dispatch generell eine Möglichkeit der Manipulation einbauen oder sollen wir das in parse_MU / parse_MC / parse_MS jeweils separat einbauen? |
Dann auf jedenfall über diese Funktion nachdenken bzw. den presdispatch.
Dort werden Daten dann ebenso angepasst. |
method ist ausschließlich für Manchester Nachrichten, da wir diese immer irgendwie analysieren müssen. Der Arduino übergibt da bereits hexadezimale Werte. |
Ich denke dies ist nicht notwendig. |
Postdemodulation war genau das was ich in Erinnerung hatte @Ralf9 Irgendwie habe ich das gestern nicht gefunden :( |
Ist ein Weg, welcher soeben genutzt wird ;-) Kleiner Zwischenschritt als Ansicht
|
Daumenhoch Du kannst gern folgenden Code einarbeiten. Ich habe diesen laufen und die Werte kommen direkt über das CUL_WS Modul im FHEM an.
|
Hallo, |
man könnte die Nachricht doch mit einer Regex prüfen In etwa so meine ich das: |
Das ist aber nur ein Teil der Prüfung. Mir geht es nicht nur um den einen Sensor, sondern um eine ganze Reihe. Das Protokoll ist beschrieben auf: http://www.dc3yc.homepage.t-online.de/protocol.htm |
Auf meinem Testsystem wurde heute Nacht auch ein Sensor falschen angelegt. Ich denke, da fehlen min und max length im Protokoll und dann im cul_ws Modul noch ein Autocreate threshhold |
length_min und length_min habe ich jetzt schon drin. Bei mir sieht das aktuell so aus:
sub SIGNALduino_postDemo_WS7000() { Debug "$name: ########## Beginn SIGNALduino_postDemo_WS7000 ##########" if ($debug);
} Irgendwie funktioniert das mit dem Code einfügen nicht so richtig. Ich lass das jetzt aber so. Was uns auch noch aufgefallen war: Die Variable $name wird der SUB scheinbar nicht übergeben, ich musste das selbst definieren. |
Das Thema Fehlerüberprüfung sollte man auf jedenfall nicht nur bei diesem Protokoll verfolgen. EDIT - 23:05: Nach dem Einbau von elektron-bbs begonner Fehleranlalyse wurden bisher keine weiteren "Zufallssensoren" angelegt. |
Macht ihr noch einen pull request? |
Erfolgt noch. Wird momentan noch dran gearbeitet und getestet. |
Zu 2. und 3. habe ich eventuell die Lösung gefunden. Bei 3. bin ich auf deine Hilfe angewiesen. Habe etwas committed, bitte mal testen. |
So richtig klappt das noch nicht: 2017.04.18 19:44:36 1: sduino: WS2000 Sensortyp 1 Adr 0 - ERROR examination bit 2017.04.18 19:48:35 1: 1: WS2000 Sensortyp 8 - ERROR typ to big 2017.04.18 20:47:25 1: sduino: WS2000 ERROR preamble > 10 (11) 2017.04.18 21:01:18 1: 1: WS2000 Sensortyp 8 - ERROR typ to big 2017.04.18 21:11:02 1: 1: WS2000 Sensortyp 8 - ERROR typ to big 2017.04.18 22:18:10 1: 1: WS2000 Sensortyp 10 - ERROR typ to big 2017.04.18 23:47:57 1: 1: WS2000 Sensortyp 14 - ERROR typ to big 2017.04.18 23:55:49 1: sduino: WS2000 Sensortyp 8 - ERROR typ to big 2017.04.19 01:48:21 1: 0: WS2000 ERROR preamble > 10 (11) 2017.04.19 04:51:30 1: sduino: WS2000 ERROR preamble > 10 (11) 2017.04.19 05:05:35 1: 0: WS2000 Sensortyp 14 - ERROR typ to big 2017.04.19 07:30:33 1: 0: WS2000 ERROR preamble > 10 (17) Den Loglevel habe ich auf 1 gesetzt, sonst ist mir das zu unübersichtlich. Die Änderung von: |
Returncode für SIGNALduino_callsub auch innerhalb SIGNALduino_Parse_MU angepasst #136
Der Aufruf der sub SIGNALduino_postDemo_WS2000 ohne "$name " erfolgt durch die zuletzt neu hinzu gekommene Zeile in der sub SIGNALduino_callsub: Aus meinem Code (SIGNALduino_postDemo_WS2000) können noch folgende 2 Zeilen entfernt werden: |
my $subname = @{[eval {&$method}, $@ =~ /.*/]}; hat ohnehin nicht das gemacht, was ich wollte. Da gibt es aber noch spezielle Funktionen, die wollte ich mir ansehen. |
Die nur manchmal auftretende Wiederholung von Fehlermeldungen hat leider nicht aufgehört: 2017.04.22 16:30:15 1: sduino: WS2000 Sensortyp 7 - ERROR lenght of message 45 (85) |
Hallo, ich habe mal soeben ein aktuelle Update gemacht um zu testen, ob der WS7000 ohne manuelle Änderungen sofort erkannt wird.
Das ganze scheint bei mir nun zu klappen. MfG |
Da ich jetzt irgendwo im Netz eine Erläuterung zu den Parametern "clockabs", "zero" und "one" gefunden habe, habe ich die Parameter angepasst:
Außerdem können aus meinem Code (SIGNALduino_postDemo_WS2000) noch folgende 2 Zeilen entfernt werden: "manchesterMC" muss bei mir weiterhin ausschaltet bleiben, da der meiste Teil der Nachrichten sonst als Manchester deklariert wird. Die bereits erwähnte Wiederholung von Fehlermeldungen passiert immer noch manchmal. |
Da auch diese Korrektur noch nicht eingearbeitet wurde, melde ich mich nochmal. Bitte ändert mal die im letzten Post geänderte Definition. sub SIGNALduino_postDemo_WS2000($@) {
} |
Danke für den Einbau. |
Stimmt. Im Normalfall braucht ein Anwender diese Meldungen nicht. Was soll er damit machen? Wenn etwas zu analysieren ist, da es ein Problem gibt, kann man doch den verbose level auf 4 stellen. |
Naja, gefällt mir eigentlich nicht. Bei Level 4 kommt gleich wieder zu viel Schrott ins Log, den man im Normalfall nicht braucht. Ich würde im Normalfall (Level 3) schon gern die Fehler sehen und kann dem dann auf den Grund gehen, wenn es zu viel wird. Euch als Entwickler spart deine Ansicht natürlich lästige Nachfragen, weil Otto-Normaluser die Fehler gar nicht erst zu sehen bekommt. |
So, nach langer Zeit wollte ich doch zumindest jetzt einmal einen Informationsstand bekanntgeben. Wie vermutet, ist in dem MCDecoder ein Bug, so dass er dieses Signal als MC erkennt, obwohl es keines ist. |
@Ralf9 @HomeAutoUser Ich habe eine angepasste Firware für Arduino Nano mit cc1101 compiliert: Bitte mal insbesondere auch auf MC Empfang testen. Eventuell muss noch etwas im FHEM Modul oder auch im Arduino code angepasst werden. |
Hallo, |
Ich habe gerade kein Nano mit cc1101 aufgebaut. Ich verwende ein 3,3V pro mini, da ich dazu keine levelshifter benötige. Bitte dann die raw-Nachrichten vom MC Sensor hier posten. Ich kann es mir dann auch mal anschauen. |
Da bei mir auch kein Nano mit CC1101 in Verwendung ist, habe ich mir den Branch dev-r33_fixmc geladen und für meinen Radino compiliert. Ich hoffe, @sidey79 hat auch diesen verwendet, passt zumindest vom Änderungsdatum dazu. Meine Sensoren werden jedenfalls jetzt alle als "MU" erkannt, auch nachdem ich "MC" wieder aktiviert habe. Das musste ich ja bisher abschalten. Der SIGNALduino läuft mit dieser Version seit 30 Minuten. Die Sensoren senden im Takt von knapp 180 Sekunden: |
@ralf die neue version habe ich mir runtergeladen und compiliert und lasse sie jetzt auf einem nano + cc1101 laufen. bis jetzt werden alle sensoren angezeigt. kann noch nichts negativen fetstellen. |
Hier auch eine Version für den Arduino pro mini (3v3): @elektron-bbs |
Kannst du bitte das File auch im Hex-Format zur Verfügung stellen. |
Für welchen Mikrocontroller brauchst Du die Datei? Gesendet von meinem Motorola XT1650 mit FastHub |
Ich habe damit mal mit einem Bresser Sensor (Hideki) den MC- Empfang getestet. Der Empfang ist damit ähnlich gut wie vorher. |
Ich habe es nochmals getestet. Dazu habe zum Dekodieren der nicht invertierten Nachrichten die ID 12.1 zugefügt:
Bei diesen Zeilen habe ich das loglevel von 4 auf 3 geändert
und mit dieser whitelist habe ich im Event monitor folgendes erhalten. Da ist erkennbar, daß recht viele Nachrichten als id 12.1 (nicht invertiert) erkannt werden.
|
@Ralf9: So wie es jetzt übergeben wird, (nicht Invertiert) müsste es korrekt sein. Gesendet von meinem Motorola XT1650 mit FastHub |
Da die Arbeiten an dem FHT80TF ( #171 ) noch etwas dauern, möchte ich den Fehler, der dort aufgefallen ist und auch beim WS2000 auftreten könnte, hier korrigieren.
durch diesen Code ersetzt werden:
|
Da das Protokoll WS7000 eingearbeitet wurde und die Anpassungen von @elektron-bbs ebenso eingerarbeitet wurden, so schließe ich das Thema. |
Hallo,
Inputs für den WS7000-20
MU;P0=32001;P1=-438;P2=781;P3=288;P4=-922;D=01212121212121212121342121342134343434213434342121343434212134213421213421212121342121212134213421213421212134343421212134212121343434343421343421342134343434213;CP=3;R=112
MU;P0=32001;P1=-444;P2=778;P3=297;P4=-928;D=01212121212121212121342121342134343434213434342121343434212134213421213421212121342121212134213421213421212134343421212134212121343434343421343421342134343434213;CP=3;R=112
MU;P0=11656;P1=-458;P2=765;P3=279;P4=-937;D=01212121212121212121342121342134343434213421213421343434212134213421213421212121342121212134213421213421212134343421212134212121343434212134342121343434342121213;CP=3;R=113
MU;P0=20680;P1=-460;P2=758;P3=271;P4=-951;D=01212121212121212121342121342134343434213421212134343421342134213421213421212121342121212134213421213421212134343421212134212121343434343434342121212134342121213;CP=3;R=72
MU;P0=6144;P1=-457;P2=766;P3=273;P4=-941;D=01212121212121212121342121342134343434213434212134342121212134213421213434212134342121213434343421213421343421343421212134212121343421213434343421213434343421213;CP=3;R=74
Protokollinfo
Erklärung
Wie würde dann die Definitionen
one => [],
zero => [],
....
lauten?
The text was updated successfully, but these errors were encountered: