Ankündigung

Einklappen
Keine Ankündigung bisher.

Höchste bisher gemessene Temperatur des aktuellen Tages

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

    #16
    Mit einem eingefügtem Item hat die Exception eher nichts zu tun.

    Das sieht danach aus, als ob Du ein Plugin nutzt, welches ein requirement setzt, welches für den Core bereits gesetzt ist.
    Die minimum Angabe 2.2.0 klingt für mich stark nach dem requests package. Dort hatten wir ein minimum gesetzt, weil ältere Versionen ein Security Issue haben.

    Schau mal in den Verzeichnissen der Plugins die Du konfiguriert hast in die requirements.txt un kontrolliere ob da bei einem Plugin noch requests aufgeführt ist.

    Btw.: Welche Version von SmartHomeNG nutzt Du? In v1.7.2 sollte die Exception eigentlich nicht mehr auftreten.
    Zuletzt geändert von Msinn; 30.10.2020, 21:18.
    Viele Grüße
    Martin

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

    Kommentar


      #17
      Zitat von ic14m001 Beitrag anzeigen

      kex : Frage: Wie hast Du das mit den Tagesminimalwerten hinbekommen? Habe mir auch den Blogpost dazu angesehen, aber da habe ich auch keinen Anhaltspunkt gefunden. Bei mir steht auch immer nur eine '0' drinnen. Abfrage schaut bei mir wie folgt aus:

      Code:
      eval: sh...Aktuell() if value == 99.9 or float(sh..self()) > sh...Aktuell() else sh..self.property.value
      Oder ist der Austausch des "kleiner/größer-Zeichens" wahrscheinlich nicht ausreichend ....
      DANKE!
      Der Blogeintrag ist da wohl fehlerhaft und nicht vollständig.
      Du brauchst imho ein weiteres item, z.B. Minimum_Heute, das fast genauso aussieht wie das Maximum_Heute, nur die eval Zeile muss angepasst werden.
      Der Blogeintrag zeigt nur das Maximum Beispiel und da ist unten im "endgültige Item" Block das "<" verkehrt rum.
      Kann natürlich sein, dass ich da auch was übersehe oder falsch interpretiere.

      Das wirklich vollständige und funktionierende Maximum/Minimum Item von kex könnte es auflösen.

      Gruß, Martin

      Kommentar


        #18
        Sorry, dass ich erst jetzt antworte. Bin lange nicht dazu gekommen wieder in's Forum reinzuschauen.

        Zitat von ic14m001 Beitrag anzeigen

        kex : Frage: Wie hast Du das mit den Tagesminimalwerten hinbekommen? Habe mir auch den Blogpost dazu angesehen, aber da habe ich auch keinen Anhaltspunkt gefunden. Bei mir steht auch immer nur eine '0' drinnen. Abfrage schaut bei mir wie folgt aus:

        Code:
        eval: sh...Aktuell() if value == 99.9 or float(sh..self()) > sh...Aktuell() else sh..self.property.value
        Oder ist der Austausch des "kleiner/größer-Zeichens" wahrscheinlich nicht ausreichend ....
        DANKE!
        Es ist wie Sipple bereits geschrieben hat: Um den Minimalwert zu speichern, brauchst du ein weiteres Item das genauso aufgebaut ist wie das für den Maximalwert, dann müsste er den Minimalwert speichern.

        Und ja: In dem Blogeintrag ist bei der Beschreibung oben das ">" Zeichen falsch. Für den Maximalwert muss, wie ganz unten im Blogeintrag beim "endgültigen Item" ein "<" Zeichen stehen.

        Ich vermute aber, der Grund, warum bei dir immer '0' steht ist das selbe Problem wie bei mir: Aus einem Grund den ich noch genau untersuchen muss funktioniert der Crontab Eintrag nicht. Das heisst das automatische Zurücksetzen über den Wert '99,9' funktioniert irgendwie nicht. Nur wenn du von Hand über die Weboberfläche 99,9 in das Item rein schreibst aktualisiert sich der Wert. Dem Problem muss ich noch nachgehen.

        Gruß Andreas



        Gruß Kex

        Kommentar


          #19
          vielleicht nicht ganz am Thema, aber falls jemand nur Max/Min die letzten 24h haben möchte:
          Code:
          temperatur:
          type: num
          visu: true
          database: yes
          history: true # <<- wenn ihr den Wert in Plots verwenden wollt
          visu_acl: rw
          knx_dpt: 9
          knx_cache: 6/0/8
          
          min:
          type: num
          eval: "sh.aussen.wetter.wetterstation.temperatur.db('min ', '24h')" # Mimium über die letzten 28h berechnen
          eval_trigger: aussen.wetter.wetterstation.temperatur # Änderungen der Temperatur triggern die Neuberechnung
          
          max:
          type: num
          eval: "sh.aussen.wetter.wetterstation.temperatur.db('max ', '24h')" # Maximum über die letzten 28h berechnen
          eval_trigger: aussen.wetter.wetterstation.temperatur # Änderungen der Temperatur triggern die Neuberechnung

          Kommentar


            #20
            man kann anstatt 24h auch die Minuten seit Mitternacht als dbstring nehmen dann hat man min und max seit mitternacht:

            sh.date.minute.since.midnight.dbstr()

            kann aber sein, dass das hier genannt wurde und ich nur übersehen habe. ich bin gerade nicht sicher, inwieweit das schon im core war oder in einer meiner logiken ermittelt wurde. aber ich glaube mich zu erinnern Msinn hatte das mal integriert

            ahja: https://www.smarthomeng.de/user/logi...highlight=date
            shtime.time_since(dt, resulttype=‘m‘) - dt ist halt dann datetime vom letzten mitternacht und an das ergebnis ein +'i' hängen für minuten
            Zuletzt geändert von psilo; 27.11.2020, 20:16.

            Kommentar


              #21
              Ich möchte an dieser Stelle mal kurz davor warnen zu viele Datenbankabfragen à la sh.aussen.wetter.wetterstation.temperatur.db( 'min ', '24h') für vermeintliche Kleinigkeiten durchzuführen. Wenn die Updates recht schnell kommen, dann kann das dazu führen, das die benötigten Threads in SHNG explodieren und SHNG dann automatisch neu gestartet wird damit es keinen Lockdown gibt.

              Überlegt mal ob es unbedingt ein gleitender Minimum- oder Maximumwert sein muß oder ob es auch reicht, das Minimum z.B. ab 2:00 Uhr Nachts einfach über die weiter oben aufgeführten Funktionen mit eval und min/max zu ermitteln.

              Kommentar


                #22
                bmx hattte das problem bisher nicht, aber werde mal drauf achten..Bei den Wetterdiensten komme die Updates ja eher nur im Bereich mehrere Minuten. Ich nutze das aber auch auf meinem Pulszähler fürs Wasser, der am Bus hängt.

                Lockdowns - egal wo - sind immer zu vermeiden ;-)

                Kommentar


                  #23
                  psilo Die Warnung von bmx ist sehr berechtigt. Wir hatten hier im Forum löngliche Diskussionen dazu. Da wurden Mengen von Items angelegt, die per eval Werte mit der db Funktion des database Plugins ausführten. Da die Items den selben Triger hatten, wurden die Threads zur db Abfrage zeitgleich gestartet, was zu einem starken Anstieg der aktiven Scheduler Tasks führte.

                  Die sinnvolle Lösung in dem Fall war, die db Abfragen in eine Logik zunpacken und diese zu triggern, was nur einen Scheduler Task startete.
                  Viele Grüße
                  Martin

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

                  Kommentar


                    #24
                    Hallo,

                    dass es mit dem crontab nicht funktioniert liegt daran, dass eval_trigger und crontab nicht kombiniert werden können.

                    Ich habe es bei mir so gelöst:

                    Code:
                    Wetterstation:
                         Temperatur:
                               Aktuell:
                                   type: num
                                   knx_dpt: 9
                                   visu_acl: ro
                                   knx_init: 15/5/1
                                   database: 'yes'
                              Maximum_Heute:
                                   type: num
                                   visu_acl: ro
                                   eval: sh...Aktuell() if value == 99.9 or float(sh..self()) < sh...Aktuell() else sh..self.property.value 
                                   eval_trigger: ..Aktuell
                    
                                   reset_value:
                                          type: num
                                          visu_acl: ro
                                          enforce_updates: true
                                          eval: sh.Wetterstation.Temperatur.Maximum_Heute(99.9)
                                          crontab:
                                             - 59 23 * * = 99.9
                                             - init = 99.9
                               Minimum_Heute:
                                   type: num
                                   visu_acl: ro
                                   eval: sh...Aktuell() if value == 99.9 or float(sh..self()) > sh...Aktuell() else sh..self.property.value
                                   eval_trigger: ..Aktuell
                    
                                   reset_value:
                                          type: num
                                          visu_acl: ro enforce_updates: true
                                          eval: sh.Wetterstation.Temperatur.Minimum_Heute(99.9)
                                          crontab:
                                              - 59 23 * * = 99.9
                                              - init = 99.9
                    Gruß Manuel
                    Zuletzt geändert von manu241; 30.11.2020, 17:48.

                    Kommentar


                      #25
                      Zitat von manu241 Beitrag anzeigen
                      Hallo,

                      dass es mit dem crontab nicht funktioniert liegt daran, dass eval_trigger und crontab nicht kombiniert werden können.

                      Gruß Manuel
                      Bist du sicher? Hätte behauptet, bei mir funktioniert das, aber sicher bin ich jetzt auch nicht. Was passiert bei der Definition von beidem?

                      Kommentar


                        #26
                        Crontab wird nicht ausgeführt

                        Kommentar


                          #27
                          Msinn kannst du das für die aktuellste Version bestätigen?
                          Seit es eval_trigger: init nicht gibt, versuche ich, das über crontab:init und eval_trigger: bla zu machen. Kann jetzt gar nicht fix sagen, ob das aktuell funzt, hätte gemeint ja. Und das Admin Interface bestätigt das.

                          Kommentar


                            #28
                            Was meinst Du mit „seit es eval_trigger: init nicht gibt“? Bis wann soll es das gegeben haben?
                            Viele Grüße
                            Martin

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

                            Kommentar


                              #29
                              Zitat von Msinn Beitrag anzeigen
                              Was meinst Du mit „seit es eval_trigger: init nicht gibt“? Bis wann soll es das gegeben haben?
                              Paar Jahre her. Erinnere mich dunkel an eine Diskussion auch mit psilo

                              Es ging aber mehr um die Koexistenz von crontab und eval_trigger. Bei nem schnellen Test gibt es da wohl wirklich Konflikte, zumindest wenn beim crontab kein Wert zugewiesen wird.

                              Kommentar


                                #30
                                Onkelandy
                                Zitat von Onkelandy Beitrag anzeigen
                                Es ging aber mehr um die Koexistenz von crontab und eval_trigger. Bei nem schnellen Test gibt es da wohl wirklich Konflikte, zumindest wenn beim crontab kein Wert zugewiesen wird.
                                Kannst Du genauer werden? Ich sehe im Source Code erstmal nichts was eine Koexistenz behindern sollte.
                                Viele Grüße
                                Martin

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

                                Kommentar

                                Lädt...
                                X