NEWS
UNSOLVED Script Xiaomi Battery leer ?
-
@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:
-
@siggi85 sagte in Script Xiaomi Battery leer ?:
@
Das wäre der Hammer!
bei Interesse bitte Voten, hier der request :
-
wie setze ich diesen fred eigendlich auf gelöst ?
-
Hi,
ich verwende dafür dieses Javascript, das alle xiaomi-batterie States scannt und dann in einen Datenpunkt schreibt, wo die Batterie leer ist.
Funktioniert auch prima mit fritzdect, muss nur der State geändert werden.const idVis = 'Batterie.MiHomeBatterietausch'; const batt = $('mihome.0.*.percent'); createState(idVis, '', {type: 'string'}); function lowBatt() { var low = []; batt.each(function (id, i) { if(getState(id).val < 30) { id = id.split('.'); id = 'mihome.0.' + id[2] + '.' + id[3]; low.push(getObject(id).common.name); // Geräte-Name } }); setState(idVis, low.join(',<br>'), true); } schedule('0 * * * *', lowBatt); // jede volle Stunde
-
heisst bei unter 30% wird es in den Datenpunkt geschrieben ?
Sehe du hast 85 Xiaomi Aktoren, WOW was machst du damit alles! mir gehen schon die Ideen aus^^ -
genau, bei einem Batteriewert kleiner 30% wird der objektname in den Datenpunkt geschrieben.
Es sind 88 xiaomi devices mittlerweile, heute kam noch ein aquara 2fach Schalter dazu und ein paar Bewegungsmelder.. och.. wenn man ein Haus hat.. gibts genug zu überwachen, das meiste sind Magnetkontakte und Temp.Sensoren.. 4 Gateways, die werden langsam voll..