hallo
ich habe einige renames in meinen Devices vorgenommen.
was passiert dann in der DbLog? werden dort die renames automatisch nachgeführt?
oder muss man dazu noch was anstoßen?
ich habe folgendes schon definiert:
[code]define Rep_MAX DbRep dblog_THB
attr Rep_MAX alias Rep_MAX
attr Rep_MAX devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr Rep_MAX icon security
attr Rep_MAX role Agent
attr Rep_MAX room DBLog
attr Rep_MAX showproctime 1
attr Rep_MAX stateFormat { ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
attr Rep_MAX timeout 86400
attr Rep_MAX verbose 4
# DATABASE fhem
# DEF dblog_THB
# FUUID 5db3f6eb-f33f-9b0e-f035-13418cfa2cbf577d
# FVERSION 93_DbRep.pm:v8.50.10-s26940/2023-01-01
# LASTCMD
# MODEL Agent
# NAME Rep_MAX
# NOTIFYDEV global,Rep_MAX
# NR 66
# NTFY_ORDER 50-Rep_MAX
# ROLE Agent
# STATE done » ProcTime: 2.0339 sec
# TYPE DbRep
# UTF8 1
# eventCount 8
# HELPER:
# DBLOGDEVICE dblog_THB
# GRANTS USAGE,INSERT,DELETE,SELECT,UPDATE
# IDRETRIES 3
# MINTS 2022-12-11 12:00:00
# NEWDEV TUYA_Temp7
# OLDDEV TUYA_TEMP7
# PACKAGE main
# RENMODE devren
# VERSION 8.50.10
# DBREPCOL:
# COLSET 1
# DEVICE 64
# EVENT 512
# READING 64
# TYPE 64
# UNIT 32
# VALUE 128
# Helper:
# DBLOG:
# background_processing_time:
# dblog_THB:
# TIME 1673550460.01733
# VALUE 2.0390
# connectionEncoding:
# dblog_THB:
# TIME 1673548855.42217
# VALUE utf8mb4
# dbEncoding:
# dblog_THB:
# TIME 1673548855.42217
# VALUE utf8
# device_not_renamed:
# dblog_THB:
# TIME 1673550286.98775
# VALUE WARNING - old: SVG_TUYA_TEMP6 not found
# device_renamed:
# dblog_THB:
# TIME 1673550460.01733
# VALUE old: TUYA_TEMP7 to new: TUYA_Temp7
# indexState:
# dblog_THB:
# TIME 1673548855.42217
# VALUE Index Report_Idx doesn't exist. Please create the index by "set Rep_MAX index recreate_Report_Idx" command !
# number_lines_updated:
# dblog_THB:
# TIME 1673550460.01733
# VALUE 69
# sql_processing_time:
# dblog_THB:
# TIME 1673550460.01733
# VALUE 2.0339
# state:
# dblog_THB:
# TIME 1673550460.01733
# VALUE done
# timestamp_oldest_dataset:
# dblog_THB:
# TIME 1673548855.42217
# VALUE 2022-12-11 12:00:00
# userRights:
# dblog_THB:
# TIME 1673548855.42217
# VALUE USAGE,INSERT,DELETE,SELECT,UPDATE
# OLDREADINGS:
# READINGS:
# 2023-01-12 20:07:40 background_processing_time 2.0390
# 2023-01-12 20:07:40 device_renamed old: TUYA_TEMP7 to new: TUYA_Temp7
# 2023-01-12 20:07:40 number_lines_updated 69
# 2023-01-12 20:07:40 sql_processing_time 2.0339
# 2023-01-12 20:07:40 state done
#
setstate Rep_MAX done » ProcTime: 2.0339 sec
setstate Rep_MAX 2023-01-12 20:07:40 background_processing_time 2.0390
setstate Rep_MAX 2023-01-12 20:07:40 device_renamed old: TUYA_TEMP7 to new: TUYA_Temp7
setstate Rep_MAX 2023-01-12 20:07:40 number_lines_updated 69
setstate Rep_MAX 2023-01-12 20:07:40 sql_processing_time 2.0339
setstate Rep_MAX 2023-01-12 20:07:40 state done
[/code]
es ist aber so, dass die neuen Device-Namen im GPLOT-Editor nich angeboten werden.
Ebenso finden sich im entsprechenden drop-down-Feld immer noch in der Datenbank gelöschte Devices
wie kommt das ?
Zitat von: thburkhart am 12 Januar 2023, 20:32:40
was passiert dann in der DbLog?
Nix.
Zitat von: thburkhart am 12 Januar 2023, 20:32:40
werden dort die renames automatisch nachgeführt?
Nein.
Zitat von: thburkhart am 12 Januar 2023, 20:32:40
oder muss man dazu noch was anstoßen?
Ja. Commandref zu DbRep lesen, dort ist das beschrieben.
Wirst Du es eigentlich irgendwann noch lernen, Deine Fragen in den richtigen Unterforen zu stellen, anstatt die alle hier auf die Müllkippe abzuladen?
danke dir ...
Zitat von: betateilchen am 12 Januar 2023, 20:36:50
Wirst Du es eigentlich irgendwann noch lernen, Deine Fragen in den richtigen Unterforen zu stellen, anstatt die alle hier auf die Müllkippe abzuladen?
ich bin doch im Forum Anfängerfragen?!
was wäre denn das richtige? gibt es für DBLog ein Unterforum?
in der Command-Ref habe ja diesen Agenten gefunden, der aber bei GPLOTS nicht wirksam wird. Oder dauert dies ne Weile.
Warum werden im GPLOT-Editor unabhängig von rename nicht aktuelle Datenbankdaten.
der Anfänger meldet sich nochmals:
im Log finde ich zum DBRepAgent:
2023.01.16 11:14:19 3: DbRep DBrenameAgent1 - Connectiontest to database mysql:database=fhem;host=localhost;port=3306 with user fhemuser
2023.01.16 11:14:19 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at (eval 676921) line 1.
2023.01.16 11:14:19 3: eval: ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"
2023.01.16 11:14:19 4: DbRep DBrenameAgent1 - Database connect - user: fhemuser, UTF-8 option set: no
2023.01.16 11:14:22 4: DbRep DBrenameAgent1 - Oldest timestamp determined: 2022-12-11 12:00:00
2023.01.16 11:14:22 4: DbRep DBrenameAgent1 - Encoding of database determined: utf8
2023.01.16 11:14:22 3: DbRep DBrenameAgent1 - WARNING - Index Report_Idx doesn't exist. Please create the index by "set DBrenameAgent1 index recreate_Report_Idx" command !
2023.01.16 11:14:22 4: DbRep DBrenameAgent1 - Grants determined: DELETE,USAGE,UPDATE,SELECT,INSERT
2023.01.16 11:14:22 3: DbRep DBrenameAgent1 - Initial data information retrieved - total time used: 3.0814 seconds
2023.01.16 11:14:23 3: DbRep DBrenameAgent1 - Connectiontest to db mysql:database=fhem;host=localhost;port=3306 successful
was bedeutet die Fehlermeldung von Perl effective?
hier die zug. DEF:
[code]define DBrenameAgent1 DbRep dblog_THB
attr DBrenameAgent1 alias renameAgent1
attr DBrenameAgent1 devStateIcon connected:10px-kreis-gelb .*disconnect:10px-kreis-rot .*done:10px-kreis-gruen
attr DBrenameAgent1 icon security
attr DBrenameAgent1 role Agent
attr DBrenameAgent1 room DBLog
attr DBrenameAgent1 showproctime 1
attr DBrenameAgent1 stateFormat { ReadingsVal("$name","state", undef) eq "running" ? "renaming" : ReadingsVal("$name","state", undef). " » ProcTime: ".ReadingsVal("$name","sql_processing_time", undef)." sec"}
attr DBrenameAgent1 timeout 86400
attr DBrenameAgent1 verbose 4
# DATABASE fhem
# DEF dblog_THB
# FUUID 5db3f6eb-f33f-9b0e-f035-13418cfa2cbf577d
# FVERSION 93_DbRep.pm:v8.51.2-s27047/2023-01-13
# LASTCMD
# MODEL Agent
# NAME DBrenameAgent1
# NOTIFYDEV global,DBrenameAgent1
# NR 78
# NTFY_ORDER 50-DBrenameAgent1
# ROLE Agent
# STATE connected » ProcTime: 3.0727 sec
# TYPE DbRep
# UTF8 1
# eventCount 2
# HELPER:
# DBLOGDEVICE dblog_THB
# GRANTS DELETE,USAGE,UPDATE,SELECT,INSERT
# IDRETRIES 3
# MINTS 2022-12-11 12:00:00
# PACKAGE main
# VERSION 8.51.2
# DBREPCOL:
# COLSET 1
# DEVICE 64
# EVENT 512
# READING 64
# TYPE 64
# UNIT 32
# VALUE 128
# Helper:
# DBLOG:
# background_processing_time:
# dblog_THB:
# TIME 1673864062.92498
# VALUE 3.0814
# connectionEncoding:
# dblog_THB:
# TIME 1673864062.92498
# VALUE utf8mb4
# dbEncoding:
# dblog_THB:
# TIME 1673864062.92498
# VALUE utf8
# indexState:
# dblog_THB:
# TIME 1673864062.92498
# VALUE Index Report_Idx doesn't exist. Please create the index by "set DBrenameAgent1 index recreate_Report_Idx" command !
# sql_processing_time:
# dblog_THB:
# TIME 1673864062.92498
# VALUE 3.0727
# state:
# dblog_THB:
# TIME 1673864062.92498
# VALUE connected
# timestamp_oldest_dataset:
# dblog_THB:
# TIME 1673864062.92498
# VALUE 2022-12-11 12:00:00
# userRights:
# dblog_THB:
# TIME 1673864062.92498
# VALUE DELETE,USAGE,UPDATE,SELECT,INSERT
# READINGS:
# 2023-01-16 11:14:22 background_processing_time 3.0814
# 2023-01-16 11:14:22 connectionEncoding utf8mb4
# 2023-01-16 11:14:22 dbEncoding utf8
# 2023-01-16 08:20:55 errortext Can't use admin credentials for database access, see logfile !
# 2023-01-16 11:14:22 indexState Index Report_Idx doesn't exist. Please create the index by "set DBrenameAgent1 index recreate_Report_Idx" command !
# 2023-01-16 11:14:22 sql_processing_time 3.0727
# 2023-01-16 11:14:22 state connected
# 2023-01-16 11:14:22 timestamp_oldest_dataset 2022-12-11 12:00:00
# 2023-01-16 11:14:22 userRights DELETE,USAGE,UPDATE,SELECT,INSERT
#
setstate DBrenameAgent1 connected » ProcTime: 3.0727 sec
setstate DBrenameAgent1 2023-01-16 11:14:22 background_processing_time 3.0814
setstate DBrenameAgent1 2023-01-16 11:14:22 connectionEncoding utf8mb4
setstate DBrenameAgent1 2023-01-16 11:14:22 dbEncoding utf8
setstate DBrenameAgent1 2023-01-16 08:20:55 errortext Can't use admin credentials for database access, see logfile !
setstate DBrenameAgent1 2023-01-16 11:14:22 indexState Index Report_Idx doesn't exist. Please create the index by "set DBrenameAgent1 index recreate_Report_Idx" command !
setstate DBrenameAgent1 2023-01-16 11:14:22 sql_processing_time 3.0727
setstate DBrenameAgent1 2023-01-16 11:14:22 state connected
setstate DBrenameAgent1 2023-01-16 11:14:22 timestamp_oldest_dataset 2022-12-11 12:00:00
setstate DBrenameAgent1 2023-01-16 11:14:22 userRights DELETE,USAGE,UPDATE,SELECT,INSERT
[/code]
wobei ich # 2023-01-16 08:20:55 errortext Can't use admin credentials for database access, see logfile !
selbst erkenne ;-)
wo und wie gebe ich diese admin credentials?
den Befehl set DBrenameAgent1 index recreate_Report_Id
hatte ich über die Behlszeile abgesetzt. (wohl ohne Erfolg) ?
herzlichen Dank für Hilfe
Nachtrag:
Steht das 2023.01.16 12:32:17 1: PERL WARNING: Argument "dblog_THB" isn't numeric in subtraction (-) at ./FHEM/92_FileLog.pm line 933, <GEN21964> line 200.
2023.01.16 12:32:20 1: PERL WARNING: Argument "= 2" isn't numeric in numeric ne (!=) at ./FHEM/98_SVG.pm line 2275.
im Zusammenhang
und/oder wie löse ist das?
Hallo Thomas,
versuche doch mal bitte die Dinge die dir unterkommen nicht allesamt in einen Thread zu werfen, sondern stelle in den jeweiligen Unterforen deine Frage.
Wenn du das Forum nicht herausbekommst (normalerweise mit help <Modul>) oder für dich nicht zuordnen kannst, dann trenne doch zumindest die Themen die dich bewegen sinnvoll.
Sonst ist es wirklich schwer und frustrierend Hilfe zu leisten weil man von Thema zu Thema springt und der Thread aus dem Ruder läuft.
Zum Beispiel:
Zitat
wobei ich
Code: [Auswählen]
# 2023-01-16 08:20:55 errortext Can't use admin credentials for database access, see logfile !
selbst erkenne ;-)
wo und wie gebe ich diese admin credentials?
Das ist eine Frage zu DbRep und wäre bei "Sonstiges" richtig (-> help DbRep -> Module: 93_DbRep.pm Maintainer: DS_Starter Forum: Sonstiges ).
Du gibst die admin credentials im DbRep ein mit
"set ... adminCredentials ....".
Und diese Frage
Zitat
Nachtrag:
Steht das
Code: [Auswählen]
2023.01.16 12:32:17 1: PERL WARNING: Argument "dblog_THB" isn't numeric in subtraction (-) at ./FHEM/92_FileLog.pm line 933, <GEN21964> line 200.
2023.01.16 12:32:20 1: PERL WARNING: Argument "= 2" isn't numeric in numeric ne (!=) at ./FHEM/98_SVG.pm line 2275.
im Zusammenhang
und/oder wie löse ist das?
wäre im SVG-Forum bzw. Automatisierung-Forum (help FileLog ->Module: 92_FileLog.pm Maintainer: rudolfkoenig Forum: Automatisierung ) richtig platziert.
Allerdings wird die Suchfunktion zumindest für die SVG-Warnung viele Treffer liefern.
Die Frage hatte ich übersehen (die passt auch zum eigentlichen Thema ;) )
Zitat
es ist aber so, dass die neuen Device-Namen im GPLOT-Editor nich angeboten werden.
Ebenso finden sich im entsprechenden drop-down-Feld immer noch in der Datenbank gelöschte Devices
wie kommt das ?
Der Agent führt die Umbenennungen zur Zeit nur in der history-Tabelle durch, da sie die Datenquelle für die SVG-Anzeige ist.
Die Drop-Down Liste wird aus der current Tabelle generiert. Es ist auch ihre einzige Aufgabe.
Wenn du neue Devices in FHEM erstellst, erscheinen sie bzw. deren Readings erst dann in der Drop-Down Liste wenn der erste Wert des Device:Readings geloggt wurde.
Vorher kennt die Datenbank diese Devices/Readings nicht.
Du kannst den Inhalt der current-Tabelle löschen und komplett neu befüllen lassen mit den DbRep-Kommandos tableCurrentPurge, tableCurrentFillup.
Oder du löscht den Inhalt nur und hast etwas Geduld bis DbLog die Tabelle neu aufgebaut hat.
hallo,
ich habe nun gestern meine MAX-Devices mit z.B. mitrename THOMAS_WT MAX_THOMAS_WT
umbenannt.
Der RepAgent werkelte erfolgreich und hat einige der readings in der DM umbenannt; aber eben nicht alle:
[code]define SVG_MAX_THOMAS_WT SVG dblog_THB:SVG_MAX_THOMAS_WT:HISTORY
attr SVG_MAX_THOMAS_WT alias SVG_MAX_THOMAS_WT
attr SVG_MAX_THOMAS_WT fixedrange 10days
attr SVG_MAX_THOMAS_WT label "Min $data{min1}, Max $data{max1}, L-Ist $data{currval1}, L-Soll $data{currval2}"
attr SVG_MAX_THOMAS_WT plotfunction THOMAS_WT
attr SVG_MAX_THOMAS_WT room Thomas,MAXW
attr SVG_MAX_THOMAS_WT title "THOMAS"
# DEF dblog_THB:SVG_MAX_THOMAS_WT:HISTORY
# FUUID 5de13dfe-f33f-9b0e-2340-09e8c6606fdf5386
# GPLOTFILE SVG_MAX_THOMAS_WT
# LOGDEVICE dblog_THB
# LOGFILE HISTORY
# NAME SVG_MAX_THOMAS_WT
# NR 1104
# STATE initialized
# TYPE SVG
#
setstate SVG_MAX_THOMAS_WT initialized
[/code]
im Ploteditor steht aber noch der alte Name
THOMAS_WT:temperature
statt MAX_THOMAS_WT:temperature
. Letzteres kann ich im Dropdownfeld auch nicht erblättern.
Nach einem Tag müssten die doch in der history stehen ?
hoffe, dass dies hierher gehört:
2023.01.20 19:03:48 1: PERL WARNING: Argument "= 2" isn't numeric in numeric ne (!=) at ./FHEM/98_SVG.pm line 2275.
2023.01.20 19:03:48 1: PERL WARNING: Argument "= 2" isn't numeric in numeric ne (!=) at ./FHEM/98_SVG.pm line 2275.
das kommt wohl aus dem SVG Modul?
ist das wohl unkritisch?
wenn nein, was kann ich dagegen tun?
Grüße
Thomas
Zitat
im Ploteditor steht aber noch der alte Name
siehe meine Erläuterung in #6.
Zitat
MAX_THOMAS_WT:temperature
. Letzteres kann ich im Dropdownfeld auch nicht erblättern.
Nach einem Tag müssten die doch in der history stehen ?
Für die Drop-Down-Liste ist die current-Tabelle relevant (siehe wieder #6).
Was dort drin steht, kann man sich mit einem DbRep "set ... fetchrows current" anzeigen lassen.
Zitat
hoffe, dass dies hierher gehört:
Nein ... (!=) at ./FHEM/98_
SVG.pm line 2275.
Zitatist das wohl unkritisch?
Ja, wie der Hinweis
WARNING schon sagt.
Zitat
wenn nein, was kann ich dagegen tun?
Sich die Meldung anschauen und erkennen dass ein String mit einem numerischen Wert verglichen werden soll was zu der Warnung führt.
Dann bisschen weiter oben meine Antwort in #5 zu der gleichen Frage anschauen und die Suchfunktion des Forums verwenden oder eine Suchmaschine deiner Wahl das I-Net befragen oder aber im SVG-Forum fragen.