Dieses Skript ist eine Abwandlung des Skriptes, welches bereits für die Shelly Adapter zur Verfügung steht. Hier werden die Tasmota und Sonoff Geräte unterstützt.
Übersicht der Funktionen
Folgende Verbrauchswerte stehen in der Historie für jeden der Sonoff Geräte zur Verfügung:
Funktion | Beschreibung |
---|---|
Verbrauch heute | abgefragter Verbrauch heute |
Verbrauch gestern | abgefragter Verbrauch gestern |
Verbrauch diese Woche | abgefragter Verbrauch für die gesamte Woche |
Verbrauch letzte Woche | abgefragter Verbrauch für die gesamte letzte Woche |
Verbrauch dieser Monat | abgefragter Verbrauch für den gesamten Monat |
Verbrauch letzter Monat | abgefragter Verbrauch für den gesamten letzten Monat |
Verbrauch dieses Jahr | abgefragter Verbrauch für das gesamte Jahr |
Verbrauch letztes Jahr | abgefragter Verbrauch für das gesamte letzte Jahr |
Verbrauch Gesamt | abgefragter Verbrauch gesamt |
Name | Zugewiesener Name des Sonoff zum einfachen Wiederfinden |
Screenshot der verfügbaren Variablen
Installation des Sonoff Adapter
Nach kurzer Zeit stehen die Datenpunkte aller gefundenen Sonoff Geräte unter sonoff.0
zur Verfügung.
Skript
/* * @copyright 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln> * * @author 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln> * * Dieses Skript dient zur freien Verwendung in ioBroker zur Verbrauchserfassung der Tasmota Geräte. * Jegliche Verantwortung liegt beim Benutzer. Das Skript wurde unter Berücksichtigung der bestmöglichen Nutzung * und Performance entwickelt. * Der Entwickler versichert, das keine böswilligen Systemeingriffe im originalen Skript vorhanden sind. * * Sollte das Skript wider Erwarten nicht korrekt funktionieren, so hast Du jederzeit die Möglichkeit, Dich auf * https://www.kreyenborg.koeln * für Unterstützung zu melden. Jedes Skript besitzt seine eigene Kommentarseite, auf der, * nach zeitlicher Möglichkeit des Autors, Hilfe angeboten wird. Ein Anrecht hierauf besteht nicht! * * Ansprüche gegenüber Dritten bestehen nicht. * * Skript Name: Tasmota-Verbrauch * Skript Version: 1.1 * Erstell-Datum: 19. März 2021 * */ // Datenpunkte neu erstellen var ueberschreiben = false; // Hauptdatenpunkt unterhalb javascript var datenpunkt = "TasmotaVerbrauch."; // Verbrauchs Objekte der einzelnen Tasmota const objekt = ["gesamt", "dieses_jahr", "letztes_jahr", "letzter_monat", "dieser_monat", "letzte_woche", "diese_woche", "gestern", "heute", "alter_wert", "aktueller_wert"]; // Beschreibung der Objekte const beschreibung = ["Gesamter Vebrauch des Tasmota", "Verbrauch aktuelles Jahr", "Verbrauch letztes Jahr", "Verbrauch letzten Monat", "Verbrauch aktueller Monat", "Verbrauch letzte Woche", "Verbrauch diese Woche", "Verbrauch gestern", "Verbrauch heute", "Messwert alt", "Messwert neu"]; // Datenpunkt der Tasmota Geräte (Standard: sonoff.0) var tasmota_dp = "sonoff.0"; // Datenpunkte der Tasmota (!!! Bitte nicht ändern !!!) const tasmotaDps = $('state[id=' + tasmota_dp + '.*.ENERGY_Total]'); // Datenpunkte der Tasmota Namen (!!! Bitte nicht ändern !!!) const tasmotaDpsName = $('state[id=' + tasmota_dp + '.*.DeviceName]'); // Tasmota Verbrauch aktualisieren - nachts um 00:00 Uhr function tasmota_vebrauch_tag() { // Nochmals das Tagesupdate durchlaufen, damit die restlichen Werte gelesen werden tasmota_verbrauch_update(); // Datumsvariable var heute = new Date(); // Heute zu Gestern verschieben. Täglich um 00:00 Uhr verschiebe_verbrauch_objekt("heute", "gestern"); log ("Tasmota Verbrauch: Werte für gestern und heute aktualisiert!"); // aktuelle Woche in letzte Woche verschieben. Am Montag um 00:00 Uhr if (heute.getDay() === 1) { verschiebe_verbrauch_objekt("diese_woche", "letzte_woche"); log ("Tasmota Verbrauch: Werte für diese und letzte Woche aktualisiert!"); } // aktueller Monat in letzten Monat verschieben. Am 1. des Monats um 00:00 Uhr if (heute.getDate() === 1) { verschiebe_verbrauch_objekt("dieser_monat", "letzter_monat"); log ("Tasmota Verbrauch: Werte für diesen und letzten Monat aktualisiert!"); } // aktuelles Jahr in letztes Jahr verschieben. Am 1. des Monats am 1. Monat um 00:00 Uhr if (heute.getDate() === 1 && heute.getMonth() === 0) { verschiebe_verbrauch_objekt("dieses_jahr", "letztes_jahr"); log ("Tasmota Verbrauch: Werte für dieses und letztes Jahr aktualisiert!"); } } // Tagesverbrauch alle 15 Min von der Original Variable des Tasmota in eigene Variable kopieren function tasmota_verbrauch_update() { var anzahl_updates = 0; var anzahl_reboots = 0; var anzahl_gleich = 0; tasmotaDps.each(function (id, i) { var tasmota_verbrauch = getState(id).val; // Einige Tasmota haben keine Verbrauchswerte (noch nicht) if (tasmota_verbrauch != null) { // Hole aktuellen Wert, um zu kontrollieren, ob ein Reboot stattgefunden hat var aktueller_wert = getState(tasmota_DP(id) + "aktueller_wert").val; var alter_wert = 0; // Prüfe alten und neuen Wert if (tasmota_verbrauch > aktueller_wert) { // Verbrauchswert ist größer als alter Wert -> es wurde kein Reboot durchgeführt setState(tasmota_DP(id) + "alter_wert", aktueller_wert,true); alter_wert = aktueller_wert; anzahl_updates++; } if (aktueller_wert > tasmota_verbrauch) { // Verbrauchswert ist kleiner als alter Wert -> es wurde ein Reboot durchgeführt setState(tasmota_DP(id) + "alter_wert", 0,true); alter_wert = tasmota_verbrauch; anzahl_reboots++; } if (tasmota_verbrauch == aktueller_wert) { // Verbrauchswert ist gleich wie alter Wert -> kein Update notwendig alter_wert = aktueller_wert; anzahl_gleich++; } setState(tasmota_DP(id) + "aktueller_wert", tasmota_verbrauch); // Alter und neuer Wert -> aktuelle Differenz var verbrauch = parseFloat(tasmota_verbrauch) - alter_wert; // Tagesverbrauch aktualisieren aktualisiere_vebrauch_objekt(id, "heute", verbrauch); // Wochenverbrauch aktualisieren aktualisiere_vebrauch_objekt(id, "diese_woche", verbrauch); // Monatsverbrauch aktualisieren aktualisiere_vebrauch_objekt(id, "dieser_monat", verbrauch); // Jahresverbrauch aktualisieren aktualisiere_vebrauch_objekt(id, "dieses_jahr", verbrauch); // Gesamten Vebrauch aktualisieren aktualisiere_vebrauch_objekt(id, "gesamt", verbrauch); } }); aktualisiere_namen(); log("Tasmota Verbrauch: Verbrauchswerte aktualisiert: " + anzahl_updates + " | Reboots korrigiert: " + anzahl_reboots + " | Unveränderte Werte: " + anzahl_gleich); } // aktualisiert das jeweilige Verbrauchs-Objekt und addiert den Verbrauch dazu function aktualisiere_vebrauch_objekt(dp, objekt, wert) { var verbrauch = parseFloat(getState(tasmota_DP(dp) + objekt).val) + parseFloat(wert); verbrauch = parseFloat(verbrauch.toFixed(3)); setState(tasmota_DP(dp) + objekt, verbrauch,true); } // Verschiebt das jeweilige Verbrauchs-Objekt und nullt den Ursprung (Tag, Woche, Monat, Jahr) function verschiebe_verbrauch_objekt(von, nach) { $('state[id=*.' + datenpunkt + '*.' + von + ']').each(function (id, i) { // Temporärer Gruppen-Datenpunkt var tmp_dp = id.slice(0, -(von.length)); var verbrauch = getState(id).val; if (verbrauch != null) { setState(tmp_dp + nach, verbrauch,true); } // Setze heute zurück setState(id, 0,true); }); } // Funktion um die aktuellen Namen der Tasmota abzuholen function aktualisiere_namen() { tasmotaDpsName.each(function (id, i) { setState(tasmota_DP_Name(id),String(getState(id).val),true); }); } // Erstelle die benötigten Datenpunkte function datenpunkte_erstellen() { // Anzahl der gefundenen Tasmota var anzahl = tasmotaDps.length; tasmotaDps.each(function (id, j) { var initial_wert = 0; for (var i = 0; i < objekt.length; i++) { // Startwerte werden nur bei alter_wert und aktueller_wert eingetragen if (i > 8) { initial_wert = getState(id).val; } createState(tasmota_DP(id) + objekt[i], initial_wert, ueberschreiben, { name: beschreibung[i], desc: beschreibung[i], type: "number", role: "value.power", unit: "kWh" }); } }); // Alle Datenpunkte erstellt. Frage ersten Verbrauch ab! log("Tasmota Verbrauch: Datenpunkte erstellt! Erster Verbrauch steht nach 1 Minute zur Verfügung! Anzahl gefundener Tasmota Datenpunkte: " + anzahl); setTimeout(tasmota_verbrauch_update, 20000); // Datenpunkte für die Namen der Tasmota erstellen tasmotaDpsName.each(function(id, j) { createState(tasmota_DP_Name(id), "", ueberschreiben, { name: "Name des Tasmota", desc: "Name des Tasmota", type: "string", role: "value", unit: "" }); }); } function tasmota_DP(dp) { dp = dp.split("."); dp = datenpunkt + dp[2] + "."; return dp; } function tasmota_DP_Name(dp) { dp = dp.split("."); dp = datenpunkt + dp[2] + "." + dp[3]; return dp; } function tasmota_verbrauch_erster_start() { log("Tasmota Verbrauch: Erster Start des Skriptes! Datenpunkte werden erstellt!"); // Datenpunkte werden erstellt datenpunkte_erstellen(); } // Erster Start und Initialisierung tasmota_verbrauch_erster_start(); // Alle 15 Minuten das Skript für den Tagesverbrauch ausführen schedule('*/15 * * * *', tasmota_verbrauch_update); // Nachts um 24 Uhr werden die Werte in andere Variablen gespeichert, um den Verlauf zu erstellen schedule('0 0 * * *', tasmota_vebrauch_tag);
Wie hat Dir der Beitrag gefallen?
Bewertung: 3.3/5 - abgegebene Bewertungen: 6
moin,
das script läuft seit langer zeit für mehrere pow3 erfolgreich, erstmal danke dafür.
allerdings bin ich im javascript nicht wirklich zuhause.
wie kann ich den zeitraum des jahresverbrauchs ändern? zb. abrechnung oktober?
vielen dank
medoc
Hallo,
solche Abfragen sieht ein Skript nicht vor, da keine Speicherung über Zeiträume erfolgt.
Gruß,
Stephan
Hallo Stephan….das mit dem MQTT löse ich anders. Aber mich würde es interesieren wie man in dem Script die berchnungen für den Preis mit intergrieren könnte…..aber du machst tollte sachen……danke erst mal.
lg
Hallo Stephan!
Tolles Script…funktioniert wunderbar, aber …..jetzt kommt das ,,aber,, der Name wird nicht übergeben da ja Tasmota den Mqtt Client drin hat ich versuche mal des zu bewerkstelligen. Ergebnisse folgen per Post.
lg
Hallo,
vielen Dak für das Script.
Ich habe ein kleines Problem.
Mit dem original Verzeichnis
var datenpunkt = “TasmotaVerbrauch.”; unterhalb Javascript funktionier das Script ohne Probleme, da ich alles unter 0_userdata angelegt habe, habe ich einfachhalber den Eintrag in “var datenpunkt = “0_userdata.0.Tasmota.Stromverbrauch.”;” geändert.
Es werden die Datenpunkte erstellt, und die aktuellen Werte in die Datenpunkte geschrieben. Jedoch nicht die Datenpunkte “diese_woche”
“letzte_woche”, “letzter_monat” über Nacht aktuallisiert. Müsste ich in dem Script noch etwas anderes ändern?
Vielen Dank
Danke dir, läuft super
Hallo Stephan,
danke dir für dieses Skript.
Leider erscheinen bei mir die Datenpunkte aller gefundenen Sonoff Geräte (vom Skript) nicht unter sonoff.0, sondern unter javascript.0.
Was mach ich falsch? Bin leider noch nicht so versiert damit.
Danke und Gruß
Holger
Hallo Holger,
das ist soweit richtig. Es ist ein Skript und dieses erstellt die Datenpunkte unterhalb javascript.
Unterhalb sonoff ist der sonoff Adapter.
Gruß,
Stephan
Hallo Stephan, habe gesehen das es für Shelby update Scripte gibt ist so etwas auch für Tasmota geplant oder Angedacht?ich denke viele hier würden es gerne nutzen. Freue mich auf deine Antwort.
LG
Richi
Hallo Richi,
ich selbst betreibe keine Tasmota Geräte. Somit kann ich leider keine solchen Skripte zur Verfügung stellen.
Das eine Skript zur Verbrauchsmessung wurde von einem User angepasst.
Gruß,
Stephan
Hallo zusammen habe im IOBRoker meine tasmota teile alle ingebunden die realwerte und die gestern heute und gesamtwerte passen. er legt aber keine wochen monats und jahres ordner an wie kann das sein? was habe ich da falsch gemacht?? bitte um hilfe. es läuft auf einem OpenMediaVault falls das wichtig ist. Dankeschön für die hilfe
Hallo Gerald,
dann bitte einmal die Version des Javascript Adapters prüfen.
Gruß,
Stephan
Hallo Stephan,
top Arbeit! Vielen Dank für das geniale Script!
LG Lorenz
Hallo zusammen ich bin in Tasmota komplett neu. Grundsätzlich ist es sehr gut. Ich würde gerne wissen wie man dieses Script verwendet. Und das bitte von Anfang an bis zum Ende inkl. Was man alles dazu braucht.
Ich habe mir die vorinstallierte Nous A1T gekauft und ins Netzwerk eingebunden. Weiters habe ich mir Tasmotrol gekauft. Derzeit habe ich 12 von den Nous A1T es sollen aber einige Steckdosen noch mit dem System erweitert werden.
Es würde mich und warscheinlich viele andere Menschen freuen wenn es eine vollständige Anleitung zur Verwendung des Scripts gibt.
Hallo,
Du benötigst den ioBroker mit installiertem Sonoff und Javascript Adapter.
Dann kann das Skript bei Skripte eingfügt und gestartet werden.
Meine Webseite stellt Skripte für ioBroker zur Verfügung.
Gruß,
Stephan
Hallo Stephan,
Deine Skripte sind sehr hilfreich für meine shellys als auch tasmota-Geräte.
Was mir noch fehlen würde wäre obiges Skript für Fritz!DECT und Homematic-Geräte.
Ich kann mir vorstellen, dass das auch andere User Interesse hätten.
Siehst Du eine Chance das irgendwann mal umzusetzen?
Ablage Verbrauchswerte bei Fritz!DECT:
fritzdect.0.DECT_087610266614.energy
Ablage Verbrauchswerte bei Homematic Steckdosen mit Leistungsmessung z. B. unter
hm-rpc.0.LEQ1315602.2.ENERGY_COUNTER
Viele Grüße
Thomas
Hallo Stephan,
ich nutze dein Script Shellyverbrauch in der Versin 1.60 und es funktioniert mit meinem Shelly EM3 auch eigentlich sehr gut.
Leider ist es in letzter Zeit in unregelmaßigen abständen passiert, das bei den Werten für den Total Verbrauch von “Gestern” astronomische Werte auftauchten. Ich habe normalerweise einen Verbrauch von etwa 10 kWh und das wird auch richtig beim Verbrauch von “Heute” angezeigt, aber am nächsten Tag steht dann bei gestern ein Wert von, zum Beispiel, 26000 kWh drinn, was sich auch auf die Werte von diesen Monat und dieses Jahr auswirkt.
Die Werte, die ich bei Objekte unter Shellyverbrauch finde, scheinen bei Emeter0, Emeter1 und Emeter2 korrekt zu sein, nur bei Total sind diese völlig falschen Werte zu finden.
Leider bin ich was die Programmierung betrifft nicht sehr bewandert und verstehe die Funktionsweise des scriptes nicht wirklich.
Ich habe die Werte von Emeter0, Emeter1 und Emeter2 nun selbst addiert und diese bei Total eingetragen, aber das kann nicht die Lösung sein.
Hast du eine Idee, was bei mir falsch läuft ?
Schöne Grüße
Ralf
Hallo Ralf,
dazu kann ich leider nichts sagen, was auf Deinem System “falsch” läuft.
Du kannst die Werte nur genauer beobachten und schauen.
Gruß,
Stephan
Hallo Stephan,
erst einmal vielen Dank für dein tolles Script. Ich habe hierzu eine Frage bzgl. neuer SONOFF Geräte.
Wenn ich neue Steckdosen in WLAN integriere, dann muss ich doch im Script die Variable “var ueberschreiben = true;” setzen und das Script neu starten, damit die neuen SONOFF Geräte in den Datenpunkten erscheinen. Anschließend Script wieder stoppen und Variable wieder auf false setzen. Script wieder starten. Bisher habe ich mich das aber nicht getraut.
Was passiert hierbei mit den bereits vorhandenen Datenpunkten?
Werden diese auf 0 gesetzt oder behalten sie Ihren ursprünglichen Wert?
Vorab vielen Dank
Frank
Hallo Franky,
die Variable “ueberschreiben” dient dem Nullen aller Datenpunkte. Wenn Du nur ein neues Gerät mit überwachen möchtest, dann einfach nur das Skript stoppen und wieder starten.
Dann wird das neue Gerät gefunden und auch geloggt.
Gruß,
Stephan
Servus Stephan,
danke für das tolle Script!
ich benutze:
* Skript Name: Shelly-Verbrauch
* Skript Version: 1.60
* Erstell-Datum: 08. Oktober 2021 | Update: 20. Juli 2022
und habe nach Verwendung eines neuen Shelly Plug “komische Werte”:
Verbrauch Heute: 0,73 Wh “das verändert sich den ganzen Tag nicht…)
Verbrauch Gestern: 0 Wh
der duchschnittliche tatsächliche Verbrauch ist ca. 3W (läuft immer)
das wären heute jetzt um 11:20 ca. 34 Wh.
wann wird denn der “Messwert neu” zum “Messwert alt”? 00:00 Uhr?
kennst du das Phänomen?
schöne Grüße
Michael
Hallo Michael,
das Phänomen kenne ich leider nicht.
Gruß,
Stephan
wie komme ich der Unzulänglichkeit näher?
welche Analysemöglichkeiten habe ich?
schöne Grüße
Michael
Du könntest mal in dem Sonoff Adapter schauen. Wenn dort die Werte nicht richtig ankommen, liegt der Fehler dort oder weiter vorne – sprich am Gerät.
Hallo Stephan,
ich habe das Problem gefunden.
in der Zeile 290 ist diese Abfrage:
if (alter_verbrauch < 1 || alter_verbrauch == null) {
Da mein Verbrauch in 15 min immer unter 1 ist wurde der
gegenwärtige Tagesverbrauch immer quasi genullt.
ich hab das geändert auf
if (alter_verbrauch < 0.3 || alter_verbrauch == null) {
und jetzt passt es soweit.
ich frage mich natürlich ob die Abfrage auf alter_verbrauch == null nicht ausreicht, aber da hattest du wahrscheinlich Gründe auch auf kleiner 1 abzufragen.
schöne Grüße
Michael
Hallo Michael,
in Zeile 290 sehe ich die genannten Zeichen leider nicht.
Hier wird nur der alte Verbrauch geprüft. Nicht der “aktuelle” Verbrauch. Bevor man ein Skript editiert, sollte man es schon verstehen 😉
Gruß,
Stephan
Dann erklärs halt.
… wie gesagt, Zeile 290 habe ich im Skript nicht.
Dann erklärs halt.
in meiner aktuellen Version 1.60 stehts in Zeile 289.
if (alter_verbrauch < 1 || alter_verbrauch == null) {
verbrauch = parseFloat(wert)
} else {
verbrauch = parseFloat(alter_verbrauch) + parseFloat(wert);
}
falls der alte_verbrauch in 15 min. < 1 ist (was bei mir immer der Fall ist) wird in den Verbrauch nur der aktuelle Wert übernommen (der wieder < 1) ist.
der alte_verbrauch wird nicht addiert.
verstehtst du es jetzt?
Du kommentierst zu einem Skript, welches gar nicht, das ist, was du nutzt. Hier ist die Kommentarfunktion für Tasmota – nicht Shelly 🙂
Der Verbrauch wird anhand beider Werte berechnet. Wenn dieser Null ist (kleiner als 1), dann wird er geschrieben.
Wenn größer als 1 oder eben nicht null, wird er addiert und geschrieben. Hier zählt nicht, wie hoch der Verbrauch “aktuell” nach 15 Minuten ist – sondern wieviel in den letzten 15 Minuten verbraucht wurde.
das ist mir vollkommen klar.
mein Verbrauch in den letzten 15 Minuten ist 0,73 also kleiner 1 aber halt nicht null.
mit deiner Abfrage wird dieser kleine Verbrauch aber nicht aufaddiert sondern genullt.
Wieso ist bei dir alles <1 Null???
mit meiner Abfrage < 0.3 funktioniert es.
wenn der 15 Minuten Verbrauch kleiner 0.3 ist funktioniert es natürlich wieder nicht.
deshalb zurück zu meiner ursprünglichen Frage: was bezweckst du mit der Abfrage < 1 ?
<1||Null macht eh keinen Sinn. wenns kleiner 1 ist brauchst du ja nicht auf ||Null abfragen.
Wenn Du Dich mit der Materie “genullte Datenpunkte” einmal auseinandersetzt, wirst Du schnell merken, das es sehr wohl Sinn macht, einen Wert auf NULL zu prüfen, da diese vom Shelly Adapter auch mal NULL sein können.
Das bezwecke ich damit. Fehler-Toleranz. Denn, ein User, der viele Warnungen oder Fehler in seinem Log hat und sich damit nicht auskennt, wird relativ schnell nervös.
Pauschal solche Aussagen zu einem “Dir unbekannten Skript” zu tätigen, finde ich schon sehr mutig.
ok. ich geb dir recht mit ||NULL.
aber erklär mir wieso bei dir alles unter 1 Null ist (deine Aussage von unten “Wenn dieser Null ist (kleiner als 1)”)?
Naja, wenn etwas unterhalb von einem 1W/h verbraucht hast, finde ich es eher unnötig, dies zu “loggen”. Klar kann man, wenn man nun den Haarfön des Hamsters mit 0,21W/h aufzeichnen möchte, das Skript anpassen und ggf. fragen, wie dies gehen würde – ist aber auch mehr als selten. Oder misst du den Verbrauch von einem Akkue-Ladegerät? 🙂
wenn du es für unnötig hältst, kann es doch durchaus Leute geben die es genau wissen wollen 😉 ich zum Beispiel.
ich logge den Pool Roboter. und der Ruhe Verbrauch (nur die Anschaltbox/Netzteil vom Robi) braucht halt knappe 4W was in 15 Minuten < 1Wh sind und dementsprechend nach deinem originalscript NULL! (oh entschuldige nicht NULL sondern halt weniger als 1) 🙂
Exakt. Daher gibt es hier die Kommentarfunktion, um über solche Dinge zu sprechen. Wenn Dir 1W nicht reichen, dann setze diesen Wert einfach auf 0.5 und alles wird geloggt.
Top. alles klar.
danke dir.
Danke für Deine kleinen netten Scripte 🙂
Musste bei mir allerdings etwas umändern damit es lief bei mir.
// Datenpunkte der Tasmota (!!! Bitte nicht ändern !!!)
//const tasmotaDps = $(‘state[id=’ + tasmota_dp + ‘.*.ENERGY_Total]’);
const tasmotaDps = $(‘state[id=’ + tasmota_dp + ‘.*.ENERGY.Total]’);
Gruß Henry
Hallo Henry,
danke für die Rückmeldung.
Vielleicht hat jemand einen Nutzen daraus 🙂
Gruß,
Stephan
Hallo Stephan,
danke für die Bereitstellung Deines Scriptes.
Besteht die Möglichkeit auch jeden einzelnen Monat, also Januar bis Dezember, darzustellen? Ich möcvhte meine Solarmodule loggen, sodass ich die einzelnen Monatserträge
angezeigt bekomme. Mit Grafana und Influx funktioniert das nicht richtig.
Gruß
Thomas
Hallo Thomas,
am Besten nutzt Du influx über den Influx-Adapter und lässt den Datenpunkt “heute” immer aktualisieren. Diesen kannst Du dann in Grafana perfekt auswerten.
So mache ich dies auch 😉
Gruß,
Stephan
Hallo Stephan,
“Datenpunkt “heute” immer aktualisieren.”
Wo wird das eingegeben?
Hallo Stephan Kreyenborg,
Ganz großes Kompliment, genau was ich gesucht habe! Dank deines Skriptes muss ich jetzt nicht mehr alle paar Tage zum Zettel greifen und die Werte notieren, wieviel Energie mein Plug in Hybrid getankt hat. Ohne dein Skript hätte ich wahrscheinlich wochenlang daran gebastelt oder hätte es gar nicht hinbekommen. Habe mich noch ein bisschen in deiner Anleitung zum SHELLY eingelesen, auch die Kommentare. Dann wurde mir der Zusammenhang klarer und nach kopieren und einfügen hat es auf Anhieb funktioniert. Für dich als Rückmeldung:
Betreibe eine (demnächst mehrere) Sonoff POW R1 mit Version 2022.01.3(tasmota).
Vielen Dank nochmal
Tom
P.S.: Finde ich die Werte auf dem Raspi auch in einer Datei? Falls nicht, nicht schlimm, dann bastel ich mir was 🙂 oder hast du dafür noch einen Trick in der Tasche oder auch schon mal was dazu geschrieben? Bis bald 🙂
Hallo Tom,
freut mich, wenn das Skript läuft.
Eine Datei stelle ich aktuell nicht zur Verfügung – da wäre der Umfang zu groß, da jeder ein anderes Format haben wollen würde.
Gruß,
Stephan
Hallo Stephan,
nochmal danke für das Skript und danke für deine Antwort!
Hatte in meinem 1. Post einen Schreibfehler, ist natürlich ein POW R2, bzw. war. Denn zwischenzeitlich habe ich den 2ten im System angemeldet und auch dieser hat sich sofort an deinem Skript angemeldet und läuft einwandfrei! Toll !!!
Die Frage zur Datei:
Ich bin zwar noch blutiger Anfänger, habe aber eine Lösung für mich gefunden.
Konnte mir im Blockly selbst ein Skript schreiben, “JS-Funktion mit Ergebnis “Datei” mit; Dateiname…….”
In unterschiedlichen Kombinationen kann ich damit den Tagesverlauf, Tageswerte, Wochenwerte, Monatswerte und Jahreswerte, dank deiner Datenpunkte wegspeichern. Wie ich die mal auswerte und grafisch darstelle weiß ich noch nicht, hat aber auch keine Priorität. Hauptsache sie sind da und gehen nicht verloren.
Also alles super, weiter so!
Gruß Tom
P.S.: Wenn ich die Zeit finde, werde ich versuchen dein Skript auf einen oder mehrere SONOFF TH16 umzuschreiben (denke die Erlaubnis besteht) vom Prinzip sind die ankommenden Werte ja ähnlich, heißen nur anders.
Oder hast du da schon was fertiges? Vorsichtig mit einem dezenten Grinsen gefragt! Nochmal Gruß
Funktioniert das auch mit Sonoff Geräten die eigentlich keine Energiemessung haben?
VG Hardy
Hallo Hardy,
dies funktioniert natürlich nicht 😉
Gruß,
Stephan