Ankündigung

Einklappen
Keine Ankündigung bisher.

Neues Database Plugin

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

  • Sisamiwe
    antwortet
    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

    Einen Kommentar schreiben:


  • pino
    antwortet
    Hier die ganze plugin
    Angehängte Dateien

    Einen Kommentar schreiben:


  • jzehnter
    antwortet
    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

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Ich geb‘s auf...

    Einen Kommentar schreiben:


  • pino
    antwortet
    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

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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.

    Einen Kommentar schreiben:


  • pino
    antwortet
    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'

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    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]

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Ist der Auszug für den Fall/Zeitpunkt für den das database Plugin eine negative Duration auswirft?

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    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]

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    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.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    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?

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Kannst du das mal mit einer Logik abfragen, also unabhängig vom db Plugin? Items haben ja auch die Properties für last und prev change.

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Ich habe mal eine debug Ausgabe in das Database plugin eingefügt, die auslöst, wenn (end-start) negativ wird:

    Code:
    9:00 WARNING plugins.database Debug timestamp 2020-04-25 17:15:07.802000+02:00, val 1587827707802, timetouple 1587827707.0, micrsec 802000
    2020-04-25 20:49:00 WARNING plugins.database Debug timestamp 2020-04-25 17:07:47.598000+02:00, val 1587827267598, timetouple 1587827267.0, micrsec 598000
    
    
    2020-04-25 20:49:00 WARNING plugins.database Negative duration: start: 1587827707802, end 1587827267598,
    
    prevChange: 2020-04-25 17:15:07.802000+02:00,
    
    lastChange: 2020-04-25 17:07:47.598000+02:00
    Es ist wirklich so, dass in dem Fall lastChange älter als prevChange ist.

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Die Items sind mit database: init konfiguriert.

    Einen Kommentar schreiben:

Lädt...
X