(gelöst) Serial Port Kommunikation FHEM, Raspberry Pi, Arduino

Begonnen von Si(MO)n, 08 Dezember 2015, 21:45:40

Vorheriges Thema - Nächstes Thema

Si(MO)n

Guten Abend zusammen,

ich bräuchte mal eure Ideen und Vorschläge.

Der aktuelle ist Zustand:
- Arduino und Raspberry Pi sind per USB to Serial Kabel verbunden
- Senden von Commands von der Terminalkonsole des Ras. Pi sind möglich

Meine Fragen:
- Gibt es eine Möglichkeit innerhalb von FHEM direkt auf die Serial Konsole zuzugreifen?
- Der Befehl der abgesetzt werden soll ist 2=1:100<cr><lf>
- Ein auslesen des Rückgabewerts wäre auch schön aber nicht zwingend.

Vielleicht hat einer von euch schon mal ähnliches gemacht?!
Danke für eure Hilfe.

Gruß
Si(MO)n

viegener

Zitat von: Si(MO)n am 08 Dezember 2015, 21:45:40
Guten Abend zusammen,

ich bräuchte mal eure Ideen und Vorschläge.

Der aktuelle ist Zustand:
- Arduino und Raspberry Pi sind per USB to Serial Kabel verbunden
- Senden von Commands von der Terminalkonsole des Ras. Pi sind möglich

Meine Fragen:
- Gibt es eine Möglichkeit innerhalb von FHEM direkt auf die Serial Konsole zuzugreifen?
- Der Befehl der abgesetzt werden soll ist 2=1:100<cr><lf>
- Ein auslesen des Rückgabewerts wäre auch schön aber nicht zwingend.

Vielleicht hat einer von euch schon mal ähnliches gemacht?!
Danke für eure Hilfe.

Gruß
Si(MO)n

Ich nehme an mir USB-Serial-Kabel ist gemeint, dass etweder ein ProMini mit Adapter oder ein anderen Arduino direkt mit dem PI verbunden ist?

Daten zum Arduino zu senden ist dann eigentlich relativ einfach, es gibt zum Beispiel eine gute Beschreibung hier.
http://playground.arduino.cc/Interfacing/LinuxTTY

Zur Einbindung in FHEM wäre es dann aber eigentlich sinnvoll ein Modul in FHEM zu benutzen (oder zu bauen), dass die Kommunikation mit dem Arduino abwickelt, dann kann man auch auf die Rückgabe entsprechend reagieren.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Si(MO)n

USB direkt am Arduino
Im Raspberry wird es dann als /dev/ttyUSB0 erkannt und mit Linux Boardmitteln geht es. also echo etc..

Die Sache mit dem Modul ist das was ich meine, ich habe kein Modul gefunden, dass die Aufgabe erfüllen kann.

viegener

Zitat von: Si(MO)n am 08 Dezember 2015, 22:24:52
Die Sache mit dem Modul ist das was ich meine, ich habe kein Modul gefunden, dass die Aufgabe erfüllen kann.

OK, ich hatte nicht verstanden, was die Serial Konsole sein sollte.

Ich kenne kein generisches Modul zur seriellen Kommunikation, aber für wenige Kommands ist vielleicht der direkte Aufruf von shell-Kommands ausreichend. Diese können auch in notifys etc verwendet werden.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Si(MO)n


Icinger

Zitatgenerisches Modul zur seriellen Kommunikation

Schau dir in der commandref das ECMD an......Das ist ein absolut generisches Modul für zB serielle Kommunikation.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

viegener

Interessant, wieder was gelernt, das hatte ich überlesen, dass hier explizit auch tty möglich ist.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Si(MO)n

Ok, vielen Dank für den Hinweis auf ECMD!!
Hiermit habe ich es geschafft, Daten zu senden.
Nun gibt es nur noch ein Phänomen, ab und zu wird der Befehl nach dem senden nicht vom Arduino interpretiert.
Deswegen würde ich es gerne auf galante Weise mehrfach senden.
Am liebsten in der Form: Senden, warten, Senden...

Was ich bis jetzt eingerichtet habe:
fhem.cfg:
define Arduino_Serial ECMD serial /dev/ttyUSB0@9600
attr Arduino_Serial classdefs LEDs=/opt/fhem/FHEM/ECMD_Classes/LEDs.classdef
attr Arduino_Serial requestSeparator

define LED1 ECMDDevice LEDs
attr LED1 IODev Arduino_Serial
attr LED1 verbose 5
attr LED1 webCmd 1on:1off:2on:2off:3on:3off:auto


LEDs.classdef:
set 1on cmd {"3\n\r"}
set 1off cmd {"6\n\r"}
set 2on cmd {"4\n\r"}
set 2off cmd {"7\n\r"}
set 3on cmd {"5\n\r"}
set 3off cmd {"8\n\r"}
set auto cmd {"9\n\r"}


Ich weiß man kann es sicher schöner machen, aber ich wollte erst mal die Funktionen testen und dann schön machen ;)

Nepumuk4321

Hallo,

schau dir mal den Thread an : http://forum.fhem.de/index.php/topic,29113.msg361352.html#msg361352

Damit hat es bei mir wunderbar funktioniert. ohne jegliche Aussetzer. Allerdings habe ich es bisher nicht geschafft, Readings zu erzeugen oder auch eingelesene Eingänge  vom Arduino an Fhem zu senden.
Wenn du das schaffen würdest, wär ich auch sehr happy.


Gruß
Frank
FHEM@RPI2, HMUSB; Keymatic;Thermostate (HM-CC-RT-DN); Rolladenaktoren(HM-LC-BI1PBU-FM); 2xConfig-Firmata@ArduinoUno mit Relaisausgängen und DS18B20;Schaltaktor(HM-LC-SW1-BA-PCB); Rauchmelder(HM-SEC-SD); ArduinoNano+ nRF24L01 MySensors;   FHEM@RPI1 als Teststation mit RF1101se@ArduinoNano.....