FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: NeuFehm am 21 Oktober 2015, 11:43:43

Titel: Rückantwort von device auswerten
Beitrag von: NeuFehm am 21 Oktober 2015, 11:43:43
Liebe FHEM-Gemeinde,

wenn ich einen ASCII-Schaltbefehl zu meinem Relais schicke: #M(E\001\001\000\r\n
, dann antwortet das Relais bei Erfolg mit: !M(E\001\001\000\r\n
(Nicht wundern, die "(" ist eine ASCII-Adresse des Relais)

Nun möchte ich diese Antwort für den Lampen-Status (brennt/brennt nicht) benutzen,
also im oberen Fall soll die "Lampe" in Fhem gelb werden.
Das Grundprinzip werde ich realisieren können, nur beim "reading" habe ich Fragen.

Zunächst hier das log:
2015.10.20 22:13:43 5: mylampe: sending command "#M(E\001\001\000\r\n"
2015.10.20 22:13:43 5: SW: 234d28450101000d0a
2015.10.20 22:13:43 5: mylampe: Spontaneously received "!"
2015.10.20 22:13:43 5: mylampe dispatch !
2015.10.20 22:13:43 5: mylampe: Spontaneously received "M(E\001\001\000\r\n"
2015.10.20 22:13:43 5: mylampe dispatch M(E

2 Fragen:
1. Wo/Wie definiere ich das "Reading" (in der classdef zum device oder in der fhem.cfg)
2. Muss ich Fhem irgendetwas mitteilen, dass es nicht die Antwort aufteilt, denn er hat, so wie ich das log interpretiere
schon nach dem "!" separiert. Eigentlich ist das EINE Antwort....

Danke für Antworten oder Lese-Aufträge ;)
Titel: Antw:Rückantwort von device auswerten
Beitrag von: NeuFehm am 21 Oktober 2015, 21:04:48
Hat jemand eine Idee, wie man FHEM sagen kann, dass es den Antowrt-String nicth zerlegt?
!M(E\001\001\000\r\n

2015.10.20 22:13:43 5: mylampe: Spontaneously received "!"
2015.10.20 22:13:43 5: mylampe dispatch !
2015.10.20 22:13:43 5: mylampe: Spontaneously received "M(E\001\001\000\r\n"
2015.10.20 22:13:43 5: mylampe dispatch M(E
Titel: Antw:Rückantwort von device auswerten
Beitrag von: NeuFehm am 21 Oktober 2015, 22:12:25
ah....mit
set on expect ".M.*\\r\\n"

Logfile:
2015.10.21 22:09:12 5: mylampe: received answer "!M(E\001\002\001\r\n"
Jetzt muss ich nur noch rausfinden, dass der aus der Antwort ein Schalter 2 (\002)=on (\001) macht.

Hat da jemand eine Idee?
ein postproc?
Titel: Antw:Rückantwort von device auswerten
Beitrag von: NeuFehm am 27 Oktober 2015, 21:47:25
Hab immer noch mein Problem :(

Mein EMCD-Device empfängt spontan:
2015.10.27 21:42:42 5: mylampe: Spontaneously received "#M"
2015.10.27 21:42:42 5: mylampe dispatch #M
2015.10.27 21:42:42 5: mylampe: Spontaneously received "(E\005\001\001\r\n!M(E\005\001\001\r\n"
2015.10.27 21:42:42 5: mylampe dispatch (E
!M(E

fhem.cfg:
define mylampe ECMD serial /dev/ttyUSB0@9600
attr mylampe classdefs mylampedevice=/opt/fhem/lampe.classdef
attr mylampe verbose 5
attr mylampe partial 3

lampe.classdef:
reading antwort match "!M\(E\\005\\001\\001\\r\\n"

Warum erkennt der denn nicht den !M(E\005\001\001\r\n als "Antowort" :(

Kann jemand helfen?