Dashboard

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Benutzeravatar
Psi
Beiträge: 512
Registriert: 09.08.2018, 19:58
Wohnort: Nürnberg
Hat sich bedankt: 27 Mal
Danksagung erhalten: 90 Mal

Dashboard

Beitrag von Psi » 18.11.2018, 23:12

Hi RedMatic Fans,

wie erstellt ihr eure Dashboards?
* Mit node-red Dashboard? Seid ihr damit zufrieden oder fehlt etwas?
* ioBroker VIS?
* Was wären noch gute Optionen?

Ich finde es sehr chick über die Nodes direkt ein Dashboard zu befüttern allerdings finde ich die mitgelieferten Widgets etwas mau und spiele aktuell mit dem Gedanken hier selbst ein paar Nodes zu erstellen.

Beste Grüße

dhuuk42
Beiträge: 47
Registriert: 07.03.2017, 08:00

Re: Dashboard

Beitrag von dhuuk42 » 19.11.2018, 10:44

Ich finde die Möglichkeit über Node-RED bisher am besten. Ich habe noch ein wenig Schwierigkeiten die Daten aus Arrays zu ziehen und im Dashboard anzeigen zu lassen. Wenn ich mir das noch beigebracht habe wird es wirklich mächtig. Man kann ja wirklich alles auswerten ;)

MartinBr
Beiträge: 393
Registriert: 25.01.2017, 10:51
Wohnort: Bei Berlin
Hat sich bedankt: 3 Mal
Danksagung erhalten: 8 Mal

Re: Dashboard

Beitrag von MartinBr » 19.11.2018, 14:11

Ich setze nach einigen Umwegen (Mediola, Homehub) auf ioBroker. Mit ioBroker.Vis kann ich meine Anwendung auf dem Tablett so visualisieren, dass auch meine Frau damit zurecht kommt. Alle Kalender sind integriert und auch Alexa lässt sich einfach einbinden.

Ich bin erst seit einer Woche auf das Projekt RedMatic aufwerksam geworden. Bisher habe ich Addons auf der CCU2 restriktiv installiert: Die Arbeit an der WebGui war extrem lahm. Auf dem RaspberryMatic fliegt das System. Nun traue ich mich auch, einige Addons zusätzlich zu CUxD zu stallieren.

Das Dashboard in RedMatic ist hübsch, die Icons sind genial, ich weiss nur nicht, wie man daraus eine schöne Visualisierung wie Mediola oder ioBroker baut.
RaspberryMatic-3.59.6 auf Tinkerboard S, CUxD 2.6, XML-1.20, ioBroker (HM,HMIP, Zigbee, Zwave und Shelly) und Alexa in einer VM unter Proxmox, VitoComfort 200

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Dashboard

Beitrag von hobbyquaker » 19.11.2018, 17:15

Im Moment nutze ich für meine Wallmounts noch "statische" Dashboards, realisiert mit https://www.webcomponents.org/element/@ ... tt-wrapper
Connected sich direkt auf den MQTT Broker und ist über Cordova als Android App verpackt. Sieht z.B. so aus:
48158854-eef7e380-e2d3-11e8-9f02-6d38862ba9df.png
Auf dem Handy nutze ich die Home App und Node-RED Dashboard.

Hab die Tage begonnen was neues zu bauen, vom Prinzip das gleiche wie DashUI/ioBroker.vis, allerdings mit zeitgemäßer Technologie, nutzt Node-RED als Backend, denke ich werde das bis Weihnachten veröffentlichen.

Fonzo
Beiträge: 6687
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 478 Mal

Re: Dashboard

Beitrag von Fonzo » 19.11.2018, 18:00

Psi hat geschrieben:
18.11.2018, 23:12
* Was wären noch gute Optionen?
Ich selber nutze IPSView und Mediola NEO in Kombination mit IP-Symcon. Als Grafiktool nutzte ich ergänzend Colibrico Design Studio.

Benutzeravatar
Psi
Beiträge: 512
Registriert: 09.08.2018, 19:58
Wohnort: Nürnberg
Hat sich bedankt: 27 Mal
Danksagung erhalten: 90 Mal

Re: Dashboard

Beitrag von Psi » 19.11.2018, 20:02

Geht also in alle Richtungen :)

Kommerzielle Produkte sind für mich raus und es muss im Browser laufen.
VIS und ioBroker hab ich persönlich noch nicht probiert da mir bislang RedMatic all nötigen "Adapter" und Logikbausteine zur Verfügung stellt.
Zudem gefällt mir die feste Größe der VIS Dashboards gar nicht. Ich will das am PC, Tablet und Handy benutzen können und nicht für jede Auflösung ein eigenes Dashboard bauen müssen.

Die Widgets von Node-RED sind allerdings recht allgemein und ich überlege gerade ob man hier spezifische SmartHome Widgets erstellen sollte.

Zetzi
Beiträge: 174
Registriert: 27.05.2011, 16:09
Wohnort: Kiel
Danksagung erhalten: 1 Mal

Re: Dashboard

Beitrag von Zetzi » 23.11.2018, 18:09

Hallo,
Die Idee ist super es ist leider nicht so prall mit den zb Gauge .
Versuche gerade andere rein zu bringen Rgraph und StellSeries klappt schon mal fürs erste ganz gut.
Nur habe ich eine Problem bei den anzeigen der StellSeries ab 2 stück überlagern sie sich immer , wenn ich sie in einer gruppe habe oder tab habe bzw es ergibt auch ein leeres feld.
Mache ich einen neuen tab auf kann ich ein zweites anlegen.

Hat jemand eine Idee wie mann das anderes machen kann ??
Danke

Gruß
Zetzi
Dashboard Testy.JPG

Zetzi
Beiträge: 174
Registriert: 27.05.2011, 16:09
Wohnort: Kiel
Danksagung erhalten: 1 Mal

Re: Dashboard

Beitrag von Zetzi » 23.11.2018, 18:11

Hier der Node Red Code

Code: Alles auswählen

[{"id":"b9c35b86.50d178","type":"ui_template","z":"774a4184.2feac","group":"77f2ff7a.6c7c6","name":"Compass","order":1,"width":"4","height":"4","format":"<script src=\"/myjs/tween-min.js\"></script>\n<script src=\"/myjs/steelseries-min.js\"></script>\n<script>\nvar compass;\n    (function(scope){ \n        scope.$watch('msg', function(msg) {\n           if (typeof(msg.value) != \"undefined\")compass.setValueAnimated(msg.value);\n          \n        });\n    })(scope);\n\n    \n\n    compass = new steelseries.Compass('compass', {\n            gaugeType: steelseries.GaugeType.TYPE4,\n            \n            size: 190,\n            \n            rotateFace:  true,\n            //\n            //titleString: \"Charge\",\n            //unitString: \"AMPS\",\n           // threshold: 11.9,\n           // minValue: 0,\n           // maxValue:  10,\n           // thresholdRising: false,\n            //lcdVisible: true,\n           \n        });\n//cog.steelseries.BackgroundColor.(steelseries.BackgroundColor.WHITE); \n   compass.setFrameDesign(steelseries.FrameDesign.BRASS);\n   compass.setValueAnimated(0);                   \n   \n   //cog.setPointerType(steelseries.PointerType.TYPE9);\n    \n\n\n</script>\n\n<canvas id=\"compass\" width=\"190\" height=\"190\"></canvas>\n","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":557.0185546875,"y":103.03465270996094,"wires":[[]]},{"id":"3f270afa.2c89e6","type":"ui_template","z":"774a4184.2feac","group":"77f2ff7a.6c7c6","name":"Horizon","order":3,"width":"4","height":"4","format":"<script src=\"/myjs/tween-min.js\"></script>\n<script src=\"/myjs/steelseries-min.js\"></script>\n<script>\nvar horizon;\n    (function(scope){ \n        scope.$watch('msg', function(msg) {\n            if (typeof(msg.value) != \"undefined\")horizon.setValueAnimated(msg.value);\n           //if (typeof(msg.hor) != \"undefined\")horizon.setHorAnimated(msg.hor);\n           //if (typeof(msg.value) != \"undefined\")horizon.setValueAnimated(value);\n                                                                        // (msg.value);\n           //if (typeof(msg.roll) != \"undefined\")horizon.setRollAnimated(roll);\n          \n          \n        });\n    })(scope);\n\n    \n\n    horizon = new steelseries.Level('horizon', {\n            gaugeType: steelseries.GaugeType.TYPE4,\n            size: 190,\n           //textOrientationFixed: true,\n           //decimalsVisible:true,\n           //pointerColor:  ORANGE.\n           //foregroundType:\n           //backgroundVisible:false,\n           //foregroundVisible:false,\n           \n        });\n    horizon.setFrameDesign(steelseries.FrameDesign.CHROME);  \n    horizon.setValueAnimated(0);                   \n    \n    //level.setPointerType(steelseries.PointerType.TYPE9);\n    \n\n\n</script>\n\n<canvas id=\"horizon\" width=\"190\" height=\"190\"></canvas>\n","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":553.0184745788574,"y":145.0346565246582,"wires":[[]]},{"id":"eeacc6fb.6aedd8","type":"ccu-rpc-event","z":"774a4184.2feac","name":"S300 Mobile Temperatur:","iface":"CUxD","ccuConfig":"38263145.35ea0e","rooms":"Test-Mobile","roomsRx":"str","functions":"","functionsRx":"str","device":"","deviceRx":"str","deviceName":"S300TH-ID-4","deviceNameRx":"str","deviceType":"","deviceTypeRx":"str","channel":"","channelRx":"str","channelName":"","channelNameRx":"str","channelType":"","channelTypeRx":"str","datapoint":"TEMPERATURE","datapointRx":"str","change":true,"working":false,"cache":true,"topic":"${CCU}/${Interface}/${channelName}/${datapoint}","x":207.01973152160645,"y":319.0198097229004,"wires":[["737195de.b40dfc","47068775.c7f268","c8f384f8.063d58"]]},{"id":"737195de.b40dfc","type":"combine-statistic","z":"774a4184.2feac","name":"Durchschnitt","topic":"192","operator":"mean","defer":250,"timeout":0,"distinction":"topic","x":417.0197162628174,"y":348.4437532424927,"wires":[["6fae9fe7.b16a8"]]},{"id":"6fae9fe7.b16a8","type":"ui_text","z":"774a4184.2feac","group":"ae3aa0fe.4e842","order":3,"width":"0","height":"0","name":"","label":"S300 Mobile Temperatur:","format":"{{msg.payload}}°C","layout":"row-left","x":624.0268859863281,"y":322.44016456604004,"wires":[]},{"id":"47068775.c7f268","type":"ui_gauge","z":"774a4184.2feac","name":"","group":"26dcc212.44b7be","order":3,"width":"3","height":"2","gtype":"gage","title":"S300 Mobile Gauge","label":"C","format":"{{value }}","min":"-60","max":"20","colors":["#00ff00","#ffff00","#ff0000"],"seg1":"-18","seg2":"-17","x":937.0119113922119,"y":323.26558685302734,"wires":[]},{"id":"c8f384f8.063d58","type":"function","z":"774a4184.2feac","name":"","func":"msg.value=msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":717.0197296142578,"y":215.01980209350586,"wires":[["7f9c8b28.e6c244"]]},{"id":"7f9c8b28.e6c244","type":"ui_template","z":"774a4184.2feac","group":"77f2ff7a.6c7c6","name":"Kühltrue","order":5,"width":"4","height":"4","format":"<script src=\"/myjs/tween-min.js\"></script>\n<script src=\"/myjs/steelseries-min.js\"></script>\n<script>\nvar speed;\n    (function(scope){ \n        scope.$watch('msg', function(msg) {\n           if (typeof(msg.value) != \"undefined\")speed.setValueAnimated(msg.value);\n          \n        });\n    })(scope);\n\n\n    speed = new steelseries.Radial('speed', {\n            gaugeType: steelseries.GaugeType.TYPE2,\n            size:190,\n           \n            titleString: \"Kühltruhe\",\n            unitString: \"Temp\",\n            //threshold: 11.9,\n            minValue: -30,\n            maxValue:  -0,\n            thresholdRising: false,\n            lcdVisible: true,\n           \n        });\n      \n    \n    \n    speed.setFrameDesign(steelseries.FrameDesign.CHROME);\n    speed.setValueAnimated(0);\n    speed.setThreshold(50);\n    speed.blinkUserLed(0);\n    speed.setOdoValue(0);\n\n\n\n</script>\n\n<canvas id=\"speed\" width=\"190\" height=\"190\"></canvas>","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":725.0185546875,"y":266.03466796875,"wires":[[]]},{"id":"fd2cd1ff.48d65","type":"ui_template","z":"774a4184.2feac","group":"77f2ff7a.6c7c6","name":"rgraph","order":2,"width":"4","height":"4","format":"<script src=\"/myjs/tween-min.js\"></script>\n<script src=\"/myjs/steelseries-min.js\"></script>\n<script>\nvar radial4;\n    (function(scope){ \n        scope.$watch('msg', function(msg) {\n           if (typeof(msg.value) != \"undefined\") radial4.setValueAnimated(msg.value);\n           if (typeof(msg.threshold) != \"undefined\") radial4.setThreshold(msg.threshold);\n           if (typeof(msg.odo) != \"undefined\")radial4.setOdoValue(msg.odo);  \n           if (typeof(msg.userLed) != \"undefined\") radial4.setUserLedOnOff(msg.userLed);  \n           if (typeof(msg.trend) != \"undefined\")\n            {\n                if (msg.trend==1)     radial4.setTrend(steelseries.TrendState.UP);\n                if (msg.trend==0)     radial4.setTrend(steelseries.TrendState.STEADY);\n                if (msg.trend==-1)    radial4.setTrend(steelseries.TrendState.DOWN);\n                if (msg.trend==-2)    radial4.setTrend(steelseries.TrendState.OFF);\n            }\n        });\n    })(scope);\n\n    var sections = [steelseries.Section(0, 25, 'rgba(0, 0, 220, 0.3)'),\n                     steelseries.Section(25, 50, 'rgba(0, 220, 0, 0.3)'),\n                     steelseries.Section(20, 90, 'rgba(220, 220, 0, 0.3)') ],\n\n            // Define one area\n    areas = [steelseries.Section(0, 18, 'rgba(220, 0, 0, 0.3)')],\n\n    radial4 = new steelseries.Radial('canvasRadial4', {\n            gaugeType: steelseries.GaugeType.TYPE4,\n            size: 190,\n            section: sections,\n            area: areas,\n            titleString: \"Wohnzimmer\",\n            unitString: \"Temp C\",\n            threshold: 50,\n            thresholdRising: false,\n            userLedVisible: true,\n            useOdometer: true,\n            lcdVisible: true,\n            trendVisible: true\n        });\n                        \n    radial4.setFrameDesign(steelseries.FrameDesign.BLACK_METAL);\n    radial4.setValueAnimated(0);\n    radial4.setThreshold(50);\n    radial4.blinkUserLed(0);\n    radial4.setOdoValue(0);\nradial4.setPointerType(steelseries.PointerType.TYPE6);\n\n</script>\n\n<canvas id=\"canvasRadial4\" width=\"201\" height=\"201\"></canvas>","storeOutMessages":true,"fwdInMessages":false,"templateScope":"local","x":529.0185546875,"y":713.0000152587891,"wires":[[]]},{"id":"c9d5b2a9.64c19","type":"inject","z":"774a4184.2feac","name":"Set needle to 88","topic":"","payload":"88","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":"","x":179.0185546875,"y":493.00001525878906,"wires":[["34c9d792.374ff8"]]},{"id":"c114872b.216858","type":"inject","z":"774a4184.2feac","name":"Set needle to 33","topic":"","payload":"33","payloadType":"num","repeat":"","crontab":"","once":false,"x":179.0185546875,"y":533.0000152587891,"wires":[["34c9d792.374ff8"]]},{"id":"34c9d792.374ff8","type":"function","z":"774a4184.2feac","name":"","func":"msg.value=msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":349.0185546875,"y":513.0000152587891,"wires":[["fd2cd1ff.48d65","75dbbd74.5699a4","91c6c3d8.4aeff"]]},{"id":"919aad3b.19bcf","type":"inject","z":"774a4184.2feac","name":"Set threshhold to 60","topic":"","payload":"60","payloadType":"num","repeat":"","crontab":"","once":false,"x":189.0185546875,"y":573.0000152587891,"wires":[["aee2e8bd.2d0048"]]},{"id":"5c102803.8c80d8","type":"inject","z":"774a4184.2feac","name":"Set threshold to 30","topic":"","payload":"30","payloadType":"num","repeat":"","crontab":"","once":false,"x":189.0185546875,"y":613.0000152587891,"wires":[["aee2e8bd.2d0048"]]},{"id":"aee2e8bd.2d0048","type":"function","z":"774a4184.2feac","name":"","func":"msg.threshold=msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":349.0185546875,"y":593.0000152587891,"wires":[["fd2cd1ff.48d65"]]},{"id":"c1f5d55c.eb61d8","type":"inject","z":"774a4184.2feac","name":"Set user LED ON","topic":"","payload":"true","payloadType":"bool","repeat":"","crontab":"","once":false,"x":179.0185546875,"y":654.0000152587891,"wires":[["e49c1093.45e04"]]},{"id":"efbca441.fe6e98","type":"inject","z":"774a4184.2feac","name":"Setuser LED OFF","topic":"","payload":"false","payloadType":"bool","repeat":"","crontab":"","once":false,"x":189.0185546875,"y":694.0000152587891,"wires":[["e49c1093.45e04"]]},{"id":"e49c1093.45e04","type":"function","z":"774a4184.2feac","name":"","func":"msg.userLed=msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":349.0185546875,"y":674.0000152587891,"wires":[["fd2cd1ff.48d65"]]},{"id":"747ffcfc.de5804","type":"comment","z":"774a4184.2feac","name":"Example use of Steelseries Gauge","info":"","x":219.0185546875,"y":453.00001525878906,"wires":[]},{"id":"d172e37a.27899","type":"inject","z":"774a4184.2feac","name":"Trend UP","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"x":159.0185546875,"y":733.0000152587891,"wires":[["9965018b.a94bb"]]},{"id":"b014b6d3.d27bb8","type":"inject","z":"774a4184.2feac","name":"Steady","topic":"","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"x":149.0185546875,"y":773.0000152587891,"wires":[["9965018b.a94bb"]]},{"id":"9965018b.a94bb","type":"function","z":"774a4184.2feac","name":"","func":"msg.trend=msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":349.0185546875,"y":753.0000152587891,"wires":[["fd2cd1ff.48d65"]]},{"id":"7ef59166.dcdfc","type":"inject","z":"774a4184.2feac","name":"Down","topic":"","payload":"-1","payloadType":"num","repeat":"","crontab":"","once":false,"x":149.0185546875,"y":813.0000152587891,"wires":[["9965018b.a94bb"]]},{"id":"a8526c6d.75555","type":"inject","z":"774a4184.2feac","name":"Off","topic":"","payload":"-2","payloadType":"num","repeat":"","crontab":"","once":false,"x":149.0185546875,"y":853.0000152587891,"wires":[["9965018b.a94bb"]]},{"id":"4f4580c4.f40ca","type":"inject","z":"774a4184.2feac","name":"ODO 50","topic":"","payload":"50.5","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":"","x":159.0185546875,"y":893.0000152587891,"wires":[["91c6c3d8.4aeff"]]},{"id":"f6549b9f.324c68","type":"inject","z":"774a4184.2feac","name":"ODO 78.6","topic":"","payload":"78.6","payloadType":"num","repeat":"","crontab":"","once":false,"x":159.0185546875,"y":933.0000152587891,"wires":[["91c6c3d8.4aeff"]]},{"id":"91c6c3d8.4aeff","type":"function","z":"774a4184.2feac","name":"","func":"msg.odo=msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":349.0185546875,"y":913.0000152587891,"wires":[["fd2cd1ff.48d65"]]},{"id":"75dbbd74.5699a4","type":"debug","z":"774a4184.2feac","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","x":682.5994415283203,"y":715.5775756835938,"wires":[]},{"id":"badcd1f7.784bc","type":"ccu-rpc-event","z":"774a4184.2feac","name":"","iface":"","ccuConfig":"8ba9a508.0de338","rooms":"Flur","roomsRx":"str","functions":"","functionsRx":"str","device":"","deviceRx":"str","deviceName":"","deviceNameRx":"str","deviceType":"","deviceTypeRx":"str","channel":"","channelRx":"str","channelName":"","channelNameRx":"str","channelType":"","channelTypeRx":"str","datapoint":"TEMPERATURE","datapointRx":"str","change":true,"working":false,"cache":true,"topic":"${CCU}/${Interface}/${channelName}/${datapoint}","x":492.60272216796875,"y":449.9637145996094,"wires":[["34c9d792.374ff8","bf4a04f5.8136c8"]]},{"id":"4016b4cc.64a66c","type":"ui_template","z":"774a4184.2feac","group":"77f2ff7a.6c7c6","name":"Tempwater","order":6,"width":"3","height":"6","format":"<script src=\"/myjs/tween-min.js\"></script>\n<script src=\"/myjs/steelseries-min.js\"></script>\n<script>\nvar tempwater;\n    (function(scope){ \n        scope.$watch('msg', function(msg) {\n           if (typeof(msg.value) != \"undefined\") tempwater.setValueAnimated(msg.value);\n           //if (typeof(msg.threshold) != \"undefined\") radial4.setThreshold(msg.threshold);\n          // if (typeof(msg.odo) != \"undefined\")radial4.setOdoValue(msg.odo);  \n           //if (typeof(msg.userLed) != \"undefined\") radial4.setUserLedOnOff(msg.userLed);  \n          // if (typeof(msg.trend) != \"undefined\")\n            {\n               // if (msg.trend==1)     radial4.setTrend(steelseries.TrendState.UP);\n                //if (msg.trend==0)     radial4.setTrend(steelseries.TrendState.STEADY);\n               // if (msg.trend==-1)    radial4.setTrend(steelseries.TrendState.DOWN);\n               // if (msg.trend==-2)    radial4.setTrend(steelseries.TrendState.OFF);\n            }\n        });\n    })(scope);\n\n    var sections = [steelseries.Section(0, 25, 'rgba(0, 0, 220, 0.3)'),\n                        steelseries.Section(25, 50, 'rgba(0, 220, 0, 0.3)'),\n                        steelseries.Section(50, 75, 'rgba(220, 220, 0, 0.3)') ],\n\n            // Define one area\n    areas = [steelseries.Section(75, 100, 'rgba(220, 0, 0, 0.3)')],\n\n    tempwater = new steelseries.Linear('tempwater', {\n            gaugeType: steelseries.GaugeType.TYPE2,\n            width: 140,\n            height: 300,\n            //size: 292,\n            section: sections,\n            area: areas,\n            titleString: \"Water\",\n            unitString: \"Degrees F\",\n            threshold: 80,\n            lcdVisible: true,\n           \n            //thresholdRising: false,\n           // userLedVisible: true,\n           // useOdometer: true,\n          //  lcdVisible: true,\n           // trendVisible: true\n        });\n                        \n    tempwater.setFrameDesign(steelseries.FrameDesign.BRASS);\n    tempwater.setValueAnimated(0);\n    tempwater.setPointerType(steelseries.PointerType.TYPE9);\n   // radial4.setThreshold(50);\n    //radial4.blinkUserLed(0);\n   // radial4.setOdoValue(0);\n\n\n</script>\n\n<canvas id=\"tempwater\" width=\"140\" height=\"300\"></canvas>\n","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":940.0148315429688,"y":262.82177734375,"wires":[[]]},{"id":"bf4a04f5.8136c8","type":"function","z":"774a4184.2feac","name":"","func":"msg.value=msg.payload;\nreturn msg;","outputs":1,"noerr":0,"x":962.0148315429688,"y":210.82177734375,"wires":[["4016b4cc.64a66c"]]},{"id":"c177fdad.a917b","type":"inject","z":"774a4184.2feac","name":"Set needle to 88","topic":"","payload":"88","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":"","x":176.0148696899414,"y":149.01980590820312,"wires":[["3f270afa.2c89e6"]]},{"id":"d08b2e24.a40e5","type":"ui_template","z":"774a4184.2feac","group":"77f2ff7a.6c7c6","name":"Kühltrue-2","order":4,"width":"4","height":"4","format":"<script src=\"/myjs/tween-min.js\"></script>\n<script src=\"/myjs/steelseries-min.js\"></script>\n<script>\nvar speed;\n    (function(scope){ \n        scope.$watch('msg', function(msg) {\n           if (typeof(msg.value) != \"undefined\")speed.setValueAnimated(msg.value);\n          \n        });\n    })(scope);\n\n\n    speed = new steelseries.Radial('speed', {\n            gaugeType: steelseries.GaugeType.TYPE2,\n            size:190,\n           \n            titleString: \"Kühltruhe\",\n            unitString: \"Temp\",\n            threshold: 11.9,\n            minValue: -30,\n            maxValue:  -0,\n            thresholdRising: false,\n            lcdVisible: true,\n           \n        });\n      \n    \n    \n    speed.setFrameDesign(steelseries.FrameDesign.CHROME);\n    speed.setValueAnimated(0);\n    speed.setThreshold(50);\n    speed.blinkUserLed(0);\n    speed.setOdoValue(0);\n\n\n\n</script>\n\n<canvas id=\"speed\" width=\"190\" height=\"190\"></canvas>","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":734.0148315429688,"y":168.01980590820312,"wires":[[]]},{"id":"37eb7480.26f29c","type":"ui_template","z":"774a4184.2feac","group":"77f2ff7a.6c7c6","name":"rgraph","order":2,"width":"4","height":"4","format":"<script src=\"/myjs/tween-min.js\"></script>\n<script src=\"/myjs/steelseries-min.js\"></script>\n<script>\nvar radial4;\n    (function(scope){ \n        scope.$watch('msg', function(msg) {\n           if (typeof(msg.value) != \"undefined\") radial4.setValueAnimated(msg.value);\n           if (typeof(msg.threshold) != \"undefined\") radial4.setThreshold(msg.threshold);\n           if (typeof(msg.odo) != \"undefined\")radial4.setOdoValue(msg.odo);  \n           if (typeof(msg.userLed) != \"undefined\") radial4.setUserLedOnOff(msg.userLed);  \n           if (typeof(msg.trend) != \"undefined\")\n            {\n                if (msg.trend==1)     radial4.setTrend(steelseries.TrendState.UP);\n                if (msg.trend==0)     radial4.setTrend(steelseries.TrendState.STEADY);\n                if (msg.trend==-1)    radial4.setTrend(steelseries.TrendState.DOWN);\n                if (msg.trend==-2)    radial4.setTrend(steelseries.TrendState.OFF);\n            }\n        });\n    })(scope);\n\n    var sections = [steelseries.Section(0, 25, 'rgba(0, 0, 220, 0.3)'),\n                     steelseries.Section(25, 50, 'rgba(0, 220, 0, 0.3)'),\n                     steelseries.Section(20, 90, 'rgba(220, 220, 0, 0.3)') ],\n\n            // Define one area\n    areas = [steelseries.Section(0, 18, 'rgba(220, 0, 0, 0.3)')],\n\n    radial4 = new steelseries.Radial('canvasRadial4', {\n            gaugeType: steelseries.GaugeType.TYPE4,\n            size: 190,\n            section: sections,\n            area: areas,\n            titleString: \"Wohnzimmer\",\n            unitString: \"Temp C\",\n            threshold: 50,\n            thresholdRising: false,\n            userLedVisible: true,\n            useOdometer: true,\n            lcdVisible: true,\n            trendVisible: true\n        });\n                        \n    radial4.setFrameDesign(steelseries.FrameDesign.BLACK_METAL);\n    radial4.setValueAnimated(0);\n    radial4.setThreshold(50);\n    radial4.blinkUserLed(0);\n    radial4.setOdoValue(0);\nradial4.setPointerType(steelseries.PointerType.TYPE6);\n\n</script>\n\n<canvas id=\"canvasRadial4\" width=\"201\" height=\"201\"></canvas>","storeOutMessages":true,"fwdInMessages":false,"templateScope":"local","x":719.0148315429688,"y":108.01980590820312,"wires":[[]]},{"id":"77f2ff7a.6c7c6","type":"ui_group","z":"","name":"testy","tab":"854ed8de.9e9558","disp":true,"width":"20","collapse":false},{"id":"38263145.35ea0e","type":"ccu-connection","z":"","name":"localhost","host":"localhost","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":true,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"127.0.0.1","rpcServerHost":"127.0.0.1","rpcBinPort":"2047","rpcXmlPort":"2048","contextStore":""},{"id":"ae3aa0fe.4e842","type":"ui_group","z":"","name":"Mobile","tab":"fe205248.f04ed","order":5,"disp":true,"width":"9","collapse":false},{"id":"26dcc212.44b7be","type":"ui_group","z":"","name":"Group 3","tab":"b88d160.bfaa8e8","order":3,"disp":true,"width":"6","collapse":false},{"id":"8ba9a508.0de338","type":"ccu-connection","z":"","name":"MEQ0835470","host":"192.168.178.63","regaEnabled":true,"bcrfEnabled":true,"iprfEnabled":true,"virtEnabled":true,"bcwiEnabled":false,"cuxdEnabled":true,"regaPoll":true,"regaInterval":"30","rpcPingTimeout":"60","rpcInitAddress":"","rpcServerHost":"192.168.178.47","rpcBinPort":"2064","rpcXmlPort":"2065","contextStore":""},{"id":"854ed8de.9e9558","type":"ui_tab","z":"","name":"testy","icon":"dashboard"},{"id":"fe205248.f04ed","type":"ui_tab","z":"","name":"Geräte","icon":"dashboard","order":2},{"id":"b88d160.bfaa8e8","type":"ui_tab","z":"","name":"testy-2","icon":"dashboard"}]

Jeeper.at
Beiträge: 380
Registriert: 05.01.2016, 09:27
Wohnort: Wien
Hat sich bedankt: 19 Mal
Danksagung erhalten: 1 Mal

Re: Dashboard

Beitrag von Jeeper.at » 23.11.2018, 22:49

Ganz klar IOBroker.

Hat alles was ich benötige und noch viel mehr. Und es funktioniert einfach.

Fonzo
Beiträge: 6687
Registriert: 22.05.2012, 08:40
System: CCU
Hat sich bedankt: 25 Mal
Danksagung erhalten: 478 Mal

Re: Dashboard

Beitrag von Fonzo » 24.11.2018, 10:41

Conrad Connect gibt es auch noch, das hat Anbindung an Homematic IP.

Antworten

Zurück zu „RedMatic“