Ankündigung

Einklappen
Keine Ankündigung bisher.

Beispiele für Logikprozessor.pl (Temperaturen)

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

    [WireGate-Plugin] Beispiele für Logikprozessor.pl (Temperaturen)

    Hallo,

    der eigentliche Beitrag zum Logikprozessor.pl ist inzwischen sehr groß und unübersichtlich geworden.

    die Beispiele die dabei sind, sind sehr gut aber nicht immer Verständlich.

    Daher habe ich mir gedacht, ich beginne einen neuen Beitrag,
    in dem nur Beispiele besprochen und Diskutiert werden bei denen es um Temperaturen geht.
    --
    Gruß
    Lothar

    #2
    Rollo Toggelt wenn die Ausentemperatur um einen Schwellwert schwankt?

    Hier nun mein Problem:

    Ich möchte abhängig von der Außentemperatur alle Rollos schließen.

    Die Außentemperatur wird per 1Wire gemessen.
    Daher den memory, damit ich ich jederzeit die Temperatur auslesen kann, auch wenn gerade nichts gesendet wird.

    Hier mein Code.

    Code:
    #Ausentemp
    # 0/0/46 Rollo soll (stufenlos) Flur
    # 14/5/1 Ausentemperatur
    memory => { transmit=>'14/5/1' },
    aussen_zu_warm => {
            receive => '14/5/1',
            transmit => '0/0/46',
            translate => sub {
                    return ( $input > 26 ) ? 100 : 0;
                    },
            debug => 1
            },
    Wenn nun die Temp zwischen 26 und 27 Grad schwankt wird dauern 0 bzw 100 gesendet und daher fährt der Rollo dauernd auf und zu.

    Nun würde ich gerne den Rollo bei 27 Grad schließen und erst wider bei 22 Graf öffnen.

    Frage:
    1) Wie würde hierzu die Logig aussehen?

    2) Kann ich wenn ich mehrere transmit definiere auch mehrere Rollos gleichzeitig steuern?

    Gruß
    Lothar
    --
    Gruß
    Lothar

    Kommentar


      #3
      Für mich ist der Logikprozessor auch neu (aber ich liebe die theoretischen Möglichkeiten insbesondere in Verbindung mit dem Sonnenstands- und Timer-plugin jetzt schon).

      Ich kann dir daher nur theoretisch antworten, wie es nach meiner Einschätzung gehen müsste:

      1) Wie würde hierzu die Logig aussehen?
      Müsste das nicht gehen:
      PHP-Code:
      aussen_zu_warm => {receive => '14/5/1',transmit => '0/0/46'translate => sub {return ( $input 26 ) ? 100; }, debug => 1},
      aussen_zu_kalt => {receive => '14/5/1',transmit => '0/0/46'translate => sub {return ( $input 22 ) ?   0; }, debug => 1
      2) Kann ich wenn ich mehrere transmit definiere auch mehrere Rollos gleichzeitig steuern?
      Ich wüsste nicht, warum das nicht gehen sollte. Eleganter wäre es evtl aber, wenn du die entsprechenden Rollos in eine gemeinsame GA legst (per ETS) und dann nur diese ansprichst.

      PS: Ich habe langfristig ähnliches vor, aber ich glaube, dass dein Ansatz über die Außentemperatur nicht der Beste ist (aber schön um erstmal in die Thematik rein zu kommen). Der meiste Wärmeeintrag findet wohl weniger über die Außentemperatur, als über die Sonne statt.

      Im perfekten Fall fährst du also nur die Rollos runter, die a) der Sonne zugewandt sind und b) nur wenn auch wirklich die Sonne scheint.
      a) klappt noch mit emux-sonne-Plugin.
      Für b) brauchst du dann einen Sonnensensor (dafür gab's aber auch eine günstige Idee im Emux-Sonnen-Thema (1-wire Sensor in dunkler Masse in Glasflasche im Außenbereich --> Masse heiß = Sonne scheint, Masse kalt=kein Sonnenschein). Alternativ eben eine Wetterstation oder den 1wire Lichtsensor, der Ende des Jahres raus kommen soll.

      Grüße
      Guste

      Kommentar


        #4
        Zitat von guste100 Beitrag anzeigen
        Für b) brauchst du dann einen Sonnensensor (dafür gab's aber auch eine günstige Idee im Emux-Sonnen-Thema (1-wire Sensor in dunkler Masse in Glasflasche im Außenbereich --> Masse heiß = Sonne scheint, Masse kalt=kein Sonnenschein). Alternativ eben eine Wetterstation oder den 1wire Lichtsensor, der Ende des Jahres raus kommen soll.
        Das wird es definitiv schneller geben, weil die Testphase abgeschlossen und wir bereits in der Produktionsvorbereitung sind.

        Folgende Varianten:
        • Z-Serie: Umgebungslichtsensor zum Einbau in die Zentralplatte des Berker-Sensoreinsatzes. Ideal zum Aufrüsten eines BMS oder AMS der B-Serie. (B und Z stehen hier für Gehäuse / Einbauvarianten). Damit lässt sich der Lichteintrag im Raum sehr gut messen. Empfindlichkeit und Auflösung sind enorm. Verfügbar in drei Versionen ab spätestens 15. Mai 2013 (evt. auch ein paar Tage früher). Näheres hier in unseren News: News
        • C-Serie: Umgebungslichtsensor in einem sehr "compacten" AP-Gehäuse. Wird in ähnlichen Varianten verfügbar sein wie bei der Z-Serie. Hier sind wir auch bereits in Produktionsvorbereitung, ich hoffe auf Verfügbarkeit bis Mitte / Ende Juni. Vorab-Test von Greentux hier: https://knx-user-forum.de/forum/supp...wiregate/25691
        • R-Serie: Eine spezielle Variante für das Dach in einem größeren, sehr robusten Außengehäuse mit Klarsicht-Deckel. Darin eine PV-Zelle, ein Umgebungslichtsensor und zwei Temperatursensoren, einer misst die Temperatur der weissen Platine und der andere die der dunklen Solarzelle. Aus allen Werten läßt sich die Globalstrahlung als auch deren photometrische Entsprechung (Beleuchtungsstärke) berechnen. Haben wir bisher geheim gehalten . Hier denke ich eher an Ende Juni bis Mitte Juli 2013.

        lg


        Stefan

        Kommentar


          #5
          Zitat von lo4dro Beitrag anzeigen
          Die Außentemperatur wird per 1Wire gemessen.
          Daher den memory, damit ich ich jederzeit die Temperatur auslesen kann, auch wenn gerade nichts gesendet wird.
          Nein, die memory-Logik ist dafür nicht geeignet. Nimm bitte dafür die Option eibd_cache=>1000 (oder so) und sorge dafür, dass der zu empfangende Wert oft genug (hier: mindestens alle 1000s) gesendet wird.

          Code:
          aussen_zu_warm => {
                  receive => '14/5/1',
                  transmit => '0/0/46',
                  translate => sub {
                          return ( $input > 26 ) ? 100 : 0;
                          },
                  debug => 1
                  },
          Wenn nun die Temp zwischen 26 und 27 Grad schwankt wird dauern 0 bzw 100 gesendet und daher fährt der Rollo dauernd auf und zu.

          Nun würde ich gerne den Rollo bei 27 Grad schließen und erst wider bei 22 Graf öffnen.
          ungefähr so:

          Code:
          aussen_zu_warm => {
                  receive => '14/5/1', eibd_cache=>1000,
                  transmit => '0/0/46',
                  translate => sub {
                          return 100 if int($input)>=27;
                          return 0 if int($input)<=22;
                          return undef; # sende in diesem Fall nichts
                          },
                  debug => 1
                  },
          2) Kann ich wenn ich mehrere transmit definiere auch mehrere Rollos gleichzeitig steuern?
          Nicht mit mehreren transmits - Perl-Hashes brauchen immer eindeutige Schlüssel. Es geht aber mit sowas wie transmit=>['1/2/3','1/2/4'] usw.

          VG, Fry

          Kommentar

          Lädt...
          X