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.
ok, aber dann habe ich kein "gewichtetes" Mittel wie in der Din sondern einfach einen average.
Außerdem sendet mir die Quadra bei jeder Änderung der Temperatur > 0.5 Grad einen Wert, das kann - je nach Temperaturverlauf - sehr schnell in die Hose gehen.
Ich sehe ehrlich gesagt den Vorteil deiner viel komplizierteren Lösung nicht. Um immer ein Ergebnis zu haben, kannst du in meinem Item einfach das if weglassen und im init die aktuelle Temperatur setzen. Aber das Ergebnis bringt nicht viel, weil es selbst im Hochsommer um 07:00 oft unter 16°C ist und hingegen auch im Spätherbst z.B. um 14:00 über 16°C sein kann.
Da wäre cache=yes noch die bedeutend bessere Lösung, weil man ja meistens einen unmittelbaren Neustart macht und kein Messpunkt verpasst wird.
ok, aber dann habe ich kein "gewichtetes" Mittel wie in der Din sondern einfach einen average.
Außerdem sendet mir die Quadra bei jeder Änderung der Temperatur > 0.5 Grad einen Wert, das kann - je nach Temperaturverlauf - sehr schnell in die Hose gehen.
Das mit den Mitteln kommt doch daher weil man nicht in der Nacht aufstehen will zum Messen. Es reicht meiner Meinung auch das ganze einmal am tag zu berechnen.
Moin zusammen, da ich o.g. Funktion im SVN nicht finden konnte habe ich mir da kurzerhand selbst beholfen und ein Plugin dafür erstellt. Vielleicht gibt es
gut, dem einen mag das zu kompliziert sein, ich bin damit jetzt happy.
Die DIN Berechnung scheint mir schon auf der richtigen Basis zu fussen, ich glaube nicht dass das etwas mit aufstehen usw zu tun hat sondern mit der Erwärmung und Abstahlung des Environment drumrum. Nach einem Sommertag hast eben um 22 00 noch mehr Restwärme als nach einem Frühjahrstag, an dem das Mittel dann durchaus mal 16 grad sein kann. Die Familie DIN wird sich dabei ja was gedacht haben....
jeder, wie er es will.
TRex Ich versuche das hier gerade mal zu nutzen....
Bekomme aber immer diese Meldung im Log:
Code:
2018-05-18 22:00:00 ERROR logics.sommer Logic: logics.sommer, File: /usr/local/smarthome/logics/sommer.py, Line: 15, Method: <module>, Exception: list index out of range
Traceback (most recent call last):
File "/usr/local/smarthome/lib/scheduler.py", line 425, in _task
exec(obj.bytecode)
File "/usr/local/smarthome/logics/sommer.py", line 15, in <module>
if sh.GLOBAL.Sommer.digits()[i] == '':
IndexError: list index out of range
Kann es sein, dass die Liste erst einmal von Hand gefüllt werden muss?
Item Sommer_DIN: problem evaluating sum(value) / float(len(value)) > 16 if len(value) >= 4 else None: object of type 'bool' has no len()
Item Wetter.Sommer_DIN.Werte: problem evaluating (sh.Wetter.Sommer_DIN.Werte() + value * [sh.Wetter.Temperatur.Luft()])[-12:]: can't multiply sequence by non-int of type 'list'
Ich möchte die Umschaltung von Sommer auf Winter quasi auf einen Drei-Tagesdurchschnitt erweitern. Die erste Berechnung soll aber durchgeführt werden, wenn wenigstens vier Messwerte vorhanden sind.
Könnt ihr mir vielleicht helfen?
Ein weiterer Lösungsansatz für das Problem: Die Temperaturen werden sowieso vom Database Plugin aufgezeichnet. Kann man vielleicht aus der Datenbank den Wert für eine bestimmte Uhrzeit auslesen?
Ad Werte Item:
Ich vermute, die korrekte Konvertierung anhand des Datentypes kommt dir in die Quere. Sprich, 1 und 2 aus dem Crontab werden als Liste gecastet, also zB [1]. Dann müsstest du im Werte eval ein value[0] schreiben. Alternativ machst du aus dem list Typ ein foo.
Ad Sommer_DIN Item: Mir ist ein Rätsel, woher der value kommen soll. Logischer wäre für mich
sum(sh..Werte()) / float(len(sh..Werte())) > 16 if len(sh..Werte()) >= 4 else None
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