Ankündigung

Einklappen
Keine Ankündigung bisher.

UZSU Einmal-Aktion

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

    UZSU Einmal-Aktion

    Hallo,

    ich suche nach einer Möglichkeit, über das UZSU-Plugin (oder ein ähnliches Plugin) ein einmaliges Event zeitgesteuert zu planen.
    Anwendungsfall wäre beispielsweise eine einmalige Brauchwasserzubereitung außerhalb der normalen Zeiten (bei früher geschäftlicher Abfahrt).

    Ist euch eine solche Möglichkeit bekannt bzw. hat jemand eine Idee, wie so etwas realisiert werden könnte?

    Viele Grüße

    #2
    Hallo,
    was genau willst Du machen?
    Meinst Du mit "einmaliges Event zeitgesteuert" wirklich einmalig oder einmalig pro Woche, Tag, ....?

    Kommentar


      #3
      Wirklich einmalig, zeitgesteuert.

      Ich muss am Montag um 4:30 Uhr auf Geschäftsreise. Daher will ich am Montag ausnahmsweise um 3:30 Uhr die Warmwasserbereitung starten. Alle anderen Wochentage aber auch den Montag darauf ist diese Aktion nicht erforderlich.

      Anderes Beispiel: meine Bewässerungsanlage ist nicht voll automatisiert. Ich entscheide also am Abend zuvor, ob und wie lange am nächsten Morgen bewässert werden soll.

      Kommentar


        #4
        Also ich würde da über das Admin Interface gehen und eine kleine Logik schreiben:
        Code:
        #!/usr/bin/env python3
        # test_timer_setzen.py
        
        # lokale Zeitzone holen
        tz = sh.tzinfo()
        
        #Startzeit festlegen
        starttime = datetime.datetime(2021, 11, 1, 3, 30, 0, 0, tz)
        
        #Wert festlegen
        value = 1
        
        # zu setzendes Item festlegen
        item = sh.Warmwasseraufbereitung.Licht # keine Klammern () setzen!
        
        #item.remove_timer() wenn es keinen anderen Timer geben soll
        caller = 'Timer'
        #normalerweise sowas:  sh.scheduler.add(item._itemname_prefix+item.id() + '-Timer', item.__call__, value={'value': value, 'caller': caller}, next=starttime)
        # aber dann kommt ein normaler Timereintrag dazu und löscht den raus. Also anderer Timer-Name:
        sh.scheduler.add(item._itemname_prefix+item.id() + '-OneShotTimer', item.__call__, value={'value': value, 'caller': caller}, next=starttime)
        PS: Du solltest die dann natürlich als Trigger auf init setzen falls SHNG in der Zwischenstart aus irgendwelchen Gründen neu startet und im Admin Interface solltest Du die auch einmal auslösen damit der OneShotTimer auch gesetzt wird.
        Zuletzt geändert von bmx; 31.10.2021, 07:29.

        Kommentar


          #5
          Ich suche im Prinzip dafür auch noch eine Lösung. In meinem Fall: Über die SmartVisu einen Knopf, mit dem dann gesagt werden kann: "Fahre das Dachfenster in 2h zu" oder so etwas (Lüften im Sommer in der Nacht). Also etwas, das unabhängig von bestehenden Zeitplänen läuft. Sowas lässt sich halt nicht vollautomatisieren/vorherplanen. In einer perfekten Welt würde diese Funktion auch noch die Koordination mit Messwerten / Items zulassen, also in meinem Fall: "Fahre spätestens in 3h zu, aber auf jeden Fall früher, wenn die Außentemperatur wieder über 22 Grad geht". Nur wie man das "Usable" hinbekommt...

          Kommentar


            #6
            Das ist ja ein Zeitpunkt mit Stand von Items verknüpft. Dazu ist doch eigentlich eher eine Logik für da? Immerhin kannst Du die ja im laufenden Betrieb auch neu laden und ggf. auch triggern. Ich sehe aktuell keine Möglichkeit das in die uzsu zu integrieren

            Kommentar


              #7
              Ich würde das auch nicht in die UZSU packen, sondern eher eine UI-Integration suchen die z.B. über eine irgendwie geartete Schnittstelle onetime-triggers anlegt. Die technische Implementierung ist mir erstmal egal.
              Nur kann ich meiner Frau nicht sagen "Programmier Dir mal eben ne Logik, damit das Dachfenster heute Nacht zu fährt."
              An der UZSU ist das aber auch nicht soooo richtig, weil man dort eher mit Regeln/Sequenzen arbeitet, die immer wiederkehrend sind - und eben nicht sowas sind wie "für morgen 11:00" oder "wenn's wieder warm wird". Für letzteres kann ICH natürlich eine Logik bauen, aber dann ist der zeitliche Aspekt wieder festgenagelt. Das Problem ist weniger ein "wie kann man das technisch lösen" (Microsoft Mitte der 2000er), sondern eher: "Wie kann man das einfach bedienbar machen" (Apple Mitte der 2000er).

              Kommentar


                #8
                Wäre es für dieses konkrete Beispiel möglich…

                Nehmen wir an die Heizung hört auf die GA 1/1/1 und die Zirkulationspumpe auf 1/1/2.

                Eine Eingabemaske wo die GA(s) eingetragen werden sowie Uhrzeit/Datum und evtl. noch eine Anzahl.

                Das gar nicht der Umweg über die Items gemacht werden muss.

                oder gleich einen cronjob programmieren.


                Kommentar


                  #9
                  Basic.trigger kann einer Logik einen Parameter mitgeben, der allerdings im Aufruf des Widgets schon festgelegt sein muss. Immerhin kann man damit eine Tastergruppe bauen, die z.B. die Zeiten angibt: schließe das Dachfenster in 1, 2, 3... Stunden. Ein clock.countdown kann dann die verbleibende Zeit herunter zählen. Weitere Bedingungen könnte man über Hilfsitems per Select-Menü einstellen. Die Werte eines Select können entweder als Parameter im Aufruf übergeben werden, oder über ein List-item.

                  Kommentar


                    #10
                    Wenn da der Bedarf so groß ist könnte sich ja auch jemand an das Blockly-Plugin setzen und das damit versuchen...

                    Kommentar


                      #11
                      Es müsste ne simel iftt version geben, bei einer maschinensteuerung hatte ich mal sowas ähnliches gesehen, da konnt man mit mehreren hintereinandergeschalteten dropdowns ne logik zusammendrücken, (und, oder, true, false, variablen)

                      Die frage is nur, wie bekommt man dann zb ne liste aller items in die Sv?

                      Kommentar


                        #12
                        Die ist da schon drin (masteritem.json) ;-) OK, das klingt nach nem Ansatz. Erstmal einfach - dann mal schauen was so geht. Ich denk da mal drauf rum! Bonze , danke für den Ansatz. Ach ja - Zeit ist ja auch nur ein „Item“ - wäre dann also der erste „primitive“ Fall.

                        Kommentar


                          #13
                          Optisch war das an sowas angelehnt
                          https://de.m.wikipedia.org/wiki/Kontaktplan
                          daraus liesse sich ein eval syntax generieren o.ä....

                          Kommentar


                            #14
                            Blockly ist da deutlich cooler

                            Kommentar


                              #15
                              Klar aber für nenn laien schwerer zu verstehen

                              Kommentar

                              Lädt...
                              X