Hauptmenü

Eigene Befehle mit ECMD

Begonnen von Superhelmi, 03 Februar 2015, 19:06:21

Vorheriges Thema - Nächstes Thema

Superhelmi

Hallo,

ich habe FHEM auf einem Raspberry Pi laufen.
Nun möchte ich über einen usb - RS232 Adapter Befehle an meine Heimkino Vorstufe senden.
ECMD und EMCD device habe ich eingerichtet.
Wie kann ich jetzt eigene Befehle definieren ?
Leider hab ich keine (für mich verständliche) Anleitung dafür gefunden.
Das was ich gefunden habe, die Befehle in die class.def Datei zuschreiben funktioniert leider nicht.

Zum Testen habe ich mit RAW schon Befehle geschickt, die Kommunikation funktioniert also prinzipiell.


Danke

Markus

Bernd

Hallo Markus,

könntest du mal ein Beispiel bringen, wie du mit RAW einen Befehl senden kontest. Ich versuche seit langer Zeit, meine Heizung in FHEM einzubinden - zuletzt mittels ECMD. Allerdings bekomme ich keine vernünftigen Daten geliefert. Ich habe dafür eine LAN-RS232 Adapter. Wenn ich ihn über Telnet (putty) anspreche, bekomme ich Daten. Leider nicht wenn ich es mit ECMD versuche.

Gruß

Bernd

Siehe dazu http://forum.fhem.de/index.php/topic,29740.0.html
FHEM auf BananaPi

Icinger

Grundsätzlich is ECMD recht einfach, wenn mans mal verstanden hat.

Ich hab meinen Stromzähler per RS485->USB per ECMD angeschlossen (reiner Empfang).

Zeig mal die Daten, die du senden/empfangen willst und deinen ersten Versuch der classdef....

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

Superhelmi

Hallo Bernd,

ich habe um zu sehen, was wirklich gesendet wir meinen Raspberry Pi über RS232 mit dem PC verbunden.
Auf dem PC habe ich HTerm laufen. Damit siehst Du, ob bzw. was ankommt.
Wenn du einigermaßen schnell bist kannst du auch selbst die Antwort in HTerm eingeben, die dann in FHEM angezeigt wird.
Datenbits, Stopbits und Parity hast Du eingerichtet ? (z.B. stty...)

Markus

Superhelmi

Hallo Icinger,

hier ein Ausschnitt meiner FHEM.cfg:

define AV5103 ECMD serial /dev/ttyUSB1
attr AV5103 classdefs Linn=/opt/classdef/AV5103.def

define Linn ECMDDevice
attr Linn IODev AV5103
attr Linn group Linn AV5103
attr Linn room Wohnzimmer
attr Linn webCmd MuteOn:MuteOff


In der AV5103.def steht:

# RS232 Definition

set MuteOn cmd '$MUTE Y$'
set MuteOff cmd '$MUTE N$'


Wenn ich jetzt ein set Linn MuteOn eingebe kennt FHEM den Befehl nicht.

Danke !

Markus

Bernd

Hallo zusammen,

ich hatte es bisher immer so versucht:

define Hzg ECMD telnet Heizung:1002

Heizung ist der Netzwerkname und der ist auch erreichbar. Dann habe ich schon versucht mit

set Hzg RAW {"1800\n"}

Daten zu erhalten. Ich hatte die Doku so verstanden, dass die "classdef" nicht zwingend nötig sind. Das ist dann auch der Punkt, wo es hapert. Ich weiß nicht, wie ich die Abfragewerte in der classdef-Datei definiere. Die Heizungsdaten werden werden mit vierstelligen Zahlen und <Return> abgefragt, z.B. 1800, 2100, etc. Auf ein 2100 wird dann z.B. das hier zurückgegeben:

2100;16;560;20;30;50;-160;100;650;60;500;350;-200;-90;1250;20;-200;640

Gruß

Bernd
FHEM auf BananaPi

Icinger

define AV5103 ECMD serial /dev/ttyUSB1
attr AV5103 classdefs LinnCD=/opt/classdef/AV5103.def

define Linn ECMDDevice LinnCD
attr Linn group Linn AV5103
attr Linn room Wohnzimmer
attr Linn webCmd MuteOn:MuteOff


So müsste es eigentlich klappen.

1) Sicher, dass die classdef direkt in /opt/classdef liegt?
2) Würd ich in betracht ziehen, /dev/ttyUSB1 durch eine udev-rule an einen fixen Namen zu binden. Dass nach einem Reboot das selbe Device wieder an USB1 ist, ist nicht garantiert!

lg, Ici

PS: Bernd, das mach ma morgen dann, bin heute schon zu k.o.
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Superhelmi

Hallo Icinger,

was bei mir gefehlt hat ist die class nach dem ECMDDevice.
Hab`s probiert, geht aber trotzdem nicht.  :o
Wenn ich " set Linn on" oder "set Linn MuteOn" in FHEM eingebe kommt als meldung "unknown, chose one of"

Superhelmi

Icinger

Was sagt das Logfile (evtl. mit "attr AV5103 verbose 5") dazu?

Klingt für mich, als ob das classdef-File nicht geladen werden könnte.

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

Superhelmi

Hallo,

der Fehler war erstens, dass ich nach dem ECMDDevice in diesem Fall das "LinnCD" nicht hatte.
Nach einem Blick in die Log Datei bin ich noch auf einen Fehler in der Classdef gekommen.
Darum hat FHEM die Classdef nicht angenommen !
Jetzt funktioniert es !!! :D

Danke Icinger !

Gruß

Superhelmi