WakeUp Intervall per Lua anpassen

Bastian

Moin, ich heiße Bastian und bin Autor dieser kleinen bescheidenen Seite. Zwanghaft, ja fast schon neurotisch beschäftige ich mich seit Jahren mit jedem erdenklichen technischen Schnick-Schnack. Nichts, was einen Stecker hat ist vor mir sicher. So war es klar, dass ich eines Tages das Haus auf den Kopf stellen und alles vernetzen würde.Da ich bei meinem Vorhaben sehr viel Hilfe und Unterstützung in diversen Foren, Blogs und Boards erfahren habe, möchte ich diesen Blog zum sammeln meiner Smarthome- und Technikerrungenschaften nutzen um der Community zumindest ein klein wenig was zurückgeben zu können.

Das könnte Dich auch interessieren...

28 Antworten

  1. ChrisBeat sagt:

    Super Arbeit Bastian. An was Du dabei alles gedacht hast. Werde es morgen testen, heute komme ich leider nicht mehr dazu.

    Gruß
    ChrisBeat

  2. Mr.Coffee sagt:

    Hey Bastian,
    super Artikel. Ich komme wohl erst am Wochenende dazu, die Szene auszuprobieren. Gelesen habe ich schon alles und bin ziemlich angetan.
    Derzeit habe ich 900s als Wakeup-Intervall hinterlegt. Ich bin daher etwas skeptisch, ob Deine Wakeups nicht etwas sehr dicht beieinander liegen und die Batterie über Gebühr entleert wird. Aber wie wir schon in dem einen Post diskutiert haben, ist es die Temperaturanpassung, welche für die Batterieentladung verantwortlich ist und nicht das Aufwachen. Letzten Endes ist somit die Isolierung des Hauses und das individuelle Lüftungsverhalten entscheidend.
    Ich werde es auf jeden Fall 1:1 übernehmen und gleichzeitig in einer Kontrollgruppe die Einstellungen unverändert lassen. Ich berichte dann, ob ich Unterschiede festgestellt habe.
    Starke Idee mit der Formel. Richtig gut.

    Gruß
    Mr.Coffee

  3. Mr.Coffee sagt:

    Ja, genau. Das Anpassen ist kein Problem. Du kommentierst Deinen Code ja immer sehr vorbildlich.
    Aber wie gesagt, ich teste es erst einmal mit den Originaleinstellungen.

    Programmieren können, hätte ich es im Leben nicht;-)

    LG

  4. ChrisBeat sagt:

    Hallo Bastian,

    leider verfüge ich noch nicht über eine Temperaturmessung außerhalb die ich abfragen könnte. Besteht die Möglichkeit, die internen Wetterdaten im Script einzubinden? Ist sicherlich nicht so genau aber besser als nichts.

    Welche Wetterstation kannst Du empfehlen die von Netatmo? Was hast Du im Einsatz?

    Gruß
    Chris

    • Bastian sagt:

      Moin Chris,

      schaue mal in die Konfiguration. Dort ist im Standard die ID 3 als Quelle für die Aussentemperatur hinterlegt. Unter der ID 3 stellt das Home Center die Wetterdaten (von Yahoo oder YR) bereit. Es werden also die internen Wetterdaten verwendet, wenn Du nichts änderst 😉

      Gruß
      Bastian

      • ChrisBeat sagt:

        local outdoorTemp = {3,’Temperature‘}
        fibaro:debug(outdoorTemp[1])

        for schluessel, wert in pairs(outdoorTemp) do

        fibaro:debug(„schluessel: „..schluessel .. „- wert:“ ..wert)

        end

        Ausgabe:

        [DEBUG] 08:17:50: 3
        [DEBUG] 08:17:50: schluessel: 1- wert:3
        [DEBUG] 08:17:50: schluessel: 2- wert:Temperature

        Wenn ich damit rumspiele bekomme ich als Rückgabewert 3 zurück. Obwohl gerade -3 Grad sind.
        Ich war mir nicht sicher ob die ID 3 das interne war als ich den Kommentar geschrieben hatte. Die Überprüfung
        ergab, dass Du mal wieder recht hast 😉

        Gruß
        Chris

        • Bastian sagt:

          Hi Chris,
          die Form local outdoorTemp = {3,’Temperature‘} habe ich gewählt um es möglichst generisch zu machen. Weiter unten in der Szene wird daraus fibaro:getValue(outdoorTemp[1], outdoorTemp[2]) Im Falle der Standardeinstellung also fibaro:getValue(3, "Temperature").
          Gruß
          Bastian

        • ChrisBeat sagt:

          Damit bekomme ich den richtigen Wert:

          local OutsideTemperature = tonumber(fibaro:getValue(3, „Temperature“))
          fibaro:debug („OutsideTemperature:“ ..OutsideTemperature)
          ———————————
          Ahh nun wird alles klar. Du hast oben nur ein Array gemacht, welches Du unten im Code verwendest
          Wieder was gelernt. Man sollte den ganzen Code lesen und versuchen zu verstehen 😉

          • Bastian sagt:

            Hi Chris,
            die Abfrage der aktuellen Aussentemperatur muss zum Zeitpunkt des Schedulers erfolgen, wenn ich diesen nur oben in der Konfig hinterlegen hätte, dann würde diese nur einmal gelesen und für die gesamte Laufzeit der Szene verwendet.
            Daher dieser vermeintlich umständliche Weg 😉

            Gruß
            Bastian

  5. ChrisBeat sagt:

    Hallo Bastian,

    kann es sein, dass die Variable local indoorTemp = fibaro:getValue während des Scheduler-Laufs sich nie ändert?
    Der Wert wird, wenn ich es richtig sehe nie aktuallisiert und musste meiner Meinung nach nochmal in der function calculateTime
    aufgerufen werden.

    Gruß
    Chris

  6. Mr.Coffee sagt:

    Hi Bastian,

    endlich hatte ich Zeit mir Dein Meisterwerk anzuschauen. Klasse.
    Dass man sich für ein Thermostat entscheiden muss, welches dann der „Master“ ist, finde ich aus Vereinfachungsgründen sehr gut.
    Mein oben geschilderter Plan, eine Kontrollgruppe hinsichtlich des Batterieverbrauchs zu erstellen, funktioniert daher natürlich nicht, aber das ist halb so wild.
    Ich habe mir den aktuellen Stand der Batterien notiert und behalte ihn im Auge.

    Danke auch für die anderen guten Artikel der letzten Woche.

    Gruß
    Harald

    • Bastian sagt:

      Hallo Harald,

      freut mich, dass die Szene gefällt. In dieser hier brauchst Du Dich aber nicht für einen „Master“ entscheiden. Das ist der Szene zum Artikel Heizplan temporär ändern der Fall. 😉

      Gruß
      Bastian

      • Mr.Coffee sagt:

        Jetzt bin ich doch etwas verunsichert:-) In dieser Szene hier zum Wakeup-Intervall schreibst Du:
        local indoorTemp = {237,’targetLevel‘}
        Dieses Thermostat ist doch das einzige, welches ich hinterlegen muss, damit er alle anderen Thermostate ebenfalls steuert.
        Zumindest bei mir funktioniert das einwandfrei. Wohnzimmer als Master hinterlegt, Bad und Küche schalten die Wakeup-Intervalle synchron dazu.

        Gruß

        • Bastian sagt:

          Hallo Harald,

          da hast Du mich erwischt. 😉
          Ich habe es durcheinander gebracht. Natürlich wird nur der Zielwert eines einzelnen Thermostates zur Berechnung herangezogen.

          Sorry für die Verwirrung.
          Gruß
          Bastian

  7. Gerhard Goetz sagt:

    Klasse Artikel. Neben einem funktionierenden Skript auch noch die Erklärung warum es funktioniert und wo die Probleme liegen könnten. Vielen Dank.

    Ich hab mir die Popp-Variante des LC13 bestellt. Die Danfoss haben zwar ein Template aber keine Parameter in der HC2.
    Ich versuche die Zeit anzupassen die vergeht wenn man den Thermostat manuell verstellt bis er zurück in den Heizplan geht. Bei mir aktuell zwei Stunden. Außerdem hätte ich gerne meine Thermostate eines Raumes assoziiert , da die Raumthermostate von Danfoss in der HC2 nicht korrekt funktionieren.

    Leiser hat sich der Popp-Service nicht herabgelassen innerhalb von 7 Tagen auf meine Anfrage zu Antworten und der Telefonservice ist auch ein Fake 30 Anrufe über 3 Tage zu unterschiedlichen Zeiten . immer besetzt.

    Jetzt gehen die nach dem Test halt zurück wenn sie mir nicht gefallen.

    Gruß
    Gerhard
    Leider hab ich weder user noch passwort (das kommt davon wenn man alles sich den Browser merken lässt und an einem anderen Gerät sitzt)

  8. Gerhard Goetz sagt:

    Hallo Bastian,
    ich meinte nicht unbedingt das Aufwachintervall, die Zeit musst du immer abwarten.
    Wenn du am LC13 selbst einen neue Temperatur einstellst „überschreibst“ du damit den vorhanden Heizplan. Nach dem wakeup steht diese Temp dann auch im HC-Icon. Die Uhrzeit darunter steht auf 2 Std. Diese Zeit würde ich gerne ändern. Denn das bedeutet, dass das HC erst nach zwei Stunden mit dem eigentlichen Heizplan weiter macht.
    Du kannst die Zeit natürlich am HC anpassen. Aber wenn du im Bad die Heizung kurz hochstellst ist es natürlich einfacher die dann wieder am LC selbst runter zu stellen. Aber du gehst unter die Dusche stellst „kurz“ auf 26° und dann … naja steht er halt die nächsten 2Std auf 26 °- obwohl nur noch der Hund vor dem Türschlitz liegt, weil es da so schön warm rauskommt.
    Diese 2 Std. default stehen bestimmt in irgend einem Parameter des LC13. Nachdem aber das Danfoss LC13 gar keine Parameter im HC-Template liefert kannst du auch nichts abändern. Ich habe bisher nichts darüber gefunden, außer dass man die Zeit prinzipiell über ein Raumthermostat anpassen kann, die Funktion aber nicht funktioniert(e).

    • Bastian sagt:

      Hallo Gerhard,

      jetzt habe ich es verstanden 😉
      Mir ist jedoch kein Parameter bekannt mit dem man diese Zeit beeinflussen kann. Auch ist das Verhalten scheinbar nicht überall gleich. Wenn ich an einem meiner Danfoss Thermostate die Temperatur ändere, dann wird beispielsweise gar keine Zeit eingestellt. In anderen Fällen habe ich schon 15 und auch 30 Minuten als Standardeinstellung gesehen. Man kann dieses Verhalten aber mit einer Szene umgehen in der man mit setTime die Zeit auf Null setzt und meine Szene Heizplan temporär ändern benutzt. Da die Szene aber keinen direkten Einfluss auf die Thermostate hat – dies geschieht über den Heizplan – ist die Änderung mit setTime in einer gesonderten Szene auszuführen.

      Gruß
      Bastian
      --[[
      %% properties
      218 targetLevel
      %% events
      %% globals
      --]]

      fibaro:call(218, "setTime", "0")

      Ist sicher nicht die smarteste Lösung, aber immerhin ein Workaround.

      Gruß
      Bastian

  9. ggoetz56 sagt:

    Hallo Bastian,
    wenn da keine Zeit übergeben wird, wann geht dann das Thermostat wieder in den Heizplan zurück, oder bleibt es auf dieser manuell eingestellten Zeit?
    Kann man deine Szene oben triggern. Wenn einer manuelle Verstellung erfolgt läuft Sie an. Meine Idee wäre ja nach jeder manuellen Veränderung geht das thermostat nach 15 Min wieder in den Heizplan zurück.

    Nachdem das Verhalten der diversen LC13-Abkömmlinge , wie du schon schreibst, da sehr unterschiedlich ist, gehe ich einfach davon aus, dass es eine Parameter gibt den jeder mit seiner Firmwareversion selbst beschickt. den nur darin unterscheiden sich ja z.B. Popp, devolo, danfoss etc.

    Kann unsereiner eigentlich etwas mit dem Download einer Gerätevorlage anfangen oder kann das nur z.B. der Fibaro Support?

    • Bastian sagt:

      Hallo Gerhard,

      bei mir ist es mit den originalen LC-13 so, dass die lokal eingestellte Temperatur direkt (nach max. 1 Minute) wieder auf den Wert des Heizplans gesetzt werden. 15 Minuten ist je nach WakeUp Intervall vielleicht ein bisschen kurz, aber für das temporäre überschreiben des Heizplans habe ich hier eine Szene veröffentlicht. Ist ein wenig schwierig im Bezug auf die Zeiteinstellung der Thermostate, aber grundsätzlich funktioniert diese sehr gut.

      Zumindest die Danfoss LC-13 kennen ein paar Parameter die sich um den Schutz vor lokaler Bedienung drehen, aber keinen der sich mit der Zeit befasst.

      Der Download der Gerätevorlagen ist für den Fibaro Support gedacht. Wenn Du ein Gerät ohne Template hast, dann kannst du die heruntergeladene Datei an den Support schicken und die erstellen daraus dann ein Template und geben es in einer der nächsten Versionen mit.

      Gruß
      Bastian

  10. Gerhard Goetz sagt:

    Ich habe 3 Danfoss LC13. Bei allen sind es 2 Stunden und dann kommt die Wakeupzeit dazu. Das mit den Parametern für die lokale Bedienung muss ich mir nochmal ansehen.
    Danke Bastian.

  11. Mr.Coffee sagt:

    Hallo Bastian,

    ich habe eben ein neues Thermostat installiert und dachte zunächst, dass es kaputt ist.
    Die Wakeup-Time wird passend zu Deiner Szene angezeigt. Wenn ich das Fenster öffne, übergibt er sofort den Zielwert für die geänderte Temperatur. Wenn ich nun noch die rund 2 Minuten des geänderten Aufwachintervalls abwarte, übernimmt er allerdings die neue Temperatur nicht. Das macht er tatsächlich erst nach 15 Minuten – was ja ursprünglich mal die Standardeinstellung war.

    Als Gegenprobe habe ich auch die anderen Fenster geöffnet. Das Problem betrifft alle Thermostate.
    Selbes Spiel beim Schließen der Fenster. Zwar steht als Aufwachintervall z.B. 120 Sekunden, tatsächlich ändert sich die Temperatur jedoch erst nach 15 Minuten.

    Da es noch keinem anderen User aufgefallen ist, bin ich nun etwas unsicher. Ist es meine Heiz-Szene oder deine Szene zum Aufwachintervall?
    Hast Du den kompletten Vorgang einmal beobachtet? Ich habe oben ja bereits mein Lob geschrieben, muss aber gestehen, dass ich immer nur die geänderte Wakeup-Time betrachtet hatte, nie die echte Temperaturänderung.

    Danke.

    Gruß
    Mr.Coffee

    • Bastian sagt:

      Moin Mr. Coffee,

      danke für Deine Rückmeldung.
      Das Ändern der Intervalle tut bei mir – nach der vollständigen Übertragung – das was es soll. Jedoch höre ich Deine Darstellung nicht zum ersten Mal. Ein anderer User wies mich bereits darauf hin, dass Intervalle die kürzer sind als 5 Minuten dazu führen, dass die Übertragung nicht mehr sauber funktioniert. Aber wie gesagt, bei mir ist das nicht der Fall.

      Gruß
      Bastian

  1. 27. Januar 2017

    […] Anpassung dieser Intervalle in Abhängigkeit zur Außentemperatur findest Du im Artikel WakeUp Intervall per Lua anpassen. Mit Dauerstrom versorgte Thermostate übernehmen die Änderung innerhalb von einer Minute […]

Kommentar verfassen