NEWS
Script fürTabelle der Batterie Zustände
-
Servus, wollte nur mal kurz anfragen, ob du das Akku-Script weiter "verfeinerst"?
Hätte großes Interesse an den Filterfunktionen...
Aber mach dir keine Umstände, auch ein "nein" ist ok...Beste Grüße :wink:
@ub-privat
habe es noch nicht genau kapiert - wenn ich nur nach einem sortieren kann, macht es keinen sinn bei 3 verschiedenen werten - es wird nie eine gute sortierung rauskommen
ansonsten müßte ich tatsächlich mit 3 spalten für den wert arbeiten -also name,wert1,wert2,wert3,status,hersteller
und werte für low/high stehen in wert1
werte mit 1.3 V stehen in wert2
und werte mit prozent in wert3ist nicht schön -
-
hier ein beispiel für die Anzeige der Sensoren-Batterie-Zustände über ein html-Widget (oder iQontrol) - angelehnt an die scripte für html tabellen: https://forum.iobroker.net/topic/28021/html-table-für-vis-oder-iqontrol-js-und-blockly

die MaterialDesign Widgets sind auch mit eingebunden https://forum.iobroker.net/post/389578
export der widgets
die javascript adapter version sollte 4.3.x sein !!!
anzulegen und in das script einzutragen sind folgende datenpunkte
- ein datenpunkt für die vis-anzeige unter dpVIS - ganz oben - im script - anschliessend kann man die tabelle so einstellen, dass sie in eure vis paßt (übr ein standard-html-widget mit binding auf diesen selbst-angelegten-datenpunkt)- ein html datei kann auf wunsch geschrieben werden - damit kann auch in iQontrol ein popup "gefüttert" werden und als anzeige dienen. auch die werte für warnung oder alarm sind einzutragen
- ein datenpunkt für die anzahl der devices mit alarm (im script beschrieben)
- ein datenpunkt für eine liste mit den devices mit einem alarm (im script beschrieben)
wie legt man einen datenpunkt an: https://forum.iobroker.net/post/400338
Script zum download bzw. mit Chrome!!! kopieren
- bisher integriert
hersteller 
iogo adapter 
tado 
homee 
netatmo 
zwave 
fritzDect theermostate 
xiaomi, mihome 
homematic, homematic-Ip 
hue, hue-ext 
zwave 
tradfri 
fully browser adapter 
zigbee 
deconz 
sonoff zb bridge 
cul adapter 
rademacher homepilot 
shelly 
bosch 
ham (homebridge) nuki-extended Bin grad auf die Idee gekommen, dass man doch aus der Spannung die Batterieladung in % umrechnen könnte. Das geht zumindest mit den Homematic / Homemativ ip devices, indem man das Delta vom Spannungswert bei neuen Batterie berechnet und durch die Spannung bei neuen Batterie - die Unterspannungsgrenze teilt.
Ob das mit allen von dir unterstützten Geräten geht kann ich natürlich nicht sagen.Evtl. könntest du das noch mit in dein Skript ein bauen?
Hier mein Skript wie ich die Berechnung mit meinen HM Devices mach - zur Inspiration, muss natürlich angepasst werden.
// Batterie Spannung in % umrechnen -> Batterieladung **************************************************************************************************** // import const mathjs = require("mathjs"); let selector = `[id=${myDevices.Sensoren.getId()}.*.Spannung]` let alleSensorenSpannung = $(selector); // Fehlermeldung ausgeben, wenn selector kein result liefert if (alleSensorenSpannung.length === 0) { console.error(`no result for selector '${selector}'`) } // Trigger alleSensorenSpannung.on(SpannungToProzent); function SpannungToProzent() { try { for (var i = 0; i <= alleSensorenSpannung.length - 1; i++) { let id = alleSensorenSpannung[i]; let val = getState(id).val; if (val > 2) { if (existsState(id.replace('.Spannung', '.Batterieladung'))) { setState(id.replace('.Spannung', '.Batterieladung'), calcPercent(val, 2), true); } } else { if (existsState(id.replace('.Spannung', '.Batterieladung'))) { setState(id.replace('.Spannung', '.Batterieladung'), calcPercent(val, 1), true); } } function calcPercent(val, factor){ let spannungNeueBatterie = 1.5 * factor; let unterSpannungsGrenze = 1.1 * factor; return mathjs.round( (val - unterSpannungsGrenze) / (spannungNeueBatterie - unterSpannungsGrenze) * 100, 0); } } } catch (err) { console.error(`[SpannungToProzent] error: ${err.message}, stack: ${err.stack}`); } } SpannungToProzent(); -
Bin grad auf die Idee gekommen, dass man doch aus der Spannung die Batterieladung in % umrechnen könnte. Das geht zumindest mit den Homematic / Homemativ ip devices, indem man das Delta vom Spannungswert bei neuen Batterie berechnet und durch die Spannung bei neuen Batterie - die Unterspannungsgrenze teilt.
Ob das mit allen von dir unterstützten Geräten geht kann ich natürlich nicht sagen.Evtl. könntest du das noch mit in dein Skript ein bauen?
Hier mein Skript wie ich die Berechnung mit meinen HM Devices mach - zur Inspiration, muss natürlich angepasst werden.
// Batterie Spannung in % umrechnen -> Batterieladung **************************************************************************************************** // import const mathjs = require("mathjs"); let selector = `[id=${myDevices.Sensoren.getId()}.*.Spannung]` let alleSensorenSpannung = $(selector); // Fehlermeldung ausgeben, wenn selector kein result liefert if (alleSensorenSpannung.length === 0) { console.error(`no result for selector '${selector}'`) } // Trigger alleSensorenSpannung.on(SpannungToProzent); function SpannungToProzent() { try { for (var i = 0; i <= alleSensorenSpannung.length - 1; i++) { let id = alleSensorenSpannung[i]; let val = getState(id).val; if (val > 2) { if (existsState(id.replace('.Spannung', '.Batterieladung'))) { setState(id.replace('.Spannung', '.Batterieladung'), calcPercent(val, 2), true); } } else { if (existsState(id.replace('.Spannung', '.Batterieladung'))) { setState(id.replace('.Spannung', '.Batterieladung'), calcPercent(val, 1), true); } } function calcPercent(val, factor){ let spannungNeueBatterie = 1.5 * factor; let unterSpannungsGrenze = 1.1 * factor; return mathjs.round( (val - unterSpannungsGrenze) / (spannungNeueBatterie - unterSpannungsGrenze) * 100, 0); } } } catch (err) { console.error(`[SpannungToProzent] error: ${err.message}, stack: ${err.stack}`); } } SpannungToProzent();@Scrounger im zigbee wird das so gemacht
-
@Scrounger im zigbee wird das so gemacht
-
@arteck
Vielleicht könnte das auch direkt durch den hm-rpc adapter zur verfügung gestellt werden.
Hab gleich mal nen feature request gestellt :)
https://github.com/ioBroker/ioBroker.hm-rpc/issues/237@Scrounger erst mal danke , dass du noch weiter dran gedacht hast - werd das mal studieren - habe ja teilweise 3 verschiedene werte zur verfügung (batteriekapazität (1.5V, 3V oder5V ) beim umrechnen muss sowas auch mit kalkuliert werden
-
@arteck
Vielleicht könnte das auch direkt durch den hm-rpc adapter zur verfügung gestellt werden.
Hab gleich mal nen feature request gestellt :)
https://github.com/ioBroker/ioBroker.hm-rpc/issues/237ok - das mit dem factor habe ich kapiert
ich bringe alle 3 verschiedenen werte auf prozent-werte
hight ist 100%, low ist 0%
der factor bei den verschiedenen batterie-möglichkeiten ist auch klar: zb. bei 1.5V batterien: 0.75V sind dann 50%dann erstelle ich ein neues json-property, welches diese werte hat und übergebe es an dein widget - im widget muss ich bei der "Wert"-spalte das neue property als sortierung eingeben !
so könnte es funktionieren ?
-
ok - das mit dem factor habe ich kapiert
ich bringe alle 3 verschiedenen werte auf prozent-werte
hight ist 100%, low ist 0%
der factor bei den verschiedenen batterie-möglichkeiten ist auch klar: zb. bei 1.5V batterien: 0.75V sind dann 50%dann erstelle ich ein neues json-property, welches diese werte hat und übergebe es an dein widget - im widget muss ich bei der "Wert"-spalte das neue property als sortierung eingeben !
so könnte es funktionieren ?
@liv-in-sky sagte in Script fürTabelle der Batterie Zustände:
zb. bei 1.5V batterien: 0.75V sind dann 50%
bei 0.75V sind die leer...
-
@liv-in-sky sagte in Script fürTabelle der Batterie Zustände:
zb. bei 1.5V batterien: 0.75V sind dann 50%
bei 0.75V sind die leer...
@dslraser guter einwand (wenigstens hast du mit gedacht :-) )-beim factor darf ich nicht von 0 bis 1,5V rechnen !
-
@liv-in-sky sagte in Script fürTabelle der Batterie Zustände:
zb. bei 1.5V batterien: 0.75V sind dann 50%
bei 0.75V sind die leer...
@dslraser 0% ist dann bei 1.1 - so habe wir das berechnet
das wird ein spaß - das ist keine lineare kurve! bin gespannt ob ich auf den faktor kommen werde
-
@liv-in-sky sagte in Script fürTabelle der Batterie Zustände:
zb. bei 1.5V batterien: 0.75V sind dann 50%
bei 0.75V sind die leer...
@dslraser ich wollte kein +1 - stattdessen eine formel hätte mir mehr freude gemacht :-)
-
@dslraser ich wollte kein +1 - stattdessen eine formel hätte mir mehr freude gemacht :-)
Formel:
(DP Wert - UnterSpannungsGrenze) / (SpannungNeueBatterie - UnterSpannungsGrenze) * 100Beispiel mit HM Türkontakt HMIP-SWDO:
- SpannungNeueBatterie = 1,5V
- UnterSpannungsGrenze = 1,1V (kann in der CCU verändert werden!)
Sagen wir haben aktuell einen DP Wert von 1,3V, dann ist das in Prozent nach obiger Formel 50%.
-
Formel:
(DP Wert - UnterSpannungsGrenze) / (SpannungNeueBatterie - UnterSpannungsGrenze) * 100Beispiel mit HM Türkontakt HMIP-SWDO:
- SpannungNeueBatterie = 1,5V
- UnterSpannungsGrenze = 1,1V (kann in der CCU verändert werden!)
Sagen wir haben aktuell einen DP Wert von 1,3V, dann ist das in Prozent nach obiger Formel 50%.
@Scrounger super - danke - die fehlen noch , der rest funktioniert schon bei der sortierung
ist zwar linear - aber das sollte als annäherung völlig aussreichen
-
@Scrounger super - danke - die fehlen noch , der rest funktioniert schon bei der sortierung
ist zwar linear - aber das sollte als annäherung völlig aussreichen
...macht richtig Spaß mitzulesen! Musste schon schmunzeln. Am schönsten war "0.75V - dann sind sie leer!" ...
Das hier ist ein echt Klasse Forum, dir wird geholfen und ein wenig Augenzwinkern ist auch dabei! Da vergisst man glatt den ganzen Alltagsstress.
Danke!!! :+1: :wink: -
...macht richtig Spaß mitzulesen! Musste schon schmunzeln. Am schönsten war "0.75V - dann sind sie leer!" ...
Das hier ist ein echt Klasse Forum, dir wird geholfen und ein wenig Augenzwinkern ist auch dabei! Da vergisst man glatt den ganzen Alltagsstress.
Danke!!! :+1: :wink:@ub-privat
moin,
im ersten post ist ein neues script und das table widget - die sortierung sieht aber etwas seltsam aus (nach werten), wenn man verschiedene geräte mit z.b verschiedenen batterie kapzitäten hat ( 1,5V oder 3 Volt)
siehst dir einfach mal an
im neuen table widget ist bei sortierung im spaltenlayout1 das object "helpSort" dazugekommen
-
Hallo.
Ich habe zwei Fragen.
1.) Im Script steht TABELLEN.AkkuMeessage ... Darf ich da das eine E entfernen was zu viel ist, oder hat das irgendwelche
Bezüge. Mit Strg+F konnte ich im Script keinen weiteren Punkt mit Meessage finden.2.) Mich interessiert neben dem prozentualen Wert der Batterie auch welchen Typ Batterie ich in dem Gerät verbaut habe.
Wie binde ich das ein?MfG Christian
-
Hallo.
Ich habe zwei Fragen.
1.) Im Script steht TABELLEN.AkkuMeessage ... Darf ich da das eine E entfernen was zu viel ist, oder hat das irgendwelche
Bezüge. Mit Strg+F konnte ich im Script keinen weiteren Punkt mit Meessage finden.2.) Mich interessiert neben dem prozentualen Wert der Batterie auch welchen Typ Batterie ich in dem Gerät verbaut habe.
Wie binde ich das ein?MfG Christian
@Bielefelder81 du kannst die datenpunkte anlegen, wie und wo du willst - du musst sie halt auch im script dann aktualisieren (nur oben im setting bereich) - deshalb stehen die im variablen teil - somit kann das jeder für sich einstellen - meine datenpunkte sind nur beispiele von mir
ich kann die batterie typen nicht aus den datenpunkt informationen generieren - d.h. man müßte das über eine weitere variable vom benutzer machen lassen - das bedeutet - du müßtest einen eintrag für jedes device und dessen batterie typ machen
diese umstellung erzeugt extrem viel aufwand - wenn ich den batt-typ zusätzlich in der wert spalte (in klammern) anzeigen lasse, kann nicht danach sortiert werden (materialdesign) - nehme ich eine neue spalte dafür, brauche ich ein anderes table-template script
sorry - da müßten schon einige benutzer danach verlangen, dass ich das momentan umsetze
-
@Bielefelder81 du kannst die datenpunkte anlegen, wie und wo du willst - du musst sie halt auch im script dann aktualisieren (nur oben im setting bereich) - deshalb stehen die im variablen teil - somit kann das jeder für sich einstellen - meine datenpunkte sind nur beispiele von mir
ich kann die batterie typen nicht aus den datenpunkt informationen generieren - d.h. man müßte das über eine weitere variable vom benutzer machen lassen - das bedeutet - du müßtest einen eintrag für jedes device und dessen batterie typ machen
diese umstellung erzeugt extrem viel aufwand - wenn ich den batt-typ zusätzlich in der wert spalte (in klammern) anzeigen lasse, kann nicht danach sortiert werden (materialdesign) - nehme ich eine neue spalte dafür, brauche ich ein anderes table-template script
sorry - da müßten schon einige benutzer danach verlangen, dass ich das momentan umsetze
@liv-in-sky Danke, für deine Antwort.
Dann könnte man ja unter jedem Device ein Datenpunkt namens "batterytype" oder so händisch pflegen und dann wahrscheinlich mit deinem Script rausziehen.

Der String aka Zeichenkette wird aber immer rot angezeigt... Habe das noch nie gemacht. Oder soll ich lieber das Objekt des Temperatursensors in Ruhe lassen und unter 0.userdata.0 ein eigenes Objekt anlegen?
-
@liv-in-sky Danke, für deine Antwort.
Dann könnte man ja unter jedem Device ein Datenpunkt namens "batterytype" oder so händisch pflegen und dann wahrscheinlich mit deinem Script rausziehen.

Der String aka Zeichenkette wird aber immer rot angezeigt... Habe das noch nie gemacht. Oder soll ich lieber das Objekt des Temperatursensors in Ruhe lassen und unter 0.userdata.0 ein eigenes Objekt anlegen?
man sollte keine datenpunkte unter adaptern selbst anlegen - die könnten gelöscht werden - evtl bei neuinstallation wegen problem
-
@Bielefelder81 du kannst die datenpunkte anlegen, wie und wo du willst - du musst sie halt auch im script dann aktualisieren (nur oben im setting bereich) - deshalb stehen die im variablen teil - somit kann das jeder für sich einstellen - meine datenpunkte sind nur beispiele von mir
ich kann die batterie typen nicht aus den datenpunkt informationen generieren - d.h. man müßte das über eine weitere variable vom benutzer machen lassen - das bedeutet - du müßtest einen eintrag für jedes device und dessen batterie typ machen
diese umstellung erzeugt extrem viel aufwand - wenn ich den batt-typ zusätzlich in der wert spalte (in klammern) anzeigen lasse, kann nicht danach sortiert werden (materialdesign) - nehme ich eine neue spalte dafür, brauche ich ein anderes table-template script
sorry - da müßten schon einige benutzer danach verlangen, dass ich das momentan umsetze
@liv-in-sky
Hallo,
bin auf deine Batterieanzeige gestoßen und habe großes Interesse daran.
Würdest Du mir das Finale Script mal zur Verfügung stellen?
Könntest Du mir mal ein Screenshot von deinen angelegten Datenpunkte geben?
Bin noch in den Anfängen vom ioBroker.
Gruß