NEWS
[Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe
-
@pittini
sorry, aber ich habe noch ein Problem oder vlt nur ein Missverständnis.
Wenn der Name des Sensor mehrsprachig ist wird für den Name des Sensor [Object] [Object] angezeigt.
Oder sollte da der de Name der Funktion stehen? -
@mike-hellracer sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Wenn der Name des Sensor mehrsprachig ist wird für den Name des Sensor [Object] [Object] angezeigt.
Oder sollte da der de Name der Funktion stehen?Änder mal bitte wie aufm Bild zu sehen und sag obs dann klappt bitte.
Und hier als Text zum kopieren:
if (TblShowDeviceNameCol) { let tempName = getObject(GetParentId(Sensor[x].id), "common").common.name; if (typeof tempName == "object") tempName = tempName.de; MyTable += "<td " + style0 + BgColor + "'>" + tempName + "</td>"; };
-
@pittini
Yep, das war's
Habe hier die Variable "enumCategory" auch für dieses Script...
und die anzupassenden Zeilen 126, 232, 294
-
@mike-hellracer sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
let Funktionen = getEnums(WhichEnumCategoryToUse); //Array mit Aufzählung der Funktionen
Drin v1.8.3.
-
@pittini
Top, Danke -
Wenn ich kurz umschalte von false auf true und zurück dann zeigt er auch kurz false und true an... dann wechselt er aber wieder auf die 0. Also ist das ein Bug im Adapter für Jeelink? Hast du eine Idee wie man das als Workaround lösen kann?
Vielen Dank
G ROBudus
-
@robudus sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Hast du eine Idee wie man das als Workaround lösen kann?
Evtl. mit Alias bzw. linkedDevices. Aber das sinnvollste wär der Adapter gibt nen echten Bool aus.
-
@pittini
Hi,
das Problem mit [Object] [Object] ist zwar in der Tabelle weg, Aber ich habe das auch noch bei der Ansicht im St0Ma Message Creator.
Kannst du da bitte noch mal schauen.
Danke -
@mike-hellracer sagte in [Vorlage] Generische Batteriestandsüberwachung + Vis-ausgabe:
Aber ich habe das auch noch bei der Ansicht im St0Ma Message Creator.
Was fürn Ding?
Kannst du da bitte noch mal schauen.
Gern, wenn ich wüßte wonach bzw. worums eigentlich geht.
-
@pittini
sorry, ich dachte du kennst den
Ursache: ist der Value im DP
Javascript.0.BatterieUeberwachung.NextExpectedLowBatt -
@mike-hellracer V1.8.4 sollte es tun, hab die anderen 7 Vorkommen auch gleich mit gemacht.
-
@pittini
Danke probiere ich morgen aus. -
Hallo und vielen Dank für dieses super Script.
Ich habe eine Frage, kann man einstellen, wie häufig das Script ausgeführt wird, bzw. wie häufig die Meldungen kommen.
Ich habe Pushover als Benachrichtigung eingestellt, aber die Nachrichten kommen ca. im Stundentakt.Gruß
Christian -
@c-radi Ich nehm mal an, es geht um dieses Problem: https://github.com/Pittini/iobroker-Batterienauswertung/issues/22 Wird gefixt sobald ich Zeit über hab.
-
Habe das Script erst heute installiert und deswegen noch nicht viel Erfahrung damit, aber ich würde das Problem über ein Array lösen, in dem ich mir einfach die bereits erzeugten Meldungen von einem Tag merken würde und diese dann ignorieren würde.
Ab Zeile 63 ein neues Array "MekerMeldungen" erstellen. (Name kann frei definiert werden)
let MekerMeldungen = [];
Die function Meldung(msg) dann folgendermaßen ändern:
function Meldung(msg) { let Start = msg.indexOf('unter'); if (Start <=0){Start = 0} if (!MekerMeldungen.includes(msg.substr(Start))){ MekerMeldungen.push(msg.substr(Start)); log("Reaching Meldung(), msg=" + msg); if (UseSay) Say(msg); if (UseTelegram) { sendTo(TelegramInstance, "send", { user: TelegramUser, text: msg }); }; if (UseMail) { sendTo("email", { html: msg }); }; if (UseAlexa) { if (AlexaId != "") setState(AlexaInstance + ".Echo-Devices." + AlexaId + ".Commands.announcement"/*announcement*/, AlexaVolume + "; " + msg); }; if (UsePushover) { sendTo(PushoverInstance, { device: PushoverDevice, message: msg, title: PushOverTitle, priority: 0, retry: 60, expire: 600, html: 1 }); }; } if (logging) log(msg); if (UseEventLog) WriteEventLog(msg); if (UsePopUp) ShowPopUp(true, msg, "Batterys", "red"); }
Um aber jeden Tag wieder eine Meldung zu bekommen, muss jetzt nur noch jeden Tag das Array "MekerMeldungen" gelöscht werden.
Am einfachsten über ein Schedule:schedule({hour: 0, minute: 1}, function () { MekerMeldungen = []; });
Vielleicht will ja Pittini das übernehmen oder es gibt eine bessere Lösung.
Nachtrag:
Habe gerade bemerkt das im msg String auch die aktuelle Spannung enthalten ist.
Somit würde mein Vorschlag so nicht funktionieren, da jede Spannungsänderung als neue Meldung durchrutschen würde.
Eine Möglichkeit wäre, die aktuelle Spannung aus dem Meldungstext zu entfernen.
Habe meinen Code oben jetzt korrigiert.
Ich suche in der Variable msg jetzt das Wort „unter“ und verwende den String ab diesem Wort, um gleiche Meldungen zu filtern.
Funktioniert erst mal. -
Ich hab mal eine Frage, ich habe meine Geräte nun alle mit dem Script verknüpft, was mache ich denn bei solchen Kandidaten ?
Da gibt es nur Batterie %
-
@d3ltoroxp Genauso anlegen wie alle anderen auch, erkennt das Skript selber was das ist. Siehe auch Anleitung .2.
-
@pittini Vielen Dank, ich hatte auf Git die Anleitung durchgelesen aber ich finde diesen Punkt nicht, ich muss Blind sein ? Was gebe ich denn da an ?
BatteryMinLimit_30
EDIT :: Ich habs gefunden, gleich 2 Satz.
Diese neue Funktion DeadCheck kann ich auch nutzen für z.b. Fensterkontakte, um zu schauen ob sie noch eine Verbindung haben oder erreichbar sind, genau so wie Geräte die gar keine Batterie haben.
-
@Pittini Da es ja bekanntermaßen Probleme mit dem DeadCheck gibt, weil sich States oft nur selten melden, wäre ein DeadCheck mit Zeitangabe sinnvoll?
Also quasi DeadCheck_24 für 24h oder DeadCheck_72 für 72h....... -
@schmakus Isses Wert drüber nachzudenken. Da ich grad aber keine Zeit hab, bitt Issue auf Git, damits nicht vergessen wird, ob ich je dazukomme is ne andere Frage.