[gelöst] Text an serielle Schnittstelle senden

Begonnen von Grave, 18 Juli 2015, 00:27:13

Vorheriges Thema - Nächstes Thema

Grave

Hi,

bei mir läuft Fhem auf einem Raspberry. Auf einem Arduino läuft ein Sketch, welcher auf der seriellen Schnittstelle auf Befehle wartet. Wie kann ich Text an den Arduino schicken? Per EMCD? Oder geht es einfacher?

Gruß Christoph

Grave

Zum ausprobieren wollte ich es so machen:

Zitatsub Arduinotest
{
my $port = Device::SerialPort->new("/dev/ttyUSB0");
$port->databits(8);
$port->baudrate(9600);
$port->parity("none");
$port->stopbits(1);
$port->handshake("on");
$port->write_settings;
my $zeichen = chr(50);
$port->write($zeichen);
}

In der Fhem.conf folgenden Taster:

Zitatdefine taster dummy
attr taster room Heizung
attr taster setList state:something
attr taster webCmd something
define mynot1 notify taster.* {Arduinotest}

Der Arduino Sketch sollte bei einer gesendeten "2" etwas machen. Doch es passiert nichts. Wo ist der Fehler?

Gruß Grave

Grave

Es funktioniert. Anstatt ttyUSB0 musste ttyACM0 hin.

Grave

Hab´s mit EMCD geschafft. Je mehr man sich einliest, desto mehr versteht man die Zusammenhänge.

willybauss

darf ich fragen, wie Du es mit ECMD geschafft hast? Stehe grade vor dem Problem, die serielle Schnittstelle zu initialisieren, die dann über ECMD Daten empfangen soll.


Auf der Kommandozeile würde die Sequenz so aussehen (Initialisierungüber stty, dann werden die Daten gesendet, die mit cat gelistet werden):




pi@raspberrypi ~ $ stty -F /dev/ttyUSB2 1:0:9ad:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0
pi@raspberrypi ~ $ cat /dev/ttyUSB2
/EMH5----eHZ-E0028E

1-0:0.0.0*255(20836181)
1-0:1.8.1*255(009260.0705)
1-0:2.8.1*255(027030.6495)
1-0:96.5.5*255(82)
0-0:96.1.255*255(0002477555)
!

FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS