Hallo,
Ich habe mein AVR-NET-IO gefunden und habe es mit Ethersex geflasht auf einen Atmel 32.
Soweit so gut auf der Ethersex seite kann ich meine Relais alle anschalten und ausschalten Einzeln.
Also habe ich in FHEM die RELAIS.classdef erstellt
Nach dem Wiki.
# Uebergabeparameter HEX Adresse Port
params RelaisPort
# erst alle Ports PC.. auf Ausgang setzen und dann per Hexcode schalten
set on cmd {"io set ddr 2 ff\nio set port 2 %RelaisPort %RelaisPort"}
set on postproc {s/([OK|;]*)/success/; "$_" eq "success" ? "ok" : "error";}
set off cmd {"io set ddr 2 ff\nio set port 2 00 %RelaisPort"}
set off postproc {s/([OK|;]*)/success/; "$_" eq "success" ? "ok" : "error";}
Und eine Ethersex.cfg
### Ethersex Anfang ###
define AVR_NET_IO ECMD telnet 192.168.178.8:2701
attr AVR_NET_IO classdefs RELAIS=/opt/fhem/FHEM/RELAIS.classdef
attr AVR_NET_IO requestSeparator �
define Relais1 ECMDDevice RELAIS 01
attr Relais1 IODev AVR_NET_IO
define Relais2 ECMDDevice RELAIS 02
attr Relais2 IODev AVR_NET_IO
define Relais3 ECMDDevice RELAIS 04
attr Relais3 IODev AVR_NET_IO
define Relais4 ECMDDevice RELAIS 08
attr Relais4 IODev AVR_NET_IO
define Relais5 ECMDDevice RELAIS 10
attr Relais5 IODev AVR_NET_IO
define Relais6 ECMDDevice RELAIS 20
attr Relais6 IODev AVR_NET_IO
define Relais7 ECMDDevice RELAIS 40
attr Relais7 IODev AVR_NET_IO
define Relais8 ECMDDevice RELAIS 80
attr Relais8 IODev AVR_NET_IO
### Ethersex Ende ###
Wenn ich jetzt in FHEM ein Relai anschalten will gehen alle An.
Egal ob ich relai 1 drücke oder relai 8.
Zeigt mir in FHEM aber nur den Status von dem einem Relai an das ich angeschaltet habe.
Und off befehle nimmt er gar nicht an.
Ich hoffe ich konnte mich gut erklären und jemand kennt vll. Das Phänomen
Gruß Christian
Gesendet von iPhone mit Tapatalk
lies das Wiki nochmal, und dann füge mal in die classdef den requestSeperator ein.
set on cmd {"io set ddr 2 ff\000\nio set port 2 %RelaisPort %RelaisPort"}
set off cmd {"io set ddr 2 ff\000\nio set port 2 00 %RelaisPort"}
viel Erfolg
Tom_S
Also wenn wenn ich das jetzt richtig verstanden habe.
Den postproc Teil brauche ich nicht weil der ist ja Optional.
Und der requestSeperator :
set on cmd {"io set ddr 2 ff\000\nio set port 2 %RelaisPort %RelaisPort"}
set off cmd {"io set ddr 2 ff\000\nio set port 2 00 %RelaisPort"}
Sind dann in deinem Code Beispiel: " \000 "
Diese 3 Nullen. Richtig?
Also sorry ich steig da nicht ganz durch und die Google Übersetzung von der Commandref bringt mich auch nicht weiter.
Habt bitte nachsicht.
Lg Christian
Gesendet von iPhone mit Tapatalk
schalten geht auch ohne postproc.
Die drei Nullen sind irgendwann mal dazugekommen. Ich erinnere mich, das es mit der Umstellung auf IODev war .
Probiere es doch mal aus.
LG Tom_S
Hab ich dann schaltet er gar nicht mehr.
Gruß Christian
Gesendet von iPhone mit Tapatalk
mach mal von einer Konsole eine Telnetverbindung zu dem Ding, und gib mal die Befehle einzeln ein.
Hast du die neuste Version von FHEM? Insbesondere welche Version hat die 66_ECMD.pm
Also die FHEM version ist aktuell die 66_ECMD.pm version ist vom 17.10.2015.
Meine Telnet Verbindung funktioniert zum AVR.
Setz ich den Befehl ab
io set port 2 ff 01
Schaltet das Relai
Setz ich den Befehl
io set port 2 00 01
geht das relai aus.
Geb ich aber wie in meiner classdef drin steht
io set port 2 %RelaisPort %RelaisPort
natürlich richtig geschrieben
io set port 2 01 01
ein kommt ein parse error.
Und wenn ich das erste %RelaisPort raus nehme und mit ff ersetze geht es auch nicht an.
Lg Christian
Gesendet von iPhone mit Tapatalk
liegt dann wohl an ethersex.
io set port 2 01 01
sollte auf jeden Fall gehen. Ist aber egal, du kannst auch ff 01 machen. habe ich gerade mal probiert.
Also das erste %RelaisPort mal durch ff ersetzen.
viel Glück
da ist mir gerade noch etwas aufgefallen.
in der neuen Version von ECMD wird noch ein expect erwartet. Erwarte einfach alles und füge mal unter deine set on cmd noch die Zeile
set on expect ".*"
und das gleiche mit off unter set off cmd.
Du hast ein altes Wiki.
Also mit
set on expect ".*"
Klappt es auch nicht.
Ethersex habe ich kompiliert und geflasht nach der Anleitung
http://www.gtkdb.de/index_18_1036.html
Ich versteh bloß nicht warum die Telnet Befehle funktionieren und aus FHEM heraus nicht mehr.
Lg Christian
Gesendet von iPhone mit Tapatalk
da bin ich jetzt auch ein bisschen überfragt. Du kannst im ecmd Modul mal logTraffic setzen. dann schreibt er alles was kommt ins log.
LG
Okay werde ich gleich heute Abend ausprobieren.
LG
Gesendet von iPhone mit Tapatalk