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>

Hallo,
ichbin sehr an der Nutzung von FHEM interessiert, im Moment betreibe
ich mehrere Relaiskarten von Conrad (Conrad 8fach-Relaiskarte 24 V/DC
7 A Baustein 8 Relaisausgänge, Best.-Nr.: 197720 - 62) mit einem
eigenen Programm unter Windows. Da ich leider keine Erfahrung mir PERL
habe, wollte ich an dieser Stelle fragen ob jemand bereits so eine
Karte einsetzt. Das Protokoll ist sehr einfach vielleicht kann und
will, mir auch jemand helfen damit ich diese Karten selbst einbinden
kann.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Dr. Boris Neubert

                                             

Hallo Volker,

Am 23.03.2011 18:27, schrieb Volker:
> ichbin sehr an der Nutzung von FHEM interessiert, im Moment betreibe
> ich mehrere Relaiskarten von Conrad (Conrad 8fach-Relaiskarte 24 V/DC

die Karte wird über ein textbasiertes Protokoll per serieller
Schnittstelle angesteuert? Dann verwende ECMD/ECMDDevice als Gerät
(CSV-Version von fhem; siehe dann dort Online-Hilfe).

Grüße,
Boris

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Dr. Boris Neubert

                                             

Am 23.03.2011 20:24, schrieb Boris Neubert:
> die Karte wird über ein textbasiertes Protokoll per serieller
> Schnittstelle angesteuert? Dann verwende ECMD/ECMDDevice als Gerät
> (CSV-Version von fhem; siehe dann dort Online-Hilfe).

Nachtrag: ich wurde gerade freundlicherweise daraufhingewiesen, dass ich
die Doku noch nicht aktualisiert habe. Also

Fuer serielle Schnittstellen lautet die Definition nicht

define AVRNETIO ECMD telnet IPAdresse:Port

sondern

define AVRNETIO ECMD serial SerialDevice

z.B.

define AVRNETIO ECMD serial /dev/ttyS0

Gruesse,
Boris

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Guest

Originally posted by: <email address deleted>

On 24 Mrz., 20:32, "Dr. Boris Neubert" wrote:
> Am 23.03.2011 20:24, schrieb Boris Neubert:
>
> > die Karte wird über ein textbasiertes Protokoll per serieller
> > Schnittstelle angesteuert? Dann verwende ECMD/ECMDDevice als Gerät
> > (CSV-Version von fhem; siehe dann dort Online-Hilfe).
>
> Nachtrag: ich wurde gerade freundlicherweise daraufhingewiesen, dass ich
> die Doku noch nicht aktualisiert habe. Also
>
> Fuer serielle Schnittstellen lautet die Definition nicht
>
> define AVRNETIO ECMD telnet IPAdresse:Port
>
> sondern
>
> define AVRNETIO ECMD serial SerialDevice
>
> z.B.
>
> define AVRNETIO ECMD serial /dev/ttyS0
>
> Gruesse,
> Boris
Danke für die Tipps, ich werde das dann am WE mal testen wenn ich
wieder zu Hause bin.

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

On Mar 24, 8:32 pm, "Dr. Boris Neubert" wrote:
> Am 23.03.2011 20:24, schrieb Boris Neubert:
>
> > die Karte wird über ein textbasiertes Protokoll per serieller
> > Schnittstelle angesteuert? Dann verwende ECMD/ECMDDevice als Gerät
> > (CSV-Version von fhem; siehe dann dort Online-Hilfe).
>
> Nachtrag: ich wurde gerade freundlicherweise daraufhingewiesen, dass ich
> die Doku noch nicht aktualisiert habe. Also
>
> Fuer serielle Schnittstellen lautet die Definition nicht
>
> define AVRNETIO ECMD telnet IPAdresse:Port
>
> sondern
>
> define AVRNETIO ECMD serial SerialDevice
>
> z.B.
>
> define AVRNETIO ECMD serial /dev/ttyS0
>
> Gruesse,
> Boris

Hallo Boris,
ich stehe im Moment voll auf dem Schlauch. Kannst du mir einen Link zu
der Online-Hilfe schicken?

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Dr. Boris Neubert

                                             

Hallo Volker,

Am 26.03.2011 16:01, schrieb Volker:
> ich stehe im Moment voll auf dem Schlauch. Kannst du mir einen Link zu
> der Online-Hilfe schicken?

hast Du Dir die CVS-Version von fhem gezogen? Siehe
http://fhem.de/fhem.html im Abschnitt "Download".

Dort findest Du die Beschreibung des Moduls in docs/commandref.html.

Grüße,
Boris

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Guest

Originally posted by: <email address deleted>

On Mar 26, 6:23 pm, Boris Neubert wrote:
> Hallo Volker,
>
> Am 26.03.2011 16:01, schrieb Volker:
>
> > ich stehe im Moment voll auf dem Schlauch. Kannst du mir einen Link zu
> > der Online-Hilfe schicken?
>
> hast Du Dir die CVS-Version von fhem gezogen? Siehehttp://fhem.de/fhem.htmlim Abschnitt "Download".
>
> Dort findest Du die Beschreibung des Moduls in docs/commandref.html.
>
> Grüße,
> Boris
Hallo Boris,

danke, jetzt hab ichs.
Aber da ich Fhem auf meiner FB 7270 leider nicht ans laufen bekomme,
versuche ich jetzt mal Fhem auf meiner
TeraStation zu installieren. Ich hab das jetzt soweit am laufen bis
auf seriellen Port usw.. Autostart muss ich auch noch einrichten.

Am liebsten würde ich die Karten weiter über meinen ComServer von W&T
betreiben, ich glaube das probiere ich dann mal lieber später wenn
die Basics mal laufen, beziehungsweise ich mal die Basics verstanden
habe.

Ich werde bestimmt nochmal auf dich zurückkommen wenn ich darf.

MfG

Volker

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Guest

Originally posted by: <email address deleted>

On 26 Mrz., 18:23, Boris Neubert wrote:
> Hallo Volker,
>
> Am 26.03.2011 16:01, schrieb Volker:
>
> > ich stehe im Moment voll auf dem Schlauch. Kannst du mir einen Link zu
> > der Online-Hilfe schicken?
>
> hast Du Dir die CVS-Version von fhem gezogen? Siehehttp://fhem.de/fhem.htmlim Abschnitt "Download".
>
> Dort findest Du die Beschreibung des Moduls in docs/commandref.html.
>
> Grüße,
> Boris

Hallo Boris,

ich bins schon wieder. Wie kann ich mit "get raw "
im command Teil bestimmte ASCII zeichen senden? So wäre z.B. ein Set
commando bei den Relaiskarten asc(3)+asc(1)+asc(x)+XOR über dier
ersten bytes.
schön wäre auch wenn das xor berechnet werden könnte. Ich habe
wirklich noch keinen Plan wie das funktionieren soll. Muss ich jeden
Befehl vorher erstellen?
Gibt es nicht eine etwas ausführlichere Hilfe.

Sorry für die vielen Fragen. Aber ich möchte das wirklich verstehen.

MfG

Volker

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.

Dr. Boris Neubert

                                             

Hallo Volker,

Am 28.03.2011 19:22, schrieb Volker:
> im command Teil bestimmte ASCII zeichen senden? So wäre z.B. ein Set
> commando bei den Relaiskarten asc(3)+asc(1)+asc(x)+XOR über dier
> ersten bytes.

Du musst die Berechnung in Perl machen. Du definierst das set-Kommando
in der Klassendefinition wie folgt:

set switchon cmd { }
set switchon params x

und rufst es nachher mit

set MyRelaisCard switchon 2

auf.

ist eine Liste von Perl-Kommandos, die den ASCII-String
zurückgibt, den Du oben beschrieben hast. In dem kannst
Du %x verwenden, welches dann vor Auswertung des Perl-Kommandos durch
den Wert von x ersetzt wird.

Mit

set switchon cmd { "%x" }

erzeugt das obige set-Kommando als Rückgabewert den String 2.

Wie Du Deine Zeichenkette in Perl erzeugt, habe ich gerade nicht parat.

Grüße,
Boris

--
Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe FHEM users beigetreten sind.
Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine E-Mail an fhem-users@googlegroups.com.
Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an fhem-users+unsubscribe@googlegroups.com.
Besuchen Sie die Gruppe unter http://groups.google.com/group/fhem-users?hl=de, um weitere Optionen zu erhalten.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Guest

Originally posted by: <email address deleted>

Hallo Boris,

nach langen hin und her probieren muss ich dich nochmal belästigen.

Ich habe jetzt versucht mir ein wenig Perl beizubringen. Ich habe ein
kleines Script geschrieben was unter Windows funktioniert.
Sobald ich es aber unter Linux (Ubuntu 10.10) laufen lasse, ist die
zweite Ausgabe nicht mehr korrekt und es werden 2 Zeichen zuviel
übertragen.

Ich hoffe du oder sonst jemand kann mir hier weiterhelfen.

Hier mal das Script:

use strict;
use warnings;

my $OS;
my $PortName = $ARGV[0];
my $count_out = 0;
my $PortObj;
my $out = 0;
my $x = $ARGV[1];

BEGIN {
        $OS = ($^O eq "MSWin32") ? 1 : 0;
      if ($OS) {
            eval "use Win32::SerialPort";
       die "$@\n" if ($@);
        }
        else {
            eval "use Device::SerialPort";
       die "$@\n" if ($@);
        }
}
# End BEGIN

if ($OS) {
    $PortObj = Win32::SerialPort->new ($PortName);
}
else {
    $PortObj = Device::SerialPort->new ($PortName);
}
die "Can't open serial port $PortName: $^E\n" unless ($PortObj);

  $PortObj->user_msg("ON");
  $PortObj->databits(8);
  $PortObj->baudrate(19200);
  $PortObj->parity("none");
  $PortObj->stopbits(1);
  $PortObj->handshake("none");
  $PortObj->write_settings || undef $PortObj;
  $|++; # force auto flush of output buffer

$out = chr(1).chr(1).chr(1).chr((1 ^ 1 ^ 1));
  $count_out = $PortObj->write($out);
  warn "write failed\n"         unless ($count_out);
  warn "write incomplete\n"     if ( $count_out != length($out) );
  sleep(1);

$out = chr(3).chr(1).chr($x).chr((3 ^ 1 ^ $x));

  $count_out = $PortObj->write($out);
  warn "write failed\n"         unless ($count_out);
  warn "write incomplete\n"     if ( $count_out != length($out) );

# Close port
$PortObj->close || die "failed to close $ARGV[0]";

Danke im voraus für jede Hilfe/Anregung.

Volker

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

Dr. Boris Neubert

                                             

Hallo,

Am 14.05.2011 18:57, schrieb Volker:
> my $out = 0;

$out ist nachher ein String! Du brauchst es hier nicht zu
initialisieren, und schon gar nicht mit 0.

> $out = chr(1).chr(1).chr(1).chr((1 ^ 1 ^ 1));

Warum xorst Du drei Einsen?

> $out = chr(3).chr(1).chr($x).chr((3 ^ 1 ^ $x));

Warum xorst Du drei 3 mit 1 mit $x?

Was steht in $x? Was steht in $out? print "<$out>\n";

Viele 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 14, 7:18 pm, "Dr. Boris Neubert" wrote:
> Hallo,
>
> Am 14.05.2011 18:57, schrieb Volker:
>
> > my $out = 0;
>
> $out ist nachher ein String! Du brauchst es hier nicht zu
> initialisieren, und schon gar nicht mit 0.
>
> > $out = chr(1).chr(1).chr(1).chr((1 ^ 1 ^ 1));
>
> Warum xorst Du drei Einsen?
>
> > $out = chr(3).chr(1).chr($x).chr((3 ^ 1 ^ $x));
>
> Warum xorst Du drei 3 mit 1 mit $x?
>
> Was steht in $x? Was steht in $out? print "<$out>\n";
>
> Viele Grüße,
> Boris

Hallo Boris,

danke für die schnelle Antwort. Die Zeile mit my $out = 0 ist von
meinen Debug-Versuchen .

Die drei Einsen sind ein Initialisierungsstring, gut xoren hätte ich
mir hier sparen können.

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.

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.

Volker

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

Dr. Boris Neubert

                                             

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

--
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>

Hallo Volker,
ich habe mir vor einigen Jahren zwei dieser Relaiskarten gegönnt.
Allerdings nur zum Basteln, ohne ernsthaft Geräte damit zu schalten.
Ich steuerte die Karten über RS232 mit einem C-Programm unter SUSE
Linux. Soweit ich mich erinnere, konnte ich über Parameter beim Aufruf
des Programms die Zustände steuern. Das wäre also ideal, um es von
anderen Programmen aus aufzurufen.

Wenn Interesse besteht, dann bitte melden. Ich werde mich dann auf die
Suche nach dem Programm machen.

Viele Grüße
Bernd

On 14 Mai, 18:57, Volker wrote:
>
> Danke im voraus für jede Hilfe/Anregung.
>
> Volker

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

Guest

Originally posted by: <email address deleted>

On May 14, 8:12 pm, 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 (siehehttp://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,

das pack hat's nicht gebracht. Aber ein weiteres sleep(1), vor dem
schliessen der Schnittstelle hat's dann getan.

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

MfG

Volker

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