[FHZ] Bad CRC message, skipping ...

Begonnen von rudolfkoenig, 13 Februar 2009, 15:06:06

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Originally posted by: <email address deleted>

Hallo

jetzt komme ich auch mit dieser Meldung wohl ein bißchen hinterher.
Allerdings habe ich keine Lösung für das Problem gefunden. Es wird von
einer "elv.pl" gesprochen in der die Lösung steckt, die findet man
aber nicht. Und es werden irgendwelche STTY Angaben angegeben (FAQ),
die keine Lösung sind. Mehr habe ich leider nicht gefunden.

Mein Problem: Ich hatte FHZ1000 Version 2.9a seit 2006 auf FreeBSD
laufen. Es rennt alles, auch alle Aktoren (Fernsteuerungen ELV/Conrad)
funktionieren einwandfrei. Habe dann 2008 auf die Version 4.2
geupdated, es lief weiter alles. Allerdings habe ich zu dem Zeitpunkt
keinerlei Aktoren mehr eingesetzt. Jetzt habe ich auf die aktuelle
Version 4.5 upgedated, da ich eben dran war und Aktoren in Betrieb
nehmen wollte. Mit allen Aktoren habe ich die oben genannte
Fehlermeldung, wenn ein Aktor Daten sendet. Dann habe ich
festgestellt, daß das auch schon mit der Version 4.2 war. Die Version
2.9a läuft dagegen einwandfrei.

Aus oben genanntem Grund (Versionswechsel) kann ich leider nicht
nachvollziehen, daß da plötzlich die Schnittstelle oder deren Handhabe
schuld sein soll. Meine Diagnose lautet eindeutig: An dem Programm
(jetzt FHEM statt FHZ1000) ist etwas geändert worden, was zu diesen
Problemen führt. Auch ein "strangetty" nützt überhaupt nichts. Dies
haben ja auch schon andere geschrieben.

Also lieber Rudolf König: Ich bitte um Angabe der Stelle wo dies eben
zwischen den Versionen geändert wurde, damit man Ihr wirklich gutes
Programm (Vielen Dank dafür) wieder zum Laufen bekommt. Schade, wenn
ich Ihr Programm nicht mehr nutzen könnte.

Falls ich wirklich eine Lösung übersehen habe, bitte ich mir die zu
nennen.

Dankeschön zusammen.

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

                                                   

> Also lieber Rudolf König: Ich bitte um Angabe der Stelle wo dies eben
> zwischen den Versionen geändert wurde,

Das Öffnen der Schnittstelle wurde vom Hauptprogramm ins Modul
(00_FHZ.pm, Zeile 238+) verlagert. Das Problem bei dieser Meldung ist
meist, dass auf der seriellen Schnittstelle irgendwelche Treiber eine
künstliche Verarbeitung durchführen, sowas wie NL -> CR+NL oder
ähnlich, fhem braucht die Daten aber "pur". Ich habe mit der Zeit
immer wieder zusätzliche Einstellungen eingebaut, um komische
Distributionen zu unterstützen. Mit strangetty ist dieser Kram, der
anderswo Probleme verursacht, ausgelagert worden, so dass ohne
strangetty in 4.5 die gleichen Einstellungen vom Programm vorgenommen
werden wie mit dem Version 2.9a.
-> Ich weiss nicht, was man in 4.5 anders machen muesste.

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

Dr. Boris Neubert

Originally posted by: <email address deleted>

Hallo Rudi

Danke für die schnelle Antwort.
Das mit dem 00_FHZ.pm habe ich gefunden. Allerdings bin ich nicht
weiter gekommen. Da sind ja ohne "strangetty" die gleichen Einträge
wie bei Version 2.9 drin. Andere hatten das ja auch schon gemerkt.
Aber wo hakt es denn nun!? Da die Version 2.9 einwandfrei läuft und
die Version 4.5 (bestimmt irgendwann früher) nicht? Am Betriebssystem
und drumrum kann es nicht liegen. Ich kann die Version 2.9 aufrufen --
> rennt hervorragend. Und die Version 4.5 auf dem gleichen System -->
geht nicht!
Hast Du noch eine Idee dazu?

Viele Grüße - Sigi
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~-
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

rudolfkoenig

                                                   

> Hast Du noch eine Idee dazu?

Bitte verbose auf 5 setzen, und die RAW Meldungen hier posten oder mir
direkt schicken. Daraus kann man ueblicherweise ablesen, welche Bits
verunstaltet wurden. Oder es stellt sich raus, das es was ganz anderes
ist.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~-

Dr. Boris Neubert

                                                   

> Hoffe es hilft was. Soll ich das auch noch mit Version 2.9 machen?

Ja, gerne. Es schaut so aus dass der 8-te Bit in Ordnung ist, dafuer
werden
irgendwelche Bytes verschluckt...
Kannst Du bei beidem den Output von "stty -a < /dev/fhz1000" mir
schicken?

Gruss,
  Rudi

P.S. Die "Reply" - Mail-Adresse tut nicht so recht.

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~-
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Guest

Originally posted by: <email address deleted>

Ich habe mal weiter probiert:

fhz1000 version 2.9a

# stty -a -f /dev/fhz1000
speed 9600 baud; 0 rows; 0 columns;
lflags: -icanon -isig -iexten -echo echoe -echok echoke -echonl
echoctl
        -echoprt -altwerase -noflsh -tostop -flusho -pendin -
nokerninfo
        -extproc
iflags: -istrip -icrnl -inlcr -igncr -ixon -ixoff ixany imaxbel ignbrk
        -brkint -inpck -ignpar -parmrk
oflags: -opost onlcr -ocrnl -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl clocal -cstopb -crtscts -
dsrflow
        -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ;
        eol2 = ; erase = ^?; erase2 = ^H; intr = ^C; kill = ^U;
        lnext = ^V; min = 0; quit = ^\; reprint = ^R; start = ^Q;
        status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W;


fhem version 4.5

# stty -a -f /dev/fhz1000
speed 9600 baud; 0 rows; 0 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
        -echoprt -altwerase -noflsh -tostop -flusho -pendin -
nokerninfo
        -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel -ignbrk
        brkint -inpck -ignpar -parmrk
oflags: opost onlcr -ocrnl -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -
dsrflow
        -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = ;
        eol2 = ; erase = ^?; erase2 = ^H; intr = ^C; kill = ^U;
        lnext = ^V; min = 1; quit = ^\; reprint = ^R; start = ^Q;
        status = ^T; stop = ^S; susp = ^Z; time = 0; werase = ^W;


Unterschiede

        -icanon -isig -iexten -echo -icrnl -ixon ignbrk
        -brkint -opost clocal

Auslöser war bei Einzelversuchen

        -icanon

Wenn ich jetzt "stty -f /dev/fhz1000 icanon" bei einem gestartetem
FHEM eingebe, funktioniert alles wunderbar. Nun wollte ich das
einbinden und habe in 00_FHZ.pm nach "... strangetty" folgendes
eingefügt.

  if($type && $type eq "freebsd") {
    $po->stty_icanon(0);
  }

Und dann in der Konfiguration "freebsd" dahinter eingefügt. Aber
leider geht es dann nicht. Habe ich da was falsch gedacht? Mit den
ganzen Einstellungen von "strangetty" geht es ja auch nicht.

Viele Grüße - Sigi

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

> Wenn ich jetzt "stty -f /dev/fhz1000 icanon" bei einem gestartetem
> FHEM eingebe, funktioniert alles wunderbar.

Muß natürlich "stty -f /dev/fhz1000 -icanon" heißen. Tschuldigung.
--~--~---------~--~----~------------~-------~--~----~
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

                                                   

> Muß natürlich "stty -f /dev/fhz1000 -icanon" heißen.

Wenn ich "stty -icanon"  und ein perl programm mit stty_icanon(0) mit
strace unter Linux vergleiche, dann sehe ich in beiden faellen

ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon -
echo ...}) = 0

Kannst Du das gleiche auch unter freebsd vergleichen?

Hier ein Miniprogramm:

require Device::SerialPort;
my $po = new Device::SerialPort("/dev/pts/x");
$po->stty_icanon(0);
$po->write_settings;

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

UliM

Originally posted by: <email address deleted>

> $po->stty_icanon(0);

Dumme Frage: Müßte das nicht statt
  $PortObj->stty_icanon(0);     # enable erase and kill characters
eben
  $PortObj->stty("-icanon");    # disable eof, erase and kill char
heißen. Ich bräuchte ja das DISABLE, nicht das ENABLE. Bei der Doku zu
Device::Serial habe ich aber nur gefunden, daß default auf DISABLE
steht und man mit "$PortObj->stty_icanon(0);" eben ENABLE'd. Direkt
DISABLE'n kann man nicht. Nur das mit dem "$PortObj->stty("-icanon");"
geht eben so auch nicht. Warum weiß ich nicht, habe keine Erfahrung
damit.

Und wegen dem "Funktioniert" noch eine Rückmeldung: Mit dem "-icanon"
funktioniert eben NICHT alles. Es gehen beispielsweise alle
Fernbedienungen - aber nur die OFF Funktion. ON geht nicht! Somit
möchte ich gerne mit allen unterschiedlichen Funktionen testen, es
reicht wohl doch nicht nur das "-icanon". Melde mich später wieder.

Viele Grüße - Sigi
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~-
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Guest

Originally posted by: <email address deleted>

On 14 Feb., 12:30, Rudolf Koenig wrote:
> > Muß natürlich "stty -f /dev/fhz1000 -icanon" heißen.
>
> Wenn ich "stty -icanon"  und ein perl programm mit stty_icanon(0) mit
> strace unter Linux vergleiche, dann sehe ich in beiden faellen
>
> ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon -
> echo ...}) = 0
>
> Kannst Du das gleiche auch unter freebsd vergleichen?
>
> Hier ein Miniprogramm:
>
> require Device::SerialPort;
> my $po = new Device::SerialPort("/dev/pts/x");
> $po->stty_icanon(0);
> $po->write_settings;

Nö, das kommt nicht, was ja auch nicht der Doku entsprechen würde.

$po->stty_icanon(0); ergibt icanon
und stty < -icanon ergibt -icanon

Und das sollte auch bei Linux rauskommen.
--~--~---------~--~----~------------~-------~--~----~
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,

sigi:
> Dumme Frage: Müßte das nicht statt
>   $PortObj->stty_icanon(0);     # enable erase and kill characters
> eben
>   $PortObj->stty("-icanon");    # disable eof, erase and kill char
> heißen.

Ehrlich gesagt ist mir das egal. Ein "stty raw" auf den Port, und
fertig. Wieso Systemtools nachbauen, wenn's einfacher geht?

--
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
 - -
Aufklärung:
  der Vorgang, bei dem ein Erwachsener mit Hilfe aller seiner Kenntnisse
  dem Kind ein Viertel von dem erzählt, was es schon weiß.

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

UliM

Originally posted by: <email address deleted>

> > Dumme Frage: Müßte das nicht statt
> >   $PortObj->stty_icanon(0);     # enable erase and kill characters
> > eben
> >   $PortObj->stty("-icanon");    # disable eof, erase and kill char
> > heißen.
>
> Ehrlich gesagt ist mir das egal. Ein "stty raw" auf den Port, und
> fertig. Wieso Systemtools nachbauen, wenn's einfacher geht?

Verstehe schon. Die Frage kam nur, weil Dein Programm das einschaltet
(ich habe noch nicht gefunden wo) und ich das aber aus brauchen würde.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~-
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Dr. Boris Neubert

Originally posted by: <email address deleted>

Ich habe mir jetzt ein shell script angelegt mit folgendem Inhalt. Das
rufe ich nach dem FHEM Start auf. Dann funktioniert wirklich alles,
auch die ON Sequenzen. Wie ich das in Dein Programm rein bekomme, weiß
ich nicht, da ich nicht alle Befehle in dem Device::Serial nachbilden
kann, ich die aber offensichtlich benötige.

stty -f /dev/fhz1000 \
        -icanon -isig -iexten -echo echoe -echok echoke -echonl
echoctl \
        -echoprt -altwerase -noflsh -tostop -flusho -pendin -
nokerninfo \
        -extproc \
        -istrip -icrnl -inlcr -igncr -ixon -ixoff ixany imaxbel ignbrk
\
        -brkint -inpck -ignpar -parmrk \
        -opost onlcr -ocrnl -oxtabs -onocr -onlret \
        cread cs8 -parenb -parodd hupcl clocal -cstopb -crtscts -
dsrflow \
        -dtrflow -mdmbuf

Wenn Du das noch irgendwie einbinden kannst ('ne Anleitung dazu) dann
wäre das klasse, ansonsten muß ich es eben so lassen. Vielleicht hilft
das ja auch dem einen oder anderen, der bis dato keine Lösung für das
Problem gefunden hat.

Viele Grüße und vielen Danke für die Hilfe - Sigi
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~-
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!