Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

    Kannst in so einem Fall mal nachsehen, was für Zeitpunkte für das Item dann in der AdmiGUI in den Item Details angezeigt werden?
    Viele Grüße
    Martin

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

    Kommentar


      Onkelandy : Das Abfragen der item Funktionen direkt per Logik liefert auch ein prev_change(), welches neuer ist als ein last_change() Wert.

      Allerdings wird das Item auch gerade nicht extern durch eine Messung upgedatet sondern bei Neustart durch das database plugin entsprechend falsch initialisiert.

      Meine Vermuting ist, dass das database plugin aktuell nur die falschen Werte nach einem Neustart wie gewünscht durch das (database: init) wieder initialisiert.

      Der Fall, bei dem erstmalig last_change() und prev_change fehlerhaft sind, kann durchaus an anderer Stelle wieder auftauchen. Ich weiß aktuell nur nicht, wie ich den ertmaligen Fehler reproduzieren oder nachstellen kann.

      Kommentar


        Msinn :

        Auszug aus der Admin Gui:

        Code:
         [TABLE="class: table table-striped table-hover ng-star-inserted"]
         	 		[TR="class: shng_heading"]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]Letztes Update[/TD]
         			[TD="class: py-1"]26.04.2020 11:17:34 CEST[/TD]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]Letze Änderung[/TD]
         			[TD="class: py-1"]25.04.2020 17:07:47 CEST[/TD]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]Zeit seit dem letzten Update[/TD]
         			[TD="class: py-1"]5 Minuten, 33.14 Sekunden[/TD]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]Zeit seit dem letzten Change[/TD]
         			[TD="class: py-1"]18 Stunden, 15 Minuten, 20.53 Sekunden[/TD]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]Update durch[/TD]
         			[TD="class: py-1"]EnOcean:FFCB0501[/TD]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]Change durch[/TD]
         			[TD="class: py-1"]Database[/TD]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]vorheriger Wert[/TD]
         			[TD="class: py-1"]0[/TD]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]vorheriges Update[/TD]
         			[TD="class: py-1"]25.04.2020 20:55:43 CEST[/TD]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]vorherige Änderung[/TD]
         			[TD="class: py-1"]25.04.2020 20:55:43 CEST[/TD]
         		[/TR]
         		[TR]
         			[TD="class: py-1"]Zeit seit dem vorh. Update[/TD]
         			[TD="class: py-1"]10 Minuten, 6.04 Sekunden[/TD]
         		[/TR]
         	 [/TABLE]

        Kommentar


          Ist der Auszug für den Fall/Zeitpunkt für den das database Plugin eine negative Duration auswirft?
          Viele Grüße
          Martin

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

          Kommentar


            Der Auszug oben ist von heute für den keine negative Duration sondern bei Duration ein None steht. Hier der Auszug aus dem DB plugin, der für heute nur einen Eintrag enthält:
            Code:
             [TABLE="class: table table-striped table-hover pluginList"]
             	 		[TR]
             			[TD="class: py-1"] [/TD]
             			[TD="class: py-1"]26.04.2020 10:55:32[/TD]
             			[TD="class: py-1"]None[/TD]
             			[TD="class: py-1"]26.04.2020 10:55:34[/TD]
             			[TD="class: py-1"]0.0[/TD]
             		[/TR]
             	 [/TABLE]
            Gestern sieht man schön, wie die negativen Durations als folge eines None in Duration auftauchen:

            Code:
             [TABLE="class: table table-striped table-hover pluginList"]
             	 		[TR]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 20:55:43[/TD]
             			[TD="class: py-1"]-13675886[/TD]
             			[TD="class: py-1"]26.04.2020 14:29:28[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             	 [/TABLE]
              [TABLE="class: table table-striped table-hover pluginList"]
             	 		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 20:44:50[/TD]
             			[TD="class: py-1"]-13023070[/TD]
             			[TD="class: py-1"]26.04.2020 10:37:11[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 17:15:07[/TD]
             			[TD="class: py-1"]-440204[/TD]
             			[TD="class: py-1"]25.04.2020 20:49:00[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 17:07:47[/TD]
             			[TD="class: py-1"]None[/TD]
             			[TD="class: py-1"]26.04.2020 14:29:28[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 16:57:10[/TD]
             			[TD="class: py-1"]636990[/TD]
             			[TD="class: py-1"]25.04.2020 17:26:59[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 16:53:52[/TD]
             			[TD="class: py-1"]-142415[/TD]
             			[TD="class: py-1"]25.04.2020 17:06:47[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 16:52:46[/TD]
             			[TD="class: py-1"]-76244[/TD]
             			[TD="class: py-1"]25.04.2020 16:56:41[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 16:52:00[/TD]
             			[TD="class: py-1"]None[/TD]
             			[TD="class: py-1"]25.04.2020 16:52:01[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 16:51:29[/TD]
             			[TD="class: py-1"]977793[/TD]
             			[TD="class: py-1"]25.04.2020 17:07:47[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 16:50:42[/TD]
             			[TD="class: py-1"]None[/TD]
             			[TD="class: py-1"]25.04.2020 16:50:43[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 16:39:32[/TD]
             			[TD="class: py-1"]None[/TD]
             			[TD="class: py-1"]25.04.2020 16:39:34[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 16:36:41[/TD]
             			[TD="class: py-1"]888364[/TD]
             			[TD="class: py-1"]25.04.2020 16:51:29[/TD]
             			[TD="class: py-1"]0.0[/TD]
             			[TD="class: py-1"] [/TD]
             		[/TR]
             		[TR]
             			[TD="class: py-1"]1[/TD]
             			[TD="class: py-1"]25.04.2020 16:34:03[/TD]
             			[TD="class: py-1"]158242[/TD]
             			[TD="class: py-1"]25.04.2020 16:46:35[/TD]
             			[TD="class: py-1"]0.0[/TD]
             		[/TR]
             	 [/TABLE]

            Kommentar


              also Ich weiß nicht mehr , was das Plugin noch von mir möchte. Habe mariea install und auch die py pakete mit allen rechten und im plugin.yaml habe ich diese einstellungen,

              database_mysql:
              plugin_name: database
              driver: pymysql
              connect:
              - host:127.0.0.1
              - user:smarthome1
              - passwd:smarthome1
              - db:smarthome1
              - port:3306
              instance: nas
              precision: 4

              aber immer wieder die fehlermeldung. Raspi, buster python3.7 smhg 1.7.1

              2020-05-18 18:37:52 INFO Main Loading plugin translations (id=plugin/database) from plugins/database/locale.yaml
              2020-05-18 18:37:52 INFO Main Loading plugin translations (id=plugin/database) from plugins/database/locale.yaml
              2020-05-18 18:37:52 INFO Main plugin 'database': value not found in plugin configuration file for parameter 'prefix' -> using default value '' instead
              2020-05-18 18:37:52 INFO Main plugin 'database': value not found in plugin configuration file for parameter 'prefix' -> using default value '' instead
              2020-05-18 18:37:52 INFO Main plugin 'database': value not found in plugin configuration file for parameter 'cycle' -> using default value '60' instead
              2020-05-18 18:37:52 INFO Main plugin 'database': value not found in plugin configuration file for parameter 'cycle' -> using default value '60' instead
              2020-05-18 18:37:52 INFO Main plugin 'database': value not found in plugin configuration file for parameter 'precision' -> using default value '2' instead
              2020-05-18 18:37:52 INFO Main plugin 'database': value not found in plugin configuration file for parameter 'precision' -> using default value '2' instead
              2020-05-18 18:37:52 ERROR Main Plugin 'database' from section 'database_sqlite' exception: 'collections.OrderedDict' object has no attribute 'partition'
              Traceback (most recent call last):
              File "/usr/local/smarthome/lib/plugin.py", line 144, in __init__
              plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance, self.meta)
              File "/usr/local/smarthome/lib/plugin.py", line 610, in __init__
              exec("self.plugin.__init__(smarthome{0}{1})".forma t("," if len(arglist) else "", argstring))
              File "<string>", line 1, in <module>
              File "/usr/local/smarthome/plugins/database/__init__.py", line 103, in __init__
              Utils.string_to_list(self.get_parameter_value('con nect')))
              File "/usr/local/smarthome/lib/db.py", line 170, in __init__
              key, sep, value = arg.partition(':')
              AttributeError: 'collections.OrderedDict' object has no attribute 'partition'
              2020-05-18 18:37:52 ERROR Main Plugin 'database' from section 'database_sqlite' exception: 'collections.OrderedDict' object has no attribute 'partition'
              Traceback (most recent call last):
              File "/usr/local/smarthome/lib/plugin.py", line 144, in __init__
              plugin_thread = PluginWrapper(smarthome, plugin, classname, classpath, args, instance, self.meta)
              File "/usr/local/smarthome/lib/plugin.py", line 610, in __init__
              exec("self.plugin.__init__(smarthome{0}{1})".forma t("," if len(arglist) else "", argstring))
              File "<string>", line 1, in <module>
              File "/usr/local/smarthome/plugins/database/__init__.py", line 103, in __init__
              Utils.string_to_list(self.get_parameter_value('con nect')))
              File "/usr/local/smarthome/lib/db.py", line 170, in __init__
              key, sep, value = arg.partition(':')
              AttributeError: 'collections.OrderedDict' object has no attribute 'partition'

              Kommentar


                Du hast nicht alles interessante gepostet. Die gepostete Konfiguration passt nicht zu der Fehlermeldung. Gepostet hast Du die Section database_mysql, der Fehler bezieht ich aber auf die Section database_sqlite.

                Siehe:
                Code:
                2020-05-18 18:37:52 ERROR Main Plugin 'database' from section 'database_sqlite' exception: 'collections.OrderedDict' object has no attribute 'partition'
                Poste bitte in Zukunft mit richtiger Formatierung. Siehe Thread Hilfe zu SmartHomeNG erhalten --> Python Code und Yaml Konfig richtig einfügen.
                Viele Grüße
                Martin

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

                Kommentar


                  das ist nur die database_sqlite:
                  alles andere ist gleich:

                  # class__name: database
                  # class_path: plugins.database
                  # driver: pymysql
                  # connect:
                  # - host: 127.0.0.1
                  # - user: smarthome
                  # - passwd: smarthome1
                  # - database: smarthome1
                  # - port: 3306
                  # instance: nas
                  # precision: 2
                  # plugin_enabled: false

                  da ich mit dem Admin tool auch schon versucht hatte

                  Kommentar


                    Ich geb‘s auf...
                    Viele Grüße
                    Martin

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

                    Kommentar


                      pino :
                      Zitat von Msinn Beitrag anzeigen
                      Poste bitte in Zukunft mit richtiger Formatierung. Siehe Thread Hilfe zu SmartHomeNG erhalten --> Python Code und Yaml Konfig richtig einfügen.
                      Poste mal die plugin.yml für beide Bereiche.
                      ​​​​​​​Dein obiger Auszug hatte alles auskommentiert, dazu würden auch die Meldungen passen. Allerdings hast du uns die erste und entscheidende Zeile der Plugins Definition verschwiegen

                      Kommentar


                        Hier die ganze plugin
                        Angehängte Dateien

                        Kommentar


                          Hallo,

                          ich möchte meinen Produktivinstanz von shNG (auf einem RPI3) neu aufsetzten bzw. von einem RPI auf einen anderen übertragen.
                          Wie sieht aus eurer Sicht die einfachste Möglichkeit aus, die Maria-DB umzuziehen und wieder aktiv zu befüllen?

                          Danke für Eure Meinung.
                          Michael

                          Kommentar


                            Das hängt davon ab wo und wie Du die MariaDB installiert hast:
                            - Falls MariaDB auf einem anderen Rechner läuft, brauchst Du nichts zu tun
                            - Falls MariaDB auf dem PI läuft, installierst Du am besten die selbe Version der MariaDB auf dem neuen Rechner. Anschließend stoppst Du MariaDB und kopierst die entsprechenden Datendateien in die neue MarisDB Installation.
                            Viele Grüße
                            Martin

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

                            Kommentar


                              Zitat von Msinn Beitrag anzeigen
                              - Falls MariaDB auf dem PI läuft, installierst Du am besten die selbe Version der MariaDB auf dem neuen Rechner. Anschließend stoppst Du MariaDB und kopierst die entsprechenden Datendateien in die neue MarisDB Installation.
                              Sobald sich kleinere Versionänderungen in der Server-Version ergeben, wäre der sicherer Weg über einen MySQL-Dump zu gehen.
                              Dump:
                              https://mariadb.com/kb/en/making-bac...ith-mysqldump/

                              Restore:
                              https://mariadb.com/kb/en/restoring-...om-dump-files/

                              Kommentar


                                hallo zusammen,

                                ich habe eine Frage, kann ich Items in Abhängigkeit anderer Items in die DB schreiben?
                                konkret geht es um 4 Temperaturen der KWL, bei denen 2 nicht gültig sind wenn der Bypass offen ist. diese möchte ich dann nicht loggen um sie auch nicht im Plot in der SmartVISU zu haben.
                                Alternativ wäre die Idee Werte in Abhängigkeit vom bypass einfach nicht darzustellen, das sehe aber mit den Plots als noch viel schwieriger umsetzbar.

                                Danke!

                                Kommentar

                                Lädt...
                                X