@arteck ah! Sehe ich mir an
NEWS
Roland Ambrosch
@Roland Ambrosch
Latest posts made by Roland Ambrosch
-
RE: JS / connection-status der linkeddevices anzeigen
-
JS / connection-status der linkeddevices anzeigen
Hi,
nachdem ich immer nur mitlese, mal was sinnvoll zu Teilendes:
Falls jemand auch linkeddevices verwendet und gerne in VIS eine Übersicht hätte ob irgendwelche verlinkten Geräte aus zwave2, sonoff oder shelly Probleme machen, kann gerne mein Script verwenden.Der Output sieht dann so aus:
var StatusHTMLzwave = 'javascript.0.zwave2NodeStatus'; var StatusHTMLshelly = 'javascript.0.shellyNodeStatus'; var StatusHTMLsonoff = 'javascript.0.sonoffNodeStatus'; var StatusHTMLlinkeddevices = 'javascript.0.linkeddeviceNodeStatus'; createState(StatusHTMLzwave, false, { read: true, write: true, type: 'string', name: 'Status aller IoT Sensoren/Aktoren als HTML', desc: 'Status aller IoT Sensoren/Aktoren als HTML' }); createState(StatusHTMLshelly, false, { read: true, write: true, type: 'string', name: 'Status aller IoT Sensoren/Aktoren als HTML', desc: 'Status aller IoT Sensoren/Aktoren als HTML' }); createState(StatusHTMLsonoff, false, { read: true, write: true, type: 'string', name: 'Status aller IoT Sensoren/Aktoren als HTML', desc: 'Status aller IoT Sensoren/Aktoren als HTML' }); createState(StatusHTMLlinkeddevices, false, { read: true, write: true, type: 'string', name: 'Status aller IoT Sensoren/Aktoren als HTML', desc: 'Status aller IoT Sensoren/Aktoren als HTML' }); function checkIoT(){ /////////////////////ZWAVE // Get a list of all nodes under the Z-Wave2 root var nodes = $('zwave2.0.*.ready'); // Initialize the HTML string let itemListHTML = '<h1>Z-Wave2 Node Status</h1>'; nodes.each(function (id, i) { const nodeReady = getState(id); // Determine the circle color based on the "ready" state const circleClass = nodeReady.val ? 'green' : 'red'; // Add the item to the HTML list itemListHTML += ` <div class="item"> <div class="circle ${circleClass}"></div> <span>${id}: ${nodeReady.val ? 'Ready' : 'Not Ready'}</span> </div> `; }); // Create or update an HTML state in ioBroker to display the list setState(StatusHTMLzwave, itemListHTML, true); /////////////////////SONOFF // Get a list of all nodes under the Z-Wave2 root nodes = $('sonoff.0.*.alive'); // Initialize the HTML string itemListHTML = '<h1>SONOFF Node Status</h1>'; nodes.each(function (id, i) { const nodeReady = getState(id); // Determine the circle color based on the "ready" state const circleClass = nodeReady.val ? 'green' : 'red'; // Add the item to the HTML list itemListHTML += ` <div class="item"> <div class="circle ${circleClass}"></div> <span>${id}: ${nodeReady.val ? 'Ready' : 'Not Ready'}</span> </div> `; }); // Create or update an HTML state in ioBroker to display the list setState(StatusHTMLsonoff, itemListHTML, true); /////////////////////SHELLY // Get a list of all nodes under the Z-Wave2 root nodes = $('shelly.0.*.online'); // Initialize the HTML string itemListHTML = '<h1>SHELLY Node Status</h1>'; nodes.each(function (id, i) { const nodeReady = getState(id); // Determine the circle color based on the "ready" state const circleClass = nodeReady.val ? 'green' : 'red'; // Add the item to the HTML list itemListHTML += ` <div class="item"> <div class="circle ${circleClass}"></div> <span>${id}: ${nodeReady.val ? 'Ready' : 'Not Ready'}</span> </div> `; }); // Create or update an HTML state in ioBroker to display the list setState(StatusHTMLshelly, itemListHTML, true); /////////////////////LINKED DEVICES nodes = $('linkeddevices.0.*'); // Initialize the HTML string itemListHTML = ''; nodes.each(function (id, i) { var dPoint = getObject(id,"true"); if (dPoint && dPoint.common) { var settings = dPoint.common.custom; //check if it is a linkeddevice var dpCustom = false; if(settings) if(settings['linkeddevices.0']) if(settings['linkeddevices.0'].enabled) dpCustom = settings['linkeddevices.0'].enabled; if(dpCustom) { //explode the parentid var parentid = settings['linkeddevices.0'].parentId ? settings['linkeddevices.0'].parentId : ""; if(parentid == "") return; const parts = parentid.split('.'); if (parts.length >= 3) { //extract the parentState const parentState = parts.slice(0, 3).join('.'); if(parts[0] == 'zwave2') { const nodeReady = getState(parentState + '.ready'); // Determine the circle color based on the "ready" state const circleClass = nodeReady.val ? 'green' : 'red'; // Add the item to the HTML list itemListHTML += ` <div class="item"> <div class="circle ${circleClass}"></div> <span>${id}: ${nodeReady.val ? 'Ready' : 'Not Ready'}</span> </div> `; } } } } }); // Create or update an HTML state in ioBroker to display the list setState(StatusHTMLlinkeddevices, itemListHTML, true); } checkIoT(); schedule('* * * * *',checkIoT);
-
RE: Test Adapter vis 2.0 (Alpha)
ich laufe in irgendeinen Bug -
Ablauf- vis2 zum ersten Mal installiert
- widgets installiert
- aufruf der VIS2
- ich sehe das menü und wie die vis versucht etwas zu laden und dann
- kommt ein weißer Schirm
Irgendwas fehlt anscheinend:
-
RE: Test Adapter shuttercontrol v1.7.x
Hi,
genialer Adapter aber ich hab ein Problem mit dem automatischen Öffnen und Schließen der Rollos bei einem Fenster.
Wenn ich bei geschlossenem Rollo das Fenster öffne, geht es rauf aber beim Schließen nicht mehr runter. Der Adapter liefert dann im Log (auf level debug): "Waring! - not allowed empty values detected - close your window and initialize your shutters with button up! - triggerAction: at device: Rollo Gaeste"
Ich finde im Code, dass das Array triggerAction leer ist und ich in meiner Config steht dort nichts drin.
Was mache ich falsch?
Meine Config:
{ "_id": "system.adapter.shuttercontrol.0", "common": { "name": "shuttercontrol", "version": "1.1.5", "title": "shuttercontrol", "authors": [ "simatec <nais@gmx.net>" ], "keywords": [ "ioBroker", "Smart Home", "home automation", "Rollladen", "Jalousie", "Rollladensteuerung" ], "license": "MIT", "platform": "Javascript/Node.js", "main": "main.js", "icon": "shuttercontrol.png", "enabled": true, "extIcon": "https://raw.githubusercontent.com/simatec/ioBroker.shuttercontrol/master/admin/shuttercontrol.png", "readme": "https://github.com/simatec/ioBroker.shuttercontrol/blob/master/README.md", "loglevel": "debug", "mode": "daemon", "type": "climate-control", "compact": true, "materialize": true, "stopBeforeUpdate": true, "dependencies": [ { "admin": ">=3.0.0" } ], "installedFrom": "https://github.com/simatec/ioBroker.shuttercontrol/tarball/master", "installedVersion": "1.1.5", "host": "iobrokerPI4", "plugins": { "sentry": { "dsn": "https://5f58df7167d846e3a90bae5414d4fc09@sentry.iobroker.net/62" } }, "contributors": [ "Rene G. <info@rg-engineering.eu>" ] }, "native": { "livingAutomatic": "livingSunriseSunset", "W_shutterDownLiving": "22:00", "W_shutterUpLivingMin": "05:00", "W_shutterUpLivingMax": "06:00", "driveDelayUpLiving": "10", "WE_shutterDownLiving": "22:00", "WE_shutterUpLivingMin": "05:00", "WE_shutterUpLivingMax": "06:00", "sleepAutomatic": "sleepSunriseSunset", "W_shutterDownSleep": "20:00", "W_shutterUpSleepMin": "06:00", "W_shutterUpSleepMax": "06:30", "driveDelayUpSleep": "10", "WE_shutterDownSleep": "21:00", "WE_shutterUpSleepMin": "06:00", "WE_shutterUpSleepMax": "06:30", "childrenAutomatic": "childrenSunriseSunset", "W_shutterDownChildren": "20:00", "W_shutterUpChildrenMin": "06:00", "W_shutterUpChildrenMax": "06:30", "driveDelayUpChildren": "10", "WE_shutterDownChildren": "21:00", "WE_shutterUpChildrenMin": "06:00", "WE_shutterUpChildrenMax": "06:30", "latitude": "...", "longitude": "...", "sunProtEndElevation": "10", "astroDelayUp": "30", "astroDelayDown": "30", "driveDelayUpAstro": "10", "SummerStart": "01.03.", "SummerEnd": "30.09.", "XMasStart": "01.12.", "XMasEnd": "06.01.", "publicHolidays": false, "publicHolInstance": "feiertage.0", "HolidayDP": "", "LateAllDown": false, "LateAllDownTime": "22:15", "betweenPositionTime": "22:00", "noGoTime": "0", "currentShutterState": false, "triggerAutoSleep": "hm-rpc.0.MEQ1234567.2.STATE", "triggerAutoLiving": "hm-rpc.0.MEQ1234567.2.STATE", "triggerAutoChildren": "hm-rpc.0.MEQ1234567.2.STATE", "heightDownSun": "30", "direction": "120", "type": "off", "directionRange": "50", "actualValueTemp": "", "actualValueLight": "", "actualValueTempInside": "", "typeDown": "sunset", "typeUp": "off", "triggerStateShutter": "false", "triggerChangeShutter": "upDown", "triggerDriveShutter": "99", "autoDriveShutter": "onlyUp", "heightDownShutter": "99", "heightUpShutter": "0", "triggerID": "alias.0.Gaestezimmer.Fenster.ACTUAL", "LateDown": false, "inSummerNotDown": false, "driveAfterClose": false, "useXmasLevel": false, "XmasLevel": "0", "KeepSunProtect": false, "trigDelyUp": "", "trigDelyDown": "", "betweenPosition": false, "betweenPositionLevel": "", "events": [ { "enabled": true, "shutterName": "Rollo Kueche", "name": "alias.0.Kitchen.Rollo_Kueche.SET", "triggerID": "", "typeUp": "manual-only", "typeDown": "elevation", "type": "in- & outside temperature", "heightDownSun": "50", "direction": "290", "directionRange": "15", "tempInside": "23", "tempSensor": "", "outsideTempSensor": "", "tempOutside": "23", "lightSensor": "", "valueLight": "15", "heightUp": "99", "heightDown": "0", "triggerState": "true", "triggerDrive": "", "triggerChange": "upDown", "elevation": "4", "autoDrive": "", "hysteresisOutside": "", "hysteresisInside": "", "hysteresisLight": "", "currentAction": "", "currentHeight": "", "oldHeight": "", "firstCompleteUp": "", "triggerHeight": "", "LateDown": false, "inSummerNotDown": false, "KeepSunProtect": false, "triggerAction": "", "driveAfterClose": false, "useXmasLevel": false, "XmasLevel": "", "betweenPosition": false, "betweenPositionLevel": "", "trigDelyUp": "", "trigDelyDown": "" }, { "enabled": true, "shutterName": "Rollo Theo", "name": "alias.0.Theo.Rollo.SET", "triggerID": "", "typeUp": "manual-only", "typeDown": "sunset", "type": "in- & outside temperature and direction", "heightDownSun": "30", "direction": "120", "directionRange": "50", "tempInside": "23", "tempSensor": "", "outsideTempSensor": "", "tempOutside": "23", "lightSensor": "", "valueLight": "15", "heightUp": "00", "heightDown": "99", "triggerState": "true", "triggerDrive": "0", "triggerChange": "off", "elevation": "4", "autoDrive": "off", "hysteresisOutside": "5", "hysteresisInside": "5", "hysteresisLight": "5", "currentAction": "", "currentHeight": "", "oldHeight": "", "firstCompleteUp": "", "triggerHeight": "", "LateDown": false, "inSummerNotDown": false, "KeepSunProtect": false, "triggerAction": "", "driveAfterClose": false, "useXmasLevel": false, "XmasLevel": "0", "betweenPosition": false, "betweenPositionLevel": "", "trigDelyUp": "", "trigDelyDown": "" }, { "enabled": true, "shutterName": "Rollo Gaeste", "name": "alias.0.Gaestezimmer.Rollo_Gaeste.SET", "triggerID": "alias.0.Gaestezimmer.Fenster.ACTUAL", "typeUp": "off", "typeDown": "sunset", "type": "off", "heightDownSun": "30", "direction": "120", "directionRange": "50", "tempInside": "23", "tempSensor": "", "outsideTempSensor": "", "tempOutside": "23", "lightSensor": "", "valueLight": "15", "heightUp": "0", "heightDown": "99", "triggerState": "false", "triggerDrive": "99", "triggerChange": "upDown", "elevation": "4", "autoDrive": "onlyUp", "hysteresisOutside": "5", "hysteresisInside": "5", "hysteresisLight": "5", "currentAction": "", "currentHeight": "", "oldHeight": "", "firstCompleteUp": "", "triggerHeight": "", "LateDown": false, "inSummerNotDown": false, "KeepSunProtect": false, "triggerAction": "", "driveAfterClose": false, "useXmasLevel": false, "XmasLevel": "0", "betweenPosition": false, "betweenPositionLevel": "", "trigDelyUp": "", "trigDelyDown": "" } ] } }
-
RE: Test Adaper Tado v0.1.x
@Dutchman ich hätte da mal wieder was für dich in Dauerschleife im Log
(25166) Send this info to developer !!! { Unhandable information found in DoHome : "legacyHeatingInstallationsEnabled" with value : true
-
Manuelle Ereignisse hinzufügen und tracken
Hallo,
Hat jemand schon mal daran gedacht über die vis spezielle Ereignisse manuell mit Zeitstempel zu tracken?
Meine Idee: ich drücke manuell einen Button und speichere diese Wertänderung als bool, somit auch den Zeitpunkt und zeige dies für unterschiedliche Aufgaben in einer Liste mit "Zeit vergangen seit..." an.
Use-case:
- Pflanzen gießen - jedesmal nach dem Gießen drück ich den Knopf und weiß wann ich das letzte Mal gegossen habe
- das gleiche für zb Gras düngen
- das gleiche für zb Staubsaugen
- das gleiche für zb Sauerteig
Gibt's da schon etwas? Hätte das gerne so, dass ich im vis auch neue "Ereignisse hinzufügen kann" und nicht manuell in einem JS und in Objekten herumtun muss.
Wer Ideen dazu hat wie ich das elegant lösen kann, bitte um Input.
-
rpi3 zwave nach neustart nur nach fixer lauffähi
Hallo,
bin begeisterter iobroker-User und habe neben Tado, homee auch zwave mit einem aeon stick am laufen. Alles rennt auf einem rpi3b+. Seit kurzem läuft auch Alexa über iot - läuft genial!
Nachdem ich selten neustarte, weiß ich nicht ob es das Upgrade von zwave auf 1.7.3 war aber zwave hängt jedesmal mit "failed to start driver".
Ich muss jedesmal den Berechtigungs-Fixer durchlaufen lassen und dann geht's wieder.
Habt ihr eine Idee was es hat? Ich finde leider im Log nichts...
Danke!
-
RE: Test Adaper Tado v0.1.x
Danke für den genialen Adapter!
Habe gerade frisch von github installiert und bekomme
Send this info to developer !!! { Unhandable information found in DoHome : "usePreSkillsApps" with value : true