NEWS
Gelöst: Zigbee Überwachung
-
Hallo ich habe ein Script zur Zigbee Überwachung gefunden. Leider wurde der orginal Thread geschlossen.
Das Script gibt mir leider nicht die Bezeichnungen der "offline Zigbee's" aus. Hier das Script:createState('zigbeestatus.Anzahl_Geräte', 0, {type: 'number'}); createState('zigbeestatus.offline', 0, {type: 'number'}); createState('zigbeestatus.Gerät', " ", {type: 'string'}); const zigbee = $('zigbee.0*.link_quality'); const loggen = true; var arrOFFLINE; function offline(id){ var obj = getObject(id); arrOFFLINE.push(obj.common.name); if(loggen) log("Gerät: " + obj.common.name); } function countOffline() { var moeglicheOFFLINE = 0; arrOFFLINE =[]; zigbee.each(function (id, i){ if(Math.round((new Date() - new Date(getState(id).ts)) / 1000 / 60) > 60) offline(id); ++moeglicheOFFLINE; }); if(loggen) log("Text: "+arrOFFLINE.join(', ')); if(loggen) log("Anzahl Geräte: " + moeglicheOFFLINE + " // davon offline: " + arrOFFLINE.length); setState("zigbeestatus.Gerät", arrOFFLINE.join(',<br>')); setState("zigbeestatus.offline", arrOFFLINE.length); setState("zigbeestatus.Anzahl_Geräte", moeglicheOFFLINE); } countOffline();
Und hier das was im Log steht:
15:09:00.011 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Text: Link quality, Link quality, Link quality, Link quality 15:09:00.011 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Anzahl Geräte: 11 // davon offline: 4 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality 15:10:00.000 info javascript.3 (14364) script.js.SYSTEM.Zigbee_Überwachung: Gerät: Link quality
Gibt es zu dem Thema noch ein weiteres Script?
Michael -
@michihorn
Du möchtest den Gerätenamen (eine Ordner-Ebene höher) ?function offline(id){ id = id.substring(0, id.lastIndexOf('.')); var obj = getObject(id); arrOFFLINE.push(obj.common.name); if(loggen) log("Gerät: " + obj.common.name); }
-
@paul53 sagte in Zigbee Überwachung:
function offline(id){
id = id.substring(0, id.lastIndexOf('.'));
var obj = getObject(id);
arrOFFLINE.push(obj.common.name);
if(loggen) log("Gerät: " + obj.common.name);
}Danke genau so...
-
@michihorn
Wieviele und Welche ZigBee-Devices hast Du in Deinem Netz?
Welchen Zigbee-Adapter (d.h. welche Hardware) verwendest Du?Ich hatte mir ein ähnliches Script geschrieben und habe dabei bemerkt, daß z.B. eine meiner Osram smart+ Steckdosen zwar erreichbar ist (d.h. läßt sich schalten), der timestamp der link_quality jedoch seit Tagen unverändert ist.
-
@gosund ja die Osram Dosen liefern nicht immer alles..
-
@arteck
Seltsamer Weise betrifft es nur eine. Und alle sind auf dem gleichen Softwarestand.
Hast Du eine Idee, wie ich zuverlässig ermitteln kann, ob sie erreichbar ist?
Ich habe zwei redundante Temperatursensoren im Gartenhaus und will damit bei unter 4°C schalten... -
Ich kenne genau einen Weg um sicher zu prüfen ob die Steckdose schaltbar ist:
SetState(„id“, getState(„id“), false)
Dann schauen ob der State aktualisiert wurde (mit ack) - dann hat die Hardware das schalten bestätigt. Das geht auch wenn der State sich eigentlich nicht verändert hat, da der Adapter auch ein erneutes setzen des gleichen Wertes an das Gerät schickt.A.
-
@Asgothian Aber setzt der Check nicht eine gewisse Wartezeit voraus? Das Kommando muss doch erst vom Gerät bestätigt werden, bevor ein Adapter ack=true setzt.
-
@AlCalzone korrekt. Es macht Sinn bei diesem Check 11 Sekunden zu warten bevor geschaut wird. Warum 11 ? 10 Sekunden ist der timeout im zigbee Adapter. Wenn innerhalb der 11 Sekunden nichts kommt kommt nichts mehr.
Ich würde den set Befehl per cron regelmässig (1 mal pro 2 Stunden ?) schicken und dann den State normal auf letzte Änderung unabhängig davon prüfen.
A.
-
@Asgothian
Perfekt, vielen Dank!