Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - [Alpha] sh.py/python3 frisst Speicher

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

    #16
    - √ - [Alpha] sh.py/python3 frisst Speicher

    Hi Hendrik,

    Ich schau mir Dein Log morgen mal an.

    Gib bitte mal 'git diff' ein, damit ich Deine Änderungen an der Code-Basis sehen kann.

    Wegen Deinem Root 'Problem', Du kannst Dir doch auch für den Root ein Alias anlegen.
    alias smarthome.py='echo Nein' oder mit sudo...

    Bis bald

    Marcus

    Kommentar


      #17
      Hi Marcus,
      Zitat von mknx Beitrag anzeigen
      Gib bitte mal 'git diff' ein, damit ich Deine Änderungen an der Code-Basis sehen kann.
      Ich glaube, ich hab keine Änderungen:
      Code:
      /usr/local/smarthome#
      old mode 100644
      new mode 100755
      diff --git a/logics/.gitignore b/logics/.gitignore
      old mode 100644
      new mode 100755
      diff --git a/var/cache/.gitignore b/var/cache/.gitignore
      old mode 100644
      new mode 100755
      diff --git a/var/db/.gitignore b/var/db/.gitignore
      old mode 100644
      new mode 100755
      diff --git a/var/log/.gitignore b/var/log/.gitignore
      old mode 100644
      new mode 100755
      diff --git a/var/rrd/.gitignore b/var/rrd/.gitignore
      old mode 100644
      new mode 100755
      diff --git a/var/run/.gitignore b/var/run/.gitignore
      old mode 100644
      new mode 100755

      Wegen Deinem Root 'Problem', Du kannst Dir doch auch für den Root ein Alias anlegen.
      alias smarthome.py='echo Nein' oder mit sudo...
      Zum Alias:
      das hilft aber nicht wenn ich den ganzen Pfad eingebe, oder?
      Sudo: Benutze ich eigentlich über mein -interaktiv-Start-Skript:
      Code:
      cat ~/sh.dbg
      /usr/local/smarthome/bin/smarthome.py --stop
       sudo -u smarthome /usr/local/smarthome/bin/smarthome.py -i
      Ich kann mich echt nicht erinnern, /usr/local/smarthome/bin/smarthome.py manuell eingegeben zu haben.. muss ich aber wohl.
      Ich sehe aber keine Möglichkeit, das zu verhindern, ohne an mir selbst, oder /usr/local/smarthome/bin/smarthome.py selbst zu arbeiten :-)

      Gruß,
      Hendrik

      Kommentar


        #18
        Hallo Hendrik,

        in dem Log steht leider auch nichts hilfreiches...
        Die Protokollierung von SH.py hört einfach auf.

        Kann es sein, das bei einem Deiner evals ein Loop drin ist und die sich Gegenseitig triggern?

        z.B. bei Allgemein.Stromzaehler.Momentanleistung_1min

        Das Problem mit dem "utf-8' codec can't decode byte 0xff" kann ich nicht nachvollziehen. Wie verbindest Du Dich denn zu dem CLI Plugin?

        Bis bald

        Marcus

        Kommentar


          #19
          Hi Marcus,

          danke dass du dir das angesehen hast.
          Zitat von mknx Beitrag anzeigen
          Kann es sein, das bei einem Deiner evals ein Loop drin ist und die sich Gegenseitig triggern?

          z.B. bei Allgemein.Stromzaehler.Momentanleistung_1min
          hm, ich bin eigentlich sicher, dass das nicht so ist.
          trigger ist immer nur ...Counter:
          Code:
          [Allgemein]
              [[Stromzaehler]]
              sv_page=Strom
              name = Strom
              visu=yes
          	[[[Counter]]]
          	    name = Counter
          	    type = num
          	    cache=yes
          	    sqlite = yes
          	    knx_dpt = 12
          	    enforce_updates=yes
          	    knx_send = 6/7/0
          	    knx_listen = 6/7/0
          	[[[Zaehlerstand]]]
          	    name = Zaehlerstand
          	    type = num
          	    sqlite = yes
          	    knx_dpt = 14
          	    knx_send = 6/7/1
          	    eval = sh.Allgemein.Stromzaehler.Counter()/800.0
          	    eval_trigger = Allgemein.Stromzaehler.Counter
              	    sv_widget={{ plot.period('p99872', 'item', 'avg', '2h',0,'','','','','','area') }}
              	    visu=yes
                  [[[Momentanleistung_1min]]]
          	    name = Momentanleistung_1min
          	    type = num
          	    sqlite = yes
          	    knx_dpt = 14
          	    knx_send = 6/7/2
          	    eval = (sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('max', '1i', '1i'))*60.0*1000.0
          	    eval_trigger=Allgemein.Stromzaehler.Counter
              	    sv_widget={{ plot.period('p998dd71', 'item', 'avg', '2h', 0, 0,3000, ''    , '', '','area') }}
          	    visu=yes
                  [[[Momentanleistung_10min]]]
          	    name = Momentanleistung_10min
          	    type = num
          	    sqlite = yes
          	    knx_dpt = 14
          #	    knx_send = 6/7/2
          	    eval = (sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('max', '11i', '9i'))*60.0*1000.0/10.0
          	    eval_trigger=Allgemein.Stromzaehler.Counter
              	    sv_widget={{ plot.period('p99871', 'item', 'avg', '2h',0,0,3000, ''    , '', '','area') }}
              	    visu=yes
                  [[[Momentanleistung_freq]]]
          	    name = Momentanleistung_freq
          	    type = num
          	    sqlite = yes
          	    knx_dpt = 14
          #	    knx_send = 6/7/2
          #Frequenzzähler: Jeder Counter=1/800kWh=3600/800kws=3600/800*1000Ws; Zeit zwischen zwei Impulsen messen und dadurch teilen --> W
          	    eval = 4500/sh.Allgemein.Stromzaehler.Counter.prev_change()
          	    eval_trigger=Allgemein.Stromzaehler.Counter
          	    enforce_updates=yes
              	    sv_widget={{ plot.period('p998dsd71', 'item', 'avg', '2h',0,0,3000, ''    , '', '','area') }}
          	    visu=yes
                  [[[Leistungsdurchschni24h]]]
          	    name = Last
          	    type = num
          	    sqlite = yes
          	    knx_dpt = 14
          	    eval = (sh.Allgemein.Stromzaehler.Zaehlerstand()-sh.Allgemein.Stromzaehler.Zaehlerstand.db('max', '1d', '1d'))/24*1000
          	    eval_trigger=Allgemein.Stromzaehler.Counter
              	sv_widget={{ plot.period('p998kk71', 'item', 'avg', '720h') }}
              	visu=yes
          Wenn ich weiter gucke:
          Code:
          grep trigger *.conf
          1w_items.conf:    eval_trigger=Daten.Keller_hum_abs | Daten.Aussen_hum_abs
          1w_items.conf:    eval_trigger=Daten.AbstellKeller_hum_abs | Daten.Aussen_hum_abs
          1w_items.conf:    eval_trigger=aktuelles_wetter.relative_luftfeuchte
          1w_items.conf:    eval_trigger=aktuelles_wetter.relative_luftfeuchte | aktuelles_wetter.temperatur
          1w_items.conf:    eval_trigger=Daten.Keller_temp | Daten.Keller_hum()
          1w_items.conf:    eval_trigger=Daten.AbstellKeller_temp | Daten.AbstellKeller_hum()
          allgemein.conf:     eval_trigger = Allgemein.Stromzaehler.Counter
          allgemein.conf:     eval_trigger=Allgemein.Stromzaehler.Counter
          allgemein.conf:     eval_trigger=Allgemein.Stromzaehler.Counter
          allgemein.conf:     eval_trigger=Allgemein.Stromzaehler.Counter
          allgemein.conf:     eval_trigger=Allgemein.Stromzaehler.Counter
          Lampen.conf:            eval_trigger=Allgemein.Lampen.FlurEingang.Dimmwert
          Lampen.conf:            eval_trigger=Allgemein.Lampen.FlurEingang.Dimmwert
          wetter.conf:#   eval_trigger=aktuelles_wetter.relative_luftfeuchte_perc
          Da bin ich mal durchgegangen und habe nix gefunden.
          Die einigere "aufwändigere" eval-Anweisung ist:
          Code:
          [Allgemein]
              [[Lampen]]
              sv_page=Strom
              name = Strom
              visu=yes
                  [[[FlurEingang]]]
                  name=FlurEingang
                    [[[[Leistung]]]]
                      type=num
                          value=50
                    [[[[Dimmwert]]]]
                      type=num
                          cache=yes
                      sqlite = yes
                      knx_listen = 1/1/13
                          knx_init = 1/1/13
                          knx_dpt=5
                    [[[[Verbrauch]]]]
                          type = num
                          name=FlurLampeVerbrauch
                          cache=yes
                          init=sqlite
                          sqlite = yes
                          knx_dpt = 12
                          enforce_updates=yes
                          eval=sh.Allgemein.Lampen.FlurEingang.Verbrauch()+sh.Allgemein.Lampen.FlurEingang.Dimmwert()/255*sh.Allgemein.Lampen.FlurEingang.Leistung()*sh.Allgemein.Lampen.FlurEingang.Dimmwert.age()/60.0/60.0
                          eval_trigger=Allgemein.Lampen.FlurEingang.Dimmwert
                          sv_widget={{ plot.period('p998lkjldljsd71', 'item', 'avg', '12h') }}
                    [[[[Verbrauch_self]]]]
                          type = num
                          name=FlurLampeVerbrauch_self
                          cache=yes
                          sqlite = yes
                          init=sqlite
                          knx_dpt = 12
                          enforce_updates=yes
                          eval=sh.Allgemein.Lampen.FlurEingang.Verbrauch_self()+self._parent.Dimmwert()/255*self._parent.Leistung()*self._parent.Dimmwert.age()/60.0/60.0
                          eval_trigger=Allgemein.Lampen.FlurEingang.Dimmwert
                          sv_widget={{ plot.period('p998dljlkjlsd71', 'item', 'avg', '12h') }}
          Aber da sehe ich auch nix.

          Allgemein: Kann man sowas abfangen? Zumindest irgendwie eine Warnung rauswerfen, wenn sich die nicht abgearbeiteten evals aufstauen, o.ä.?

          Das Problem mit dem "utf-8' codec can't decode byte 0xff" kann ich nicht nachvollziehen. Wie verbindest Du Dich denn zu dem CLI Plugin?
          Mit putty von einem anderen Rechner aus. Per default ist da ISO-8859 eingestellt, also auch nix von UTF8..

          Gruß,
          Hendrik

          Kommentar


            #20
            Hallo,

            ich glaube, ich habe noch immer das Problem.
            Gerade eben:
            Code:
            top - 19:12:01 up 1 day, 38 min,  2 users,  load average: 5.51, 4.33, 2.14
            Tasks: 174 total,   1 running, 173 sleeping,   0 stopped,   0 zombie
            Cpu(s):  2.2%us,  4.8%sy,  0.4%ni, 33.2%id, 59.0%wa,  0.4%hi,  0.0%si,  0.0%st
            Mem:   3795752k total,  3669068k used,   126684k free,     5744k buffers
            Swap:  8293372k total,  1904296k used,  6389076k free,    54616k cached
            
              PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
             2000 vdr       10 -10 1458m  91m 2724 S    3  2.5  42:16.24 vdr
            19720 root      20   0  700m  912  660 S    1  0.0  84:55.74 owserver
             1941 ntp       20   0 39840  608  468 S    1  0.0   0:04.98 ntpd
             2697 smarthom  20   0 5237m 2.9g  188 D    1 81.0  11:31.10 python3
             3460 root      20   0 17344 1452 1052 R    1  0.0   0:00.02 top
            13369 root      20   0  152m  13m 1988 S    1  0.4  12:38.91 wiregated.pl
            30261 munin     20   0  120m  15m 1760 D    1  0.4   0:00.22 /usr/share/muni
                1 root      20   0 24608 1208  420 S    0  0.0   0:00.61 init
                2 root      20   0     0    0    0 S    0  0.0   0:00.00 kthreadd
                3 root      20   0     0    0    0 S    0  0.0   0:05.38 ksoftirqd/0
                5 root       0 -20     0    0    0 S    0  0.0   0:00.00 kworker/0:0H
                7 root      RT   0     0    0    0 S    0  0.0   0:09.18 migration/0
                8 root      20   0     0    0    0 S    0  0.0   0:00.00 rcu_bh
                9 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/0
               10 root      20   0     0    0    0 S    0  0.0   0:00.00 rcuob/1
               11 root      20   0     0    0    0 S    0  0.0   2:23.85 rcu_sched
               12 root      20   0     0    0    0 S    0  0.0   1:26.90 rcuos/0
            Python braucht 2.3G und der Rechner liegt mit einem Load von 5 lahm.
            Ich mag nicht beschwören, dass die Load auch am VDR liegen kann (bzw. dessen DVB-Karten Nutzung), aber der Python-Speicherverbrauch ist nicht normal, oder?

            Ich habe hier einige Munin-Graphen (wollte ich eigentlich in Dropbox freigeben; wie kann ich denn einen ganzen Ordner freigeben an alle (ohne dass man einen Dropbox-Account braucht?))
            Um kurz nach 7 hab ich sh.py gekillt -und zwei Aufnahmen beim VDR gestartet (dadurch stellt der einen empfangbaren Sender ein; das ist mein anderer Verdacht). Ja, war blöd es gleichzeitig zu machen... :-(

            Mir fällt auch gerade ein, dass ich nicht die aller aktuellste Version von sh.py habe. Werde gleich mal updaten. Aber vielleicht hilft dies ja schon beim Fehler-Finden. Ich habe im Log nix gesehen, aber es hängt an.


            Gruß,
            Hendrik
            Angehängte Dateien

            Kommentar


              #21
              Hi Hendrik,

              ich schätze mal, dass es - zumindest nach dem Update auf die aktuelle Version - nicht an sh.py liegt, sondern an einem Plugin oder einer Logik etc. Ich hatte es die Tage auch geschafft sh.py lahm zu legen - wohl aber aufgrund "meines" NMA-Plugin (warum weiß ich noch nicht).

              Will heißen: Schmeiß mal alles selbstgestrickte raus und guck ob der Fehler immer noch auftritt. Oder noch besser: Kannst du nicht zeitweise irgend einen Zweitrechner für sh.py verwenden um mal vdr und sh.py zu trennen?

              In deinem Log steht wohl wirklich nix - außer dass du da mal den Datentyp für GA '6/5/1' und die _parent-Sachen fixen solltest - alleine schon für den Überblick.

              Viel Glück!

              Robert

              Kommentar


                #22
                Danke Robert, da brauch ich nix mehr zu schreiben :-)

                Kommentar


                  #23
                  Moin,

                  ich hatte gerade wieder das Problem.
                  sh.py lief gerade mal 20min; das Log ist übersichtlich -viel zu übersichtlich dafür:
                  Code:
                  Init SmartHome.py 0.9-387-g81432d7+
                  2013-10-22 21:18:19 INFO     Main         Start SmartHome.py 0.9-387-g81432d7+
                  2013-10-22 21:18:19 INFO     Main         Init Scheduler
                  2013-10-22 21:18:19 INFO     Main         Init Plugins
                  2013-10-22 21:18:19 INFO     Main         Init Items
                  2013-10-22 21:18:19 INFO     Main         1-Wire: unknown sensor specified for Daten.Keller_VDD using path: /26.A1B930010000/VDD
                  2013-10-22 21:18:19 INFO     Main         1-Wire: unknown sensor specified for Daten.Elternbad_VDD using path: /28.219A1B030000/VDD
                  2013-10-22 21:18:19 INFO     Main         1-Wire: unknown sensor specified for Daten.Flur_temporaer_VDD using path: /26.4AA02E010000/VDD
                  2013-10-22 21:18:19 INFO     Main         1-Wire: unknown sensor specified for Daten.AbstellKeller_VDD using path: /26.7ED96B010000/VDD
                  2013-10-22 21:18:19 INFO     Main         Start Plugins
                  2013-10-22 21:18:19 INFO     Main         Start Logics
                  2013-10-22 21:18:21 INFO     Connections  1-Wire: connected to 127.0.0.1:4304
                  2013-10-22 21:18:22 INFO     Main         squeezebox: Listen-mode enabled
                  Um ca 21:30 habe ich sh.py erst gekillt. Dazwischen gab's wohl keine Einträge im Log.
                  Die Load war um 5, python brauchte 3GB speicher.

                  Zitat von Robert Beitrag anzeigen
                  ich schätze mal, dass es - zumindest nach dem Update auf die aktuelle Version - nicht an sh.py liegt, sondern an einem Plugin oder einer Logik etc. Ich hatte es die Tage auch geschafft sh.py lahm zu legen - wohl aber aufgrund "meines" NMA-Plugin (warum weiß ich noch nicht).
                  Will heißen: Schmeiß mal alles selbstgestrickte raus und guck ob der Fehler immer noch auftritt. Oder noch besser: Kannst du nicht zeitweise irgend einen Zweitrechner für sh.py verwenden um mal vdr und sh.py zu trennen?
                  Ich kann den vdr stoppen. Aber ich bin nun recht sicher, dass es an sh.py liegt.
                  a) log, mit fehlenden Einträgen, s.o.
                  b) sh.py beendet, load wieder ok.


                  In deinem Log steht wohl wirklich nix - außer dass du da mal den Datentyp für GA '6/5/1' und die _parent-Sachen fixen solltest - alleine schon für den Überblick.
                  Den Parent-Kram habe ich gerade gefixt. Ich hoffe, dass das so ok ist:

                  Code:
                  [Allgemein]
                      [[Lampen]]
                      sv_page=Strom1
                      name = Strom1
                      visu=yes
                  	[[[FlurEingang]]]
                  	name=FlurEingang
                  	  [[[[Leistung]]]]
                  	    type=num
                  		value=50
                  	  [[[[Dimmwert]]]]
                  	    type=num
                  		cache=yes
                  	    sqlite = yes
                  	    knx_listen = 1/1/13	
                  		knx_init = 1/1/13	
                  		knx_dpt=5
                  	  [[[[Verbrauch]]]]
                  		type = num
                  		name=FlurLampeVerbrauch
                  		cache=yes
                  		init=sqlite
                  		sqlite = yes
                  		knx_dpt = 12
                  		enforce_updates=yes
                  		eval=sh.Allgemein.Lampen.FlurEingang.Verbrauch()+sh.Allgemein.Lampen.FlurEingang.Dimmwert()/255*sh.Allgemein.Lampen.FlurEingang.Leistung()*sh.Allgemein.Lampen.FlurEingang.Dimmwert.age()/60.0/60.0
                  		eval_trigger=Allgemein.Lampen.FlurEingang.Dimmwert
                  		sv_widget={{ plot.period('plot123', 'item', 'avg', '12h') }}
                  #		sv_widget={{ basic.value('plot12uu3', 'item', 'C') }}
                  		visu=yes
                  	  [[[[Verbrauch_self]]]]
                  		type = num
                  		name=FlurLampeVerbrauch_self
                  		cache=yes
                  		sqlite = yes
                  		init=sqlite
                  		knx_dpt = 12
                  		enforce_updates=yes
                  		eval=sh.Allgemein.Lampen.FlurEingang.Verbrauch_self()+self.return_parent().Dimmwert()/255*self.return_parent().Leistung()*self.return_parent().Dimmwert.age()/60.0/60.0
                  		eval_trigger=Allgemein.Lampen.FlurEingang.Dimmwert
                  		sv_widget={{ plot.period('plot456', 'item', 'avg', '12h') }}
                  		visu=yes
                  Zu 6/5/1:
                  Code:
                          [[[sens_umwelt_aussen_temp_nord_ost]]]
                              type=num
                              visu=slider
                              knx_dpt=5.001
                              knx_send=6/5/1
                              knx_listen=6/5/1
                  Ja, das sollte dpt 9 sein... Komisch, war ja der auto-export. Sorry, hätt ich sehen können.

                  D.h. jetzt muss ich mal die Logiken entfernen...
                  Dann fange ich mal mit meinem Stromzähler-Kram an, dann 1wire, dann wunderground, dann squeezebox?


                  Gruß,
                  Hendrik

                  Kommentar


                    #24
                    Ja, denke mal der Zählerkram ist der erste Kandidat. Oder eben alles und dann langsam wieder rein.

                    Um in 30min 3GB zusammen zu kriegen, denke ich braucht es irgendwo nen bösen Zirkelbezug. Wunderground irgendwo in einer Schleife? Squeezebox triggert Wunderground und wieder zurück? Onewire könnte natürlich irgendwo an den Fehlern liegen.

                    Wird dir nix anderes übrig bleiben als langsam alles durchzutesten. Das gute ist ja, dass es scheinbar recht schnell geht...

                    Grüße
                    Robert

                    Kommentar


                      #25
                      Hi Hendrik,

                      ich würde es erst einmal im debug Modus laufen lassen.
                      Wenn ein loop drin ist, sieht man den dann schnell.

                      Bis bald

                      Marcus

                      Kommentar


                        #26
                        - √ - [Alpha] sh.py/python3 frisst Speicher

                        Danke für die Tipps.
                        Es geht nicht immer so schnell...
                        Ich checke es morgen im debug Modus

                        Kommentar


                          #27
                          Hallo,

                          ich denke, dass ich das Problem jetzt habe eingrenzen können:
                          Sobald ich die zu dieser Seite gehörende SmartVisu-Seite aufrufe, kracht es; innerhalb von Sekunden (d.h. <1min) geht entweder die load und der Speicherverbrauch durch die Decke, oder sh.py crasht.
                          Hier die Items/die erzeugende Datei:
                          Code:
                          /usr/local/smarthome# more items/allgemein.conf
                          [Allgemein]
                              [[Stromzaehler]]
                              sv_page=Strom
                              name = Strom
                              visu=yes
                                  [[[Counter]]]
                                      name = Counter
                                      type = num
                                      cache=yes
                                      sqlite = yes
                                      knx_dpt = 12
                                      enforce_updates=yes
                                      knx_send = 6/7/0
                                      knx_listen = 6/7/0
                                  [[[Zaehlerstand]]]
                                      name = Zaehlerstand
                                      type = num
                                      sqlite = yes
                                      knx_dpt = 14
                                      knx_send = 6/7/1
                          root@homeserver:/usr/local/smarthome# cat items/allgemein.conf
                          [Allgemein]
                              [[Stromzaehler]]
                              sv_page=Strom
                              name = Strom
                              visu=yes
                                  [[[Counter]]]
                                      name = Counter
                                      type = num
                                      cache=yes
                                      sqlite = yes
                                      knx_dpt = 12
                                      enforce_updates=yes
                                      knx_send = 6/7/0
                                      knx_listen = 6/7/0
                                  [[[Zaehlerstand]]]
                                      name = Zaehlerstand
                                      type = num
                                      sqlite = yes
                                      knx_dpt = 14
                                      knx_send = 6/7/1
                                      eval = sh.Allgemein.Stromzaehler.Counter()/800.0
                                      eval_trigger = Allgemein.Stromzaehler.Counter
                                      sv_widget={{ plot.period('p99872', 'item', 'avg', '2h',0,'','','','','','area') }}
                                      visu=yes
                                  [[[Momentanleistung_1min]]]
                                      name = Momentanleistung_1min
                                      type = num
                                      sqlite = yes
                                      knx_dpt = 14
                                      knx_send = 6/7/2
                                      eval = (sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('max', '1i', '1i'))*60.0*1000.0
                                      eval_trigger=Allgemein.Stromzaehler.Counter
                                      sv_widget={{ plot.period('p998dd71', 'item', 'avg', '2h', 0, 0,3000, ''    , '', '','area') }}
                                      visu=yes
                                  [[[Momentanleistung_10min]]]
                                      name = Momentanleistung_10min
                                      type = num
                                      sqlite = yes
                                      knx_dpt = 14
                          #           knx_send = 6/7/2
                                      eval = (sh.Allgemein.Stromzaehler.Zaehlerstand()- sh.Allgemein.Stromzaehler.Zaehlerstand.db('max', '11i', '9i'))*60.0*1000.0/10.0
                                      eval_trigger=Allgemein.Stromzaehler.Counter
                                      sv_widget={{ plot.period('p99871', 'item', 'avg', '2h',0,0,3000, ''    , '', '','area') }}
                                      visu=yes
                                  [[[Momentanleistung_freq]]]
                                      name = Momentanleistung_freq
                                      type = num
                                      sqlite = yes
                                      knx_dpt = 14
                          #           knx_send = 6/7/2
                          #Frequenzzähler: Jeder Counter=1/800kWh=3600/800kws=3600/800*1000Ws; Zeit zwischen zwei Impulsen messen und dadurch teilen --> W
                                      eval = 4500/sh.Allgemein.Stromzaehler.Counter.prev_age()
                                      eval_trigger=Allgemein.Stromzaehler.Counter
                                      enforce_updates=yes
                                      sv_widget={{ plot.period('p998dsd71', 'item', 'avg', '2h',0,0,3000, ''    , '', '','area') }}
                                      visu=yes
                                  [[[Leistungsdurchschni24h]]]
                                      name = Last
                                      type = num
                                      sqlite = yes
                                      knx_dpt = 14
                                      eval = (sh.Allgemein.Stromzaehler.Zaehlerstand()-sh.Allgemein.Stromzaehler.Zaehlerstand.db('max', '1d', '1d'))/24*1000
                                      eval_trigger=Allgemein.Stromzaehler.Counter
                                  sv_widget={{ plot.period('p998kk71', 'item', 'avg', '720h') }}
                                  visu=yes
                          Das Log des "chrasht" Fall sieht so aus:
                          Code:
                          2013-10-23 20:57:50 INFO     Main         Number of Threads: 7
                          2013-10-23 20:57:50 INFO     Main         Stop Plugins
                          2013-10-23 20:57:50 INFO     1w-sen       1-Wire: problem reading 26.A1B930010000
                          2013-10-23 20:57:50 INFO     Main         Number of Threads: 3
                          2013-10-23 20:57:50 INFO     Main         Stop Plugins
                          2013-10-23 20:57:51 INFO     Main         Number of Threads: 2
                          2013-10-23 20:57:51 INFO     Main         Stop Plugins
                          2013-10-23 20:57:52 INFO     Main         Number of Threads: 2
                          2013-10-23 20:57:52 INFO     Main         Stop Plugins
                          Ich habe gerade fünf mal entweder das eine, oder das andere auslösen können.
                          Im Debug-Modus habe ich es nicht mehr geschafft. Mag eine Kausalität sein, aber auch ein Zufall.

                          Ideen?

                          Gruß,
                          Hendrik


                          Hier noch die SV-Page:
                          Code:
                          <!DOCTYPE html>
                          
                          <html>
                          <head>
                          	<title>YOUR NAME [smartVISU]</title>
                          
                          	<meta charset="utf-8" />
                          	<meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1, maximum-scale=1.3, minimum-scale=1" />
                          	<meta name="apple-mobile-web-app-capable" content="yes" />
                          	<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
                          	<meta http-equiv="expires" content="0" />
                          
                          	<link rel="icon" href="favicon.png" />
                          	<link rel="icon" href="favicon.ico" type="image/x-icon" />
                          	<link rel="apple-touch-icon" href="favicon.png" />
                          
                          	<link rel="stylesheet" href="vendor/jquery.mobile/jquery.mobile.structure-1.3.2.min.css" />
                          	<script type="text/javascript" src="vendor/jquery/jquery-2.0.3.min.js"></script>
                          
                          	
                          	<script type="text/javascript" src="vendor/jquery.mobile/jquery.mobile-1.3.2.min.js"></script>
                          	<script type="text/javascript" src="lib/base/jquery.mobile.slider.min.js"></script>
                          
                          	<script type="text/javascript" src="vendor/plot.highcharts/highcharts.js"></script>
                          	<script type="text/javascript" src="designs/night.min.js"></script>
                          	<script type="text/javascript" src="widgets/widget.min.js"></script>
                          
                          	
                          	<script type="text/javascript" src="lib/base/base.min.js"></script>
                          	<script type="text/javascript" src="lib/base/base.php"></script>
                          	<script type="text/javascript" src="driver/io_smarthome.py.min.js"></script>
                          
                          	<link rel="stylesheet" type="text/css" href="designs/night.min.css" />
                          	<link rel="stylesheet" type="text/css" href="pages/base/base.css" />
                          
                          	
                          	
                          	
                          				</head>
                          
                          
                          <body>
                          
                          <script type="text/javascript">
                          	io.init('192.168.177.3', '2424');
                          
                          	// Do some actions before page is shown
                          	$(document).on('pagebeforeshow', function () {
                          		fx.init();
                          		repeater.init();
                          		widget.prepare();
                          		// repeater.list();
                          	});
                          
                          	// Run the io and all widgets
                          	$(document).on('pageshow', function () {
                          		io.run(1);
                          		// console.log('[io] run');       	
                          		notify.display();
                          		// widget.list();
                          	});
                          
                          
                          	$.mobile.page.prototype.options.domCache = true;
                          </script>
                          
                          
                          	<div data-role="page" id="Allgemein_Stromzaehler" class="base" data-theme="a">
                          		<div data-role="header" data-position="fixed" data-tap-toggle="false">
                          			<div class="ui-left">
                          				
                          
                          <div id="menu" class="menu">
                          
                          	<a id="menu-rooms" class="icon1" href="index.php">
                          		<img class="icon" src="icons/ws/control_building_empty.svg" /></a>
                          
                          	<a id="menu-category" class="icon1" href="index.php?page=category">
                          		<img class="icon" src="icons/ws/time_manual_mode.svg" /></a>
                          
                          	<a id="menu-apps" class="icon1" data-ajax="false" href="index.php?page=apps">
                          		<img class="icon" src="icons/ws/it_net.svg" /></a>
                          
                          	<a id="menu-system" class="icon1" data-ajax="false" href="index.php?page=config">
                          		<img class="icon" src="icons/ws/edit_settings.svg" /></a>
                          
                          </div>
                          			</div>
                          			<div class="ui-right">
                          				
                          			<span class="smartvisu"><span class="smart">smart</span><span class="visu">VISU</span></span>
                          	
                          
                          				<div class="mini">
                          					<span id="miniclock" class="miniclock" data-widget="clock.miniclock" data-repeat="1i">21:24</span>, 23.10, v2.7</div>
                          			</div>
                          			<div class="signal hide" onClick="$('.ui-page-active .alert').popup('open');"></div>
                          			<div class="alert" data-role="popup" data-overlay-theme="a">
                          				<div data-role="header" data-theme="c"><h1></h1></div>
                          				<p></p>
                          
                          				<div class="control">
                          					<span class="stamp"></span>
                          					<a onClick="notify.remove();" class="ui-mini" data-icon="check" data-iconpos="top" data-role="button" data-inline="true">OK</a>
                          					<a onClick="$('.alert').popup('close');" class="ui-mini" class="ui-mini" data-icon="delete" data-iconpos="top" data-role="button" data-inline="true">Cancel</a>
                          				</div>
                          
                          			</div>
                          		</div>
                          
                          		<div data-role="content" class="page-bg">
                          			<div class="primary" style="background-image: none;">
                          				
                          	<h1><img class="icon" src='icons/ws/' />Strom</h1>
                          
                          	<div class="block">
                          	<div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                          
                          		<div data-role="collapsible" data-collapsed="false">
                          			<h3>Zaehlerstand</h3>
                          			
                          	<div id="Allgemein_Stromzaehler-p99872" data-widget="plot.period" data-item="Allgemein.Stromzaehler.Zaehlerstand.avg.2h.0"
                          		 		data-step="20" data-label=""
                          		data-color="" data-exposure="area" data-axis=""
                          				class="plot"></div>
                          
                          
                          		</div>
                          
                          	</div>
                          </div>
                          <div class="block">
                          	<div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                          
                          		<div data-role="collapsible" data-collapsed="false">
                          			<h3>Momentanleistung_1min</h3>
                          			
                          	<div id="Allgemein_Stromzaehler-p998dd71" data-widget="plot.period" data-item="Allgemein.Stromzaehler.Momentanleistung_1min.avg.2h.0"
                          		 data-ymin="0"   data-ymax="3000" 		data-step="20" data-label=""
                          		data-color="" data-exposure="area" data-axis=""
                          				class="plot"></div>
                          
                          
                          		</div>
                          
                          	</div>
                          </div>
                          <div class="block">
                          	<div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                          
                          		<div data-role="collapsible" data-collapsed="false">
                          			<h3>Momentanleistung_10min</h3>
                          			
                          	<div id="Allgemein_Stromzaehler-p99871" data-widget="plot.period" data-item="Allgemein.Stromzaehler.Momentanleistung_10min.avg.2h.0"
                          		 data-ymin="0"   data-ymax="3000" 		data-step="20" data-label=""
                          		data-color="" data-exposure="area" data-axis=""
                          				class="plot"></div>
                          
                          
                          		</div>
                          
                          	</div>
                          </div>
                          <div class="block">
                          	<div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                          
                          		<div data-role="collapsible" data-collapsed="false">
                          			<h3>Momentanleistung_freq</h3>
                          			
                          	<div id="Allgemein_Stromzaehler-p998dsd71" data-widget="plot.period" data-item="Allgemein.Stromzaehler.Momentanleistung_freq.avg.2h.0"
                          		 data-ymin="0"   data-ymax="3000" 		data-step="20" data-label=""
                          		data-color="" data-exposure="area" data-axis=""
                          				class="plot"></div>
                          
                          
                          		</div>
                          
                          	</div>
                          </div>
                          <div class="block">
                          	<div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                          
                          		<div data-role="collapsible" data-collapsed="false">
                          			<h3>Last</h3>
                          			
                          	<div id="Allgemein_Stromzaehler-p998kk71" data-widget="plot.period" data-item="Allgemein.Stromzaehler.Leistungsdurchschni24h.avg.720h.0"
                          		 		data-step="20" data-label=""
                          		data-color="" data-exposure="" data-axis=""
                          				class="plot"></div>
                          
                          
                          		</div>
                          
                          	</div>
                          </div>
                          
                          
                          			</div>
                          
                          			<div class="secondary minimum-tablet">
                          					<ul data-role="listview" data-dividertheme="c">
                          
                          	<li data-icon="false">
                          	<a href="index.php?page=eg.wohnzimmer">
                          		<img class="icon" src="icons/ws/scene_making_love_clean.png" />
                          
                          		<h3>Wohnzimmer</h3>
                          	</a>
                          </li>
                              
                          <li data-icon="false">
                          	<a href="index.php?page=Lueften">
                          		<img class="icon" src="icons/ws/" />
                          
                          		<h3>Lueften</h3>
                          	</a>
                          </li>
                              
                          <li data-icon="false">
                          	<a href="index.php?page=Allgemein.Lampen">
                          		<img class="icon" src="icons/ws/" />
                          
                          		<h3>Strom1</h3>
                          	</a>
                          </li>
                              
                          <li data-icon="false">
                          	<a href="index.php?page=Allgemein.Stromzaehler">
                          		<img class="icon" src="icons/ws/" />
                          
                          		<h3>Strom</h3>
                          	</a>
                          </li>
                              
                          <li data-icon="false">
                          	<a href="index.php?page=Bewaesserung">
                          		<img class="icon" src="icons/ws/" />
                          
                          		<h3>Bewaesserung</h3>
                          	</a>
                          </li>
                              
                          <li data-icon="false">
                          	<a href="index.php?page=aktuelles_wetter">
                          		<img class="icon" src="icons/ws/" />
                          
                          		<h3>aktuelles_wetter</h3>
                          	</a>
                          </li>
                              
                          <li data-icon="false">
                          	<a href="index.php?page=Daten">
                          		<img class="icon" src="icons/ws/" />
                          
                          		<h3>Daten</h3>
                          	</a>
                          </li>
                              
                          
                          
                          </ul>
                          			</div>
                          		</div>
                          
                          		
                          	</div>
                          
                          
                          </body>
                          </html>

                          Kommentar


                            #28
                            Zitat von henfri Beitrag anzeigen
                            Ideen?
                            Klar.

                            • Schmeiß einzeln die Items raus und guck was passiert!?
                            • Am verdächtigsten für mich sind die Datenbank-Sachen.
                            • Guck ob wenn du die Widget entfernst sh.py länger lebt?
                            • Zirkelbezüge kann ich - unter der Annahme dass die Items nirgendwo sonst (Logiken!!!) verwendet werden - nicht erkennen. Schreib zur Sicherheit dennoch hinter jeden Items- und Widgetbezeichner deine Glückzahl (ernst gemeint!)
                            • Warum geht die Debug-Ausgabe nicht? Debugausgabe MIT dem Trigger der ganzen Situation posten.

                            Schön dass du es eingrenzen konntest!


                            Grüße
                            Robert

                            Kommentar


                              #29
                              Hallo Robert ,
                              danke für deine Antwort .
                              ich werde das wohl morgen einmal ausprobieren müssen . das Problem ist das ist mich eine Stunde gekostet hat die Situation 4 mal herbeizuführen das macht ein systematisches Vorgehen schwerer beziehungsweise langwierig. der debug Modus funktioniert doch darin konnte ich die Situation nicht mehr herbei führen.
                              Ich weiß nicht ob da eine Kausalität besteht oder ob es Zufall ist.
                              Gruß hendrik
                              Den ganzen Text habe ich übrigens diktiert beeindruckend wie gut das funktioniert doch leider kent Android deutschen keine Satzzeichen wenn ich Punkt oder Komma sage wird Punkt und Komma geschrieben

                              von unterwegs gesendet

                              Kommentar


                                #30
                                Ich krieg's nicht mehr reproduziert...

                                Einziger Verdacht -denn ich habe NIX geändert:
                                irgendwas ist in den sqlite-Daten faul gewesen, wodurch es irgendwo eine Endlosschleife beim Anfordern der Daten gegeben hat.

                                Kann das sein?

                                Gruß,
                                Hendrik

                                Kommentar

                                Lädt...
                                X