NEWS
Einfach mal zeigen will….. :-) - Teil 2
-
Servus alle,
danke an @painkillerde es hat funktioniert, was ich nur immer falsch gemacht habe, weil ich es nicht verstanden habe (noch immer nicht) , ist im Bereich "Sichtbarkeit" alles zu entfernen und nur mit dem Analog Wert im "Allgemein" zu arbeiten. Jetzt verändert sich der Hintergrund, wie ich will .
Ich nutze die Hintergrund Veränderung bei unsere Rollos, leider änder sich dort die Farben nur im 25% Schritten, hätte gern eine Art blinken hinbekommen, aber das muss ich später wohl ganz anders lösen.
Danke
Ostpower
-
Hallo Daniel,
erst einmal vielen lieben Dank für die Bereitstellung deiner Arbeiten, die einem Anfänger, wie mir, einen durchaus kleinen Einblick in die Vis ermöglicht. Deine Arbeiten sind wirklich sehr lobenswert. Hut ab !
Habe dein Projekt importiert, soweit so gut. Komme aber irgendwie nicht mit der Zuordnung der Farben im View Fenster/Steckdosen bei offen, gekippt oder geschlossen klar. Bei mir passiert da wirklich nicht viel. Alles grün oder gar nichts.
Habe ich da zufällig was übersehen ? Eine Javascript welches ich noch einbauen muss ? Die Anpassung der CSS ?
Bei den Batterien habe ich auch das Problem, dass die Xiaomi Sensoren nicht erkannt werden da diese ja ein Wert (Volt) ausgeben. Hättest du da einen Tipp für mich ?
Vielen lieben Dank für deinen Ratschlag
MfG Frank `
Hallo Frank,
zu den Xiaomi Sensoren kann ich Dir leider nicht helfen. Die Batteryfunktion ist ja quasi schon in den Widgets integriert und ich nutze sie einfach…sry.
Bei den Fenstern / Steckdosen musst Du aufpassen. Die farbigen Kreise liegen hinter den Icons. Da muss man am Rand sehr genau Klicken um sie zu markieren. Wenn Du sie dann hast ist es in den Eigenschaften recht einfach - du musst dort nur die ObjektIDs 2 mal setzen.
fenster.JPG `
Hi,
Könntest du mir bitte dein export von den Fenstern geben?
Ich hatte von Seite 11 dein Projekt runtergeladen aber irgedwie bekomme ich das nicht eingefügt.
Ich bräuchte nur für die Fenster was.
Danke dir schon mal
-
Erstmal Danke für Deine Views, ich habe mir die mal importiert, um damit mal zu basteln und das Thema Visu kennenzulernen.
So hat man ja relativ schnell schon mal ein Erfolg und hat was zu gucken
Bei Deinem Bild System, da hast Du ja Offline-Geräte und Low-Bat etc aufgelistet, aber dazu fehlt mir das passende Script für Offline:
GERÄTE OFFLINE - {javascript.0.zählenUNREACH.anzahlUNREACH} VON {javascript.0.zählenUNREACH.möglicheUNREACH}
Beim LOWBatt muss ich noch schauen, da habe ich 0 von 0 Geräten.
Wobei ich keine HM-Geräte habe,sondern nur Xiaomi (Zigbee) oder ZWave. Ich denke da muss ich noch auf was anderes schauen…
Gruß Thomas
-
@Rummelmugge:Hier mein aktuelles Smartphone UI und hier auch als https://www.youtube.com/watch?v=ofWp_UoPVhQ&t=11s.
Wir benutzen unser Smartphone viel öfter zum Steuern von ioBroker als das Wandtablet. Deswegen steck ich da viel mehr arbeit rein. Ist das bei euch auch so?
! Screenshot_20180909-115652.jpgScreenshot_20180909-120205.jpgScreenshot_20180909-120043.jpgScreenshot_20180909-115812.jpgScreenshot_20180909-115748.jpg `
Hallo Rummelmugge,
finde dein Smartphone UI super, besonderes Interesse hab ich an den Lichtszenen mit den Iconbilder.
Könntest du nochmals versuchen diese als Exportdatei bereitzustellen?
Danke im voraus und schöne Grüße
Christian `
Hallo Christian,
geplant hatte ich, mich heute nochmal an den export zu begeben. Gestern beim Aufbauen meiner neuen Küche ist dann der Supergau passiert. FI ist rausgeflogen und hat dabei meine iobroker installation gekillt. Die Dateien konnte ich zwar noch kopieren, und mit einem 1 Monate alten Backup vieles wiederherstellen, aber die gezeigte Smartphone UI ist nach dem Backup erstellt worden und ich kann die nur noch teilweise wiederherstellen.
Ich muss jetzt erstmal weider den Scherbenhaufen zusammenkehren und schauen was noch klappt. Sobald ich land sehe stelle ich das aber gerne hier zur Verfügung.
Wie sichert ihr euch denn gegen Stromausfälle?
-
Hi Daniel,
vielen Dank hat geklappt
Mit diesem Script kannst den LOWBat deiner Xiaomi auslesen
Nicht von mir, habe ich im Forum gefunden. Funktioniert auch soweit sehr gut.
Allerdings erkennt er natürlich keine HM-Sensoren, den HM LowbatScript parallel unter einem anderen Namen laufen zu lassen funktioniert bei mir leider nicht
8995_lowbat_xiaomi.txt -
Bin kein Profi, aber so könntest Du beides kombinieren
createState('zählenLowbat.möglicheLOWBAT', 0); // wenn benötigt: Anzahl der vorhandenen LOWBAT createState('zählenLowbat.anzahlLOWBAT', 0); // wenn benötigt: Anzahl der vorhandenen LOWBAT createState('zählenLowbat.textLOWBAT', " "); // Anzahl LOWBAT, die an sind als Variable unter Javascript.0 anlegen var minlevel = 70; // HIER LEGT DU DEINE SCHWELLE FEST. ICH HABE DIE 87% WILLKÜRLICH GEWÄHLT, denn damit sollte beim Test mindestens einmal "lowbat".rauskommen var cacheSelectorLOWBAT = $('channel[state.id=*.percent|.LOW_BAT]'); // HIER HABE ICH NUN AUF DEIEN PROZENT WERT VERWIESEN function countLowbat(obj) { // Setzt die Zähler vor dem Durchlauf aller Elemente auf 0 var moeglicheLOWBAT = 0; var textLOWBAT = []; if (obj) { log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat } else { log('Ausgelöst bei Timer'); } cacheSelectorLOWBAT.each(function (id, i) { // Schleife für jedes gefundenen Element *.LOWBAT var value = getState(id).val; // Zustand *.LOWBAT abfragen (jedes Element) var obj = getObject(id); var status = getState(id).val; var name = getObject(id).common.name; if( status === true ) devicename = name.substring(0, name.indexOf(".STATE")); else devicename = name.replace("Battery percent",""); if (status === true || status <= minlevel)) { // wenn Zustand der Variable "lowbattery" = true, dann wird die Anzahl der Geräte hochgezählt textLOWBAT.push(devicename); // Zu Array hinzufügen } log("Geräte Nr. " + i + ": " + devicename + "meldet: " + lowbattery); ++moeglicheLOWBAT; // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status }); // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon LOWBAT zutreffend) ausgegeben log("Text: " + textLOWBAT.join(', ')); log("Anzahl Geräte: " + moeglicheLOWBAT + " # davon LOWBAT erkannt: " + textLOWBAT.length); // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS) setState("zählenLowbat.textLOWBAT", textLOWBAT.join(', ')); // Schreibt die aktuelle Namen der Geräte mit LOWBAT Meldung setState("zählenLowbat.anzahlLOWBAT", textLOWBAT.length); // Schreibt die aktuelle Anzahl der Geräte im System setState("zählenLowbat.möglicheLOWBAT", moeglicheLOWBAT); // Schreibt die aktuelle Anzahl der vorhandene Geräte } cacheSelectorLOWBAT.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken countLowbat(obj); }); schedule("*/60 * * * *", function () { //oder!! soll entweder ausgelöst werden alle 10 Minuten countLowbat(); }); // Bei Start: countLowbat();
-
Hallo, ich stelle auch mal wieder mein aktuelles Projekt rein, ist noch nicht Komplet fertig…......
-
Hallo sigi ,
kannst du hier deinen Export posten?
-
Kann ich gerne machen wenn der anonymisierte Export funktionieren würde…........
-
Hmmm , kannst du nicht einfach den Ordner unter /opt/iobroker/iobroker-data/files/vis.0/dein-name/ rauskopieren und als Rar packen oder so ?
Ich habe mal getestet und funktioniert auch so , keine Ahnung was genau da anonymisiert wird aber so geht auch .
-
Hi sigi234,
hätte auch interesse an deiner Vis vor allen an der Kodi Vis. Müsstest mir mal erklären wie du den Kodi aktiviert hast hänge schon seit 2 Wochen daran den Adapter ans laufen zu bekommen aber es klappt nicht.
Gruß
helfi
-
Zeige mal deine Einstellungen….........
-
Hi,
Könntest du mir bitte dein export von den Fenstern geben?
Ich hatte von Seite 11 dein Projekt runtergeladen aber irgedwie bekomme ich das nicht eingefügt.
Ich bräuchte nur für die Fenster was.
Danke dir schon mal `
gerne … IDs sind anaonym...
-
@Rummelmugge:[
Wie sichert ihr euch denn gegen Stromausfälle? `
Hatte das gleiche, allerdings war das letzte Backup 8 Monate alt. Ich glaub, da war ich dann ne Stunde im Keller zum Heulen…
Seit dem nehm ich das BackItUp-AddOn und sicher aller 2 Tage auf meine NAS - die wiederum sichert jede Nacht aufs Strato-Hidrive.
-
Mit diesem Script kannst den LOWBat deiner Xiaomi auslesen
Nicht von mir, habe ich im Forum gefunden. Funktioniert auch soweit sehr gut.
Allerdings erkennt er natürlich keine HM-Sensoren, den HM LowbatScript parallel unter einem anderen Namen laufen zu lassen funktioniert bei mir leider nicht `
Danke für das Script, aber das klappt bei mir leider nicht
Die Xiaomis (Aqara) haben kein LowBat sondern einfach ein Battery, da habe ich schon mal die eine Zeile so angepasst:
var cacheSelectorLOWBAT = $('channel[state.id=*.battery]'); // HIER HABE ICH NUN AUF DEIEN PROZENT WERT VERWIESEN
Damit erreiche ich schon mal, dass er meine 13 Geräte auch durchzählt und auch sagt das X sich melden.
Danach habe ich aber folgende Meldungen im Log:
7:48:53.911 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 1: meldet: true 17:48:53.911 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 2: meldet: true 17:48:53.911 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 3: meldet: true 17:48:53.911 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 4: meldet: true 17:48:53.911 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 5: meldet: true 17:48:53.911 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 6: meldet: true 17:48:53.911 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 7: meldet: true 17:48:53.911 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 8: meldet: true 17:48:53.911 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 9: meldet: true 17:48:53.912 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 10: meldet: true 17:48:53.913 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 11: meldet: true 17:48:53.913 [info] javascript.0 script.js.Batterieanzeige.LowBat: Geräte Nr. 12: meldet: true 17:48:53.913 [info] javascript.0 script.js.Batterieanzeige.LowBat: Text: , , , , , , , , , , , 17:48:53.913 [info] javascript.0 script.js.Batterieanzeige.LowBat: Anzahl Geräte: 13 # davon LOWBAT erkannt: 12 17:48:53.913 [info] javascript.0 script.js.Batterieanzeige.LowBat: registered 13 subscriptions and 1 schedule 17:50:00.910 [info] javascript.0 script.js.Batterieanzeige.LowBat: Ausgelöst bei Timer
Nach der Gerätenummer sollte der "Devicename" kommen, doch der wird ja im Script noch gekürzt vom "Battery percent".
Schaue ich mir im RAW das an, dann ist der Device Name aber nur der "Battery percent" .
{ "type": "state", "common": { "name": "Battery percent", "type": "number", "unit": "%", "read": true, "write": false, "role": "battery.percent", "min": 0, "max": 100, "icon": "img/battery_p.png" }, "from": "system.adapter.zigbee.0", "ts": 1539273177032, "_id": "zigbee.0.00158d0002320570.battery", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "native": {} }
Im Grunde müsste ich erst eine Ebene höher springen, um dann dort den Namen auszulesen.
{ "type": "device", "common": { "name": "Aussentemperatur", "type": "lumi.weather", "icon": "img/aqara_temperature_sensor.png" }, "from": "system.adapter.zigbee.0", "ts": 1539209821969, "_id": "zigbee.0.00158d0002320570", "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "user": "system.user.admin", "native": {} }
Kennt da einer den Weg? Oder denke ich falsch?
Sollte dies hier schon zu OffTopic sein, dann bitte melden und als eigenen Thread o.ä. verschieben
-
@Rummelmugge:Hallo Christian,
geplant hatte ich, mich heute nochmal an den export zu begeben. Gestern beim Aufbauen meiner neuen Küche ist dann der Supergau passiert. FI ist rausgeflogen und hat dabei meine iobroker installation gekillt. Die Dateien konnte ich zwar noch kopieren, und mit einem 1 Monate alten Backup vieles wiederherstellen, aber die gezeigte Smartphone UI ist nach dem Backup erstellt worden und ich kann die nur noch teilweise wiederherstellen.
Ich muss jetzt erstmal weider den Scherbenhaufen zusammenkehren und schauen was noch klappt. Sobald ich land sehe stelle ich das aber gerne hier zur Verfügung.
Wie sichert ihr euch denn gegen Stromausfälle? `
Hallo Rummelmugge,
daß ist ja Sch….
Wenn alles wieder fertig Sortiert ist und du dann die Zeit hast kannst es gerne Exportieren und bereitstellen. Danke
Gruß Christian
-
Hallo sigi234,
auch ich wäre sehr interessiert an deinem View.
Vielleicht findest du doch noch einen Weg diesen zu exportieren.
Danke und Gruß
Christian
-
Mit diesem Script kannst den LOWBat deiner Xiaomi auslesen
Nicht von mir, habe ich im Forum gefunden. Funktioniert auch soweit sehr gut.
Allerdings erkennt er natürlich keine HM-Sensoren, den HM LowbatScript parallel unter einem anderen Namen laufen zu lassen funktioniert bei mir leider nicht `
Danke für das Script, aber das klappt bei mir leider nicht `
Hallo tugsi,
das Skript habe ich damals geschrieben, basierend auf dem LowBat Skript für Homematic von ich meine Pix. Die normalen Xiaomi Teile haben die Angabe Percent. Darüber läuft das Skript. Zeig doch mal bitte die Datenpunkte der aqara, dann kann man weitersehen. Ich rate aber mal, dass die auch einen Percent Wert haben.
das LowBat ist hier einfach nur eine Variable und hat nichts mit dem Status "low_bat" oder "lowbat" der Homematic Komponenten zu tun. Ich war nur zu faul, die Kommentierung aus dem originären Homematic low_bat skript zu entfernen, daher wahrscheinlich deine Verwirrung.
Mit korrigierter Kommentierung:
function countLowbat(obj) { // Setzt die Zähler vor dem Durchlauf aller Elemente auf 0 var moeglicheLOWBAT = 0; var textLOWBAT = []; var lowbattery = false; // NEU EINGEFÜGT, um bei niedrigem Prozntwert entsprechend hochzuzählen if (obj) { log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat } else { log('Ausgelöst bei Timer'); } cacheSelectorLOWBAT.each(function (id, i) { // Schleife für jedes gefundenen Element *.percent var value = getState(id).val; // Zustand *.percent abfragen (jedes Element) if(value < minlevel){lowbattery = true} else {lowbattery = false} // NEU EINGEFÜGT. Ist der Ladestand kleiner als der Schwellwert? Wenn ja, setze die Variable lowbattery auf true var obj = getObject(id); var name = getObject(id).common.name; var devicename = name.replace("Battery percent",""); if (lowbattery=== true) { // wenn Zustand der Variable "lowbattery" = true, dann wird die Anzahl der Geräte hochgezählt textLOWBAT.push(devicename); // Zu Array hinzufügen } log("Geräte Nr. " + i + ": " + devicename + "meldet: " + lowbattery); ++moeglicheLOWBAT; // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status }); // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon geringer Ladestatus zutreffend) ausgegeben log("Text: " + textLOWBAT.join(', ')); log("Anzahl Geräte: " + moeglicheLOWBAT + " # davon LOWBAT erkannt: " + textLOWBAT.length); // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS) setState("zählenLowbat.textLOWBAT", textLOWBAT.join(', ')); // Schreibt die aktuelle Namen der Geräte mit LOWBAT Meldung setState("zählenLowbat.anzahlLOWBAT", textLOWBAT.length); // Schreibt die aktuelle Anzahl der Geräte im System setState("zählenLowbat.möglicheLOWBAT", moeglicheLOWBAT); // Schreibt die aktuelle Anzahl der vorhandene Geräte } cacheSelectorLOWBAT.on(function(obj) { // bei Zustandänderung *.percent in allen Gewerken countLowbat(obj); }); schedule("*/60 * * * *", function () { //oder!! soll entweder ausgelöst werden alle 10 Minuten countLowbat(); }); // Bei Start: countLowbat();
-
Danke für die Antwort,
nein die Kommentierung hat mich jetzt nicht irritiert, ich suche ja schon etwas nach diesem Script hier und wusste, dass es für die HM-Geräte erstellt wurde.
Nur bin ich noch recht frisch hier bei iOBroker und finde mich erstmal zurecht
Wie Du siehst, gibt es zwar eine Prozentangabe, dass war für mich ja auch nicht das Problem, ich bekomme ja auch die Anzahl der möglichen Geräte und auch die Anzahl der mit einem Status "LowBat", aber ich erhalte nicht einen Namen.
script.js.Batterieanzeige.BatLow: Anzahl Geräte: 13 # davon LOWBAT erkannt: 12 .... script.js.Batterieanzeige.BatLow: Geräte Nr. 12: meldet: true
Aber eben keinen Namen dazu:
script.js.Batterieanzeige.BatLow: Text: , , , , , , , , , , ,
Ich bekomme ja nur einen Namen wie z.B. Aussentemperatur, wenn ich im Device im common.name schaue
{ "type": "device", "common": { "name": "Aussentemperatur", "type": "lumi.weather", "icon": "img/aqara_temperature_sensor.png" }, "from": "system.adapter.zigbee.0", "ts": 1539209821969, "_id": "zigbee.0.00158d0002320570", "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "user": "system.user.admin", "native": {} }
Ich bin aber ja "unterhalb" des Devices, wo ich die Prozentzahl, Temperatur etc bekomme:
{ "type": "state", "common": { "name": "Battery percent", "type": "number", "unit": "%", "read": true, "write": false, "role": "battery.percent", "min": 0, "max": 100, "icon": "img/battery_p.png" }, "from": "system.adapter.zigbee.0", "ts": 1539349041776, "_id": "zigbee.0.00158d0002320570.battery", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "native": {} }
Ich müsste also irgendwie von dort den übergeordneten Devicenamen bekommen
Klingt einfach… ist es aber nicht :lol:
Gruß
Thomas
-
Hier
viewtopic.php?f=21&t=869&hilit=HIER+LEG … &start=100
ist die Diskussion, aus der das Skript entstammt.
Dort war auch das gleiche Problem "keine Namen". Es lag daran, dass die Teile in der xiaomi App nicht benannt worden waren.
Sobald das nachgeholt und einmal neugestartet wurde, hat das Skript die Namen ausgelesen. Denn genau das tut es eigentlich auch, siehe hier:
var obj = getObject(id); var name = getObject(id).common.name; var devicename = name.replace("Battery percent","");