FHEM Forum

FHEM => Frontends => fronthem / smartVISU => Thema gestartet von: raman am 03 April 2018, 20:36:21

Titel: fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: raman am 03 April 2018, 20:36:21
Hallo miteinander,

nachdem sich auf der smartVISU-Seite einiges getan hat, der io_fhem-Treiber angepasst wurde
und die Diskussion mal wieder aufkam fronthem um neue Features zu erweitern, habe ich mich
mal durch den Hash- und Arraydschungel gekämpft. Eigentlich habe ich ein angepasstes fronthem,
das mir Plotdaten an smartVISU liefert schon seit längerem im Einsatz. Ich habe das Ganze nochmal
überarbeitet und stelle es jetzt mal zum Testen zur Verfügung. Man kann sicher noch mehr Zeit
aufwenden und den Code performanter gestalten.
Den smartVISU-Treiber musste ich leicht motifizieren, um die neuen Daten für Log und Plot verarbeiten
zu können. Die alten Funktionen sollten durch die Änderungen nicht beeinträchtigt worden sein.

Nicht unbedingt gleich für den Produktiveinsatz verwenden!

Zum Testen hier also eine überarbeitete Version von fronthem mit Funktionalität für die Abfrage
von Plot-Daten aus der FHEM-Datenbank über DbLog oder mit eingeschränktem Umfang aus FileLog.


Für die Anpassung wurden folgende Dateien überarbeitet und sind in der angehängten zip-Datei
zu finden:
und

Es gibt zwei neue Modi log und plot im Item Editor (formerly known as GAD Editor).
Weiterhin sind in der 99_fronthemUtils.pm drei neu Converter, Log für status.log,
Plot für die Abfrage über DbLog und Plotfile für die Abfrage über FileLog enthalten
und werden im Editor zur Verfügung gestellt.

Für Plot muss im Editor unter converter als Argument der Name des DbLog Device mitgegeben werden!

Wenn ein Item "PlotTest.0" in smartVISU existiert und "desired-temp" aus "myDbLog" ausgelesen werden soll:

Einstellungen Item-Editor:
Item: PlotTest.0
mode: plot
device: HM_3C92F7_Climate
reading: desired-temp
converter: Plot myDbLog

Für Plotfile muss im Editor unter converter als Argument der Name der FileLog-Datei mitgegeben werden,
in die für das entsprechende Device die Daten geschrieben werden!

Wenn der Eintrag im FileLog so aussieht (state wird geloggt) und ein Item "PlotTest.0" in smartVISU existiert:
2018-04-01_00:03:27 heizung_verbraucherkreis_temp_vl 25.10

Einstellungen Item-Editor:
Item: PlotTest.0
mode: plot
device: heizung_verbraucherkreis_temp_vl
reading: state
converter: Plotfile FileLog_ heizung_verbraucherkreis_temp_vl

Wenn der Eintrag im FileLog so aussieht und ein Item "PlotTest.0" in smartVISU existiert:
2018-04-03_11:16:35 HM_3C92F7_Climate desired-temp: 18.0

Einstellungen Item-Editor:
Item: PlotTest.0
mode: plot
device: HM_3C92F7_Climate
reading: desired-temp
converter: Plotfile FileLog_HM_3C92F7_Climate

Wenn der Eintrag im FileLog so aussieht und ein Item "PlotTest.1" in smartVISU existiert:
2018-04-03_21:18:11 Temperature_Bathroom values: T: 19.4 H: 52

Einstellungen Item-Editor, wenn man die Temperatur als Plot will:
Item: PlotTest.1
mode: plot
device: Temperature_Bathroom
reading: values
converter: Plotfile FileLog_Temperature_Bathroom 5 T

(Der Wert für die Temperatur befindet sich von links ausgehend in der 5 Spalte.)

Einstellungen Item-Editor, wenn man die Luftfeuchte als Plot will:
Im Item-Editor:
Item: PlotTest.1
mode: plot
device: Temperature_Bathroom
reading: values
converter: Plotfile FileLog_Temperature_Bathroom 7 H

(Der Wert für die Luftfeuchte befindet sich von links ausgehend in der 7 Spalte.)

Unter Verwendung von DbLog und Plot sollte man alle Modi der smartVISU-Plots ('avg', 'sum', 'min', 'max', 'minmax',
'minmaxavg' oder 'raw') nutzen können. Aber nur für 'raw' werden z.Zt. point-Updates "geliefert"!
FileLog in Verbindung mit Plotfile liefert nur Daten für Serien, also keine Durchschnitts-, Min-, Maxwerte, ...


Um status.log von smartVISU mit FHEM nutzen zu können, sind einige Vorarbeiten nötig!

Die Readings werden pro "Readings-Gruppe" in einem Dummy-Device gesammelt. Dieses wird
automatisch angelegt. Das so erzeugte Dummy-Device muss dann im Editor mit dem
status.log-Item verknüpft werden. (converter ist Log)

1. Notify erstellen:
define Log notify .* { Log_SetList($NAME,$EVENT) }

2. Folgende Attribute in attr global userattr hinzufügen:

    svEvents svReadins svRegex
   
3. Einstellungen vornehmen (Attribute bei zu überwachenden Devices setzen):

    svReadins: Für das Device das Reading setzen, das überwacht werden soll (z.B. state überwachen):

attr <device> svReadins state

Wenn state und battery überwacht und battery in Batterie geändert werden soll:

attr <device> svReadins state battery:Batterie


Zur Übersicht der überwachten Devices kann eine readingsGroup angelegt werden:
define rg_svLog readingsGroup <Name>,<svReadings> .*:?svLog,?
attr rg_svLog nameStyle style="color:red;font-weight:bold"


    svEvents:  Wird automatisch für das Dummy-Device (Log-Liste) angelegt, kann aber an die jeweiligen Bedürdnisse angepasst werden.
   
    svRegex:   Hier kann für das Dummy-Device (Log-Liste) eine Liste mit Events, die ersetzt werden sollen, angegeben werden.
    z.B.
attr <device> svRegex low:schwach opened:geöffnet closed:geschlossen connected:verbunden disconnected:getrennt


Gruß
R.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: HCS am 03 April 2018, 20:50:37
Das ist ja mal cool.

Basierend auf welcher Treiber-Version vom mir hast Du die Anpassungen gemacht?
Ich könnte das dann übernehmen.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: HCS am 03 April 2018, 22:37:59
Habe den Treiber übernommen.
Läuft noch wie gehabt.
Soll ich es als pull request nach SV schicken?

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: raman am 03 April 2018, 22:44:09
Das ist dein Treiber aus der aktuellen smartvisu-develop mit meinen Veränderungen und den Optimierungen, die smai hier vorgeschlagen hat:
https://forum.fhem.de/index.php/topic,85423.msg789034.html#msg789034 (https://forum.fhem.de/index.php/topic,85423.msg789034.html#msg789034)

Also teste mal lieber, ob für die Addon-Funktionen noch alles geht!

Ich habe  für handleReceivedData: case plot und case log ergänzt.
Alle Plot-Daten, die von fronthem kommen, werden mit dem "cmd": "plot" geliefert, um sie von den Serien aus dem Addon-Treiber zu unterscheiden.
Für die Logs hat sich erst nach einem "Umbau" fronthem ergeben, dass sie eigentlich wie ein ankommendes item verarbeitet werden können.
Deswegen die aufgeteilte Behandlung.

Beim Spliten der items und für monitor habe ich die Infos für die Plots, die an fronthem übergeben werden, entsprechend angepasst.

Gestet habe ich mit der aktuellsten smartvisu-develop von heute.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: herrmannj am 03 April 2018, 22:44:38
darf ich auch übernehmen, bzw wenn Du magst kannst Du das auch pushen. Weil Du geschrieben hast "nicht unbedingt produktiv", wir können ja einen dev zweig machen.

danke vg
joerg
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: raman am 03 April 2018, 22:47:13
Kannst du gerne machen!
Oder wir warten evtl. noch mal ein bisschen ab, bis mal ein paar Leute getestet haben.
Die Entscheidung überlasse ich dir!
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: raman am 03 April 2018, 22:48:22
Ein dev-Zweig für fronthem wäre denke ich ganz sinnvoll!

Ich weiss ja nicht, ob es auf allen Systemen problemlos läuft.
Eventuell ist die Abfrage der Plots auf schwachen Systemen zu langsam.

Bei mir läuft FHEM halt auf einem NUC.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: HCS am 03 April 2018, 22:56:19
Zitat von: raman am 03 April 2018, 22:44:09
Also teste mal lieber, ob für die Addon-Funktionen noch alles geht!
Ja, geht noch alles.

Hast Du das zip in post #1 gerade nochmal erneuert?

Alles was ich hatte funktioniert noch wie gehabt.
Nur habe ich es nicht hinbekommen, einen plot aus einem filelog zu bekommen.

ich habe ein FileLog
Internals:
   DEF        ./log/Temperature_Bathroom-%Y.log Temperature_Bathroom:values.*
   NAME       FileLog_Temperature_Bathroom
   NOTIFYDEV  Temperature_Bathroom
   NR         118
   NTFY_ORDER 50-FileLog_Temperature_Bathroom
   REGEXP     Temperature_Bathroom:values.*
   STATE      active
   TYPE       FileLog
   currentlogfile ./log/Temperature_Bathroom-2018.log
   logfile    ./log/Temperature_Bathroom-%Y.log
   READINGS:
     2018-04-03 21:58:36   linesInTheFile  26214
   pos:
Attributes:
   logtype    text


Mit (halt etwas mehr) so einem Inhalt

      2018-04-03_21:18:11 Temperature_Bathroom values: T: 19.4 H: 52
      2018-04-03_21:23:11 Temperature_Bathroom values: T: 19.4 H: 52
      2018-04-03_21:28:21 Temperature_Bathroom values: T: 19.4 H: 52
      2018-04-03_21:33:21 Temperature_Bathroom values: T: 19.4 H: 52
      2018-04-03_21:38:21 Temperature_Bathroom values: T: 19.4 H: 52.3
      2018-04-03_21:43:31 Temperature_Bathroom values: T: 19.4 H: 53
      2018-04-03_21:48:31 Temperature_Bathroom values: T: 19.4 H: 53
      2018-04-03_21:53:36 Temperature_Bathroom values: T: 19.5 H: 53
      2018-04-03_21:58:36 Temperature_Bathroom values: T: 19.6 H: 53
      2018-04-03_22:03:41 Temperature_Bathroom values: T: 19.6 H: 53
      2018-04-03_22:08:41 Temperature_Bathroom values: T: 19.6 H: 54
      2018-04-03_22:13:51 Temperature_Bathroom values: T: 19.7 H: 55
      2018-04-03_22:18:51 Temperature_Bathroom values: T: 19.8 H: 54.8
      2018-04-03_22:23:51 Temperature_Bathroom values: T: 19.8 H: 55
      2018-04-03_22:28:56 Temperature_Bathroom values: T: 19.8 H: 54


Das plot widget so definiert:

  <div class="block">
    <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
      <div data-role="collapsible" data-collapsed="false" >
        <h3>plot.period</h3>
        <div class="hcs-test">
          {{ plot.period( "id.PlotTest.1",
            ["PlotTest.1"],
            raw,
            "3d",
            "0d",
            0,
            30,
            100,
            ["Bad"],
            ["#0000FF"],
            ["line"]) }}
        </div>
      </div>
    </div>
  </div>


Im Item-Editor:
Item: PlotTest.1
mode: plot
device: FileLog_Temperature_Bathroom
reading: linesInTheFile
converter: Plotfile FileLog_Temperature_Bathroom

ergebnis siehe Anhang
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: raman am 03 April 2018, 23:04:22
Du musst unter device das device angeben, von dem die Daten stammen.
Bei dir denke ich Temperature_Bathroom

Ich habe nur noch was in der 99_fronthemUtils.pm für UZSU geändert. Deswegen das Update.

Edit:
Mir fällt grad auf, dass bei mir der FileLog anders ausschaut

2018-04-03_11:16:35 HM_3C92F7_Climate desired-temp: 18.0
2018-04-03_11:16:35 HM_3C92F7_Climate humidity: 57
2018-04-03_11:16:35 HM_3C92F7_Climate measured-temp: 19.3


Wenn die Form so ist, funktioniert meine Abfragemethode nicht. Da bräuchte man ne Regex.

2018-04-03_21:18:11 Temperature_Bathroom values: T: 19.4 H: 52


Man kann aber dem Converter weitere Werte übergeben. Die Position (Standard ist 4), wo gesucht werden soll und einen String für die Regex
(Aufruf ist wie in der Commandref für FileLog)
converter: Plotfile Temperature_Bathroom <column> <regex>
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: herrmannj am 03 April 2018, 23:24:24
gute idee
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: raman am 04 April 2018, 14:49:09
Ich habe die FileLog-Funktion überarbeitet und hoffe es funktiniert jetzt!

Es reicht die 31_fronthemDevice.pm und 99_fronthemUtils.pm auszutaschen.

Wie die Einstellungen vorzunehmen sind steht im ersten Beitrag!
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: HCS am 04 April 2018, 15:39:27
Super, funktioniert.

Habe meine komplette Abhandlung, die ich gerade abschicken wollte, bezüglich des get auf das logfile, wie das konstruiert wird und wie es für den Fall konstruiert werden müsste, in die Tonne geworfen.  :)

Mit dieser Version funtioniert beides.

Der linke plot bekommt seine Daten von so einem log
2018-04-04_12:38:01 Temperature_Bathroom values: T: 20.3 H: 64
2018-04-04_12:43:16 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_12:48:36 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_12:53:56 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_12:59:16 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:04:36 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:09:56 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:15:16 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:20:41 Temperature_Bathroom values: T: 20.3 H: 62.8
2018-04-04_13:25:56 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:31:16 Temperature_Bathroom values: T: 20.3 H: 62.3
2018-04-04_13:36:36 Temperature_Bathroom values: T: 20.2 H: 62
2018-04-04_13:41:56 Temperature_Bathroom values: T: 20.2 H: 62
2018-04-04_13:47:16 Temperature_Bathroom values: T: 20.2 H: 62
2018-04-04_13:52:36 Temperature_Bathroom values: T: 20.2 H: 62


Der rechte plot bekommt seine Daten von so einem log
2018-04-04_13:34:17 LevelBarnEast temperature: 22
2018-04-04_13:34:17 LevelBarnEast voltage: 5.6
2018-04-04_13:39:48 LevelBarnEast distance: 115
2018-04-04_13:39:48 LevelBarnEast level: 25
2018-04-04_13:39:48 LevelBarnEast liters: 253
2018-04-04_13:39:48 LevelBarnEast temperature: 22
2018-04-04_13:39:48 LevelBarnEast voltage: 5.6
2018-04-04_13:45:19 LevelBarnEast distance: 114
2018-04-04_13:45:19 LevelBarnEast level: 26
2018-04-04_13:45:19 LevelBarnEast liters: 255
2018-04-04_13:45:19 LevelBarnEast temperature: 21.5
2018-04-04_13:45:19 LevelBarnEast voltage: 5.6



Das ist echt super, wie einfach man die plots damit an den Start bekommt  8)

Werde mal einige einbauen und beobachten, wie es sich verhält.

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: cruser1800 am 04 April 2018, 19:25:02
Wow!

Habe es auch gerade probiert und hat auf anhieb geklappt!

Große KLasse! Danke
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: cruser1800 am 04 April 2018, 21:09:42
Ein Frage habe ich noch!

Ich benutze dblog und plot.period.

Nach meinem empfinden werden hier nur max 1 Wert pro Stunde angezeigt, obwohl ich den Wert für 'count' auf 100 festgelegt habe. Ist das So oder habe ich eine Einstellung falsch? Einstellung des Zeitbereiches auf 1 Tag.

Ich habe mal parrallel ein Filelog mitlaufen lassen. Hier kommen alle Daten rüber. Nur bei dblog nur eine begrenzte Anzahl je nach eingestelltem Zeitbereich für die x-Achse!

Danke
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: blue am 05 April 2018, 00:59:50
Hallo raman,

ich bin neu im Forum und dabei mein FHEM mit SV Stück für Stück aufzusetzen. Dein Beitrag kam mir wie gerufen, da ich mich gerade an die Plots in SV machen wollte. Deinen Code habe ich installiert: Er läuft einwandfrei, auf Anhieb und ohne jegliche Schwierigkeiten. status.log habe ich allerdings (noch) nicht ausprobiert. Ich habe hier einen Raspberry 3 am Laufen und nutze aktuell nur FileLogs. Ich finde die Geschwindigkeit übrigens voll und ganz in Ordnung, wobei das sicherlich von der Größe der Logfiles abhängt (bei mir sind es zur Zeit ca. 6000 Zeilen).

Einziger kleiner Punkt war, dass ich ein wenig hantierten musste, bis ich die Syntax für Logfiles heraus hatte, in denen nur das state-Reading in der 3. Spalte geloggt wird. In diesem Fall muss das Feld reading freibleiben, was mich irritierte, weil ich mit "state" gerechnet hätte.

2018-04-01_00:03:27 heizung_verbraucherkreis_temp_vl 25.10

Ansonsten großes Lob und Dankeschön meinerseits! - Sollte mir noch mehr auffallen, werde ich mich melden.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: raman am 05 April 2018, 11:18:17
@cruser1800
It's not a bug, it's a feature! Kombination aus "1d" und "avg" liefert dir den Sundendurchschnitt,
Setze mal in SV mode auf "raw"!

@blue
Noch so ein Sonderfall! In FHEM wird glaube ich bei einem state-Event das state nicht wie bei anderen
Readings mit angegeben.

Wird der Plot dan mit folgender Angabe für den Converter an SV gesendet?
converter: Plotfile heizung_verbraucherkreis_temp_vl 3
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: herrmannj am 05 April 2018, 11:58:24
bei den anderen convertern setze ich da explizit "state" ein um diese confusion zu verhindern. Macht be den logs evtl auch Sinn.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: blue am 05 April 2018, 12:04:26
Zitat von: raman am 05 April 2018, 11:18:17
@blue
Noch so ein Sonderfall! In FHEM wird glaube ich bei einem state-Event das state nicht wie bei anderen
Readings mit angegeben.

Wird der Plot dan mit folgender Angabe für den Converter an SV gesendet?
converter: Plotfile heizung_verbraucherkreis_temp_vl 3

Richtig, exakt so hat es funktioniert und wichtig war eben auch, dass Readings leer bleibt, ansonsten klappt das mit der Column-Nummer nicht. Als Idee: Wie wäre es, wenn du bei dem Reading "state" fest die Spalte 3 nimmst anstatt default die 4? Ja, es wäre dann ein Sonderfall, aber der zieht sich immerhin durch ganz FHEM durch.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: cruser1800 am 05 April 2018, 20:26:56
Zitat von: raman am 05 April 2018, 11:18:17
@cruser1800
It's not a bug, it's a feature! Kombination aus "1d" und "avg" liefert dir den Sundendurchschnitt,
Setze mal in SV mode auf "raw"!


Hallo raman,

habe ich probiert! Aber das Plot bleibt leer! Vielleicht sollte ich noch erwähnen, dass ich mit 2.9 teste!

Alle andern mode - Einstellungen funktionieren!
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: blue am 06 April 2018, 12:26:46
Hallo raman, hallo cruser1800,

ich habe gestern Abend dblog installiert und mit deiner Erweiterung getestet. Ich kann das Verhalten, das cruser1800 mit plot.period beschreibt, nachvollziehen: avg mittelt stundenweise (ok, das ist ein Feature, soweit verstanden  :) ), aber bei 'raw' bleibt die komplette Grafik leer (siehe Anhang). A propos 'raw': Die Kurve bleibt genauso komplett leer, wenn ich Plotfile verwende (und explizit 'raw' verwende, leer '' oder 'avg' bringt mit Plotfile die gewünschte Kurve zum Vorschein). Die Ursache für das Nichtfunktionieren von 'raw' scheint also unabhängig von Plot und Plotfile zu sein. Ich habe noch nicht in deinen Code schauen können und daher noch nicht genau die Stelle nachvollzogen. Vielleicht mache auch ich was falsch?

Summa summarum: Mir ist es mit dblog und Plot nicht möglich, die Kurve mit Rohwerten darzustellen. Plotfile funktioniert, wie auch schon gestern geschrieben, aber nur mit Modus '' oder 'avg' (nicht 'raw').

Mein Code in SV:

{{ plot.period('p5', ['Heizung.Verbraucherkreis.Temperatur.Vorlauf', 'Heizung.Verbraucherkreis.Temperatur.Ruecklauf'], 'raw', '9h', 'now', 0, 0, 100, ['Vorlauftemp.', 'Rücklauftemp'], [ '#a00',  '#00a'], ['line', 'line'], ['', 'Temperatur in °C']) }}

Funktionierend aber nur mit 'avg':

{{ plot.period('p5', ['Heizung.Verbraucherkreis.Temperatur.Vorlauf', 'Heizung.Verbraucherkreis.Temperatur.Ruecklauf'], 'avg', '9h', 'now', 0, 0, 100, ['Vorlauftemp.', 'Rücklauftemp'], [ '#a00',  '#00a'], ['line', 'line'], ['', 'Temperatur in °C']) }}


Ein anderer Punkt: Eine Kurve mit 'avg' aktualisiert sich mit neuen (nicht gemittelten) Werten. Ist der Browser eine längere Zeit geöffnet, wird die Kurve ab dem Zeitpunkt des Seitenaufrufs mit den einzelnen Rohwerten mit jedem Event angezeigt. Es sei aber mal dahin gestellt, ob das wirklich ein "Problem" und wichtig ist.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: raman am 06 April 2018, 14:29:53
Das mit den Update bei Punkten funktioniert nicht so wie es soll!
Das habe ich noch nicht umgesetzt, aber ich habe dazu eine Idee.

Das mit raw muss ich mir noch genauer anschauen, aber für Plotfile
wird der Modus gar nicht ausgewertet und verwendet. Da ist es auf
fronthem-Seite eigentlich egal, was man angibt. Wie sich das auf
die Auswertung in SV auswirkt muss ich noch mal testen.


Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: smai am 06 April 2018, 14:44:27
Die sV macht nichts mit dem Mode, das aggregieren wird dem Backend überlassen.
Genau genommen kümmert sich die sV aktuell nur um count und wirft frühere Werte raus, wenn neue hinzukommen und der count überschritten wird.
Zudem werden zeitgleiche Werte eliminiert, dadurch können diese rückwirkend angepasst oder auch mehrmals derselbe Datenpunkt gesendet werden.

In Zukunft möchte ich ersteres aber ändern, weil eine Einschränkung auf den angegebenen Zeitbereich wohl sinnvoller wäre als auf die Anzahl.

Anscheinend gibt es noch gewisse Probleme bei der Darstellung mit plot.period, zumindest berichten SmartHomeNG User davon.
Ich konnte diese nicht nachvollziehen. Da ich kürzlich einige umgebaut habe, kann es aber auch nicht ausschliessen.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: HCS am 06 April 2018, 14:45:28
Bei mir funktioniert raw mit filelog

  <div class="block">
    <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
      <div data-role="collapsible" data-collapsed="false" >
        <h3>plot.period</h3>
        <div class="hcs-test">
          {{ plot.period( "id.PlotTest.1",
            ["PlotTest.1"],
            raw,
            "3d",
            "0d",
            0,
            30,
            100,
            ["Bad"],
            ["#0000FF"],
            ["line"]) }}
        </div>
      </div>
    </div>
  </div>


Mit dem filelog:
2018-04-04_12:38:01 Temperature_Bathroom values: T: 20.3 H: 64
2018-04-04_12:43:16 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_12:48:36 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_12:53:56 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_12:59:16 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:04:36 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:09:56 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:15:16 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:20:41 Temperature_Bathroom values: T: 20.3 H: 62.8
2018-04-04_13:25:56 Temperature_Bathroom values: T: 20.3 H: 63
2018-04-04_13:31:16 Temperature_Bathroom values: T: 20.3 H: 62.3
2018-04-04_13:36:36 Temperature_Bathroom values: T: 20.2 H: 62
2018-04-04_13:41:56 Temperature_Bathroom values: T: 20.2 H: 62
2018-04-04_13:47:16 Temperature_Bathroom values: T: 20.2 H: 62
2018-04-04_13:52:36 Temperature_Bathroom values: T: 20.2 H: 62


Und:
Item: PlotTest.1
mode: plot
device: Temperature_Bathroom
reading: values
converter: Plotfile FileLog_Temperature_Bathroom 5 T


Ergibt Anhang (linker plot, der rechte hat aber auch raw)
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: blue am 06 April 2018, 16:13:17
Hallo,

@HCS
Dein Code funktionierte auch bei mir, was mich wirklich (freudig) stutzig machte: Ich denke es liegt aber an dem raw ohne Anführungszeichen. Denn bei mir gab es daraufhin den Effekt im Plot, dass die Anzeige mit Daten aus dbLog wieder gemittelt wurden (Ansicht wie avg) und bei Plotfile die Rohwerte angezeigt wurden. ==> Der Parameter wird also nicht als String interpretiert und das führt dazu, dass einfach die Default-Einstellung übernommen wird. Die widerrum verhält sich gehabt, insbesondere nur für Plotfile. Setze ich "raw" in Anführungszeichen ist der Plott wieder komplett leer. Vielleicht könntest du das auch mal probieren?

@smai
ZitatIn Zukunft möchte ich ersteres aber ändern, weil eine Einschränkung auf den angegebenen Zeitbereich wohl sinnvoller wäre als auf die Anzahl.

Das fände ich ebenfalls sehr sinnvoll und würde ich begrüßen.

@raman + @smai
Wenn sV nichts mit dem Mode am Hut hat und die Anzeige ansonsten funktionert, sollte es doch eher auf fronthem-Seite liegen, dass die Einzelwerte (raw) mit dbLog nicht angezeigt werden? Mir macht es jedenfalls den Anschein, dass die Wertepaare nicht richtig befüllt werden. Warum sollte es sonst mit den FileLogs klappen...
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: smai am 06 April 2018, 16:26:39
raw ohne Anführungszeichen ist tatsächlich falsch. Das hat nichts mit Plot oder FHEM zu tun, sondern ganz grundsätzlich mit Twig.

Ohne Anführungszeichen wird es als Variablenname interpretiert. Da diese Variable nicht gesetzt ist, kommt wie du vermutest der Standardwert 'avg' zum Tragen.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: HCS am 06 April 2018, 17:15:18
Gut, dass ich es falsch gemacht habe, sonst hätte ich keinen plot gesehen  ;D ;D

Stimmt, mit "raw" bleibt er leer

Was mich nun aber wundert: mit "raw" mault der Template checker mit raw sieht er kein Problem
Line 43
Widget: plot.period
Parameters: "id.PlotTest.1", ["PlotTest.1"], "raw", "4d", "now", 0, 30, 1000, ["Bad"], ["#FF0000"], ["line"]
Parameter Index: 2
Parameter Value: "raw"
Valid Values: avg,sum,min,max,minmax,minmaxavg,raw


Aber der Fehler, dass es mit raw nicht geht, liegt im FHEM-Treiber:

     // sV Plots
      widget.plot().each(function () {
        var list = widget.explode($(this).attr('data-item'));
        for (var i = 0; i < list.length; i++) {
          if (widget.checkseries(list)) {
            var plotItem = io.splitPlotItem(list);
            if ($.inArray(plotItem.mode, Array('avg', 'min', 'max', 'sum', 'diff', 'rate', 'on')) >= 0) {

Das müsste sein: avg,sum,min,max,minmax,minmaxavg,raw
Wenn man die Zeile so anpasst:
if ($.inArray(plotItem.mode, Array('avg', 'min', 'max', 'sum', 'diff', 'rate', 'on', 'raw')) >= 0) {
dann geht es auch.

Jetzt muss ich nur noch herausbekommen, was die gültigen modes sind.
Stimmt die Liste, die der Template checker verkündet?



Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: HCS am 06 April 2018, 17:27:37
Zitat von: HCS am 06 April 2018, 17:15:18
Jetzt muss ich nur noch herausbekommen, was die gültigen modes sind.

Wobei eigentlich: müsste die Liste der möglichen modes von fronthem bestimmt sein, was dort verstanden wird?
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: blue am 06 April 2018, 17:36:28
Zitat von: HCS am 06 April 2018, 17:15:18
Das müsste sein: avg,sum,min,max,minmax,minmaxavg,raw
Wenn man die Zeile so anpasst:
if ($.inArray(plotItem.mode, Array('avg', 'min', 'max', 'sum', 'diff', 'rate', 'on', 'raw')) >= 0) {
dann geht es auch.

Bingo, funktioniert! Perfekt!  :)
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: blue am 06 April 2018, 17:41:09
Zitat von: HCS am 06 April 2018, 17:27:37
Wobei eigentlich: müsste die Liste der möglichen modes von fronthem bestimmt sein, was dort verstanden wird?

Ich bin mir nicht ganz sicher (ihr seid schon länger mit FHEM im Geschäft  ;) ), aber laut 99_fronthemUtils.pm sind in der Methode "sub Plot(@)" von raman auf Fronthem-Seite die Modes raw,avg,sum,min,max,minmax,minmaxavg definiert.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: raman am 06 April 2018, 18:41:59
@smai: Danke für die Ausführung!

Ich ging auch davon aus, dass für "minmax" und "minmaxavg" die Daten in einem Array übergeben werden müssen.
Aber dier Serien werden ja getrennt voneinander jeweils für min, max bzw. avg in SV erwartet.

Also "minmax" und "minmaxavg" funktionieren deshalb nicht, da muss ich einiges abändern.

"min", "max", "avg" und "raw" (mit der Änderung im Treiber) sollten gehen!

Das Updaten der Punkte funktioniert aber noch nicht wie es soll! Das müssen noch ein paar Fallunterscheidungen rein.

Man kann auch mal überlegen, wann bei "avg" bei welcher Zeitangabe welche Durchschnittswerte (Stunden-, Tages-, Wochen-, Monatsdurchschnitt) geliefert weren sollen.
Also z.B. Kombination aus "avg" und "1d" ==> Stundendurchschnitt
                                      "avg" und "1W" ==> Tagesdurchschnitt
                                      ...

Bin für Vorschläge offen!
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: cruser1800 am 06 April 2018, 21:17:42
Danke, mit der Änderung im Treiber gehts jetzt auch bei mir!

Die mode Einstellungen "minmax" und "minmaxavg" funktionieren bei mir! Zumindest sieht es wie erwartet aus! ;)
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: blue am 09 April 2018, 14:50:00
Hallo raman,

Zitat von: raman am 06 April 2018, 18:41:59
Man kann auch mal überlegen, wann bei "avg" bei welcher Zeitangabe welche Durchschnittswerte (Stunden-, Tages-, Wochen-, Monatsdurchschnitt) geliefert weren sollen.
Also z.B. Kombination aus "avg" und "1d" ==> Stundendurchschnitt
                                      "avg" und "1W" ==> Tagesdurchschnitt
                                      ...

Bin für Vorschläge offen!

Wäre es nicht am sinnvollsten die Werte einstellbar als optionaler Parameter zu haben? Ich finde man braucht es je nach Daten mal so und so. Deine Zeit-Vorschläge finde ich prinzipiell aber sinnvoll und könnten doch die Standard-Einstellungen sein.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: smai am 09 April 2018, 14:53:59
Eigentlich ergeben sich die Abschnitte aus der Gesamtdauer und Anzahl, also (tmin-tmax)/count.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 04 Mai 2018, 21:03:33
Hallo,

ich kann bei frontherm unter Mode kein Plot auswählen es springt immer wieder auf item.

Woran liegt das ?

gruß und Danke
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: herrmannj am 04 Mai 2018, 22:38:26
die Dateien aus post#1 hast Du installiert ? Wenn ja dann noch mal ctrl-f5 im browser damit die neue js editor version verwendet wird.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 11 Mai 2018, 19:58:30
Zitat von: herrmannj am 04 Mai 2018, 22:38:26
die Dateien aus post#1 hast Du installiert ? Wenn ja dann noch mal ctrl-f5 im browser damit die neue js editor version verwendet wird.

Ja, hab ich. Aber es ist immer noch so das ich 3 zur Auswahl habe (plot item log) egal was ich aus wähle es springt immer auf item zurück.

Somit kann ich auch nichts anderes auswählen.

gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Chris46 am 22 Mai 2018, 13:06:28
Guten Tag,

Ich habe die Plots mit sv2.9 testweise auch bei mir laufen, funktioniert soweit alles einwandfrei. :)

Was mir allerdings aufgefallen ist, dass bei größeren Plots FHEM blockiert, ist es möglich die Datenbankabfrage (sqlite) auch als nonblocking auszuführen?

Zu große Plots (zu viele Daten) werden gar nicht angezeigt, dass liegt aber sicherlich an dem verwendeten langsamen Pi B+, der wird demnächst eh ersetzt und dann nochmal getestet.

Wann kommen die Anpassungen per FHEM Update?

Vielen Dank für die Arbeit. :)
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Gigabyte99 am 02 Juni 2018, 09:38:29
Hallo raman,

Ich habe deine Änderung zum testen der Plots mit SV 2.9 eingespielt und habe eine Plot in in der Smartvisu Seite angelegt.


{{ plot.period('plotKollektor', ['AUSSEN_IstTemperatur_Plot','KG_HEIZUNG_TEMP_Kollektor_Plot','KG_HEIZUNG_TEMP_Pufferspeicher_Plot'], 'avg', '9h', 'now', 0, 0, 100, ['Temp. Außen', 'Temp. Kollektor','Temp. Pufferspeicher'], [ '#a00', '#00a','#a00'], ['line', 'line', 'line'], ['', 'Temperatur in °C']) }}


und habe dann wie im Post #1 die Einstellungen im ITEM-Editor gemacht,
sobald ich die Änderung speicher stürzt FHEM ab und folgende Fehlermeldung steht im Log


Can't use an undefined value as an ARRAY reference at ./FHEM/31_fronthemDevice.pm line 632.


Wenn ich FHEM neustarte läuft es kurz und dann stürzt es wieder ab.

Woran liegt das?

Gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: cruser1800 am 15 Juni 2018, 21:07:23
Hallo Gigabyte99,

ich hatte auch schon mal solch ein Phänomän. Da lag es an der Definition des "item". Ich hatte den converter falsch angegeben!

Vielleicht hilfts!
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Gigabyte99 am 17 Juni 2018, 13:20:53
Hallo cruser1800,

ich habe jetzt ein bischen probiert, soweit ich das jetzt feststellen kann tritt der Fehler auf wenn ein Plot in Smartvisu definert ist
aber kein "Plot item" in FHEM definert ist bzw. die Berechtigung für das "item" nicht gesetzt ist.

Gibt es eine möglichkeit denn Fehler in FHEM irgendwie abzufangen?

Gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: gkosta am 25 Juni 2018, 23:19:40
Hallo raman, vielen Dank für deine tolle(n) Erweiterung(en). Smartvisu Plots funktionieren mit deiner Anleitung, beim Status.log bin ich allerdings gescheitert. Fehlt da eventuell die User_datei mit den entsprechenden Funktionen?? (Log_SetList) ? Gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 02 Dezember 2018, 08:18:35
Hallo zusammen,

ich komme nicht weiter.
Ich habe es wie in Poste 1 Versucht, aber ohne Erfolg.
Ich nutze SV 2.9 mit Fhem und SQLite.

So sieht die Datenbank aus: (Bild: Datenbank)

So sieht der Plot aus:(Bild: Plot1)

So sieht der fronthem ITEM aus (Bild:fronthem)
und so die Fehlermeldung: (Bild: Fehler)

und zuletzt noch mein HTML Code
<div class="block">
    <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
      <div data-role="collapsible" data-collapsed="false">
        <h3>plot.period</h3>
        <div class="hcs-test">
         {% set plotOptions =
[
{
'update_trigger_gad': 'Wirkarbeit_strom_komuliersw',
'device': 'StromVerbrauch',
'reading': 'Stromverbrauch_countsOverall_EnergyMonth',
'config': {
'name': 'Stromverbrauch komuliert',
'type': 'spline'
}
}
]%}
{{ plot.period('1', 'Wirkarbeit_strom_komuliert', '"avg"', '', '', '', plotOptions, '', '', 300) }}
        </div>
      </div>
    </div>
  </div>


kann mir jemand weiterhelfen ??

Danke



Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Highflyer am 02 Dezember 2018, 10:27:26
Bei dir steht im fronthem Editor
-converter: Plot Datenbank
lass mal das Plot weg. Dort muss nur der Name deines DBlog Devices rein.

-converter: Datenbank

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 02 Dezember 2018, 11:05:48
Danke, aber die Fehlermeldung bleibt.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Highflyer am 02 Dezember 2018, 12:16:59
Was mir noch aufgefallen ist, bei Dir steht:

{{ plot.period('1', 'Wirkarbeit_strom_komuliert', '"avg"', '', '', '', plotOptions, '', '', 300) }}

Meiner Meinung nach müsste das so aussehen:

{{ plot.period('1', 'Wirkarbeit_strom_komuliert', 'avg', '', '', '', 'plotOptions', '', '', 300) }}

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Chris46 am 03 Dezember 2018, 15:38:13
Zitat von: buchner51 am 02 Dezember 2018, 08:18:35
Hallo zusammen,

ich komme nicht weiter.
Ich habe es wie in Poste 1 Versucht, aber ohne Erfolg.
Ich nutze SV 2.9 mit Fhem und SQLite.

So sieht die Datenbank aus: (Bild: Datenbank)

So sieht der Plot aus:(Bild: Plot1)

So sieht der fronthem ITEM aus (Bild:fronthem)
und so die Fehlermeldung: (Bild: Fehler)

und zuletzt noch mein HTML Code
<div class="block">
    <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
      <div data-role="collapsible" data-collapsed="false">
        <h3>plot.period</h3>
        <div class="hcs-test">
         {% set plotOptions =
[
{
'update_trigger_gad': 'Wirkarbeit_strom_komuliersw',
'device': 'StromVerbrauch',
'reading': 'Stromverbrauch_countsOverall_EnergyMonth',
'config': {
'name': 'Stromverbrauch komuliert',
'type': 'spline'
}
}
]%}
{{ plot.period('1', 'Wirkarbeit_strom_komuliert', '"avg"', '', '', '', plotOptions, '', '', 300) }}
        </div>
      </div>
    </div>
  </div>


kann mir jemand weiterhelfen ??

Danke

Deine Item Definition sieht ok aus. Allerdings versucht du scheinbar dbPlot.linePlot mit plot.period zu vermischen. Schau dir bitte in der Doku zu smartVisu an, wie ein plot.period definiert wird. Wenn du dazu konkrete Fragen hast, dann helfe ich gern weiter.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 03 Dezember 2018, 20:11:32
Danke habs auch endlich gemerkt.

jetzt geht's ans fein Tuning.

Danke
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: flipkill am 05 Dezember 2018, 17:54:09
Hallo,

bei mir funktioniert das mit den Plots nicht, was mache ich falsch? siehe Screenshots!

Gruß Jan
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Chris46 am 05 Dezember 2018, 19:18:18
Du hast den gleichen Fehler gemacht wie @buchner51 über dir. plot.period und dbPlot.linePlot kann man nicht mischen!  Schau dir bitte in der Doku zu smartVisu an, wie ein plot.period definiert wird.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: flipkill am 05 Dezember 2018, 19:34:16
Hmm,

habe es wie n der Doku gemacht geht nicht.

Gruß Jan
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 06 Dezember 2018, 17:15:09
Hi,

schau mal so:

und auch die Dateien aus Poste 1

gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 06 Dezember 2018, 17:19:08
Ich habe da nochmal so eine Frage, wie kann ich Current/History gleichzeitig anzeigen lassen?

Ich hab so das Gefühl das nur Current angezeigt wird.

gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: flipkill am 06 Dezember 2018, 17:33:42
Hallo,

gehen alle Plot Arten die von Smartvisu unterstützt werden?
Manche gehen bei mir aber z.B. plot.gauge geht bei mir auch nicht.

{{ plot.gauge('', 'schlafzimmer_heizung_istwert_plot', 10, 30, '°', 'Temperatur', 'solid-half', [30,50,70,90], ['#0DE0EC','#55BF3B','#DDDF0D','#DF5353']) }}

Gruß Jan
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: smai am 06 Dezember 2018, 18:55:54
plot.gauge zeigt aktuelle Werte und nicht historische, deshalb braucht es auch kein DB reading.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 07 Dezember 2018, 14:24:59
ich nutze multiaxis.

gibt es eine Übersicht wer was darstellt bez abruft?
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: smai am 07 Dezember 2018, 14:42:16
Zitat von: buchner51 am 07 Dezember 2018, 14:24:59
ich nutze multiaxis.
In 2.8 oder develop (aka 2.9)?
Zumindest der in 2.8 integrierte Treiber unterstützt die Series noch nicht. Und beim neueren Treiber weiss ich nicht, ob er mit 2.8 läuft.

Zitat von: buchner51 am 07 Dezember 2018, 14:24:59
gibt es eine Übersicht wer was darstellt bez abruft?
Nein. Ist aber doch recht einfach zu erkennen, ob in einem Plot eine Serie von historischen Werten angezeigt wird oder ob es einzelne (und damit aktuelle) Itemwerte sind.
Trotzdem würde tatsächlich bei den betroffenen Plots eine explizite Erwähnung in der Doku Sinn machen, zumal nicht jedes Backend die Serien unterstützt.

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 08 Dezember 2018, 08:43:14
Ich nutze Smartvisu 2.9 von gidhub, wie erkenne ich das?

Gibt es denn eine Möglichkeit beide Datenbanken gleichzeitig angezeigt zu bekommen in der Multiansicht?

wie kann man die Darstellung in html ändern? also voll Bild oder Größe?

gibt es eine dokuseite wo es erklärt ist, ich hab bisher nichts gefunden.

Gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: smai am 08 Dezember 2018, 09:19:52
Irgendwie verstehe ich keine deiner Fragen.

Zitat von: buchner51 am 08 Dezember 2018, 08:43:14
Ich nutze Smartvisu 2.9 von gidhub, wie erkenne ich das?
Wie erkennst du was?

Zitat von: buchner51 am 08 Dezember 2018, 08:43:14
Gibt es denn eine Möglichkeit beide Datenbanken gleichzeitig angezeigt zu bekommen in der Multiansicht?
Welche beiden Datenbanken und was ist die Multiansicht?

Zitat von: buchner51 am 08 Dezember 2018, 08:43:14
wie kann man die Darstellung in html ändern? also voll Bild oder Größe?
Was meinst du mit "voll Bild", dass der Plot die ganze Seite füllen soll? Die Plots skalieren sich automatisch nach der Breite ihres Containers. Wenn du das Widget also direkt im content Platzhalter nutzt, füllt es auch die ganze Breite.
Zusätzlich kann man wie bei jedem HTML-Element auch CSS einsetzen.

Zitat von: buchner51 am 08 Dezember 2018, 08:43:14
gibt es eine dokuseite wo es erklärt ist, ich hab bisher nichts gefunden.
Was erklärt ist? Wie für jedes Widget gibt es auch für plot.period eine Doku-Seite. In 2.9 musst du dafür nicht mal mehr die Pages ändern, sondern die Doku ist direkt im Menü unter der Konfiguration zu finden.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 08 Dezember 2018, 12:26:57
Hi, ich probiere es nochmal:
Ich nutze Smartvisu 2.9 von gidhub, wie erkenne ob die Current und History verwendet wird?

Ich habs jetzt mal ausprobiert mit Plot.Period, so sieht es besser aus. Aber Plotaxis ist wohl auch neu ab 2.9.

Unter der Doku hab ich zwar den Punkt Blocks gefunden aber kein Code.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: smai am 08 Dezember 2018, 13:48:11
Naturgemäss müssen Pots mit Reihen von Daten diese Werte aus der DB holen, solche mit nur jeweils einem Wert pro Item zeigen den aktuellen Wert.
Unterdessen habe ich in der Doku der betroffeneb DB-Plots einen Hinweis platziert.

Was für Code suchst du denn in der Doku?
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 09 Dezember 2018, 14:26:51
In der Doku unter Disign -- Blocks sind keine Code Erklärungen, das fehlt einem Anfänger wie mir.
Auch der eine oder andere Code zur voll Ansicht wäre hilfreich.

gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: smai am 09 Dezember 2018, 15:32:55
Zitat von: buchner51 am 09 Dezember 2018, 14:26:51
In der Doku unter Disign -- Blocks sind keine Code Erklärungen, das fehlt einem Anfänger wie mir.
Das hat interessanterweise bisher noch niemand angemerkt, aber es ist eigentlich berechtigt.
Den Code kannst du dir aber anschauen, indem du einfach die Datei pages/docu/design/design_block.html anschaust.

Zitat von: buchner51 am 09 Dezember 2018, 14:26:51
Auch der eine oder andere Code zur voll Ansicht wäre hilfreich.
Ich weiss noch immer nicht genau, was eine "voll Ansicht" sein soll.

Ich finde auch nicht, dass in der smartVISU eine allgemeine HTML/CSS-Dokumentation enthalten sein muss...
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: donpaulus am 10 Dezember 2018, 21:02:59
Heyho,
leider bekomme ich es auch nicht hin. Habe die Dateien aus der zip kopiert.

Zur Erklärung:

Die Datenbank speichert minütlich Temperaturwerte in einer SQLite DB mit folgendem Muster


2018-12-10 20:41:17  gz_heizung_temp  KNX   ist_temp-get: 22.90 &deg;C  ist_temp-get  22.90          &deg;C
2018-12-10 20:42:17  gz_heizung_temp  KNX   ist_temp-get: 22.90 &deg;C  ist_temp-get  22.90          &deg;C
2018-12-10 20:43:17  gz_heizung_temp  KNX   ist_temp-get: 22.90 &deg;C  ist_temp-get  22.90          &deg;C
2018-12-10 20:44:17  gz_heizung_temp  KNX   ist_temp-get: 22.90 &deg;C  ist_temp-get  22.90          &deg;C
2018-12-10 20:45:17  gz_heizung_temp  KNX   ist_temp-get: 22.90 &deg;C  ist_temp-get  22.90          &deg;C


Die Definition in der SV ist folgende:

{{ plot.period('', 'gz_plot_day_plot', 'avg', '3h') }}


Kann ich hier das Beispiel überhaupt nutzen, da es ja minütliche Daten sind?

Und die DEF in der fronthem ist (siehe auch Bild im Anhang)

mode: plot
device: gz_heizung_temp
reading: ist_temp-get
converter: Plot myDBLog

Ich würde mich sehr über Erleuchtung freuen.

LG Paul

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 11 Dezember 2018, 20:56:39
Hallo,

du hast keine ID drin, die muss immer eindeutig sein. Heist deine Datenbank -myDBLog-?

Und du musst die ersten Dateien (alle drei) einfügen und auf die Berechtigungen achten, ich hatte auch so ein paar Probleme.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: donpaulus am 12 Dezember 2018, 10:19:58
Zitat von: buchner51 am 11 Dezember 2018, 20:56:39
Hallo,

du hast keine ID drin, die muss immer eindeutig sein. Heist deine Datenbank -myDBLog-?

Und du musst die ersten Dateien (alle drei) einfügen und auf die Berechtigungen achten, ich hatte auch so ein paar Probleme.

Heyho buchner,
in der SV2.9 muss man keine ID mehr angeben, das ist jetzt optional. Ja die Datenbank heißt wirklich so  ::).
Das mit der Berechtigung probiere ich heute Abend mal aus.

Ich könnte mir noch vorstellen, dass die Datenbank einfach zu groß bzw. zu viele Datenpunkte hat (2,5MB ca. 44000 Datenpunkte)
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 12 Dezember 2018, 15:38:28
Hallo,

an der Größe liegt es nicht meine ist min 10x so groß.

Gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 12 Dezember 2018, 15:42:50
Werden die Dateien aus post 1 eigentlich auch per update verteilt?

Oder gibt es Probleme bei anderen wigets?
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: donpaulus am 12 Dezember 2018, 21:27:06
Mmmh,

mysteriös, habe eben bei der Wahl des Converter auf die Dropdown- Auswahl gewartet und Plot gewählt und danach noch den Namen der dblog file eingeben. Visuell sieht es genau so aus, wie gestern aber einmal strg + f5 auf der SV Seite und der Plot war auf einmal da.

Danke für die Arbeit von euch @smai , @raman und @herrmannj

Grüße Paul
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: fame1991 am 12 Dezember 2018, 23:10:37
Hallo Zusammen,

bin gerade auch etwas am Rätseln warum es bei mir nicht funktioniert. Files aus dem Zip natürlich installiert.

Folgendes ist konfiguriert:

Code (smartvisu) Auswählen
{{ plot.period('wz_temperatur_plot','wz.istTemperatur.plot', 'raw') }}
Meldet sich als: wz.istTemperatur.plot.raw.1h.0

Code (fronthem) Auswählen

mode: plot
device: Zeilenbeleuchtung
reading: temperature
converter: Plotfile zeilenbel_temp 4


Code (Filelog: ./log/zeilenbel_temp.log) Auswählen
2018-12-12_22:15:46 Zeilenbeleuchtung temperature: 22.5 C (measured)
2018-12-12_22:20:55 Zeilenbeleuchtung temperature: 22.5 C (measured)
2018-12-12_22:25:55 Zeilenbeleuchtung temperature: 22.5 C (measured)
2018-12-12_22:30:55 Zeilenbeleuchtung temperature: 22.5 C (measured)
2018-12-12_22:35:55 Zeilenbeleuchtung temperature: 22.5 C (measured)


Es handelt sich um eine Fritz!Dect 200.

Was mache ich falsch?

Danke!
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Chris46 am 12 Dezember 2018, 23:34:59
Bist du sicher, dass das FileLog-Device zeilenbel_temp und nicht FileLog_zeilenbel_temp heißt?
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: fame1991 am 13 Dezember 2018, 00:02:22
Hi Chris46,

das Device heißt in der Tat FileLog_Zeilenbel_Temp. Ich dachte aber, dass ich den Namen der FileLog-Datei angeben muss.
Dieses heißt (und liegt unter): ./log/zeilenbel_temp.log

Habe es aber probeweise mal mit dem Devicenamen (Plotfile FileLog_Zeilenbel_Temp 4) ausprobiert. Hat leider auch nicht geklappt.

Aber danke für den Hinweis ;-)
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Chris46 am 13 Dezember 2018, 00:10:43
Dann nimm zusätzlich mal noch die 4 weg, die Spalte wird scheinbar nur beim reading value beachtet bzw. benötigt. Und gib mal noch eine Zeit bei deinem Plot an:
{{ plot.period('wz_temperatur_plot','wz.istTemperatur.plot', 'raw', '6h') }}
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: fame1991 am 13 Dezember 2018, 00:23:42
Ok, erledigt.

Meldet sich nun als:
wz.istTemperatur.plot.raw.6h.0

Hierfür wurde folgendes eingestellt:
Code (fronthem) Auswählen
mode: plot
device: Zeilenbeleuchtung
reading: temperature
converter: Plotfile FileLog_Zeilenbel_Temp
cmd set:
Read X
Write X


Funktioniert leider immer noch nicht. Es wird kein Diagramm angezeigt.
Grüße
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: fame1991 am 13 Dezember 2018, 13:19:09
Einen Hinweis habe ich noch. Es scheint wohl nicht an der Konfig zu liegen. Die scheint nun zu passen mit dem FileLog Device.
Im Log kriege ich folgenden Fehler:
Code (fhemlog) Auswählen
2018.12.13 13:13:53 1: ft_loopback: error doing $result = fronthem::Plotfile($param); Month '-1' out of range 0..11 at ./FHEM/99_fronthemUtils.pm line 38.

Eine Idee warum $mon wohl auf 0 ist? (Zeile 38 in 99_fronthemUtils.pm)
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: DrBrain_1000 am 23 Dezember 2018, 23:03:46
Hallo Zusammen,

ich habe ein Problem mit dem Plot von Datensätzen mit Unterbrechung:

Ich habe die Datenbank auf einen neuen Server transferiert (FHEM währenddessen gestoppt) und muss nun feststellen, dass nur noch die Datensätze geplottet werden, die nach dem erneuten starten von FHEM erzeugt wurden.

Kann mir jmd. sagen woran das liegt bzw. was hier schief läuft? Mein Plot sieht wie folgt aus:

{{plot.period('Plot.Period.Heizung.Temperaturen',['Zentral.Waermepumpe.Sensor.Vorlauftemperatur.pl','Zentral.Waermepumpe.Sensor.Ruecklauftemperatur.pl','Zentral.Waermepumpe.Sensor.Aussentemperatur.pl','Zentral.Waermepumpe.Sensor.WassertemperaturSpeicher.pl'],'raw','24h','now','','','',['Vorlauf','Rücklauf','Aussen','Warmwasser'],['#f00','#f442d9','#0a0','#41caf4'],['line','line','line','line'],['Zeit','Temperatur in °C'],'','','','','',['°C'])}}


Danke und viele Grüße

Sascha
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Chris46 am 23 Dezember 2018, 23:29:12
Sicher, dass bei dem Umzug der Datenbank nichts schiefgegangen ist? Klingt mir eher nach einem grundsätzlichen Problem mit der Datenbank und nicht mit smartVISU.
Schau dir diesbezüglich mal DbRep an.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: DrBrain_1000 am 27 Januar 2019, 11:43:35
Ich habe nochmal genau die Datenbank durchgesehen. Es lag offensichtlich am übertragen der Datenbank. Der zweite Versuch mit DbRep hat dann geklappt, danke für den Hinweis.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 05 Februar 2019, 11:53:11
Zitat von: DrBrain_1000 am 27 Januar 2019, 11:43:35
Ich habe nochmal genau die Datenbank durchgesehen. Es lag offensichtlich am übertragen der Datenbank. Der zweite Versuch mit DbRep hat dann geklappt, danke für den Hinweis.

Wann werden die Änderungen denn in den Master Branch eingecheckt? Sind die Änderungen noch in der Testphase? Ich überlege, ob ich noch warte, bis die Änderungen final sind.

PS: funktioniert eigentlich https://github.com/ToGe3688/db_plot_widget  (https://github.com/ToGe3688/db_plot_widget)noch?
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Chris46 am 05 Februar 2019, 11:58:32
Zitat von: Kai-Alfonso am 05 Februar 2019, 11:53:11

PS: funktioniert eigentlich https://github.com/ToGe3688/db_plot_widget  (https://github.com/ToGe3688/db_plot_widget)noch?

Mit smartVISU 2.9: Ja und Nein. Es werden noch Plots angezeigt aber man kann bspw. die Farben nicht mehr ändern.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 12 Februar 2019, 18:41:26
Hallo zusammen,

ich habe einen Fehler in der Anzeige der Plots:

in Fhem sieht alles OK aus (siehe Zacken, jeden Tag bei 0 beginnend):

in smartvisu 2.9 sind die Zacken nicht da, erst dachte ich es würde am aufruf liegen aber alles OK.

Hier meine Definition in SV:

<div class="hcs-test">
{{ plot.period('', ['Gas_komuliert','Gas_Day'], 'avg', '1y', 'now', '', '', '', ['Gesamt','Tag'], ['#a00','#070'], '', ['Zeit','Gesamt kWh','Tag kWh'], 'advanced', [1,2], [0,1], ['#f00','#0a0']) }}
</div></div></div>


Kann mir jemand helfen?

Danke
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Chris46 am 22 Februar 2019, 07:05:29
Mit der Aggregation ,,avg" werden die Spitzen natürlich zusammengefasst. Probiere es mal mit ,,raw", allerdings denke ich, dass du mit einem Jahresplot schnell an die Grenzen der Datenmengen kommen wirst.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 24 Februar 2019, 14:39:13
Hallo,

mit "raw" bekomme ich garnichts angezeigt, auch nicht wenn ich die Datenpunkte auf nur 3600 runter setze.

ich nutze SQL lite.

gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Chris46 am 24 Februar 2019, 14:54:14
Nimm mal einen kürzeren Zeitraum. Die Begrenzung der Datenpunkte funktioniert nicht korrekt.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 05 September 2019, 11:34:57
Hi,

auch wenn das Thema ein wenig verweist ist  8)

Ich würde gerne status.log in Verbindung mit SV 2.9 nutzen. Funktioniert auch soweit, nur habe ich eine Frage: Ist es möglich, das ich im Widget nur die Einträge sehen kann, deren Level im dummy laut svEvents auf error stehen? Warning/Info etc möchte ich nicht sehen.

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Huntercover am 21 Oktober 2019, 21:56:00
Zitat von: fame1991 am 13 Dezember 2018, 13:19:09
Einen Hinweis habe ich noch. Es scheint wohl nicht an der Konfig zu liegen. Die scheint nun zu passen mit dem FileLog Device.
Im Log kriege ich folgenden Fehler:
Code (fhemlog) Auswählen
2018.12.13 13:13:53 1: ft_loopback: error doing $result = fronthem::Plotfile($param); Month '-1' out of range 0..11 at ./FHEM/99_fronthemUtils.pm line 38.

Eine Idee warum $mon wohl auf 0 ist? (Zeile 38 in 99_fronthemUtils.pm)

**EDIT**
selbst behoben, in der 99_Utils.pm hat diese Zeile zu Beginn gefehlt:
  use Time::Local;


ich bekomme einen ähnlichen Fehler:
error doing $result = fronthem::Plotfile($param); Undefined subroutine &main::timelocal called at ./FHEM/99_fronthemUtils.pm line 38.

Muss man irgendwo noch das Datumformat definieren?

LOG:
2019-10-21_21:26:36 KNX_0305000 setG1: 14.20 °C

FRONTHEM-ITEM
mode:plot
device:KNX_0305000
reading:setG1
converter:Plotfile FileLog_KNX_0305000

PLOT:
{{ plot.period('EG.Buero.Temperature.Plot',
            ['EG.Buero.Temperature.Plot'],
            'raw',
            '3d',
            '0d',
            0,
            30,
            100,
            ['Bad'],
            ['#0000FF'],
            ['line']) }}
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 22 Oktober 2019, 18:26:54
Hallo zusammen,

ich habe ein Problem, ich habe meine Raspberry neu aufgesetzt.

Vorher:

Raspberry mit Fhem, SV2.9, Velux, KNX mit TUL alles läuft super (nur die Plots sind nicht OK)

Jetzt:

Raspberry mit Fhem läuft. SV2.9 ist wohl der Treiber nicht OK, ich kann nichts schalten (Schalter schaltet kurz und springt zurück, Licht blinkt kurz auf).
Ich habe alles soweit von der Datensicherung übernommen.

Kennt das Problem jemand?

Danke für eure Hilfe
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Huntercover am 04 November 2019, 21:18:24
@buchner51: nein, aber ich würde an Deiner Stelle erst einmal im FHEM schauen ob Du da die Lichter steuern kannst. Geht ja komfortabel über die TUL "KNX" devices. Sollte das nicht gehen, hast Du ein Problem mit knxd, bzw. FHEM, ansonsten mit SV.

Ich hätte da noch eine Frage an die Autoren:

Kann man über das FRONTHEM device eine Umrechnung hinbekommen?
Ich möchte einen KNX-Wert durch 1000 teilen und diesem im Plot in SV anzeigen, finde aber gerade weder die Möglichkeit wie man dies VOR dem schreiben bzw. NACH dem lesen aus dem Filelog hinbekommt.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 05 November 2019, 20:24:16
Hi Huntercover,

ich habe oben erwähnt das FHEM ok ist.

Ich bin der Meinung das das ein Treiber Problem ist.

gruß
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Funsailor am 09 November 2019, 14:21:22
Hi buchner51,
ich hatte nach dem aufsetzen meiner Banane das Problem, das die PHP Version nicht richtig mit meinem Apache  zusammen arbeitete. Ich hatte damals mit Armbian experimentiert und einige Probleme mit der falschen PHP Version gehabt.
Zum testen sollte auch der Cache in SmartVISU abgestellt sein. Da hatte ich auch schon umsonst Fehler gesucht.
Bei Problemen auch nicht vergessen, den Browser Cache zu löschen.

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: buchner51 am 13 November 2019, 19:58:20
Wahnsinn, ich bekomme es einfach nicht hin.

Wenn ich eine Seite öffne dann schalten alle Lichter auf dieser Seite aus.
Aber einschalten geht nicht, sie flackern nur kurz auf und der Visu Schalter springt auf aus.uß und

Die Temperaturwerte werden aber angezeigt??

Die UZSU kann ich auch nicht bedienen, bzw wenn ich diese Aktiviere dann werden die Werte die in FHEM stehen alle gelöscht.

Wo ist mein Fehler nach dem wieder einspielen.

gruß und Danke
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Huntercover am 15 November 2019, 23:19:17
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.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: MarvinLu am 24 November 2019, 19:49:14
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
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: maestro am 20 April 2020, 20:30:12
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
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Wiesel am 06 Juli 2020, 23:15:13
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
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: alkazaa am 28 Juli 2020, 13:55:49
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.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Joker am 25 Oktober 2020, 20:07:24
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...
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: GammaTwin am 09 November 2020, 17:10:15
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  ;)
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Jessyfoosy am 02 Dezember 2020, 08:47:20
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
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Joker am 03 Dezember 2020, 08:50:00
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...
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag 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.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Jessyfoosy am 03 Dezember 2020, 09:29:51
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 :(
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Joker am 03 Dezember 2020, 21:11:50
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...
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: alkazaa am 13 Dezember 2020, 12:39:48
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
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: alkazaa am 18 Dezember 2020, 15:27:10
Hallo!

Das Problem mit der vollgeschriebenen Logdatei ist gelöst: Ich habe die Frage in diesem Forumsbeitrag  (https://forum.fhem.de/index.php/topic,116823.0.html) eingestellt und von DS_Starter  (https://forum.fhem.de/index.php?action=profile;u=16933) 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
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Joker am 18 Dezember 2020, 19:41:16
Funktioniert wie ne Eins  8)

Besten Dank, jetzt kann ich mein Logfile auch wieder normal benutzen  :)
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: basman21 am 12 Mai 2021, 08:58:12
Hallo,

wir kommen bei einem Thema im folgenden Thread nicht weiter: https://forum.fhem.de/index.php/topic,120711.15.html
Fehler ist bei meinem Update auf 3.0.1 aufgetaucht. In der GAD Liste erscheinen die Plot Variablen nicht und Plot lässt sich nicht auswählen bzw. springt das Feld immer wieder auf Item zurück. Das Verhalten mal in einem GIF im Anhang dargestellt.

Ich hatte das gleiche Problem bereits zu Beginn meiner Installation von smartvisu (2.7). Hier hatte ich auf folgende Dateien irgendwie keine Schreibrechte (mehr).
01_fronthem
31_fronthemDevice
99_fronthemUtils
Damals lag das an meiner schlecht nachgezogenen Nutzerstruktur mit verminderter Rechtevergabe, aber dieses mal kann ich den Fehler ausschließen. Nachdem ich meinem User die Schreibrechte gegeben hatte, ging alles 1 Jahr lang gut und meine Plots liefen wie ne 1 :)

Ich bin mir eigentlich sehr sicher, dass es an fronthem liegt und ich bei der Installation irgendetwas übersehen habe. Hättet ihr vielleicht ein paar Tipps für mich, wo ich neben den drei aufgeführten Dateien und dem Editor noch gucken kann? Würde vielleicht jemand seine drei fronthem Dateien einmal mit mir teilen?

Update: Ich habe ganz sicher ein Problem in der 99_fronthemUtils.pm

2021.05.12 16:01:53 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/31_fronthemDevice.pm line 263.
2021.05.12 16:01:53 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/31_fronthemDevice.pm line 264.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine fronthemUtils_Initialize redefined at ./FHEM/99_fronthemUtils.pm line 13.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine fronthem_decodejson redefined at ./FHEM/99_fronthemUtils.pm line 17.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine fronthem_encodejson redefined at ./FHEM/99_fronthemUtils.pm line 21.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine fronthem_ActualTimeStamp redefined at ./FHEM/99_fronthemUtils.pm line 27.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine fronthem_TimeStamp redefined at ./FHEM/99_fronthemUtils.pm line 35.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine fronthem_Time redefined at ./FHEM/99_fronthemUtils.pm line 44.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine fronthem_Duration redefined at ./FHEM/99_fronthemUtils.pm line 84.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine UZSU_execute redefined at ./FHEM/99_fronthemUtils.pm line 150.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine UZSU_getRrules redefined at ./FHEM/99_fronthemUtils.pm line 192.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine UZSU_getCommand redefined at ./FHEM/99_fronthemUtils.pm line 204.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine Log_SetList redefined at ./FHEM/99_fronthemUtils.pm line 278.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine Log_GetList redefined at ./FHEM/99_fronthemUtils.pm line 342.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine UZSU redefined at ./FHEM/99_fronthemUtils.pm line 399.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine AnAus redefined at ./FHEM/99_fronthemUtils.pm line 444.
2021.05.12 16:04:19 1: PERL WARNING: Subroutine NumInvert redefined at ./FHEM/99_fronthemUtils.pm line 489.
2021.05.12 16:04:20 1: PERL WARNING: Subroutine Log redefined at ./FHEM/99_fronthemUtils.pm line 542.
2021.05.12 16:04:20 1: PERL WARNING: Subroutine Plot redefined at ./FHEM/99_fronthemUtils.pm line 594.
2021.05.12 16:04:20 1: PERL WARNING: Subroutine Plotfile redefined at ./FHEM/99_fronthemUtils.pm line 709.
2021.05.12 16:11:06 1: PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 4905.


Erneutes Update, die PERL WARNUNGEN sind seitdem auch nicht mehr aufgetaucht. Hatte aus Seite 1 von raman die 99_fronthemUtils.pm genommen. Jedoch kann ich immer noch keine plots auswählen :(

Vielen Dank schonmal!
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: sxx128 am 15 Mai 2021, 17:54:24
Halllole

so ist es bei mir auch. Keine Chance. Ich weiss auch nicht was ich noch machen soll..

Grüssle
Steven
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: wvhn am 17 Mai 2021, 18:36:15
Kann jemand erklären, was fronthem macht, um die Plots zu identifizieren? Dann könnte ich prüfen, ob ich an smartVISU irgendetwas geändert habe, was von Relevanz ist.

Größte Änderung bei den Plots in v3.0.1 war das Löschen der veralteten Widgets plot.minmaxavg und plot.multiaxis.

In v3.0.1 hatten wir für die Plots immer noch die seit v2.9 installierte Version von Highcharts (erst in v3.1 upgedated) und im FHEM-Treiber hatte ich in v3.0.1 eine (noch leere) Funktion "stopseries" eingebaut. Hier könnte man mal den alten Treiber aus v2.9 probieren. Dazu muss man aber die Zeile in der .lib/base/base.js auskommentieren, in der stopseries() aufgerufen wird.

Gruß
Wolfram
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: ReviloEgros am 18 Mai 2021, 09:14:08
Ich denke nicht das es an einer deiner Änderungen liegt Wolfram, ich vermute eher das die fronthem Dateien bei einem FHEM Update überschrieben wurden. Da hilft es unter global das attr exclude_from_update mit 01_fronthem.pm 31_fronthemDevice.pm fronthemEditor.js zu setzen und die Dateien nochmal zu ersetzen. Ich habe ein tagesaktuelles FHEM mit smartVISU develop pull von gestern Abend am laufen ind meine Plots gehen nach wie vor.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: GammaTwin am 19 Mai 2021, 07:53:03
Zitat von: ReviloEgros am 18 Mai 2021, 09:14:08
Ich denke nicht das es an einer deiner Änderungen liegt Wolfram, ich vermute eher das die fronthem Dateien bei einem FHEM Update überschrieben wurden. Da hilft es unter global das attr exclude_from_update mit 01_fronthem.pm 31_fronthemDevice.pm fronthemEditor.js zu setzen und die Dateien nochmal zu ersetzen. Ich habe ein tagesaktuelles FHEM mit smartVISU develop pull von gestern Abend am laufen ind meine Plots gehen nach wie vor.

Grüße,

das ist nicht nötig. Das Update überschreibt die Dateien nicht.
Meiner Meinung nach installiert man mit update force https://raw.githubusercontent.com/herrmannj/fronthem/master/controls_fronthem.txt "einmalig" fronthem. Es ist dann nicht Teil des Update-Vorgangs.

Aber es bringt mich auf eine andere Idee:
Wiederhole doch mal update force https://raw.githubusercontent.com/herrmannj/fronthem/master/controls_fronthem.txt
So als sauberer Aufsatzpunkt. Dann ersetzt Du die 4 Dateien.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Dlay am 20 Mai 2021, 13:43:47
Also ich habe force durchgeführt und kann keine Besserung erkennen. Ein auf SmartVisu 3.1 eingebundener Plot taucht im fronthem einfach nicht auf. :-(

Zitat von: GammaTwin am 19 Mai 2021, 07:53:03
Grüße,

das ist nicht nötig. Das Update überschreibt die Dateien nicht.
Meiner Meinung nach installiert man mit update force https://raw.githubusercontent.com/herrmannj/fronthem/master/controls_fronthem.txt "einmalig" fronthem. Es ist dann nicht Teil des Update-Vorgangs.

Aber es bringt mich auf eine andere Idee:
Wiederhole doch mal update force https://raw.githubusercontent.com/herrmannj/fronthem/master/controls_fronthem.txt
So als sauberer Aufsatzpunkt. Dann ersetzt Du die 4 Dateien.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Dlay am 20 Mai 2021, 14:15:26
Also mit den Dateien aus dem 1. Post in diesem Thread werden die GADs angelegt.
Mal sehen ob ich sie auch bespielen kann.

Zitat von: Dlay am 20 Mai 2021, 13:43:47
Also ich habe force durchgeführt und kann keine Besserung erkennen. Ein auf SmartVisu 3.1 eingebundener Plot taucht im fronthem einfach nicht auf. :-(
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: wvhn am 20 Mai 2021, 22:02:07
@Dlay hat das zugehörige Issue auf GitHub heute mit folgendem Kommentar geschlossen:

The problem can be solved by using the fronthem files in the first post here --> https://forum.fhem.de/index.php/topic,86584.0.html. (also dem ersten Post in diesem Thread hier)

Afterwards block any updates of fronthem in fhem with
attr global exclude_from_update 01_fronthem.pm 31_fronthemDevice.pm fronthemEditor.js 99_fronthemUtils.pm

Gruß
Wolfram
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 18 August 2022, 12:58:07
Moin,

vielleicht kann mir mal jemanden helfen, ggf verstehe ich die Einstellungen aber auch nicht ;-)

Also, ich möchte status.log nutzen in meiner Visu. Erstmal nur, um die Stati meiner Fenster + Rollladen zu erfassen. Dazu habe ich testweise ein Rollladen und ein Fensterdevice mit dem Attribut svReadings versehen. Danach werden automatisch Dummy Devices angelegt je Reading.

Beispiel


ZitatsvLog_ASC_ShuttersLastDrive
svLog_Activity
svLog_pct
svLog_state


Das status.log Device in SV soll kumuliert alle Events erfassen, die ich per svReadins definiert habe.

Allerdings scheint es nicht so gedacht zu sein, weil ja im Item Editor nur eine SV Item einem FHEM Device zuordnen kann.

Wie machte ich dass dann oder habe ich einen Denkfehler?

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: wvhn am 18 August 2022, 15:36:59
Moin Kai-Alfonso,

smartVISU kann mit dem Widget status.log Nachrichten darstellen, die das Backend in einem einzigen item im JSON-Format bereit stellt. Wenn Du die Stati mehrerer Devices in einem Log gemeinsam anzeigen willst, musst Du diese vorher in einem item sammeln.

Disclaimer: bis hierhin ist die Antwort gesichert. Den Rest reime ich mir zusammen, ohne wirklich Ahnung von Fronthem zu haben.

Zum Sammeln von Log-Einträgen brauchst Du eine readingsGroup, wie sie im ersten Post dieses Threads beschrieben ist. Zitat:
,, Die Readings werden pro "Readings-Gruppe" in einem Dummy-Device gesammelt. Dieses wird
automatisch angelegt. Das so erzeugte Dummy-Device muss dann im Editor mit dem
status.log-Item verknüpft werden. (converter ist Log)"

Gruß
Wolfram
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 18 August 2022, 16:17:10
Hallo Wolfram,

der fronthem Converter "Log" scheint das irgendwie anders zu machen und rudimentär funktioniert das auch (siehe Anhang)

Aber, so müsste ich pro Reading ein GAD haben und Readings Changes erzeugen in status.plot keinen neuen Eintrag, sondern der Alter wird upgedatet mit dem neuen Status.

attr Rolllade_Arbeitszimmer svReadins  pct ASC_ShuttersLastDrive


Historie löschen
Internals:
   FUUID      62fe13ab-f33f-ce3b-a12c-1f2d3d5157673bf6
   NAME       svLog_ASC_ShuttersLastDrive
   NR         63607
   STATE      send
   TYPE       dummy
   eventCount 9
   READINGS:
     2022-08-18 15:58:55   Rolllade_Arbeitszimmer ASC_ShuttersLastDrive manual
     2022-08-18 15:58:55   state           send
Attributes:
   svEvents   info:alive,ok,online,[O|o]pened,[C|c]onnected,[C|c]losed,[G|g]eschlossen warning:low,[O|o]pen,[O|o]ffen,offline,overload,unreachable error:dead,[D|d]isconnected,unknown,IOerr


PS: ich kann irgendwie keine Bilder im Beitrag inline  posten, deswegen leider als Anhang
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: GammaTwin am 18 August 2022, 22:29:13
Grüße,

es schon so, dass jeder Readingname einen Dummy anlegt. Du kannst also nur Readings mit gleichen Namen an ein status.log in die smartVISU übergeben.

Da macht das notify:
define Log notify .* { Log_SetList($NAME,$EVENT) }

Die Prozedur "Log_SetList" befindet sich in der "99_fronthemUtils.pm". Und dort wird der Dummy wie folgt angelegt:
fhem ("define" . " svLog_" . $list . " dummy");
Wobei $list aus dem userattr "Readins" genommen wird:
split(" ", AttrVal($device, "svReadins", ""));

Man müsste also diese Prozedur anders schreiben. Aber wie gibt man Info mit, was zusammen gehört und was nicht?
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 19 August 2022, 07:05:19
Hi - Grüß Dich.

Danke für Deine Antwort. Ich habe mal mehrere Device mit gleichen Reading getestet und die kommen jetzt auch in Status.log an. Leider aber sind die Einträge nicht chronologisch oder sortierbar. Außerdem wäre es nett, wenn alte Stati nicht gelöscht werden, dann hätte man so eine Art Eventlog.

Das mit den kumulierten Readings - da müsste man entweder die Prozedur umschreiben oder sich mit doif und setreading ggf behelfen.

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: GammaTwin am 19 August 2022, 13:02:04
Grüße,

ich die 3 betroffen Prozeduren in der "99_fronthemUtils.pm" angepasst und als:

Log2 ergänzt
sub Log2(@)
{
  my ($param) = @_;
  my $cmd = $param->{cmd};
  my $gad = $param->{gad};
  my $gadval = $param->{gadval};

  my $device = $param->{device};
  my $reading = $param->{reading};
  my $event = $param->{event};
 
  my @args = @{$param->{args}};
  my $cache = $param->{cache};

  if ($param->{cmd} eq 'get')
  {
    $param->{cmd} = 'send';
  }
  if ($param->{cmd} eq 'log')
  {
    $param->{cmd} = 'send';
  }
  if ($param->{cmd} eq 'send')
  {
use Encode qw(decode encode);
my $list = main::Log_GetList2($device);
$list = encode("utf8", '[' . $list . ']');
    $param->{gad} = $gad;
$param->{gadval} = main::fronthem_decodejson($list);
$param->{gads} = [];

    return undef;
  }
  elsif ($param->{cmd} eq 'rcv')
  {
$param->{result} = $gadval;
$param->{results} = [];
    return undef;
  }
  elsif ($param->{cmd} eq '?')
  {
    return 'usage: log';
  }
  return undef;
}


Log_GetList2
sub
Log_GetList2($)
{
my ($name) = @_;
my $list = "";
my $level = "info"; # info = green, error = red,  warning = yellow (levels for smartvisu status.log)

my @info = split(" ", AttrVal($name, "svRegex", ""));
my @state = split(" ", AttrVal($name, "svEvents", ""));

my $i = 1;
foreach my $key (sort { $b cmp $a } keys %{$defs{$name}{READINGS}})
{
my $reading = $defs{$name}{READINGS}{$key}{VAL};

foreach (@state) {
if ($_ =~ qr/(.*):(.+)/p) {
my $newLevel = $1;
my $states = $2;
$states =~ s/,/|/g;

if($reading =~ /.*:?\s?($states)/)
{
$level = $newLevel;

foreach (@info) {
if ($_ =~ qr/(.*):(.+)/p) {
my $a = $1;
my $b = $2;
$reading =~ s/$a/$b/g;
}
}
}
}
}

my $timestring = $defs{$name}{READINGS}{$key}{TIME};

if ($key =~ qr/(.*)_(.+)/p) {
$key = $1;
} else {
#sollte nur bei state auftreten
}
my $device = AttrVal( $key , "alias", $key );
$timestring =~ s/\s/T/g; # Compatibility for older Browser "2018-03-10T18:34:53"
$list .= '{"message":"'. $device . " - " . $reading . '","time":"' . $timestring . '","level":"' . $level . '"}' . ($i == keys(%{$defs{$name}{READINGS}}) ? "" : ",") if ($key ne "state");

$i++;
}
return $list;
}


Log_SetList2
sub
Log_SetList2($$)
{
my ($device, $event) = @_;
my $reading = "";
    my $message = "";

if ($event =~ qr/(.*?):\s+(.*)/p) {
$reading = $1;
        $message = $2;
    } else {
        $reading = "state";
        $message = $event;
    }

my @info = split(" ", AttrVal($device, "svReadins", ""));
my $list = "";
my $newReading = "";
my $collector = "";
foreach (@info) {
$list = "";
$newReading = "";
$collector = "";

if ($_ =~ qr/(.*?):(.+)/p) {
$list = $1;
$newReading = $2;
if ($newReading =~ qr/(.*?):(.+)/p) {
$newReading = $list . " " . $1;
$list = $2;
$collector = $list
}
} else {
$list = $_;
}

if ($list eq $reading or $list eq $collector)
{
fhem ("set" . " svLog_" . $list . " block");

if ($newReading ne "") {
$reading = $newReading;
}

if(!$defs{"svLog_" . $list}) {
fhem ("define" . " svLog_" . $list . " dummy");
fhem("attr" . " svLog_" . $list . " svEvents info:alive,ok,online,[O|o]pened,[C|c]onnected,[C|c]losed,[G|g]eschlossen warning:low,[O|o]pen,[O|o]ffen,offline,overload,unreachable error:dead,[D|d]isconnected,unknown,IOerr");
}

my @state = split(" ", AttrVal("svLog_" . $list, "svEvents", ""));
foreach (@state) {
if ($_ =~ qr/(.*):(.+)/p) {
my $z = $2;
$z =~ s/,/|/g;

if($reading eq "state") {
fhem ("setreading" . " svLog_" . $list . " " . $device . "_" . $reading . " " . $message);
} elsif ($message =~ /.*:?\s?($z)/) {
fhem ("setreading" . " svLog_" . $list . " " . $device . "_" . $reading . " " . $reading . " " . $1);
} else {
fhem ("setreading" . " svLog_" . $list . " " . $device . "_" . $reading . " " . $message);
}
}
}
fhem ("set" . " svLog_" . $list . " send");
}
}
}


Du kannst alle 3 Prozeduren an die "99_fronthemUtils.pm" amhängen.

Dann musst Du den Conveter auf Log2 stellen.

Und das Wichtigste: Das Attr "svReadins" in den Devices wie folgt anpassen:
attr <device> svReadins <Variable1>:<Variable2>:<Veriabel3>
Variabel1: bleibt wie es ist, das anzuzeigende Reading
Variabel2: bleibt wie es ist, ein Zusatz, kann leer sein
Variable3: !Neu! ein Begriff, der den Dummy bildet unter dem die Readings gesammelt werden sollen. Optional, aber ohne bleibt alles beim alten :)

Probiere es mal aus.

Nachtrag: Das notify ändern
defmod Log notify .* { Log_SetList2($NAME,$EVENT) }
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 19 August 2022, 13:37:59
Hi,

erstmal vielen Dank das Du dich dem Thema angenommen hast.

Ich hab mal die 3 Sachen in die 99_fronthemUtils eingetragen.

Attribut ist wie folgt bei allen Rollladen und Fenster gesetzt

svReadins  pct:level:xyFenster <- Rollladen
svReadins state:Status:xyFenster <- Fenster

Wenn ich das richtig verstehe, wird jetzt ein Dummy xyFenster gebilder mit entsprechenden Readings, welche ich mit Log2 im Converter abfragen kann?

Es wird aber kein Dummy erstellt - evtl noch ein Fehler in der 99_fronthemUtils?







Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: GammaTwin am 19 August 2022, 16:21:59
Genau so.

Ich hatte noch etwas vergessen.  ::)

das notify muss geändert werden
defmod Log notify .* { Log_SetList2($NAME,$EVENT) }

Der Dummy wird dann "svLog_xyFenster" heißen.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 19 August 2022, 20:23:53
Zitat von: GammaTwin am 19 August 2022, 16:21:59
Genau so.

Ich hatte noch etwas vergessen.  ::)

das notify muss geändert werden
defmod Log notify .* { Log_SetList2($NAME,$EVENT) }

Der Dummy wird dann "svLog_xyFenster" heißen.

Alles klar - danke  ;D

Das Dummy wird aber immer noch nicht angelegt, stattdessen steht im Log immer

2022.08.19 20:22:46.269 1: ERROR evaluating my $EVENT=   $evalSpecials->{'%EVENT'};my $EVTPART0=   $evalSpecials->{'%EVTPART0'};my $EVTPART1=   $evalSpecials->{'%EVTPART1'};my $NAME=   $evalSpecials->{'%NAME'};my $SELF=   $evalSpecials->{'%SELF'};my $TYPE=   $evalSpecials->{'%TYPE'};{ Log_SetList2($NAME,$EVENT) }: Undefined subroutine &main::Log_SetList2 called at (eval 1721637) line 1.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 19 August 2022, 20:37:01
Beim speichern über den Esitor bekomme ich auch folgende Fehlermeldung/Warnung

ZitatERROR:
Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 887. Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 889. Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 912. Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 921. Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 971.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: GammaTwin am 19 August 2022, 20:46:06
Kannst Du 3 Prozeduren mal immer direkt hinter die Original setzen.

Also, z.B. Log_SetList2 hinter Log_SetList

Ich bekomme die selbe Fehlermeldung, wenn ich die Prozeduren ans Ende der Datei setze
Global symbol "%defs" requires explicit package name (did you forget to declare "my %defs"?) at ./FHEM/99_fronthemUtils.pm line 1021.
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 19 August 2022, 21:54:01
Passt, jetzt geht es.

Wieso bekomme ich beim Fenster_Arbeitszimmer statt des states tilted den state Status 2 angezeigt?

Hier ein List des Device


Historie löschen
Internals:
   DEF        A9B8C7
   FUUID      5f48c24e-f33f-ce3b-d877-e070fc9a57a06f61
   FVERSION   10_CUL_HM.pm:0.259770/2022-04-18
   HMUART_EG_MSGCNT 8
   HMUART_EG_RAWMSG 0500004504A241A9B8C70B98D001026417
   HMUART_EG_RSSI -69
   HMUART_EG_TIME 2022-08-19 21:47:42
   HMUART_OG_MSGCNT 8
   HMUART_OG_RAWMSG 0511002C04A241A9B8C70B98D001026417
   HMUART_OG_RSSI -44
   HMUART_OG_TIME 2022-08-19 21:47:42
   IODev      HMUART_OG
   LASTInputDev HMUART_OG
   MSGCNT     16
   NAME       Fenster_Arbeitszimmer
   NR         236
   NTFY_ORDER 48-Fenster_Arbeitszimmer
   STATE      tilted
   TYPE       CUL_HM
   chanNo     01
   disableNotifyFn 1
   eventCount 11
   lastMsg    No:04 - t:41 s:A9B8C7 d:0B98D0 01026417
   protCmdPend 3 CMDs_pending
   protLastRcv 2022-08-19 21:47:42
   protRcv    8 last_at:2022-08-19 21:47:42
   protResnd  1 last_at:2022-08-19 21:43:37
   protSnd    6 last_at:2022-08-19 21:43:32
   protState  CMDs_pending
   rssi_at_HMUART_EG cnt:8 min:-75 max:-68 avg:-71.49 lst:-69
   rssi_at_HMUART_OG cnt:8 min:-53 max:-38 avg:-42.5 lst:-44
   READINGS:
     2022-08-19 13:22:52   Activity        alive
     2021-06-22 15:41:12   D-firmware      1.0
     2021-06-22 15:41:12   D-serialNr      papaa9b8c7
     2022-08-19 21:43:32   IODev           HMUART_OG
     2022-08-17 13:46:00   PairedTo        0x0B98D0
     2022-08-19 21:47:42   batVoltage      2.3
     2022-08-19 21:47:42   battery         ok
     2022-08-19 21:43:32   cfgState        updating
     2022-08-19 21:43:37   commState       CMDs_pending
     2022-08-19 21:47:42   contact         tilted (to VCCU)
     2022-08-19 19:51:14   powerOn         2022-08-19 19:51:14
     2022-08-19 19:51:14   recentStateType info
     2022-08-19 19:51:14   sabotageError   off
     2022-08-19 21:47:42   state           tilted
     2022-08-19 21:47:42   trigger_cnt     2
     RegL_00.:
       VAL       
   cmdStack:
     ++A0010B98D0A9B8C700040000000000
     ##A0010B98D0A9B8C701040000000001
     ##A0010B98D0A9B8C70103
   helper:
     HM_CMDNR   4
     PONtest    0
     cSnd       ,010B98D0A9B8C700040000000000
     getCfgList all
     getCfgListNo ,4
     lastMsgTm  1660938462.10249
     mId        F209
     peerFriend peerAct,peerVirt
     peerIDsState complete
     peerOpt    4:custom
     regLst     0,1,4p
     rxType     20
     supp_Pair_Rep 0
     ack:
     cmds:
       TmplKey    :no:1660907882.24125
       TmplTs     1660907882.24125
       cmdKey     1:1:0::Fenster_Arbeitszimmer:F209:01:
       cmdLst:
         assignHmKey noArg
         clear      [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
         deviceRename -newName-
         fwUpdate   -filename- [-bootTime-]
         getConfig  noArg
         getDevInfo noArg
         getRegRaw  (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
         peerBulk   -peer1,peer2,...- [({set}|unset)]
         peerChan   0 -actChn- [({single})] [({set}|unset)] [actor|remote|both]
         raw        -data- [...]
         regBulk    -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
         regSet     [(prep|{exec})] -regName- -value- [-peerChn-]
         reset      noArg
         sign       [(on|{off})]
         tplDel     -tplDel-
         tplSet_0   -tplChan-
         trgEventL  -peer- -condition-
         trgEventS  -peer- -condition-
         trgPressL  [(-peer-|{all})]
         trgPressS  [(-peer-|{all})]
         unpair     noArg
       lst:
         condition  slider,0,1,255
         peer       
         peerOpt   
         tplChan   
         tplDel     
         tplPeer   
       rtrvLst:
         cmdList    [({short}|long)]
         deviceInfo [({short}|long)]
         list       [({normal}|full)]
         param      -param-
         reg        -addr- -list- [-peerChn-]
         regList    noArg
         regTable   noArg
         regVal     -addr- -list- [-peerChn-]
         saveConfig [-filename-]
         tplInfo    noArg
     expert:
       def        0
       det        0
       raw        1
       tpl        0
     io:
       flgs       2
       newChn     +A9B8C7,02,00,00
       nextSend   1660938462.39892
       rxt        2
       vccu       VCCU
       p:
         A9B8C7
         00
         00
         00
       prefIO:
     mRssi:
       mNo        04
       io:
         HMUART_EG:
           -69
           -69
         HMUART_OG:
           -36
           -36
     peerIDsH:
       00000000   broadcast
     prt:
       bErr       0
       sProc      2
       sleeping   0
       wuReSent   2
     q:
       qReqConf   
       qReqStat   
     role:
       chn        1
       dev        1
     rpt:
       IO         HMUART_EG
       flg        A
       ts         1660938462.10249
       ack:
         HASH(0x611f758)
         0480020B98D0A9B8C700
     rssi:
       at_HMUART_EG:
         avg        -71.5
         cnt        8
         lst        -69
         max        -68
         min        -75
       at_HMUART_OG:
         avg        -42.5
         cnt        8
         lst        -44
         max        -38
         min        -53
     shadowReg:
     tmpl:
Attributes:
   IOgrp      VCCU
   actCycle   028:00
   actStatus  alive
   alias      Fenster Arbeitszimmer
   autoReadReg 4_reqStatus
   devStateIcon closed:fts_window_1w tilted:fts_window_1w_tilt open:fts_window_1w_open
   expert     rawReg
   firmware   1.0
   genericDeviceType ContactSensor
   group      Fenster Drehgriff Sensor
   homebridgeMapping ContactSensorState=state,values=closed:CONTACT_DETECTED;open:CONTACT_NOT_DETECTED
   icon       hm-sec-win
   model      HB-Sec-RHS-3
   peerIDs    00000000
   room       Fenster,HomeMatic,Homekit
   serialNr   papaa9b8c7
   svReadins  state:Status:xyFenster


und eine Frage vielleicht noch an @wvhn

Hallo Wolfram,

kann man status.log irgendwie sortiere nach Eingang des Events? Und kann man alte Events des selben GAD/Device nicht in der Liste lassen und einen neuen Status oben einfügen? Dann wäre es eine tolle EventLog Basis für die Homeautomation.

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: wvhn am 20 August 2022, 09:44:05
Moin Kai-Alfonso,

Eine Sortierfunktion kann man sicher im fhem-Treiber von smartVISU einbauen. Lieber wäre es mir, wenn die Einträge schon sortiert geliefert würden. Ein Eingriff in den Treiber bedeutet immer das Risiko, für andere Anwender Funktionen zu ändern oder sogar abzuschießen. Ich mache mir dazu aber mal Gedanken.

Die Historie muss IMHO im Backend gesammelt werden, da dieses immer aktiv ist. Die Visu läuft ja auf dem Client und der kann eben auch mal im Standby oder ausgeschaltet sein. Nach heutigem Konzept von smartVISU wäre es denkbar, den Treiber so umzubauen, dass er die Einträge sammelt, solange die Seite mit dem Log-Widget angezeigt wird.  Sobald man auf eine andere Seite wechselt, ist das Log-item jedoch nicht mehr abonniert. Das zu ändern, wäre ein größerer Umbau.

Gruß
Wolfram

Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 20 August 2022, 10:31:39
Moin Wolfram,

das habe ich mir schon gedacht - Aufbereitung im Backend und Anzeige in der Visu wäre das beste. Eigentlich hat man mit Filelog (welches im Treiber ja schon für PlotFiles existiert) ja schon das fhemseitige richtige Werkzeug an der Hand. Dort kann ich Events chronologisch von definierten Files reinschreiben lassen. Man müsste dann status.log nur umschreiben, das er auch (einstellbar) x Zeilen einen Logfiles parst und darstelle kann. Dann wären die Daten im Backend und man müsste smartvisuseitig kein datahandling machen
Titel: Antw:fronthem + Plots + status.log für smartVISU 2.9
Beitrag von: Kai-Alfonso am 24 August 2022, 10:58:40
bin ich der einzige, der status.log nutzt oder ist das noch nie jemanden aufgefallen ;-)