Dies ist eine alte Version des Dokuments!
Rolladen
Es reicht leider nicht, drauf zu achten, dass man es mit 433MHz betreiben kann, er muss auch noch einen Treiber für meinen Raspberry haben - hat er leider nicht. Doch ich werde da mal was probieren …
Fernsteuerung ist von Dooya bzw. Aldomo. Fernbedienung FB15767, Motor MT15668.
Für Pilight gibt es nichts. Für [Pimatic habe ich ein Plugin pimatic-dooya gefunden.Versuche, es mal schnell anzupassen haben nicht geholfen. Gelernt habe ich, dass das Protokoll aus 4 Impulsen zusammengesetzt wird. Gesendet wird init, die ID der Fernsteuerung (28bit), dann der Kanal (4Bit) und zum Schluss hoch/runter/stop/lernen (8bit). Gefunden habe ich das auf microcontroller.net von Sebastian. Sein Code ist [dort zu finden.
#include <wiringPi.h> #include <stdio.h> // 28 Stellen = ID // 4 Stellen = Kanal // 8 Stellen = Befehl int send_0(){ digitalWrite (0, HIGH) ; delayMicroseconds (320) ; digitalWrite (0, LOW) ; delayMicroseconds (600) ; return 0; } int send_1(){ digitalWrite (0, HIGH) ; delayMicroseconds (700) ; digitalWrite (0, LOW) ; delayMicroseconds (270) ; return 0; } int send_init(){ digitalWrite (0, HIGH) ; delayMicroseconds (5000) ; digitalWrite (0, LOW) ; delayMicroseconds (1500) ; return 0; } int main (argc, argv) int argc; char *argv[]; { int i; wiringPiSetup (); pinMode (0, OUTPUT); while (i < 10) { send_init(); i++; //ID send_0();send_0();send_0();send_1();send_1();send_0();send_1(); send_1();send_0();send_0();send_1();send_0();send_0();send_1(); send_0();send_0();send_0();send_1();send_1();send_1();send_1(); send_1();send_0();send_0();send_1();send_1();send_0();send_1(); // kanal 1 bis 128 binär if (strcmp(argv[1],"0") == 0) { send_0(); } if (strcmp(argv[1],"1") == 0) { send_1(); } if (strcmp(argv[2],"0") == 0) { send_0(); } if (strcmp(argv[2],"1") == 0) { send_1(); } if (strcmp(argv[3],"0") == 0) { send_0(); } if (strcmp(argv[3],"1") == 0) { send_1(); } if (strcmp(argv[4],"0") == 0) { send_0(); } if (strcmp(argv[4],"1") == 0) { send_1(); } // Funktion wählen if (strcmp(argv[5],"runter") == 0) { send_0();send_0();send_1();send_1();send_0();send_0();send_1();send_1();} if (strcmp(argv[5],"hoch") == 0) { send_0();send_0();send_0();send_1();send_0();send_0();send_0();send_1();} if (strcmp(argv[5],"stop") == 0) { send_0();send_1();send_0();send_1();send_0();send_1();send_0();send_1();} if (strcmp(argv[5],"lernen") == 0) { send_1();send_1();send_0();send_0();send_1();send_1();send_0();send_0();} //pause beim senden digitalWrite (0, LOW) ; delay (50) ; } return 0 ; }
aufruf geht so :
nice -n -19 ./rollo_prg 0 1 0 0 runter
Dezember 2019