Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Blockly, Trigger und 2 Timeouts

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.8k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Blockly, Trigger und 2 Timeouts

Geplant Angeheftet Gesperrt Verschoben Blockly
10 Beiträge 2 Kommentatoren 765 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    sonny
    schrieb am zuletzt editiert von sonny
    #1

    Edit : Für besseres Verständniss siehe Post 8 hier :)

    Hallo miteinander :)

    Ich ärgere mich ein wenig grün und blau, weil etwas IRGENDWIE funktioniert lach
    Folgendes Hier ein Screenshot des Zustandes:

    Screenshot 2024-11-02 090730.png

    Der Trigger (falls geändert) liegt auf der "Einspeiseleistung" (Damit ist allerdings ein Wert gemeint, der auf die Kommunikationsschnittstelle , wo gemeinsam 2 Wechselrichter vorhanden sind, übertragen wird.

    Ich hab mit einem Shelly Plus Uni (RS485_1 und RS485_2) Die Kommunikationsleitung zu EINEM Wechselrichter unter Kontrolle.(Die kann ich trennen - damit ist der Wechselrichter ausser Funktion)

    Falls Einspeiseleistung ist größer als 600 Watt, soll er die RS485 EINSCHALTEN und falls Kleiner Soll er sie ausschalten.

    Beispiel: Angeforderte Leistung ist ÜBER EINEN ZEITRAUM von 4250 ms (Beispielhaft) GRÖSSER 600 Watt: RS485 (beide) werden aktiviert, und per MQTT erfolgt eine Änderung an meine Steuerung der Wechselrichteranzahl auf 2.die intern die Leistung auf 2 Geräte aufteilt (Halbiert), Jeder Wechselrichter ballert somit mit 300 Watt rein.

    Nun falls aber die Leistung kleiner als 600 Watt ist : Wird die RS485 Verbindung zu einem Wechselrichter getrennt, und der Steuerung per MQTT Übermittelt, das sie den Wert nichtmehr zu halbieren braucht (1). Der zweite schaltet, da er keine Signale mehr über die Schnittstelle bekommt ab, und einer erledigt die arbeit.

    Was ja tadellos funktioniert.

    Ich habe das Problem: Der Kühlschrank schaltet ein und zieht nun 1,7kw (Einschaltstrom) für 2-3 Sekunden. In diesem Fall will ich NICHT das auf 2 Wechselrichter umgeschaltet wird (4250 ms pause)

    Ich denk aus dem Script geht hervor was ich vorhabe . Das ABSCHALTEN (Also der erste Block) (Vorsicht: Seitenverkehrt) NACH 60 sekunden (Falls 2 Wechselrichter aktiv waren) funktioniert.Um der Waschmaschine und Kaffeemaschine gerecht zu werden

    Er macht aber beim EINSCHALTEN (der Zweite block) diese 4250ms Pause nicht, oder nicht immer, oder wie er will.
    Ich hab da irgendwo einen Denkfehler drin.

    Sonst , von der Funktion her, passt alles. da geschieht alles korrekt. Nur die "Hysterese" passt nicht beim einschalten.

    Das "Steuerbefehl" ist nur für mich, um zu schauen , wieviele Befehle da "umgesetz" werden, um Panikschaltungen zu vermeiden :) (Bin da bei Triggern in Testphasen immer vorsichtig)

    Grund dieses Spektakels: Effizienz des Batteriespeichers gegenüber. Es müssen bei Leistungen kleiner 600W nicht beide WR laufen. (Wobei ich grossteils eh nur 150W herumnukkel)

    Bitte Hilfe, Vielen Dank vorab.
    LG

    HomoranH 1 Antwort Letzte Antwort
    0
    • S sonny

      Edit : Für besseres Verständniss siehe Post 8 hier :)

      Hallo miteinander :)

      Ich ärgere mich ein wenig grün und blau, weil etwas IRGENDWIE funktioniert lach
      Folgendes Hier ein Screenshot des Zustandes:

      Screenshot 2024-11-02 090730.png

      Der Trigger (falls geändert) liegt auf der "Einspeiseleistung" (Damit ist allerdings ein Wert gemeint, der auf die Kommunikationsschnittstelle , wo gemeinsam 2 Wechselrichter vorhanden sind, übertragen wird.

      Ich hab mit einem Shelly Plus Uni (RS485_1 und RS485_2) Die Kommunikationsleitung zu EINEM Wechselrichter unter Kontrolle.(Die kann ich trennen - damit ist der Wechselrichter ausser Funktion)

      Falls Einspeiseleistung ist größer als 600 Watt, soll er die RS485 EINSCHALTEN und falls Kleiner Soll er sie ausschalten.

      Beispiel: Angeforderte Leistung ist ÜBER EINEN ZEITRAUM von 4250 ms (Beispielhaft) GRÖSSER 600 Watt: RS485 (beide) werden aktiviert, und per MQTT erfolgt eine Änderung an meine Steuerung der Wechselrichteranzahl auf 2.die intern die Leistung auf 2 Geräte aufteilt (Halbiert), Jeder Wechselrichter ballert somit mit 300 Watt rein.

      Nun falls aber die Leistung kleiner als 600 Watt ist : Wird die RS485 Verbindung zu einem Wechselrichter getrennt, und der Steuerung per MQTT Übermittelt, das sie den Wert nichtmehr zu halbieren braucht (1). Der zweite schaltet, da er keine Signale mehr über die Schnittstelle bekommt ab, und einer erledigt die arbeit.

      Was ja tadellos funktioniert.

      Ich habe das Problem: Der Kühlschrank schaltet ein und zieht nun 1,7kw (Einschaltstrom) für 2-3 Sekunden. In diesem Fall will ich NICHT das auf 2 Wechselrichter umgeschaltet wird (4250 ms pause)

      Ich denk aus dem Script geht hervor was ich vorhabe . Das ABSCHALTEN (Also der erste Block) (Vorsicht: Seitenverkehrt) NACH 60 sekunden (Falls 2 Wechselrichter aktiv waren) funktioniert.Um der Waschmaschine und Kaffeemaschine gerecht zu werden

      Er macht aber beim EINSCHALTEN (der Zweite block) diese 4250ms Pause nicht, oder nicht immer, oder wie er will.
      Ich hab da irgendwo einen Denkfehler drin.

      Sonst , von der Funktion her, passt alles. da geschieht alles korrekt. Nur die "Hysterese" passt nicht beim einschalten.

      Das "Steuerbefehl" ist nur für mich, um zu schauen , wieviele Befehle da "umgesetz" werden, um Panikschaltungen zu vermeiden :) (Bin da bei Triggern in Testphasen immer vorsichtig)

      Grund dieses Spektakels: Effizienz des Batteriespeichers gegenüber. Es müssen bei Leistungen kleiner 600W nicht beide WR laufen. (Wobei ich grossteils eh nur 150W herumnukkel)

      Bitte Hilfe, Vielen Dank vorab.
      LG

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      @sonny sagte in Blockly, Trigger und 2 Timeouts:

      Der Trigger (falls geändert) liegt auf der "Einspeiseleistung"

      Bitte alles zeigen!

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      S 1 Antwort Letzte Antwort
      1
      • HomoranH Homoran

        @sonny sagte in Blockly, Trigger und 2 Timeouts:

        Der Trigger (falls geändert) liegt auf der "Einspeiseleistung"

        Bitte alles zeigen!

        S Offline
        S Offline
        sonny
        schrieb am zuletzt editiert von sonny
        #3

        @homoran Screenshot 2024-11-02 090730.png

        Schau, unterhalb liegen lediglich Captions (Beschriftungen für den Energiefluss erweitert)
        Das ist alles was im Trigger lauft.

        HomoranH 1 Antwort Letzte Antwort
        0
        • S sonny

          @homoran Screenshot 2024-11-02 090730.png

          Schau, unterhalb liegen lediglich Captions (Beschriftungen für den Energiefluss erweitert)
          Das ist alles was im Trigger lauft.

          HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #4

          @sonny Screenshot_20241102-093651_Firefox.jpg

          was ist das für ein zweiter Trigger?
          was macht der?

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          S 1 Antwort Letzte Antwort
          0
          • HomoranH Homoran

            @sonny Screenshot_20241102-093651_Firefox.jpg

            was ist das für ein zweiter Trigger?
            was macht der?

            S Offline
            S Offline
            sonny
            schrieb am zuletzt editiert von sonny
            #5

            @homoran

            Der Autobetrieb steht im Regelfall immer auf "1".

            Er geht bei Fehlern und im Handbetrieb, automatisch auf "0" (Das ist in der Gegenseite, der Steuerung, fest integriert)
            unten bei den Captions siehst du, Wenn der Wert "0" ist, gilt der Handbetrieb (Die Leistung gebe ich ihm händisch fix vor)
            Die interne Steuerung nimmt von extern (iobroker, mqtt usw) dann aber keine Befehle mehr entgegen. Den Handbetrieb muss ich manuell einschalten.

            Der Autobetrieb hat auf das "Regelverhalten" was mein Problemchen hier betrifft , keinen Einfluss.
            Ich hab das nur willkürlich so benannt.

            Autobetrieb 1 = Alles regelt automatisch.
            Autobetrieb 0 = Steuerung extern abgeschalten oder Fehlerfall, oder Handbetrieb (In allen Fällen ignoriert die Steuerung alles was von extern kommt)
            Der Handbetrieb: da sag ich ihm eine Fixe Leistung, die er umsetzt (Was man eh nie braucht)
            Er wirde nur für eine Beschriftung verwendet hier.

            Screenshot 2024-11-02 095031.png

            HomoranH 1 Antwort Letzte Antwort
            0
            • S sonny

              @homoran

              Der Autobetrieb steht im Regelfall immer auf "1".

              Er geht bei Fehlern und im Handbetrieb, automatisch auf "0" (Das ist in der Gegenseite, der Steuerung, fest integriert)
              unten bei den Captions siehst du, Wenn der Wert "0" ist, gilt der Handbetrieb (Die Leistung gebe ich ihm händisch fix vor)
              Die interne Steuerung nimmt von extern (iobroker, mqtt usw) dann aber keine Befehle mehr entgegen. Den Handbetrieb muss ich manuell einschalten.

              Der Autobetrieb hat auf das "Regelverhalten" was mein Problemchen hier betrifft , keinen Einfluss.
              Ich hab das nur willkürlich so benannt.

              Autobetrieb 1 = Alles regelt automatisch.
              Autobetrieb 0 = Steuerung extern abgeschalten oder Fehlerfall, oder Handbetrieb (In allen Fällen ignoriert die Steuerung alles was von extern kommt)
              Der Handbetrieb: da sag ich ihm eine Fixe Leistung, die er umsetzt (Was man eh nie braucht)
              Er wirde nur für eine Beschriftung verwendet hier.

              Screenshot 2024-11-02 095031.png

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #6

              @sonny Aah, da steht "Autobetrieb" :grin:
              ist nicht zu entziffern.

              darunter scheint zu stehen
              "Anzahl Wechselrichter ändern"

              es wird auch auf Anzahl ungleich 1 oder ungleich 2 geprüft.
              aber wo wird der Wert gesetzt?

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              S 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @sonny Aah, da steht "Autobetrieb" :grin:
                ist nicht zu entziffern.

                darunter scheint zu stehen
                "Anzahl Wechselrichter ändern"

                es wird auch auf Anzahl ungleich 1 oder ungleich 2 geprüft.
                aber wo wird der Wert gesetzt?

                S Offline
                S Offline
                sonny
                schrieb am zuletzt editiert von
                #7

                @homoran

                Der wird per MQTT übertragen :)
                und von der Gegenseite auch sofort umgesetzt.(Das geschieht natürlich in Echtzeit)

                Ja ich prüf das immer gerne gegen, das sich nix "verschlucken" kann :)

                S 1 Antwort Letzte Antwort
                0
                • S sonny

                  @homoran

                  Der wird per MQTT übertragen :)
                  und von der Gegenseite auch sofort umgesetzt.(Das geschieht natürlich in Echtzeit)

                  Ja ich prüf das immer gerne gegen, das sich nix "verschlucken" kann :)

                  S Offline
                  S Offline
                  sonny
                  schrieb am zuletzt editiert von sonny
                  #8

                  So hab das ganze jetzt etwas anders "zusammengebastelt" : aus dem, so glaube ich, klarer hervorgeht was ich da vorhab.

                  Screenshot 2024-11-02 135454.png

                  Ob das so nun klappt , weiss ich nicht lach (Zellen Einzelbalancierung bis morgen)

                  Ich hab aber ein folgendes Szenario welches es zu beachten gilt.

                  Momentan 1 WR aktiv.

                  Nun passiert folgendes: Anforderung 1700 W ("Einspeiseleistung)- und der Wert ändert sich nichtmehr (Das wäre Vollast- der höchste zulässige Wert bei mir)
                  Das Script wartet nun das Timeout von 3 Sekunden. ab, und macht dann was ?
                  Garnichtsmehr ?
                  Der Wert von 1700 ändert sich in diesem Beispiel NICHT , also der Trigger wird nicht neu ausgeführt (Praxisbeispiel ich hab Geschirrspüler und Toaster gleichzeitig laufen)

                  Was passiert hier: WARTET der Trigger die 3 Sekunden ab und schaltet dann beide WR ein , also er führt das aus, ODER muss er "neu getriggert" werden ? (Erwartet also eine Wertänderung das es ausgeführt wird) . Kann mit dem Scripten erst morgen Nachmittag weiterprobieren.

                  Folgendes sollte bewerkstelligt werden:

                  Ist der angeforderte Wert größer als 600 soll, nach 3 Sekunden wartezeit (Um Einschaltströme auszubügeln)-wenn immer noch >600 angefordert werden, auf "2" umgestellt werden.

                  Ist der Wert kleiner wie 600, soll nach 60 sekunden Wartezeit - wieder auf 1 umgeschaltet werden.

                  S 1 Antwort Letzte Antwort
                  0
                  • S sonny

                    So hab das ganze jetzt etwas anders "zusammengebastelt" : aus dem, so glaube ich, klarer hervorgeht was ich da vorhab.

                    Screenshot 2024-11-02 135454.png

                    Ob das so nun klappt , weiss ich nicht lach (Zellen Einzelbalancierung bis morgen)

                    Ich hab aber ein folgendes Szenario welches es zu beachten gilt.

                    Momentan 1 WR aktiv.

                    Nun passiert folgendes: Anforderung 1700 W ("Einspeiseleistung)- und der Wert ändert sich nichtmehr (Das wäre Vollast- der höchste zulässige Wert bei mir)
                    Das Script wartet nun das Timeout von 3 Sekunden. ab, und macht dann was ?
                    Garnichtsmehr ?
                    Der Wert von 1700 ändert sich in diesem Beispiel NICHT , also der Trigger wird nicht neu ausgeführt (Praxisbeispiel ich hab Geschirrspüler und Toaster gleichzeitig laufen)

                    Was passiert hier: WARTET der Trigger die 3 Sekunden ab und schaltet dann beide WR ein , also er führt das aus, ODER muss er "neu getriggert" werden ? (Erwartet also eine Wertänderung das es ausgeführt wird) . Kann mit dem Scripten erst morgen Nachmittag weiterprobieren.

                    Folgendes sollte bewerkstelligt werden:

                    Ist der angeforderte Wert größer als 600 soll, nach 3 Sekunden wartezeit (Um Einschaltströme auszubügeln)-wenn immer noch >600 angefordert werden, auf "2" umgestellt werden.

                    Ist der Wert kleiner wie 600, soll nach 60 sekunden Wartezeit - wieder auf 1 umgeschaltet werden.

                    S Offline
                    S Offline
                    sonny
                    schrieb am zuletzt editiert von sonny
                    #9

                    So Hab das nochmal umgestaltet, nachdem ich mir das tolle "Blockly für Dummies" vom Codierknecht durchgesehen hab :) Respekt - Danke für die tollen Infos dort !
                    (Hab eigentlich gleich alle meine Scripte entsprechend angepasst)

                    Hab das nun so wie auf dem Screenshot - Es funktioniert nicht wie es soll... Er schaltet zu früh ein (Frisst einschaltströme also), aber auch willkürlich (Für mich nicht nachvollziehbar) vor den 60 sekunden wieder ab. Ich hab auch statt "Setze Delayxxx=null" das "Stop Delay" selbst probiert.

                    Vielleicht hat jemand die zündende Idee :)
                    LG derweil.

                    neu.png

                    S 1 Antwort Letzte Antwort
                    0
                    • S sonny

                      So Hab das nochmal umgestaltet, nachdem ich mir das tolle "Blockly für Dummies" vom Codierknecht durchgesehen hab :) Respekt - Danke für die tollen Infos dort !
                      (Hab eigentlich gleich alle meine Scripte entsprechend angepasst)

                      Hab das nun so wie auf dem Screenshot - Es funktioniert nicht wie es soll... Er schaltet zu früh ein (Frisst einschaltströme also), aber auch willkürlich (Für mich nicht nachvollziehbar) vor den 60 sekunden wieder ab. Ich hab auch statt "Setze Delayxxx=null" das "Stop Delay" selbst probiert.

                      Vielleicht hat jemand die zündende Idee :)
                      LG derweil.

                      neu.png

                      S Offline
                      S Offline
                      sonny
                      schrieb am zuletzt editiert von sonny
                      #10

                      Falls es jemandem von Nutzen ist : Das hier scheint zu funktionieren :) Bin noch am Testen.
                      Jetzt ist die ZEIT des ein und abschaltens für mich nachvollziehbar. Da er ja willkührlich die Timer zu zählen angefangen hat, hab ich mit den STOPs einfach festgelegt, WANN er wieder "von vorne" anfangen soll. Das ist in dem Fall auch notwendig . Musste da ein wenig umdenken.

                      Lösung.png

                      1 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      510

                      Online

                      32.6k

                      Benutzer

                      82.3k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe