Der Thread Name sagt alles ...
Ankündigung
Einklappen
Keine Ankündigung bisher.
Support Thread für Operationlog Plugin
Einklappen
X
-
seit den SH - update 1.8 / 1.8.1 loggt das Operationlog Plugin bei mir nicht mehr:
Code:mystatuslog: plugin_name: operationLog name: mystatuslog #instance: mystatuslog maxlen: 5 cache: true logtofile: true filepattern: yearly_log-{name}-{year:04}.log myOfenlog: plugin_name: operationLog name: myOfenlog #instance: myOfenlog maxlen: 10 cache: true logtofile: true filepattern: yearly_log-{name}-{year:04}.log
Code:2021-02-07 09:33:38 WARNING lib.plugin Plugin section 'myOfenlog' uses same class 'OperationLog' and instance 'default' as plugin section 'mystatuslog' 2021-02-07 09:33:38 WARNING lib.plugin Plugin section 'watchdoglogger' uses same class 'MemLog' and instance 'default' as plugin section 'statuslogger'
wenn ich in der plugin.yaml eine Instance mit angebe:
Code:021-02-07 09:40:54 WARNING lib.model.smartplugin Plugin 'operationlog': Only multi-instance capable plugins allow setting a name for an instance 2021-02-07 09:40:54 WARNING plugins.operationlog Plugin 'operationlog': Only multi-instance capable plugins allow setting a name for an instance 2021-02-07 09:40:54 WARNING lib.model.smartplugin Plugin 'operationlog': Only multi-instance capable plugins allow setting a name for an instance 2021-02-07 09:40:54 WARNING plugins.operationlog Plugin 'operationlog': Only multi-instance capable plugins allow setting a name for an instance
-
Bei mir funktioniert es ohne Instanzen. Die Warnung kannst du dann ignorieren.
In den Items sieht es dann zB so aus:
Code:l1: type: str olog: log1 olog_rules: '*:value' l2: type: str olog: log2 olog_rules: '*:value'
Kommentar
-
hab die Zeile "olog_rules: '*:value'" hinzugefügt und es loggt weider.
Allerdings habe ich noch ein anderes Problem(chen) mit folgender Konstellation:
Code:Ofen: Temperatur: type: num visu_acl: ro cache: True database: yes database_maxage: 365 knx_dpt: 9 knx_listen: 4/5/1 eval: int(value) telegram_info: ofen Tuer: type: bool visu_acl: ro cache: True database: yes database_maxage: 365 knx_dpt: 1 knx_listen: 4/5/7 telegram_info: ofen olog: myOfenlog olog_level: warning [MARKIEREN]olog_txt: "{mvalue} Temperatur: {eval=sh.Ofen.Temperatur()}°C" olog_rules: - True:Ofentür Offen - False:Ofentür geschlossen[/MARKIEREN]
Code:2021-02-08 21:04:59 ERROR lib.item.item Item Ofen.Tuer: problem running <bound method OperationLog.update_item of <plugins.operationlog.OperationLog object at 0x7fc0d469b7b8>>: name 'sh' is not defined > Traceback (most recent call last): > File "/usr/local/smarthome/lib/item/item.py", line 1352, in __update > method(self, caller, source, dest) > File "/usr/local/smarthome/plugins/operationlog/__init__.py", line 352, in update_item > self._item_conf[item.id()]['olog_eval_res'].append(eval(expr)) > File "<string>", line 1, in <module> > NameError: name 'sh' is not defined 2021-02-08 21:05:02 ERROR lib.item.item Item Ofen.Tuer: problem running <bound method OperationLog.update_item of <plugins.operationlog.OperationLog object at 0x7fc0d469b7b8>>: name 'sh' is not defined > Traceback (most recent call last): > File "/usr/local/smarthome/lib/item/item.py", line 1352, in __update > method(self, caller, source, dest) > File "/usr/local/smarthome/plugins/operationlog/__init__.py", line 352, in update_item > self._item_conf[item.id()]['olog_eval_res'].append(eval(expr)) > File "<string>", line 1, in <module> > NameError: name 'sh' is not defined
Kommentar
-
Hm. Die lokale Variable `sh` wird im Plugin (aktuelle Version aus develop) mit self.get_sh() belegt, sollte also verfügbar sein.
Vielleicht kann da einer von den "Alten" was zu sagen, da stecke ich (noch) nicht so weit drin. Ansonsten kann ich da die Tage mal reinschauen, aber versprechen kann ich da noch nix.
Welche Plugin-Version nutzt du denn? (Nur, damit wir über den selben Code reden...)
Kommentar
-
Ich würde sagen, die Zeile in der Run Methode sh = self.get_sh() muss da auch ins update_item rein. Denke vor Zeile 350.
In dem Zusammenhang würde es sich auch noch anbieten, shtime an beiden Stellen einzufügen
from lib.shtime import Shtime
self.shtime = Shtime.get_instance()
shtime = self.shtime
Kommentar
-
Zitat von Morg Beitrag anzeigenFix ist drin, gerne mal testen.
👍 jetzt loggt der operationlog wieder
Kommentar
Kommentar