Was passiert nach dem "plugin requirements installed"? Sieht doch soweit gut aus.
Dass SHNG mehrfach neu gestartet wurde, ist mir klar. Mir ging's darum, ob es jemals sauber gestartet ist oder eh von vornherein hängen blieb... Jetzt beim avm Plugin scheint es ja nicht mehr zu hängen, oder? Würde meine Vermutung untermauern, dass nur beim ersten Mal, wenn ein req installiert werden muss, Probleme auftreten und dann nicht mehr.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Support Thread - "DatabaseAddOn" Plugin
Einklappen
X
-
Nein. Ich hatte shng mehrfach gestartet-> hat nicht geholfen. Ich habe jetzt ein paar plugins aktiviert. Sonst ist mir nichts aufgefallen. Hast du einen Vorschlag welches Plugin ich testen könnte?Zitat von Onkelandy Beitrag anzeigenWar das dein erster Start von shng? Oder der erste, der ein Requirement installieren musste?
grafik.png
Das AVM plugin tut auch nicht aber ich vermute das hat andere Gründe
Code:2024-04-29 21:08:35 NOTICE lib.smarthome -------------------- SmartHomeNG restarting, initiated by SmartHomeNG (Python package installation) -------------------- 2024-04-29 21:08:36 NOTICE lib.smarthome -------------------- Init SmartHomeNG v1.10.0-master (4b25822a0) -------------------- 2024-04-29 21:08:36 NOTICE lib.smarthome Running in Python interpreter 'v3.10.13 final' in virtual environment, from directory /usr/local/smarthome 2024-04-29 21:08:36 NOTICE lib.smarthome - operating system 'Debian GNU/Linux 12 (bookworm)' (pid=2654) 2024-04-29 21:08:36 NOTICE lib.smarthome - on 'Raspberry Pi (Rev. b03114)' 2024-04-29 21:08:39 WARNING lib.shpypi test_requirements: 'lxml' v5.2.1 too new. Maximum v4.9.4 needed 2024-04-29 21:08:39 NOTICE lib.shpypi Installing plugin requirements for the current user, please wait... 2024-04-29 21:08:39 WARNING lib.shpypi PIP command read from smarthome.yaml: 'python3 -m pip' 2024-04-29 21:08:39 NOTICE lib.shpypi Using auto-determined PIP: 'python3 -m pip' 2024-04-29 21:08:42 NOTICE lib.shpypi plugin requirements installed
Einen Kommentar schreiben:
-
Hallo Onkelandy,
ich habe ein seltsames Verhalten bei der Berechnung von Jahreswerten. Der Wert der im Standard berechnet wird, scheint der Rolling-Wert zu sein (genau habe ich es noch nicht nachollzogen). Wenn ich nun eine Neuberechnung im WebIF des Plugins triggere, ist der Wert korrekt, wird aber kurz danach durch den Background-Job wieder auf den falschen Wert geändert
Der Fehler tritt seit dem Upgrde auf 1.10 auf. Vorher war alles korrekt
Hier die Screenshots dazu:
dataurl524149.png
dataurl531467.png
dataurl538289.png
Any Ideas?
Viele Grüße
Gunnar
Einen Kommentar schreiben:
-
War das dein erster Start von shng? Oder der erste, der ein Requirement installieren musste?
Ich hab bei mir auch immer wieder mal das Problem, dass die Install beim Start von shng nicht klappt. Dann aber doch wieder, bin daher nicht sicher, woran es genau liegt. Könntest du bei Gelegenheit mal ein Plugin aktivieren, das noch ein Modul braucht und neustarten und beobachten ob es klappt?
Einen Kommentar schreiben:
-
Und schon gehts. Oh man. Vielen DankZitat von Onkelandy Beitrag anzeigenDann musst du nur pip3 install sqlvalidator angeben.
Einen Kommentar schreiben:
-
Wenn du als smarthome user eingeloggt bist, solltest du eigtl. eh das virtual env aktiv haben - sagt er auch in der Konsole. Dann musst du nur pip3 install sqlvalidator angeben.
Einen Kommentar schreiben:
-
Moin, ich mache gerade erste Gehversuche mit der neuesten smarthomeng Version. Ich nutze das fertige Image auf dem Raspberry. Jetzt ist smarthomeng in einer Endlosschleife wenn ich das db_addon aktiviere.
Wie bekommt man den sqlvalidator nachinstalliert wenn es nicht automatisch funktioniert?
HTML-Code:2024-04-26 22:09:07 NOTICE lib.smarthome -------------------- SmartHomeNG restarting, initiated by SmartHomeNG (Python package installation) -------------------- 2024-04-26 22:09:08 NOTICE lib.smarthome -------------------- Init SmartHomeNG v1.10.0-master (4b25822a0) -------------------- 2024-04-26 22:09:08 NOTICE lib.smarthome Running in Python interpreter 'v3.10.13 final' in virtual environment, from directory /usr/local/smarthome 2024-04-26 22:09:08 NOTICE lib.smarthome - operating system 'Debian GNU/Linux 12 (bookworm)' (pid=3300) 2024-04-26 22:09:08 NOTICE lib.smarthome - on 'Raspberry Pi (Rev. b03114)' 2024-04-26 22:09:10 WARNING lib.shpypi test_requirements: 'sqlvalidator' not installed, any version needed 2024-04-26 22:09:10 NOTICE lib.shpypi Installing plugin requirements for the current user, please wait... 2024-04-26 22:09:10 WARNING lib.shpypi PIP command read from smarthome.yaml: 'python3 -m pip' 2024-04-26 22:09:10 NOTICE lib.shpypi Using auto-determined PIP: 'python3 -m pip' 2024-04-26 22:09:13 NOTICE lib.shpypi plugin requirements installed 2024-04-26 22:09:13 NOTICE lib.smarthome -------------------- SmartHomeNG restarting, initiated by SmartHomeNG (Python package installation) -------------------- 2024-04-26 22:09:15 NOTICE lib.smarthome -------------------- Init SmartHomeNG v1.10.0-master (4b25822a0) -------------------- 2024-04-26 22:09:15 NOTICE lib.smarthome Running in Python interpreter 'v3.10.13 final' in virtual environment, from directory /usr/local/smarthome 2024-04-26 22:09:15 NOTICE lib.smarthome - operating system 'Debian GNU/Linux 12 (bookworm)' (pid=3342) 2024-04-26 22:09:15 NOTICE lib.smarthome - on 'Raspberry Pi (Rev. b03114)' 2024-04-26 22:09:17 WARNING lib.shpypi test_requirements: 'sqlvalidator' not installed, any version needed 2024-04-26 22:09:17 NOTICE lib.shpypi Installing plugin requirements for the current user, please wait... 2024-04-26 22:09:17 WARNING lib.shpypi PIP command read from smarthome.yaml: 'python3 -m pip' 2024-04-26 22:09:17 NOTICE lib.shpypi Using auto-determined PIP: 'python3 -m pip' 2024-04-26 22:09:20 NOTICE lib.shpypi plugin requirements installed 2024-04-26 22:09:20 NOTICE lib.smarthome -------------------- SmartHomeNG restarting, initiated by SmartHomeNG (Python package installation) --------------------
Einen Kommentar schreiben:
-
Sorry! ... neuer Versuch. Hier mal das, was ich denke, was helfen könnte:
Code:2024-04-07 22:19:45 DEBUG plugins.db_addon parse item: temperatur.aussen.min1d due to 'db_addon_fct' 2024-04-07 22:19:45 DEBUG plugins.db_addon minmax_tag_min: item_attribute_dict={'cat': 'wertehistorie', 'on': 'change', 'sub_cat': 'onchange', 'item_type': 'num', 'calc': 'daily', 'params': False, 'description': 'Minimalwert seit Tagesbeginn'} 2024-04-07 22:19:45 DEBUG plugins.db_addon Attribut 'db_addon_database_item' for item='temperatur.aussen.min1d' has been found 0 level above item at 'temperatur.aussen.min1d'. 2024-04-07 22:19:45 DEBUG plugins.db_addon _database_item_path='paradigma.Aussentemperatur', temperatur.aussen.min1d 2024-04-07 22:19:45 DEBUG plugins.db_addon database_item='paradigma.Aussentemperatur', db_addon_startup=None, db_addon_ignore_value_list=None, db_addon_ignore_value=None 2024-04-07 22:19:45 DEBUG plugins.db_addon Item=temperatur.aussen.min1d added with db_addon_fct=minmax_tag_min and database_item=paradigma.Aussentemperatur 2024-04-07 22:19:45 DEBUG plugins.db_addon Item 'temperatur.aussen.min1d' added to be run daily. 2024-04-07 22:19:45 DEBUG plugins.db_addon parse item: temperatur.aussen.max1d due to 'db_addon_fct' 2024-04-07 22:19:45 DEBUG plugins.db_addon minmax_tag_max: item_attribute_dict={'cat': 'wertehistorie', 'on': 'change', 'sub_cat': 'onchange', 'item_type': 'num', 'calc': 'daily', 'params': False, 'description': 'Maximalwert seit Tagesbeginn'} 2024-04-07 22:19:45 DEBUG plugins.db_addon Attribut 'db_addon_database_item' for item='temperatur.aussen.max1d' has been found 0 level above item at 'temperatur.aussen.max1d'. 2024-04-07 22:19:45 DEBUG plugins.db_addon _database_item_path='paradigma.Aussentemperatur', temperatur.aussen.max1d 2024-04-07 22:19:45 DEBUG plugins.db_addon database_item='paradigma.Aussentemperatur', db_addon_startup=None, db_addon_ignore_value_list=None, db_addon_ignore_value=None 2024-04-07 22:19:45 DEBUG plugins.db_addon Item=temperatur.aussen.max1d added with db_addon_fct=minmax_tag_max and database_item=paradigma.Aussentemperatur 2024-04-07 22:19:45 DEBUG plugins.db_addon Item 'temperatur.aussen.max1d' added to be run daily. 2024-04-07 22:19:44 DEBUG plugins.db_addon verbrauch_tag: item_attribute_dict={'cat': 'verbrauch', 'on': 'change', 'sub_cat': 'onchange', 'item_type': 'num', 'calc': 'daily', 'params': False, 'description': 'Verbrauch am heutigen Tag (Differenz zwischen aktuellem Wert und den Wert am Ende des vorherigen Tages)'} 2024-04-07 22:19:44 DEBUG plugins.db_addon Attribut 'db_addon_database_item' for item='paradigma.Betriebsstunden_Tag_bisher' has been found 0 level above item at 'paradigma.Betriebsstunden_Tag_bisher'. 2024-04-07 22:19:44 DEBUG plugins.db_addon _database_item_path='paradigma.Betriebsstunden', paradigma.Betriebsstunden_Tag_bisher 2024-04-07 22:19:44 DEBUG plugins.db_addon database_item='paradigma.Betriebsstunden', db_addon_startup=None, db_addon_ignore_value_list=None, db_addon_ignore_value=None 2024-04-07 22:19:44 DEBUG plugins.db_addon Item=paradigma.Betriebsstunden_Tag_bisher added with db_addon_fct=verbrauch_tag and database_item=paradigma.Betriebsstunden 2024-04-07 22:19:44 DEBUG plugins.db_addon Item 'paradigma.Betriebsstunden_Tag_bisher' added to be run daily.
bei manuellem Trigger:
Warum steht denn da überall 'added to be run daily' wenn es on-change sein sollte?Code:2024-04-07 22:24:02 INFO plugins.db_addon # 1 item(s) to do. || 'on-demand' item=temperatur.aussen.max1d will be processed. 2024-04-07 22:24:02 DEBUG plugins.db_addon Item=temperatur.aussen.max1d with item_config={'db_addon': 'function', 'db_addon_fct': 'minmax_tag_max', 'database_item': Item: paradigma.Aussentemperatur, 'query_params': {'func': 'max', 'timeframe': 'day', 'start': 0, 'end': 0}, 'suspended': False, 'database_item_path': True, 'on': 'change', 'cycle': 'daily', 'startup': False} 2024-04-07 22:24:02 DEBUG plugins.db_addon db_addon_fct='minmax_tag_max' will _query_item with params={'func': 'max', 'timeframe': 'day', 'start': 0, 'end': 0, 'database_item': Item: paradigma.Aussentemperatur}. 2024-04-07 22:24:02 DEBUG plugins.db_addon called with func='max', item=paradigma.Aussentemperatur, timeframe='day', start=0, end=0, group='', group2='', ignore_value_list=None, use_oldest_entry=False 2024-04-07 22:24:02 DEBUG plugins.db_addon Called with query="SELECT id, name, time, val_str, val_num, val_bool, changed FROM item WHERE name = 'paradigma.Aussentemperatur'", params={}, cur=None 2024-04-07 22:24:02 DEBUG plugins.db_addon Connect to database. 2024-04-07 22:24:02 DEBUG plugins.db_addon Result of query=SELECT id, name, time, val_str, val_num, val_bool, changed FROM item WHERE name = 'paradigma.Aussentemperatur': (19, 'paradigma.Aussentemperatur', 1712521293540, None, 16.7, 1, 1712521294563) 2024-04-07 22:24:02 DEBUG plugins.db_addon Called with query='SELECT min(time) FROM log WHERE item_id = :item_id;', params={'item_id': 19}, cur=None 2024-04-07 22:24:02 DEBUG plugins.db_addon Result of query=SELECT min(time) FROM log WHERE item_id = 19;: [(1712261852021,)] 2024-04-07 22:24:02 DEBUG plugins.db_addon _get_oldest_log for item=paradigma.Aussentemperatur = 1712261852021 2024-04-07 22:24:02 DEBUG plugins.db_addon Requested timeframe='day' with start=0 and end=0 resulted in start being timestamp=1712440800000/2024-04-07 00:00:00 and end being timestamp=1712527200000/2024-04-08 00:00:00 2024-04-07 22:24:02 DEBUG plugins.db_addon Called with func='max', item_id=19, ts_start=1712440800000, ts_end=1712527200000, group='', group2='', ignore_value_list=None 2024-04-07 22:24:02 DEBUG plugins.db_addon query='SELECT time, MAX(val_num) as value FROM log WHERE item_id = :item_id AND time BETWEEN :ts_start AND :ts_end AND val_bool = 1', params={'item_id': 19, 'ts_start': 1712440800000, 'ts_end': 1712527200000} 2024-04-07 22:24:02 DEBUG plugins.db_addon Called with query='SELECT time, MAX(val_num) as value FROM log WHERE item_id = :item_id AND time BETWEEN :ts_start AND :ts_end AND val_bool = 1', params={'item_id': 19, 'ts_start': 1712440800000, 'ts_end': 1712527200000}, cur=None 2024-04-07 22:24:02 DEBUG plugins.db_addon Result of query=SELECT time, MAX(val_num) as value FROM log WHERE item_id = 19 AND time BETWEEN 1712440800000 AND 1712527200000 AND val_bool = 1: [(1712493392368, 25.1)] 2024-04-07 22:24:02 DEBUG plugins.db_addon result of '_query_log_timestamp' query_result=[(1712493392368, 25.1)] 2024-04-07 22:24:02 DEBUG plugins.db_addon value for item=paradigma.Aussentemperatur with query_params={'func': 'max', 'item_id': 19, 'ts_start': 1712440800000, 'ts_end': 1712527200000, 'group': '', 'group2': '', 'ignore_value_list': None}: [[1712493392368, 25.1]] 2024-04-07 22:24:02 DEBUG plugins.db_addon result is 25.1 for item 'temperatur.aussen.max1d' with 'db_addon_fct='minmax_tag_max'' 2024-04-07 22:24:02 INFO plugins.db_addon Item value for 'temperatur.aussen.max1d' will be set to 25.1
Einen Kommentar schreiben:
-
Hier mal ein Auszug aus dem Debug-Log nach einem Neustart von SHNG:
Auch interessant ... Die Items 'sonnenbatterie.Consumption_W' und 'sonnenbatterie.GridFeedIn_W' rufe ich gar nicht mehr auf, sondern 'sonnenbatterie.GridFeedIn_W.Hour' ... Das hatte ich falsch gemacht und korrigiert, tauchen aber hier noch auf. Verstehe ich nicht ... In der Liste im WebIF gibt's die Einträge nicht mehr und auch keine aktualisierten Werte für z.B. 21:45:11 ... komisch ...Code:2024-04-07 21:41:42 INFO plugins.db_addon All cache_dicts will be initiated. 2024-04-07 21:42:27 INFO plugins.db_addon Set scheduler for calculating startup-items with delay of 123s to 2024-04-07 21:44:30.287874+02:00. 2024-04-07 21:44:30 INFO plugins.db_addon 0 items will be calculated for option='startup'. 2024-04-07 21:44:40 INFO plugins.db_addon + Updated item 'sonnenbatterie.Consumption_W' with value 325 is now due to be put to queue for processing. 1 items to do. 2024-04-07 21:44:40 INFO plugins.db_addon + Updated item 'sonnenbatterie.GridFeedIn_W' with value -40 is now due to be put to queue for processing. 2 items to do. 2024-04-07 21:44:40 INFO plugins.db_addon # 1 item(s) to do. || 'onchange' item=sonnenbatterie.Consumption_W with value=325 will be processed. 2024-04-07 21:44:40 INFO plugins.db_addon + Updated item 'sonnenbatterie.Pac_total_W' with value 286 is now due to be put to queue for processing. 2 items to do. 2024-04-07 21:44:40 INFO plugins.db_addon # 1 item(s) to do. || 'onchange' item=sonnenbatterie.GridFeedIn_W with value=-40 will be processed. 2024-04-07 21:44:40 INFO plugins.db_addon # 1 item(s) to do. || 'onchange' item=sonnenbatterie.Pac_total_W with value=286 will be processed. 2024-04-07 21:45:11 INFO plugins.db_addon + Updated item 'sonnenbatterie.Consumption_W' with value 333 is now due to be put to queue for processing. 1 items to do. 2024-04-07 21:45:11 INFO plugins.db_addon + Updated item 'sonnenbatterie.GridFeedIn_W' with value -56 is now due to be put to queue for processing. 2 items to do. 2024-04-07 21:45:11 INFO plugins.db_addon # 1 item(s) to do. || 'onchange' item=sonnenbatterie.Consumption_W with value=333 will be processed. 2024-04-07 21:45:11 INFO plugins.db_addon + Updated item 'sonnenbatterie.Pac_total_W' with value 281 is now due to be put to queue for processing. 2 items to do. 2024-04-07 21:45:11 INFO plugins.db_addon # 1 item(s) to do. || 'onchange' item=sonnenbatterie.GridFeedIn_W with value=-56 will be processed. 2024-04-07 21:45:11 INFO plugins.db_addon # 1 item(s) to do. || 'onchange' item=sonnenbatterie.Pac_total_W with value=281 will be processed. 2024-04-07 21:45:14 INFO plugins.db_addon Recalc of item=paradigma.Betriebsstunden_Tag_bisher called via WebIF. Item put to Queue for new calculation. 2024-04-07 21:45:14 INFO plugins.db_addon 1 items will be calculated for option='item'. 2024-04-07 21:45:14 INFO plugins.db_addon # 1 item(s) to do. || 'on-demand' item=paradigma.Betriebsstunden_Tag_bisher will be processed. 2024-04-07 21:45:14 INFO plugins.db_addon No values for item=paradigma.Betriebsstunden in requested timeframe between 1712440800000/2024-04-07 00:00:00 and 1712527200000/2024-04-08 00:00:00 in database found. 2024-04-07 21:45:14 INFO plugins.db_addon Item value for 'paradigma.Betriebsstunden_Tag_bisher' will be set to 0 2024-04-07 21:45:31 INFO plugins.db_addon Recalc of item=temperatur.aussen.min1d called via WebIF. Item put to Queue for new calculation. 2024-04-07 21:45:31 INFO plugins.db_addon 1 items will be calculated for option='item'. 2024-04-07 21:45:31 INFO plugins.db_addon # 1 item(s) to do. || 'on-demand' item=temperatur.aussen.min1d will be processed. 2024-04-07 21:45:31 INFO plugins.db_addon Item value for 'temperatur.aussen.min1d' will be set to 9.5 2024-04-07 21:47:14 INFO plugins.db_addon + Updated item 'sonnenbatterie.Consumption_W' with value 301 is now due to be put to queue for processing. 1 items to do. 2024-04-07 21:47:14 INFO plugins.db_addon + Updated item 'sonnenbatterie.GridFeedIn_W' with value -27 is now due to be put to queue for processing. 2 items to do. 2024-04-07 21:47:14 INFO plugins.db_addon # 1 item(s) to do. || 'onchange' item=sonnenbatterie.Consumption_W with value=301 will be processed. 2024-04-07 21:47:14 INFO plugins.db_addon + Updated item 'sonnenbatterie.Pac_total_W' with value 269 is now due to be put to queue for processing. 2 items to do. 2024-04-07 21:47:14 INFO plugins.db_addon # 1 item(s) to do. || 'onchange' item=sonnenbatterie.GridFeedIn_W with value=-27 will be processed. 2024-04-07 21:47:14 INFO plugins.db_addon # 1 item(s) to do. || 'onchange' item=sonnenbatterie.Pac_total_W with value=269 will be processed.
Gibt es einen Cache o.ä., den ich leeren muss, wenn ich was ändere?
Das Item 'temperatur.aussen.min1d' zum Beispiel wird nie getriggert, obwohl sich die Temperatur in der Database ständig ändert. Wenn ich manuell anstoße 'on-demand', scheint es ordnungsgemäß zu funkionieren. (siehe log)
Was mir bei dem gleichen Item (und den anderen Temperaturen) auch aufgefallen ist: Es wird - obwohl 'onchange' - um kurz nach Mitternacht getriggert und setzt den Wert auf '0', was nicht sein kann:
grafik.png
Einen Kommentar schreiben:
-
Ich schaue mir das mal an. Kann aber etwas dauern.Zitat von ooUrmeloo Beitrag anzeigenIm Plugin steht unter "Verbunden" auch "Nein", obwohl ab und zu unter "Item in Berechnung" was auftaucht. Und wie gesagt, manuell triggern scheint zu funktionieren.
Du könntest aber mal das Debug-Log einschalten und mir mal einen Auszug schicken.
Die sind jeweils synonym zueinander, daher gibt es keinen Unterschied. (Das kam aus der Entwicklungshistorie)Zitat von ooUrmeloo Beitrag anzeigenWas ist eigentlich der Unterschied zwischen 'minmax_tag_min' und 'minmax_heute_min' bzw. 'verbrauch_tag' und verbrauch_heute'?
Einen Kommentar schreiben:
-
Hallo Sisamiwe,
ich bin zufällig auf Dein Plugin gestoßen und würde dieses gerne verwenden.
Ich bin gerade dabei, es auszuprobieren, aber so richtig scheint das nicht zu funktionieren und ich weiß ehrlich gesagt nicht, warum ...
Das Plugin läuft grundsätzlich und ich habe Zugriff auf das WebIF. Ich kann auch manuell den Trigger über das WebIF auslösen aber die Trigger "onchange" funktionieren bei mir irgendwie nicht.
Im Plugin steht unter "Verbunden" auch "Nein", obwohl ab und zu unter "Item in Berechnung" was auftaucht. Und wie gesagt, manuell triggern scheint zu funktionieren.
Hier mal exemplarisch:
grafik.png
Ich nutze folgende einfache Funktionen:
Code:temperatur: aussen: min1d: type: num database_maxage: 30 database: yes cache: True knx_dpt: 9 db_addon_fct: minmax_tag_min db_addon_database_item: 'paradigma.Aussentemperatur'Aber irgdnwie triggert er nicht bei einer Änderung des Items. Eine Idee, woran das liegen könnte?Code:Betriebsstunden_Tag_bisher: type: num visu_acl: ro database_maxage: 30 database: yes cache: True db_addon_fct: verbrauch_tag db_addon_database_item: 'paradigma.Betriebsstunden'
Apropos ... noch eine Frage: Was ist eigentlich der Unterschied zwischen 'minmax_tag_min' und 'minmax_heute_min' bzw. 'verbrauch_tag' und verbrauch_heute'?
Einen Kommentar schreiben:
-
Die Doku habe ich korrigiert; sie ist auch im PR. Denn der PR gemerged ist, ist die develop docu dann auf Stand. Die release docu dann wieder nach release.Zitat von Cannon Beitrag anzeigenDie Doku zum plugin
Schau dir mal die user_doc.rst an. Ist das nun verständlicher?
Einen Kommentar schreiben:
-
Die Doku zum plugin auf der offiziellen Seite von SmartHomeNG. Da steht auch noch method drin und die default-Werte sind da irgendwie vertauscht.Zitat von Sisamiwe Beitrag anzeigenWas meinst du?
Einen Kommentar schreiben:


Einen Kommentar schreiben: