fronthem + Plots + status.log für smartVISU 2.9

Begonnen von raman, 03 April 2018, 20:36:21

Vorheriges Thema - Nächstes Thema

Huntercover

könnte ein Problem mit der Definition sein, ich hatte sowas ähnliches beim Dimmen.

Konkret:
- beschreibe mal wie Deine KNX Rückmeldungen aussehen. Ggf. meldet was zurück was widerrum Einfluss auf neue Telegramme seitens SmartVisu hat.
- hast Du Scripte laufen, die per FHEM KNX Telegramme versenden?
- Es gibt mit SmartVisu2.9 ne neue Funktion (delayed versenden) bzw. in der Konfiguration unter "Datenverbindung/Treiber" "Echtzeitdaten". Lese Dich da mal ein. btw. Hast Du die Option ein? Ich habe es aus gelassen.

Nutze den Busmonitor als Debugger. Wer schickt wann welche Signale, etc.

Solltest Du zuvor SmartVisu2.8 laufen haben, kannst Du das auch wieder herstellen, 2.8 und 2.9 funktionieren auch parallel in separaten Ordnern.

MarvinLu

Hallo zusammen,
hat noch jemand das Problem, dass einem die Updates für folgende Pakete vorgeschlagen werden und danach die Plots in SV nicht mehr funktionieren?

fronthem
List of new / modified files since last update:
UPD FHEM/01_fronthem.pm
UPD FHEM/31_fronthemDevice.pm
UPD www/pgm2/fronthemEditor.js


Liebe Grüße, Marvin

maestro

#92
Hallo zusammen,

Ich habe die Einstellungen wie in Post1 vorgenommen und die Dateien aus der zip hochgeladen.

device: HM_Zisternenpegel (Pegelstand wird mit state ausgelesen)
Logfilename: HM_Zisternenpegel-2020 (aus currentlogfile./log/HM_Zisternenpegel-2020.log)
Datensatz aus Logfile: 2020-02-04_11:22:29 HM_Zisternenpegel 86

Einstellungen ITEM:
mode: plot
device HM_Zisternenpegel
reading: state
converter: Plotfile FileLog_HM_Zisternenpegel-2020

Code im SV:
{{ plot.period( "id.PlotTest.1",["PlotTest.1"], avg, "7d", "now",0,100, 100,["Füllstand in %"], ["default"],["line"]) }}

Die Daten werden in dem Plot bei SV angezeigt.
Aber sobald ich die Seite in Smartvisu neulade, verschwinden meine Daten aus der Plot.

Weiß jemand von euch woran das liegen könnte?

Danke schonmal im Voraus für eure Unterstützung!

Gruß,
Sebastian

Wiesel

Hallo Zusammen,

wenn ich in Smartvisu die Plots aufrufe wird jedesmal mein FHEM log "vollespamt".
Hier mal ein Auszug. Verbos 0 von SynologyDbLog hat leider keine Abhilfe geschaffen.

Jemand ne Idee worans liegen könnte ?

2020.07.06 22:59:31 3: get SynologyDbLog - webchart 2020-07-06_10:59:31 2020-07-06_22:59:31 WT_Wohnzimmer_Weather timerange TIMESTAMP humidity : {"data":[{"TIMESTAMP":"2020-07-06 11:00:34","VALUE":"48"},{"TIMESTAMP":"2020-07-06 11:03:13","VALUE":"48"},{"TIMESTAMP":"2020-07-06 11:05:37","VALUE":"48"},{"TIMESTAMP":"2020-07-06 11:07:47","VALUE":"48"},{"TIMESTAMP":"2020-07-06 11:10:47","VALUE":"48"},{"TIMESTAMP":"2020-07-06 11:13:32","VALUE":"48"},{"TIMESTAMP":"2020-07-06 11:16:03","VALUE":"48"},{"TIMESTAMP":"2020-07-06 11:18:19","VALUE":"48"},{"TIMESTAMP":"2020-07-06 11:20:21","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:23:12","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:25:49","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:28:12","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:30:20","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:33:18","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:36:01","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:38:30","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:40:45","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:42:45","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:45:34","VALUE":"49"},{"TIMESTAMP":"2020-07-06 11:48:10","VALUE":"47"},{"TIMESTAMP":"2020-07-06 11:50:30","VALUE":"46"},{"TIMESTAMP":"2020-07-06 11:52:37","VALUE":"45"},{"TIMESTAMP":"2020-07-06 11:55:33","VALUE":"46"},{"TIMESTAMP":"2020-07-06 11:58:14","VALUE":"45"},{"TIMESTAMP":"2020-07-06 12:00:41","VALUE":"44"},{"TIMESTAMP":"2020-07-06 12:02:54","VALUE":"44"},{"TIMESTAMP":"2020-07-06 12:05:56","VALUE":"43"},{"TIMESTAMP":"2020-07-06 12:08:44","VALUE":"43"},{"TIMESTAMP":"2020-07-06 12:11:17","VALUE":"43"},{"TIMESTAMP":"2020-07-06 12:13:36","VALUE":"43"},{"TIMESTAMP":"2020-07-06 12:15:41","VALUE":"42"},{"TIMESTAMP":"2020-07-06 12:18:35","VALUE":"42"},{"TIMESTAMP":"2020-07-06 12:21:15","VALUE":"42"},{"TIMESTAMP":"2020-07-06 12:23:40","VALUE":"42"},{"TIMESTAMP":"2020-07-06 12:25:51","VALUE":"41"},{"TIMESTAMP":"2020-07-06 12:28:51","VALUE":"41

Grüße
Raspi 4 mit FHEM und CUL / Conbee2

alkazaa

#94
Hallo!

Vorab erstmal mein Dank an raman für diese fronthem-smartvisu Adaption. Ich hab es relativ schnell hinbekommen, ein plot.period widget mit Daten aus einer logdb anzeigen zu lassen.
[Raspberry, aktuelles FHEM, smartvisu 2.92, mysql database auf einer synology]

Aber ich mache die gleiche Beobachtung wie Wiesel:

Zitat von: Wiesel am 06 Juli 2020, 23:15:13
wenn ich in Smartvisu die Plots aufrufe wird jedesmal mein FHEM log "vollespamt".

Daher auch meine Frage:
Jemand ne Idee worans liegen könnte ?
Und wie kann man es abstellen?

Beste Güße
-Franz

Nachtrag: Wenn man für das global device den Wert für verbose < 3 setzt, kommen die Datenbankabfragen nicht mehr ins zentrale Log-File. Wäre schön, wenn man das selektiver abstellen könnte.

Joker

Zitat von: Wiesel am 06 Juli 2020, 23:15:13
wenn ich in Smartvisu die Plots aufrufe wird jedesmal mein FHEM log "vollespamt".
Hier mal ein Auszug. Verbos 0 von SynologyDbLog hat leider keine Abhilfe geschaffen.

Zitat von: alkazaa am 28 Juli 2020, 13:55:49
Aber ich mache die gleiche Beobachtung wie Wiesel:

Daher auch meine Frage:
Jemand ne Idee worans liegen könnte ?
Und wie kann man es abstellen?

Konnte dieses Problem schon jemand lösen? Ich habe genau dasselbe.
Der String der ausgegeben wird, ist sicherlich der hier aus der Datei 99_fronthemUtils.pm in der Funktion Plot():
my $string = main::fhem('get ' . $args[0] . ' - webchart ' . $from . ' ' . $to . ' ' . $device . ' ' . $duration . ' TIMESTAMP ' . $reading);

Ich finde aber nichts wo das geloggt wird. Setzen von verbose 2 für fronthem bzw. fronthemDevice hat nichts gebracht...

GammaTwin

Grüße,

ich hatte Probleme mit der Darstellungen von boolean-Werten, da fhem anstatt "1" und "0" z.B. "On/Off", "true/false", "enable/disable" ablegt.

Ich habe mir folgendermaßen beholfen: Ich der Datei 99_fronthemUtils.pm in der Funktion Plot() im Bereich "raw":
if ($mode eq "raw") { # [TIMESTAMP,VALUE]
  push(@{$data[0]->{plotdata}[$i]}, main::fronthem_TimeStamp($row->{TIMESTAMP}));
  push(@{$data[0]->{plotdata}[$i]}, sprintf("%#.4f", $row->{VALUE}) * 1);
}


Die Zeile:
push(@{$data[0]->{plotdata}[$i]}, sprintf("%#.4f", $row->{VALUE}) * 1);
wie folgt abgeändert
push(@{$data[0]->{plotdata}[$i]}, sprintf("%#.4f", $row->{VALUE} =~ m/^(true|on|enable|down|closed)$/ ? '1' : $row->{VALUE})  * 1);

Die Idee ist, jeden Wert der eine "1" werden soll, in eine "1" zu verwandeln: true|on|enable|down|closed
Alle restlichen Ausdrücke bleiben unverändert. Werte bleiben Werte, alles andere wird ja automatisch "0".

In der smartVISU sieht es dann so aus:
plot.period('pAussenG2', ['Wind.plot', 'Regen.plot'], ['avg', 'raw'], '72h', 'now', [0, 'Off'], [5, 'On'], '', ['Wind [m/s]', 'Regen [-]'], ['#aa0', '#00a'], ['area', 'stair'], '', '', [1,2], [0,1], ['#aa0', '#00a'], ['linear', 'boolean']) }}

War nur eine Idee, wenn es bereits anders ging, würde ich das gern wissen  ;)

Jessyfoosy

Moin,

gibt es schon was neues zu dem Problem mit der vollen Logfile ?

get logdb - webchart 2020-11-25_08:41:41 2020-12-02_08:41:41 Temperatur timerange TIMESTAMP state : {"data":[{"TIMESTAMP":"2020-11-25 08:52:39","VALUE":"1.40"},{"TIMESTAMP":"2020-11-25 09:12:39","VALUE":"1.30"}

Grüße
Jessy

Joker

Leider nicht dass ich wüßte.
Ich hatte mir kurzzeitig auch beholfen, das global verbose auf 2 zu setzen, aber das kann man auf keinen Fall so lassen, dann bekommt man nämlich gar nichts mehr im Logfile mit.
Ich habe auch schon einmal versucht, rauszufinden woran das wirklich liegt, aber ich kapiers nicht. Wie ich oben geschrieben haben, habe ich zwar die Stelle gefunden wo der String der im Logfile landet herkommt, aber ich verstehe nicht wie der dann ins Logfile kommt.

Benutzt denn keiner der smartvisu-Nutzer die Plots? Das Problem muss doch jeder haben der die Plots nutzt- und dann ist es zumindest bei mir so, dass spätestens ab der Monatsmitte das Logfile so groß ist, dass es etliche Sekunden Ladezeit hat. Von der nicht mehr vorhanden Übersichtlichkeit mal ganz zu schweigen...

Chris46

Probiert mal euer DBlog device auf verbose 2 zu stellen. Ich glaube das hat bei mir geholfen.

Jessyfoosy

Zitat von: Chris46 am 03 Dezember 2020, 08:57:38
Probiert mal euer DBlog device auf verbose 2 zu stellen. Ich glaube das hat bei mir geholfen.

bringt leider nichts...

Zitat von: Joker am 03 Dezember 2020, 08:50:00.... spätestens ab der Monatsmitte das Logfile so groß ist, dass es etliche Sekunden Ladezeit hat. Von der nicht mehr vorhanden Übersichtlichkeit mal ganz zu schweigen...

Abhilfe wäre eine tägliches logfile. Behebt aber natürlich das Problem im grunde nicht :(

Joker

Zitat von: Jessyfoosy am 03 Dezember 2020, 09:29:51
bringt leider nichts...
Dito... DbLog hatte ich testweise auch schon auf verbose 2 gestellt, bringt auch bei mir nichts.

ZitatAbhilfe wäre eine tägliches logfile. Behebt aber natürlich das Problem im grunde nicht :(
Nee, eine Lösung wäre das wirklich nicht...

alkazaa

#102
Ich habe auch nicht gefunden, wo wirklich geloggt wird. (Meine Vermutung: "tief innen" im  fhem-code wird bei jedem Aufruf der perl-Funktion fhem() deren output geloggt, sofern das globale verbose>=3 ist).

Zitat von: Joker am 25 Oktober 2020, 20:07:24
Konnte dieses Problem schon jemand lösen? Ich habe genau dasselbe.
Der String der ausgegeben wird, ist sicherlich der hier aus der Datei 99_fronthemUtils.pm in der Funktion Plot():
my $string = main::fhem('get ' . $args[0] . ' - webchart ' . $from . ' ' . $to . ' ' . $device . ' ' . $duration . ' TIMESTAMP ' . $reading);

Ich finde aber nichts wo das geloggt wird. Setzen von verbose 2 für fronthem bzw. fronthemDevice hat nichts gebracht...

Diese Überlegung hat mich dann aber zu dem folgenden workaround geführt:
Ich habe in 99_fronthemUtils.pm die kritische Zeile my $string = main::fhem('get ' . $args[0] . ' - webchart ' . $from . ' ' . $to . ' ' . $device . ' ' . $duration . ' TIMESTAMP ' . $reading); ersetzt durch my $oldverbose = main::AttrVal("global","verbose","3");
main::fhem("attr global verbose 2");
my $string = main::fhem('get ' . $args[0] . ' - webchart ' . $from . ' ' . $to . ' ' . $device . ' ' . $duration . ' TIMESTAMP ' . $reading);
main::fhem("attr global verbose " . $oldverbose);


Scheint bisher ohne Nebenwirkungen zu funktionieren. Aber ich teste weiter...
Hat leider doch Nebenwirkungen: die zweimalige Änderung des verbose-attributs ist eine Strukturänderung, die in der FHEM-Oberfläche das rote Fragezeichen neben dem 'Save config' zur Folge hat.
Das ist aber für mich eher akzeptabel als eine volllaufende log-Datei.

-Franz

alkazaa

#103
Hallo!

Das Problem mit der vollgeschriebenen Logdatei ist gelöst: Ich habe die Frage in diesem Forumsbeitrag eingestellt und von DS_Starter kam die Lösung:

In 99_fronthemUtils.pm ist die Zeile my $string = main::fhem('get ' . $args[0] . ' - webchart ' . $from . ' ' . $to . ' ' . $device . ' ' . $duration . ' TIMESTAMP ' . $reading); zu ersetzen durch my $string = main::CommandGet(undef, $args[0] . ' - webchart ' . $from . ' ' . $to . ' ' . $device . ' ' . $duration . ' TIMESTAMP ' . $reading);dann tut es ohne 'Nebenwirkungen'.


-Franz

Joker

Funktioniert wie ne Eins  8)

Besten Dank, jetzt kann ich mein Logfile auch wieder normal benutzen  :)