FHEM Forum

FHEM => Sonstiges => Thema gestartet von: topfi am 08 Juli 2014, 13:36:31

Titel: Raspi: echo auf /dev/ttyACM0 wird durch plotfork aktiviert -> CUL-Probleme
Beitrag von: topfi am 08 Juli 2014, 13:36:31
Hallo,

im Anfängerforum hatte niemand eine Idee zu diesem Problem. Jetzt habe ich dieses Unterforum als das Richtige ausgemacht. Sollte ja irgendwie die DevIo.pm und die fhem.pl betreffen.

Kurze Beschreibung: Raspi mit Raspian und CUL 868 V3 im slowRF-Betrieb am USB. Nach einem Reboot des Raspi (nur dann) wird echo auf /dev/ttyACM0  zunächst richtig auf "off" gesetzt. Das Auslösen von plotfork setzt das jedoch auf "on". Danach klappt die Kommunikation zum CUL nicht mehr.

Näheres siehe hier: http://forum.fhem.de/index.php/topic,13224.msg181506.html#msg181506  (http://forum.fhem.de/index.php/topic,13224.msg181506.html#msg181506)

Was kann ich dagegen tun? Auf dem Raspi läuft außer fhem nur samba, ein mpd/mpc (für Webradio im Serverraum, nutze ich momentan gar aber gar nicht) und der Apache2, der mittels mod-proxy die fhem Seiten mit ssl ausliefert.
Titel: Antw:Raspi: echo auf /dev/ttyACM0 wird durch plotfork aktiviert -> CUL-Probleme
Beitrag von: rudolfkoenig am 08 Juli 2014, 20:12:18
Manche Linux Distributionen haben die Angewohnheit, nach einem close die Parameter der seriellen Schnitstelle auf die Standardeinstellungen zurueckzustellen, selbst dann, wenn weitere Prozesse diese Schnittstelle noch offen haben. Und so ein close passiert beim Beenden des geforkten Prozesses automatisch.

Ich sehe zwei Loesungen:
- nach dem Beenden des geforkten Prozesses in FHEM die Parameter zurueckzusetzen
- Linux diese doofe Angewohnheit auszutreiben.

Die erste Loesung ist relativ aufwendig, und hat vermutlich Nebeneffekte. Weiterhin betrifft das Problem nicht alle Benutzer, das ist hier die erste Meldung. Kannst Du bitte pruefen, ob meine Theorie richtig ist, indem du in FHEM/01_FHEMWEB.pm die Zeile
exit if(defined($hash->{pid}));
auskommentierst?
Titel: Antw:Raspi: echo auf /dev/ttyACM0 wird durch plotfork aktiviert -> CUL-Probleme
Beitrag von: topfi am 09 Juli 2014, 16:24:09
Danke für die hilfreiche Antwort. Ich probiere das, sobald ich kann, vielleicht noch heute Abend. Bin noch etwas müde und habe Angst, aus Versehen 7:1 in die 01_FHEMWEB.pm zu schreiben.  :D :D :D
Übrigens wird man ein nach Auftreten des Fehlers manuell per Konsole deaktiviertes echo wieder aktiviert, wenn man erneut forkt.

Setzt man jedoch nach dem Auftreten des Fehlers (nur dann, vorher funktioniert das nicht) den CUL zurück, dann initialisiert die Schnittstelle neu und richtig und der Fehler kommt vor dem nächsten reboot nicht mehr wieder.


Am liebsten wäre mir auch Lösung zwei. Allerdings stecke ich nicht sooo tief in der Materie, dass ich wüßte, wo in Debian bzw. Raspian global die Eigenschaften der Schnittstellen definiert werden.
Titel: Antw:Raspi: echo auf /dev/ttyACM0 wird durch plotfork aktiviert -> CUL-Probleme
Beitrag von: topfi am 09 Juli 2014, 20:50:32
So, ich habe das eben ausprobiert: Ganz klares Ergebnis.

Nach dem Auskommentieren der Zeile und Aktivieren von plotfork wird das echo nicht mehr aktiviert. Du scheinst also recht zu haben mit Deiner Vermutung. Am besten wäre es, das Problem an der Ursache (also im Linux) und nicht am Symptom (FHEM) zu lösen, denn fork ist sicher nur eine von mehreren Möglichkeiten. Leider fehlt mir dazu das knowhow. Was außer dem fork kann denn noch ein close auslösen?

Nach dem Auskommentieren der Zeile standen übrigens im Log diverse Timeouts der PRESENCE-Module und des HMLAN-Adapters. Aber das scheint ja erklärbar, wenn da ein exit rauskommentiert wird.

Dass das noch nicht von anderen gemeldet wurde, kann an der speziellen Konstellation (Raspi mit CUL an USB, plotfork aktiviert, slowRF-Mode mit IT-Dosen usw.) liegen. Und geäußert hat sich das ja nur nach diversen reboots, die auch nicht jeder regelmäßig macht, und den CUL-Problemen danach, die durch ein Rücksetzen des CULs bis zum nächsten reboot ja erstmal behoben sind. Nicht geschaltet haben tatsächlich nur die Intertechno-Dosen. Bei den FS20-ähnlichen Lott-Antrieben und dem EM1000 gab es zwar ein aar Fehlermeldungen, aber die funktionierten erstmal weiter. Von solch einer Symptomatik auf die Einstellungen der Schnittstelle zu kommen, war auch hier eher Zufall.
Titel: Antw:Raspi: echo auf /dev/ttyACM0 wird durch plotfork aktiviert -> CUL-Probleme
Beitrag von: frank am 15 Juli 2014, 18:45:09
hallo topfi,

du bist nicht alleine. ich habe wohl ein ähnliches problem. bisher habe ich hier gepostet http://forum.fhem.de/index.php/topic,25257.0.html (http://forum.fhem.de/index.php/topic,25257.0.html).

mein system: fb7390 (fw 06.04.) ,cul868v3 (fw1.58) an der 7390 über aktiven hub im homematic-mode, der ab und zu it schaltet. leider kann ich den fehler noch nicht so schön reproduzieren wie du. wenn er auftaucht, aber immer beim it senden.

einstellungen
attr global nofork 0
attr WEB plotfork 1


mein log bei fehler
2014.07.09 21:06:29.196 4: CUL_send:  cul868As 0A 09 8002 1ACE1F 52C4DF 00
2014.07.09 21:08:38.662 4: CUL_send:  cul868As 0B 0A 9440 AAAAAA AAAAAA 0001
2014.07.09 21:33:53.061 4: CUL_send:  cul868is FF 00 0F00 0FFF 
2014.07.09 21:33:53.481 4: CUL_send:  cul868is FF 00 FFF0 0FFF 
2014.07.09 21:33:54.088 4: CUL_Parse: cul868 i sF F0 0FFF 00FFF 
2014.07.09 21:33:54.474 3: cul868: Unknown code isff00fff00fff, help me!
2014.07.09 21:33:54.483 4: CUL_Parse: cul868 i sF F0 00F0 00FFF 
2014.07.09 21:33:54.563 3: cul868: Unknown code isff000f000fff, help me!
2014.07.09 21:33:54.769 4: CUL_Parse: cul868 i sF F0 0FFF 00FFF 
2014.07.09 21:33:54.845 3: cul868: Unknown code isff00fff00fff, help me!
2014.07.09 21:33:55.110 4: CUL_Parse: cul868 i sF F0 0FFF 00FFF 
2014.07.09 21:33:55.502 3: cul868: Unknown code isff00fff00fff, help me!


edit:
mir ist noch eingefallen, dass ich vor einiger zeit mit einem cul433v3 (fw1.58) der nur im slowrf-mode auch an der 7390 betrieben wurde folgendes fehlerbild hatte, dass auch nur hin und wieder auftauchte. da es um echo probleme geht, würde das log gut passen.

2014-04-21_15:47:57 cul433 UNKNOWNCODE 006BA422
2014-04-21_15:47:58 cul433 UNKNOWNCODE ? (006BA422 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:48:58 cul433 UNKNOWNCODE ? (? (006BA422 is utA08265065A15 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:49:11 Thermostat.Bad.OG T: 14.1
2014-04-21_15:49:11 cul433 UNKNOWNCODE ? (? (? (006BA422 itA02C64164CE9 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:50:01 cul433 UNKNOWNCODE ? (? (? (? (006BA4A Z E G MtA08265065A14 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:50:07 cul433 UNKNOWNCODE ? (? (? (? (? (006BtA02C64164CE8 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:51:03 Thermostat.Bad.OG temperature: 13.9
2014-04-21_15:51:03 cul433 UNKNOWNCODE ? (? (? (? (? (? (0tA02C639632E8 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:52:01 Thermostat.Bad.OG T: 13.9
2014-04-21_15:52:01 Thermostat.Bad.OG temperature: 14.1
2014-04-21_15:52:02 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA02C64164CE7 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:52:02 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA08265065A14 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:52:58 Thermostat.Bad.OG T: 14.1
2014-04-21_15:52:58 cul433 UNKNOWNCODE ? (? (? (? (? (? (A Z E G MtA02C64164CE8 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:53:03 Thermostat.AZ temperature: 15.1
2014-04-21_15:53:03 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA08365165C15 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:53:54 Thermostat.Bad.OG temperature: 13.9
2014-04-21_15:53:54 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA02C639632E8 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:54:05 Thermostat.AZ T: 15.1
2014-04-21_15:54:05 Thermostat.AZ temperature: 15.0
2014-04-21_15:54:05 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA08265065A11 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:54:52 Thermostat.Bad.OG T: 13.9
2014-04-21_15:54:52 Thermostat.Bad.OG temperature: 14.1
2014-04-21_15:54:52 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA02C64164CE9 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-21_15:55:06 Thermostat.AZ T: 15.0
2014-04-21_15:55:07 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA08265065A15 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x


2014-04-27_13:41:04 cul433 UNKNOWNCODE 001277BD
2014-04-27_13:41:05 cul433 UNKNOWNCODE ? (001277BD is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:41:34 cul433 UNKNOWNCODE ? (? (001277BD is utA0826696640C is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:42:35 cul433 UNKNOWNCODE ? (? (? (001277BD itA0826696640E is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:42:59 cul433 UNKNOWNCODE ? (? (? (? (001277A Z E G MtA02D675678E4 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:43:36 cul433 UNKNOWNCODE ? (? (? (? (? (0012tA0826696640C is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:43:57 cul433 UNKNOWNCODE ? (? (? (? (? (? (0tA02D675678E4 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:44:36 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA08266966408 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:44:54 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA02D675678E6 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:45:51 cul433 UNKNOWNCODE ? (? (? (? (? (? (A Z E G MtA02D675678E5 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:46:37 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA0826696640E is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:46:49 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA02D675678E4 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:48:44 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA02D675678E6 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:49:37 cul433 UNKNOWNCODE ? (? (? (? (? (? (?tA0826696640C is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x
2014-04-27_13:49:41 cul433 UNKNOWNCODE ? (? (? (? (? (? (A Z E G MtA02D675678E6 is unknown) Use one of B C F i A Z E G M K R T V W X e f m l t u x


gruss frank
Titel: Antw:Raspi: echo auf /dev/ttyACM0 wird durch plotfork aktiviert -> CUL-Probleme
Beitrag von: topfi am 16 Juli 2014, 12:42:59
Immerhin, das läßt ja hoffen. Insbesondere, da Du mit der FB ja ein ganz anderes Stück Hardware benutzt, läßt sich das vielleicht innerhalb FHEM lösen und ist nicht Pi-spezifisch.

Im Moment habe ich plotfork deaktiviert und diese echo-Probleme am CUL nicht mehr. Dafür ist der fhem-Prozess dann manchmal so ausgelastet, dass mein HMLAN-Adapter nicht auf die Keep alives reagiert und ich kriege sporadische disconnects. Zum Glück hat das bei Homematic keine negativen Auswirkungen auf die Funktion, aber schön ist es trotzdem nicht. Schließlich betreibe ich Keymatic und Alarmanlage (mit der nicht zu unterschätzenden Eigenbausirene :D) darüber.

Ich würde mich sehr freuen, wenn jemand eine Idee hat, wie man der /dev/ttyACM0 Schnittstelle das echo dauerhaft abgewöhnen kann.