[FHZ] neues Modul 88_IPWE.pm

Begonnen von Tommi, 18 Mai 2008, 14:26:35

Vorheriges Thema - Nächstes Thema

Tommi

                                                     

Nachdem der ELV LAN-Wetterdatenempfänger(Details hier:http://
 www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=2 1508) für
die WS300 Sensoren endlich lieferbar war, habe ich mich gleich
draufgestürzt, ein FHEM-Modul zu zaubern.

Leider bin ich mit meinen Versuchen, dafür die Telnet-Schnittstelle zu
nutzen, auf Granit gestossen, denn weder als RAW-Socket noch mit
Net::Telnet ist es mir gelungen, die Loginprozedur abzuschliessen. Der
Username-Prompt wurde noch erkannt,aber nach Übergabe des Users blieb
das Modul hängen. Ein Nachfolgendes CRLF brachte zwar den Password
Prompt, aber dann wurde immer ein Fehlerhaftes Login angemeldet.
Vielleicht hat noch einer eine Idee, welche Telnet-Option man dafür
noch setzen muss, denn auf der Kommandozeile mit Standard-Telnet geht
es durch.

Nun gut, dann habe ich den einfacheren Weg gewählt und die Webseite
angezapft. Das Ergebnis ist im CVS.

Falls jemand das Telnet-Problem sich ansehen möchte, aber selber kein
Gerät hat, kann ich gerne auf Anfrage meines zeitweise nach aussen
freischalten.

Tommi
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

Guest

Originally posted by: <email address deleted>

Hi,

tommi:
> Nachdem der ELV LAN-Wetterdatenempfänger(Details hier:http://
>  www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=2 1508) für
> die WS300 Sensoren endlich lieferbar war

Das kann ich mit meinem Eigenbau-Projekt inzwischen auch ...

... nur die Zeit, eine Webseite und eine (geprüfte :-P) Platine dafür
zu braten, die fehlt aktuell. :-/

--
Matthias Urlichs  |  {M:U} IT Design @ m-u-it.de  |   smurf@smurf.noris.de
Disclaimer: Das Zitat wurde zufällig ausgewählt.  |   http://smurf.noris.de
 - -
Für seine Arbeit muß man Zustimmung suchen, aber niemals Beifall.
      -- Charles-Louis Baron de Montesquieu

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

rudolfkoenig

                                                   

> Falls jemand das Telnet-Problem sich ansehen möchte, aber selber kein
> Gerät hat, kann ich gerne auf Anfrage meines zeitweise nach aussen
> freischalten.

Telnet sendet gerne Control-Sequenzen am Anfang, um die Faehigkeiten
der anderen Seite auszuloten, siehe  RFC854. Vielleicht ist der
Wetterempfaenger beleidigt weil dein  Modul ihm nicht hoeflich
antwortet. Am einfachsten loest man das Problem, indem man eine
"normale" telnet Sitzung protokolliert, und die Anfangs-Sequenzen
wiederholt.

Gibt es einen Grund, warum der telnet-Protokoll besser waere, als http/
html? Wenn ja, dann sag mir wie ich helfen kann.

Gruss,
  Rudi
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

Guest

Originally posted by: <email address deleted>

Hi,

Rudolf Koenig:
> Telnet sendet gerne Control-Sequenzen am Anfang, um die Faehigkeiten
> der anderen Seite auszuloten, siehe  RFC854.

... und diverse Dinge einzustellen, wie zB "das Passwort bitte nicht
auf dem Bildschirm ausgeben".

> Vielleicht ist der Wetterempfaenger beleidigt weil dein  Modul ihm
> nicht hoeflich antwortet.

Mit Sicherheit.

> Am einfachsten loest man das Problem, indem man eine
> "normale" telnet Sitzung protokolliert, und die Anfangs-Sequenzen
> wiederholt.
>
Neenee, am einfachsten macht man das mit dem Perl-Modul Net::Telnet.

--
Matthias Urlichs  |  {M:U} IT Design @ m-u-it.de  |   smurf@smurf.noris.de
Disclaimer: Das Zitat wurde zufällig ausgewählt.  |   http://smurf.noris.de
 - -
Wer sich keine Annehmlichkeiten versagen kann,
wird sich nie ein Glück erobern.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

Tommi

                                                     

Hallo Matthias

>Das kann ich mit meinem Eigenbau-Projekt inzwischen auch ...
Interessant!!. Gibt es darüber was zu lesen bzw nachzubauen.
Vielleicht sogar mit einem Atmel und Sourcecode??
Gerne auch per PM.

Im übrigen ist dieser IPWE1 eigentlich nur eine Atmel-
Referenzimplemetierung des 32bit ARM AT91SAM7x mit einem zusätzlichen
Empfängermodul. Das Gute: Alle Leitungen, die man zum Programmieren
braucht, sind rausgeführt. Zusätzlich sind noch Pins für einen Keil
"ulink"-Debugger und die seriellen Debugports nach aussen geführt.
Theoretisch könnte man den Chip also löschen und mit was eigenem
Programmieren.
Bei keil.com oder elektronik-laden gibt es auch die passenden
Compiler, leider unerschwinglich für Privatleute (Liste 4600).

>
> Neenee, am einfachsten macht man das mit dem Perl-Modul Net::Telnet.

Das habe ich (wie im o.p. erwähnt) schon versucht. Offenbar fehlt die
richtige Telnetoption, oder das Teil ist wirklich nicht konform.
Folgendes kleine Testprogramm. Mit einigen Options habe ich schon
gespielt. Falls noch jemand einen Tipp hat...

#!/usr/bin/perl -w
use strict;
use Net::Telnet;

my $username='admin';
my $passwd='';
my $t = new Net::Telnet (-timeout => 10,
                          -prompt => '/IPWE1> $/',
                          #-binmode=>0,
                          #-telnetmode=>1
                          );
my $fh=$t->dump_log('telnet.log');

    $t->open("ipwe1");
   #    $t->option_accept(Dont=>Net::Telnet::TELOPT_ECHO,
   #                      #Wont=>Net::Telnet::TELOPT_ECHO
   #                     );
    #
    $t->waitfor('/Username: $/');
    $t->print($username);
    $t->waitfor('/Password: $/');
    $t->print($passwd);
my @output=$t->cmd("status");
print @output;
close ($fh);
$t->close;

Im Log sieht man dann:

< 0x00000: ff fd 03 ff  fe 01 ff fb  01
ÿý.ÿþ.ÿû.

> 0x00000: ff fc 03 ff  fd 01                                  Ã¿Ã¼.ÿý.

< 0x00000: 1b 5b 32 4a  0d 0a 49 50  57 45 20 31  20 54 65 6c  .
[2J..IPWE 1 Tel
< 0x00010: 6e 65 74 20  53 65 72 76  65 72 20 56  31 2e 30 30  net
Server V1.00
< 0x00020: 2c 20 70 6c  65 61 73 65  20 6c 6f 67  69 6e 2e 2e  .
please login..
< 0x00030: 2e 0d 0a 0d  0a 55 73 65  72 6e 61 6d  65 3a
20     .....Username:

> 0x00000: 61 64 6d 69  6e 0d 0a                               admin..

< 0x00000: 61                                                  a

Nach dem letztem "a" ist schluss und bricht mit Timeout bei
waitfor('Password') ab.

Tommi
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

rudolfkoenig

Originally posted by: <email address deleted>

Hi,

tommi:
> 20     .....Username:
>
> > 0x00000: 61 64 6d 69  6e 0d 0a                               admin..
>
> < 0x00000: 61                                                  a
>
> Nach dem letztem "a" ist schluss und bricht mit Timeout bei
> waitfor('Password') ab.
>
Das ist mit Sicherheit Unfug in der Implementierung auf der Gegenseite.
Versuchs mit einer kurzen Verzögerung nach jedem Zeichen.

--
Matthias Urlichs  |  {M:U} IT Design @ m-u-it.de  |   smurf@smurf.noris.de
Disclaimer: Das Zitat wurde zufällig ausgewählt.  |   http://smurf.noris.de
 - -
Jedesmal, wenn man seiner Angst wehrlos nachgibt, wird man älter.
      -- Hanna Schygulla

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

Guest

Originally posted by: <email address deleted>

Hi,

tommi:
> >Das kann ich mit meinem Eigenbau-Projekt inzwischen auch ...

> Interessant!!. Gibt es darüber was zu lesen bzw nachzubauen.

Nur runterzuladen; Nachbauen derzeit nur via Breadboard.

Aktuell habe ich noch das Problem, dass die Empfangsqualität noch zu
besch... ist; den Grund dafür muss ich noch suchen. :-/

> Vielleicht sogar mit einem Atmel und Sourcecode??

Jau. Klar. (Kommunikation seriell, bzw. via USB mit einem FTDI-Chip.)

> Bei keil.com oder elektronik-laden gibt es auch die passenden
> Compiler, leider unerschwinglich für Privatleute (Liste 4600).
>
Mit GCC und avrdude geht das zum Glück auch kostenlos. :-P

--
Matthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de
Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de
 - -
Southside Johnny prefers singing to sex.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

Tommi

                                                     

Hallo Matthias,

> > >Das kann ich mit meinem Eigenbau-Projekt inzwischen auch ...
> > Interessant!!. Gibt es darüber was zu lesen bzw nachzubauen.
>
> Nur runterzuladen; Nachbauen derzeit nur via Breadboard.
> Jau. Klar. (Kommunikation seriell, bzw. via USB mit einem FTDI-Chip.)
Das würde mich mal interessieren. Auf der Deiner HP habe ich nur nicht
die Stelle gefunden

> > Bei keil.com oder elektronik-laden gibt es auch die passenden
> > Compiler, leider unerschwinglich für Privatleute (Liste 4600).
>
> Mit GCC und avrdude geht das zum Glück auch kostenlos. :-P
Das ist der 32bit Atmel! Kostet bei R* auch nur 10Euro. Nur die
Bauform ist etwas "unfreundlich" für Privatleute.
Gibt's dafür auch schon einen GCC+averdude?
Bei Atmel selber habe ich nur den Verweis auf Eclipse gefunden.


Viele Grüße
Tommi

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

rudolfkoenig

Originally posted by: <email address deleted>

Hi,

tommi:
> Das würde mich mal interessieren. Auf der Deiner HP habe ich nur nicht
> die Stelle gefunden
>
http://matthias.urlichs.de/_/smurfhomevent/

Die kicad-Sourcen für den Platinenentwurf habe ich eben ins git-Archiv
übernommen.

> > Mit GCC und avrdude geht das zum Glück auch kostenlos. :-P
> Das ist der 32bit Atmel!

Hrmpf. Stimmt.

> Gibt's dafür auch schon einen GCC+avrdude?

Für das 32-bit-Tier gibt es sogar Linux.

Zum Programmieren gibt es leider nur ein Binary von AVR --
avrdude kann das (noch?) nicht. :-(

Mich interessiert das zum Glück eher weniger;

--
Matthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de
Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de
 - -
Never use one word when a dozen will suffice.
               -- Paul Herbig

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

Tommi

                                                     

>Das ist mit Sicherheit Unfug in der Implementierung auf der Gegenseite.
>Versuchs mit einer kurzen Verzögerung nach jedem Zeichen.

Ich geh' am Stock! Man muss wirklich mind. 1ms Pause zwischen jedem
Zeichen machen. Dann klappts auch mit der Password-Übergabe. Und das
bei einer 32bit-CPU
Die nächste Falle lauert bei den Kurzbefehlen. Das Kommando ist ein
Zeichen, das abgedruckte Semikolon muss man weglassen und die Sensor-
ID als BINÄR-Zahl (also chr(8) statt '8' für den Kombisensor)
eingeben, gefolgt von einem CRLF; und das ganze->Richtig, Byte für
Byte im 1ms Abstand.
Dann bekommt man die Werte ebenfalls binär zurück.

Tommi

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-

Guest

Originally posted by: <email address deleted>

Hi,

tommi:
> Ich geh' am Stock! Man muss wirklich mind. 1ms Pause zwischen jedem
> Zeichen machen. Dann klappts auch mit der Password-Übergabe. Und das
> bei einer 32bit-CPU

Das liegt nicht an der Geschwindigkeit der CPU, sondern an der
Unfähigkeit des Programmierers, mehr als das erste Zeichen, das er
da am Stück vom TCP-Kanal liest, auszuwerten.

> Die nächste Falle lauert bei den Kurzbefehlen. Das Kommando ist ein
> Zeichen, das abgedruckte Semikolon muss man weglassen und die Sensor-
> ID als BINÄR-Zahl (also chr(8) statt '8' für den Kombisensor)
> eingeben, gefolgt von einem CRLF; und das ganze->Richtig, Byte für
> Byte im 1ms Abstand.
> Dann bekommt man die Werte ebenfalls binär zurück.
>
Welch Unfug!

Ich wette, dass die Leute darüberhinaus nicht berücksichtigt haben, dass
das Telnet-Protokoll ein paar 8-Bit-Zeichen für sich braucht und dass man
die folglich entsprechend escapen muss. Von CR +/- LF ganz abgesehen.

Mir kommt diese Firmware noch verdammt unausgegoren vor.
Schick auf jeden Fall ein paar Bugreports da hin!

--
Matthias Urlichs  |  {M:U} IT Design @ m-u-it.de  |   smurf@smurf.noris.de
Disclaimer: Das Zitat wurde zufällig ausgewählt.  |   http://smurf.noris.de
 - -
Lieber anonymer Alkoholiker als stadtbekannter Säufer.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "FHZ1000 users on Linux" group.
To post to this group, send email to FHZ1000-users-on-unix@googlegroups.com
To unsubscribe from this group, send email to FHZ1000-users-on-unix-unsubscribe@googlegroups.com
For more options, visit this group at http://groups.google.com/group/FHZ1000-users-on-unix?hl=en
-~----------~----~----~----~------~----~------~--~-