Funksteckdosen mit dem Raspberry Pi und pimatic schalten

Da ich mich die letzten Monate sehr auf die Entwicklung von pimatic konzentriert habe wird es jetzt höchste Zeit auch hier mal wieder davon zu schreiben. pimatic ist eine Open Source Plattform zur Heimautomatisierung und es können mit zahlreichen Erweiterungen (Plugins) unterschiedliche Geräte angesteuert werden.

In diesem Artikel geht es um das schalten von Funksteckdosen auf 433 Mhz Basis mit dem Plugin pimatic-homeduino. Dieses Setup hat bei mir pilight ersetzt da die Lösung bei mir wesentlich besser läuft.

Mit pimatic-homeduino lässt sich der 433 Mhz Sender und Empfänger entweder direkt am Raspberry Pi betreiben oder über einen Arduino nano (empfohlen). Ein Problem beim direkten betreiben ist, dass der Empfänger ein ständiges Rausch-Signal ausgibt, welches zu einer erhöhten CPU-Auslastung führt. Ein anderes Problem ist dass der Empfang der Signale sehr zeitkritisch ist und durch andere Software die auf Eurem Raspberry Pi läuft negativ beeinflusst werden kann. Bei der Arduino Lösung kümmert sich der Arduino um den Empfang, was eurem Raspberry Pi die Zeit für die wichtigen Dinge lässt :). Da es eindeutig die bessere Variante ist konzentriere ich mich hier auf diese Lösung.

Was wird zusätzlich zum Raspberry Pi benötigt:

433 Mhz Arduino nano

Hardware anschließen

Der Empfänger wird an den Pin mit der Bezeichnung D2 angeschlossen und der Sender an Pin D4:

433 Mhz Empfänger und Sender am Arduino Nano

433 Mhz Empfänger und Sender am Arduino Nano

5V muss natürlich jeweils noch mit dem 5V-Pin des Arduinos verbunden werden. Masse (GND) natürlich ebenfalls.

homeduino auf den Arduino aufspielen

Dies geht am leichtesten, wenn Ihr den Arduino an den Raspberry Pi anschließt (USB). Zum Aufspielen müsst Ihr zuerst die benötigen Pakete installieren:

sudo apt-get install arduino-core avr-libc avrdude binutils-avr gcc-avr libconfig-yaml-perl libftdi1 libyaml-perl screen python-serial

Dann homeduino herunterladen und aufspielen:

git clone --recursive https://github.com/pimatic/homeduino.git

Nun müsst ihr herausfinden unter welchem Namen der Arduino am Raspberry Pi registriert ist (Zum Beispiel /dev/ttyUSB0). Dies lässt sich mit folgendem Befehl herausfinden:

ls /dev/ttyUSB*

Im weiteren sollte Ihr den hier herausgefundenen Namen benutzten.

Nun in das heruntergeladene Verzeichnis wechseln und dort im Makefile gegebenenfalls den MONITOR_PORT entsprechend anpassen.

cd homeduino
nano Makefile

und dann mit dem folgenden Befehl schlussendlich homeduino aufspielen:

make upload

pimatic konfigurieren

In der pimatic config folgendes in die Plugin-Array eintragen:

{
  "plugin": "homeduino",
  "driver": "serialport",
  "driverOptions": {
    "serialDevice": "/dev/ttyUSB0",
    "baudrate": 115200
  },
  "receiverPin": 0,
  "transmitterPin": 4
}

Die serialDevice-Einstellung eventuell anpassen. receiverPin 0 ist richtig, da hier nicht der Digital Pin 0 (D0) gemeint ist sondern der INT0 Pin des Atmega-Mikrocontrollers.

Desweiteren sollter Ihr noch die Debug-Ausgaben in pimatic aktivieren. Dazu unter "settings" die folgenden Angaben ergänzen / ändern:

  "debug": true,
  "logLevel": "debug",

Wenn Ihr nun pimatic startet, solltet ihr folgende Meldungen bekommen:

[pimatic-homeduino] info: Connected to homeduino device.

und beim Druck auf die Fernbedienung eine Ausgabe wie:

17:32:00.908 [pimatic-homeduino] debug: received: [ 258, 1348, 2712, 10384 ] 020001000101000100000101000001010000010001010000010000000100010100010000010100010000010100010001000100000100010001000100010001000103
17:32:00.913 [pimatic-homeduino] debug: switch1:  { id: 13234254, all: false, state: false, unit: 0 }

hier findet ihr die ID zur Konfiguration der Geräte. Diese könnt ihr wie im Beispiel hier unter "devices" zur config hinzufügen:

{
  "id": "rfswitch",
  "name": "Steckdose",
  "class": "HomeduinoRFSwitch",
  "protocols": [{
    "name": "switch1",
    "options": {
      "id": 13234254,
      "unit": 0
    }
  }]
}

Sollte euer Empfänger nicht funktionieren oder Ihr keinen haben, dann könnt Ihr hier auch einfach eine beliebige ID wählen und damit eure Funksteckdose anlernen.

 

21 Antworten

  1. Hallo,
    und danke für den Bericht. Habe ihn mit Spannung gelesen. Ich benutze im Moment auch das Setup via Pilight am rPi um meine Steckdosen zu steuren und bin mit der Performance nicht so zufrieden (Load am Pi und nicht verarbeitete sende/empfangs Befehle). Infofern hört sich dein Ansatz sehr interessant an.

    Ich setze als automatisierungs Backend Openhab ein. Da gibt es für Pilight ein extra Binding, das an die API von Pilight geht. https://github.com/openhab/openhab/wiki/pilight-Binding
    Gibt es sowas schon für Pimatic oder ist so etwas in Planung?

    Falls an einem Binding Interesse besteht, würde ich da mithelfen.
    Gruß und mach weiter so mit deinem tollen Projekt.
    Sebastian

    • Hallo Oliver,
      Ich hoffe, an diesem Projekt wird noch gearbeitet^^
      Ich versuche nun schon seit Stunden Pimatig zu installieren, und bekomme Homeduino nicht zum laufen… im log steht da immer ttyusb0 nicht gefunden, schau ich in die dev rein, ist da auch kein ttyusb vorhanden, Ist übrigens ein Raspi 3 und arduino habe ich schon UNO Leonardo und MICRO versucht, überall das gleiche Spiel.
      Hast du da eine Idee woran das liegen kann?

  2. Schönen guten Abend,
    habe am Sonntag einen arduino uno geschenkt bekommen kann ich diesen auch missbrauchen für dieses projekt oder muss es ein nano sein?

    • Einen Uno kannst Du auch nutzen. Dafür musst Du den BOARD_TAG im Makefile auf Uno setzen und je nachdem noch den USB Port anpassen.

      Pimatic hat seit kurzem auch ein Forum. Bei Interesse einfach mal reinschauen :
      http://forum.pimatic.org

  3. Danke für die tolle Anleitung!
    Ich bin von Pilight umgestiegen und nutze nun auch pimatic-arduino. Folgendes ist mir aufgefallen: wenn ich über die original Fernbedienung meiner Funksteckdosen (Brennenstuhl) schalte, ändert sich der state in pimatic nicht. D.h. der Schalter bleibt z.B. auf On wenn ich mit der FB ausschalte. Gibt es da abhilfe? Mir ist außerdem aufgefallen, dass der Sendebefehl ab und zu stark verzögert ausgeführt wird. Es dauert dann bis zu 3 Sekunden.

    Viele Grüße

  4. Hat sich erledigt, habe Protokoll Switch2 genommen. Nun geht alles, die Verzögerung ist nur manchmal da und somit akzeptabel.

  5. Bei mir ist es genau umgekehrt: pilight läuft deutlich stabiler und schaltet absolut verzögerungsfrei, wogegen pimatic mit homeduino öfter mal nicht schaltet oder gleich den Funksender killt bis zum Neustart des RPi. Wirklich schade, dass pilight 6 nicht mehr kompatibel mit pimatic ist.

  6. Hallo!

    Spiele schon seit ein paar Tagen mit Pimatic herum. Mal mit mehr und weniger Erfolg. Bis jetzt habe ich mir aber immer selber helfen können. Nun leider nicht mehr. Wenn ich homeduino auf den Arduino aufspielen möchte, erhalte ich immer diese Fehlermeldung

    avrdude: stk500_recv(): programmer is not responding
    /root/homeduino/arduino-mk/Arduino.mk:1292: recipe for target ‚do_upload‘ failed
    make[1]: *** [do_upload] Error 1
    make[1]: Leaving directory ‚/root/homeduino‘
    /root/homeduino/arduino-mk/Arduino.mk:1284: recipe for target ‚upload‘ failed
    make: *** [upload] Error 2

    Hab in Google einiges gefunden, werde aber trotzdem leider nicht schlauer. Angeblich kann er den Arduino nicht finden. Der Port ist aber auf jeden Fall /dev/ttyUSB0. Das habe ich wie in der Anleitung beschrieben überprüft.

    Hoffe ihr könnt mir helfen. Habe heute schon den ganzen Tag damit verbracht. Leider mit absoult keinem Ergebnis

    Ich verwende übrigens das B Model und raspberrypi 3.18.9+ #767 Habe es auch schon mit einem Raspberry 2 versucht. Da kommt genau die selbe Fehlermeldung.

    Danke
    Tom

  7. Hi
    Hab mir das Projekt jetzt auch selber umgesetz. Nur leider seh ich den Log nicht für das Anlernen der Steckdosen. Wo und wie bekomm ich das angezeigt? Oder andere Frage. Ich möchte gern meine Steckdosen per Pimatic und FB nutzen. Wobei der Status in Pimatic mit angezeigt werden soll. Nutze die Intertechno IT1500….

    Gruß Ronny

  8. So, ich bin jetzt auch auf die Arduino-Lösung umgestiegen, der Sender funktioniert schonmal prima. Bevor ich den Empfänger anschließe: Bei der GPIO-Lösung des Pi hieß es immer, man solle einen Widerstand zwischenschalten, falls man den Empfänger mit 5V betreibt, da der Data-Port des Pi nur 3V verträgt. Kann man das beim Arduino vernachlässigen? Und können sich Sender und Empfänger GND und 5V teilen, oder könnte es da Probleme geben?

  9. Ich versuche jetzt für zwei tagen om mein gerät ein zu stellen aber es functioniert nicht.
    Ich habe die device configuration und log imm Pastebin gekopiert.

    http://pastebin.com/3MQaAPME

    Viellicht können sie mich weiter hilfen?

  10. Hallo Oliver,
    also ich habe pimatic in Verbindung mit dem Homeduino prima zum laufen gebracht. Jetzt würde ich gern das irgendwie mit FHEM verheiraten wollen, damit meine Homematic und der Rest gehen.
    Gibts eventuell ne Möglichkeit den Homeduino per shell anzusprechen? Oder ne Schnittstelle, wie man dann pimatic in FHEM einbinden kann? Das wäre echt sehr cool…
    Gruß
    Jens

    (So wie in pilight? mit piligh-send?). Pilight hab ich nämlich nicht ans laufen bekommen….

  11. Hallo,

    bin nach einer Lösung für folgende Aufgaben. Bin nicht sicher, ob das mit Pimatic geht.

    a) Lichtsteuerung / Sonnenaufgang & Sonnenuntergang
    5:00 bis 5:30 LED:
    Lichtleiste von 0% auf 100% dimmen

    Lokaler Sonnenaufgang (zb 6:30Uhr) bis +30 Minuten später
    Lichtleiste von 100% auf 0% dimmen

    30 Minuten vor Lokaler Sonnenuntergang (zb 21 Uhr) bis +30 Minuten später
    Lichtleiste von 0% auf 100% dimmen

    22:00 Uhr bis 22:30
    Lichtleiste von 100% auf 0% dimmen

    b) Rolladen öffnen
    30 Minuten nach lokalen Sonnenaufgang

    c) Rolladen schließen
    30 Minuten nach lokalen Sonnenuntergang

    Gruß

  12. Hallo,

    leider keine Antwort bekommen, evtl ist das auch nicht machbar.

    Die Hardware wie beschrieben habe ich inzwischen zur Verfügung. Evlt
    mag einer helfen, wie man diese Anleitung auf einen Dimmer anwendet.

    Gruß

  13. Das Blog scheint ziemlich tot zu sein, aber vielleicht liest das hier ja noch jemand: Ist es möglich, homeduino direkt über die Shell Befehle zu senden, also ohne pimatic? Falls ja, wie sieht die Syntax aus?

  14. Hallo,
    ich bin letztens über den Raspberry Pi gestolpert und möchte ihn bei meinem Smart Home Projekt einsetzen. Die Sender mit 433MHz schauen sehr interessant aus. Ich möchte auch Sensoren über USB anschließen. Hat jemand Erfahrung mit diesen IO Modulen?

  15. […] Mehr dazu: Funksteckdosen mit dem Raspberry Pi und pimatic schalten […]

  16. Wie muss ich denn den Empfänger anschließen , wenn ich keinen Arduino verbinden will ?

  17. Hi,
    vielen Dank für die gute Anleitung.
    Leider scheint das mit Funksteckdosen von Tevion nicht zu funktionieren. Das Anlernen klappt nicht und die Funksignal von der Fernbedienung kommen erstens nicht immer an und zweitens sind sie immer anders.
    Idee?
    Viele Grüße
    Christof

  18. Hi, leider geht dein Kontaktformular nicht…:
    Hallo und Respekt vor deiner Arbeit,
    vielleicht findest du einen kurzen Moment mir zu helfen.

    Was ich will:
    Eine Alarmzentrale, die auf Aktionen der Kameras /NAS reagiert. (Das NAS ruft momentan eine webseite von mir auf, dort werden Alarme in eine Mysql Datenbank geschrieben und durch eine Logik in PHP ausgewertet um dann zu alarmieren (E-Mail wird gesendet).
    Weiterhin: Loggen von Temperaturen eines Gewächshauses und schalten von Funksteckdosen.
    Und ein hübsches Frontend was du schon hast.

    Dein Pimatic kann wohl das meiste schon. Ist es möglich dein Pimatic eventuell noch so zu erweitern, dass ich mit Logik auf eine Datenbank zugreife?
    Also Alarme auswerten und dann mit deinen Regeln etwas machen? Kann Pimatic eine Webseite öffnen, und ein Ergebnis parsen und in eine interne Variable füllen?
    Ich kann C#, PHP, MySQL und HTML, aber von deinen Progrmamiersprachen und Linux habe ich keinen Plan. Leider.
    Hoffe ich habe mich einigermassen ausgedrückt.
    Vielen Dank und Mach weiter so!
    Thomas

  19. Hallo,
    leider funktioniert dein Kontaktformular noch immer nicht.

    Ich habe ihr Homeduino wie in der Anleitung installiert und eingebunden.
    Nur bekomme ich nach ca 3 Stunden betrieb diese Fehlermeldung .
    Er sende den letzten gewollten Schaltzustand und meldet danach „Timeout“.

    die Meldung laut log:

    error [pimatic]: A uncaught exception occured: Error: Could not parse expression
    at VariableManager.parseVariableExpression (/home/pi/pimatic-app/node_modules/pimatic/lib/variables.coffee:386:19)
    at Board. (/home/pi/pimatic-app/node_modules/pimatic-homeduino/homeduino.coffee:1102:38)
    at emitOne (events.js:82:20)
    at Board.emit (events.js:169:7)
    at Board._emitReceive (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/lib/board.js:352:12)
    at Board._handleRFControl (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/lib/board.js:337:10)
    at Board._onLine (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/lib/board.js:142:21)
    at SerialPortDriver. (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/lib/board.js:83:22)
    at emitOne (events.js:77:13)
    at SerialPortDriver.emit (events.js:169:7)
    at SerialPort. (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/lib/driver/serialport.js:64:24)
    at emitOne (events.js:77:13)
    at SerialPort.emit (events.js:169:7)
    at /home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/node_modules/serialport/parsers.js:25:17
    at Array.forEach (native)
    at Object.parser (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/node_modules/serialport/parsers.js:24:13)
    at Object.SerialPort.opts.dataCallback (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/node_modules/serialport/serialport.js:181:12)
    at SerialPortFactory.SerialPort._emitData (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/node_modules/serialport/serialport.js:396:20)
    at afterRead (/home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/node_modules/serialport/serialport.js:372:20)
    at /home/pi/pimatic-app/node_modules/pimatic-homeduino/node_modules/homeduino/node_modules/serialport/serialport.js:388:9
    at FSReqWrap.wrapper [as oncomplete] (fs.js:576:17)
    This is most probably a bug in pimatic or in a module, please report it!

    Vielen Dank.

    Gruß Heiko

Schreibe einen Kommentar

Home Allgemein Funksteckdosen mit dem Raspberry Pi und pimatic schalten
© sweet pi - sweet home
Top