npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

iobroker.photovoltaikcharts

v1.0.9

Published

This adapter contains some widgets with charts for photovoltaik statistic data in ioBroker.

Downloads

6

Readme

Logo

ioBroker.photovoltaikcharts

NPM version Downloads Number of Installations Current version in stable repository Dependency Status

NPM

Tests: Test and Release

VIS widgets for drawing charts especially for photovoltaic production and consumption data with highcharts

To use the charts one of the history adapters is required: history, sql or InfluxDB. The two Time Series charts with Navigator currently only work with SQL adapter and MariaDB/mysql. Here I use special SQL queries to significantly reduce the amount of data already in the DBMS. Otherwise, a navigator with a time series with values every 10 seconds and more than one year would not be possible.

I developed this adapter to be able to display the data of my photovoltaic system in an appealing way. The generation and consumption data are processed by the statistics adapter and a time series is created using the values in the save area with the SQL adapter. The charts each use the last value of the set time unit to obtain the final value saved by the statistical adapter. This is necessary because the history adapters sometimes create additional entries in the time series when they are stopped and started, but these still contain the value of the previous period.

In addition, the ID of the corresponding value from the temp range can be specified. In this case, the current value is additionally displayed and continuously updated.

In addition to the charts for values from the statistical adapter, there are two types of time series that can be used generically.

All charts update automatically.

The widgets contain many parameters for setting step, stacking, y-axis, etc. The parameters are described at https://api.highcharts.com/.

Chart types

Chart for anual values

Example

This 3D chart shows a configurable number of comparative values for a configurable number of years. The value for the current year is updated continuously. Enter the ID for statistics.0.save.sumDelta.xxx.year as the ID of the data series and the ID for statistics.0.temp.sumDelta.xxx.year as the ID for the current values.

If a number is entered under Target value, a line is also displayed.

Chart for monthly values

Example

This chart shows the monthly values of data series, each as a stack for a configurable number of years years. Enter the ID for statistics.0.save.sumDelta.xxx.month as the ID of the data series and the ID for statistics.0.temp.sumDelta.xxx.month as the ID for the current values.

A comma-separated list of target values can be entered under Target Value. These are shown as a grey line.

Chart for time series of statistic adapter

Example

Displays time series based on the data of the statistics adapter. Also in this case, both the save values and the temp values are used. It can be used flexibly for hours, days, months, weeks and years.

The first ID is also used for the navigator. The series can be assigned to the two y-axes and stacked as desired.

Chart for time series of normal history data with navigator

Example

This diagram represents time series. These do not have to be based on the statistics adapter. The chart has up to 3 y-axes and a navigator independent of the data series. The data series can be freely assigned to the axes and stacked. Categories can also be defined as JSON, which replace numerical values.

Chart for time series of normal history data without navigator

Example

Diagram for time series with a Y-axis and without navigator. Replaces all the diagrams I had previously created with Flot.

This diagram can also be used as a time point selector. ID for switches can be connected to go one step back or forward or to automatically cycle through all values.

For this, time series per module and inverter are required, as they exist with Solar Edge optimisers. These data can be retrieved from the Solaredge website and stored in the history database, which is not part of this adapter.

Widgets

Example In addition to the diagrams, two widgets are included to display a solar module of an inverter. These widgets are not intended to display current values, but rather the value at a specific point in time from the history database.

Based on the history data, the timeseries3 chart for the selection of the timestamp and these widgets, a module overview can similar to the Solaredge Portal be generated, in which the module performance is displayed for a specific time or as an autoplay for the time range shown in the chart. Example

How to use

  • install "vis"-adapter and create one instance if not installed.
  • install this adapter

After this, the new widgets should be offered in the VIS editor. All settings are made directly in the widget.

Why highcharts

For iobroker, there are already several chart solutions that generate configurable charts with the history data. Unfortunately, there is no special support for time series on values of the statistical adapter and display of the current value.

Of course, the existing chart solutions can be extended for this purpose, but the generic charts are still rather suboptimal for my special use case. Especially with photovoltaic systems, one does not only want to look at the monthly or annual values of the current year, but to compare them directly with the corresponding values of the previous years. However, this is almost impossible with the generic adapters. At the latest when it comes to using the charts in the Cordova app, I don't really like any of the existing solutions. Flot does use the socket io connection from vis, but this becomes slow with more than one chart. The widget from the echarts adapter would have to be completely rewritten so that it also works with the app via a reverse proxy.

You could also implement the diagrams with a completely free chart library, but from a purely visual point of view, highcharts is in a different league. In addition, it should also be possible to directly access data from far back in the VIS view. Highstock offers a very smart solution for this with the integrated Navigator.

Restrictions

The widgets still have development status.

The time series support zoom and pinch (with shift key), mouse wheel as well as multi-touch gestures. Extensions exist for this, which should also allow this with dynamic loading of data. This is still experimental. Especially with several quick gestures one after the other, the reloading does not follow and can lead to display errors.

The input fields do not all have format checks. Numbers should be entered with a dot (1.2). Some fields require input in JSON format, e.g. to pass categories or value lists. Again, there is no format check in the editor.

Changelog

1.0.9 (2022-02-24)

  • Fix column width, dynamic update
  • New widgets for modules and inverter
  • Enhancements for timeseries3 to use as timestamp selector, stepforward, stepbackward and autoplay with external buttons

1.0.8 (2022-02-17)

  • Use groups for dynamic configuration
  • more config options

1.0.7 (2022-02-15)

  • fix pinch zoom
  • fix dynamic update behaviour on zoom
  • adopted navigator sql statements
  • add bar and column types

1.0.6 (2022-02-13)

  • Fix js paths because vis only supports 2 levels

1.0.5 (2022-02-12)

iobroker app compatibility

The widgets works perfect in my self compiled version of the iobroker cordova app for android. The widgets only use the socket io connection from VIS. Only the export functions of highcharts do not work under Cordova.

However, due to licensing restrictions on the commercial use of highcharts, it is unlikely that this adapter will be included in the official Android app.

License

This adapter based on highcharts and highstock. These are commercial products, which require to obain a appropriate licence. Please check https://www.highcharts.com/license for licensing. Non commercial use of highcharts and highstock is currently free under a Creative Commons (CC) Attribution-Non-Commercial license.

During the installation of this adapter the npm package highcharts will automaticaly downloaded and the required files are copied to the widget directory.

Copyright (c) 2022 nobodyMO