Ankündigung

Einklappen
Keine Ankündigung bisher.

Verbrauch Gas etc. -> ungewolltes item trigger bei Neustart?

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

    #16
    Ah Danke Leider führt es nicht zum Erfolg. Der Datenbankeintrag kommt gar nicht durch das eval beim Neustart. Ein testweises eval = 5 schreibt nicht 5 sondern den vorherigen Wert in die Datenbank. Ich möchte einfach nur einen Eintrag pro Tag egal wie oft der Server neustartet. Hintergrund ist die saubere Darstellung im plot.

    Kommentar


      #17
      Hi Micha,

      dann habe ich Deine Frage nicht verstanden. Mein Antwort bezog sich auf "... was schreibe ich hinter else, weglassen kann man es ja nicht". Ich ging davon aus, dass alles andere bereits klappt.

      Allgemeiner Tipp: Logs analysieren und mit if ... else ... genau die Situationen abfangen, die man haben/nicht haben möchte.

      Msinn: Nochmal die konkrete Frage (da sich die Meldungen hierzu häufen): Ich ein Trigger der Items vom Init nach dem Neustart von shNG.py gewollt? Ich kenne das von sh.py nicht so, insofern muss das was sein, was im shNG absichtlich oder versehentlich neu dazugekommen ist.

      Gruß, Waldemar
      OpenKNX www.openknx.de

      Kommentar


        #18
        Wenn du database@mysqldb = yes statt init schreibst, dann sollte beim Start KEIN Wert in die Datenbank geschrieben werden.

        Kommentar


          #19
          Onkelandy ich dachte init BEFUELLT nur das item beim start aus der DB.. nicht andersherum?

          Kommentar


            #20
            zu früh gefreut: klappt auch nicht

            Der Unterschied ist: der Wert ist jetzt 0 statt dem Wert vom Vortag
            Zuletzt geändert von lexxmm; 18.10.2018, 12:14.

            Kommentar


              #21
              lexxmm ja, weil das item nun nicht mehr aus der db initialisiert wird, siehe mein kommentar.. ggf mit cache: yes ins filesystem cachen. wobei ich vermute, dass beim ersten update aus dem filesystem dann auch wieder ein db zugriff erfolgt.

              Kommentar


                #22
                Dann könnte man im Database Plugin ja einen Parameter spendieren der ein setzen des Wertes verhindert, wenn die Änderung aus dem init kommt oder?

                Kommentar


                  #23
                  @psilo Funktioniert auch nicht. Schreibt ebenfalls eine 0 in die Datenbank

                  Kommentar


                    #24
                    Zitat von psilo Beitrag anzeigen
                    Onkelandy ich dachte init BEFUELLT nur das item beim start aus der DB.. nicht andersherum?
                    Das hängt wohl von der Version des Plugins ab, bin aber jetzt auch nicht 100% sicher. Ich hatte das so interpretiert, dass durch diese Änderung im develop https://github.com/smarthomeNG/plugi...f6511369d59384 das init nun dazu führt, dass der aktuelle Wert beim Start in die Datenbank eingetragen wird. Aber wenn hier die master Version genutzt wird, ist das eh hinfällig.

                    lexxmm Nur das cache alleine bringt nix, da ja der Wert anfangs immer 0 ist. Erst, wenn der richtige Wert herinnen ist, passt es auch beim Startup. Also am besten nochmals das init beim database dazu mit cache=yes. Danach evtl. das init wieder durch yes ersetzen.

                    Eine Alternative wäre noch statt eval das on_change zu nutzen. Dadurch sollte verhindert werden, dass beim Start was passiert.
                    https://smarthomeng.de/user/konfigur...on_update.html

                    Kommentar


                      #25
                      Probiere ich aus. on_change schreibt ja aber nur wenn es eine Änderung gibt. Das soll ja nicht so sein...der Wert zwischen zwei Tagen kann auch gleich sein und dann würde ja ein Eintrag fehlen?

                      Kommentar


                        #26
                        Onkelandy ich vermute es passiert beides, er initialisiert neu (werteänderung von 0 auf "init" wert), denkt dadurch dass eine wertänderung stattgefunden hat und persisiert den bereits in der datenbank vorhanden "init" wert neu in die db..

                        das verhalten wäre dann bei cache=yes gleich falsch.

                        Kommentar


                          #27
                          Zitat von Onkelandy Beitrag anzeigen

                          lexxmm Nur das cache alleine bringt nix, da ja der Wert anfangs immer 0 ist. Erst, wenn der richtige Wert herinnen ist, passt es auch beim Startup. Also am besten nochmals das init beim database dazu mit cache=yes. Danach evtl. das init wieder durch yes ersetzen.

                          Eine Alternative wäre noch statt eval das on_change zu nutzen. Dadurch sollte verhindert werden, dass beim Start was passiert.
                          https://smarthomeng.de/user/konfigur...on_update.html
                          Funktioniert ebenfalls nicht. Es landen immer neue Werte in der Datenbank beim Neustart.

                          Kommentar


                            #28
                            mumpf
                            Zitat von mumpf Beitrag anzeigen
                            Ich ein Trigger der Items vom Init nach dem Neustart von shNG.py gewollt? Ich kenne das von sh.py nicht so, insofern muss das was sein, was im shNG absichtlich oder versehentlich neu dazugekommen ist.
                            An der Funktionalität hat sich seit sh.py nicht bewusst etwas geändert.

                            Ich konnte bisher das beschriebene Verhalten im Sourcecode von shNG noch nicht nachvollziehen. Evtl. spielt da ein Nebeneffekt eines Plugins rein.
                            Viele Grüße
                            Martin

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

                            Kommentar


                              #29
                              Hallo Martin,

                              Zitat von Msinn Beitrag anzeigen
                              Evtl. spielt da ein Nebeneffekt eines Plugins rein.
                              Ja, das befürchte ich auch. Wobei in dem Thread https://knx-user-forum.de/forum/supp...it-realisieren es sich so anhört, als ob der Trigger vom Init auch ganz ohne einem Plugin kommt. Ist aber alles mit Vorsicht zu genießen...

                              Gruß, Waldemar
                              OpenKNX www.openknx.de

                              Kommentar


                                #30
                                Msinn ich glaube nicht, dass da was reinspielt.. beim hochfahren ist das item noch 0 (nicht initialisiert) und wird dann via "init" oder "cache" auf einen wert gesetzt. damit denkt shng / sh.py, dass eine wertänderung vorliegt und persistiert.. so habe ich wenn ich entwickle für jeden neustart immer den identischen wert in der log tabelle. das war schon immer so und ist schon iregndwie unschön. eigentlich müsste im sqlite oder db plugin hier ein check auf den letzten historischen wert beim hochfahren von shng rein.. aber ich glaube bisher fehlt die info ob die instanz hochfaehrt oder das item "echt" 0 ist

                                Kommentar

                                Lädt...
                                X