Ankündigung

Einklappen
Keine Ankündigung bisher.

Smarthomeinfo / Systeminfo

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

    Smarthomeinfo / Systeminfo

    Hallo Forum,

    wie befüllt man denn die Widgets für die Uptime des Systems und den Memory verbauch des Smarthome Servers. Es gibt ja bereits eine Page, aber die Inhalte sind bei mir leer und ich weiß nicht wie man dieses füllt.

    Danke und Gruss Jens

    #2
    Hallo Jens,
    die Uptime usw kommen vom smarthome eigentlich ist alles schon fertig das ist einfach ein ganz normales Basic Value Widget in dem u.a. folgende Items angegeben sind:
    • Systemstart: env.system.start
    • smarthome.py start: env.core.start
    • System Belastung: env.system.load
    • Threads: env.core.threads
    • Memory: env.core.memory

    das ganze befindet sich im smarthome Verzeichnis unter: smarthome/lib/env dort stehen in dem conf Dateien alle möglichen Informationen die man in die VISU einbinden kann
    Angaben nach bestem Wissen und Gewissen (Inhalt und Rechtschreibung)

    Kommentar


      #3
      Zitat von ErKi Beitrag anzeigen
      Hallo Jens,
      die Uptime usw kommen vom smarthome eigentlich ist alles schon fertig das ist einfach ein ganz normales Basic Value Widget in dem u.a. folgende Items angegeben sind:
      • Systemstart: env.system.start
      • smarthome.py start: env.core.start
      • System Belastung: env.system.load
      • Threads: env.core.threads
      • Memory: env.core.memory

      das ganze befindet sich im smarthome Verzeichnis unter: smarthome/lib/env dort stehen in dem conf Dateien alle möglichen Informationen die man in die VISU einbinden kann
      Hallo Erik ich nutze nicht den pi als visu und SH.py Server liegt es daran? Bei mir wird nichts angezeigt, außer in der cofnig Seite sehe etwas über den sh.py nur die Info Seite bleibt leer.
      Gruß Jens

      Kommentar


        #4
        Hallo Jens,
        ich bin jetzt nicht mknx. Aber ich gehe mal davon aus, da in der Standard SH.py Konfiguration die conf Datein vorhanden sind, man auf die System Informationen zugreifen kann.

        Was ist denn in deinem smarthome/lib/env Ordner drin? Müsste ja eigentlich genauso wie hier sein: (https://github.com/mknx/smarthome/tree/master/lib/env).
        Angaben nach bestem Wissen und Gewissen (Inhalt und Rechtschreibung)

        Kommentar


          #5
          Zitat von ErKi Beitrag anzeigen
          Hallo Jens,
          ich bin jetzt nicht mknx. Aber ich gehe mal davon aus, da in der Standard SH.py Konfiguration die conf Datein vorhanden sind, man auf die System Informationen zugreifen kann.

          Was ist denn in deinem smarthome/lib/env Ordner drin? Müsste ja eigentlich genauso wie hier sein: (https://github.com/mknx/smarthome/tree/master/lib/env).
          hi genauso sieht es bei mir aus. aber die folgenden fehlen mir:
          • Systemstart: env.system.start
          • smarthome.py start: env.core.start
          • System Belastung: env.system.load
          • Threads: env.core.threads
          • Memory: env.core.memory


          Wie komme ich da dran?

          Gruss Jens

          Kommentar


            #6
            Hallo Jens,
            das sind ja auch nicht die Daten sonder was in den Dateien drinsteht z.B. steht in core.conf:
            Code:
            [env]
                [[core]]
                    [[[version]]]
                        type = str
                    [[[start]]]
                        type = foo
                    [[[memory]]]
                        type = num
                        sqlite = init
                    [[[threads]]]
                        type = num
                        sqlite = init
                    [[[garbage]]]
                        type = num
                        sqlite = init
            Und dort stehen halt die Items wie env.core.threads, env.core.memory usw.

            Vergleiche mal den Inhalt deiner Dateien mit der auf der Seite.
            Angaben nach bestem Wissen und Gewissen (Inhalt und Rechtschreibung)

            Kommentar


              #7
              Hallo Eric,

              das sieht alles genauso aus wie auf dem Link, (https://github.com/mknx/smarthome/tree/master/lib/env) Alle Inhalte sind gleich. Anbei mal 2 Screenshots
              SmartHomeinfo.JPG

              Systeminfo.JPG

              Leider immer noch alles leer ;(

              Gruß Jens

              Kommentar


                #8
                Hallo Jens,
                bei mir sieht die smarthome.py Info Seite gaaaaannnnzzzz anders aus. Ich schreib den Inhalt der smarthome.py.html Datei mal hier hin:
                Code:
                /**
                * -----------------------------------------------------------------------------
                * @package     smartVISU
                * @author      Martin Gleiß
                * @copyright   2012
                * @license     GPL [http://www.gnu.de]
                * -----------------------------------------------------------------------------
                */
                
                
                {% extends "system.html" %}
                
                {% block content %}
                	{% import "plot.html" as plot %}
                	{% import "status.html" as status %}
                
                	<h1>SmartHome.py Monitor</h1>
                	
                	<div style="float:right;">
                		Name: <b>{{ basic.value('name', 'env.system.name') }}</b>, Version: {{ basic.value('version', 'env.core.version') }}<br />
                	</div><br /><br />
                	
                	<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>sytem load ({{ basic.value('loadnow', 'env.system.load') }})</h3>
                				{{ plot.period('load', 'env.system.load', 'avg', '1d', '', '', '', '', 'system load') }}
                			</div>
                
                			<div data-role="collapsible" data-collapsed="true">
                				<h3>threads ({{ basic.value('threadsnow', 'env.core.threads') }})</h3>
                				{{ plot.period('threads', 'env.core.threads', 'avg', '1d', '', '', '', '', 'threads') }}
                			</div>
                
                		</div>
                	</div>
                	
                	<div class="block">
                		<div class="set-1" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
                
                			<div data-role="collapsible" data-collapsed="false">
                				<h3>memory ({{ basic.formula('memorynow', 'env.core.memory', 'kB', 'VAR / 1024') }})</h3>
                				{{ plot.period('memory', 'env.core.memory', 'avg', '1d', '', '', '', '', 'memory') }}
                			</div>
                
                		</div>
                	</div>
                
                	<div style="clear: left;"></div>
                	system start: {{ basic.formula('systemstart', 'env.system.start', 'short') }},
                	SmartHome.py start: {{ basic.formula('corestart', 'env.core.start', 'short') }}<br />
                
                	
                	<h2>Location</h2>
                	<div>
                		<img style="height: 32px; vertical-align: middle;" src="lib/weather/pics/sun_up.png">
                		{{ basic.formula('sunrise', 'env.location.sunrise', 'time') }}
                		<img style="height: 32px; vertical-align: middle;" src="lib/weather/pics/sun_down.png">
                		{{ basic.formula('sunset', 'env.location.sunset', 'time') }}
                		<img style="height: 32px; vertical-align: middle;" src="lib/weather/pics/moon_up.png">
                		{{ basic.formula('moonrise', 'env.location.moonrise', 'time') }}
                		<img style="height: 32px; vertical-align: middle;" src="lib/weather/pics/moon_down.png">
                		{{ basic.formula('moonset', 'env.location.moonset', 'time') }},
                		moonphase: {{ basic.value('moonphase', 'env.location.moonphase') }}, moonlight: {{ basic.value('moonlight', 'env.location.moonlight', '%') }}
                	</div>
                	
                	
                	<h2>Log</h2>
                	{{ status.log('log1', 'env.core.log', 10) }}
                	
                {% endblock %}
                
                /**
                env.core.version = 0.9-341-gc9ff622
                env.core.start = 2013-10-15 05:41:25.208615+00:00
                env.core.memory = 13508608
                env.core.threads = 8
                env.core.garbage = 0
                env.core
                env.location.day = False
                env.location.sunrise = 2013-10-15 05:41:25.208615+00:00
                env.location.sunset = 2013-10-15 16:25:38.796390+00:00
                env.location.moonrise = 2013-10-15 14:39:46.741376+00:00
                env.location.moonset = 2013-10-15 01:23:01.553577+00:00
                env.location.moonphase = 3
                env.location.moonlight = 80
                env.location
                env.system.start = 2013-10-15 05:41:25.208615+00:00
                env.system.load = 0.06
                env.system.name = smarthome.local
                env.system
                env
                */
                Denn hab ich nicht verändert der ist so bei mir in der base.

                Angehangen hab ich auch mal ein screenshot von der Seite
                Angehängte Dateien
                Angaben nach bestem Wissen und Gewissen (Inhalt und Rechtschreibung)

                Kommentar


                  #9
                  Nabend,

                  die Plots mit dem Speicherverbrauch gab es (glaube ich) hier im Forum.
                  Ich hab die Seiten bei mir funktionsfähig eingebunden (siehe Screenshots).

                  Für die Systemuptime und den Speicher musste noch ne Logic geschrieben werden (z.B. cycle=300) und ne items.conf

                  Alle anderen verwendeten Items in meinen Seiten lieferte Smarthome bereits mit.

                  system.conf
                  Code:
                  # items/system.conf
                  [smarthome]
                      name = SmartHome
                      [[runtime]]
                          name = Laufzeit
                          type = str
                          visu = yes
                  
                  [system]
                      name = System
                      [[memory]]
                          type = num
                          name = Speicherverbrauch
                          sqlite = yes
                      [[uptime]]
                          name = Laufzeit
                          type = str
                  system.py
                  Code:
                  # logics/system.py
                  
                  def td2str(td):
                      hours, seconds = divmod(td.seconds, 3600)
                      minutes, seconds = divmod(seconds, 60)
                      if td.days:
                          return "{0}d {1}h {2}m".format(td.days, hours, minutes)
                      else:
                          return "{0}h {1}m".format(hours, minutes)
                  
                  # Runtime
                  runtime = sh.tools.runtime()
                  sh.smarthome.runtime(td2str(runtime))
                  
                  # System Memory
                  statusfile = "/proc/meminfo"
                  units = {'kB': 1024, 'mB': 1048576}
                  with open(statusfile, 'r') as f:
                      data = f.read()
                  for line in data.splitlines():
                      key, sep, value = line.partition(':')
                      if key.startswith('Mem'):
                          size, unit = value.strip().split(' ')
                          mem = int(size) * units[unit]
                          if key == 'MemTotal':
                              total = mem
                          elif key == 'MemFree':
                              free = mem
                  sh.system.memory(100-int(free/(total/100)))
                  
                  # System Uptime
                  statusfile = "/proc/uptime"
                  with open(statusfile, 'r') as f:
                      data = f.read()
                  uptime = int(float(data.split()[0]))
                  uptime = datetime.timedelta(seconds=uptime)
                  sh.system.uptime(td2str(uptime))
                  Und der Code zu meinen Visu Seiten ist hier:

                  https://github.com/lbernau/smartvisu...ts/system.html
                  https://github.com/lbernau/smartvisu...smarthome.html

                  Vielleicht hilft das.

                  Grüße,

                  Lars
                  Angehängte Dateien

                  Kommentar


                    #10
                    Zitat von Shai Beitrag anzeigen
                    Nabend,

                    die Plots mit dem Speicherverbrauch gab es (glaube ich) hier im Forum.
                    Ich hab die Seiten bei mir funktionsfähig eingebunden (siehe Screenshots).

                    Für die Systemuptime und den Speicher musste noch ne Logic geschrieben werden (z.B. cycle=300) und ne items.conf

                    Alle anderen verwendeten Items in meinen Seiten lieferte Smarthome bereits mit.

                    system.conf
                    Code:
                    # items/system.conf
                    [smarthome]
                        name = SmartHome
                        [[runtime]]
                            name = Laufzeit
                            type = str
                            visu = yes
                    
                    [system]
                        name = System
                        [[memory]]
                            type = num
                            name = Speicherverbrauch
                            sqlite = yes
                        [[uptime]]
                            name = Laufzeit
                            type = str

                    Und der Code zu meinen Visu Seiten ist hier:

                    https://github.com/lbernau/smartvisu...ts/system.html
                    https://github.com/lbernau/smartvisu...smarthome.html

                    Vielleicht hilft das.

                    Grüße,

                    Lars
                    Hallo Lars,

                    danke bereits jetzt klappt das mit dem Systemanzeigen, lediglich die Uptime zeigt noch nichts an. Du meintest doch mal sollte eine Logic anlegen Namens system.py. das habe ich auch gemacht. Aber die Uptime zeigt nichts an. Ich habe natürlich wegen den Änderungen Sh.py neugestartet liegt es daran?

                    Gruss Jens

                    Kommentar


                      #11
                      Hey,

                      hast du die Logik auch in der etc/logics.conf drin ;-)
                      Als Auslöser nutz ich dann cycle=300 (alle 5 Minuten)

                      etc/logics.conf
                      Code:
                      [System]
                              filename = system.py
                              cycle = 300

                      Gibt es Fehler im Log?

                      Grüße,

                      Lars

                      Kommentar


                        #12
                        Zitat von Shai Beitrag anzeigen
                        Hey,

                        hast du die Logik auch in der etc/logics.conf drin ;-)
                        Als Auslöser nutz ich dann cycle=300 (alle 5 Minuten)

                        etc/logics.conf
                        Code:
                        [System]
                                filename = system.py
                                cycle = 300

                        Gibt es Fehler im Log?

                        Grüße,

                        Lars
                        hi Lars, jetzt zeigt er mir zumindest was an Lasse es jetzt mal was laufen und werte heute Abend mal aus. Er wirft wegen was anderem noch Fehler, ich weiß nicht wo ich das 1 Wire ausschalten kann.
                        Code:
                        Init SmartHome.py 1.0-35-gf62db45+
                        2014-08-18 13:04:09 ERROR    Main         Plugin fritzbox exception: No module named 'lib.www'
                        Traceback (most recent call last):
                          File "/usr/local/smarthome/lib/plugin.py", line 53, in __init__
                            plugin_thread = Plugin(smarthome, plugin, classname, classpath, args)
                          File "/usr/local/smarthome/lib/plugin.py", line 79, in __init__
                            exec("import {0}".format(classpath))
                          File "<string>", line 1, in <module>
                          File "/usr/local/smarthome/plugins/fritzbox/__init__.py", line 16, in <module>
                            import lib.www
                        ImportError: No module named 'lib.www'
                        2014-08-18 13:04:10 WARNING  system.datum_uhrzeit.sonne.position Item system.datum_uhrzeit.sonne.position: value (2.916560649871826, 0.9011772274971008) does not match type num. Via Init None
                        2014-08-18 13:04:11 ERROR    Connections  1-Wire: could not connect to 127.0.0.1:4304: [Errno 111] Verbindungsaufbau abgelehnt
                        Das Plugin habe ich schon gegen das neueste von MKNX getauscht.

                        https://github.com/mknx/smarthome/tr...ugins/fritzbox

                        Kommentar


                          #13
                          Die Uptime ist ja auch eher ein "langweiliger" Wert ;-)
                          Speicher und CPU Last sind vermutlich auch ziemlich statisch und halt einfach nice2have.

                          Der Fehler kommt scheinbar vom FritzBox Plugin. Sieht aus als ob da ein Modul nicht gefunden wird. "lib.www", sollte das nicht ein Standard Modul sein?

                          1-Wire wirst du wohl in der etc/plugin.conf ausschalten können wenn du es nicht brauchst.


                          Grüße Lars

                          Kommentar


                            #14
                            Zitat von Shai Beitrag anzeigen
                            Der Fehler kommt scheinbar vom FritzBox Plugin. Sieht aus als ob da ein Modul nicht gefunden wird. "lib.www", sollte das nicht ein Standard Modul sein?



                            Grüße Lars
                            Hi Lars,

                            was ist das denn für ein Modul? wie kann ich kontrollieren ob das integriert ist?
                            1 Wire wirft gerade keinen Fehler mehr.

                            Gruß Jens

                            Kommentar


                              #15
                              Hey Jens,

                              sorry so gut kenn ich mich in Python nicht aus.

                              Am besten fragst Du mal in dem FritzBox Plugin Thread nach.

                              Spontane Vermutung: Du nutzt das alte Plugin was wohl nicht mehr mit Python 3.2 kompatibel ist. Eventuell müsstest Du das aktualisieren. (siehe Smarthome.py Forum)


                              Grüße,

                              Lars

                              Kommentar

                              Lädt...
                              X