FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: optimizer am 11 Dezember 2014, 00:09:55

Titel: GPIO4 Status trotz Fehler
Beitrag von: optimizer am 11 Dezember 2014, 00:09:55
Der Status eines DS18B20 Sensor (von 10) zeigt immer den letzten Temperaturwert als state bzw. userreading an, obwohl der Zähler unter failures auf Probleme hinweist.
define Puffer_Vorlauf GPIO4 28-00...
attr Puffer_Vorlauf event-on-change-reading Temp1
attr Puffer_Vorlauf model DS18B20
attr Puffer_Vorlauf stateFormat {sprintf ("%.1f", ReadingsVal("$name","temperature",0))."°C"}
attr Puffer_Vorlauf userReadings Temp1 { sprintf("%.1f", ReadingsVal("$name","temperature",0)) }

Readings:
Temp1           22.4    2014-12-10 23:53:19
failures          1468   2014-12-10 23:53:19
state         T: 22.437   2014-12-07 22:28:55
temperature  22.437    2014-12-07 22:28:55

Mit dem userReading sollte doch eigentlich 0 als Wert von Temp1 ausgegeben werden ,wenn kein Wert gefunden wird - also doch auch bei einem Fehler??

Gruß
Karlheinz
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Wzut am 11 Dezember 2014, 11:40:41
das müssen nicht unbedingt echte Fehler sein , lies mal unter http://forum.fhem.de/index.php/topic,24176.0.html meinen Beitrag vom 26. Juli
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: optimizer am 11 Dezember 2014, 22:17:24
Hallo Wzut,
in dem erwähnten Beitrag sprichst du von sporadischen Fehlern. In meinem Fall wird der Sensor leider auch nicht mehr vom Betriebssystem (ls /sys/bus/w1/devices) erkannt. Trotzdem wird die Temperatur seit dem letzten Neustart v. 7.12.14 22:28 angezeigt.
Wie kann auch im Status, bzw. in Temp1 der Fehler angezeigt werden?
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Wzut am 12 Dezember 2014, 08:16:12
ah , ok - dann teste doch mal die angehängte Version , so nutze ich z.Z. das GPIO4 Modul.
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: optimizer am 12 Dezember 2014, 18:18:27
Beim Starten wird nun Temperatur u. Zeit angezeigt:
s. Anhang
Nach einigen Minuten verschwindet die Uhrzeit neben der Temperatur.

es kommt die Meldung:
Use of uninitialized value in numeric gt (>) at ./FHEM/58_GPIO4.pm line 148, <DATA> line 2.
Use of uninitialized value in numeric lt (<) at ./FHEM/58_GPIO4.pm line 149, <DATA> line 2.

Bei nicht angeschlossenen Sensoren sieht das nun gut aus:
Temp1 0.0
state Error


Bei nicht funktionierenden Sensoren sieht das immer noch so aus:
Temp1 18.9 2014-12-12 17:59:28
failures   3930  2014-12-12 17:27:10
state  Error 2014-12-12 17:59:28
temperature 18.875 2014-12-12 17:22:06


Bei funktionierende Sensoren hat sich auch etwas geändert:
state T: 35.7 &deg;C ▴ | 17:41
Die Temperaturen werden nun mit nur einer Nachkommastelle angezeigt (find ich gut), aber mit Zeichensalat daneben.
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Wzut am 12 Dezember 2014, 18:31:51
Zitat von: optimizer am 12 Dezember 2014, 18:18:27

Bei nicht funktionierenden Sensoren sieht das immer noch so aus:
state  Error 2014-12-12 17:59:28

## snipp ###

aber mit Zeichensalat daneben.

a. na da hast doch deinen Fehler im state das wolltest du doch
b. das ist kein Zeichensalat sondern ein kleines Dreieck mit der Spitze nach oben oder unten - damit hatte ich mir eine Trendanzeige gebastelt  ->
Spitze nach oben : Temp ist gestiegen seit der letzter Messung
Spitze nach unten : Temp ist  gefallen
ganz ohne  : Temperatur ist gleich geblieben

Aber wenn dich das stört : stateFormat ist dein Freund :) bzw. da du ja auch Developer Status hast müsste es für dich ja ein leichtes sein selbst Hand anzulegen an den paar Zeilen Perl ....
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Prof. Dr. Peter Henning am 12 Dezember 2014, 22:51:06
Newbie als Developer ? Und dann gleich von "Zeichensalat" schreiben ?
Nu ja. Wird sich wohl jemand etwas dabei gedacht haben.

Mein Tipp: http://books.google.de/books/about/Taschenbuch_Multimedia.html?hl=de&id=9PLa46wiYV8C, darin findet man eine ganze Menge über Unicode.

pah
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: optimizer am 13 Dezember 2014, 00:50:44
Ja, heutzutage bekommt wirklich jeder einen Developer Titel.

@Wzut
Deine Änderungen sind genau das was ich wollte und sogar noch mehr mit der Zeichensalat-Idee.  ;) - Danke!
Allerdings hatte ich nicht verstanden, wieso bei einem Sensor das "failures"-Readings nicht mehr vorhanden ist und ein UserReading noch einen Wert von 18.9 anzeigt.
Ich hoffe Feedback ist weiterhin erwünscht.
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Wzut am 13 Dezember 2014, 17:35:43
Zitat von: optimizer am 13 Dezember 2014, 00:50:44
wieso bei einem Sensor das "failures"-Readings nicht mehr vorhanden ist und ein UserReading noch einen Wert von 18.9 anzeigt.
OK, das Reading "failures" habe ich sterben lassen und durch ein Internals ERRORCOUNT ersetzt. Deine angezeigten "failures" sind somit Leichen, d.h. du sollst mal für jeden Sensor ein "deletereading <name> failures"  in der Kommzeile eingeben um die endgültig los zu werden.  Zu ERRORCOUNT :
Jedesmal wenn eine Temperatur nicht gelesen werden konnte wird er um eins erhöht, sind 6 Fehler erreicht wird der Abfrageintervall auf 9999 hochgesetzt.
Sind diese 9999 Sekunden abgelaufen wird wieder versucht zu lesen, klappt es -> 0 im ERRORCOUNT und altes Intervall , wenn nicht werden wieder 9999 Sekunden bis zum nächsten Versuch gewartet. Der State wechselt zwar auf Error aber in den Readings steht natürlich noch die letzte erfolgreich ermittelte Temperatur inklusive dem Zeitstempel, so kann man schön beurteilen seit wann denn der Fehler besteht.

Allgemein noch etwas zu dieser (meiner) Modulversion : Ich hatte in einem Projekt einen Raspi verbaut und kam nachträglich auf die Idee noch schnell zwei Temperaturwerte zu wollen. Da die beiden daür notwendigen Meßsteilen nur 50 bzw 100cm vom Raspi entfernt lagen fand ich es etwas übertrieben dafür einen echten USB 1W Busmaster zu verbauen. Die zwei DS1820 plus der 4,7k Widerstand waren relativ schnell verbaut. Als erstes sind mir dann die oben genannten Fehler aufgefallen, später kamen noch pro Tag zwei bis drei unerklärliche 85° Werte dazu. Da das Modul wohl eh nicht mehr weiterentwickelt wird dachte ich schreibst es eben für dich selbst so um wie es mir am besten gefällt. U.a. halt ein Grund für das heutige etwas ungewöhnliche state Format. Das mit den 85° Messungen stellte sich aber nachher nicht als Fehler des Moduls oder des Kerneltreibers herraus sondern als ein defekter DS1820, denn irgendwann zeigte er nur noch 85° ( den entsprechenden Abschnitt im Modul dazu hatte ich aber nie entfernt. Bei einer offiziellen svn Version hätte ich natürlich auch mehr mit attr gearbeitet um dem User mehr Freihet bei der Anzeige zu lassen ohne ihm mit Gewalt meinen Willen aufzudrücken.     
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: optimizer am 13 Dezember 2014, 21:37:36
Hallo Wzut,

Danke für die ausführliche Erklärung.

Die 85° (Fehler-)Werte konnte ich durch ein besseres Kabel in der Hauptleitung (Cat5 anstatt Telefonleitung) reduzieren. Warum der 11. Sensor nicht mit allen anderen funktioniert ist mir noch ein Rätsel.

Wieso betreust du das Modul nicht einfach weiter? Meine Stimme hast du.
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Wzut am 14 Dezember 2014, 19:17:51
Zitat von: optimizer am 13 Dezember 2014, 21:37:36
Wieso betreust du das Modul nicht einfach weiter? Meine Stimme hast du.
benötigt denn ein Modul das lediglich einen Wert aus einer Datei ausliest wirklich so viel Intensivpflege ?
außerdem gibt es bestimmt nicht allzuviele User die es aktiv nutzen u.A. wäre dein Problem mit dem einen Sensor durch einem echten Busmaster und 5V auf dem Bus (statt der 3,3 vom Raspi)  vieleicht auch gelöst ? und IMHO werden hier keine Wahlen abgehalten .... :) 
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Prof. Dr. Peter Henning am 15 Dezember 2014, 04:06:40
Es ist reichlich sinnfrei, einen 1-Wire Bus im Grenzbereich zu betreiben und sich dann über angebliche Fehler zu mokieren. Die Kosten für einen 1-Wire-Busmaster sind deutlich geringer, als der Differenzpreis zwischen ein paar Metern Netzwerkkabel der Kategorie 5 und einer Telefonleitung. Damit wären die Lesefehler auf dem Bus nicht nur "reduziert", sondern weg.


pah
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: optimizer am 15 Dezember 2014, 21:55:35
Hmm, meine DS1820 Sensoren hängen an einem DS2482 I²C Busmaster (http://wiki.volkszaehler.org/hardware/controllers/raspberry_pi_erweiterung_mit_schaltausgaengen) mit 5V incl. 4,8k Widerstand. Für den Anschluss verwende ich 6xISDN-Verteiler von Pollin (ohne Abschlusswiderstand). An die Sensoren habe ich ein ISDN Telefonkabel angelötet - so bin ich sehr flexibel. Trotzdem gibt es noch Übertragungsprobleme.
... und Netzwerkkabel habe ich auch noch übrig.

Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Prof. Dr. Peter Henning am 16 Dezember 2014, 04:52:18
Na, was denn nun ?

GPIO oder DS2482 ?
Das hier beachtet http://www.fhemwiki.de/wiki/1-Wire_Busverlegung#Topologie ?
Das hier beachtet http://www.hobbytronics.co.uk/raspberry-pi-i2c-clock-stretching , https://github.com/raspberrypi/linux/issues/254 ?

LG

pah

Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: optimizer am 16 Dezember 2014, 17:59:02
ZitatNa, was denn nun ? GPIO oder DS2482 ?
Das ist bestimmt eine Fangfrage, nach meinem letzten Post  :-[

Meine Baumverkabelung entspricht sicher nicht der Norm. Der Vorschlag mit dem Rückkanal pro Sensor wäre wohl noch die Rettung. Dazu müsste ich alle Sensoren und den Verteiler etwas modifizieren. Als ich mit der Verkabelung begann, hab ich das Wiki (http://www.fhemwiki.de/wiki/1-Wire_Busverlegung#Topologie) leider nicht gefunden.
Gruß
Karlheinz
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Prof. Dr. Peter Henning am 16 Dezember 2014, 19:36:20
Nö, keine Fangfrage.

Aber "Nichtfinden des Wiki" ist schon peinlich  ;D

pah
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: Wzut am 16 Dezember 2014, 20:29:39
Zitat von: Prof. Dr. Peter Henning am 16 Dezember 2014, 19:36:20
Nö, keine Fangfrage.

denke ich auch , sorry aber die ganze Fragerei plus des Screenshots sind eindeutig GPIO4 und dann postet du einen Link zu einem DS2482 - I2C Busmaster, das passt irgendwie nicht zusammen.

EDIT : oder Moment ... benutzt du vllt. das Programm https://github.com/w3llschmidt/1wirevz/blob/master/1wirevz.c ?
denn da habe ich gerade gefunden  :
for (i=1; i<=count_i2cdevices(); i++) {
sprintf ( fn, "/sys/bus/w1/devices/w1_bus_master%d/w1_master_slaves", i );

d.h. das Stück Software liest die Werte via I²C und schreibt sie in die gleichen Dateien wie das Kernelmodul für 1W  ?
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: optimizer am 16 Dezember 2014, 21:16:48
@ PAH
ZitatAber "Nichtfinden des Wiki" ist schon peinlich  ;D
Man findet nur einen Wiki-Artikel in FHEM wenn man auch danach sucht  ;D

@Wzut
Ganz genau, das Add-on Board wird nach dieser Anleitung  (https://github.com/w3llschmidt/1wirevz)installiert und die Sensoren erscheinen alle im Filesystem. Deshalb verwende ich ja auch "dein" Modul. Wie das sonst aussehen soll, weiss ich nicht - deshalb dachte ich an "Fangfrage". Gibt es noch eine bessere Möglichkeit zum Auslesen der Sensoren?
Titel: Antw:GPIO4 Status trotz Fehler
Beitrag von: optimizer am 22 Dezember 2014, 01:11:58
Meine Temperatursensoren habe ich jetzt etwas umgebaut: Der Rückkanal der ersten Sensors ist nun der Hinkanal für den zweiten  usw. . Aber es läuft noch nicht rund.
Jetzt habe ich folgende Situation:
- Im Filesystem werden sechs Sensoren angezeigt - in FHEM bekomme ich nur drei, die anderen laufen auf "error".
- Zu dem Problem mit max. 10 Sensoren habe ich noch folgendes gefunden: In der Datei "w1_master_max_slave_count" steht 10. Den Wert kann ich aber nicht ändern.
Habt ihr noch einen Tipp?

Gruß
Karlheinz