Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Eh wir uns missverstehen. Ich meine hier nur das Plugin, kein WebIF! Es geht mir lediglich darum, knx Infos in ein Plugin zu übertragen. Nur eben als Counter.
Also update_rrd mit 4. Paramter ist ok. Die restlichen im WebIF festgelegten globalen Werte (bswp intervall 120s) werden dann verwendet?
Derzeit zwischen Kistenauspacken und Garten anlegen.
Baublog im Profil.
Ja update_rrd legt es mit gängigen Defaultwerten an, sofern nicht vorhanden, das ist ja irgendwo nur eine convenience-funktion die RRDs::create und RRDs::update ein bisschen schöner aussehen lässt unter der Annahme, das es die Defaultwerte für 90% tun, die sich keine 50 Parameter ausdenken wollen. Oder eben nicht so tief einsteigen wollen, was das nun genau da tut, sondern einfach nur ne Grafik für die nächsten 15 Jahre
Man kann natürlich (beides) auch gleich direkt aus dem Plugin (oder Konsole, beim create vielleicht der einfachere Weg da einmalig) aufrufen, siehe hier ab Zeile 473 (sub update_rrd)
Edit: die RRD-Tool Funktionen sind da 1:1 so verwendbar, wie hier beschrieben.
Einzige Ausnahme: vom ablegen mehrere Werte (statt "value") in einem RRD würde ich abraten, weil fast sämtliche Frontends dann gern auf die Nase fallen.. Einfach eins pro Wert machen..
Gut, wenn ich also das rrd händisch anlege, sollte dann ja das update damit klar kommen...
Werds heute Abend probieren, sobald der Fliesenleger mit seinen Nachbesserungen raus ist
Derzeit zwischen Kistenauspacken und Garten anlegen.
Baublog im Profil.
Ich habe gestern festgestellt, dass der Wert '0' in das Archiv geschrieben wird, wenn der Bus nicht erreichbar ist (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.
Lässt sich das irgendwie im Plugin ändern?
Gruß,
Hauke
Endlich umgezogen. Fertig? Noch lange nicht... ;-)
Ich wäre immer noch an einer Lösung interssiert. Leider kenne ich mit der knx_read funktion im Detail nicht aus. Ist die irgendwo dokumentiert? Ich vermute das Problem besteht darin, dass die Funktion eine "gültige" Null zurückliefert, wenn der Bus nicht erreichbar ist? 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.
Kann hier jemand helfen?
Gruß,
Hauke
Endlich umgezogen. Fertig? Noch lange nicht... ;-)
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.
.. 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
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
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.
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...
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... ;-)
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..
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... ;-)
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 )
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar