Gibt es ein Modul für Conrad 8fach-Relaiskarte 24 V/DC 7 A Baustein 8 Relaisausgänge

Begonnen von Guest, 23 März 2011, 18:27:18

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Boris Neubert wrote:
> Hallo Volker,
>
> Am 14.05.2011 20:02, schrieb Volker:
> > Die 3 ist ein Kommando, 1 ist die Adresse die ich mit den Einsen
> > initialisiert habe.
> > in der Variablen $x ist dann der Wert, welche Ausgänge geschaltet
> > werden sollen. Das Protokoll hat 4 byte, Kommando, Adresse, je nach
> > Kommando ein Wert und abschliessend ein xor über die ersten byte.
>
> ah, verstehe!
>
> > Bei der Ausgabe mit print scheint alles in Ordnung auch stimmt die
> > Anzahl der Bytes. Aber an einem anderen Rechner wo ich die Ausgabe am
> > Terminalprogramm überprüfe, stimmt dann $x nicht mehr, sowie der xor
> > Wert und es werden anscheinend nochmal $x und 0x0 angehängt.
>
> Das verstehe ich nicht. Erzeuge doch mal mit pack (siehe
> http://perldoc.perl.org/functions/pack.html) einen String mit genau 4
> Bytes und versuche es damit. Ich bin mit meinem Latein am Ende. GGf. mal
> in einem Perl-Forum/-Mailingliste fragen.
>
> Viele Grüße
> Boris
Hallo Boris,

bei meinen Versuchen in Fhem erhalte ich jetzt folgende Fehlermeldung
im Logbuch: Undefined subroutine &main::EvalSpecials called at /usr/
share/fhem/FHEM/67_ECMDDevice.pm line 171.

So habe ich die Geräte definiert:define cboard ECMD serial /dev/
ttyS0@19200
attr cboard classdefs out=/etc/fhem/out.classdef
attr cboard loglevel 5

define myboard ECMDDevice out
attr myboard loglevel 5

die out.classdef siehr so aus: set out0 cmd
{"chr(3).chr(1).chr(0).chr( 3 ^ 1 ^ 0)"}

Hast du nochmal etwas Zeit um mir hier weiterzuhelfen?

Vielen Dank im voraus.

volker

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Dr. Boris Neubert

                                             

Hallo Volker,

Am 16.05.2011 15:13, schrieb Volker:
> das pack hat's nicht gebracht. Aber ein weiteres sleep(1), vor dem
> schliessen der Schnittstelle hat's dann getan.

höchst merkwürdig. Aber Glückwunsch, daß es jetzt bei Dir geht. Ich bin
also nicht der Einzige, der beim Programmieren derartige Halluzinationen
hat...

> Jetzt muss ich das Fhem noch irgendwie beibringen.
> Kann ich in einer Klassendefinition mehrere Befehle nacheinander
> ausführen lassen?

Was meinst Du mit Befehle ausführen? Die Kommandodefinitionen werden zur
Laufzeit in einen String gewandelt, der dann an die Schnittstelle
gesendet wird. Wenn Die Schnittstelle mehrere 4-Byte-Sequenzen
aneinandergekettet versteht, kannst Du diese in einer Kommandodefinition
erzeugen lassen.

{ chr(%bla).chr(%blubb).chr(%foo).chr(%bla ^ %blubb ^ %foo).chr(%bla).
usw.... }

Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

                                             

Hallo,

Am 16.05.2011 17:12, schrieb Volker:
> im Logbuch: Undefined subroutine&main::EvalSpecials called at /usr/
> share/fhem/FHEM/67_ECMDDevice.pm line 171.

hast Du die Version komplett aus dem CVS abgerufen? Dieser Fehler sollte
nicht vorkommen.

> die out.classdef siehr so aus: set out0 cmd
> {"chr(3).chr(1).chr(0).chr( 3 ^ 1 ^ 0)"}

Bitte ohne Gänsefüßchen. Der Inhalt soll nicht wörtlich ausgegeben
sondern ausgewertet werden.

Grüße
Boris

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Guest

Originally posted by: <email address deleted>

On May 16, 5:23 pm, "Dr. Boris Neubert" wrote:
> Hallo,
>
> Am 16.05.2011 17:12, schrieb Volker:
>
> > im Logbuch: Undefined subroutine&main::EvalSpecials called at /usr/
> > share/fhem/FHEM/67_ECMDDevice.pm line 171.
>
> hast Du die Version komplett aus dem CVS abgerufen? Dieser Fehler sollte
> nicht vorkommen.
>
> > die out.classdef siehr so aus: set out0 cmd
> > {"chr(3).chr(1).chr(0).chr( 3 ^ 1 ^ 0)"}
>
> Bitte ohne Gänsefüßchen. Der Inhalt soll nicht wörtlich ausgegeben
> sondern ausgewertet werden.
>
> Grüße
> Boris

Hallo Boris,

ich denke ich habe von der Fhem webseite das debian package
installiert und nur die 66_ECMD.pm und die 67_ECMDDevice.pm aus dem
CVS.

Beide Varianten mit und ohne Gänsefüßchen erzeugen den gleichen Fehler.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Boris,

nach Installieren der Version aus dem CVS funktioniert es jetzt.
Ausser das Fhem jetzt nicht mehr automatisch mit dem PC startet.

Eine kleine unschönheit ist mir noch aufgefallen, es wird jedesmal
noch ein "LF" angehängt.

Die Relaiskarte ignoriert das aber.

Also habe ich jetzt meine Funktion.

Vielen Dank für deine Geduld und deine Hilfe.
Auch an Bernd für sein Angebot mit dem C-Programm.

MfG

Volker

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com