Ankündigung

Einklappen
Keine Ankündigung bisher.

Graph Libary

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

    #16
    Hi Jürgen,

    eigentlich will ich Dir nur überflüssige Arbeit und Frust ersparen... Es nützt Dir doch nichts, wenn es im Text-Widget läuft. Das ist doch statisch.
    Auch die Python-Lib nutzt Dir nichts. Der Python-Teil der Widgets läuft nur bei der UI-Generierung. Falscher Zeitpunkt.
    Ich weiß nicht genau, was Du machen willst, aber Du solltest vorher ein Konzept haben:
    • Die Werte, die im Chart darzustellen sind, sollten in Items stehen.
    • Schau Dir ein Widget an (z.B. value), da kannst Du sehen, wie die Item-Werte zum client übertragen werden.
    • Nimm die js chart lib
    • Hol die Item-Werte ab, übergebe sie an die js lib
    • Nimm z.B. das Text-Widget, da könntest Du den output der js lib reintun
    So könnte das was werden. Wir können uns gerne nächste Woche treffen und das besprechen.
    Gruß, Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #17
      Zitat von callidomus Beitrag anzeigen
      Die Python Lib kannst Du in den logics Ordner legen und dann in ein Logik einbinden.
      Hi,
      das habe ich mal probiert ging aber nicht habe folgende Fehlermeldung bekommen.

      Code:
      2016-08-05 23:49:40 ERROR    test         Logic: test, File: /data/callidomus/local/logics/test.py, Line: 2, Method: <module>, Exception: No module named 'graphs'
      Traceback (most recent call last):
        File "/mfs/core/lib/scheduler.py", line 425, in _task
          exec(obj.bytecode, _globals)
        File "/data/callidomus/local/logics/test.py", line 2, in <module>
          import graphs
      ImportError: No module named 'graphs'
      Das modul gibt es:
      Code:
      callidomus:/data/callidomus/local/logics> ll
      total 84
      -rw-r--r--  1 admin  admin    12K  1 Aug 22:25 Powador12TL3.py
      -rw-r--r--  1 admin  admin   753B 30 Jul 23:47 Send433.py
      drwxr-xr-x  2 admin  admin   512B  5 Aug 23:16 __pycache__/
      -rw-r--r--  1 admin  admin   2,0K  3 Jul 23:01 baudisch.py
      -rw-r--r--  1 admin  admin   1,7K  5 Jul 00:33 baudischlog.py
      -rw-r--r--  1 admin  admin   1,1K  2 Jul 00:29 dwd.py
      -rw-r--r--  1 admin  admin   1,1K  5 Aug 00:30 fenster.py
      -rw-r--r--  1 admin  admin    25K  5 Aug 23:16 graphs.py
      -rw-r--r--  1 admin  admin   6,2K  5 Aug 22:41 graphs_readme.txt
      -rw-r--r--  1 admin  admin   222B  2 Jul 00:46 kalender.py
      -rw-r--r--  1 admin  admin   432B  5 Aug 23:35 test.py
      callidomus:/data/callidomus/local/logics>
      und in der phyton shell kann ich das laden.
      Code:
      callidomus:/data/callidomus/local/logics> python3.5
      Python 3.5.2 (default, Jul 23 2016, 16:00:49)
      [GCC 4.2.1 Compatible FreeBSD Clang 3.4.1 (tags/RELEASE_34/dot1-final 208032)] on freebsd10
      Type "help", "copyright", "credits" or "license" for more information.
      >>> import graphs
      >>>
      so sieht meine Logic aus.

      Code:
      import graphs
      
      logger = logging.getLogger('')
      cd.Kacolog("Einspeisebetrieb", level='info')
      cd.Kacolog("Einspeisebetrieb", level='warning')
      cd.Kacolog("Einspeisebetrieb", level='error')
      cd.Kacolog("Einspeisebetrieb", level='critical')
      
      graph = graphs.BarGraph('hBar')
      graph.values = [(50, 30, 40), (60, 80, 50), (70, 40, 60)]
      graph.legend = ['cats', 'dogs', 'birds']
      logger.info( graph.create() )
      Könnte es sein das hier nicht vom Source file aus module gesucht wird sondern vom aktuellen directory?
      Wenn ich das ausführe
      Code:
      import os
      logger.info(os.getcwd())
      kommt das "/" raus.

      Viele Grüsse
      Jürgen





      Kommentar


        #18
        Zitat von heckmannju Beitrag anzeigen
        das html muss so oder so generiert werden da es ja dynamisch ist. In diesem Fall reden wir von 5-10kb html code. Die mein Server wahrscheinlich in einer ms berechnet hat. Die Daten selber via http vom Wechselrichter abzuholen geht da bestimmt um Faktoren länger.
        Das HTML von callidomus wird nur einmalig gerendert und zwar in dem Moment wo du bei Visu auf Aktualisieren drückst. Danach liefert der Webserver nur statische Daten aus. Mit der Python Lib von dir, muss es vielleicht wirklich bei jedem Aufruf gerendert werden, aber das muss ja nicht sein. Du kannst genauso eine JavaScript Lib nehmen, deine Charts (oder zumindest die Konfig davon) als statisches HTML/JS ausliefern und die Werte anschließend über den Websocket holen.

        Balkendiagramme kannst du auch mit Highcharts machen... habe ich damals für meine PV Anlage in der smartVISU auch so gemacht: #98

        Mit freundlichen Grüßen
        Niko Will

        Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
        - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

        Kommentar


          #19
          Zitat von 2ndsky Beitrag anzeigen

          Das HTML von callidomus wird nur einmalig gerendert und zwar in dem Moment wo du bei Visu auf Aktualisieren drückst. Danach liefert der Webserver nur statische Daten aus. Mit der Python Lib von dir, muss es vielleicht wirklich bei jedem Aufruf gerendert werden, aber das muss ja nicht sein. Du kannst genauso eine JavaScript Lib nehmen, deine Charts (oder zumindest die Konfig davon) als statisches HTML/JS ausliefern und die Werte anschließend über den Websocket holen.

          Balkendiagramme kannst du auch mit Highcharts machen... habe ich damals für meine PV Anlage in der smartVISU auch so gemacht: #98
          Niko, auch die JS lib muss rendern. Nachdem sie die Daten empfangen hat das es sich ja nicht um einen Statischen Inhalt handelt. Und was für mich auch noch ein Grund ist das ich eigentlich mit JavaScript nix zu tun haben will.

          VG
          Jürgen

          Kommentar


            #20
            Hi Jürgen,

            ich bin raus - zumindest in dem Thread. Mein Angebot bleibt, dass wir uns kommende Woche zusammensetzen können.
            Nichtsdestotrotz muss ich sagen, dass Du hier offensichtlich "Beratungsresistent" bist.

            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              #21
              Zitat von heckmannju Beitrag anzeigen
              Niko, auch die JS lib muss rendern. Nachdem sie die Daten empfangen hat das es sich ja nicht um einen Statischen Inhalt handelt. Und was für mich auch noch ein Grund ist das ich eigentlich mit JavaScript nix zu tun haben will.
              Korrekt, aber JS wird auf dem Client gerendert und belastet damit den Server nicht. Außerdem können solche Charts aktualisiert werden, ohne das man jedes mal die Seite neuladen muss. Es reicht also nur neu hinzugekommene Werte zu übertragen und zu rendern.

              Weiter musst du bei serverseitig generierten dynamischen Inhalten immer mit dem Browser Cache tricksen.

              Mit freundlichen Grüßen
              Niko Will

              Logiken und Schnittstelle zu anderen Systemen: smarthome.py - Visualisierung: smartVISU
              - Gira TS3 - iPhone & iPad - Mobotix T24 - ekey - Denon 2313 - Russound C5 (RIO over TCP Plugin) -

              Kommentar

              Lädt...
              X