DC-Leistungsmessung mit Shelly UNI plus

  • Schon häufiger war in einschlägigen Foren der Wunsch zu hören, DC Spannung und Strom zu messen und daraus mittels Multiplikation die elektrische Leistung abzuleiten. Leider bietet kein Shelly bis heute „off-the-shelf“ eine solche Möglichkeit.

    Die wirkungsvollen Möglichkeiten des Customizing von Spannungs- und Impulseingang des Shelly UNI plus haben mich verleitet, einen Versuchsaufbau zu machen:

    IMG_1207.jpeg

    Man erkennt ganz oben links einen HA4009 Hall-Stromwandler. Dieses Teil ist in der Lage, auch Gleichströme zu messen und bietet einen Stromausgang mit einem Hub von +/-50mA. Mit einem entsprechenden Shunt lässt sich daraus leicht ein Spannungshub von +/-15V gestalten, der den ADC-Meßbereich des Shelly UNI plus voll ausnutzt. Natürlich „kostet“ dieser Vorteil auch etwas: Der Stromwandler benötigt eine symmetrische Betriebsspannung!
    Eine Bemerkung zu den vielen (16) Drähten, die durch den Stromwandler führen: Sie erleichtern das Experimentieren, weil dadurch der 16fache Strom gemessen wird. Das macht den Umgang mit einem 50A-Wandler einfacher…

    Link zum Datenblatt des Wandlers: https://www.poweruc.pl/products/hall-…t=1882719715372

    Die Erzeugung dieser beiden Spannungen übernimmt ein 3W DC/DC-Spannungswandler von RECOM: RW-2415D (rechts neben dem Stromwandler).

    Die Spannung muß mit dem Zähleingang des UNI plus gemessen werden, weil kein zweiter ADC-Eingang zur Verfügung steht. Folglich benötigt einen U/f-Wandler. Dazu gibt es von diversen Shops Module, die mit dem IC LM331 von National Semiconductor arbeiten. Hier ein Link zu einer Bezugsquelle: Klick!

    Ein kleiner Nachteil eines solchen U/f-Wandlers darf nicht verschwiegen werden: „Null“ Volt messen die Teile nicht - denn dann müsste die Ausgabegröße „Frequenz“ sehr sehr klein werden und wäre kaum präzise zu messen. Weil es sich bei den Anwendungsfällen jedoch vorwiegend um solche mit schwankenden Strömen in beiden Flußrichtungen, jedoch um Spannungen in einem bestimmten Bereichhandeln dürfte, ist der Nachteil verschmerzbar. Ein Vierquadranten-Leistungsmesser stellt die Versuchanordnung NICHT dar!

    Direkt unterhalb des Pärchens Stromwandler - DC/DC-Wandler ist das LM331-Modul zu sehen.

    Darunter bleibt der Shelly UNI plus übrig.

    Gespeist wird die Mimik mit 24V DC. Und dies führt uns endlich zum Schaltbild:

    IMG_1209.jpg

    Den Spannungsteiler vor dem LM331-Modul habe ich (noch) nicht ausgeführt. Mir genügte zum Test der Eingangsspannungsbereich von 1,5 bis 10V. Ansonsten halte ich die Schaltung für selbsterklärend. Frage dazu beantworte ich allerdings gerne…

    Noch zwei Screenshots zu Parametrierung des Shelly:

    IMG_1206.png

    Die Formel am ADC berücksichtigt in der der ersten Klammer den Offset, der durch die unsymmetrische Abnahme der Meßspannung entsteht: Der Nullpunkt liegt bei 14,91V. Kleinere Spannung bedeutet negativen Stromfluß; größere Spannungen als 14,91V zeigen positive Ströme an. Die zweite Klammer sagt, daß bei Vollausschlag 15V über dem Shunt von 300Ω 50A fließen.

    IMG_1208.png

    Der Impulseingang misst die Frequenz, die mit dem Faktor 1000 gleichbedeutend mit der Spannung am Meßeingang ist.

    Eine Beobachtung, der ich noch nachgehen muß: Bei Spannungs-(Frequenz-)Änderung musste ich die WebUI auffrischen. Das ist ein kleiner Nachteil, der hoffentlich zu beheben ist.

    Was bleibt noch zu tun? Die Entwicklung eines Scripts, welches die beiden Werte „Strom“ und „Spannung“ multipliziert und als Leistung über MQTT ausgibt. Dazu erhoffe ich mir Unterstützung eines Kundigen…

    „Habt Geduld. Alle Dinge sind schwierig, bevor sie einfach werden!“ (aus Frankreich)

    „Nothing in life is to be feared, it is only to be understood.“ (Marie Curie, 1867-1934)

    „Es reicht nicht“, rief Schiller, „Gedankenfreiheit zu fordern, man muß auch denken können, sonst fordert man Gedankenlosigkeitsfreiheit und die ist die Freiheit zur Dummheit, welche wiederum die schlimmste Unfreiheit überhaupt ist!“
    (Aus „Besuch aus Weimar“ von Gert Heidenreich, Schriftsteller, *1944 in Eberswalde)

    Einmal editiert, zuletzt von thgoebel (26. Juli 2024 um 21:55) aus folgendem Grund: Dieser Beitrag ist vor einigen Tagen im Shelly-Forum veröffentlicht worden. Ich stelle ihn absichtlich auch hier ein, weil ich vermute, daß ein beträchtlicher Teil der deutschsprachigen Shelly-Gemeinschaft an dieser Stelle liest. Falls sich jemand an dem Doppelpost stören sollte, bitte ich um eine PM, um dies zu diskutieren.

  • Was wäre mit nem ACS712 Modul?
    Ich habe die an Arduino getestet, ist ein Hallsensor für DC ab 5A.
    Ich bin aber nicht sicher ob die am Impulseingang funktionieren würden (die werden meistens per Spannungsteiler auf 1/2 Ub angehoben)

    VG Rolf

    (Wer einen Tippfehler findet, darf den gerne behalten :saint:)

  • Zum Skript

    Da ich (noch) keinen Plus UNI besitze, kann ich leider keine Erfahrung zur geeigneten Erfassung der Messwerte sammeln. Deshalb hier zunächst nur das Prinzip.

    1. Beide Messwerte zyklisch abfragen oder per Eventhandler entgegennehmen und zwischenspeichern. Ich täte Eventhandler bevorzugen, weil dieser bei Änderung eines Messwertes benachrichtigt werden wird.
    2. Die zwischengespeicherten Werte (ebenfalls bspw. im Eventhandler) verarbeiten, was sehr einfach sein dürfte.
    3. Die Resultate per Skriptfunktion MQTT.publish() veröffentlichen.

    Bei Verwendung eines Eventhandlers kann alles erforderliche in dieser Funktion abgearbeitet werden.

    Bei Verwendung eines Timers kann alles erforderliche in dessen callback Funktion abgearbeitet werden.

    In beiden alternativen Verwendungen wird nur mit einem zwischengespeicherten Messwert und einem aktuell eingetroffenen Messwert gearbeitet werden können, da beide Werte nur asynchron eintreffen. Eine "Gleichzeitigkeit" beider Messwerte gibt es nicht.

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

  • Was wäre mit nem ACS712 Modul?

    Das Modul hat einen Output-Swing von +/-2,5V. Der angegebene Hall-Sensor einen von +/-15V. Der SDC des UNI plus wird daher weitaus besser genutzt.

    Ich bin aber nicht sicher ob die am Impulseingang funktionieren würden

    Der Stromsensor wird nicht am Impulseingang betrieben, weil die Variation des Stroms bei diesem Usecase wesentlich größer ist, als die der Spannung.

    „Habt Geduld. Alle Dinge sind schwierig, bevor sie einfach werden!“ (aus Frankreich)

    „Nothing in life is to be feared, it is only to be understood.“ (Marie Curie, 1867-1934)

    „Es reicht nicht“, rief Schiller, „Gedankenfreiheit zu fordern, man muß auch denken können, sonst fordert man Gedankenlosigkeitsfreiheit und die ist die Freiheit zur Dummheit, welche wiederum die schlimmste Unfreiheit überhaupt ist!“
    (Aus „Besuch aus Weimar“ von Gert Heidenreich, Schriftsteller, *1944 in Eberswalde)

  • War ja nur eine Idee ob die Impulse vom ACS712 nicht auch genutzt werden könnten und der U/f Wandler nicht notwendig wäre.
    Der Impulseingang geht ja von mit getestet bis etwas über 11kHz, müsste ich mal mit dem ACS712 testen.

    VG Rolf

    (Wer einen Tippfehler findet, darf den gerne behalten :saint:)

  • Dieses Thema enthält 11 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.