Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Hilfsitem-Update alle 5min per crontab

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

    Problem mit Hilfsitem-Update alle 5min per crontab

    Hi

    Wie bereits im SmartVISU Bereich angesprochen habe ich ein Problem mit crontab in einem Item.

    Item:

    Code:
    E3DC:
        Leistung:
            PV:
                type: num
                knx_dpt: 14
                knx_cache: 7/0/0
                Plot:
                    type: num
                    crontab: '*/5 * * *'
                    database: yes
                    eval: sh.E3DC.Leistung.PV()
    Folgendes soll passieren:

    Alle 5min soll E3DC.Leistung.PV.Plot den Wert von E3DC.Leistung.PV annehmen und das dann in die Database geschrieben werden.

    Der crontab scheint mit den Hochkommas auch so zu passen. Im Scheduler steht

    E3DC.Leistung.PV.Plot 2020-09-01 13:05:00+0200 3 None - {'*/5 * * *': None}
    Das wird auch alle 5min aktualisiert. Somit gehe ich davon aus, dass das passt.

    Das Item bekommt aber keinen Wert zugewiesen, egal wie lange ich warte. E3DC.Leistung.PV wird aber alle 3s aktualisiert, das passt also auch.

    Sehe wahrscheinlich wieder mal den Wald vor lauter Bäumen nicht.

    SHNG Version ist 1.7.1.master
    Zuletzt geändert von Sipple; 01.09.2020, 15:42.

    #2
    Wie Du in der AdminGUI siehst, ist der zugewiesene Wert None

    Der Syntax für crontab ist:

    Code:
    crontab: 59 23 * * = 70
    Wobei hier der Wert 70 zugewiesen wird.

    crontab spielt nicht mit eval zusammen. Du brauchst ein Hilfsitem (dort gehört crontab hin) und in dem Item mit dem eval musst Du unter eval_trigger das Hilfsitem angeben.
    Viele Grüße
    Martin

    There is no cloud. It's only someone else's computer.

    Kommentar


      #3
      Aha, also crontab und eval geht nicht zusammen. Also ein ZWEITES Hilfsitem?

      So?

      Code:
      E3DC:
          Leistung:
              PV:
                  type: num
                  knx_dpt: 14
                  knx_cache: 7/0/0
                  Plot:
                      type: num
                      database: yes
                      eval: sh.E3DC.Leistung.PV()
                      eval_trigger: E3DC.Leistung.PV.Zeitgeber
                  Zeitgeber:
                      type: num
                      crontab: '*/5 * * * = 1'
                      enforce_updates: true
      Sehe ich das richtig, dass dann im crontab auch ein Wert zugewiesen werden muss? Welcher Wert ist egal, also wie in meinem Beispiel '*/5 * * * = 1' ? Damit wird dem Hilfsitem aber alle 5min der selbe Wert zugewiesen. Da brauche ich noch ein enforce_updates oder enforce_change, richtig?

      EDIT: Vermutlich brauche ich aber das ' = 1' im crontab nicht. Dann wird halt immer 'None' zugewiesen. Hauptsache, enforce_updates, damit der eval_trigger im anderen Item anspringt. Kanns grad nicht testen.
      Zuletzt geändert von Sipple; 01.09.2020, 13:40.

      Kommentar


        #4
        Zitat von Sipple Beitrag anzeigen
        Also ein ZWEITES Hilfsitem?
        Zweites Hilfsitem? Welches ist denn das erste?

        Zitat von Sipple Beitrag anzeigen
        Da brauche ich noch ein enforce_updates oder enforce_change, richtig?
        Richtig
        Viele Grüße
        Martin

        There is no cloud. It's only someone else's computer.

        Kommentar


          #5
          Das erste ist für mich das E3DC.Leistung.PV.Plot. Denn das brauche ich um die Leistung nur alle 5min in die Database zu schreiben.
          Definitionssache

          Kommentar


            #6
            Klappt. Danke!

            Kommentar

            Lädt...
            X