NEWS
VORLAGE: Batterieüberwachung HomematicIP mit Blockly
-
Ich stelle jetzt mal zu meinem eigenen Script eine Frage.....
Weiß jemand, ob ich über eine zweite Liste noch die Erreichbarkeit meiner Geräte anzeigen kann?
Man könnte den mittleren Teil des Scripts ja quasi kopieren und auf unreach prüfen.Hab nur Sorge, dass die Reihenfolgen der beiden Listen ggf unterschiedlich sind, da ja nicht jedes Gerät was einen unreach State hat auch einen low_bat State hat.
-
@david-g sagte: nicht jedes Gerät was einen unreach State hat auch einen low_bat State hat.
So ist es. Wie soll die Liste aussehen? Wie bisher, nur zusätzliche Anzeige von "UNREACH"? Oder alle Geräte und keine Anzeige bei "LOW_BAT", wenn kein "LOW_BAT" vorhanden?
-
Am coolsten wäre einfach noch eine zweite Spalte mit grünen Punkten.
Die Tabelle bekomme ich la leicht erweitert, nur der Inhalt ^^.Gerät I Batterie I Empfang
Falls das nicht machbar ist, binde ich einfach 2 Tabellen ein.
-
@david-g sagte: Am coolsten wäre einfach noch eine zweite Spalte mit grünen Punkten.
Das beantwortet meine Frage nicht: Tabelle mit allen Geräten oder nur mit Batterie betriebenen Geräten?
Da ohnehin schon die Geräte-ID ermittelt wurde, muss man nur noch den restlichen Teil dranhängen (".0.UNREACH" bzw. ".0.LOW_BAT") und zusätzlich abfragen.
-
Mit allen Geräten.
Dann könnte man zB bei Geräten ohne Batterie einen grauen Punkt anzeigen anstatt einen grünen oder roten (oder keinen, falls es leichter ist). -
@david-g sagte: Mit allen Geräten.
Dann nimm als Selektor "hm-rpc.0.*.0.UNREACH" und frage zusätzlich
parentID + ".0.LOW_BAT"
ab, wobei erst mit existstState(id) geprüft werden müsste, ob vorhanden.
-
Selektor ändern bekomme ich noch hin ^^.
Danach hört es aber auf. Das mit der parentID verstehe ich eh nicht ganz. Steht da nur Dank deiner Hilfe aus dem Thread wo wir es erarbeitet haben. Genau wie beim existstState(id).
2 neue Variablen bräuchte ich doch bestimmt auch oder? -
@david-g sagte:
2 neue Variablen bräuchte ich doch bestimmt auch oder?
Wenn ich mir das Blockly so ansehe, dann eher 3:
@david-g sagte in VORLAGE: Batterieüberwachung HomematicIP mit Blockly:
bei Geräten ohne Batterie einen grauen Punkt anzeigen anstatt einen grünen oder roten
Die HTML-Geschichten muss ich komplett Dir überlassen, denn damit kenne ich mich gar nicht aus.
Eine JS-Funktion checkBatt(id) mit Ergebnis könnte so aussehen
if(existsState(id)) return getState(id).val; // false / true return -1
Prinzip der Auswertung:
-
Danke, werde ich morgen einbauen.
Hoffe die Kids lassen es zu.
Im Moment sind die nicht so ausgelastet (Hoffentlich macht der Kindergarten bald wieder auf....). -
Die Auswertung packe ich dann "einfach" mit in die Schleife rein, unter das erste "Falls" (nur eben mit getauschten Selektor im oberen Bereich)?
-
@david-g sagte: Die Auswertung packe ich dann "einfach" mit in die Schleife rein, unter das erste "Falls" (nur eben mit getauschten Selektor im oberen Bereich)?
Ja, so sehe ich das.
-
So, habe jetzt mal alles eingebaut und im Screenshot hervorgehoben was neu ist.
Das Uhrsprungsskript habe ich auf Unreach umgestellt, damit alle Geräte erscheinen.Oben die neue JS-Funktion, dann die Erzeugung des Textes für die Tabelle.
Weiter unten setzte ich den Text ein.Jetzt habe ich allerdings überall den grauen Punkt (hab erstmal nur den Text eingefügt zur Übersicht anstatt den HTML Code für den Punkt)
Angeblich hat jetzt kein Gerät eine Batterie.
-
@david-g sagte: Angeblich hat jetzt kein Gerät eine Batterie.
Prüfe mal mit einem Debug-Block, ob die an checkBatt(id) übergebene ID passt.
-
Sieht eigentlich gut aus.
Da ist der Debug:
Hier das Ergebnis. Die -1 ist vermutlich das Gerät ohne Batterie.
(Am Handy bekomme ich den Log nicht ordentlich kopiert....) -
@david-g sagte: Jetzt habe ich allerdings überall den grauen Punkt
Du prüfst zweimal auf wahr anstelle einmal auf wahr und einmal auf falsch.
-
-
@david-g Hallo! Könntest du freundlicher weise einmal das Blockly zum Kopieren reinstellen? Dankeschön!
-
Hey, schau mal in meine Signatur. Bei den Tabellen ist es bei.