Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Node-Red - Shelly PlusPlugS - Mqtt Node-Red Dashboard

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Node-Red - Shelly PlusPlugS - Mqtt Node-Red Dashboard

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @Hape1 last edited by

      @hape1 Gut dann sollte ja jetzt nur noch alle 10s eine Nachricht aus der delay Node rauskommen. Nun nutzen wir eine ChangeNode, um alle Werte aller Eigenschaften des payload Objektes zusammenzuzählen. Also änderst Du die payload mit eine ChangeNode und nutzt folgenden JSONATA Code:

      $sum(payload.*)	
      
      H 1 Reply Last reply Reply Quote 0
      • H
        Hape1 @mickym last edited by

        @mickym Bildschirmfoto 2024-04-01 um 21.06.21.png

        mickym 1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @Hape1 last edited by

          @hape1 Hervorragend - nun solltest Du also alle 10 Sekunden in der payload die Summe haben, richtig?

          H 1 Reply Last reply Reply Quote 0
          • H
            Hape1 @mickym last edited by

            @mickym ja, klappt!

            mickym 1 Reply Last reply Reply Quote 0
            • mickym
              mickym Most Active @Hape1 last edited by mickym

              @hape1 So und nun schauen wir mal die function Node an. 😉

              Der schreibt nun eine Menge Code um die Summe zwischen 0 und 1600 zu begrenzen:

              c54eb492-7ef2-432e-83fb-5998c935436b-image.png

              Wenn statt 0 eine 1 kommen soll, dann begrenze das einfach auf 1 bei der Ausgabe und hake die Rundungsfunktion an. Jedenfalls geht das ganz ohne Code mit einer range Node.

              4385acfa-f140-420f-8708-502de23b6c75-image.png

              Übersteigt der Wert die obere Grenze wird der obere Wert genommen, sonst der untere Wert.

              H 1 Reply Last reply Reply Quote 0
              • H
                Hape1 @mickym last edited by

                @mickym Getreu dem Motto, es gibt keine blöden Fragen ... 🙄

                Mir ist nicht ganz klar, was der range-node genau macht.

                Was genau ist der "Eingangswertebereich" bzw. der "Ausgangswertebereich" ... wo ist hier die Regelung um "0" der Energiewerte hinterlegt --> in der 0 vom Eingangs- bzw. Ausgangswertebereich. Und was passiert, wenn ich in der Ausgabe eine 1 eintrage?

                Bildschirmfoto 2024-04-01 um 21.21.33.png

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Hape1 last edited by mickym

                  @hape1 Dann wird skaliert, dann ist 3 nicht mehr 3 sondern etwas darüber - das kannst du dann mit runden wieder ausgleichen.
                  Hier mal ein Beispiel mit verschiedenen Werten:

                  25815a1d-c59e-41f7-94e7-18d330b2c56b-image.png

                  Ich würde aber wohl einfach beides auf 1-1600 stellen, dann wird nicht skaliert und du hast immer eine 1.

                  Warum 0 immer eine 0 bleiben soll, eine -5 aber dann 1 verstehe ich nicht ganz - zur Not kann man das auch alles mit switch Nodes abfangen. Aber ich würde deswegen nicht anfangen zu programmieren, wenn Du kein Javascript kannst.

                  Auf keinen Fall solltest Du irgendwelche function Nodes nehmen, wo Du nicht weißt, was die macht.

                  H 1 Reply Last reply Reply Quote 0
                  • H
                    Hape1 @mickym last edited by

                    @mickym Die realen Fakten wären:

                    Wechselrichter mit einer max. Leistung von 1600W

                    Ziel, alles was am Energiemeter in der Summe aller 3 Phasen von 0 in den Minus - Bereich geht, gleichbedeutet mit Einspeisung, soll der Richter seine Leistungsabgabe abriegeln bis auf 0 Watt Energieabgabe

                    Alles was 0 oder wahrscheinlich besser 10 W und größer ist, also Netzbezug soll der Wechselrichter bin hin zu seiner größtmöglichen Leistungsabgabe regeln.

                    Das heißt auf unser change-node bezogen, wenn ich statt 0 bei der Ausgabe 10 eintrage passiert genau das?

                    H mickym 2 Replies Last reply Reply Quote 0
                    • H
                      Hape1 @Hape1 last edited by

                      @hape1 Ah jetzt sehe ich, unsere Antworten haben sich überschnitten. Alles klar, wir lassen das erstmal so.

                      Und nun per mqtt-node mit dem Datenpunkt des Wechselrichters verbinden, oder?

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Hape1 last edited by

                        @hape1 sagte in Node-Red - Shelly PlusPlugS - Mqtt Node-Red Dashboard:

                        change-node bezogen

                        Na Du meinst die range Node. Ich glaube am flexibelsten bist Du wenn Du eine Switch Node nimmst und dann kannst Du flexibel auf jede Situation reagieren. Also lass mal die range Node weg und unterscheide Deine unterschiedlichen Fälle mir einer Switch Node.

                        H 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @Hape1 last edited by

                          @hape1 sagte in Node-Red - Shelly PlusPlugS - Mqtt Node-Red Dashboard:

                          Und nun per mqtt-node mit dem Datenpunkt des Wechselrichters verbinden, oder?

                          Was wieso - dieser ist also kein Datenpunkt des modbus Adapeters?

                          1 Reply Last reply Reply Quote 0
                          • H
                            Hape1 @mickym last edited by

                            @mickym Ja, ich meinte natürlich den range-node. Der range-node hat aber den Vorteil einer kontinuierlichen Regelung, oder? Der Switch schaltet hingegen in festgesetzten Stufen (wäre aber auch kein Problem ... )

                            Die Steuereinheit des Wechselrichters kann nur per mqtt angesprochen werden.

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @Hape1 last edited by

                              @hape1 Die rangeNode gibt halt den einschließenden Ausgabebereich einfach weiter und gibt halt wenn dieser über- bzw. unterschritten wird die definierten Ränder aus. Die payload kannst ja dann mit mqtt wo du willst hinschreiben.

                              H 1 Reply Last reply Reply Quote 0
                              • H
                                Hape1 @mickym last edited by

                                @mickym ... erstmal ganz lieben Dank für Deine Hilfe. Ich kann das Setup erst testen, wenn die Sonne scheint, was also frühestens morgen sein wird. Ich melde mich dann hierzu zurück.

                                Nochmals vielen Dank für Deine Hilfe, ich hätte wenn ich es überhaupt hingekriegt hätte, wohl eher Wochen statt Stunden gebraucht ... !!!

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @Hape1 last edited by

                                  @hape1 Ja gerne. Wie gesagt mit debug und inject Nodes kannst Du immer viel simulieren und testen - dann brauchst Du nicht auf die Sonne warten. Aber ansonsten mach mal eine Pause und lasse es Dir mal durch den Kopf gehen. Wichtig ist, dass Du NodeRed nutzen willst und nicht programmieren. Das kannst Du im iobroker auch ohne NodeRed. 😉

                                  H 1 Reply Last reply Reply Quote 0
                                  • H
                                    Hape1 @mickym last edited by

                                    @mickym

                                    Bildschirmfoto 2024-04-01 um 22.13.20.png

                                    Hast Recht, die Stunden haben mir wohl "zugesetzt" --> ich habe nämlich glatt mal drei zusätzliche Bedingungen für die Ausregelung des Wechselrichters gegen 0 vergessen:

                                    1. Diese soll erst greifen, wenn die Hausbatterien voll geladen und
                                    2. zusätzlich das Auto nicht an der Wallbox hängt bzw.
                                    3. dieses voll geladen ist.

                                    Die Datenpunkte von 1-3 stehen per mqtt zur Verfügung.

                                    Ok, ich lasse das jetzt erstmal sacken und melde mich wieder ...

                                    H 1 Reply Last reply Reply Quote 0
                                    • H
                                      Hape1 @Hape1 last edited by Hape1

                                      @mickym Hi, melde mich zum Thema zurück.

                                      Der programmierte Flow funktioniert wie gewünscht, der Wechselrichter reagiert genauso wie es der Flow vorgibt und wird gegen 0 ausgeregelt.

                                      Super!

                                      Nun muss aber noch etwas dazu, nämlich die folgenden, zusätzlichen Bedingungen:

                                      1. Die Hausbatterien müssen voll geladen sein und
                                      2. das Auto (Wallbox) voll geladen ist bzw.
                                      3. dieses gar nicht angeschlossen ist.

                                      Erst wenn die Bedingungen 1-3 erfüllt sind soll die Ausregelung gegen 0 erfolgen.

                                      Die Datenpunkte von 1-3 stehen per modbus-iobroker-Adapter zur Verfügung.

                                      Wäre schön, wenn Du mir nochmal helfen würdest.

                                      mickym 1 Reply Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @Hape1 last edited by mickym

                                        @hape1 Nun Du musst Dir halt die Daten entweder in den Flow holen oder Du holst Dir unabhängig die Daten in NodeRed, was ich effizienter finde und speicherst das in Flowvariablen. Bedingungen die alle erfüllt sein müssen, erreichst Du in dem Du mit Switch Nodes nur dann die Nachrichten weiter durchlässt, wenn diese erfüllt sind.

                                        Ich würde also mit iobroker IN Nodes (diese so konfigurieren, dass sie beim Start die Werte einlesen) die Werte in Variablen des Flow Kontexts speichern (machst Du mit einer ChangeNode). Den Inhalt kannst Du im Kontexttab überprüfen.

                                        H 1 Reply Last reply Reply Quote 0
                                        • H
                                          Hape1 @mickym last edited by Hape1

                                          @mickym

                                          Ok, so sieht das Ganze jetzt aus ... ich muss. Dein Input wäre nun hilfreich ...
                                          Bildschirmfoto 2024-04-02 um 20.02.54.png

                                          Bildschirmfoto 2024-04-02 um 20.03.28.png

                                          Bildschirmfoto 2024-04-02 um 20.03.50.png

                                          Wobei ich noch vergessen habe, das die "EVCS" folgende Statusmeldungen bringt:

                                          0 - Disconnected
                                          1 - Connected
                                          2 - Charging
                                          3 - Charged
                                          4 - Waiting for sun
                                          6 - Waiting for start
                                          7 - Low SOC

                                          0 = Bedingung KEINE Ausregelung gegen 0
                                          1 = Bedingung KEINE Ausregelung gegen 0
                                          2 = Bedingung KEINE Ausregelung gegen 0
                                          4 = Bedingung KEINE Ausregelung gegen 0
                                          6 = Bedingung KEINE Ausregelung gegen 0
                                          7 = Bedingung KEINE Ausregelung gegen 0

                                          3 = Bedingung Ausregelung gegen 0

                                          mickym 1 Reply Last reply Reply Quote 0
                                          • mickym
                                            mickym Most Active @Hape1 last edited by

                                            @hape1 ja die iobroker In Nodes mit Fire bei Start sehen gut aus. Nun speicherst Du die payload einfach in einer Variablen im Flowkontext mit einer Change node.

                                            Also zum Beispiel die erste Node in einer Variablen "Batterie_SoC" oder "EVCS".

                                            da6d21ca-67d5-4b78-adde-daa57b30b7a7-image.png

                                            Den Flow Kontext musst Du akutualisieren, um den aktuellen Zustand Deiner Variablen zu sehen.

                                            Welcher Zustand geliefert wird, ist erst mal egal - Du musst ja nur wissen auf was Du später filtern willst.

                                            H 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            187
                                            14771
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo