Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin: InfluxDB für schicke Charts mit Grafana

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

    #16
    In Anbetracht des forks auf smarthomeNG hatte ich schon mal überlegt, ob es nicht Sinn machen würde die InfluxDB als Ersatz für SQLite zu nutzen. Evtl. könnte man das Plugin so erweitern, das es die SQLite Funktionen übernimmt. Hat sonst schon jemand sich das in diese Richtung angesehen?

    Gruß,
    Bernd

    Kommentar


      #17
      Hi

      gute Idee, ich hatte mal angefangen das für MYSQL zu versuchen aber wegen Familie keine Zeit mehr gefunden.

      Grüße
      Ronny

      Kommentar


        #18
        Hallo,

        ich habe aber das Problem, dass ich ein "type"-Fehler beim Start bekomme:
        Code:
        2016-04-03 04:54:01 ERROR    Main         Item eg.hwr.temperatur.boden: problem creating: 'Item' object has no attribute 'type'
        2016-04-03 04:54:01 ERROR    Main         Item eg.hwr.temperatur.luft: problem creating: 'Item' object has no attribute 'type'
        2016-04-03 04:54:02 ERROR    Main         Item eg.kueche.temperatur.boden: problem creating: 'Item' object has no attribute 'type'
        2016-04-03 04:54:02 ERROR    Main         Item eg.kueche.temperatur.luft: problem creating: 'Item' object has no attribute 'type'
        2016-04-03 04:54:03 ERROR    Main         Item eg.essen.temperatur.boden: problem creating: 'Item' object has no attribute 'type'
        2016-04-03 04:54:03 ERROR    Main         Item eg.essen.temperatur.luft: problem creating: 'Item' object has no attribute 'type'
        2016-04-03 04:54:03 ERROR    Main         Item eg.essen.luftfeuchtigkeit: problem creating: 'Item' object has no attribute 'type'
        Diese Meldung bekomme ich bei allen Objekten die ich in die influxdb schreiben möchte. Das Problem ist nur, bei jedem Item existiert auch das Attribute "type = num".

        Außerdem habe ich mit aktiviertem influx-Plugin die folgende Fehlermeldung beim Start von smarthome.py:
        Code:
        2016-04-03 04:54:34 ERROR    sh.gc        Method sh.gc exception: 'module' object has no attribute 'quote'
        Traceback (most recent call last):
          File "/usr/smarthome/lib/scheduler.py", line 344, in _task
            obj()
          File "/usr/smarthome/bin/smarthome.py", line 489, in _maintenance
            references = sum(self._object_refcount().values())
          File "/usr/smarthome/bin/smarthome.py", line 520, in _object_refcount
            obj = getattr(module, sym)
          File "/usr/local/lib/python3.2/dist-packages/six.py", line 92, in __get__
            result = self._resolve()
          File "/usr/local/lib/python3.2/dist-packages/six.py", line 161, in _resolve
            return getattr(module, self.attr)
        AttributeError: 'module' object has no attribute 'quote'

        Viele Grüße

        Axel

        Edit: OK, rabiate Methode, ich habe die Type-Überprüfung auskommentiert, jetzt wurden die Items in der InfluxDB angelegt, die Datenbank füllt sich. Der zweite Fehler mit six.py habe ich noch nicht beseitigen können.
        Zuletzt geändert von panzaeron; 03.04.2016, 09:00.

        Kommentar


          #19
          Wie sieht die type abfrage aus im sql plugin ? Hatte in meinem plugin auch mal so nen Fehler ..

          Kommentar


            #20
            Bonze
            So sieht es aus:
            Code:
              def parse_item(self, item):
                if self.influx_keyword in item.conf:
                  if item.type() not in ['num', 'bool']:
                    logger.debug("InfluxDB: only supports 'num' and 'bool' as types. Item: {} ".format(item.id()))
                    return
                  self._items.append(item)
                  return self.update_item
            Aber ich habe smarthome.py auf die letzte Development-Version upgedated und damit ist der Fehler weg und darüber hinaus ist jetzt auch der Fehler mit six.py weg.

            Nachdem ich mich mit Grafana beschäftigt habe, muss ich sagen, dass ist ein super Tool, sehr ansprechende Diagramme, einfach zu konfigurieren und darüber hinaus auch noch gut per iFrame in andere Seiten einzubinden.

            Vielen Dank "DerSeppel" für das Plugin und BMX für den Wiki-Artikel, der mir bei den ersten Schritten gut geholfen hat.

            Kommentar


              #21
              der six.py Fehler lässt sich umgehen, wenn man Abhängigkeiten per Distributions-Packet-Manager installiert und nicht über pip.

              Kommentar


                #22
                Hallo,

                ich habe mich gerade auch am Grafana/InfluxDB Plugin versucht.
                Ich bin nach Bernds (bmx) Anleitung vorgegangen.
                Ich habe ein Item Wetter.Windgeschwindigkeit.Wetterstation :
                Code:
                        [[[Wetterstation]]]
                            type = num
                            knx_dpt = 9
                            knx_cache = 6/5/11
                            sqlite = cache
                und die Plugin Config:
                Code:
                [influxdb]
                    class_name = InfluxDB
                    class_path = plugins.influx
                    influx_host = influxdb
                    influx_keyword = sqlite
                Die Verbindung von Grafana zu InfluxDB funktioniert

                Das Plugin scheint auch zu arbeiten:
                Code:
                2016-08-23  07:23:55 DEBUG    Main         Plugin: influxdb
                2016-08-23  07:23:55 WARNING  Main         Init InfluxDB
                2016-08-23  07:23:55 DEBUG    Main         InfluxDBClient(influxdb, 8086, root, root, smarthome)
                2016-08-23  07:23:55 INFO     Main         Starting new HTTP connection (1): influxdb
                2016-08-23  07:23:59 DEBUG    Allgemein.Stromzaehler.Faktor InfluxDB, update item called
                2016-08-23  07:23:59 INFO     Allgemein.Stromzaehler.Faktor Resetting dropped connection: influxdb
                2016-08-23  07:23:59 DEBUG    Allgemein.Stromzaehler.Counter_ohne_faktor InfluxDB, update item called
                2016-08-23  07:23:59 DEBUG    Allgemein.Stromzaehler.Counter_U InfluxDB, update item called
                2016-08-23  07:23:59 INFO     Allgemein.Stromzaehler.Counter_ohne_faktor Starting new HTTP connection (2): influxdb
                2016-08-23  07:23:59 INFO     Allgemein.Stromzaehler.Counter_U Starting new HTTP connection (3): influxdb
                2016-08-23  07:23:59 DEBUG    Allgemein.Stromzaehler.Zaehlerstand InfluxDB, update item called
                2016-08-23  07:23:59 DEBUG    Main         Starting influxdb Plugin
                2016-08-23  07:23:59 DEBUG    influxdb     InfluxDB next time: 2016-08-23 07:24:09+02:00
                Das o.g. item scheint auch mit InfluxDB verbunden zu sein:
                Code:
                 [TABLE]
                 	 		[TR]
                 			Verbundene Trigger: 		[/TR]
                 		[TR]
                 			[TD="colspan: 2"]bound method InfluxDB.update_item of plugins.influx.InfluxDB[/TD]
                 		[/TR]
                 		[TR]
                 			[TD="colspan: 2"]bound method WebSocket.update_item of plugins.visu_websocket.WebSocket[/TD]
                 		[/TR]
                 		[TR]
                 			[TD="colspan: 2"]bound method SQL.update_item of plugins.sqlite.SQL
                			 [/TD]
                 		[/TR]
                 	 [/TABLE]
                Doch wenn ich in grafana ein Dashboard anlege, erhalte ich keine Daten:
                grafana.PNG


                Was mache ich falsch?

                Gruß&Danke,
                Hendrik

                Kommentar


                  #23
                  Hm, keine Ideen?

                  Kommentar


                    #24
                    InfluxDB ist seit der Anleitung von 0.9 auf 0.13 geklettert und Grafana ist auch nicht stehengeblieben. Wenn Du schreibst, die Verbindung ist da, dann sollte ja was sichtbar sein.
                    Hast Du mal die Kommandozeile 'influx' gestartet und 'Show Databases' ausgeführt? (Siehe hier https://docs.influxdata.com/influxdb...tting_started/)

                    Kommentar


                      #25
                      Genau, das ist leider das Problem.
                      Grade InfluxDB wird recht schnell weiter entwickelt und wird mitterlerweile kommerzialisiert. (Cluster gehen nicht mehr in der OpenSource-Version )

                      Kommentar


                        #26
                        Ist die aktuelle Version des Plugins kompatibel zu der (momentan) aktuellen Version von InfluxDB? Hat die Kommerzialisierung bestimmter Teile von InfluxDB Auswirkungen auf die Pläne die SQLite DB evtl. zukünftig durch InfluxDB zu ersetzen?

                        Viele Grüße
                        Steffen

                        Kommentar


                          #27
                          Also:
                          Das Plugin ist weiterhin kompatibel.
                          Aktuell gibt es keine konkreten Pläne das Datenbank-Plugin durch InfluxDB zu ersetzen.
                          InfluxDB ist im wesentlichen für numerische Daten als Time-Series gedacht. Andere Werte lassen sich da nicht sinnvoll verwalten.
                          Die Kommerzialisierung von InfluxDB betrifft hauptsächlich den professionellen Einsatz in Clustern. Für die meisten Endanwender wird das irrelevant sein. Ich habe es nur eigentlich gerne verwendet um lokal auf meine DB zu schreiben und die dann per VPN auf einen anderen, extern erreichbaren Server zu spiegeln.

                          Kommentar


                            #28
                            Wir haben Pläne, das SQLite durch eine generischere Abstraktionsschicht zu ersetzen. Im DEV von SHNG gibt es dazu das Database Plugin, das bei mir jedoch noch Probleme macht. Ob man da InfluxDB dranhängen kann, weiss ich leider nicht.

                            Kommentar


                              #29
                              DerSeppel

                              Hättest du etwas dagegen, wenn man dein plugin in das offizielle smarthomeNG plugin repo übernimmt?

                              Gruß,
                              Henning

                              Kommentar


                                #30
                                Nein,
                                natürlich nicht. Wollte das nach dem Start von smarthomeNG selbst rein mergen. Aber die Zeit...

                                Kommentar

                                Lädt...
                                X