Ankündigung

Einklappen
Keine Ankündigung bisher.

Solarsteuerung für Pool

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

    Solarsteuerung für Pool

    Hallo zusammen,
    würde etwas Hilfe benötigen.

    Für meinen Pool möchte ich eine Solarsteuerung über ophenHAB realisieren.
    Ausgangssituation:
    Poolwasser läuft über die Filteranlage zum Wärmetauscher der Solarthermie, dann durch die Wärmepumpe und wieder zurück in den Pool.

    Ziel: Die Umwälzpumpe soll nur dann laufen, wenn genügend Wärme für den Wärmetauscher vorhanden ist, sprich wenn die Wassertemperatur kleiner ist als die Temperatur der Solarthermie.

    Pool_Temperatur = Wassertemperatur
    Pool_Temperatur_Solar = Termperatur Solarkreislauf
    Pool_Pumpe = Filteranlage
    Solarpumpe = Umwälzpumpe Solarthermie

    Code:
     [COLOR=#c586c0]rule[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#ce9178]"Solarpumpe"[/COLOR]
      [COLOR=#c586c0]when[/COLOR]
      [COLOR=#d4d4d4]    [/COLOR][COLOR=#569cd6]Item[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#4ec9b0]Pool_Pumpe[/COLOR][COLOR=#d4d4d4].[/COLOR][COLOR=#d4d4d4]state [/COLOR][COLOR=#d4d4d4]=[/COLOR][COLOR=#d4d4d4] [/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4] [/COLOR]
      [COLOR=#d4d4d4]    [/COLOR][COLOR=#c586c0]then[/COLOR]
      [COLOR=#d4d4d4]        [/COLOR][COLOR=#c586c0]if[/COLOR][COLOR=#d4d4d4] ([/COLOR][COLOR=#4ec9b0]Pool_Temperatur[/COLOR][COLOR=#d4d4d4] [/COLOR]<[COLOR=#d4d4d4] [/COLOR][COLOR=#4ec9b0]Pool_Temperatur_Solar[/COLOR][COLOR=#d4d4d4])[/COLOR]
      [COLOR=#d4d4d4]        sendCommand ([/COLOR][COLOR=#4ec9b0]Solarpumpe[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#b5cea8]ON[/COLOR][COLOR=#d4d4d4])[/COLOR]
      [COLOR=#d4d4d4]    [/COLOR][COLOR=#c586c0]else[/COLOR]
      [COLOR=#d4d4d4]        sencCommand ([/COLOR][COLOR=#4ec9b0]Solarpumpe[/COLOR][COLOR=#d4d4d4], [/COLOR][COLOR=#b5cea8]OFF[/COLOR][COLOR=#d4d4d4])[/COLOR]
      [COLOR=#c586c0]end[/COLOR]
    Leider zeigt die rule keine Wirkung.

    Die zweite Frage ist, wenn sich tagsüber die Wetterlage ändert sollte dies ja auch berücksichtigt werden.

    Hat jemand eine Idee bzw. schon eine Lösung gefunden?

    Vielen Dank schon mal.

    VG Andi

    #2
    Die Syntax für den Rule Trigger müsste:
    Code:
    when
    Item Pool_Pumpe changed to ON
    sein.

    Kommentar


      #3
      Zitat von crazyfx Beitrag anzeigen
      Die Syntax für den Rule Trigger müsste:
      Code:
      when
      Item Pool_Pumpe changed to ON
      sein.
      An das dachte ich auch schon. Dann wird jedoch nur einmal am Tag die rule abgefragt - oder?

      Kommentar


        #4
        Also, wenn du die Regel öfter abgefragt haben willst muß du etwas anders Denken.
        Es gibt zwei Möglichkeiten:
        Code:
        rule"Solarpumpe"
        when
            Item Pool_Temperatur changed
        then
        ...
        Hier wird die Rule jedesmal, wenn sich die Pooltemperatur ändert ausgeführt. Oder mit
        Code:
        rule"Solarpumpe"
        when
            Time cron "0 */5 * * * ?"
        then
        ...
        damit wird die Rule alle 5 Minuten ausgeführt.

        Desweiteren ist der Vergleich nicht korrekt. Der status muß für den Vergleich erst in eine Zahl gewandelt werden. Ich würde es so (es geht sicherlich eleganter) machen:
        Code:
        then
        val Temp_Pool= Pool_Temperatur.state as Number
        val Temp_Solar = Pool_Temperatur_Solar.state as Number
        if (Temp_Pool<Temp_Solar)
            Solarpumpe.sendCommand(ON)
        else
            Solarpumpe.sencCommand(OFF)
        end

        Kommentar


          #5
          Allerdings sollte man immer darauf gefasst sein, dass ein Item keinen gültigen Wert liefert. Was man als Trigger wählt, kann man auch diskutieren. Da müsste man aber ein paar Erfahrungswerte mit der Anlage haben. Grundsätzlich willst Du auch sicherlich nicht, dass die Pumpe ständig ein- und ausgeschaltet wird, da dies dem Motor nicht gut tut. Eine Variante wäre also tatsächlich, über Time cron zu gehen:
          Code:
          rule "Solarpumpe"
          when
              Time cron "0 */10 6-19 * 4-9 ?" // von April bis September von 6 bis 19 Uhr alle 10 Minuten
          then
              if(!(Pool_Temperatur.state instanceof Number)) {
                  logWarn("solarpumpe","Item Pool_Temperatur lieferte keine gültige Zahl: {}",Pool_Temperatur.state)
                  return;
              }
              if(!(Pool_Temperatur_Solar.state instanceof Number)) {
                  logWarn("solarpumpe","Item Pool_Temperatur_Solar lieferte keine gültige Zahl: {}",Pool_Temperatur_Solar.state)
                  return;
              }
              Solarpumpe.sendCommand(if((Pool_Temperatur.state as Number) < (Pool_Temperatur_Solar.state as Number)) ON else OFF)
          end
          Da die Rule nur alle 10 Minuten getriggert wird, wird die Pumpe auch mindestens 10 Minuten laufen bzw. ruhen, bevor wieder ein Schaltvorgang erfolgt. Die Einschränkung des Triggers ist hier willkürlich gewählt, aber nachts liefert eine Solarthermieanlage normalerweise keine Wärme mehr und irgendwann ist die Badesaison auch rum.

          Alternativ könnte man genauso auf die Solartemperaturänderung triggern, dann müsste man innerhalb der Rule halt Vorkehrungen treffen und mindestens eine Hysterese einbauen (z.B. ON bei mindestens 5°C Unterschied, OFF bei weniger als 1°C Unterschied), zusätzlich müsste aber immer noch ein Timer mit rein, um zu schnelles Schalten zuverlässig abzufangen.

          Kommentar


            #6
            Hey vielen Dank. Ihr seid der Hammer. Danke für die schnellen Antworten.
            Habe meine rule nach der Vorlage von udo1toni angepasst.
            10 Minuten nach dem Einschalten der Pumpe hatte sich die Solarpumpe wie gewünscht ausgeschalten
            Wassertemperatur: 25,3°C und Solartemperatur 22,9°C.
            Das Einschalten muss ich noch testen. Hoffentlich scheint bald die Sonne :-)

            Was ich in meiner Überlegung jedoch vergessen habe ist, dass wenn die Solarpumpe nicht läuft, sich die Temperatur des Solarkreislaufes ja kaum erhöhen kann.
            Hier bin ich am Überlegen, ob ich nicht die Solarpumpe alle Stunde mal kurz einschalten soll.

            Kommentar


              #7
              Ah. Ja, es kommt natürlich ein Stück weit darauf an, wo die Fühler sitzen

              Kommentar

              Lädt...
              X