1-wire Fehler im Log seit Juli 2017

Begonnen von Charles, 09 August 2017, 22:47:00

Vorheriges Thema - Nächstes Thema

Charles

Hallo,
meine Temperatursensoren arbeiteten seit einem Update im Juli 2017 nicht mehr richtig. Es gab meterweise Fehlermeldungen dieser Art:
2017.07.31 20:33:23 1: OWTHERM: puffer_mitte has returned invalid data of length 10
2017.07.31 20:33:23 1: OWXTHERM_BinValues:  puffer_mitte: invalid data length, 0 instead of 9 bytes,  0 
2017.07.31 20:33:27 1: OWTHERM: puffer_ruecklauf has returned invalid data of length 10
2017.07.31 20:33:27 1: OWXTHERM_BinValues:  puffer_ruecklauf: invalid data length, 0 instead of 9 bytes,  0 
2017.07.31 20:33:31 1: OWTHERM: ofen_vorlauf has returned invalid data of length 10
2017.07.31 20:33:31 1: OWXTHERM_BinValues:  ofen_vorlauf: invalid data length, 0 instead of 9 bytes,  0 

Der eine Arduino brachte fhem nach 10 Min. zum Abstürzen, der andere Arduino funktionierte, allerdings gab er eine Menge Fehlermeldungen im Log aus.
Der Grund: OWX wurde überarbeitet und geändert. Das verursachte die Fehler. Stand so nirgendwo.
Nach längerer Recherche – ist so nirgendwo zu finden – fand ich glücklicherweise eine ganz einfache Lösung, die aber so bis jetzt nirgendwo steht:
Der Arduino-Eingang habe ich damals so eingebunden:
define <XXX> OWX <pin>
Ich änderte das so
define <XXX> OWX_ASYNC <pin>
... und die Fehlermeldungen haben aufgehört!
... und es gibt hier einen konstruktiven Beitrag mehr!
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Prof. Dr. Peter Henning

ZitatDer Grund: OWX wurde überarbeitet und geändert. Das verursachte die Fehler. Stand so nirgendwo.

Das ist einfach Unsinn, das Backend OWX.pm wurde in keiner Weise geändert.

Geändert wurden die Frontendmodule, auch OWTHERM. Diese laufen vollkommen unabhängig vom Backend.

Zitatfand ich glücklicherweise eine ganz einfache Lösung. define <XXX> OWX_ASYNC <pin>

Es steht jedem frei, das alte asynchrone OWX_ASYNC zu nutzen. Allerdings sind dessen Tage gezählt: Mit der endgültigen Freigabe des neuen Backends (siehe hier https://forum.fhem.de/index.php/topic,60460.255.html), das ebenfalls asynchrones Auslesen ermöglicht, wird das obsolet.

LG

pah


C0mmanda

Naja, so ganz unterschreiben kann ich das nicht.

Bei mir funktionierten die Frontendmodule OWID + OWTHERM nach einem regulären FHEM-Update auch nicht mehr ordnungsgemäß! (Eingebunden über OWX_ASYNC).
Grund waren wohl die Umbauten für "Next Generation". (Zumindest ist das mein Verdacht als Laie).

Erst nach einspielen der alten Versionen der Frontend-Module lief es wieder rund.
Updates habe ich seitdem eingestellt.

Grtz

Prof. Dr. Peter Henning

Zitat
Bei mir funktionierten die Frontendmodule OWID + OWTHERM nach einem regulären FHEM-Update auch nicht mehr ordnungsgemäß!

Das ist aber das genaue Gegenteil von dem, was "Charles" schreibt. Er behauptet ja, dass die neuen Frontendmodule nur mit OWX_ASYNC laufen.


ZitatNaja, so ganz unterschreiben kann ich das nicht.

Ich wusste nicht, dass diese Unterschrift erforderlich ist ...

LG

pah

Charles

wie schon gesagt: ich musste handeln, da fhem nach dem Update Fehlermeldungen ausgab und nach ein paar Minuten abstürzte.
OWX wurde nicht geändert, aber OWXTHERM.
Den Arduino binde ich jetzt mit OWX_ASYNC so ein:
#------------ Sensoren Ard2 ---------------------------------
define Input2 OWX_ASYNC 7
attr Input2 IODev FRM_Input2
attr Input2 buspower real
attr Input2 dokick 1

Das funktioniert jetzt fast ohne Fehlermeldungen.
Folgender Fehler taucht auf:
017.08.11 19:29:27 1: PERL WARNING: Use of uninitialized value $context in concatenation (.) or string at ./FHEM/21_OWTHERM.pm line 886.
2017.08.11 20:00:00 1: PERL WARNING: Wide character in print at fhem.pl line 1513.

Stört aber nicht weiter.
Ich hatte mich gefreut, daß ich eine Lösung für mich gefunden hab, da ich als Laie bei solch für mich kryptischen Fehlermeldungen nicht weiß, wo ich anfangen soll.

Grüße Charles
Raspberry · FB 7590 · CUL · FS20 · MAX · ESP

Prof. Dr. Peter Henning

Erstens kann man als "Laie" durchaus fragen, woran das liegt, Und zweitens sollte man sich dann etwas damit zurückhalten, irgendwelche wilden Behauptungen aufzustellen.

pah

silver-side

Habe gestern 18.08 mal Fhem update ausgeführt, seitdem sieht es genauso aus bei mir wie im 1 Post mit den Fehlermeldungen und Fhem lief nicht mehr stabil.
Nutze Arduino mega mit Firmata über Lan. Bin erstmal zur alten Owtherm zurück die läuft ohne Fehler.
Gibt es eine Erklärung was da los ist ?

Prof. Dr. Peter Henning

#7
OWX_ASYNC stammt ebenso wir das 1-Wire Firmata Interface und des FHEM-Firmata Modul von Norbert Truchsess - der das aber seit einiger Zeit nicht mehr wartet oder weiter entwickelt. Sieht man u.a. daran, dass das allgemeine Firmata-Modul von FHEM die neueste Firmata-Version _eben nicht_ unterstützt.

Offenbar treibt das 1-Wire Firmata etwas mit den Frontend-Daten, das den aktuellen Fontend-Modulen nicht gefällt. Diese sind aber strikt konform zum 1-Wire Standard.

Ich habe selbst kein 1-Wire Firmata in Betrieb, Muss erst einen entsprechenden Arduino flashen etc., und dann mit veralteter Software herumspielen. Also, Gemach: Zaubern kann ich nicht.

Alles Nutzern von  1-Wire Wirmata sei geraten, vorerst beim alten Software-Stand zu bleiben und diese Module vom Update auszuschließen.

LG

pah

tbr

Ist das noch aktuell hier? Wie soll ich mich verhalten?

Ich bekomme regelmäßig (1-2 mal am tag):
2017.12.10 16:02:15 1: OWTHERM: OWX_28_FF7DA5731622 has returned invalid data of length 10
2017.12.10 16:02:15 1: PERL WARNING: Use of uninitialized value $data[0] in ord at ./FHEM/21_OWTHERM.pm line 937.
2017.12.10 16:02:15 1: PERL WARNING: Use of uninitialized value $data[1] in ord at ./FHEM/21_OWTHERM.pm line 938.
2017.12.10 16:02:15 1: PERL WARNING: Use of uninitialized value $data[1] in ord at ./FHEM/21_OWTHERM.pm line 939.
2017.12.10 16:02:15 1: PERL WARNING: Use of uninitialized value $data[2] in ord at ./FHEM/21_OWTHERM.pm line 951.
2017.12.10 16:02:15 1: PERL WARNING: Use of uninitialized value $data[3] in ord at ./FHEM/21_OWTHERM.pm line 952.
2017.12.10 16:02:15 1: OWXTHERM_BinValues:  OWX_28_FF7DA5731622: invalid data length, 0 instead of 9 bytes,  0 
2017.12.10 16:07:15 1: OWTHERM: OWX_28_FF7DA5731622 has returned invalid data of length 10
2017.12.10 16:07:15 1: OWXTHERM_BinValues:  OWX_28_FF7DA5731622: invalid data length, 0 instead of 9 bytes,  0 
2017.12.10 16:09:09 3: querying Firmata Firmware Version
2017.12.10 16:09:09 3: Firmata Firmware Version: RCSwitchFirmata.ino V_2_06
2017.12.10 16:09:14 3: received String_data: Unknown pin mode
pin '8' is not configured for mode 'ONEWIRE' at FHEM/lib/Device/Firmata/Platform.pm line 784.


und FHEM ist eingefroren / freezed ..

Nur ein
#service fhem restart hilf auf der linux console..

2017.12.10 16:46:30 0: Featurelevel: 5.8
2017.12.10 16:46:30 0: Server started with 147 defined entities (fhem.pl:15482/2017-11-23 perl:5.020002 os:linux user:fhem pid:13257)
2017.12.10 16:46:41 3: querying Firmata Firmware Version
2017.12.10 16:46:41 3: Firmata Firmware Version: RCSwitchFirmata.ino V_2_06


auf dem Arduino Mega 2560 läuft der rcswitch (https://github.com/git-developer/RCSwitchFirmata) + (aus der firmata.h: )
  Firmata.h - Firmata library v2.6.2 - 2015-2-7
  Copyright (C) 2006-2008 Hans-Christoph Steiner.  All rights reserved.