|
 |
|

18.03.2012, 17:24
|
|
Benutzer
|
|
Registriert seit: 05.03.2010
Ort: Karlsruhe
Beiträge: 413
|
|
Hallo Hauke,
hast Du mal geschaut, was knx_read genau zurückliefert? Ist das wirklich 0 - also der gleiche Wert als wenn die Temperatur oder was auch immer 0° betragen würde? Irgendwie kann ich mir das nicht vorstellen.
Gruß Moritz
|

18.03.2012, 20:42
|
 |
Erfahrener Benutzer
|
|
Registriert seit: 07.07.2007
Beiträge: 11.779
|
|
Zitat von Hauke
.. mir war beim basteln das TP-UART Interface abgefallen und ich hab's nicht bemerkt...).
Schöner fände ich, wenn in diesem Fall einfach kein Wert ins Archiv geschrieben wird, so wie auch bei 1-Wire Sensoren wenn der Wert nicht verfügbar ist.
|
Naja, ob da jetzt 0 oder NaN steht? Prüfen muss mans trotzdem, weil so ein TP-UART verliert den Bus nur durch abstecken
Zitat von Hauke
Also wäre ja der Lösungsansatz, der Funktion knx_read beizubringen, ein "naN" oder sowas zu liefern, wenn vom Bus nichts kommt und der Wert älter als die max. erlaubte Zeit ist.
|
Klar wäre zwar irgendwo schöner, aber einer der vorh. Watchdogs da zielfüherender?!
Das ist halt der bweussten vereinfachung der API geschuldet, das man nicht liest, schauen muss wieviele Bytes zurückkamen (-1=Fehler) und dann denn Wert vom Pointer nehmen; man darf ja auch native eibd-API direkt verwenden, dann muss man sich darum halt selber kümmern
Makki
__________________
EIB/KNX & HS3(+Lüfter+picoPSU80), Multiroom-AV mit Russound,mpd,vdr,DM8000, Profilux II+, N141 DALI, DMX, dez. Lüfter (RS485), Wärmepumpe (RS422), 30+ 1-Wire Temp,Luft&Bodenfeuchte,IRTrans
WireGate - Supportforum - bitte keine PN's!
|

19.03.2012, 07:57
|
|
Benutzer
|
|
Registriert seit: 15.04.2010
Beiträge: 408
|
|
Zitat von kleinklausi
hast Du mal geschaut, was knx_read genau zurückliefert? Ist das wirklich 0
|
Nein, hab ich nicht. Kann man das nachträglich noch herausfinden oder müsste ich den Fehler dazu reproduzieren? Ich weiß nur das die aus den rrd's erzeugten Grafiken eine Null zeigen... Wenn ich einen 1wire- Sensor abziehe, ist die Linie unterbrochen. Also definitiv ein anderes Verhalten und genau das, was ich mir in diesem Fall wünschen würde.
Zitat von makki
Prüfen muss mans trotzdem, weil so ein TP-UART verliert den Bus nur durch abstecken
|
Schon klar. Mir geht es an dieser Stelle eher um den Inhalt der Archive. Im konkreten Fall ist das u.a. der Zählerstand meiner Stromzähler und weil da jetzt zeitweise eine Null auftaucht, ist die Skalierung der Grafiken total versaut...
Zitat von makki
Klar wäre zwar irgendwo schöner, aber einer der vorh. Watchdogs da zielfüherender?!
|
Kann schon sein. Ich hab halt weder Ahnung was das knx_read tut, noch was evtl. an Watchdogs aktiv ist...
Wie müsste ich konkret vorgehen? Wäre nicht etwas in der Art wie
Code:
knx_read(...)
if [Zeitstempel] > xxx then
update_rrd ...
endif
am einfachsten? Ich wüsste jetzt allerdings nicht, wie die exakte Syntax dafür aussehen müsste bzw. ob man überhaupt direkt auf das Alter des Wertes zugreifen kann.
Gruß,
Hauke
__________________
Endlich umgezogen. Fertig? Noch lange nicht... ;-)
|

20.03.2012, 03:49
|
 |
Erfahrener Benutzer
|
|
Registriert seit: 07.07.2007
Beiträge: 11.779
|
|
Im Falle eines nicht lesbaren Wertes gibt knx_read eigentlich "Null" zurück, nicht die Zahl "0" aber ich kann es durchaus nachvollziehen, es landet letztendlich der Wert "0" im RRD..
Verstehe zwar nicht wirklich warum, aber ich hab das mal geändert, das Null = NaN (Not a number=unknown) behandelt wird..
Muss ich aber noch auf Risiken und Nebenwirkungen testen; Sollte im nächsten Update mitkommen, wenn nichts gravierendes dagegen spricht..
Makki
__________________
EIB/KNX & HS3(+Lüfter+picoPSU80), Multiroom-AV mit Russound,mpd,vdr,DM8000, Profilux II+, N141 DALI, DMX, dez. Lüfter (RS485), Wärmepumpe (RS422), 30+ 1-Wire Temp,Luft&Bodenfeuchte,IRTrans
WireGate - Supportforum - bitte keine PN's!
|

20.03.2012, 08:10
|
|
Benutzer
|
|
Registriert seit: 05.03.2010
Ort: Karlsruhe
Beiträge: 413
|
|
Danke Makki,
dann können wir Null ja so lange mit einem einfachen if abfangen.
Gruß Moritz
|

20.03.2012, 13:37
|
|
Benutzer
|
|
Registriert seit: 15.04.2010
Beiträge: 408
|
|
Super, vielen Dank! Damit spare ich mir den Aufwand im Detail verstehen zu müssen was da passiert....
__________________
Endlich umgezogen. Fertig? Noch lange nicht... ;-)
|

22.03.2012, 01:22
|
 |
Erfahrener Benutzer
|
|
Registriert seit: 07.07.2007
Beiträge: 11.779
|
|
Zitat von kleinklausi
dann können wir Null ja so lange mit einem einfachen if abfangen.
|
Jep, ein
if (!defined $meinwert) { return "nada"; }
sollte es tun
Je länger ich darüber nachdenke halte ich das allerdings für einen Bug in dem RRDx. pm, das darf bei Null eigentlich nichts ausser "NaN" schreiben?!?
Dieses Verhalten hätte ich zumindest erwartet, ist aber nicht so
Makki
__________________
EIB/KNX & HS3(+Lüfter+picoPSU80), Multiroom-AV mit Russound,mpd,vdr,DM8000, Profilux II+, N141 DALI, DMX, dez. Lüfter (RS485), Wärmepumpe (RS422), 30+ 1-Wire Temp,Luft&Bodenfeuchte,IRTrans
WireGate - Supportforum - bitte keine PN's!
|

16.10.2012, 22:41
|
|
Benutzer
|
|
Registriert seit: 15.04.2010
Beiträge: 408
|
|
Zitat von makki
Im Falle eines nicht lesbaren Wertes gibt knx_read eigentlich "Null" zurück, nicht die Zahl "0" aber ich kann es durchaus nachvollziehen, es landet letztendlich der Wert "0" im RRD..
Verstehe zwar nicht wirklich warum, aber ich hab das mal geändert, das Null = NaN (Not a number=unknown) behandelt wird..
Muss ich aber noch auf Risiken und Nebenwirkungen testen; Sollte im nächsten Update mitkommen, wenn nichts gravierendes dagegen spricht..
Makki
|
Hallo Makki,
mal kurz nachgefragt: Ist das inzwischen geändert?
Weil, hatte gerade mal wieder den dummen Zufall das ich unbeabsichtigt einen Teil des Bus abgeklemmt hatte, was zu Nullen im RRD geführt hat...
__________________
Endlich umgezogen. Fertig? Noch lange nicht... ;-)
|

19.10.2012, 01:44
|
 |
Erfahrener Benutzer
|
|
Registriert seit: 07.07.2007
Beiträge: 11.779
|
|
Nein, aber ich hab das damit wenigstens wieder in den Top5
(es ist auch in 99% der Fälle jetzt&schon immer so.. der Fix - statt dem Workaround - ist einen sauberen und stabilen 1-Wire zu haben  )
Makki
__________________
EIB/KNX & HS3(+Lüfter+picoPSU80), Multiroom-AV mit Russound,mpd,vdr,DM8000, Profilux II+, N141 DALI, DMX, dez. Lüfter (RS485), Wärmepumpe (RS422), 30+ 1-Wire Temp,Luft&Bodenfeuchte,IRTrans
WireGate - Supportforum - bitte keine PN's!
|
| Themen-Optionen |
|
|
| Ansicht |
Linear-Darstellung
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:59 Uhr.
|