Benutzer-Werkzeuge

Webseiten-Werkzeuge


rolladen

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

rolladen.1577027748.txt.gz · Zuletzt geändert: 2019/12/22 15:15 von varnholt