Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu anwesenheits bzw heizungs rule

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Frage zu anwesenheits bzw heizungs rule

    Hallo an Alle :-),
    ich beschäftige mich derzeit mit ein paar rules für einen ECO Modus der Heizung.
    jetzt wollte ich fragen ob das hier so funktionieren könnte?
    Wäre super wenn sich das jemand kurz anschauen würde.
    Danke im Voraus.
    Gruß Pedro

    Code:
    rule "Eco-Wohnzimmer"
    
    when
    Item Anwesenheit_Chrissi changed from ON to OFF
    
    then
    if (Anwesenheit_Pedro.state= "OFF")
    sendCommand(Thermostat_Wohnzimmer_Soll, 18)
    
    end
    
    rule "Eco-Wohnzimmer-zwei"
    
    when
    Item Anwesenheit_Pedro changed from ON to OFF
    
    then
    if (Anwesenheit_Chrissi.state= "OFF")
    sendCommand(Thermostat_Wohnzimmer_Soll, 18)
    
    end
    
    rule "Eco-Wohnzimmer-drei"
    
    when
    Item Anwesenheit_Chrissi changed from OFF to ON or
    Item Anwesenheit_Pedro changed from OFF to ON
    
    then
    sendCommand(Thermostat_Wohnzimmer_Soll, 21)
    
    end

    #2
    Ich glaube das OFF darf nicht in Hochkommas.

    Gruß

    Kommentar


      #3
      Genau, "OFF" (mit Anführungszeichen) ist ein String, während OFF (ohne Anführungszeichen) ein state ist. Tipp am Rande: In dem Fall reicht eine Rule locker aus:
      Code:
      rule "Eco-Wohnzimmer"
      when
          Item Anwesenheit_Chrissi changed or
          Item Anwesenheit_Pedro changed
      then
          if (Anwesenheit_Chrissi.state == OFF && Anwesenheit_Pedro.state == OFF)
              sendCommand(Thermostat_Wohnzimmer_Soll, 18)
          else
              sendCommand(Thermostat_Wohnzimmer_Soll, 21)
      end
      Es gibt noch etwas zu berücksichtigen, was bei den Einzelrules allerdings auch noch zu erwähnen wäre: Falls einer der beiden states uninitialized ist, wird niemals die Absenkung aktiviert. Bei den Originalrules kommt noch hinzu, dass sie beim ersten Event nicht triggern, also beim Wechsel von uninitialized auf ON oder OFF.

      Kommentar


        #4
        Cool danke. ja ich muss mich da noch mehr reindenken und reinlesen. Bis jetzt hat der Designer bei meinen & & Sachen immer gemeckert :-).

        Was meinst den genau mit uninitialized? Wenn das Program es mal nicht erkennt? gruß Pedro

        Kommentar


          #5
          Du könntest auch die beiden Items "Anwesenheit_x" in eine Gruppe stecken und im "when" der Rule auf die Gruppe lauschen. Wenn mann mal Kinder, Hunde oder ähnliches beim Heimkommen schön warm haben wollen, dann musste du an der Rule nichts ändern, sondern nur neue Items "Anwesenheit_x" anlegen.

          müsste so in etwa funktionieren (nicht getestet)

          Code:
          // im Item File:
          Group Anwesenheiten
          Switch Anwesenheit_Chrissi (Anwesenheiten)
          Switch Anwesenheit_Pedro (Anwesenheiten)
          
          rule "Eco-Wohnzimmer"
          when Item Anwesenheiten changed then
          
          if (Anwesenheiten?.allMembers.filter(a | a.state == ON).size > 0)
            Thermostat_Wohnzimmer_Soll.sendCommand(21)
          else
            Thermostat_Wohnzimmer_Soll.sendCommand(18)
          end

          Kommentar


            #6
            Solange ein Item "noch nie" einen Wert zugewiesen bekommen hat, ist es uninitialized. Dieses "noch nie" bezieht sich auf den Programmstart von openHAB bzw. das Ändern an einer .items-Datei, sobald Du also an einer .items-Datei etwas änderst, sind alle Items anschließend uninitialized, bis sie auf die eine oder andere Weise wieder einen definierten Wert erhalten - z.B. auch durch restoreOnStartup, oder halt durch eine Wertänderung oder ein Update durch ein Binding.

            Die Variante mit der Gruppe ist natürlich viel eleganter, schon wegen der Universalität, leider aber auch für Einsteiger nicht gerade intuitiv

            Kommentar


              #7
              Ich möchte mich wirklich für eure Unterstützung bedanken. Habe jetzt erstmal das für mich einfachere Beispiel genommen :-) (funktioniert, super) mit der Zeit fuchse ich mich sicher noch weiter in die eleganteren Sachen rein. Vielen Dank nochmal

              Kommentar

              Lädt...
              X