Ankündigung

Einklappen
Keine Ankündigung bisher.

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