Benutzer:Heimbastler: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „ '''!! Diese Seite befindet sich noch im Aufbau !! ''' == Arduino am Raspberry Pi als ECMD Device == Auf dem Arduino läuft ein beliebiges Programm um z…“) |
|||
Zeile 8: | Zeile 8: | ||
== Arduino in FHEM einbinden == | |||
Hierzu muss zuerst bekannt sein wie der Arduino als USB device am Raspberry Pi angelegt wurde: | Hierzu muss zuerst bekannt sein wie der Arduino als USB device am Raspberry Pi angelegt wurde: | ||
<syntaxhighlight lang="bash"> | |||
cd /dev | cd /dev | ||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash"> | |||
ls -l /dev/serial/by-id | ls -l /dev/serial/by-id | ||
</syntaxhighlight> | |||
insgesamt 0 | insgesamt 0 | ||
lrwxrwxrwx 1 root root 13 Mär 23 20:37 usb-Arduino__www.arduino.cc__0042_7533432393535141C1C2-if00 -> ../../'''ttyACM2''' | lrwxrwxrwx 1 root root 13 Mär 23 20:37 usb-Arduino__www.arduino.cc__0042_7533432393535141C1C2-if00 -> ../../'''ttyACM2''' |
Version vom 26. Februar 2018, 09:12 Uhr
!! Diese Seite befindet sich noch im Aufbau !!
Arduino am Raspberry Pi als ECMD Device
Auf dem Arduino läuft ein beliebiges Programm um z.Bsp. Relais in einem Schaltschrank zu steuern. Aus verschiedenen Gründen kann hier eine eigene Mikrokontroller-Steuerung Vorteile bieten. Im folgenden Beispiel sendet / empfängt der Arduino einfache Stati nach folgendem Schema:
Arduino in FHEM einbinden
Hierzu muss zuerst bekannt sein wie der Arduino als USB device am Raspberry Pi angelegt wurde:
cd /dev
ls -l /dev/serial/by-id
insgesamt 0
lrwxrwxrwx 1 root root 13 Mär 23 20:37 usb-Arduino__www.arduino.cc__0042_7533432393535141C1C2-if00 -> ../../ttyACM2
lrwxrwxrwx 1 root root 13 Feb 16 22:37 usb-busware.de_CUL868-if00 -> ../../ttyACM1
Wenn diese Info klar ist kann der Arduino in fhem als ECMD angelegt werden: define Arduino ECMD serial /dev/ttyACM2@9600 telnet per LAN/WLAN Beschreibung erwünscht
classdef Über eine textdatei auf dem Raspberry Pi werden die Übergabeparameter definiert: cd /opt/fhem sudo nano Arduino.classdef
- Uebergabeparameter
params pin
- Umsetzung in ECMD Befehle
set on cmd {"1R%pin\r\n"} set on expect "1R%pin\r\n" set off cmd {"0R%pin\r\n"} set off expect "0R%pin\r\n" reading state match "[01]R%pin\r\n" reading state postproc { /([01])R%pin\r\n/; $1 ? "on" : "off" }
Wichtig ist dann noch das man anschliessend die classdef neu einlist mit: set Arduino reopen R00 Fenster hoch R01 Fenster runter R02 Tür hoch R03 Tür runter R04 Aussenlampe Garten R05 Steinlampe R06 Dummy R07 KGFlurlampe ok R08 Küchenarbeitslampen ok R09 Küche ok R10 EGFlurlampe ok R11 Trägerleuchten ok R12 Wohnzimmerlampe1 (nicht an der Lampe belegt) ? R13 Wohnzimmerlampe2 ok R14 Aussenlampe Strasse ok R15 Klingel ok