Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Heizungsthermostatsteuerung 2.1 - Script

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      looxer01 last edited by

      @booehmemaik:

      manuellen Gültigkeit im view steht bei mir auf 0, jedoch sobald das Problem wieder aufgetreten ist, steht dann da natürlich eine Temperatur drinnen. Auf minus 1 kann ich das im View gar nicht setzen. `
      Hi Maik,

      du kannst doch manuell -1 eingeben ? Wie gesagt, das ist die Gültigkeit -nicht die manuelle Temp-

      Darauf gibt es keinen Wertecheck. Muss also gehen.

      Die tägliche Aenderung kannst du damit auf jeden Fall verhindern. Trotzdem wäre es gut herauszufinden woher es kommt.

      Die Quelle ist aus meiner Sicht MAX. Da muss es irgendwo eine Quelle geben, die die Temp am Thermostat ändert.

      Wir hatten hier vorher einen Fall wo ein Wandthermostat die Heizungsthermostate überschrieben hat und die waren im script eingebunden.

      Ist vielleicht ähnlich hier ?

      vG Looxer

      1 Reply Last reply Reply Quote 0
      • B
        booehmemaik last edited by

        Also ich hab zwar Räume mit Wandthermostat, aber genau das KinderWZ von heute ist ein Raum mit nur einem HZThermostat.

        Was vielleicht helfen würde, wäre wenn man die Tabelle vom View mit den Werten nochmal irgendwo darstellen könnte. Mein Gefüll sagt mir, das es damit zutun hat wenn ich in einem anderen Raum eine Änderung mache. Jedoch würde ich den Fehler mit den Schreibfehlern im View ausschließen. Oder eine Debug möglichkeit hätte , wer die änderung auf die Solltemperatur vor nimmt….vielleicht von einem anderen view oder aus der falschen Tabelle oder vom Cube ?

        Welchen Einfluss haben nicht gesetzte FensterKontakte ? Diese gibts bei mir noch nicht...und der Thermostat selbst gibt keinen Channel dafür her.

        1 Reply Last reply Reply Quote 0
        • L
          looxer01 last edited by

          @booehmemaik:

          oder eine Debug möglichkeit hätte , wer die änderung auf die Solltemperatur vor nimmt….vielleicht von einem anderen view oder aus der falschen Tabelle oder vom Cube ? `

          Das ist ja genau das Log, das du gezogen hast. Im Log steht, dass die Temp am Thermostat gesetzt wurde.

          Ich bin sehr sicher, dass das Script nicht auf eine falsche Tabelle zugreift. Daher würde ich die Einstellung beim Cube suchen.

          Mach doch mal Folgendes. Raum vom Script lösen (aus den Thermostaten. (Raum auf "initial") und dann lässt du das Thermostat mit einer manuellen Temp laufen. Wenn jetzt wieder eine Änderung erfolgt, dann bist du sicher, dass es vom Cube kommt. (oder vom HKT selber)

          EDIT:

          von den Fenstern kann nur was kommen, wenn ein Fenster geöffnet wird. Dann geht es auf die Absenkung (z.B. 12 Grad) weiteren Einfluss schliesse ich ebenfalls aus.

          vG Looxer

          1 Reply Last reply Reply Quote 0
          • B
            booehmemaik last edited by

            Guten Morgen,

            so heute morgen waren es zwei andere Räume, welche Punkt 7 Uhr ihre Solltemperatur geändert bekommen haben.

            Beide Räume (Jungs 1xWTH 2xHKT , Selina 1xWTH 1xHKT) sind mit WTH ausgestattet. Im Cube das WochenProgram würde aber erst 7:05 zu schlagen und auf 21 Grad setzen. Wobei alles auf manuell gesetzt ist.

            Jedoch wurden beide Räume auf 20 Grad gesetzt.

            Ich hab verstanden, das im ioBroker unter Objekten, das Skript im Profil die Felder IDs ablegt um die Zeitintervalle zu erstellen, richtig ?

            Wo legt dann der View, für die jeweilige Feld ID,den eingetragenen Wert ab ?

            Schön wäre wenn man am Cube irgendwie tracen könnte. Hat jemand dazu eine Idee ? Gibt es eine API oder ein Log auf dem Cube ?

            Gruss

            Maik

            ! 3916_selinamax.jpg

            ! javascript.0 2018-01-17 07:15:04.045 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.Source_last_Program_Run
            ! javascript.0 2018-01-17 07:15:04.042 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.View_Manually_Adjusted
            ! javascript.0 2018-01-17 07:15:04.041 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.Source_Manually_Adjusted
            ! javascript.0 2018-01-17 07:15:04.036 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.View_ManTemp_Validity
            ! javascript.0 2018-01-17 07:15:04.034 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.Source_TimeStamp
            ! javascript.0 2018-01-17 07:15:04.022 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run
            ! javascript.0 2018-01-17 07:15:04.020 info script.js.common.Heizung20b02: Heizungsscript verarbeitung Trigger für Raum Selina durchgelaufen
            ! javascript.0 2018-01-17 07:15:04.019 info script.js.common.Heizung20b02:
            ! javascript.0 2018-01-17 07:15:04.019 info script.js.common.Heizung20b02: Routine LoopRooms Ende Abarbeitung fuer Raum Selina
            ! javascript.0 2018-01-17 07:15:04.018 info script.js.common.Heizung20b02: Setze Schedule für nächste Planzeit 0 0 8 * * * für Raum Selina
            ! javascript.0 2018-01-17 07:15:04.018 info script.js.common.Heizung20b02: Schedule gelöscht für Selina
            ! javascript.0 2018-01-17 07:15:04.017 info script.js.common.Heizung20b02: Routine ExecuteTempDetermination: raum SelinaSolltemp nach overrule: 20 Findung
            ! javascript.0 2018-01-17 07:15:04.017 info script.js.common.Heizung20b02: Routine ExecuteTempDetermination: raum SelinaSolltemp nach Switchtime: 20 Findung Mi_08:00:00
            ! javascript.0 2018-01-17 07:15:04.017 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 20 fuer Raum Selina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:15:04.016 info script.js.common.Heizung20b02: keine ManAdjustments festgestellt fuer Raum Selina
            ! javascript.0 2018-01-17 07:15:04.016 info script.js.common.Heizung20b02: Routine ManAdjustments: Manuelle Temperatur zurückgesetzt
            ! javascript.0 2018-01-17 07:15:04.015 info script.js.common.Heizung20b02: Routine ManAdjustments: Manuell Relevant?: true
            ! javascript.0 2018-01-17 07:15:04.014 info script.js.common.Heizung20b02: Routine Manadj: errechneter Next Timeslot ist Mi_13:00:00
            ! javascript.0 2018-01-17 07:15:04.014 info script.js.common.Heizung20b02: Routine Manadj: errechnete Next SollTemp ist 20
            ! javascript.0 2018-01-17 07:15:04.014 info script.js.common.Heizung20b02: Routine Manadj: errechneter Current TimeSlot ist Mi_08:00:00
            ! javascript.0 2018-01-17 07:15:04.014 info script.js.common.Heizung20b02: Routine Manadj: errechnete Current SollTemp ist 20
            ! javascript.0 2018-01-17 07:15:04.013 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächste Solltemperatur ist 20 fuer RaumSelina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:15:04.013 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächster Zeitslot ist Mi_13:00:00 fuer RaumSelina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:15:04.012 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktueller Zeitslot ist Mi_08:00:00 fuer RaumSelina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:15:04.010 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 20 fuer Raum Selina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:15:04.009 info script.js.common.Heizung20b02: Routine LoopDevices: Sensorstatus fuer raum Selina ist false
            ! javascript.0 2018-01-17 07:15:04.008 info script.js.common.Heizung20b02: Routine LoopRooms Starte Abarbeitung fuer Raum Selina
            ! javascript.0 2018-01-17 07:15:03.005 info script.js.common.Heizung20b02: TriggerUpdate für Selina und manChange=true
            ! javascript.0 2018-01-17 07:00:11.736 info script.js.common.Heizung20b02: Restliche Triggered States resetten: {"javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run":1}
            ! javascript.0 2018-01-17 07:00:02.071 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.View_Manually_Adjusted
            ! javascript.0 2018-01-17 07:00:02.069 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.Source_Manually_Adjusted
            ! javascript.0 2018-01-17 07:00:02.067 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.View_ManTemp_Validity
            ! javascript.0 2018-01-17 07:00:02.054 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.Source_TimeStamp
            ! javascript.0 2018-01-17 07:00:02.051 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.Source_last_Program_Run
            ! javascript.0 2018-01-17 07:00:02.049 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.Source_Last_Temp
            ! javascript.0 2018-01-17 07:00:02.047 info script.js.common.Heizung20b02: Routine ThermostatChange: Starte Sync fuer Manuelle Temperatur fuer maxcube.0.devices.thermostat_19c977.setpoint Temperatur = 20
            ! javascript.0 2018-01-17 07:00:02.036 info script.js.common.Heizung20b02: Routine ManAdjustments: Timeout für Delaytime gesetzt für Selina ist 899968
            ! javascript.0 2018-01-17 07:00:02.035 info script.js.common.Heizung20b02: 1.Fall Manuelle Temperatur Verstellung am Thermostat auf 20 erkannt
            ! javascript.0 2018-01-17 07:00:02.032 info script.js.common.Heizung20b02: aktuelle Millisekunden 1516168802000
            ! javascript.0 2018-01-17 07:00:02.032 info script.js.common.Heizung20b02: Routine ManAdjustments: DelayTime fuer Raum Selina ist 0
            ! javascript.0 2018-01-17 07:00:02.032 info script.js.common.Heizung20b02: Routine ManAdjustments: Manuell Relevant?: true
            ! javascript.0 2018-01-17 07:00:02.032 info script.js.common.Heizung20b02: Routine Manadj: errechneter Next Timeslot ist Mi_13:00:00
            ! javascript.0 2018-01-17 07:00:02.031 info script.js.common.Heizung20b02: Routine Manadj: errechnete Next SollTemp ist 20
            ! javascript.0 2018-01-17 07:00:02.031 info script.js.common.Heizung20b02: Routine Manadj: errechneter Current TimeSlot ist Mi_08:00:00
            ! javascript.0 2018-01-17 07:00:02.031 info script.js.common.Heizung20b02: Routine Manadj: errechnete Current SollTemp ist 20
            ! javascript.0 2018-01-17 07:00:02.030 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächste Solltemperatur ist 20 fuer RaumSelina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:02.029 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächster Zeitslot ist Mi_13:00:00 fuer RaumSelina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:02.023 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktueller Zeitslot ist Mi_08:00:00 fuer RaumSelina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:02.022 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 20 fuer Raum Selina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:02.021 info script.js.common.Heizung20b02: Routine ThermostatChange: Thermostat maxcube.0.devices.thermostat_19c977.setpoint Raum Selina Thermostat Solltemperatur-Aenderung erkannt
            ! javascript.0 2018-01-17 07:00:02.018 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Selina.Source_Schedule
            ! javascript.0 2018-01-17 07:00:01.920 info script.js.common.Heizung20b02: Heizungsscript verarbeitung Trigger für Raum Selina durchgelaufen
            ! javascript.0 2018-01-17 07:00:01.920 info script.js.common.Heizung20b02:
            ! javascript.0 2018-01-17 07:00:01.920 info script.js.common.Heizung20b02: Routine LoopRooms Ende Abarbeitung fuer Raum Selina
            ! javascript.0 2018-01-17 07:00:01.918 info script.js.common.Heizung20b02: Setze Schedule für nächste Planzeit 0 0 8 * * * für Raum Selina
            ! javascript.0 2018-01-17 07:00:01.917 info script.js.common.Heizung20b02: Schedule gelöscht für Selina
            ! javascript.0 2018-01-17 07:00:01.917 info script.js.common.Heizung20b02: Setze Selina.Source_Last_Temp zu 20
            ! javascript.0 2018-01-17 07:00:01.916 info script.js.common.Heizung20b02: Routine SetTemp: ID updated maxcube.0.devices.thermostat_19c977.setpoint Raum Selina SollTemp = 20
            ! javascript.0 2018-01-17 07:00:01.916 info script.js.common.Heizung20b02: Setze Selina.Source_Schedule zu Mi_08:00:00
            ! javascript.0 2018-01-17 07:00:01.915 info script.js.common.Heizung20b02: Routine ExecuteTempDetermination: raum SelinaSolltemp nach overrule: 20 Findung
            ! javascript.0 2018-01-17 07:00:01.915 info script.js.common.Heizung20b02: Routine ExecuteTempDetermination: raum SelinaSolltemp nach Switchtime: 20 Findung Mi_08:00:00
            ! javascript.0 2018-01-17 07:00:01.914 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 20 fuer Raum Selina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.913 info script.js.common.Heizung20b02: aktuelle Millisekunden 1516168801000
            ! javascript.0 2018-01-17 07:00:01.913 info script.js.common.Heizung20b02: Routine ManAdjustments: DelayTime fuer Raum Selina ist 0
            ! javascript.0 2018-01-17 07:00:01.913 info script.js.common.Heizung20b02: Routine ManAdjustments: Manuell Relevant?: false
            ! javascript.0 2018-01-17 07:00:01.912 info script.js.common.Heizung20b02: Routine Manadj: errechneter Next Timeslot ist Mi_13:00:00
            ! javascript.0 2018-01-17 07:00:01.912 info script.js.common.Heizung20b02: Routine Manadj: errechnete Next SollTemp ist 20
            ! javascript.0 2018-01-17 07:00:01.912 info script.js.common.Heizung20b02: Routine Manadj: errechneter Current TimeSlot ist Mi_08:00:00
            ! javascript.0 2018-01-17 07:00:01.912 info script.js.common.Heizung20b02: Routine Manadj: errechnete Current SollTemp ist 20
            ! javascript.0 2018-01-17 07:00:01.911 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächste Solltemperatur ist 20 fuer RaumSelina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.910 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächster Zeitslot ist Mi_13:00:00 fuer RaumSelina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.909 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktueller Zeitslot ist Mi_08:00:00 fuer RaumSelina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.908 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 20 fuer Raum Selina Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.907 info script.js.common.Heizung20b02: Routine LoopDevices: Sensorstatus fuer raum Selina ist false
            ! javascript.0 2018-01-17 07:00:01.906 info script.js.common.Heizung20b02: Routine LoopRooms Starte Abarbeitung fuer Raum Selina
            ! javascript.0 2018-01-17 07:00:01.767 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Jungs.Source_last_Program_Run
            ! javascript.0 2018-01-17 07:00:01.764 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Jungs.Source_Last_Temp
            ! javascript.0 2018-01-17 07:00:01.757 info script.js.common.Heizung20b02: Routine ThermostatChange: Der Raum wurde vor weniger als 1 Sekunde bereits upgedated Aenderung wird ignoriert 0
            ! javascript.0 2018-01-17 07:00:01.754 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Jungs.Source_Schedule
            ! javascript.0 2018-01-17 07:00:01.736 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run
            ! javascript.0 2018-01-17 07:00:01.733 info script.js.common.Heizung20b02: Heizungsscript verarbeitung Trigger für Raum Jungs durchgelaufen
            ! javascript.0 2018-01-17 07:00:01.732 info script.js.common.Heizung20b02:
            ! javascript.0 2018-01-17 07:00:01.732 info script.js.common.Heizung20b02: Routine LoopRooms Ende Abarbeitung fuer Raum Jungs
            ! javascript.0 2018-01-17 07:00:01.730 info script.js.common.Heizung20b02: Setze Schedule für nächste Planzeit 0 0 8 * * * für Raum Jungs
            ! javascript.0 2018-01-17 07:00:01.730 info script.js.common.Heizung20b02: Schedule gelöscht für Jungs
            ! javascript.0 2018-01-17 07:00:01.729 info script.js.common.Heizung20b02: Setze Jungs.Source_Last_Temp zu 20
            ! javascript.0 2018-01-17 07:00:01.729 info script.js.common.Heizung20b02: Routine SetTemp: ID updated maxcube.0.devices.thermostat_19c1c9.setpoint Raum Jungs SollTemp = 20
            ! javascript.0 2018-01-17 07:00:01.728 info script.js.common.Heizung20b02: Setze Jungs.Source_Schedule zu Mi_08:00:00
            ! javascript.0 2018-01-17 07:00:01.728 info script.js.common.Heizung20b02: Routine ExecuteTempDetermination: raum JungsSolltemp nach overrule: 20 Findung
            ! javascript.0 2018-01-17 07:00:01.727 info script.js.common.Heizung20b02: Routine ExecuteTempDetermination: raum JungsSolltemp nach Switchtime: 20 Findung Mi_08:00:00
            ! javascript.0 2018-01-17 07:00:01.727 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 20 fuer Raum Jungs Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.726 info script.js.common.Heizung20b02: aktuelle Millisekunden 1516168801000
            ! javascript.0 2018-01-17 07:00:01.726 info script.js.common.Heizung20b02: Routine ManAdjustments: DelayTime fuer Raum Jungs ist 0
            ! javascript.0 2018-01-17 07:00:01.726 info script.js.common.Heizung20b02: Routine ManAdjustments: Manuell Relevant?: false
            ! javascript.0 2018-01-17 07:00:01.725 info script.js.common.Heizung20b02: Routine Manadj: errechneter Next Timeslot ist Mi_16:00:00
            ! javascript.0 2018-01-17 07:00:01.725 info script.js.common.Heizung20b02: Routine Manadj: errechnete Next SollTemp ist 20
            ! javascript.0 2018-01-17 07:00:01.724 info script.js.common.Heizung20b02: Routine Manadj: errechneter Current TimeSlot ist Mi_08:00:00
            ! javascript.0 2018-01-17 07:00:01.724 info script.js.common.Heizung20b02: Routine Manadj: errechnete Current SollTemp ist 20
            ! javascript.0 2018-01-17 07:00:01.723 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächste Solltemperatur ist 20 fuer RaumJungs Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.722 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächster Zeitslot ist Mi_16:00:00 fuer RaumJungs Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.721 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktueller Zeitslot ist Mi_08:00:00 fuer RaumJungs Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.720 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 20 fuer Raum Jungs Raumprofil ist 1
            ! javascript.0 2018-01-17 07:00:01.718 info script.js.common.Heizung20b02: Routine LoopDevices: Sensorstatus fuer raum Jungs ist false
            ! javascript.0 2018-01-17 07:00:01.717 info script.js.common.Heizung20b02: Routine LoopRooms Starte Abarbeitung fuer Raum Jungs
            ! javascript.0 2018-01-17 07:00:00.901 info script.js.common.Heizung20b02: TriggerUpdate für Selina und manChange=false
            ! javascript.0 2018-01-17 07:00:00.900 info script.js.common.Heizung20b02: Schedule Triggered für nächste Planzeit für Raum Selina
            ! javascript.0 2018-01-17 07:00:00.714 info script.js.common.Heizung20b02: TriggerUpdate für Jungs und manChange=false
            ! javascript.0 2018-01-17 07:00:00.714 info script.js.common.Heizung20b02: Schedule Triggered für nächste Planzeit für Raum Jungs
            ! javascript.0 2018-01-17 06:30:01.194 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Buero.Source_last_Program_Run
            ! javascript.0 2018-01-17 06:30:01.192 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Buero.Source_Last_Temp
            ! javascript.0 2018-01-17 06:30:01.190 info script.js.common.Heizung20b02: Routine ThermostatChange: Der Raum wurde vor weniger als 1 Sekunde bereits upgedated Aenderung wird ignoriert 0
            ! javascript.0 2018-01-17 06:30:01.188 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Buero.Source_Schedule
            ! javascript.0 2018-01-17 06:30:01.171 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run
            ! javascript.0 2018-01-17 06:30:01.167 info script.js.common.Heizung20b02: Heizungsscript verarbeitung Trigger für Raum Buero durchgelaufen
            ! javascript.0 2018-01-17 06:30:01.163 info script.js.common.Heizung20b02:
            ! javascript.0 2018-01-17 06:30:01.163 info script.js.common.Heizung20b02: Routine LoopRooms Ende Abarbeitung fuer Raum Buero
            ! javascript.0 2018-01-17 06:30:01.161 info script.js.common.Heizung20b02: Setze Schedule für nächste Planzeit 0 0 8 * * * für Raum Buero
            ! javascript.0 2018-01-17 06:30:01.160 info script.js.common.Heizung20b02: Schedule gelöscht für Buero
            ! javascript.0 2018-01-17 06:30:01.160 info script.js.common.Heizung20b02: Setze Buero.Source_Last_Temp zu 22
            ! javascript.0 2018-01-17 06:30:01.159 info script.js.common.Heizung20b02: Routine SetTemp: ID updated maxcube.0.devices.thermostat_120729.setpoint Raum Buero SollTemp = 22
            ! javascript.0 2018-01-17 06:30:01.159 info script.js.common.Heizung20b02: Setze Buero.Source_Schedule zu Mi_08:00:00
            ! javascript.0 2018-01-17 06:30:01.158 info script.js.common.Heizung20b02: Routine ExecuteTempDetermination: raum BueroSolltemp nach overrule: 22 Findung
            ! javascript.0 2018-01-17 06:30:01.158 info script.js.common.Heizung20b02: Routine ExecuteTempDetermination: raum BueroSolltemp nach Switchtime: 22 Findung Mi_08:00:00
            ! javascript.0 2018-01-17 06:30:01.158 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 22 fuer Raum Buero Raumprofil ist 1
            ! javascript.0 2018-01-17 06:30:01.157 info script.js.common.Heizung20b02: aktuelle Millisekunden 1516167001000
            ! javascript.0 2018-01-17 06:30:01.157 info script.js.common.Heizung20b02: Routine ManAdjustments: DelayTime fuer Raum Buero ist 0
            ! javascript.0 2018-01-17 06:30:01.156 info script.js.common.Heizung20b02: Routine ManAdjustments: Manuell Relevant?: false
            ! javascript.0 2018-01-17 06:30:01.156 info script.js.common.Heizung20b02: Routine Manadj: errechneter Next Timeslot ist Mi_16:00:00
            ! javascript.0 2018-01-17 06:30:01.156 info script.js.common.Heizung20b02: Routine Manadj: errechnete Next SollTemp ist 22
            ! javascript.0 2018-01-17 06:30:01.155 info script.js.common.Heizung20b02: Routine Manadj: errechneter Current TimeSlot ist Mi_08:00:00
            ! javascript.0 2018-01-17 06:30:01.155 info script.js.common.Heizung20b02: Routine Manadj: errechnete Current SollTemp ist 22
            ! javascript.0 2018-01-17 06:30:01.154 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächste Solltemperatur ist 22 fuer RaumBuero Raumprofil ist 1
            ! javascript.0 2018-01-17 06:30:01.153 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Nächster Zeitslot ist Mi_16:00:00 fuer RaumBuero Raumprofil ist 1
            ! javascript.0 2018-01-17 06:30:01.152 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktueller Zeitslot ist Mi_08:00:00 fuer RaumBuero Raumprofil ist 1
            ! javascript.0 2018-01-17 06:30:01.151 info script.js.common.Heizung20b02: Routine SelectSwitchTime - Aktuelle Solltemperatur ist 22 fuer Raum Buero Raumprofil ist 1
            ! javascript.0 2018-01-17 06:30:01.150 info script.js.common.Heizung20b02: Routine LoopDevices: Sensorstatus fuer raum Buero ist false
            ! javascript.0 2018-01-17 06:30:01.149 info script.js.common.Heizung20b02: Routine LoopRooms Starte Abarbeitung fuer Raum Buero
            ! javascript.0 2018-01-17 06:30:00.148 info script.js.common.Heizung20b02: TriggerUpdate für Buero und manChange=false
            ! javascript.0 2018-01-17 06:30:00.147 info script.js.common.Heizung20b02: Schedule Triggered für nächste Planzeit für Raum Buero
            ! javascript.0 2018-01-17 06:00:11.100 info script.js.common.Heizung20b02: Restliche Triggered States resetten: {"javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run":6}
            ! javascript.0 2018-01-17 06:00:01.785 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Esszimmer.Source_last_Program_Run
            ! javascript.0 2018-01-17 06:00:01.782 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Esszimmer.Source_Last_Temp
            ! javascript.0 2018-01-17 06:00:01.777 info script.js.common.Heizung20b02: Routine ThermostatChange: Der Raum wurde vor weniger als 1 Sekunde bereits upgedated Aenderung wird ignoriert 0
            ! javascript.0 2018-01-17 06:00:01.774 info script.js.common.Heizung20b02: Ignoriere Trigger nach Änderung für State javascript.0.Heizung.Heizplan.Esszimmer.Source_Schedule
            ! javascript.0 2018-01-17 06:00:01.751 info script.js.common.Heizung20b02: Heizungsscript verarbeitung Trigger für Raum Esszimmer durchgelaufen

            1 Reply Last reply Reply Quote 0
            • L
              looxer01 last edited by

              HI Maik,

              um 07:00 wurde eine manuelle Temp erkannt. Die betrug 20 Grad. Wie hoch war die geplante SollTemp für diese Zeit ?

              Wenn die auch 20 Grad war, dann hätte eigentlich keine manuelle Temp festgestellt werden sollen. Das muesste ich mir dann genauer ansehen.

              Im Log sehe ich genau einen Fall wo das passiert ist. (Raum Selina)

              Ich würde mir gerne deine genauen Daten ansehen. Könntest du mir einen Download der Objektstruktur des Raumes "Selina" senden ?

              (Download als JSON, dann umbenennen als txt und als PN senden)

              vG Looxer

              1 Reply Last reply Reply Quote 0
              • B
                booehmemaik last edited by

                Ich exportier dir gleich die Daten.

                hier der View für Selina

                ! 3916_selina2.jpg

                1 Reply Last reply Reply Quote 0
                • Q
                  quorle last edited by

                  Hey Liebe Gemeinde,

                  ich bin Neuanfänger und wollte mal meine ersten Versuche mit einer Heizsteuerung beginnen und bin auf dieses Script gestoßen. Aber als Neuling habe ich wohl ein paar Fehler gemacht und bitte nun um Hilfe eurer seits.

                  Ich habe keine CCU oder CCU2, sondern es läuft auf meinem Respi lediglich Homegear in Verbindung mit einem NanoCUL, was auch funktioniert und der Sensor ( HM-Sec-SCo ) und ein Stellantrieb ( HM-CC-RT-DN ) werden auch in Io.Broker angezeigt.

                  Wenn ich das Script starte kommt folgendes:

                  07:33:19.288	[info]	javascript.0 Start javascript script.js.common.Heizung.Heizplan.Schlafzimmer
                  07:33:19.289	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: Gibt es ein zugeordnetes Gerät für den Raum Schlafzimmer wird jetzt ueberprueft
                  07:33:19.289	[error]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: script.js.common.Heizung.Heizplan.Schlafzimmer:576
                  07:33:19.289	[error]	javascript.0 at getDevices (script.js.common.Heizung.Heizplan.Schlafzimmer:576:108)
                  07:33:19.290	[error]	javascript.0 at initializeData (script.js.common.Heizung.Heizplan.Schlafzimmer:344:5)
                  07:33:19.290	[error]	javascript.0 at script.js.common.Heizung.Heizplan.Schlafzimmer:337:1
                  

                  Nun ist die Frage, was da bei mir schief läuft, kann mir das vielleicht jemand sagen und mir Hilfestellung geben?

                  Nun habe ich auch die VIS erstellt und meine Verknüpfungen der Anzeigen eingetragen. Temperatur IST, SOLL, Ventilstellung und BATTERIESPANNUNG werden angezeigt, aber sonst funktioniert leider nichts 😢

                  Warum funktioniert nichts, egal was ich drücke? Vielleicht kann mir da auch jemand helfen?
                  5278_aufz_hlungen.png

                  1 Reply Last reply Reply Quote 0
                  • S
                    swordfisch last edited by

                    @quorle:

                    Hey Liebe Gemeinde,

                    ich bin Neuanfänger und wollte mal meine ersten Versuche mit einer Heizsteuerung beginnen und bin auf dieses Script gestoßen. Aber als Neuling habe ich wohl ein paar Fehler gemacht und bitte nun um Hilfe eurer seits.

                    Ich habe keine CCU oder CCU2, sondern es läuft auf meinem Respi lediglich Homegear in Verbindung mit einem NanoCUL, was auch funktioniert und der Sensor ( HM-Sec-SCo ) und ein Stellantrieb ( HM-CC-RT-DN ) werden auch in Io.Broker angezeigt.

                    Wenn ich das Script starte kommt folgendes:

                    07:33:19.288	[info]	javascript.0 Start javascript script.js.common.Heizung.Heizplan.Schlafzimmer
                    07:33:19.289	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: Gibt es ein zugeordnetes Gerät für den Raum Schlafzimmer wird jetzt ueberprueft
                    07:33:19.289	[error]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: script.js.common.Heizung.Heizplan.Schlafzimmer:576
                    07:33:19.289	[error]	javascript.0 at getDevices (script.js.common.Heizung.Heizplan.Schlafzimmer:576:108)
                    07:33:19.290	[error]	javascript.0 at initializeData (script.js.common.Heizung.Heizplan.Schlafzimmer:344:5)
                    07:33:19.290	[error]	javascript.0 at script.js.common.Heizung.Heizplan.Schlafzimmer:337:1
                    

                    Nun ist die Frage, was da bei mir schief läuft, kann mir das vielleicht jemand sagen und mir Hilfestellung geben?

                    Nun habe ich auch die VIS erstellt und meine Verknüpfungen der Anzeigen eingetragen. Temperatur IST, SOLL, Ventilstellung und BATTERIESPANNUNG werden angezeigt, aber sonst funktioniert leider nichts 😢

                    Warum funktioniert nichts, egal was ich drücke? Vielleicht kann mir da auch jemand helfen? `

                    Schreib mal in der Auflistung das Schlafzimmer auch noch groß das könnte schon der Fehler sein das er dadurch den Richtigen Raum nicht findet

                    Grüße swordfisch

                    1 Reply Last reply Reply Quote 0
                    • Q
                      quorle last edited by

                      Hab das mal im script geändert und alles klein geschrieben, nun sind die ERROR weg und WARN da.

                      Aber Steuern mit VIS kann ich immer noch nichts. Oder muss man da zusätzlich noch Dateien erstellen?

                      Da ich ja keine CCU habe, sondern nur Homematic am PI laufen habe, kann ich ja keine "Gewerke" erstellen und ein Lauffähiges CCU Programm, parallel zum iO.Broker am PI, hab ich noch nicht zum laufen gebracht, damit man eine CCU ersetzen könne. Da ich einen NanoCUL als Sende - Empfangseinheit benutze.

                      17:50:41.986	[info]	javascript.0 Start javascript script.js.common.Heizung.Heizplan.Schlafzimmer
                      17:50:41.987	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: getEnums(enumName=rooms) => [{"id":"enum.rooms.schlafzimmer","members":["hm-rpc.0.OEQ0705944","hm-rpc.0.OEQ1712335"],"name":"Schlafzimmer"},{"id":"enum.rooms.wohnzimmer","members":[],"name":"Wohnzimmer"},{"id":"enum.rooms.küche","members":[],"name":"Küche"},{"id":"enum.rooms.badezimmer","members":[],"name":"Badezimmer"},{"id":"enum.rooms.kind_1","members":[],"name":"Kind_1"},{"id":"enum.rooms.kind_2","members":[],"name":"Kind_2"}]
                      17:50:41.987	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: Routine GetDevices Devices initialisiert
                      17:50:41.987	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: setTimeout(ms=2000)
                      17:50:41.987	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: registered 0 subscriptions and 0 schedules
                      17:50:43.997	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: Heizungsscript verarbeitung benutzt Trigger und Events
                      17:50:43.998	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":"feiertage.0.heute.boolean","change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                      17:50:43.998	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":"javascript.0.Anwesenheitssteuerung.Userlist.JemandDa","change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                      17:50:43.998	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":"javascript.0.Heizung.Heizplan.GlobaleParameter.Heizperiode","change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                      17:50:43.999	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":"ical.0.events.Feiertag","change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                      17:50:43.999	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":{},"change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                      17:50:43.999	[warn]	javascript.0 at setOwnState (script.js.common.Heizung.Heizplan.Schlafzimmer:482:5)
                      17:50:43.999	[warn]	javascript.0 at LoopRooms (script.js.common.Heizung.Heizplan.Schlafzimmer:754:5)
                      17:50:44.000	[warn]	javascript.0 at Object. (script.js.common.Heizung.Heizplan.Schlafzimmer:419:9)
                      17:50:44.000	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: setTimeout(ms=10000)
                      17:50:53.998	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: Restliche Triggered States resetten: {"javascript.0.Heizung.Heizplan.GlobaleParameter.Source_last_Program_Run":1}
                      

                      Tut mir leid, aber ich bin wirklich ein totaler Neuling und in Sachen Programmierung hatte ich bislang noch nichts am Hut :shock:

                      1 Reply Last reply Reply Quote 0
                      • S
                        swordfisch last edited by

                        warum schreibst du unter enum.rooms das schlafzimmer nicht einfach groß dann brauchst du es im script nicht ändern

                        Gerwerke müsstest du meiner meinung nach dennoch anlegen dann halt händisch

                        grüße swordfisch

                        1 Reply Last reply Reply Quote 0
                        • Q
                          quorle last edited by

                          Also unter neun.room steht „enum.schlafzimmer“ auf Großschreibung reagiert es nicht. Aber zu testzwecken kann man es im Script mal so lassen.

                          Leider ist es unter Homegear nicht möglich „Gewerke“ zu erstellen, auch händisch leider nicht.

                          1 Reply Last reply Reply Quote 0
                          • S
                            swordfisch last edited by

                            @quorle:

                            Also unter neun.room steht „enum.schlafzimmer“ auf Großschreibung reagiert es nicht. Aber zu testzwecken kann man es im Script mal so lassen.

                            Leider ist es unter Homegear nicht möglich „Gewerke“ zu erstellen, auch händisch leider nicht. `

                            Aber im ioBroker kannst du die Gewerke doch händisch erzeugen und einstellen das alles passt

                            müsste dann so ähnlich aussehen wie bei mir hier

                            ! 3690_auflistung.jpg

                            1 Reply Last reply Reply Quote 0
                            • Q
                              quorle last edited by

                              Folgendes habe ich jetzt erledigt:

                              • Die enum.functions erstellt

                              ! 5278_aufz_hlung.png

                              • Die Objekte den funktions eingegliedert

                              ! 5278_objekte.png

                              Aktuelle Einstellung des Scriptes:

                              ! ````
                              [size]var HeizungGewerk = "heizung"; // diesem Gewerk muessen alle Thermostate zugeordnet sein.
                              var SensorGewerk = "verschluss"; // diesem Gewerk muessen alle Verschlusssensoren zugeordnet sein.
                              ! // Alle x Minuten wird gecheckt ob die SollTemp angepasst werden muss - Empfehlung wenn cron dann 5
                              // Wenn Wert = 0 ist dann läuft das Skript über Events (empfohlener Weg)
                              var cron = 0;
                              ! // Raumliste - empfohlen zu benutzen fuer kleine Systeme
                              // UseRoomList heisst, dass die nur hier gelisteten Raeume angelegt und abgearbeitet werden - somit werden nicht sofort alle Datenpunkte aller Räume angelegt (ca. 100 pro Raum und Profil)
                              // dies dient hauptsaechlich zur Anlage der Daten - So koennen Raum fuer Raum alle States angelegt wrden
                              // Das sollte genutzt werden mit langsamen Rechnern wie Raspi mit SD karte
                              var UseRoomList = true; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet
                              var RoomList = [];
                              RoomList[0] = ['MeinRaum']; // Liste der Raeume die gesteuert werden soll zum Testen
                              RoomList[1] = ['Raum2'];
                              RoomList[2] = ['Raumx'];
                              RoomList[3] = ['Raum3'];
                              RoomList[4] = ['Raum4'];
                              RoomList[5] = ['Raum5'];
                              RoomList[6] = ['Raum6'];
                              RoomList[7] = ['Raum7'];
                              RoomList[8] = ['Raum8'];
                              RoomList[9] = ['Raum9'];
                              ! // Liste der Auszuschliessenden Homematic Sensoren
                              // Falls ein Raum Sensoren hat die zu "Verschluss" gehören aber pot. nichts mit einem Öffnungszustand zu tun ChckAbsenkung
                              // kann man diese ausschliessen
                              var ExcludeHMSensors = [];
                              ExcludeHMSensors[0] = ''; // Liste des STATE-Datenpunkts (z.B. hm-rpc.0.NEQXXXXX.1.STATE) von Sensoren die nicht beachtet werden sollen
                              ExcludeHMSensors[1] = '';
                              ! // Anzahl der Profile. i.d.R. sollten maximal 3 Profile genuegen - Profile werden z.B. fuer Events aus ICAL verwendet
                              var MaxProfile = 1; // Maximal genutzte Profile pro Raum (gering halten ) Zahl zwischen 1 und 9
                              ! // Das ist die Temperatur, die eingestellt wird, wenn erkannt wird, dass ein Verschluss eines Raumes geoeffnet ist (z.B bei nicht direktverknuepften Geraeten)
                              var VerschlussAbsenkungsGrenze = 12;
                              ! // erweitertetes Logging im ioBroker log bei true
                              var debug = false;
                              ! // Logging in externe Datei - Achtung der Pfad muss fuer MS-Windows bzw IOS angepasst werden
                              var LogFlag = false; // logging enabled
                              var LogPath = "/opt/iobroker/iobroker-data/HeizungsthermostatLOG.csv"; // Pfad und Dateiname des externen Logs
                              var OnlyChanges = true; // bei true wird nur geloggt wennn eine neue Solltemperatur geschrieben wird
                              ! // ICAL Einstellungen (erst nach Ersteinstellung Aktivieren)
                              // Wenn keine Events genutzt werden, dann alles auf false setzen
                              // die Events muessen entsprechend in ICAL angelegt werden, sonst gibt es Warnmeldungen im Log
                              // Die Eventnamen koennen angepasst werden. Bitte die Logkik von ICAL unbeding beachten. (siehe Doku im Kapitel ICAL)
                              var UseEventsGlobalParameter = false; // mit diesen Events koennen Urlaub Party etc geplant werden - Empfehlung erst im zweiten Schritt aktivieren
                              var UseEventsGlobalProfilSelect = false; // Events mit denen das Profil umgeschaltet werden kann - fuer alle Raeume - Empfehlung erst im zweiten Schritt aktivieren
                              var UseEventsRaumProfilSelect = false; // Events mit denen das Profil fuer einzelne Raeume umgeschaltet werden kann - Empfehlung erst im zweiten Schritt aktivieren
                              var EventG_UrlaubAbwesend = "Urlaub_Abwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                              var EventG_UrlaubAnwesend = "Urlaub_Anwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                              var EventG_Party = "Party"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                              var EventG_Gaeste = "Gaeste"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                              var EventG_Abwesend = "Keiner_DA"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                              var EventG_Feiertag = "Feiertag"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                              ! // Die folgenden EVENT Texte muessen in ICAL angelegt werden. Sobald die Texte im google Kalender
                              // aktiv sind wird das Event fuer die Heizungsthermostatsteuerung ausgewertet.
                              // Achtung die Zeichen <> und der Text innerhalb dieser Klammer duerfen nicht geaendert werden
                              // siehe Dokumentation fuer mehr infos
                              var UseEventG_Profil = "Global_Profil_<profilnummer>"; // Events mit denen das Profil umgeschaltet werden kann - muss in ICAL angelegt werden wenn UseEventP_Profil = true ist
                              var UseEventR_Profil = "<raumname>Profil<profilnummer>"; // Events mit denen das Raumprofil umgeschaltet werden kann - muss in ICAL angelegt werden wenn UseEventsRaumProfilSelect = true ist
                              ! // Integration zur Anwesenheitsermittlung -
                              var UseAnwesenheitserkennung = false; // wenn true, dann wird die o.g. Anwesenheitsvariable genutzt - Empfehlung erst im zweiten Schritt aktivieren
                              var StateAnwesenheitFunction = JSPath + "Anwesenheitssteuerung.Userlist.JemandDa"; // Wenn UseAnwesenheitserkennung = true, dann muss der Pfad angepasst werden
                              ! // Integration zum Feiertagskalender -
                              var UseFeiertagskalender = false; // wenn der Kalender genutzt wird bitte auf true setzen - Empfehlung: Feiertagsadapter installieren und auf true setzen
                              var StateFeiertagHeuteAdapter = "feiertage.0.heute.boolean"; // wenn UseFeiertagskalender, dann wird dieser Pfad verwendet
                              var StateFeiertagMorgenAdapter = "feiertage.0.morgen.boolean"; // wenn UseFeiertagskalender, dann wird dieser Pfad verwendet wenn es darum geht den nächsten Schaltpunkt zu ermitteln wenn dieser am nächsten Tag liegt
                              ! //------------------------------------------------------------------------------
                              // Ende USER Einstellungen[/size]</profilnummer></raumname></profilnummer>

                              
                              ****Logausgabe:****
                              
                              >! ````
                              08:15:46.095	[info]	javascript.0 Start javascript script.js.common.Heizung.Heizplan.Schlafzimmer
                              08:15:46.096	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: getEnums(enumName=rooms) => [{"id":"enum.rooms.schlafzimmer","members":["hm-rpc.0.OEQ0705944","hm-rpc.0.OEQ1712335"],"name":"Schlafzimmer"},{"id":"enum.rooms.wohnzimmer","members":[],"name":"Wohnzimmer"},{"id":"enum.rooms.küche","members":[],"name":"Küche"},{"id":"enum.rooms.badezimmer","members":[],"name":"Badezimmer"},{"id":"enum.rooms.kind_1","members":[],"name":"Kind_1"},{"id":"enum.rooms.kind_2","members":[],"name":"Kind_2"}]
                              08:15:46.096	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: Routine GetDevices Devices initialisiert
                              08:15:46.096	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: setTimeout(ms=2000)
                              08:15:46.096	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: registered 0 subscriptions and 0 schedules
                              08:15:48.119	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: Heizungsscript verarbeitung benutzt Trigger und Events
                              08:15:48.120	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":"feiertage.0.heute.boolean","change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                              08:15:48.121	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":"javascript.0.Anwesenheitssteuerung.Userlist.JemandDa","change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                              08:15:48.121	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":"javascript.0.Heizung.Heizplan.GlobaleParameter.Heizperiode","change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                              08:15:48.121	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":"ical.0.events.Feiertag","change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                              08:15:48.121	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: subscribe: {"pattern":{"id":{},"change":"ne"},"name":"script.js.common.Heizung.Heizplan.Schlafzimmer"}
                              08:15:48.122	[warn]	javascript.0 at setOwnState (script.js.common.Heizung.Heizplan.Schlafzimmer:482:5)
                              08:15:48.122	[warn]	javascript.0 at LoopRooms (script.js.common.Heizung.Heizplan.Schlafzimmer:754:5)
                              08:15:48.122	[warn]	javascript.0 at Object. (script.js.common.Heizung.Heizplan.Schlafzimmer:419:9)
                              08:15:48.122	[info]	javascript.0 script.js.common.Heizung.Heizplan.Schlafzimmer: setTimeout(ms=10000)
                              

                              Dennoch keine Funktionen mit VIS

                              Hoffe ich bin nicht zu anstrengend

                              1 Reply Last reply Reply Quote 0
                              • L
                                looxer01 last edited by

                                Hi,

                                es gib~~@quorle:~~

                                Leider ist es unter Homegear nicht möglich „Gewerke“ zu erstellen, auch händisch leider nicht. `
                                zunächst Danke an Swordfisch für deinen support. Ich war auf Geschäftsreise und konnte leider nicht reagieren.

                                Also, wenn du nur NichtHM Geräte hast, dann brauchst du keine Gewerke. Der Raum - wie Swordfisch- schrieb muss allerdings angelegt sein.

                                Gross-und Kleinschreibung beim Namen des Raumes ist dabei zu beachten.

                                Bitte setzte das Flag "debug" im script auf true und poste das Log. Dann sieht man schon mehr.

                                vG Looxer

                                1 Reply Last reply Reply Quote 0
                                • Q
                                  quorle last edited by

                                  Ich danke schon einmal im Voraus für eure Hilfe.

                                  Der obere Logeintrag war mit eingeschaltetem Debug- und Hilfsausabemodus.

                                  Hab das Script zuvor gestoppt, den Log gelöscht und Script gestartet. Mehr kommt da leider nicht..

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    swordfisch last edited by

                                    @looxer01:

                                    Hi,

                                    es gib~~@quorle:~~

                                    Leider ist es unter Homegear nicht möglich „Gewerke“ zu erstellen, auch händisch leider nicht. zunächst Danke an Swordfisch für deinen support. Ich war auf Geschäftsreise und konnte leider nicht reagieren.

                                    Kein Thema dafür ist ein Forum doch da dass man sich versucht gegenseitig zu helfen mir wurde ja auch bei meinen Problemen geholfen

                                    Grüße swordfisch

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      looxer01 last edited by

                                      @quorle:

                                      Der obere Logeintrag war mit eingeschaltetem Debug- und Hilfsausabemodus. `
                                      ok, könntest du noch die kompletten Einsellungen posten (inklusive Experteneinstellungen)

                                      vG Looxer

                                      1 Reply Last reply Reply Quote 0
                                      • Q
                                        quorle last edited by

                                        Vielen Dank, aber so doof wie ich kann man sich doch gar nicht anstellen :?

                                        Hier die Einstellungen komplett, wobei ich an den Experteneinstellungen nichts gemacht habe:

                                        ! ````
                                        //------------------------------------------------------------------------------
                                        // Beginn Generelle Einstellungen
                                        // werden an dieser Stelle benoetigt - Einstellungen sind nur in Spezialfaellen notwendig
                                        //------------------------------------------------------------------------------
                                        // Anpassung nur wenn unbedingt notwendig. Hier ist der Ansatz um z.B. Einliegerwohnungen separat zu steuern
                                        var JSPath = "javascript.0."; // JS- Pfad
                                        var path = JSPath + 'Heizung.Heizplan'; // Pfad fuer create states
                                        var Gparameterpath = path + ".GlobaleParameter"; // Pfad in die Globalen Parameter
                                        var ICALPath = "ical.0.events"; // Pfad zu den ICAL events zur Profilauswahl
                                        //------------------------------------------------------------------------------
                                        // Ende Generelle Einstellungen
                                        // Usereinstellungen sind Einstellungen, die ueblicherweise gemacht werden
                                        //------------------------------------------------------------------------------
                                        ! //------------------------------------------------------------------------------
                                        // Beginn USER Einstellungen
                                        //------------------------------------------------------------------------------
                                        ! // Gewerke - wichtige Einstellung, da nur die Geraete eingelesen werden, die im Gewerk vorhanden sind
                                        // Das Gewerk muss alle Thermostate bzw Sensoren enhalten
                                        var HeizungGewerk = "heizung"; // diesem Gewerk muessen alle Thermostate zugeordnet sein.
                                        var SensorGewerk = "verschluss"; // diesem Gewerk muessen alle Verschlusssensoren zugeordnet sein.
                                        ! // Alle x Minuten wird gecheckt ob die SollTemp angepasst werden muss - Empfehlung wenn cron dann 5
                                        // Wenn Wert = 0 ist dann läuft das Skript über Events (empfohlener Weg)
                                        var cron = 0;
                                        ! // Raumliste - empfohlen zu benutzen fuer kleine Systeme
                                        // UseRoomList heisst, dass die nur hier gelisteten Raeume angelegt und abgearbeitet werden - somit werden nicht sofort alle Datenpunkte aller Räume angelegt (ca. 100 pro Raum und Profil)
                                        // dies dient hauptsaechlich zur Anlage der Daten - So koennen Raum fuer Raum alle States angelegt wrden
                                        // Das sollte genutzt werden mit langsamen Rechnern wie Raspi mit SD karte
                                        var UseRoomList = true; // Wenn testmodus werden nur die Angegebenen Raeume abgearbeitet
                                        var RoomList = [];
                                        RoomList[0] = ['MeinRaum']; // Liste der Raeume die gesteuert werden soll zum Testen
                                        RoomList[1] = ['Raum2'];
                                        RoomList[2] = ['Raumx'];
                                        RoomList[3] = ['Raum3'];
                                        RoomList[4] = ['Raum4'];
                                        RoomList[5] = ['Raum5'];
                                        RoomList[6] = ['Raum6'];
                                        RoomList[7] = ['Raum7'];
                                        RoomList[8] = ['Raum8'];
                                        RoomList[9] = ['Raum9'];
                                        ! // Liste der Auszuschliessenden Homematic Sensoren
                                        // Falls ein Raum Sensoren hat die zu "Verschluss" gehören aber pot. nichts mit einem Öffnungszustand zu tun ChckAbsenkung
                                        // kann man diese ausschliessen
                                        var ExcludeHMSensors = [];
                                        ExcludeHMSensors[0] = ''; // Liste des STATE-Datenpunkts (z.B. hm-rpc.0.NEQXXXXX.1.STATE) von Sensoren die nicht beachtet werden sollen
                                        ExcludeHMSensors[1] = '';
                                        ! // Anzahl der Profile. i.d.R. sollten maximal 3 Profile genuegen - Profile werden z.B. fuer Events aus ICAL verwendet
                                        var MaxProfile = 1; // Maximal genutzte Profile pro Raum (gering halten ) Zahl zwischen 1 und 9
                                        ! // Das ist die Temperatur, die eingestellt wird, wenn erkannt wird, dass ein Verschluss eines Raumes geoeffnet ist (z.B bei nicht direktverknuepften Geraeten)
                                        var VerschlussAbsenkungsGrenze = 12;
                                        ! // erweitertetes Logging im ioBroker log bei true
                                        var debug = false;
                                        ! // Logging in externe Datei - Achtung der Pfad muss fuer MS-Windows bzw IOS angepasst werden
                                        var LogFlag = false; // logging enabled
                                        var LogPath = "/opt/iobroker/iobroker-data/HeizungsthermostatLOG.csv"; // Pfad und Dateiname des externen Logs
                                        var OnlyChanges = true; // bei true wird nur geloggt wennn eine neue Solltemperatur geschrieben wird
                                        ! // ICAL Einstellungen (erst nach Ersteinstellung Aktivieren)
                                        // Wenn keine Events genutzt werden, dann alles auf false setzen
                                        // die Events muessen entsprechend in ICAL angelegt werden, sonst gibt es Warnmeldungen im Log
                                        // Die Eventnamen koennen angepasst werden. Bitte die Logkik von ICAL unbeding beachten. (siehe Doku im Kapitel ICAL)
                                        var UseEventsGlobalParameter = false; // mit diesen Events koennen Urlaub Party etc geplant werden - Empfehlung erst im zweiten Schritt aktivieren
                                        var UseEventsGlobalProfilSelect = false; // Events mit denen das Profil umgeschaltet werden kann - fuer alle Raeume - Empfehlung erst im zweiten Schritt aktivieren
                                        var UseEventsRaumProfilSelect = false; // Events mit denen das Profil fuer einzelne Raeume umgeschaltet werden kann - Empfehlung erst im zweiten Schritt aktivieren
                                        var EventG_UrlaubAbwesend = "Urlaub_Abwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                                        var EventG_UrlaubAnwesend = "Urlaub_Anwesend"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                                        var EventG_Party = "Party"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                                        var EventG_Gaeste = "Gaeste"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                                        var EventG_Abwesend = "Keiner_DA"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                                        var EventG_Feiertag = "Feiertag"; // dieses Event muss in ICAL angelegt werden wenn UseEventsGlobalParameter = true ist
                                        ! // Die folgenden EVENT Texte muessen in ICAL angelegt werden. Sobald die Texte im google Kalender
                                        // aktiv sind wird das Event fuer die Heizungsthermostatsteuerung ausgewertet.
                                        // Achtung die Zeichen <> und der Text innerhalb dieser Klammer duerfen nicht geaendert werden
                                        // siehe Dokumentation fuer mehr infos
                                        var UseEventG_Profil = "Global_Profil_<profilnummer>"; // Events mit denen das Profil umgeschaltet werden kann - muss in ICAL angelegt werden wenn UseEventP_Profil = true ist
                                        var UseEventR_Profil = "<raumname>Profil<profilnummer>"; // Events mit denen das Raumprofil umgeschaltet werden kann - muss in ICAL angelegt werden wenn UseEventsRaumProfilSelect = true ist
                                        ! // Integration zur Anwesenheitsermittlung -
                                        var UseAnwesenheitserkennung = false; // wenn true, dann wird die o.g. Anwesenheitsvariable genutzt - Empfehlung erst im zweiten Schritt aktivieren
                                        var StateAnwesenheitFunction = JSPath + "Anwesenheitssteuerung.Userlist.JemandDa"; // Wenn UseAnwesenheitserkennung = true, dann muss der Pfad angepasst werden
                                        ! // Integration zum Feiertagskalender -
                                        var UseFeiertagskalender = false; // wenn der Kalender genutzt wird bitte auf true setzen - Empfehlung: Feiertagsadapter installieren und auf true setzen
                                        var StateFeiertagHeuteAdapter = "feiertage.0.heute.boolean"; // wenn UseFeiertagskalender, dann wird dieser Pfad verwendet
                                        var StateFeiertagMorgenAdapter = "feiertage.0.morgen.boolean"; // wenn UseFeiertagskalender, dann wird dieser Pfad verwendet wenn es darum geht den nächsten Schaltpunkt zu ermitteln wenn dieser am nächsten Tag liegt
                                        ! //------------------------------------------------------------------------------
                                        // Ende USER Einstellungen
                                        // Usereinstellungen sind Einstellungen, die ueblicherweise gemacht werden
                                        //------------------------------------------------------------------------------
                                        ! //------------------------------------------------------------------------------
                                        // Beginn Experteneinstellungen
                                        // Experteneinstellungen sollten nur geamcht werden, wenn die Logik des Programmes bekannt ist
                                        //------------------------------------------------------------------------------
                                        ! // Pfad zum Anwesenheitsflag der Hz-Steuerung - wird parallel zum Adapter gehalten
                                        var StateAnwesenheit = JSPath + "Heizung.Heizplan.GlobaleParameter.Anwesenheit";
                                        ! // Pfad zum Feiertagskennzeichen der Hz-Steuerung - wird parallel zum Adapter gehalten
                                        var StateFeiertagHeute = JSPath +"Heizung.Heizplan.GlobaleParameter.Feiertag_Heute";
                                        ! // die States sollten moeglichst so belassen werden - das Programm laesst aber Aenderungen zu
                                        var StatePartyjetzt = Gparameterpath + ".Partyjetzt"; // ID Party Jetzt flag
                                        var StateGaesteDa = Gparameterpath + ".GaesteDa"; // ID Gaeste da flag
                                        var StateUrlaubAnwesend = Gparameterpath + ".Urlaub_Anwesend"; // Wenn kein Arbeitstag, dann wird der Tag wie ein Sonntag behandelt
                                        var StateUrlaubAbwesenheit = Gparameterpath + ".Urlaub_Abwesend"; // Temperaturabsenkung wenn laengerer Urlaub eingetragen ist
                                        var StateHeizperiode = Gparameterpath + ".Heizperiode"; // Wenn Heizperiode false werden alle Ventile geschlossen
                                        ! // Die ThermostatTypeTab definiert die Thermostat Typen. So sollte es moeglich sein auch z.B. HM-IP einzubinden
                                        // Achtung zentrale Steuerungen muessen immer zuerst eingetragen sein.
                                        // Steuerung zentral heisst, dass dieses Geraet evt abhaengige Geraete steuert, wenn false, dann werden abhaengige Geraete gleich behandelt
                                        // Wenn mit Direktverbindungen gearbeitet wird dann MUSS zentrale Steuerung auf true stehen
                                        var ThermostatTypeTab = [];
                                        // 0.RPC-Pfad 1.GeraeteType 2. Beschreibung, 3. Type 4.DP-SollTemp 5.nicht verwendet ID 6.DP MANU/AUTO Schaltung 7.Steuerung DV 8. IstTemp 9-Check-MANU-Mode 10-Ventilstellung wenn nicht Heizperiode 11. Delay nach Verschluss zu
                                        ThermostatTypeTab[0] = ['hm-rpc.0.', 'HM-TC-IT-WM-W-EU', 'Wandthermostat (neu)' ,'WT', '2.SET_TEMPERATURE' , false, '2.MANU_MODE', true, '1.TEMPERATURE', '2.CONTROL_MODE', 12, 0];
                                        ThermostatTypeTab[1] = ['hm-rpc.0.', 'HM-CC-TC' , 'Wandthermostat (alt)' ,'WT', '2.SETPOINT' , false, false, false, '1.TEMPERATURE', false, 12, 0];
                                        ThermostatTypeTab[2] = ['hm-rpc.0.', 'HM-CC-RT-DN' , 'Heizkoerperthermostat(neu)' ,'HT', '4.SET_TEMPERATURE' , false, '4.MANU_MODE', true, '4.ACTUAL_TEMPERATURE', '4.CONTROL_MODE', 12, 0];
                                        ThermostatTypeTab[3] = ['hm-rpc.1.', 'HmIP-eTRV' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0];
                                        ThermostatTypeTab[4] = ['hm-rpc.1.', 'HmIP-eTRV-2' , 'Heizkoerperthermostat(HMIP)','IPHT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0];
                                        ThermostatTypeTab[5] = ['hm-rpc.1.', 'HmIP-WTH' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0];
                                        ThermostatTypeTab[6] = ['hm-rpc.1.', 'HmIP-WTH-2' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', false, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0];
                                        ThermostatTypeTab[7] = ['hm-rpc.1.', 'HmIP-STH' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0];
                                        ThermostatTypeTab[8] = ['hm-rpc.1.', 'HmIP-STHD' , 'Wandthermostat(HMIP)' ,'IPWT', '1.SET_POINT_TEMPERATURE', false, '1.CONTROL_MODE', true, '1.ACTUAL_TEMPERATURE', '1.CONTROL_MODE', 12, 0];
                                        ! // Tabelle fuer Nicht HM Thermostate - Details finden sich in der Dokumentation
                                        // wurde zum Testen verwendet, da auch virutelle Thermostate verwaltet werden koennen.
                                        // Wenn nicht HM Geraete korrekt in ioBroker angebunden sind sollten diese auch ueber die Tabelle ThermostatTypeTab konfigurierbar sein
                                        //Spalte 1 = Raumname wie in der CCU hinterlegt
                                        //Spalte 2 = Erster Teil des Datenpunktpfades mit Instance wie z.B. "hm-rpc.0"
                                        //Spalte 3 = Zweiter Teil des Datenpunktpfades mit der ID des Geraetes z.B. "MEQ0183268"
                                        //Spalte 4 = Dritter Teil des Datenpunktpfades mit dem Datenpunkt der die Solltemperatur des Geraetes einstellt z.B. "4.SET_TEMPERATUR"
                                        //
                                        var NoneHMTab = [];
                                        // 0 = Raum 1 = Datenpunkt bis vor Geraet 2=Datenpunkt Geraet 3=Datenpunkt SollTemp 4= Ventilstellung bei NichtHeizperiode
                                        NoneHMTab[0] = ['initial', 'javascript.0.Heizung', 'zwave1', '4.SET_TEMPERATURE', 12];
                                        NoneHMTab[1] = ['initial', 'ZWAVE.0', 'zwa0183xxx', '4.SET_TEMPERATURE', 12];
                                        NoneHMTab[2] = ['initial', 'maxcube.0.devices', 'thermostat_197b0b', 'setpoint', 12];
                                        ! // Typen-Tabelle der Verschlusssensoren fuer Homematic Geräte
                                        // 6 = Verschlussstatus = false ist gechlossen
                                        var SensorTypeTab = [];
                                        // 0.RPC-Pfad 1.GeraeteType 2. Beschreibung, 3.Type 4.DP Status 5.nicht verwendet 6. Verschlussstatus 7. direktverknuepft
                                        SensorTypeTab[0] = ['hm-rpc.0.', 'HM-Sec-SCo' , 'Fenstersensor (neu)' , 'HM', '1.STATE' , false, false, true ];
                                        SensorTypeTab[1] = ['hm-rpc.0.', 'HM-Sec-SC' , 'Fenstersensor (alt)' , 'HM', '1.STATE' , false, false, true ];
                                        SensorTypeTab[2] = ['hm-rpc.0.', 'HM-Sec-RHS' , 'Fenster-Drehgriffkontakt', 'HM', '1.STATE' , false, false, true ];
                                        SensorTypeTab[3] = ['hm-rpc.0.', 'HM-Sec-SC-2', 'Fenstersensor-2 (alt)' , 'HM', '1.STATE' , false, false, true ];
                                        SensorTypeTab[4] = ['hm-rpc.1.', 'HMIP-SWDO' , 'Fenstersensor (HMIP )' , 'IPSE', '1.STATE' , false, false, true ];
                                        SensorTypeTab[5] = ['hm-rpc.2.', 'HMW-Sen-SC-12-DR','Schließerkontakt HMW' , 'HM', '1.STATE' , false, false, false ];
                                        ! // Tabelle der Verschlusssensoren fuer NichtHomematic Geräte
                                        // 5 = wenn script die Absenktemperatur setzen soll, dann false
                                        var NoneHMSenorTab = [];
                                        // 0= Raum 1 = Datenpunkt vis vor Geraet 0.RPC-Pfad 2. Datenpunkt Geraet 3. Datenpunkt FensterstatusGeraeteType 4.Verschlussstatus bei geschlossen 5. TempAbsenkung automatisch,
                                        NoneHMSenorTab[0] = ['initial', 'javascript.0.Heizung', 'zwave1' , '1.State' , false, false];
                                        NoneHMSenorTab[1] = ['initial', 'fhem.0', 'OG_DU_TF' , 'state' , 'closed', false];
                                        NoneHMSenorTab[2] = ['initial', 'maxcube.0.devices', 'contact_0a9d75', 'opened', false, true];
                                        ! // Mit der Tabelle OverruleTab kann die Logik der Temperaturanpassungen beeinflusst werden (Sobald eine Anpassung erfolgt wird der Vorgang Overrule abgebrochen)
                                        // Die Tabelle kann als Prioritätenliste verstanden werden, wenn mehrere Parameter gleichzeitig zutreffen sollten.
                                        // Die Logik wird fuer jeden Raum ausgefuehrt
                                        var OverruleTab = [];
                                        OverruleTab[0] = ["Abwesenheit"]; // Bei Abwesenheit wird die Temperatur der entsprechend Eisntellung abgesenkt
                                        OverruleTab[1] = ["UrlaubAnwesend"]; // Urlaubsanwesenheit / beeinflusst nicht direkt die Solltemp - ist aber wichtig fuer die Schedule Findung
                                        OverruleTab[2] = ["UrlaubAbwesend"]; // Urlaubsabwesenheit -
                                        OverruleTab[3] = ["Gaeste"]; // Temperatur Anhebung
                                        OverruleTab[4] = ["Party"]; // Partyabsenkung
                                        ! // Bei Verwendung des Widgets Select-value List werden die Temperaturen nicht als Grad gespeichert
                                        var VerwendungSelectValue = true;
                                        ! // Weitere Pfade fuer die globalen Parameter - Empfehlung ist keine Aenderung vorzunehmen
                                        var StatePP_PartyAbsenkung = "ProfilParameter_PartyAbsenkung";
                                        var StatePP_GaesteAnhebung = "ProfilParameter_GaesteAnhebung";
                                        var StatePP_AbwesenheitAbsenkung = "ProfilParameter_AbwesenheitAbsenkung";
                                        var StatePP_UrlaubAbsenkung = "ProfilParameter_UrlaubAbsenkung";
                                        var StatePP_UrlaubWieFeiertag = "ProfilParameter_UrlaubWieFeiertag";
                                        var StatePP_MinimaleTemperatur = "ProfilParameter_MinimaleTemperatur";
                                        ! // UserExit Einstellungen
                                        // UserExits koennen genutzt werden, um die manuelle Temperatur von selbstdefinierten Abhängigkeiten zu steuern
                                        // Beipiel Steuerung von ElektroKonvektoren abhängig vom Energieertrag einer PV
                                        // Es koennen beliebig viele Eintragungen gemacht werden
                                        //
                                        // Die Datenpunkte werden nicht angelegt sondern muessen separat angelegt wreden
                                        ! // UserEexitTab Tabellendefinition:
                                        // 0 = Datenpunkt = Pfad Datenpunkt aufgrund dessen eine Reaktion erfolgen soll und Definition bei welchem Ereignis eine Reaktion erfolgen soll
                                        // 1 = Name der Routine - Routine muss im Userexit definiert sein
                                        // 2 = Operand - zulaessige Operanden sind
                                        // groesser = "valGt"
                                        // groesser gleich = "valGe"
                                        // kleiner = "valLt"
                                        // kleiner gleich = "valLe"
                                        // gleich = "val"
                                        // ungleich = "valNe"
                                        // beliebiege Aenderung = "Any"
                                        // 3 = Wert - Vergleichswert der die Routine auslöst (im Zusammenhang mit dem Operanden
                                        // Sobald eine Bedingung zutrifft wird der UserExit aufgerufen. Die zugehoerige Routine wird zu anfang des UserExits ermittelt und kann dann weiterverarbeitet werden
                                        // Rueckgabe des UserExits ist ein Raumname sowie eine manuelle Temperatur und Gueltigkeit in Minuten. Die Temperatur wird dann entsprechend mit der Gueltigkeit gesetzt
                                        // ist die manuelle Temperatur = 0 wird eine evt. vorher eingestellte manuelle Temperatur gelöscht und die neue SollTemperatur wird anhand des schedules ermittelt
                                        ! var UserExitTab = [];
                                        // 0 = Datenpunkt 1= Routine 2=Operand 3= Vergleichswert
                                        UserExitTab[0] = ['initial', 'TriggerHeatingOn', 'valGt', 100 ];
                                        UserExitTab[1] = ['initial', 'TriggerHeatingOff', 'valLt', 0 ];
                                        ! // es sind 5 globale Tabellen vordefiniert. Werden diese im UserExit befuellt bleiben die Werte erhalten für den nächsten Aufruf
                                        var UserExitValueTab1 = [];
                                        var UserExitValueTab2 = [];
                                        var UserExitValueTab3 = [];
                                        var UserExitValueTab4 = [];
                                        var UserExitValueTab5 = [];
                                        ! //------------------------------------------------------------------------------
                                        // Ende Experteneinstellungen
                                        //------------------------------------------------------------------------------</profilnummer></raumname></profilnummer>

                                        1 Reply Last reply Reply Quote 0
                                        • L
                                          looxer01 last edited by

                                          @quorle:

                                          aber so doof wie ich kann man sich doch gar nicht anstellen `
                                          Machst du nicht.

                                          Im Idealfall muss nichts eingestellt werden und alles läuft. Manchmal gibts halt Probleme mit den Aufzählungen.

                                          Irgendwie ging ich davon aus, dass du keine Homematic Thermostate hast ?

                                          Also, wenn du welche hast, dann müssen die Gewerke und Räume stimmen.

                                          Am besten siehst du das, wenn du mal in die Objektliste schaust. Wenn alles klar ist, dann siehst du, dass Räume und Gewerke den Thermostaten zugeordnet sind. (natürlich nur bei Homematic Geräten.)

                                          Wenn sie nicht zugeordnet sind, dann hast du schon das Problem. Ich kann dann auch gerne mal mit dir gemeinsam per Teamviewer drüberschauen.

                                          vG Looxer

                                          1 Reply Last reply Reply Quote 0
                                          • Q
                                            quorle last edited by

                                            Also ich schreibe noch einmal alles zusammen, um eine bessere Übersicht zu bekommen.

                                            Verwendete Sensoren und Thermostate sind alle von EQ-3, sprich HomeMatic Produkte.

                                            Als Schnittstelle nutze ich das Programm Homegear, wo alle auch eingetragen sind.

                                            Händisch habe ich eine " enum.functions " in ioBroker erstellt und die Gerätschaften zugeordnet:

                                            Fensterkontakt –> verschluss

                                            Thermostat --> heizung

                                            Die " enum.rooms habe ich auch erstellt und die Sensoren und Aktoren diesen zugeordnet.

                                            5278_aufz_hlungen.png

                                            Hier die noch einmal meine Geräteliste:

                                            5278_objekte.png

                                            Nun zum VIS:

                                            Ich habe den VIEW erst einmal unverändert kopiert mit CTRL + C und eingefügt. Im Anschluss habe ich im Widget " Status " alles den jeweiligen Aktoren und Sensoren zugeordnet ( die gleichen Kanäle wie im "original " Script ). Diese werden auch angezeigt und z.B. der BOOST funktioniert –> klar geht ja direkt auf den Thermostat.

                                            Jedoch ist es egal, ob ich z.B. einen manuellen Sollwert vorgebe und den manuellen Modus erzwinge, denn es passiert am Thermostat nichts.

                                            Sensoren und Thermostate sind in Homegear <u>nicht direkt miteinander Verknüpft</u>.

                                            Ical, usw.. habe ich noch nicht eingerichtet, da ich erst einmal ohne diese Funktion testen wollte. Das dürfte ja nichts ausmachen? Oder muss man zusätzlich noch irgendetwas anderes an Dateien erstellen?

                                            Wenn ihr noch irgendwelche Infos braucht, dann bitte einfach fragen 😉

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            506
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            climate heating javascript template
                                            115
                                            1127
                                            323709
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo