-
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
Rohrmotor 24 protocol #19
Comments
Added Dooja shutter protocol and some basic decoding to see if data is detected. #19
Tried to implement protocol detection and demodulation.. Also some debug decoding is included. |
Corrected Protocol id 16 for dooya / rohrmotor shutters. Corrected Demodulation example in 90_SIGNALduino_un.pm.
Sending is like: SR;R=3;P0=4718;P1=-1576;P2=290;P3=-779;P4=655;P5=-417;D=0123234545234545452323232323454523234523454523232345454523232323452323234523232345; Adapt D= to the received part of your shutter. |
Nimm die p0-p6 Einträge mit, wenn Du die Signaldaten vom Empfang verwendest. |
passt immernoch nicht steht immernoch MU da 2015.11.17 21:10:07 4: Found matched Protocol id 8 -> TX3 Protocol es geht mit Umwegen ich suche das Signal was mit P=0 um die ~4700 und ziehe mir D= so das es mit 0123... anfängt und dann insgesamt 82 Ziffern... dann geht es... habe jetzt bei einer FB HOCH RUNTER STOP raus |
Was stört dich an MU? Das Signal wird so erkannt, hast Du ein Update der Module durchgeführt? Was das Senden angeht. Es geht mit jedem empfangenen Signal, aber ich gebe zu man muss wissen was man machen muss. Vom Prinzip brauchst Du nur die Signaldaten senden, welche zwischen dem Start Marker kommen. Was leider noch nicht geht ist binäre Daten über die definierten Protokolle wieder zu modulieren. |
ok dieser code von dir SR;R=3;P0=277;P1=-793;P2=642;P3=-427;P4=4714;P5=-1572;D=4501012323012323230101010101232301012301232301010123232301010101230101232301012323; geht !! |
im attribute whitelistid eine 16 eintragen und schon bist Du die anderen Protokolle los.... Warum das mit dem Senden nicht klappt wundert mich nun etwas. Stimmen denn die ermittelten Werte, also id, channel und direction? |
ich versuche mit zu senden... |
Ok verstanden. Hatte ich vergessen korrekt für die FHEM Kommandozeile zu schreiben set sduino raw SR;;R=3;;P0=4742;;P1=-1554;;P2=286;;P3=-786;;P4=649;;P5=-420;;D=0123234545234545452323232323454523234523454523232345454523232323452345234523452345;; |
Irgendwas stimmt mit der Demodulation noch nicht... Ich glaube der Code wird in einer Übertragung mehrfach gesendet z.B. Bit 1-40und direkt nochmal 1-40 und das ganze Mehrfach hintereinander... Wie definiert sich der Startmarker?? 1 Kanal Wandsender Taste Hoch 2015.11.18 13:14:53 4: SIGNALduino/msg READ: �MU;P0=-371;P1=-240;P2=348;P3=-732;P4=705;P5=4776;D=0123232340234040234040234040404023404023232340232323402323234053;CP=2;� 1 Kanal Wandsender Taste Stop 2015.11.18 13:29:57 4: SIGNALduino/msg READ: �MU;P0=317;P1=679;P2=-403;P3=-766;P4=4750;P5=-1566;D=012031212121203121203030312031203120312031245031203031203030303030303031203121203121203121212120312120303031203120312031203124503120303120303030303030303120312120312120312121212031212030303120312031203120312;CP=0;� 1 Kanal Wandsender Taste Runter 2015.11.18 13:39:59 4: SIGNALduino/msg READ: �MU;P0=-1562;P1=-411;P2=297;P3=-773;P4=668;P5=4754;D=1232341234141234141234141414123414123232341232341412323414150234123234123232323232323234123414123414123414141412341412323234123234141232341415023412323412323232323232323412341412341412341414141234141232323412323414123234142;CP=2;� 2015.11.18 13:40:00 4: decoded matched MU Protocol id 16 dmsg u16#4805B7B132 length 40 2015.11.18 13:40:00 4: SIGNALduino/msg READ: �MU;P0=-388;P1=-747;P2=332;P3=699;D=01213021212121212121213021303021303021303030302130302121213021213030212130302;CP=2;� 5 Kanal Wandsender Kanal 1 Taste Hoch 2015.11.18 13:51:02 4: SIGNALduino/msg READ: �MU;P0=-402;P1=344;P2=-751;P3=699;P4=-10516;P5=4988;D=0123030301212123012121212121212123012303012121230301212121230121212301212123450;CP=1;� 2015.11.18 13:51:03 4: SIGNALduino/msg READ: �MU;P0=340;P1=-759;P2=690;P3=-403;P4=-10544;P5=4968;D=0101012323230101012301010101010101012301232301010123230101010123010101230101012452;CP=0;� 5 Kanal Wandsender Kanal 1 Taste Stop 2015.11.18 13:58:53 4: SIGNALduino/msg READ: �MU;P0=692;P1=-399;P2=5020;P3=-1596;P4=330;P5=-764;D=12345454501010145454501454545454545454501450101454545010145454545014501450145014501;CP=4;� 5 Kanal Wandsender Kanal 1 Taste Runter 2015.11.18 14:04:20 4: SIGNALduino/msg READ: �MU;P0=5000;P1=-746;P2=709;P3=-384;P4=351;P5=-10508;D=12323234141412341414141414141412341232341414123234141414123414123234141232501;CP=4;� 5 Kanal Wandsender Kanal 2 Taste hoch 2015.11.18 14:09:28 4: SIGNALduino/msg READ: �MS;P1=429;P2=-1034;P3=-2019;P4=-4084;D=14131313121312131213121212121212121312121213121212131313131212121212121212;CP=1;SP=4;O;� 5 Kanal Wandsender Kanal 2 Taste Stop 2015.11.18 14:10:25 4: SIGNALduino/msg READ: �MS;P0=-291;P1=413;P3=-1050;P4=-4085;D=14101010131013101310131313131313131013131310131313101010101313131313131313;CP=1;SP=4;O;� 2015.11.18 14:11:20 4: SIGNALduino/msg READ: �MU;P0=366;P1=-698;P2=630;P3=-466;D=01010123232301010121010101010101010123012323010101232301010103010123012301230123;CP=0;� 5 Kanal Wandsender Kanal 2 Taste Runter 2015.11.18 14:13:22 4: SIGNALduino/msg READ: �MU;P0=4928;P1=350;P2=-746;P3=708;P4=-385;P5=-10604;D=1212123434341212123412121212121212123412343412121234341212123412121234341212343501;CP=1;� vieleicht kannst du damit was anfangen Gruß Jarnsen |
Wie kommst du von D=01012... auf StartMarker D=450101...??? 2015.11.17 21:10:07 4: Found matched Protocol id 16 -> Dooya shutter Daten senden, welche zwischen dem Start Marker kommen. Für deine Letzte Logzeile sähe es dann so aus: Habs gesehen... einfach Zeichen81+82 an den Anfang setzen... klappt aber irgendwie bei mir nicht |
5 Kanal Wandsender decodiert Kanal 1 Kanal 2 hoch 0001110001000000001011000110 0010 00010001 heute Abend werde ich noch paar Decodierungen einfügen, auch die die von SIGNALduino richtig decodiert wurde... kann auch noch Bilder einfügen wenn das gewollt ist... EDIT: von oben nochmal runter kopiert 5 Kanal Wandsender Kanal 1 Taste Hoch 2015.11.18 13:51:02 4: SIGNALduino/msg READ: �MU;P0=-402;P1=344;P2=-751;P3=699;P4=-10516;P5=4988;D=0123030301212123012121212121212123012303012121230301212121230121212301212123450;CP=1;� Kanal 1 2015.11.18 13:14:53 4: die Dekodierung habe ich 2 x hintereinander gesetzt und nach Übereinstimmungen gesucht und gefunden... Bis auf das letzte Bit wurde alles richtig dekodiert. Allerdings auch ein wenig verschoben.. 1 Kanal Wandsender (Kanal 1) Taste Hoch mit SIGNALduino gesendet und mit Audacity aufgezeichnet, raus kahm das. http://up.picr.de/23756375qv.jpg sieht nicht so aus wie es soll... Taste Stop Taste Runter So, habe nochwas gefunden... Bsp. 0001001000000110011000010100000100010001 0001001000000110011000010100000100010001 0001001000000110011000010100000100010001 0001001000000110011000010100000100011110 0001001000000110011000010100000100011110 0001001000000110011000010100000100011110 noch ein Bild dazu http://show.picr.de/23754802lr.jpg.html vom 40. bis zum nächsten 1. Bit sind ca 300 Samples Pause oder Sync oder irgend sowas |
So ich habe mir das jetzt noch mal näher angesehen. Um so einen Rohrmotor schalten zu können, müsste man also zwei verschiedene Nachrichten senden? Was das Empfangen angeht, habe ich anhand deiner guten Angaben noch ein paar Anpassungen gemacht. Scheinbar werden aber oft nicht alle bits empfangen. Kannst Du das noch mal mit aktuellen Modulen und Firmware bitte testen. |
Ja teste ich am WE. |
sduino geupdated... Whitelist ID 16... 5 Kanal Wandsender Kanal 1 Taste hoch für 3sec gedrückt... 2015.12.15 14:56:19 4: sduino: ping ... Hier künstliche Signal per wiringpi hergestellt und mit sduino geloggt... wieder hat er sich ausgeklinkt... 2015.12.15 15:00:51 3: R_T_hoch return value: -1 @sidey79 sag was du brauchst, ich logge auch gern die Signale per Audacity und stelle sie grafisch ein... hie noch der Thred aus dem FHEM-Forum ich denke das bit 33 - 40 wie folgt geschlüsselt ist 33+37 = lernen / sind im ersten Signalbereich gleich belegt entweder beide 0 oder 1 man kann die Motoren invertiert anlernen, deshalb wird bei nem Signal immer beides gesendet. |
Du hast eine alte Firmware drauf. Allerdings erklärt das nicht , warum das Signal nun nicht demoduliere wird. |
update all https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-r32/controls_signalduino.txt Danach set sduino flash shutdown restart So geht doch das Update des sduino... Oder nicht?? |
Das ist korrekt. Jarnsen notifications@github.com schrieb am 15.12.2015:
-- Diese Nachricht wurde mit K-@ Mail gesendet. |
version V 3.1.8-HF2 SIGNALduino - compiled at Nov 8 2015 21:36:37 diese Version ist drauf flashing Arduino sduino --- AVRDUDE --------------------------------------------------------------------------------- avrdude: Version 6.1, compiled on Jul 7 2015 at 10:29:47
avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.00s avrdude: Device signature = 0x1e950f Writing | ################################################## | 100% 5.22s avrdude: 19374 bytes of flash written Reading | ################################################## | 100% 3.92s avrdude: verifying ... avrdude done. Thank you. --- AVRDUDE --------------------------------------------------------------------------------- sduino opened |
VERSION V 3.2.0-b8 SIGNALduino - compiled at Dec 15 2015 00:27:47 jetzt empfängt der sduino nichts mehr.. PERL WARNING: Use of uninitialized value $aVal in concatenation (.) or string at ./FHEM/00_SIGNALduino.pm line 2091. nur das grüne LED leuchtet noch... das rote bei empfang nicht mehr... |
update all https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-r32/controls_signalduino.txt damit updaten und flashen geht nicht... mit der normalen version über fhem schon VERSION V 3.1.8-HF2 SIGNALduino - compiled at Nov 8 2015 21:36:37 geht |
Seltsam. Ich habe soeben das gleiche Update ausgeführt und nach dem restart geflasht. Der Flash Vorgang läuft erfolgreich durch. |
Hmm, die Nachrichten vom Rolladenmotor sind nicht komplett.... es fehlt in etwa die Hälfte. Hast Du was an der Hardware verändert? Empfänger, Arduino, Antenne oder sowas? |
Nein, alles so gelassen. Ich Wechsel zwar ab und zu die Fernbedienungen durch aber sonst nichts. Ich drücke auch die Taste relativ lang auf den Taster um ein langes Signal zu bekommen. Es wird zwar mindestens 6 hintereinander gesendet, aber sicher ist sicher. |
Hmm, seltsam. |
Habe nochmal mit 2 verschiedenen Sendern getestet. Unten beim Handsender sieht man sehr schön wie P0 um die 4700 anfängt. Aber oben bei dem 5 Kanal Wandsender ist ein durcheinander drin. Es wird zu schnell das signal abgeschnitten, ich denke auch die sender sind sehr unterschiedlich. Das wird schwiegrig. 5 Kanal Wandsender Kanal 1 Taste Hoch 2015.12.17 11:16:24 4: SIGNALduino/msg READ: �MU;P0=704;P1=-393;P2=396;P3=-750;P4=-1988;P5=2516;D=0101232323012323232323232323012301012323230101232301232452;CP=2;� 2015.12.17 11:17:53 5: sduino: received message for gets: OK 1 Kanal Wandsender Taste Hoch 2015.12.17 11:21:39 4: SIGNALduino/msg READ: �MU;P0=-180;P1=486;P3=108;P4=-7112;P5=2856;D=01010101010101010101010103034105010101010;CP=1;� 2015.12.17 11:22:53 5: sduino: received message for gets: OK |
Ich würde fast behaupten jedesmal wenn er ein neues Paket erhält unterbricht er die Aufzeichnung bzw Auswertung des vorangegangenem. Benutze übrigens FHEM 5.7 falls das ausschlaggebend ist. |
Kannst Du das ganze mal mit RFDFHEM/Logik Analyse aufzeichnen. Dazu müsstest Du den SIGNALduino mit der speziellen Firmware flashen. Das Tool ist eigentlich selbsterklärend. Die Daten kann man dann ansehen und auch speichern. So könnte ich das ganze mal nach stellen und deine Hardware können wir somit ausschließen. Grüße Sidey Grüße Sven |
so, irgendwie bin ich zu blöd dafür. Habe den arduino am winPC neu flashen wollen... fehler beim kompilieren no suchfile or directory... C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "C:\Users\Theresa\Documents\Arduino\libraries" -fqbn=arduino:avr:nano:cpu=atmega328 -ide-version=10606 -build-path "C:\Users\Theresa\AppData\Local\Temp\build432e0fbc288177492967844c68e2f09b.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "C:\Users\Theresa\Desktop\Logikanalyse-master\LogikAnalyse\LogikAnalyse.ino" #include <filtering.h>
compilation terminated. exit status 1 dann nochmal flash erase gemacht... zurück an den RPi2 und set sduino flash gemacht... und nochmal getestet... 2015.12.17 19:23:45 4: Calling Getting Attr sub with args: set verbose = 4 es hat genau 1 x ein Ergebnis ausgespuckt, zwar nicht ganz richtig aber fast... jetzt sind die D= Werte wieder vollkommen unterschiedlich lang... erklär mir mal genau wie das mit dem sketch drauf machen geht, zur not mit dem RPi über Console bis dann Jarno |
Wegen dem Compilieren, das hatte ich in Detail nicht beschrieben. Ich habe die readme ergänzt: Bevor der Sketch compiliert, ist es notwendig die Dateien aus dem lib Ordner in den Ordner der Arduino Librarys zu kopieren: |
ich glaube da ist wirklich ein Bug im arduino, weshalb die Nachrichten nicht komplett empfangen werden |
Habe jetzt phyton und die zwei anderen Programme installiert... Leider ist mir das zu hoch... Der Sketch ist auf dem arduino drauf... Habe versucht beide consolen auf zu lassen und irgendwas auszulesen wenn ich Tasten der Fernbedienung drücke... Es leuchtet nur das grüne Licht beim arduino... Muss ich irgendwo nochwas ein bestellen z.B. Bei Python xy??? Wie sind da die configs??? Über Hilfe wäre ich dankbar P.S. Readme habe ich gelesen, leider für Anfänger nicht immer einfach den Rest rauszufinden |
Hi, das Python Programm sollte mit einem Doppelklick in einer Python Console ausgeführt werden. COM Port usw. sind in der Regel voreingestellt. Du kannst es aber jederzeit einfach ändern. Über das GUI Tool muss man erst eine Verbindung zum Arduino herstellen. Das ist die 1. Schaltfläche im rechten Abschnitt. Die 2. Schaltfläche bringt den Arduino in den Empfangsmodus. Der dauert im Default 2000 Werte soweit ich mich erinnere. Das Vorgehen ist so:
Nach wenigen Sekunden sollte dann in der GUI die Daten grafisch dargestellt werden. In die kann man zoomen etc. und auch die Daten speichern. Wenn das Python Programm nicht startet, dann öffne es mal mit dem Programm Spyder (ist Bestandteil von PythonXY). Dort kann man es auch ausführen und sieht eine Fehlermeldung. Grüße Sidey |
so, nach gefühlten 1000x hab ich es jetzt hin bekommen. Zeichnet wunderschön das Signal auf. was brauchst du noch?? die daten habe ich gespeichert. |
passt, ich denke ich hab genug. Es ist ganz bestimmt ein Bug im Auswerteteil auf dem Arduino. |
Hallo Sidey, wie ich sehe gab es ein Update. Die Demodulation geht wieder. Leider immernoch nicht richtig. Habe wieder den 1 Kanal Handsender genommen. Es ist wieder verschoben. Der Sender sendet auf Kanal 1. SIGNALduino sagt Kanal 0. 2015.12.23 15:53:09 4: SIGNALduino/msg READ: �MU;P0=677;P1=-393;P2=4752;P3=-1543;P4=312;P5=-756;D=23454500110145010101454545454501014545014501014545450101014545454501010145450101454523454501014501010145454545450101454501450101454545010101454545450101014545010145452345450101450101014545454545010145450145010145454501010145454545010101454;CP=4;O;� Kann man das Signal auch von anhand der von Bit 33-40 Identifizieren und von da anfangen zu analysieren?? es gibt ja quasi nur hoch = 00010001 bzw 00011110 was immer für die Befehle steht sind Bit 33-36 und 37-40 sind bei den ersten übertragungen gleich und später im Signal genau umgedreht. Die festen Muster sind also 33-40 in den ersten Signalpaketen. Anhand dieser festen 8 Bit müßte doch eine Identifizierung möglich sein. so wie du es hier schreibst ist es nicht ganz richtig Signal has to be implemented in 00_SIGNALduino.pm Protocol is encoded like following: Grüße Jarno |
Das Update hat erst mal nur die Firmware geändert. Das Protokoll müsste dann noch mal nach den aktuellen Erkenntnissen implementiert werden. Hoch/runter/stopp sollte eigentlich wie beschtieben implementiert sein. Vielleicht liege ich aber auch mit den Bits um eine Stelle daneben. Grüße Sidey |
hallo Sidey, hast du nochmal drüber geschaut?? Oder welche Version muß ich jetzt updaten. Grüße Jarnsen |
Modified bit deocding for dooya shutters, needs to be tested #19
Hi Jarnsen, ich habe mir es heute noch mal angesehen und ein paar Bits im decodierungsbereich aktualisiert. Was das Senden angeht, kann der SIGNALduino genau das gleiche, was auch das referenzierte C Programm kann. Dort wird auch immer das gleiche Signal gesendet und nicht einmal so und dann anders. Du kannst mit dem dev-r32 Branch noch mal testen, der Empfang müsste eigentlich gut klappen. |
Hi Sidey ich würde gerne testen, bekomme leider nur. 2016-01-11 23:21:32 Global global UPD FHEM/14_Hideki.pm wenn ich FHEM updaten will |
Kann ich das update auch manuell runter laden??? Update bricht immer bei Hideki.pm ab. Siehe oben |
Added start pattern beginning of message when sendMsg command is used #19
Einener Branch für die Entwicklung des logisches Modules. |
Ich habe die IOWrite Funktion jetzt so gemacht, dass sie von logischen Modulen verwendet werden kann 86704c9 : Der Aufruf ist dann wie folgt: Intern wird dann die SET Funktion aufgerufen, aber das ist ja nicht tragisch. Die Kommunikation zwischen Arduino und physischem Modul ist jetzt zum einen aynchron und blockiert FHEM nicht mehr, zum anderen habe ich auch eine Warteschlange eingebaut. IOWrite kann also erst mal öfters aufgerufen werden. Die Ganzen Änderungen sind bislang aber nur im dev-32 enthalten. |
support 8 patern in firmware and module instead of 6 #19
modified dooya protocol specification (clock) for 2 and 5 channel transmitter #19
#19 changed min bit len from 40 to 39 to support 5 channel transmitter
Linked from
RFD-FHEM/SIGNALDuino#22
Signal has to be implemented in 00_SIGNALduino.pm
Protocol is encoded like following:
id= bit 0 - 28
channel = bit 29 - 31
all = if channel == 0
direction = bit 33 - 36
up = 001
down = 011
stop=101
/cc @thoffma3
The text was updated successfully, but these errors were encountered: