• Stars
    star
    303
  • Rank 137,655 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created almost 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Visualisation for ioBroker platform.

Logo

Visualisation

Number of Installations Number of Installations NPM version Downloads

NPM

WEB visualisation for ioBroker platform.

License requirements

To use this adapter in ioBroker you need to accept the source code license of the adapter. The source code of this adapter is available under the CC BY-NC license.

Additionally, you need a license to use the adapter. The following license editions are available on https://iobroker.net/www/pricing

  • Community-License: Free for private use!: Get a free license by registering an account on https://iobroker.net. The license if checked online against the ioBroker license server when the vis adapter is started, so an online connection at this time point is required!
  • Private use Offline-License: For paying a small support fee, you can get rid of the required online license check on adapter startup. Only for Private use!
  • Commercial License: When using Vis in a commercial environment or selling Vis as part of ioBroker packages to your customers, this license is for you. License check is also not requiring an online connection.

Installation & Documentation

Demo interface Demo interface

Online Demos

Bindings of objects

Normally, most of the widgets have ObjectID attribute and this attribute can be bound with some value of object ID. But there is another option for how to bind any attribute of widget to some ObjectID.

Just write into attribute {object.id} and it will be bound (not in edit mode) to this object's value. If you use the special format, you can even make some simple operations with it, e.g., multiplying or formatting. Patten has the following format:

{objectID;operation1;operation2;...}

The following operations are supported:

  • \* - multiplying. Argument must be in brackets, like "*(4)". In this sample, we multiply the value with 4.
  • \+ - add. Argument must be in brackets, like "+(4.5)". In this sample we add to value 4.5.
  • \- - subtract. Argument must be in brackets, like "-(-674.5)". In this sample we subtract from value -674.5.
  • / - dividing. Argument must be in brackets, like "/(0.5)". In this sample we divide value by 0.5.
  • % - modulo. Argument must be in brackets, like "%(5)". In this sample, we take modulo of 5.
  • round - round the value.
  • round(N) - round the value with N places after point, e.g. 34.678;round(1) => 34.7
  • hex - convert value to hexadecimal value. All letters are lower cased.
  • hex2 - convert value to hexadecimal value. All letters are lower cased. If value less 16, so the leading zero will be added.
  • HEX - same as hex, but upper-cased.
  • HEX2 - same as hex2, but upper-cased.
  • date - format date according to given format. Format is the same as in iobroker.javascript
  • min(N) - if value is less than N, take the N, else value
  • max(M) - if value is greater than M, take the M, else value
  • sqrt - square root
  • pow(n) - power of N.
  • pow - power of 2.
  • floor - Math.floor
  • ceil - Math.ceil
  • random(R) - Math.random() * R, or just Math.random() if no argument
  • formatValue(decimals) - format value according to system settings and use decimals
  • date(format) - format value as date. The format is like: "YYYY-MM-DD hh:mm:ss.sss"
  • momentDate(format, useTodayOrYesterday) - format value as date using Moment.js. Approved formats must be entered according to the moment.js library. With useTodayOrYesterday=true the moment.js format ddd/dddd are overwritten with today / yesterday
  • array(element1,element2[,element3,element4]) - returns the element of index. e.g.: {id.ack;array(ack is false,ack is true)}

You can use this pattern in any text, like

My calculations with {objectID1;operation1;operation2;...} are {objectID2;operation3;operation4;...}

or color calculations:

#{objectRed;/(100);*(255);HEX2}{objectGreen;HEX2}{objectBlue;HEX2}

To show timestamp of object write .ts or .lc (for last change) at the end of object id, e.g.:

Last change: {objectRed.lc;date(hh:mm)}

There is another possibility to write the pattern:

Hypotenuse of {height} and {width} = {h:height;w:width;Math.max(20, Math.sqrt(h*h + w*w))}

{h:height;w:width;h*w} will be interpreted as function:

value = (function () {
    var h = "10";
    var w = "20";
    return Math.max(20, Math.sqrt(h*h + w*w));
})();

You can use any javascript functions. Arguments must be defined with ':', if not, it will be interpreted as formula.

Take care about types. All of them are defined as strings. To be sure, that value will be treated as number use parseFloat function.

Hypotenuse of {height} and {width} = {h:height;w:width;Math.max(20, Math.sqrt(Math.pow(parseFloat(h), 2) + Math.pow(parseFloat(w), 2)))}

Special bindings

There are a number of different internal bindings to provide additional information in views:

  • username - shows logged-in user
  • view - name of actual view
  • wname - widget name
  • widget - is an object with all data of widget. Can be used only in JS part, like {a:a;widget.data.name}
  • wid - name of actual widget
  • language - can be de, en or ru.
  • instance - browser instance
  • login - if login required or not (e.g., to show/hide logout button)
  • local_* - if state name is started from local_ it will not be reported to ioBroker but will update all widgets, that depends on this state. (Local variable for current browser session)

Note: to use ":" in calculations (e.g. in string formula) use "::" instead.

Remember, that style definitions will be interpreted as bindings, so use {{style: value}} or just

{
	style: value
}

for that.

Filters

To visualize on the one view the whole number of widgets, you can use filters to reduce the count of widgets simultaneously shown on the view.

Every widget has a field filter. If you set it to some value, e.g. light, so you can use other widget (bars - filters, filter - dropdown) to control which filter is actually active.

Control interface

Vis creates 3 variables:

  • control.instance - Here the browser instance should be written or FFFFFFFF if every browser must be controlled.
  • control.data - Parameter for command. See specific command description.
  • control.command - Command name. Write this variable triggers the command. That means before command will be written, the "instance" and "data" must be prepared with data.

Commands:

  • alert - show an alert window in the vis. "control.data" has the following format "message;title;jquery-icon". Title and jquery-icon are optional. Icon names can be found here. To show icon "ui-icon-info" write Message;;info.

  • changeView - switch to desired view. "control.data" must have the name of view. You can specify the project name too as "project/view". The default project is main.

  • refresh - reload the vis, for instance after the project is changed to reload on all browsers.

  • reload - same as refresh.

  • dialog - Show dialog window. Dialog must exist on view. One of:

    • static - HTML - Dialog,
    • static - Icon - Dialog,
    • container - HTML - view in jqui Dialog,
    • container - ext cmd - view in jqui Dialog,
    • container - Icon - view in jqui Dialog,
    • container - Button - view in jqui Dialog.

    control.data must have id of dialog widget, e.g. w00056.

  • dialogClose

  • popup - opens a new browser window. Link must be specified in control.data, e.g. http://google.com

  • playSound - play sound file. The link to file is specified in control.data, e.g. http://www.modular-planet.de/fx/marsians/Marsiansrev.mp3. You can upload your own file in vis and let it play as for instance /vis.0/main/img/myFile.mp3.

If the user changes the view or at the start, the variables will be filled by the vis with

  • control.instance: browser instance and ack=true
  • control.data: project and view name in form project/view, e.g. main/view (and ack=true)
  • control.command: changedView and ack=true

You can write the JSON-string or Object into control.command as {instance: 'AABBCCDD', command: 'cmd', data: 'ddd'}. In this case, the instance and data will be taken from JSON object.

Example for javascript adapter:

setState('vis.0.control.command', {"instance": "*", "command": "refresh", "data": ""});

Default view

You can define for every view the desired resolution (Menu=>Tools=>Resolution). This is only the visual border in edit mode to show you the screen size on some specific device. In the real-time mode, it will not be visible and all widgets outside the border will be visible.

Additionally, you can define if this view must be used as default for this resolution.

So every time the index.html (without #viewName) is called, the best suitable for this resolution view will be opened. If only one view has "Default" flag, so this view will be opened independently of screen resolution or orientation.

E.g., you can create two views "Landscape-Mobile" and "Portrait-Mobile" and these two views will be switched automatically when you change the orientation or screen size.

There is a helper widget "basic - Screen Resolution" that shows actual screen resolution and best suitable default view for this resolution.

Settings

Reload if sleep longer than

There is a rule that after some disconnection period, the whole VIS page will be reloaded to synchronise the project. You can configure it in the menu "Settings...". If you set the interval to "never" so the page will never be reloaded.

Reconnect interval

Set the interval between the connection attempts if disconnected. If you set 2 seconds, it will try to establish the connection every 2 seconds.

Dark reconnect screen

Sometimes (in the night) it is required to have the dark loading screen. With this option, you can set it.

Notice that these settings are valid only for reconnection and not for the first connecting.

Dark

Changelog

2.1.4 (2023-07-19)

  • (bluefox) Allowed to add widgets to widgets

2.0.36 (2023-06-21)

  • (bluefox) Added widgeteria

2.0.29 (2023-05-17)

  • (bluefox) Corrected errors

2.0.10 (2022-12-01)

  • (bluefox) Added the file browser

2.0.8 (2022-11-26)

  • (bluefox) Improved the error handling

2.0.0 (2022-10-21)

  • (bluefox) Completely new visualization, but compatible with the previous version

1.4.15 (2022-04-10)

  • (bluefox) Better check of the offline license

1.4.14 (2022-03-31)

  • (bluefox) Corrected GUI bug

1.4.13 (2022-03-22)

  • (pascal-hari) The group attributes will be replaced recursively

License

Copyright (c) 2013-2023 bluefox, https://github.com/GermanBluefox [email protected],

Copyright (c) 2013-2014 hobbyquaker, https://github.com/hobbyquaker [email protected],

Creative Common Attribution-NonCommercial (CC BY-NC)

http://creativecommons.org/licenses/by-nc/4.0/

CC BY-NC License

Short content: Licensees may copy, distribute, display and perform the work and make derivative works based on it only if they give the author or licensor the credits in the manner specified by these. Licensees may copy, distribute, display, and perform the work and make derivative works based on it only for noncommercial purposes. (Free for non-commercial use).

More Repositories

1

ioBroker

Automate your life!
Shell
1,255
star
2

ioBroker.javascript

Script engine for JavaScript and Blockly
JavaScript
325
star
3

ioBroker.zigbee

Zigbee communcation with Hue, Xiaomi, Lighttify... via TI CC2xxx USB stick
JavaScript
309
star
4

ioBroker.js-controller

ioBroker controller
TypeScript
292
star
5

ioBroker.admin

user interface for configuration and administration
TypeScript
271
star
6

AdapterRequests

This Place is used to track the status of new Adapter-Requests.
248
star
7

ioBroker.repositories

Repositories for ioBroker project
JavaScript
139
star
8

ioBroker.iot

Connection for Alexa, IFTTT, Google Home and co
JavaScript
71
star
9

ioBroker.mihome

Adapter for Xiaomi Mi home smarthome
JavaScript
62
star
10

ioBroker.hm-rpc

Connects HomeMatic Interface-Processes to ioBroker
TypeScript
60
star
11

ioBroker.docs

Documentation for ioBroker
JavaScript
59
star
12

ioBroker.lovelace

Visualization with Lovelace-UI
JavaScript
58
star
13

ioBroker.node-red

Instantiate the server with node-red
JavaScript
51
star
14

ioBroker.modbus

Modbus adapter for ioBroker
JavaScript
50
star
15

ioBroker.knx

connect KNX via eibd
50
star
16

create-adapter

Command line utility to create customized ioBroker adapters
TypeScript
49
star
17

ioBroker.web

Simple WWW web server on express for ioBroker
JavaScript
48
star
18

ioBroker.mqtt

Mqtt server and client for ioBroker.
JavaScript
47
star
19

ioBroker.sql

Store history data in SQL Database: MySQL, PostgreSQL or SQLite
JavaScript
45
star
20

ioBroker.example

Template adapter for ioBroker
JavaScript
44
star
21

ioBroker.hm-rega

Connects HomeMatic CCU "Logic Layer" ("ReGaHSS") to ioBroker
JavaScript
43
star
22

ioBroker.cloud

Enable access to ioBroker from internet
JavaScript
41
star
23

ioBroker.simple-api

RESTFul Interface to read and write objets and states
JavaScript
39
star
24

ioBroker.sonoff

Control Sonoff-Tasmota devices via ioBroker
JavaScript
37
star
25

ioBroker.sonos

Control and monitor SONOS player from ioBroker
JavaScript
37
star
26

ioBroker.influxdb

Store history data in InfluxDB (not for Windows)
JavaScript
36
star
27

ioBroker.ham

Supports homebridge plugins in ioBroker
JavaScript
32
star
28

ioBroker.material

React and Material Design
JavaScript
31
star
29

ioBroker.sayit

Text to speech for ioBroker
JavaScript
30
star
30

ioBroker.matter

Implementation of bridge and controller for matter
TypeScript
29
star
31

ioBroker.history

manages state history
JavaScript
29
star
32

ioBroker.text2command

Convert text into commands
JavaScript
29
star
33

ioBroker.pushover

Send Pushover notifications
JavaScript
29
star
34

ioBroker.discovery

This adapter tries to discover all known devices
JavaScript
27
star
35

ioBroker.scenes

Group states to scenes and control them.
JavaScript
27
star
36

ioBroker.socketio

This adapter allows to communicate different web applications with ioBroker.
JavaScript
25
star
37

ioBroker.wolf

Connect WOLF heating, solar and domestic ventilation
JavaScript
24
star
38

ioBroker.zwave

Legacy Z-Wave integration using OpenZWave
JavaScript
24
star
39

ioBroker.hass

Connects Home Assistant to ioBroker
JavaScript
24
star
40

ioBroker.dwd

Fetches weather warnings from "Deutscher Wetterdienst" (germany only)
JavaScript
23
star
41

ioBroker.devices

Create and manage devices for other adapters like material, iot...
JavaScript
23
star
42

ioBroker.parser

Parse web-site or file and extract data from it.
JavaScript
23
star
43

ioBroker.flot

Charts for ioBroker with flot
JavaScript
22
star
44

ioBroker.ping

Pings configured IPs for ioBroker
JavaScript
21
star
45

modbus-templates

Repository to collect Modbus Templates/Export-Files for devices on the market
JavaScript
19
star
46

ioBroker.echarts

Show all history data in one GUI
JavaScript
19
star
47

ioBroker.geofency

provides a websever for geofency-webhooks
JavaScript
19
star
48

ioBroker.mobile

jQuery Mobile based user interface
JavaScript
18
star
49

ioBroker.vis-hqwidgets

High Quality Widgets for ioBroker.vis
JavaScript
18
star
50

ioBroker.vis-timeandweather

ioBroker Widgets set with time and weather
JavaScript
17
star
51

ioBroker.vis.cordova

Cordova APP for ioBroker.vis
HTML
16
star
52

ioBroker.s7

Connects iobroker with simatic S7 or logo
JavaScript
16
star
53

dev-server

JavaScript
14
star
54

ioBroker.cameras

Integration of IP cameras into web server
JavaScript
14
star
55

ioBroker.fullcalendar

Calendar for ioBroker
JavaScript
14
star
56

ioBroker.vis-2-widgets-material

Material style widgets for vis-2
JavaScript
13
star
57

ioBroker.icons-open-icon-library-png

Open icon library collection as PNG
HTML
13
star
58

ioBroker.vis-metro

ioBroker.vis metro widget set
CSS
12
star
59

ioBroker.vis-history

History widgets for ioBroker.vis
JavaScript
12
star
60

ioBroker.rest-api

Swagger UI for ioBroker
JavaScript
12
star
61

ioBroker.vis-canvas-gauges

Canvas gauges for ioBroker.vis
HTML
12
star
62

ioBroker.scheduler

Create and manage schedule profiles.
JavaScript
12
star
63

ioBroker.whatsapp-cmb

Allows to send to your whatsapp the messages from ioBroker
JavaScript
12
star
64

ioBroker.rflink

Support of RFLink
JavaScript
11
star
65

ioBroker.vis-map

Map widgets for ioBroker.vis
HTML
11
star
66

ioBroker.yr

fetches 48h weather forecast from yr.no (worldwide)
JavaScript
10
star
67

ioBroker.tileboard

Visualization TileBoard for ioBroker
JavaScript
10
star
68

ioBroker.phantomjs

Make a screenshot of any web page, e.g. flot
JavaScript
10
star
69

ioBroker.openweathermap

Fetch the data from https://openweathermap.org service
TypeScript
10
star
70

ioBroker.maxcube

Control MAX! devices via MAX! Cube
JavaScript
9
star
71

ioBroker.vis-jqui-mfd

Widget set based on jQuery-UI and icons from OpenAutomationProject
HTML
9
star
72

ioBroker.vis-web-admin

Special adapter for iobroker.net
JavaScript
9
star
73

ioBroker.vis-rgraph

Widgets with RGraph for ioBroker.vis
JavaScript
9
star
74

ioBroker.nightscout

Starts the instance of nightscout server
JavaScript
9
star
75

ioBroker.vis-2-widgets-gauges

Battery, Liquid, Gauge widgets for ioBroker.vis-2
JavaScript
8
star
76

ioBroker.ekey

Connect ekey to ioBroker
JavaScript
8
star
77

ioBroker.icons-mfd-svg

Icon set for visualisation of the home automation as SVG from KNX forum.
JavaScript
8
star
78

testing

Shared testing utilities for ioBroker
JavaScript
8
star
79

ioBroker.vis-bars

Bars widgets for ioBroker.vis
JavaScript
8
star
80

ioBroker.vis-2-widgets-energy

Energy widgets
JavaScript
8
star
81

ioBroker.type-detector

Helper module (not adapter) to detect types of devices
TypeScript
8
star
82

ioBroker.repochecker

Check the ioBroker adapter github repositories if they can be added to public ioBroker repository
JavaScript
8
star
83

awesome-iobroker

A curated list of amazingly awesome ioBroker resources.
CSS
8
star
84

ioBroker.link

Adapter for ioBroker to connect via ioBroker.link VPN solution
8
star
85

ioBroker.icons-ultimate-png

Ultimate icon set for visualisation as PNG
HTML
8
star
86

ioBroker.vis-lcars

Star trek widgets for ioBroker.vis
HTML
8
star
87

ioBroker.vis-fancyswitch

Switches with fancyswitch for ioBroker.vis
HTML
7
star
88

ioBroker.mysensors

Support of mysensors from
JavaScript
7
star
89

ioBroker.icons-mfd-png

Icon set for visualisation for home automation as PNG from KNX Forum.
JavaScript
7
star
90

ioBroker.vis-template

Template for ioBroker.vis widget set.
7
star
91

ioBroker.digitalstrom

Digitalstrom Adapter fΓΌr ioBroker
JavaScript
7
star
92

ioBroker.terminal

Terminal for ioBroker (only for administration)
JavaScript
7
star
93

ioBroker.vis-plumb

Widgets for ioBroker.vis to visualise pipes, pumps and tanks.
HTML
6
star
94

ioBroker.opcua

OPC UA Server or Client for ioBroker
JavaScript
6
star
95

ioBroker.icons-icons8

Nice icons for vis from https://icons8.com
HTML
6
star
96

ioBroker.proxy

This adapter allows to access other web servers over web adapter.
JavaScript
6
star
97

ioBroker.icons-material-svg

Material google design icons as SVG.
JavaScript
6
star
98

ioBroker.ham-wemo

homebridge-platform-wemo wrapper adapter for ioBroker
JavaScript
6
star
99

plugin-sentry

Sentry Plugin for ioBroker js-controller and Adapters
TypeScript
6
star
100

adapter-react-v5

TypeScript
6
star