NEWS
UNSOLVED Script Xiaomi Battery leer ?
-
hi @lls
Gibt es Erfahrungswerte wie lange die Batterien der Xiaomi Aktoren halten? Natürlich ist mir klar um so öfters Daten gesendet werden um so schneller werden diese leer, dennoch würde ich gerne wissen ob Monate oder Wochen?!
Dann habe ich mir ein Blockly Script geschnitzt das mich informiert sobald eine der Batterien auf unter 20% fällt, habe hier zwar einige JS Scripte gefunden, konnte damit aber nichts anfangen!
würde das so passen?
-
Also meine Bewegungsmelder halten jetzt sicher schon über ein Jahr, wie lange das noch geht weiß ich nicht.
Den ersten Batteriewechsel musste ich an einem Temperatursensor vornehmen der im Badezimmer platziert ist.
Grundsätzlich würde ich also von 1 Jahr ausgehen.Ich glaube aber die report funktion des Batteriestatus funktioniert nicht wirklich zumindest nicht mit dem Raspbee den ich nutze, wie es mit dem Xiaomi Hub aussieht weiß ich nicht.
-
Ein Adapter wäre Cool, indem ich ioBroker Objekte mit Schwellwerten definieren kann. Entweder wird bei Über- oder Unterschreitung ein Objekt von False auf True geändert, oder man kann für jeden Eintrag eine Aktion auswählen (z.B. Weitergabe an Mail, Telegramm, Log, etc) Wenn der Adapter RegEx unterstützen würde, könnte man sogar mehrere gleichartige Devices mit einer einzigen Regel überwachen.
Sorry, vielleicht nicht ganz das Thema, aber beim Lesen deines Anliegens musste ich die Idee einfach rauslassen. -
@MyzerAT Hey, dein Blockly wird so nicht funktionieren. Du hast dort eine Variable namens "Wert" die anscheinend nicht weiter definiert ist.
Du musst schon die einzelnen Batterie Werte abfragen. Dafür gibt es den blauen System Block namens "Wert von 'Objekt ID'"!
Damit du wirklich jeden Status überwachst nimmst du dann für jede Batterie den Block und trennst sie durch die blauen Logik "Oder" Blöcke...
Also falls "wert von battery1" oder "wert von battery2" oder "wert von battery3" oder...... Usw. Ist geringer als 20
dann steuere speak und send to.Kann dir vom Handy aus leider kein grafisches Beispiel bieten aber so sollte es dann funktionieren.
Grüße
Chris -
@nurChris said in Script Xiaomi Battery leer ?:
Du hast dort eine Variable namens "Wert" die anscheinend nicht weiter definiert ist.
Das ist keine Variable, sondern eine Eigenschaft des Trigger-Datenpunktes, die den Wert enthält. Hat leider die gleiche Farbe wie eine Variable.
-
@paul53 said in Script Xiaomi Battery leer ?:
@nurChris said in Script Xiaomi Battery leer ?:
Du hast dort eine Variable namens "Wert" die anscheinend nicht weiter definiert ist.
Das ist keine Variable, sondern eine Eigenschaft des Trigger-Datenpunktes, die den Wert enthält. Hat leider die gleiche Farbe wie eine Variable.
Oh. Okay. Dann nehm ich alles zurück! Danke für den Hinweis, so weiß ich jetzt wie ich eins meiner Blocklys optimieren kann.
Grüße
Chris -
@nurChris , doch doch das funktioniert, das mit dem „wert“ habe ich von @paul53 gelernt in einem anderen Script. Habe zum testen als ich das Script erstellt habe, den niedrigsten Batteristatus einer meiner 26 xiaomi Aktoren angegeben, dieser war 75.5% und heute ist er auf 75.4% gesprungen und sofort kam die Meldung per Sprachausgabe und die Telegram Message.
-
Nutzt ihr alle das Xiaomi Gateway?
-
@tscheerio Ich verwende einen geflashten CC2531 Stick und den Zigbee Adapter.
-
@MyzerAT
Funktionieren tut das schon, aber du musst jetzt jedes mal alle Batteriestände durchsuchen, um die leere Batterie zu finden. Ich habe auch eine Abfrage aber für jede einzelne Batterie, dann weiß ich sofort, welche gemeint ist.
Das ist halt eine Einstellungssache: wenig programmieren und hinterher viel Arbeit oder etwas mehr Programmieraufwand und dafür hinterher eine schnelle Antwort. -
Hi, hier mal mein Ansatz. Ich prüfe alle 2 Stunden den Batteriestand über einen Cronjob. Den Abstand kann man natürlich noch vergrößern. Hat den Vorteil das man das Script relativ schnell um neue Geräte erweitern kann.
-
Währe ein Trigger nicht praktischer?
Löse aus wenn geändert, If Abfrage ob wert < x?
Dan braucht man auch nur die Sensoren im Trigger zu setzen und nimmt den object Namen und bekommt eine Nachricht Gerät xxx Batterie Lehr.
Damit würde das Script nur 3 Blöcke groß sein
Edit : sehe gerade dass der erste Post genau dieses Setup hat
-
@siggi85 sagte in Script Xiaomi Battery leer ?:
Ein Adapter wäre Cool, indem ich ioBroker Objekte mit Schwellwerten definieren kann. Entweder wird bei Über- oder Unterschreitung ein Objekt von False auf True geändert, oder man kann für jeden Eintrag eine Aktion auswählen (z.B. Weitergabe an Mail, Telegramm, Log, etc) Wenn der Adapter RegEx unterstützen würde, könnte man sogar mehrere gleichartige Devices mit einer einzigen Regel überwachen.
Sorry, vielleicht nicht ganz das Thema, aber beim Lesen deines Anliegens musste ich die Idee einfach rauslassen.Doch du hast genau den Punkt getroffen!
Wir haben dafür bereits einen Adapter requests ich werde mich dem annehmen wird aber Q2 dieses Jahr nicht eher (oder jemand anders macht's) -
kann man so auch machen. Nur dann muss man im Trigger das Objekt eintragen und nochmal in der If-Abfrage.
Bei einer großen Anzahl von Geräten wird das dann schon mal unübersichtlich. Und da die Batterien ja nicht so schnell von 20 auf 0 % Prozent reichen 2 Stunden oder mehr locker aus. Zumal würde, wenn der Wert unter 20% sinkt, bei der weiteren Änderung eine Meldung geschickt was unter Umständen etwas nervig sein kann. -
Warum ? Du brauchst nur eine If Abfrage !
-
-gelöscht!
-
@lesiflo sagte in Script Xiaomi Battery leer ?:
Wenn du genau wissen welches Gerät zu wenig Spannung hat musst du sie einzeln abfragen.
Es sei denn es gibt noch eine andere Lösung.Schau Dir das Blockly im ersten Post von @MyzerAT an. Anstelle von "eine Batterie wird leer" kannst Du auch den Namen des Trigger-Datenpunktes übergeben:
-
@Ramses123 sagte in Script Xiaomi Battery leer ?:
@MyzerAT
Funktionieren tut das schon, aber du musst jetzt jedes mal alle Batteriestände durchsuchen, um die leere Batterie zu finden. Ich habe auch eine Abfrage aber für jede einzelne Batterie, dann weiß ich sofort, welche gemeint ist.
Das ist halt eine Einstellungssache: wenig programmieren und hinterher viel Arbeit oder etwas mehr Programmieraufwand und dafür hinterher eine schnelle Antwort.Nein muss ich nicht, da ich alle Batterien auf einem Blick per VIS sehe !
-
@Dutchman sagte in Script Xiaomi Battery leer ?:
@siggi85 sagte in Script Xiaomi Battery leer ?:
Ein Adapter wäre Cool, indem ich ioBroker Objekte mit Schwellwerten definieren kann. Entweder wird bei Über- oder Unterschreitung ein Objekt von False auf True geändert, oder man kann für jeden Eintrag eine Aktion auswählen (z.B. Weitergabe an Mail, Telegramm, Log, etc) Wenn der Adapter RegEx unterstützen würde, könnte man sogar mehrere gleichartige Devices mit einer einzigen Regel überwachen.
Sorry, vielleicht nicht ganz das Thema, aber beim Lesen deines Anliegens musste ich die Idee einfach rauslassen.Doch du hast genau den Punkt getroffen!
Wir haben dafür bereits einen Adapter requests ich werde mich dem annehmen wird aber Q2 dieses Jahr nicht eher (oder jemand anders macht's)Das wäre der Hammer!
-
denke @paul53 meint es so: