SmartVISU Widget für Plots mit DbLog aus FHEM

Begonnen von ToGe88, 28 Oktober 2015, 13:02:47

Vorheriges Thema - Nächstes Thema

FlorianZ

Hallo zusammen,

Ich komme momentan nicht weiter mit dem Plot.

- widget_dbplot.html und widget_dbplot.php liegen im Verzeichnis /smartVISU/widgets

- visu.js in meinen pages

- DBLog in Fhem ist mit sqlite eingerichtet und loggt in die Datenbank (anbei Screenshot)

- dbplot ist wie folgt eingebunden:

{% import "widget_dbplot.html" as dbPlot %}

<div class="block2">
<div class="ui-bar-b">
Temperaturverlauf
</div>
<div class="ui-fixed ui-body-a">

{% set plotOptions =
[
{
'update_trigger_gad': 'Multisensor_Schlafzimmer_temp',
'device': 'Multisensor_Schlafzimmer',
'reading': 'temperature',
'config': {
'name': 'Temperature',
'type': 'spline'
  }
}
]
%}
{{ dbPlot.linePlot('TempPlot', 'temperature', '', '', 'temperature', '°C', plotOptions, '', '', 300) }}
</div>
</div>



- gad ist im fronthem angelegt

Leider wird in smartVisu nichts angezeigt.
In der Konsole bekomme ich für POST widget_dbplot.php : 500 Internal Server Error
Unter Antwort steht: SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data

An welcher Stelle könnte es hängen?

vg
Florian






dev0

Der Aufruf sieht richtig aus, die plotOptions auch.
Sind die widget_dbplot.* Dateien im smartvisu/widget Ordner OK?

FlorianZ

Die Dateien sind vollständig. Gerade nochmal überprüft.
Mir ist aufgefallen, dass in meiner Datenbank bei den Zwave-Sensoren
unter Reading die Einheit "C"  mitgeloggt wird.Könnte das Probleme verursachen?

dev0

Nee, das wird es auch nicht sein, Einheiten werden ignoriert.
Bei der Fehlermeldung hatte ich zuerst auf einen Typo in den plotOptions getippt, aber die sehen mMn korrekt aus.

dev0

Zitat von: FlorianZ am 01 Dezember 2015, 13:00:37
In der Konsole bekomme ich für POST widget_dbplot.php : 500 Internal Server Error
Ist im webserver log vielleicht mehr zu sehen? php logging hoch drehen. Schau dazu mal in die php.ini.

FlorianZ

Hier ein Teil des Logs des Webservers:

2015-11-30 12:23:44: (mod_fastcgi.c.2673) FastCGI-stderr: #0 /var/www/smartVISU/widgets/widget_dbplot.php(80): PDO->__construct('sqlite:/opt/fhe...')
2015-11-30 12:23:44: (mod_fastcgi.c.2673) FastCGI-stderr: #1 {main}
2015-11-30 12:23:44: (mod_fastcgi.c.2673) FastCGI-stderr:   thrown in /var/www/smartVISU/widgets/widget_dbplot.php on line 80
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr: PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in /var/www/smartVISU/widgets/widget_dbplot.php:80
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr: Stack trace:
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr: #0 /var/www/smartVISU/widgets/widget_dbplot.php(80): PDO->__construct('sqlite:/opt/fhe...')
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr: #1 {main}
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr:   thrown in /var/www/smartVISU/widgets/widget_dbplot.php on line 80
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr: PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in /var/www/smartVISU/widgets/widget_dbplot.php:80
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr: Stack trace:
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr: #0 /var/www/smartVISU/widgets/widget_dbplot.php(80): PDO->__construct('sqlite:/opt/fhe...')
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr: #1 {main}
2015-11-30 12:23:47: (mod_fastcgi.c.2673) FastCGI-stderr:   thrown in /var/www/smartVISU/widgets/widget_dbplot.php on line 80
2015-11-30 12:24:24: (mod_fastcgi.c.2673) FastCGI-stderr: PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in /var/www/smartVISU/widgets/widget_dbplot.php:80
2015-11-30 12:24:24: (mod_fastcgi.c.2673) FastCGI-stderr: Stack trace:
2015-11-30 12:24:24: (mod_fastcgi.c.2673) FastCGI-stderr: #0 /var/www/smartVISU/widgets/widget_dbplot.php(80): PDO->__construct('sqlite:/opt/fhe...')
2015-11-30 12:24:24: (mod_fastcgi.c.2673) FastCGI-stderr: #1 {main}
2015-11-30 12:24:24: (mod_fastcgi.c.2673) FastCGI-stderr:   thrown in /var/www/smartVISU/widgets/widget_dbplot.php on line 80
2015-11-30 12:24:58: (mod_fastcgi.c.2673) FastCGI-stderr: PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in /var/www/smartVISU/widgets/widget_dbplot.php:80
2015-11-30 12:24:58: (mod_fastcgi.c.2673) FastCGI-stderr: Stack trace:
2015-11-30 12:24:58: (mod_fastcgi.c.2673) FastCGI-stderr: #0 /var/www/smartVISU/widgets/widget_dbplot.php(80): PDO->__construct('sqlite:/opt/fhe...')
2015-11-30 12:24:58: (mod_fastcgi.c.2673) FastCGI-stderr: #1 {main}
2015-11-30 12:24:58: (mod_fastcgi.c.2673) FastCGI-stderr:   thrown in /var/www/smartVISU/widgets/widget_dbplot.php on line 80
2015-11-30 12:24:58: (mod_fastcgi.c.2673) FastCGI-stderr: PHP Fatal error:  Uncaught exception 'PDOException' with message 'could not find driver' in /var/www/smartVISU/widgets/widget_dbplot.php:80



dev0

Ich kenne sqlite nicht, aber ich denke dir fehlt die Anbindung. php-sqlite hast du installiert? Sonst musst du im Netz mal nach den Fehlermeldungen suchen.

FlorianZ

Super!!
Das war der richtige Tip.
Mir hat php5-sqlite gefehlt.
Vielen Dank

vg
Florian

drdownload

funktioniert wunderbar. danke! macht gleich was her am tablet.
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

drdownload

Den angezeigten Zeitraum steuere ich derzeit ausschließlich über die eingelesenen Werte oder?
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

dev0

README.md:

* @param timeRange timerange that will be displayed in the chart | default: 60
* @param maxRows max row count that will be selected from the database | default: 300

Der Zeitraum wird über timeRange gesteuert, es müssen natürlich genug Daten eingelesen werden können (maxRows).

drdownload

Na da habe ich den Wald vor lauter Bäumen nciht gesehen ;)

Aber gleich über etwas anderes gestolpert:
Hier bekomme ich immer den Fehler 18 von highcharts

{% import "widget_dbplot.html" as dbPlot %}

{% set plotOptions = [
{
        'update_trigger_gad': 'trigger.plot.thermostat.heizung.wohnzimmer',
        'device': 'thermostat.heizung.wohnzimmer',
        'reading': 'desired',
        'config': {
            'name': 'Desired Temp.',
            'type': 'line',
    'dashStyle': 'Dash'
    }},
    {
        'update_trigger_gad': 'trigger2.plot.thermostat.heizung.wohnzimmer',
        'device': 'thermostat.heizung.wohnzimmer',
        'reading': 'measured',
        'config': {
            'name': 'Temperature',
            'type': 'line'
        }
    },
    {
        'update_trigger_gad': 'trigger3.plot.thermostat.heizung.wohnzimmer',
        'device': 'thermostat.heizung.wohnzimmer',
        'reading': 'actuation',
        'config': {
            'name': 'Ventil',
            'type': 'line',
'yAxis':1
        }
    }
]%}
{% set yAxisOptions = [
    {
        title: {
            text: 'Response Time',
        },
        labels: {
            format: '{value} ms',
        },
        opposite: true
    },
    {
        title: {
            text: 'Available Bandwidth',
        },
        labels: {
            format: '{value} MBit',
        }
    }
]%}

{{ dbPlot.linePlot('HeatingPlot', 'Temperatures', '', '', '', '', plotOptions, 'yAxisOptions', '', 300) }}
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

dev0

Zitat von: drdownload am 13 Januar 2016, 22:12:54
Hier bekomme ich immer den Fehler 18 von highcharts
Und was bedeutet Fehlercode 18?

drdownload

http://www.highcharts.com/errors/18 "This error happens when you set a series' xAxis or yAxis property to point to an axis that does not exist."

Wahrscheinlich irgendeine Kleinigkeit in meiner definition aber ich sehe sie nicht.
CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,

drdownload

Wieso auch immer, das geht (finde meinen Fehler nach wie vor nicht, aber solange es jetzt geht)

{% import "widget_dbplot.html" as dbPlot %}

{% set plotOptions = [
    {
        'update_trigger_gad': 'trigger.plot.thermostat.heizung.badezimmer',
        'device': 'thermostat.heizung.badezimmer',
        'reading': 'measured',
        'config': {
            'name': 'Ist',
            'type': 'spline',
            'unit': 'C',
'dashStyle':'Solid',
'line': {
                dataLabels: {
                   enabled: true
                },
}
        }
    },
    {
        'update_trigger_gad': 'trigger.plot.thermostat.heizung.badezimmer',
        'device': 'thermostat.heizung.badezimmer',
        'reading': 'desired',
        'config': {
            'name': 'Soll',
            'type': 'spline',
            'unit': 'C',
'dashStyle':'ShortDash'
        }
    },
    {
        'update_trigger_gad': 'trigger.plot.thermostat.heizung.badezimmer',
        'device': 'thermostat.heizung.badezimmer',
        'reading': 'actuation',
        'config': {
            'name': 'Ventil',
            'type': 'spline',
            'yAxis': 1,
            'unit': '%',
'dashStyle': 'Dot'
        }
    }
]%}
{% set yAxisOptions = [
    {
        title: {
            text: 'Temperatur',
        },
        labels: {
            format: '{value} C',
        },
        opposite: true,
min:0,
max:28
    },
    {
        title: {
            text: 'Ventilstellung',
        },
        labels: {
            format: '{value} %',
        },
min:0,
max:100
    }
]%}
{{ dbPlot.linePlot('rtrPlotBadezimmer', 'Temperatur / Ventilstellung', '720', '2000', '', '', plotOptions, yAxisOptions, '', 300) }} 



CUL 868 Slow-RF (FS20 Aktoren, Sender, FHT8V), CUL 868 (WMBUS-Empfang), Jeelink (PCA301), WS3600 (WH3080 über USB-Basis), Bewässerung mit ESP-Easy und Proplanta, RFXTRX433 Home-Easy Empfang und Senden, Oregon TH, WS001 TH), Blackbean IR, Mopidy-Snapcast MR Audio, Kodi, Forum-LED-Controller,