Autor Thema: SmartVISU Widget für Plots mit DbLog aus FHEM  (Gelesen 18967 mal)

Offline Spielmann

  • Jr. Member
  • **
  • Beiträge: 81
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #105 am: 01 Dezember 2016, 23:41:54 »
Danke raman,
'step': 'left', war die Lösung. Das gibt mir gleich wieder Motivation an SmartVisu weiter zu basteln.

Hier mein Ergebnis:
{% import "widget_dbplot.html" as dbPlot %}
{% set plotOptions = [
{
'update_trigger_gad': 'og.bath.heating',
'device': 'HM_Wandthermostat_Bad',
'reading': 'Wandthermostat_Bad.1.TEMPERATURE',
'config': {
'name': 'Temperatur',
'type': 'line',
'unit': '°C',
}
},
{
'update_trigger_gad': 'og.bath.heating.set',
'device': 'HM_Wandthermostat_Bad',
'reading': 'Wandthermostat_Bad.2.SET_TEMPERATURE',
'config': {
'name': 'Soll Temp',
'type': 'area',
'fillOpacity': '0.3',
'step': 'left',
'unit': '°C',
}
},
{
'update_trigger_gad': 'og.bath.humidity',
'device': 'HM_Wandthermostat_Bad',
'reading': 'Wandthermostat_Bad.1.HUMIDITY',
'config': {
'name': 'Feuchtigkeit',
'type': 'spline',
'color': '#1a8cff',
'unit': '% rH',
'yAxis': 1,
}
}
]%}

{% set yAxisOptions = [
{
title: {
text: 'Temperatur',
},
labels: {
format: '{value} °C' ,
},
opposite: true
},
{
title: {
text: 'Feuchtigkeit',
},
labels: {
format: '{value}%',
}
}
]%}

{{ dbPlot.linePlot('plot_klima_bad', 'Klima', 4320, '', '', '', plotOptions, yAxisOptions, '', 300) }}

FHEM mit Raspi
CCU2 mit diversen Komponenten und HMCCU
Siemens LOGO8 mit S7
1Wire Basteleien
Diesel-Tankstelle mit iButton, fhem, Arduino  (eine ewige Baustelle)

Offline eldi0s

  • New Member
  • *
  • Beiträge: 3
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #106 am: 18 Dezember 2016, 11:33:18 »
Hi,

ich habe leider nach wie vor Skalierungsprobleme mit den Plots, nicht immer, aber doch sehr häufig. Meistens auf dem iPhone, aber auch ab und an lokal am Rechner.
Das Problem ist dann, dass der Plot quasi aus seiner Box herausläuft. Hier ein Screenshot:

Falsch skaliert

Auf dem iPhone muss ich dann das Telefon einmal ins Querformat drehen und wieder zurück, dann stimmt es und sieht so aus:

Richtig skaliert

Am Rechner lässt es sich durch einen Reload der Seite lösen.

Eingebettet ist mein Plot so:

    <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>Temperaturverlauf</h3>
    {{ tplDbPlot.heatingPlot('dbplot_living', 'Wohnzimmer')}}
    </div>
    </div>
    </div>

Und das Template sieht so aus:
{% macro heatingPlot(id, room, height, colorMeasured, colorDesired, colorValve) %}
{% import "widget_dbplot.html" as dbPlot %}
{{ dbPlot.linePlot('id'~id~'heatingPlot', '', '1440', '300', '', '',
[
{'update_trigger_gad': room~'_RTR_Clima.valve',         'device': room~'.Heizkoerperthermostat.Clima', 'reading': 'ValvePosition', 'config': {'name': 'Ventil',           'unit':'%', 'yAxis':1, 'type': 'area',   'color': colorValve|default('#828282') }},
{'update_trigger_gad': room~'_RTR_Clima.desired-temp' , 'device': room~'.Wandthermostat.Climate',      'reading': 'desired-temp',  'config': {'name': 'Soll Temp.',       'unit':'°',            'type': 'line',   'color': colorDesired|default('rgba(201,134,44,1)') }},
{'update_trigger_gad': room~'_RTR_Clima.measured-temp', 'device': room~'.Wandthermostat.Climate',      'reading': 'measured-temp', 'config': {'name': 'Ist Temp.',        'unit':'°',            'type': 'spline', 'color': colorMeasured|default('#FFC825') }}
],
[
{title: {text: '',}, labels: {format: '{value} °',}, opposite: true, max: 30, min: 0},
{title: {text: '',}, labels: {format: '{value} %',}, max: 100, min: 0}
],
{ align: 'right', verticalAlign: 'top', layout: 'horizontal', x: -35 },
height|default(300)) }}
{% endmacro %}

Jemand eine Idee??

Hallo Zusammen,

bin heute auf diesen Thread gestoßen. Habe exakt das selbe Problem wie Joker.
Egal was ich probiere, beim ersten Aufruf der Page (Raspi,iPhone,Windows PC) skaliert
er mir die Plotlinien aus dem Block heraus. Ein Reload der Page behebt das Problem.

Hat echt niemand eine Idee dazu? Habe ien KNX System mit fronthem. Hier mein 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</h3>
{% import "widget_dbplot.html" as dbPlot %}
{% set plotOptions =
 [
 {
        'update_trigger_gad': 'WOG_Komfort_Temp_Trig',
        'device': 'WOG.Soll.Temp',
        'reading': 'state',
        'config': {
            'name': 'Soll Temp.',
            'type': 'spline'
}
    },
    {
        'update_trigger_gad': 'WOG_Ist_Temp_Trig',
        'device': 'WOG.Ist.Temp',
        'reading': 'state',
        'config': {
            'name': 'Ist Temp.',
            'type': 'spline'
        }
    }
]%}
{{ dbPlot.linePlot('HeatingPlot', 'Temperatures', '720', '', 'Temperaturen', 'Grad', plotOptions, '', '', 230) }}
</div>

</div>
</div>

Offline Hanky

  • New Member
  • *
  • Beiträge: 14
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #107 am: 19 Dezember 2016, 23:23:07 »
Hallo,

hatte auch das Problem mit den Plots die nicht in ihrem Bereich bleiben wollten. Hatte dann in den Highcharts Bug reports was dazu gelesen (finde den Eintrag leider nicht mehr). Problem ist wohl dass der Plot aufbau parallel zum restlichen Seitenaufbau läuft, und der Plot beim ersten Laden schon vor der Seite fertig ist. Die Seite gibt dann wohl nicht ihre "Abmessungen" korrekt an den Plot weiter.

Da ich keine java Script Kenntnisse habe, habe ich mir mit einem workaround im php Skript geholfen. Hier habe ich einfach ein Sleep von einer Sekunde eingebaut. Damit bauen die Plots zwar minimal verzögert auf, skalieren dann aber richtig.

Eingebaut habe ich das sleep an folgender Stelle im widget_dbplot.php (Bei mir Zeile 122):

// Close DB Connection
unset($db);
sleep(1); //<-- Hier Sleep eingefügt, damit Plots erst nach der Seite aufbauen.

// Return the array and encode to JSON
echo json_encode($returnArray);


evtl. kann ja jemand von den Profis mit den Informationen eine schönere Lösung draus machen.

Grüße

Hanky

Offline dev0

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2898
    • _.:|:._
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #108 am: 20 Dezember 2016, 04:25:12 »
Welche smartVISU/Highcharts Version verwendest Du?

Offline eldi0s

  • New Member
  • *
  • Beiträge: 3
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #109 am: 20 Dezember 2016, 12:15:31 »
Hallo,

danke erstmal für die Info Hanky. Werde das heute Abend mal ausprobieren ;-) Die Sache hatte mir die ganze Motivation
am weiterarbeiten genommen.

@dev0
Ich verwende die Version welche bei smartvisu 2.8 mit dabei war. (Highcharts JS v4.2.6)

Grüße
eldi

Offline Hanky

  • New Member
  • *
  • Beiträge: 14
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #110 am: 20 Dezember 2016, 20:01:15 »
Hallo,

bei mir ist es Highcharts JS v4.2.7 (2016-09-21) wobei ich mich gerade nicht erinnern kann das manuell aktualisiert zu haben...

Edit: Ist doch 4.2.6. Hatte Testweise mal 4.2.7 drüber kopiert. Lief dann aber leider nicht. Danach habe ich wieder 4.2.6 in den Ordner kopiert. Alles was bei 4.2.7 dabei war, was bei 4.2.6 noch nicht vorhanden war existiert noch von 4.2.7... Muss ich noch mal sauber aufräumen.

Grüße

Hanky
« Letzte Änderung: 20 Dezember 2016, 20:08:00 von Hanky »

Offline eldi0s

  • New Member
  • *
  • Beiträge: 3
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #111 am: 21 Dezember 2016, 17:57:30 »
Danke Hanky  :) ;)

Plot wird jetzt einwandfrei dargestellt und die leichte Zeitverzögerung
find ich auch nicht schlimm. Im Gegenteil, sieht sogar echt gut aus wenn
der Plot sich "animiert" von links nach Rechts aufbaut während der Block
schon da ist.

Danke nochmal  8)

Grüße,
eldi

Offline Joker

  • Full Member
  • ***
  • Beiträge: 239
    • Mein Smarthome Blog
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #112 am: 21 Dezember 2016, 18:54:33 »
Bei mir ist es mit der Änderung auch gelöst.

Irgendwelche Nachteile (z.B. Blockierungen in fhem etc) hat das nicht oder?

Offline ichichich

  • New Member
  • *
  • Beiträge: 8
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #113 am: 15 Februar 2017, 18:44:38 »
Auch bei mir hat es auf allen Endgeräten (Handy, Tab) geholfen.

Wollte schon smartVisu ersetzen!

Grüße Uwe

Offline Thargor

  • Full Member
  • ***
  • Beiträge: 139
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #114 am: 22 März 2017, 22:43:11 »
Hallo zusammen,

ich habe jetzt auch mal versucht das Widget einzubinden. Nach dem installieren der sqlite extensions und der Erweiterung des Basedirs komme ich nun immerhin schonmal dazu, dass Smartvisu mir anzeigt: [dbPlot.widget]: SQLSTATE[HY000]: General error: 14 unable to open database file
Wenn ich die Datenbankdatei kopiere (mit den gleichen Rechte wie die Orginaldate) und mit dem Widget auf die Kopie zugreife, dann klappt der Zugriff. Stelle ich wieder zurück auf die Datei auf die auch FHEM zugreift, bekomme ich die obige Meldung.
Hat mir jemand eine Idee woran das liegen kann? Zugriffskonflikte? Zuviele geöffnete Datenbankverbindungen (aber eigentlich greift ja nur FHEM noch darauf zu).

Vielen Dank!

Offline Fistandantilus

  • Full Member
  • ***
  • Beiträge: 119
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #115 am: 11 August 2017, 23:51:27 »
Hi,

ich habe gerade das Widget getestet - super, vielen Dank für die Arbeit. Ein Problem habe ich allerdings und hoffe Ihr könnt helfen.
Ich habe 2 Charts. Jedes für sich funktioniert problemlos. Wenn ich beide zusammen auf einer Seite anzeigen möchte, werden im Block des ersten Charts die Werte vom 2. angezeigt und das Zweite fehlt ganz. Habt Ihr eine Idee? Hier der Code:

  <div class="block" style="width:100%">
    <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>Stromzähler</h3>
            {% import "widget_dbplot.html" as dbPlot %}
           

            {% set plotOptions =
             [
              {
                'update_trigger_gad': 'HourPower',
                'device': 'HourPower',
                'reading': 'state',
                'config': {
                  'name': 'Verbrauch',
                  'type': 'spline'
                }
              }
            ]%}
            {{ dbPlot.linePlot('Stromzähler', 'Verbrauch', '1440', '30', 'Stromverbrauch/Stunde', 'W', plotOptions, '', '', 300) }}
      </div>
    </div>
  </div>

  <div class="preblock">
  </div>

  <div class="block" style="width:100%">
    <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>Stromzähler2</h3>
            {% import "widget_dbplot.html" as dbPlot2 %}
            {% set plotOptions2 =
             [
              {
                'update_trigger_gad': 'DailyPower',
                'device': 'DailyPower',
                'reading': 'state',
                'config': {
                  'name': 'Verbrauch2',
                  'type': 'spline'
                }
              }
            ]%}
            {{ dbPlot2.linePlot('Stromzähler', 'Verbrauch2', '10000', '30', 'Stromverbrauch/Tag', 'W', plotOptions2, '', '', 300) }}
      </div>
    </div>
  </div>

VG
F.
Raspberry Pi 2 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry als Alarmanlage

Offline herrmannj

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4196
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #116 am: 12 August 2017, 07:33:21 »
Die id müssen unterschiedlich sein

Vg
Jörg
smartVisu mit fronthem, einiges an HM, RFXTRX, Oregon, CUL, Homeeasy, ganz viele LED + Diverse

Offline Fistandantilus

  • Full Member
  • ***
  • Beiträge: 119
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #117 am: 12 August 2017, 19:58:05 »
Oh Mann, da hab ich schon überall eine 2 davor geschrieben und das hab ich übersehen  ::) War wohl schon zu spät gestern. Auf jeden Fall danke dafür, jetzt funktioniert es bestens!
Raspberry Pi 2 + FHEM + Smartvisu/Fronthem, CUL, HMLAN, Enocean USB300, Eltako (FAM14, FSB14, FSR,FTS14EM,Multisensor,...) - MySQL DB + 2.Raspberry als Alarmanlage

Offline avolkmer

  • New Member
  • *
  • Beiträge: 39
Antw:SmartVISU Widget für Plots mit DbLog aus FHEM
« Antwort #118 am: 30 August 2017, 22:53:47 »
Hallo,

gibt es eine Möglichkeit die Werte aus dem dbLog für die Anzeige z.B. durch 100 zu rechnen?

z.B. Datenbank-Wert in der Log Tabelle 30 - Wert für den Chart 0,3

Vielen Dank für die Hilfe!

Alex