Beiträge von eiche

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    Heerdt1975

    Das gelingt folgendermaßen mit einem kleinen Skript. Es wird immer eine Latenzdauer zwischen Stromausfall und den Abschalten des Plus 1 liegen, bspw. 30s - konfigurierbar.

    A) Ohne Nutzung von MQTT - eine Latenzdauer von 30s sei vorausgesetzt.

    1. Der Plus 1 fragt den EM periodisch alle 20s nach dessen Status - mit einem Timeout von bspw. 10s. Wenn das Timeout wirkt, ist der EM mit hoher Wahrscheinlichkeit nicht in Betrieb. Nun ließe sich optional noch einmal der EM Status abfragen.
    2. Sobald die Nichterreichbarkeit des EM festgestellt ist, schaltet der Plus 1 aus.
    3. Sobald der Plus 1 Antwort vom EM erhält, schaltet Ersterer wieder ein.

    B) Mit Nutzung von MQTT - hier wirkt eine Latenzdauer von ca. 90s. Dafür ist eine dauerhafte Verbindung zwischen dem Plus 1 und dem MQTT Broker erforderlich. Dazu passt ein sehr einfaches Skript aus etwa 5 Zeilen.

    1. Wenn der MQTT Broker kein MQTT Ping vom EM erhält, sendet der Broker die LWT (Last Will and Testament) Nachricht mit dem Topic
      <Pre Topic EM>/online und der Payload false an alle Abonnenten, hier den Plus 1. Dieser schaltet daraufhin ab.
    2. Fährt der EM mit Versorgung wieder hoch, veröffentlicht er automatisch eine retained MQTT Nachricht mit dem Topic
      <Pre Topic EM>/online und der Payload true. Daraufhin schaltet der Plus 1 per Skript wieder ein.

    Mit einem EM ab der zweiten Generation lassen sich Schedule Jobs (Zeitpläne) mit kürzeren Abständen von bspw. 5s nutzen, um kürzere Latenzen zu erreichen.

    Ingo2000

    Grundsätzlich dachte ich an die Funktionsgrafik, aber auch Tabellen mit aktuellen Werten wären ok.

    Dazu ist ein übergeordnetes, zentrales System zielführend.

    Ich nutze dafür einen Raspberry Pi, auf welchem folgendes installiert ist - alles außer der Hardware ist kostenfrei.

    1. Node-RED
      Ein sehr kleiner Flow, eine Art Node-RED Programm, genügt in deinem Fall.
    2. InfluxDB, ein Datenbanksystem zur Speicherung der Messdaten
    3. Grafana zur Visualisierung der gespeicherten Messdaten

    Alternativ kann man auch ein fertiges System nutzen wie openHAB. Mir gefällt meine Lösung besser, weil ich diese als erheblich flexibler/anpassungsfähiger einschätze.

    Die Hardwarekosten mit einem Raspberry Pi 4 liegen derzeit bei ca 92€, incl. USB SSD 250GB ca. 120€, Gehäuse ca. 12€ bis 17€ - gesamt somit ca. 135€. Monitor, Tastatur, Maus werden nicht gebraucht, weil dieses System über Fernzugriff gepflegt werden kann und sollte. Ob dir so etwas gefallen kann hängt davon ab, ob du dich damit beschäftigen möchtest oder ob dir dabei jemand helfen kann.

    Einen geeigneten Flow kann ich bereitstellen, Datenbankabfrage und Grafana einrichten ist zusätzlich erforderlich, ggf. auch mit remote Unterstützung.

    Die Grafiken der Cloud reichen nicht annähernd an ein solches System heran.

    Für den Anfang kann auch ohne Datenbank und Visualisierung ausgekommen werden. Dann können die Daten in einer Textdatei abgelegt werden.

    Vielleicht funktioniert auch ein Kemo 150 DC an zwei Kemo M028N. Wenn ja und du bereit bist, in zwei Leistungsregler zu investieren, wärst du auf der sicheren Seite und bräuchtest (vermutlich) keine Kühlung.

    Damit würden zwei Heizelemente zugleich geregelt werden.

    Ich täte zunächst alles mit nur einem Heizelement testen und dann weiter entscheiden. 3kW an einem Leistungsregler erfordert eine gute Kühlung des Reglers, der tatsächlich ein Steuergerät ist.

    Bike2200

    Ich nutze derzeit keinen BLU Button. Deshalb meine Frage zu deinem Skript in #5.

    Welche Ausgaben erhältst du im Console Fenster, wenn du den BLU Button drückst? Beantworte diese Frage erst, wenn die unten, von mir später hinzugefügte, Änderung nicht funktionieren sollte!

    Die Ursache liegt vermutlich in Zeile 70:

    Code
    Shelly.call(CONFIG.actions[actionType], { id: 0 });

    Hiermit kann bestenfalls die Methode "Switch.Toggle" funktionieren, weil zu "Swich.Set" die zweite Komponente im Parameter fehlt.

    Konkret, wie ich bereits in #4 darlegte:

    Code
    Shelly.call("switch.set", {id:0, on:true});

    bzw.

    Code
    Shelly.call("switch.set", {id:0, on:false});

    Entsprechend ist die Komponente actions im CONFIG Objekt ungeeignet.

    Dein Original:

    Code
    actions: {
            singlePush: "Switch.toggle", // Einfach-Klick: Gerät umschalten
            doublePush: "Switch.set", // Doppel-Klick: Gerät einschalten
            triplePush: "Switch.set", // Dreifach-Klick: Gerät ausschalten
            longPush: "Switch.toggle" // Lang-Klick: Gerät umschalten
        }

    Folgendes könnte funktionieren.

    Das Objekt CONFIG:

    Code
    let CONFIG = {
        bluButtonAddress: "b0:c7:de:c2:5d:dd", // MAC-Adresse des Shelly Blu Buttons
        actions: {
            singlePush: {method: "Switch.toggle", param: {id:0}}, // Einfach-Klick: Gerät umschalten
            doublePush: {method: "Switch.set", param: {id:0, on:true}}, // Doppel-Klick: Gerät einschalten
            triplePush: {method: "Switch.set", param: {id:0, on:false}}, // Dreifach-Klick: Gerät ausschalten
            longPush: {method: "Switch.toggle", param: {id:0}} // Lang-Klick: Gerät umschalten
        }
    };

    Dazu der korrigierte RPC Aufruf - in deinem bisherigen Skript Zeile 70

    Code
    Shelly.call(CONFIG.actions[actionType].method, CONFIG.actions[actionType].param);

    oder alternativ - optional mit print:

    Code
    let action = CONFIG.actions[actionType];
    print("Führe Aktion aus:", action);
    Shelly.call(action.method, action.param);

    Teste dies bitte mal und teile das Resultat mit!

    Btw, der von der KI generierte Code ist teilweise interessant, obwohl ich anders code. Hier sind Suchen per Schleife in Ausdrücken versteckt, für mich etwas gewöhnungsbedürftig, aber offenbar nicht falsch. In diesem Sinne danke ich für deine (unbeabsichtigte) Anregung. ;)

    Ich darf auch noch etwas mitteilen, oder? ;)

    guidofirmenich

    Von einem Freund kenne ich die Node-RED Erweiterung einer CCU 3, welche dort afaik Red-Matic heißt. Falls irgendwelche Dinge, bspw. wegen neuerer Shelly Firmware, nicht wie gewünscht funktionieren, kann ggf. diese Node-RED Erweiterung helfen.

    Bike2200

    Kann mir jemand sagen was ich falsch mache?

    Ja. Du vertraust einer KI, ohne selbst geeignete Kenntnisse zu haben. Und offenbar liest du die sehr detaillierte Shelly API Dokumentation nicht. Letzteres mag zu Anfang etwas schwer "verdaulich" sein, ist jedoch für einen wenigstens halben Durchblick unvermeidbar. Wer sich einmal mit Ausdauer und einigen Versuchen durchgekämpft hat, findet relativ schnell die geeigneten Stellen zum Nachschlagen. Ohne Zeitinvestition keine Erkenntnisse.

    Und nein, man braucht dazu nicht zwingend Programmierkenntnisse, da man sehr viel per HTTP Requests testen kann, siehe Beispiele in der API Dokumentation.

    Hinweise

    Zur Nutzung von Shelly BLU Geräten sind die Shelly Plus Geräte suboptimal, weil diese die Einbindung von BLU Geräten als Components nicht unterstützen und somit ein aufwändigeres Skript erforderlich ist. Ich täte deshalb versuchen, das Plus 1PM Gerät anderweitig einzusetzen und die betreffende Stelle mit einem Shelly 1PM mindestens der dritten Generation zu bestücken.

    Damit ist ein Skript relativ leicht zu erstellen. Ich habe an anderer Stelle das Prinzip dargelegt:

    eiche
    6. Mai 2025 um 22:35

    Dort siehe Beitrag #6!

    Statt eine MQTT Nachricht zu versenden, lässt sich an dieser Stelle leicht ein passender RPC Aufruf einbauen. Es folgt der RPC Aufruf zum einschalten, zum ausschalten ... on:true ... durch ... on:false ... ersetzen!

    Code
    Shelly.call("switch.set", {id:0, on:true});

    Ich bin dazu bereit, dir zum erreichen deines Ziels weiterzuhelfen. Dazu ist es zweckdienlich, dass du dich etwas eingehender mit der Shelly Materie beschäftigst.

    1) Eigenverbrauch abdecken
    2) Akku aufladen

    Ich nutze eine Klein PV Anlage (Balkonkraftwerk) mit einem Anker E Speicher der vorletzten Generation. Damit kann ich den Eigenverbrauch nicht regeln. stoppeljody hat sich bisher nicht hinreichend genau zu seinem E Speicher geäußert, damit wir wissen/einschätzen können, ob sein E Speicher eine Regelung bietet. Somit stehen wir, oder ich zumindest, dbzl. im Nebel.

    Aus seinem #1:

    Zitat

    Das funktioniert auch richtig gut mit der Nulleinspeisung.

    Dies legt deine, bosti0, Vorgabe/Annahme zwar nahe, erscheint mir aber nicht hinreichend eindeutig. Dazu müsste der TE einmal genau beschreiben, wie seine "Nulleinspeisung" im groben arbeitet. Ich investiere sehr ungerne meine Zeit in Dinge, die auf schwankendem Boden aufzusetzen sind.

    Trotzdem vielen Dank für deine konstruktive Beteiligung.

    Zur Zeitsteuerung:

    Fall diese an deinem E Speicher auch Sonnenauf- und Sonnenuntergang, also felxibel/automatisiert zulässt, brauchst du nur, wenn überhaupt, relativ selten etwas zu ändern. Deine vorhandenen/geplanten Shelly können so etwas. Schau dir mal die Zeitplan-Einstellmöglichkeiten deines Pro 3 EM unter Schedules akribisch an, bei einem Glas Wein/Bier oder Tasse Kaffee ;)! Dort wirst du im Advanced Modus "Use sunset or sunrise offset" o.ä. finden. Damit holt sich der Shelly die Sonnenauf- und -untergangszeiten aus dem Internet (selbstverständlich muss er dazu online sein) und passt den Zeitplan täglich automatisch an. Solches ist auch für deinen E Speicher wünschenswert, aber vielleicht nicht vorhanden.

    In dieser Frage steht und fällt der Automatisierungskomfort immer mit der vom E Speicher Hersteller programmierten Kommunikationsfähigkeit, worauf wir - du, ich und andere hier - keinen Einfluss haben.

    Bloß wie mache ich das (Schaltplan) und was muß ich mir noch besorgen?

    Na na, als gelernter Elektriker sollte das für dich doch wohl kein Problem sein. Die beiden zu besorgenden Teile hat borsti0 doch bereits aufgeführt. Der Shelly Dimmer 0/1 bis 10V Generation 3 muss selbstverständlich den M150 steuern, welcher die Phasenanschnittschaltung steuern muss. Genaueres ist den Betriebsanleitungen zu entnehmen, da ich/wir solche Geräte nicht haben.

    Wer würde das Skript schreiben und was würde das kosten?

    Da wird sich jemand finden, bspw. ich, allerdings nur unter der Bedingung, dass du selbst testen musst. Insbesondere bei Nichtfunktion musst du dann die Ausgaben im Console Fenster unterhalb des Skript Editierfensters mitteilen, damit der Skriptersteller daraufhin das Skript verbessern kann. Dazu brauchst du auch Stehvermögen, also nicht schnell aufgeben. Finanziell täte das selbstverständlich nichts kosten. Da ich keines deiner Geräte habe, könnte ich vermutlich nur schrittweise am Skript bis zum funktionieren arbeiten.

    Ich habe bisher nicht auch nur annähernd ein hierfür geeignet Skript erstellt. Solches Situationen hatte ich aber immer wieder und konnte trotzdem so manches Mal ein funktionierendes Skript nach und nach liefern. Ich habe schlicht eine erheblich geringere Gerätevielfalt als viele Anfrager hier. Kreatives Schaffen ist nicht grundsätzlich auf eine passende Ausstattung angewiesen.

    Falls sich hier jemand finden sollte, der eine solche angestrebte Anlage betreibt und skripten kann, ist dieser besser für dich geeignet als ich. Ich könnte dann vielleicht ein erstelltes Skript nachbessern.

    Dann ist mir noch etwas eingefallen. Es muss auch klar sein das die E Speicher erst geladen werden sollen

    und die E-Heizng soll keinen Strom von den Speichern bekommen.

    Das ist ein anderes Thema. Dafür bist du mit deiner Konfiguration des E Speichers zuständig. Solange dieser Speicher nichts in dein Hausnetz abgibt, kann er ja nicht die E Heizung versorgen. Zusätzlich wäre festzustellen, in welchen Toleranzen die Nulleinspeisung arbeitet. Auf Grund dieser Toleranzen sollte es möglich sein, die E Heizung passend zu steuern - mit einem gewissen, kleineren Überschuss, welcher in das öffentliche Netz geht.

    Ich könnte sonst in der App von den Speichern eine Zeit vorgeben ab wann die Strom

    abgeben dürfen. Dann müsste ich die Zeit aber immer ändern. Je nach Sonnenaufgang und Untergang.

    In deinem ersten Beitrag dieses Thread schreibst du von einer funktionierenden Nulleinspeisung. So etwas kann nur per Regelung und damit via Kommunikation mit einem messenden Gerät , wie Shelly Pro 3 EM, gelingen. Inwiefern ist dann die Zeitsteuerung des E Speichers notwendig? Nur dazu vielleicht, wann er überhaupt etwas abgeben darf?

    Ja, bei einer Konfigurationsänderung der E Speicher Zeitsteuerung ist auch das aktive Zeitintervall für den Dimmer anzupassen. Bei Verwendung von Sonnenauf- und Sonnenuntergang sollte dies aber relativ selten erforderlich sein. Unter Umständen und falls erforderlich könnte ich dafür eine unterstützende Webseite zusammenstellen, mit welcher du eine solche Zeitsteuerung für den Dimmer leichter anpassen könntest. So etwas gelingt aber auch per WebUI unter Schedules auf relativ einfache Weise.

    Ich glaube nun bald das das alles viel zu kompliziert ist.

    Mit dieser Einstellung solltest du erst gar nicht beginnen und alles für Geld in Auftrag geben, als, pardon und in aller Freundschaft, dummer Konsument. Ohne Elan und Bereitschaft, sich auf neues einzulassen, geht so etwas halt nicht.

    Ich versuche, wieder in das Thema zu gelangen und bitte darum, mich bei Irrtümern zu korrigieren.

    Ingo2000 schreibt in #1:

    Zitat

    Wichtig für mich wäre, dass ich folgende Werte in einer Ansicht habe:

    • PV-Produktion
    • Netzbezug/-einspeisung
    • Aktueller Verbrauch
    • Batteriestatus (Lade-/Entladeleistung)

    Ich muss an Hand der Daten vom Wechselrichter interpretieren, da ich nicht testen kann.

    1. Die PV-Produktion: Body.Data.327680.channels.Power_PV_Sum

    2. Die Einspeisung des Wechselrichters in das Hausnetz: Body.Data.327680.channels.Power_P_Generate

    Der Netzbezug bzw. die Netzeinspeisung ergibt sich aus den Daten des Shelly Pro 3 EM.

    3. Abfrage per http://<IP Adr. des Pro 3 EM>/rpc/EM.GetStatus?id=0
    Response.total_act_power
    negativer Wert -> Netzeinspeisung, positiver Wert -> Netzbezug
    Hierbei tritt der Speicher als Verbraucher auf.

    4. Der aktuelle Verbrauch ergibt sich aus der Summe der Wechselrichtereinspeisung (s.2.) und des Netzbezugs.

    Der Batteriestatus kann ausschließlich, wenn möglich, dem Speicher entnommen werden und ist somit mit obigen Werten nicht generierbar. Ich sehe bisher keine Möglichkeit, automatisiert an den Batteriestatus heranzukommen. Falls eine Abfrage, ähnlich der des Wechselrichters, auch am Speicher möglich ist, können dessen Werte automatisiert erfasst werden. Bisher sehe ich dazu nichts.

    Das zunächst als Zusammenfassung der Datenquellen - noch ohne Skript.

    Ingo2000 Welche Ansicht stellst du dir vor? Als Tabelle mit aktuellen Werten? Als Funktionsgrafiken über der Zeit?

    Ich nutze bisher in den Shelly keine Sicherheitsschranke per Passwort, weil ich lieber kreativ ohne zusätzliche Schranke arbeite.

    Ich las mal in diesem Forum, dass die Shelly eine sog. digest Authentifizierung nutzen. In der API Dokumentation könnte dazu mehr zu finden sein.

    Auf die Schnelle kann ich deine Frage also nicht beantworten, aber so schlicht wird es wohl nicht gehen. Im URL sollte eh kein Passwort im Klartext stehen.

    Auch nicht übel. Das erübrigt aber nicht das phasenselektive Schalten und täte die Schaltung noch komplexer machen.

    Edit:

    Wenn ich die entsprechenden Teile geschenkt bekäme, könnte ich mit der Entwicklung eines geeigneten Skripts beginnen. Eine VDI Zulassung/Zertifizierung müssten dann solche anstreben, die daraus ein Geschäft machen wollten. ;););)

    Etwas Brainstorming ...

    Genau genommen ließen sich durch mehrere definiert abgestufte Verbraucher, wie sie Thomas favorisiert, und Beschaltungen eine relativ fein abgestimmte Steuerung implementieren. Die Messdaten liegen vor. Neben der erhöhten Investition in Sicherheit, könnten bspw. Schütze zu jedem der Verbraucher jede Phase, die beiden anderen ausschließend, schalten.

    Der Rest ist eine "KI", die bspw. minütlich die optimale Verteilung ermittelt und auf Grund derer die Phasen zu den drei Verbrauchern schaltet. Dazu wären SSR allerdings die bessere Wahl. Ob es solche mit hinreichender Spannungsfestigkeit gibt, weiß ich nicht. Und der VDI hätte sicher auch etwas gegen diese Idee ... ;)

    Aha, das dürfte in der Konfiguration nicht gelingen. Falls hier ausschließlich die Anzeige interessiert und der Wert nicht verarbeitet werden soll, könnte es mit einem recht komplexen Ausdruck vielleicht gelingen.

    In einem Skript und einer von dort zu sendenden (MQTT) Nachricht ginge es so: (nach Experimenten mit einem Plus Uni)

    Code
    // Component Voltmeter, muss ggf. durch anderen key/type ersetzt werden - id ggf. ebenfalls
    let x = Shelly.getComponentStatus("Voltmeter", 100").xvoltage; // Wert nach konfiguriertem Ausdruck holen
    x = Math.round(x); // kann entfallen, wenn im konfigurierten Ausdruck bereits gerundet wird
    let t = Math.floor(x/1000); // Tausender
    x = x - 1000*t; // Rest nach Abzug der Tausender
    x = JSON.stringify(t) + '.' + JSON.stringify(x); // Zeichenkette mit Punkt
    // Irgendwie senden, bspw. per MQTT
    MQTT.publish(<dein Topic>, x);

    Dazu brauchst du die id des zu deaktivierenden Schedule Jobs.

    1. https://shelly-api-docs.shelly.cloud/gen2/Component…le#schedulelist
      https://shelly-api-docs.shelly.cloud/gen2/Component…ulelist-example
    2. https://shelly-api-docs.shelly.cloud/gen2/Component…#scheduleupdate
      https://shelly-api-docs.shelly.cloud/gen2/Component…eupdate-example

    Zum finden der Job id:

    Code
    http://<IP Adresse des Plus 2 PM>/rpc/Schedule.List

    In jedem der aufgelisteten Einträge steht die Job id am Anfang - id:<Nummer>.

    Zum deaktivieren:

    Code
    http://<IP Adresse des Plus 2 PM>/rpc/Schedule.Update?id=<Job id>&enable=false

    Zum aktivieren:

    Code
    http://<IP Adresse des Plus 2 PM>/rpc/Schedule.Update?id=<Job id>&enable=true

    Alternativ kannst du bspw. per WebUI unter Schedules den virtuellen Schiebeschalter (rechts) nutzen.