Ankündigung

Einklappen
Keine Ankündigung bisher.

Frage zu cron

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

    Frage zu cron

    Hallo

    warum funktioniert folgender Code nicht? cron wird ausgeführt...es landet aber kein Wert in der Datenbank.

    Code:
    [[[BetriebsstundenGesamt]]]
        type = num
        knx_dpt = 7
        knx_cache = 6/7/127
        database@mysqldb = init
        eval = round(value,2)
    
    [[[BetriebsstundenTest]]]
        type = num
        database@mysqldb = init
        crontab = 59 23 * * = 1
        eval = sh.Wirkleistung.Klimaanlage.BetriebsstundenGesamt( ) - sh.Wirkleistung.Klimaanlage.BetriebsstundenGesamt. db('min',sh.minute.since.midnight.dbstr())
    log sagt:

    Code:
    items.Wirkleistung.Klimaanlage.BetriebsstundenTest Triggering Wirkleistung.Klimaanlage.BetriebsstundenTest-eval - by: Scheduler source: None dest: None value: {'dest': None, 'value': '1', 'source': N
    Muss ich statt der 1 den value angeben? Funktioniert nicht

    Gruss, Micha
    Zuletzt geändert von bmx; 19.07.2019, 09:36.

    #2
    In Deinem Post sehe ich ein überschüssiges Leerzeichen Zwischen ‚Gesamt.‘ und ‚db(‘
    Viele Grüße
    Martin

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

    Kommentar


      #3
      Und der Wert ändert sich auch tatsächlich, ja?

      Ansonsten empfehle ich mal zum Debuggen eine Logik mit dem gleichen eval Ausdruck zu triggern und zu gucken was da so passiert.
      Zuletzt geändert von Onkelandy; 18.07.2019, 19:45.

      Kommentar


        #4
        Wie meinst Du das? Wert ändert sich tatsächlich? Es gibt keinen Wert, welcher in der DB landet. Was funktioniert ist das:

        eval = sh.Wirkleistung.Klimaanlage.BetriebsstundenGesamt( ) - sh.Wirkleistung.Klimaanlage.BetriebsstundenGesamt. db('max','1d','1d')

        Kommentar


          #5
          Ich meinte, ob sich der evaluierte Wert auch zum vorherigen Wert (von gestern) geändert hat. Denn das DB Plugin schreibt ja nur bei Änderung wie du selbst bemerkt hast.

          Du meinst, wenn du BetriebsstundenTest manuell triggerst, funktioniert dein eval, aber via crontab eben nicht? Hast du mal ein einfaches crontab getestet ohne Datenbank-Zeugs?

          P.S.: Möchtest nicht mal deine conf auf yaml umstellen?

          Kommentar


            #6
            Und wenn ich Wünsche äußern darf: Bitte nutze für einfügen von Code, Yaml, Config Daten und Konsolenausgaben hier im Forum auch wirklich [ CODE ] .... [ /CODE ].
            In den Einstellungen im Editor ist das statt die linke Schaltfläche # von # <> php.
            Quote ist nur für Text- oder komplettzitate gedacht.

            Kommentar


              #7
              Ohne DB geht es auch nicht. Ich verstehe es nicht...

              Code:
               
               crontab = 0 0 * * = 1 eval = sh.Wirkleistung.Klimaanlage.BetriebsstundenGesamt( ) - sh.Wirkleistung.Klimaanlage.BetriebsstundenGesamt. db('max','1d','1d')
              funktioniert*

              Code:
              crontab = 0 0 * * = 1
              eval = sh.Wirkleistung.Klimaanlage.BetriebsstundenGesamt( ) - sh.Wirkleistung.Klimaanlage.BetriebsstundenGesamt. db('min',sh.minute.since.midnight.dbstr())
              funktioniert nicht!



              * Problem hier: Die Werte stimmen nicht. Keine Ahnung was er da berechnet..aber beim Test mit Kühlschrank landen manchmal eine 0 in der Datenbank, dann wieder 43 oder 48 und auch mal 24. Eigentlich sollten immer einfach eine 24 drin stehen. sh.minute.since.midnight.dbstr() funktioniert da besser. Zumindest bei Abfrage direkt über die console. Der Wert landet aber einfach nicht in der Datenbank.

              Gruss, Micha

              Kommentar


                #8
                Kasst Du das mal als Code formatieren? So versteh‘ ich nur Bahnhof.
                Viele Grüße
                Martin

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

                Kommentar


                  #9
                  Zitat von Msinn Beitrag anzeigen
                  Kasst Du das mal als Code formatieren? So versteh‘ ich nur Bahnhof.
                  Hab ich doch?

                  Kommentar


                    #10
                    Na Klasse...jetzt geht es und ich habe keinen Plan wieso Ich habe nix geändert.

                    Datenbank:

                    Code:
                     [TABLE="class: table table-striped table-hover pluginList"]
                     	 		[TR]
                     			[TD="class: py-1"]268[/TD]
                     			[TD="class: py-1"]19.07.2019 18:59:00[/TD]
                     			[TD="class: py-1"]None[/TD]
                     			[TD="class: py-1"]19.07.2019 18:59:23[/TD]
                     			[TD="class: py-1"]19.0[/TD]
                     			[TD="class: py-1"]1[/TD]
                     			[TD="class: py-1"]None[/TD]
                     			[TD="class: py-1"] [/TD]
                     		[/TR]
                     	 [/TABLE]
                      [TABLE="class: table table-striped table-hover pluginList"]
                     	 		[TR]
                     			[TD="class: py-1"]268[/TD]
                     			[TD="class: py-1"]19.07.2019 17:59:00[/TD]
                     			[TD="class: py-1"]3600348[/TD]
                     			[TD="class: py-1"]19.07.2019 18:59:23[/TD]
                     			[TD="class: py-1"]18.0[/TD]
                     			[TD="class: py-1"]1[/TD]
                     			[TD="class: py-1"]None[/TD]
                     			[TD="class: py-1"] [/TD]
                     		[/TR]
                     		[TR]
                     			[TD="class: py-1"]268[/TD]
                     			[TD="class: py-1"]19.07.2019 16:59:00[/TD]
                     			[TD="class: py-1"]3599560[/TD]
                     			[TD="class: py-1"]19.07.2019 17:59:23[/TD]
                     			[TD="class: py-1"]17.0[/TD]
                     			[TD="class: py-1"]1[/TD]
                     			[TD="class: py-1"]None[/TD]
                     			[TD="class: py-1"] [/TD]
                     		[/TR]
                     	 [/TABLE]
                    logging:

                    Code:
                    2019-07-19  18:59:00 DEBUG    items.Wirkleistung.Kuehlschrank.BetriebsstundenTest Triggering Wirkleistung.Kuehlschrank.BetriebsstundenTest-eval - by: Scheduler source: None dest: None value: {'caller': 'Scheduler', 'dest': None, 'v
                    2019-07-19  18:59:00 DEBUG    Wirkleistung.Kuehlschrank.BetriebsstundenTest-eval Item Wirkleistung.Kuehlschrank.BetriebsstundenTest = 19.0 via Scheduler None None
                    und item:

                    Code:
                           [[[BetriebsstundenTest]]]
                                type = num
                                knx_dpt = 13
                                database@mysqldb = init
                                crontab = 59 * * * = 1
                                eval = sh.Wirkleistung.Kuehlschrank.BetriebsstundenGesamt() - sh.Wirkleistung.Kuehlschrank.BetriebsstundenGesamt.db('min',sh.minute.since.midnight.dbstr())
                                enforce_updates = yes

                    das "knx_dpt = 13" hat sich da jetzt irgendwie "reingemogelt"...aber das kann es doch nicht sein oder? das enforce_updates = yes gab es schon vorher...fehlt nur in meinem ersten Posting. Ich würde es wirklich gern verstehen

                    Kommentar

                    Lädt...
                    X