Ankündigung

Einklappen

Serverwartung 21.2.



Am 21.2. im Laufe des späten Abends wird eine Serverwartung durchgeführt. Das Forum ist dadurch für gut zwei Stunden nicht erreichbar.
Es wird eine Wartungsseite geschaltet.

Mehr anzeigen
Weniger anzeigen

Item täglich 22 Uhr auslesen

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

    Item täglich 22 Uhr auslesen

    wie kann ich den Wert eines Items täglich 22 Uhr holen ?

    momentan wird jede Änderung registriert

    item.yaml
    Code:
       
    Strom_heute:
            type:      num
            visu:      yes
            knx_dpt:   9
            knx_cache: 0/7/22
            sqlite:    yes

    #2
    Mit dem crontab-Attribut kannst du eine Neuberechnung um 22 Uhr einstellen:
    https://www.smarthomeng.de/user/konf...hlight=crontab

    Pack das z.b in ein eigenes Item und bau ein eval ein, der sich den Wert von Strom_heute holt.

    Kommentar


      #3
      das mit crontab habe ich noch verstanden, den rest leider nicht ...

      lt. https://smarthomeng.de/user/plugins_...light=knx_poll gilt es knx_poll, aber ich versteht den syntax nicht
      • Datentyp: list(2,knx_ga,int)
      Code:
      knx_poll: 0/7/22 | 86400
      wie in "alten beispiel" unter https://smarthomeng.de/user/plugins/...light=knx_poll

      produnziert leider nur

      Code:
      WARNING  Main         Ignoring knx_poll for item Sonoff.S21.Strom_heute: We need two parameters, one for the GA and one for the polling interval.
      Zuletzt geändert von schlaubi666; 11.07.2019, 11:05.

      Kommentar


        #4
        Im YAML muss die Liste anders erfolgen, nicht mit | sondern
        Code:
        knx_poll:
          - 0/7/22
          - 86400

        Kommentar


          #5
          So klappt es , danke !

          Kommentar


            #6
            und wir kann ich erreichen , das der poll zu einer bestimmten Uhrzeit getriggert wird ? mit crontab ? wenn ja, wie genau ?

            Kommentar


              #7
              https://www.smarthomeng.de/user/konf...hlight=crontab

              Alternativ kannst du es auch über eine Logik lösen. Hätte den Vorteil, dass du kein Intervall brauchst und das Polling auch durch einen Itemaufruf triggern kannst.

              Item zB:
              Code:
              item:
                      knx_init: 2/4/20
                      knx_dpt: 9
                      type: num
              
                      knx_polling:
                              visu_acl: rw
                              type: bool
                              enforce_updates: yes
                              polling_ga: 2/4/20
                              eval: 1
                              crontab: <Minute> <Stunde> <Tag> <Wochentag> = 1
                              eval_trigger:
                                - irgendeinitem
              Logik namens knx_polling.py:
              Code:
              item = sh.return_item(trigger['source'])
              
              polling_ga = item.conf["polling_ga"]
              
              sh.knx.groupread('{}'.format(polling_ga))
              logger.info("Updating KNX value from item {} with GA {}".format(item, polling_ga))
              logic.yaml:
              Code:
              knx_polling:
                  filename: knx_polling.py
                  watch_item: '*:polling_ga'
                  visu_acl: rw
              Zuletzt geändert von Onkelandy; 13.07.2019, 11:23. Grund: fix crontab Angabe

              Kommentar


                #8
                Perfect !!! Danke für das Beispiel.

                mein item sieht so aus , der rest ist wie in deinem Beispiel
                Code:
                item:
                    knx_init: 0/7/22
                    knx_dpt: 9
                    type: num
                
                    knx_polling:
                        visu_acl: rw
                        type: bool
                        enforce_updates: yes
                        polling_ga: 0/7/22
                        eval: 1
                        eval_trigger:
                           - item.read_value
                
                    read_value:
                        type: bool
                        visu_acl: rw
                naden der bei crontab eingestellte wert erreicht ist steht folgendes in log
                Code:
                  File "/usr/local/smarthome/logics/knx_polling.py", line 5, in <module>
                    polling_ga = item.conf["polling_ga"]
                AttributeError: 'NoneType' object has no attribute 'conf'
                der Wert wird abgefragt und ist aktuell in item !

                auch wenn ich item.read_value auf true setze wir das polling nicht getriggert !
                Zuletzt geändert von schlaubi666; 12.07.2019, 10:42.

                Kommentar


                  #9
                  Denkfehler. Mit crontab ist nicht das Item trigger source. Pack crontab ins polling item, dann sollte es gehen.

                  Kommentar


                    #10
                    ist es doch schon , lt Beitrag #7
                    Code:
                     knx_polling:
                        filename: knx_polling.py
                        watch_item: '*:polling_ga'
                        visu_acl: rw    
                        crontab: <Minute> <Stunde> <Tag> <Wochentag>
                    Sorry, aber ich verstehe deine Ausführung leider nicht ....

                    ich habe den crontab in der logic.yaml gelöscht und ins item gepackt

                    Code:
                    item:
                        knx_init: 0/7/22
                        knx_dpt: 9
                        type: num
                    
                        knx_polling:
                            visu_acl: rw
                            type: bool
                            enforce_updates: yes
                            polling_ga: 0/7/22
                            eval: 1
                            eval_trigger:
                               - item.read_value
                            crontab: 55 13 * *
                    
                        read_value:
                            type: bool
                            visu_acl: rw
                    jetzt wird nicht mehr getriggert !!!
                    Zuletzt geändert von schlaubi666; 12.07.2019, 12:58.

                    Kommentar


                      #11
                      Das ist deine Logik-Definition.
                      Das Attribut crontab darf und soll hier als Item-Attribut verwendet werden.

                      Kommentar


                        #12
                        Hab das Beispiel oben aktualisiert, so funktioniert es.
                        Wichtig ist, dass der Eintrag crontab: <Minute> <Stunde> <Tag> <Wochentag> = 1 im knx_polling Item drin ist und das '=1' dabei hat!

                        Msinn Kann es sein, dass hier ein Fehler beim crontab vorhanden ist? In der Doku steht auch, dass etwaige Logiken getriggert werden durch crontab: init
                        Das ist aber erst der Fall, wenn man via crontab auch einen Wert setzt, also crontab: init = 1

                        Kommentar

                        Lädt...
                        X