NEWS
shellys auslesen
-
Hi,
vielleicht kann ich ja auch mal was beitragen. Auch wenn es nicht direkt von mir ist.ich habe im Internet ein schönes Script gefunden welches alle Shellys auslesen kann.
Mit der Änderung auch für den 3empro.Hier der Link falls noch nicht bekannt.
https://www.kreyenborg.koeln/shelly-verbrauchs-historie-fuer-tag-woche-monat-jahr/comment-page-7/?unapproved=1488&moderation-hash=1431404234d6afdbde4ad69cf889c462#comment-1488Es werden Datenpunkte angelegt und befüllt wie "gesamt", "dieses_jahr", "letztes_jahr", "letzter_monat", "dieser_monat", "letzte_woche",
"diese_woche", "gestern", "heute", "alter_wert", "aktueller_wertich nutze es für mein Grafana Dashboard.
Hier die Anpassung für den shelly 3emPro. Diese Zeilen in das script von zeile 47 bis 54 eintragen. zzw. überschreiben. Dann wird auf der 3empro ausgelesen und befüllt.
// Datenpunkte der Shelly Pro3EM DP var shelly3EMDps = $('state[id=' + shelly_dp + '.*.*.TotalActiveEnergy]'); // Total // Datenpunkte der Shelly Pro3EM DP – Total var shelly3EMTotalDps = $('state[id=' + shelly_dp + '.*.*.TotalActivePower]'); //ConsumedPower // Datenpunkte der Shelly Pro3EM DP – Total var shelly3EMTotalReturned = $('state[id=' + shelly_dp + '.*.*.TotalActiveReturnEnergy]'); //Total_Returned
ich hatte zuerst Fehler als ich es aus dem Kommentar kopiert hatte. Das Problem war das man das " ’ " durch ein " ' " ersetzen muss. Schwierig zu sehen.
So sollte es dann unter Javascript.0.shellyverbrauch ausschauen:
Ich hoffe es hilft einigen von euch hier.
Würde mich freuen.P.S. Kann mir jemand den Unterschied der Ordner vom 3empro erklären?
EM0 und EMData0? -
@alero
Hallo,
wenn ich das richtig interpretiere werden unter EM0 die Bezugswerte aus dem Netz aufgelistet. Das sind die Werte für Spannung, Strom, Scheinleistung etc. Hier wird auch der "Eigenverbrauch" des Shelly erfasst.
Unter EMData0 geht es um die Energie (KWh), die an den "Verbraucher" gehen oder von da kommen.
Ich erfasse mit dem Shelly die Zuleitung zu meiner Wallbox für's EAuto.
Unter EMData0 sind dann bei mir die reinen Ladedaten ins Auto, während unter EM0 auch die Werte für den Shelly selbst erscheinen. Hier sind auch dann Änderungen, wenn das Auto nicht geladen wird. Die liegen bei mir im einstelligen Watt Bereich und sind für mich Vernachlässigbar, da das Auto sich im KW-Bereich bewegt. Unter EMData0 ändern sich die Werte nur dann, wenn die Wallbox das Auto lädt, also wirklich ein Verbrauch vom Shelly auf den drei Phasen gemessen wird.Eine Gegenfrage.
Wie hast du das Skript von Kreyerborg bei dir eingebaut. Einfach im iobroker ein neues Skript angelegt und copy paste?LG RGT
-
@alero sagte in shellys auslesen:
ich habe im Internet ein schönes Script gefunden
ds wird @skb aber freuen!
-
@rgt
Hi,
Ich habe das Script auf den em3 Pro angepasst wie es auf der Seite stand und dan eingefügt. -
@Homoran
Hi,
Skb? -
@alero
SKB ist der Entwickler des Skripts.Ich habe eine Frage zu dem Skript.
An dieser Stelle:
// Funktion um die aktuellen Namen des Shelly abzuholen
function aktualisiere_namen() {
if (typeof extendObject === "function") {
shellyDpsName.each(function (id, i) {
if (existsState(id)) {
setState(shelly_DP_Name(id), String(getState(id).val), true);
// extendObject("javascript.0." + shelly_DP_Name_Main(id), {
extendObject("0_userdata.0." + shelly_DP_Name_Main(id), {
common: {
wird scheinbar der Datenpunkt definiert, der dann unter javasript.0. erscheint.
Ich wollte diesen Punkt gerne wo anders hinhaben.
Im iobroker sollten Benutzerdefinierte Datenpunkte unter 0_userdata.0 eingehängt werden.
Das habe ich versucht, wie man oben sehen kann.
Leider ohne Erfolg. Selbst wenn ich die Zeile extendObject auskommentiere wird er unter javascript.0 wieder erzeugt und gefüllt.
Was mache ich falsch?
Wie bekomme ich die oberste Ebene des DP definiert?LG RGT
-
@rgt
Hi, da kann ich dir leider nicht helfen. So fit bin ich auch nicht. Für mich passte das Script mit der kleinen Anpassung. Vielleicht kann jemand hier im Forum dir helfen. -
@rgt "selbst erstellte DPs" ja
Von JavaScript erstellte werden eben dort gespeichert. Wo ist das Problem? Die werden vom Script erstellt, nicht von dir.