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. Gelöst: Fehlfunktion: Shelly Leistungsgesteuert schalten

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Gelöst: Fehlfunktion: Shelly Leistungsgesteuert schalten

Geplant Angeheftet Gesperrt Verschoben Blockly
12 Beiträge 3 Kommentatoren 905 Aufrufe 2 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.
  • M Offline
    M Offline
    Markus 7
    schrieb am zuletzt editiert von Markus 7
    #1

    Hallo zusammen,

    ich bin noch meilenweit weg, was die Programmierung von komplexen Skripten anbelangt, dennoch traue ich mir zu, einen Shelly Plug leistungsgesteuert zu schalten.

    Aber wie ich es auch anstelle, der Shelly wird auch bei einer Stromleistung >> 20 Watt geschaltet.
    Was habe ich übersehen?

    8e62f93f-702d-4233-ba06-7e513540378a-image.png

    <xml xmlns="https://developers.google.com/blockly/xml">
      <block type="on_ext" id="eF#Zha0wK];5Dwo{Ro%~" x="188" y="-312">
        <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <value name="OID0">
          <shadow type="field_oid" id="bk`sT=?y14BETlgNu^a)">
            <field name="oid">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Power</field>
          </shadow>
        </value>
        <statement name="STATEMENT">
          <block type="controls_if" id="J%cA)A4k;3*p5`aE{I(c">
            <value name="IF0">
              <block type="logic_compare" id="3?:U-hVOLiRYwGMPQaWG">
                <field name="OP">LT</field>
                <value name="A">
                  <block type="get_value" id="|.*qf9TTo+}3lxCy;/##">
                    <field name="ATTR">val</field>
                    <field name="OID">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Power</field>
                  </block>
                </value>
                <value name="B">
                  <block type="math_number" id="mO7KF#x=W{mLn~797c[.">
                    <field name="NUM">20</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="control" id="2g9A5)JLvn8#N7T%KIzB">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                <field name="OID">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Switch</field>
                <field name="WITH_DELAY">TRUE</field>
                <field name="DELAY_MS">5</field>
                <field name="UNIT">min</field>
                <field name="CLEAR_RUNNING">FALSE</field>
                <value name="VALUE">
                  <block type="logic_boolean" id="WL(Dk!)@}|,X%|~vLjbk">
                    <field name="BOOL">FALSE</field>
                  </block>
                </value>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </xml>
    

    Viele Grüße,
    Markus

    paul53P 1 Antwort Letzte Antwort
    0
    • M Markus 7

      Hallo zusammen,

      ich bin noch meilenweit weg, was die Programmierung von komplexen Skripten anbelangt, dennoch traue ich mir zu, einen Shelly Plug leistungsgesteuert zu schalten.

      Aber wie ich es auch anstelle, der Shelly wird auch bei einer Stromleistung >> 20 Watt geschaltet.
      Was habe ich übersehen?

      8e62f93f-702d-4233-ba06-7e513540378a-image.png

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on_ext" id="eF#Zha0wK];5Dwo{Ro%~" x="188" y="-312">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="bk`sT=?y14BETlgNu^a)">
              <field name="oid">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Power</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="J%cA)A4k;3*p5`aE{I(c">
              <value name="IF0">
                <block type="logic_compare" id="3?:U-hVOLiRYwGMPQaWG">
                  <field name="OP">LT</field>
                  <value name="A">
                    <block type="get_value" id="|.*qf9TTo+}3lxCy;/##">
                      <field name="ATTR">val</field>
                      <field name="OID">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Power</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="math_number" id="mO7KF#x=W{mLn~797c[.">
                      <field name="NUM">20</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="control" id="2g9A5)JLvn8#N7T%KIzB">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                  <field name="OID">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Switch</field>
                  <field name="WITH_DELAY">TRUE</field>
                  <field name="DELAY_MS">5</field>
                  <field name="UNIT">min</field>
                  <field name="CLEAR_RUNNING">FALSE</field>
                  <value name="VALUE">
                    <block type="logic_boolean" id="WL(Dk!)@}|,X%|~vLjbk">
                      <field name="BOOL">FALSE</field>
                    </block>
                  </value>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      

      Viele Grüße,
      Markus

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @markus-7
      Versuche es mal so:

      Blockly_temp.JPG

      <xml xmlns="https://developers.google.com/blockly/xml">
       <block type="on_ext" id="eF#Zha0wK];5Dwo{Ro%~" x="188" y="-312">
         <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
         <field name="CONDITION">ne</field>
         <field name="ACK_CONDITION"></field>
         <value name="OID0">
           <shadow type="field_oid" id="bk`sT=?y14BETlgNu^a)">
             <field name="oid">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Power</field>
           </shadow>
         </value>
         <statement name="STATEMENT">
           <block type="controls_if" id="J%cA)A4k;3*p5`aE{I(c">
             <value name="IF0">
               <block type="logic_multi_and" id="[[U(@[$(Mw7Mmn(neq()">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                 <value name="AND0">
                   <block type="logic_compare" id="3?:U-hVOLiRYwGMPQaWG">
                     <field name="OP">LT</field>
                     <value name="A">
                       <block type="on_source" id="_+aB@f-yFPpA~79:}w(m">
                         <field name="ATTR">state.val</field>
                       </block>
                     </value>
                     <value name="B">
                       <block type="math_number" id="mO7KF#x=W{mLn~797c[.">
                         <field name="NUM">20</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <value name="AND1">
                   <block type="logic_compare" id="lutm6vkjBa3R7}/leHwZ">
                     <field name="OP">GTE</field>
                     <value name="A">
                       <block type="on_source" id="L@3:?p%}etCyNwAqHDIV">
                         <field name="ATTR">oldState.val</field>
                       </block>
                     </value>
                     <value name="B">
                       <block type="math_number" id="X2Ai7320=@9ae90sHJ5F">
                         <field name="NUM">20</field>
                       </block>
                     </value>
                   </block>
                 </value>
               </block>
             </value>
             <statement name="DO0">
               <block type="control" id="2g9A5)JLvn8#N7T%KIzB">
                 <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                 <field name="OID">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Switch</field>
                 <field name="WITH_DELAY">FALSE</field>
                 <value name="VALUE">
                   <block type="logic_boolean" id="WL(Dk!)@}|,X%|~vLjbk">
                     <field name="BOOL">FALSE</field>
                   </block>
                 </value>
               </block>
             </statement>
           </block>
         </statement>
       </block>
      </xml>
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      M 1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @markus-7
        Versuche es mal so:

        Blockly_temp.JPG

        <xml xmlns="https://developers.google.com/blockly/xml">
         <block type="on_ext" id="eF#Zha0wK];5Dwo{Ro%~" x="188" y="-312">
           <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
           <field name="CONDITION">ne</field>
           <field name="ACK_CONDITION"></field>
           <value name="OID0">
             <shadow type="field_oid" id="bk`sT=?y14BETlgNu^a)">
               <field name="oid">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Power</field>
             </shadow>
           </value>
           <statement name="STATEMENT">
             <block type="controls_if" id="J%cA)A4k;3*p5`aE{I(c">
               <value name="IF0">
                 <block type="logic_multi_and" id="[[U(@[$(Mw7Mmn(neq()">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                   <value name="AND0">
                     <block type="logic_compare" id="3?:U-hVOLiRYwGMPQaWG">
                       <field name="OP">LT</field>
                       <value name="A">
                         <block type="on_source" id="_+aB@f-yFPpA~79:}w(m">
                           <field name="ATTR">state.val</field>
                         </block>
                       </value>
                       <value name="B">
                         <block type="math_number" id="mO7KF#x=W{mLn~797c[.">
                           <field name="NUM">20</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <value name="AND1">
                     <block type="logic_compare" id="lutm6vkjBa3R7}/leHwZ">
                       <field name="OP">GTE</field>
                       <value name="A">
                         <block type="on_source" id="L@3:?p%}etCyNwAqHDIV">
                           <field name="ATTR">oldState.val</field>
                         </block>
                       </value>
                       <value name="B">
                         <block type="math_number" id="X2Ai7320=@9ae90sHJ5F">
                           <field name="NUM">20</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
               <statement name="DO0">
                 <block type="control" id="2g9A5)JLvn8#N7T%KIzB">
                   <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                   <field name="OID">shelly.0.shellyplusplugs#a0a3b3c274f0#1.Relay0.Switch</field>
                   <field name="WITH_DELAY">FALSE</field>
                   <value name="VALUE">
                     <block type="logic_boolean" id="WL(Dk!)@}|,X%|~vLjbk">
                       <field name="BOOL">FALSE</field>
                     </block>
                   </value>
                 </block>
               </statement>
             </block>
           </statement>
         </block>
        </xml>
        

        M Offline
        M Offline
        Markus 7
        schrieb am zuletzt editiert von
        #3

        @paul53

        Danke dir das probiere ich gerne :-)

        Für mein Verständnis: Er schaltet nur dann, wenn die im Speicher des Trigger-Elementes "Falls Objekte..." enthaltenen Werte den Bedingungen entsprechen?

        M 1 Antwort Letzte Antwort
        0
        • M Markus 7

          @paul53

          Danke dir das probiere ich gerne :-)

          Für mein Verständnis: Er schaltet nur dann, wenn die im Speicher des Trigger-Elementes "Falls Objekte..." enthaltenen Werte den Bedingungen entsprechen?

          M Offline
          M Offline
          Markus 7
          schrieb am zuletzt editiert von
          #4

          @paul53

          Habe deine Idee jetzt getestet und was soll ich sagen - sie funktioniert :-)
          Warum auch immer die einfache Abfrage der Leistung da nicht ausgereicht hat - mit den Abfragen der zwei Werte klappt es jedenfalls.

          Vielen Dank!
          VG Markus

          mickemupM 1 Antwort Letzte Antwort
          0
          • M Markus 7

            @paul53

            Habe deine Idee jetzt getestet und was soll ich sagen - sie funktioniert :-)
            Warum auch immer die einfache Abfrage der Leistung da nicht ausgereicht hat - mit den Abfragen der zwei Werte klappt es jedenfalls.

            Vielen Dank!
            VG Markus

            mickemupM Online
            mickemupM Online
            mickemup
            schrieb am zuletzt editiert von
            #5

            @markus-7 Deine Schaltung hat wohl schon funktioniert.
            Die hat einfach sobald mal die Leistung das erste mal kleiner 20W war noch 5min gewartet und dann ausgeschaltet...

            M 1 Antwort Letzte Antwort
            0
            • mickemupM mickemup

              @markus-7 Deine Schaltung hat wohl schon funktioniert.
              Die hat einfach sobald mal die Leistung das erste mal kleiner 20W war noch 5min gewartet und dann ausgeschaltet...

              M Offline
              M Offline
              Markus 7
              schrieb am zuletzt editiert von
              #6

              @mickemup

              Ok, ich war zu voreilig, hatte nicht ausgiebig getestet und jetzt den Denkfehler gefunden:

              Meine erste Version hatte zwar auch schon funktioniert, ich hatte aber immer mal wieder ein Ausschalten bei einer Leistung > 70 W und weiß jetzt auch warum:
              An dem Shelly hängt mein PC mit Monitoren etc. Wenn ich den PC jetzt nur kurz herunterfahre und dann wieder neu starte, läuft im Hintergrund das Script ja trotzdem weiter, auch wenn die Leistung mittlerweile wieder über 70 W liegt. Ergo schaltet der PC dann strikt nach 5 Minuten aus.

              Ich muss jetzt noch einen Timer o.ä. einbauen, dass mir den Shelly nur dann schaltet, wenn die Leistung "über einen Zeitraum von 5 Minuten" konstant < 70 W liegt.

              paul53P 1 Antwort Letzte Antwort
              0
              • M Markus 7

                @mickemup

                Ok, ich war zu voreilig, hatte nicht ausgiebig getestet und jetzt den Denkfehler gefunden:

                Meine erste Version hatte zwar auch schon funktioniert, ich hatte aber immer mal wieder ein Ausschalten bei einer Leistung > 70 W und weiß jetzt auch warum:
                An dem Shelly hängt mein PC mit Monitoren etc. Wenn ich den PC jetzt nur kurz herunterfahre und dann wieder neu starte, läuft im Hintergrund das Script ja trotzdem weiter, auch wenn die Leistung mittlerweile wieder über 70 W liegt. Ergo schaltet der PC dann strikt nach 5 Minuten aus.

                Ich muss jetzt noch einen Timer o.ä. einbauen, dass mir den Shelly nur dann schaltet, wenn die Leistung "über einen Zeitraum von 5 Minuten" konstant < 70 W liegt.

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @markus-7 sagte: nur dann schaltet, wenn die Leistung "über einen Zeitraum von 5 Minuten" konstant < 70 W liegt.

                Vorschlag mit Schwelle 20 W:

                Blockly_temp.JPG

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                mickemupM 1 Antwort Letzte Antwort
                1
                • paul53P paul53

                  @markus-7 sagte: nur dann schaltet, wenn die Leistung "über einen Zeitraum von 5 Minuten" konstant < 70 W liegt.

                  Vorschlag mit Schwelle 20 W:

                  Blockly_temp.JPG

                  mickemupM Online
                  mickemupM Online
                  mickemup
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 nicht kleiner gleich 20 bei vorheriger Wert?

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • mickemupM mickemup

                    @paul53 nicht kleiner gleich 20 bei vorheriger Wert?

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @mickemup sagte: nicht kleiner gleich 20 bei vorheriger Wert?

                    Nein! Genau so wie gezeigt bedeutet: Wert < 20 (sonst) UND vorheriger Wert >= 20.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    mickemupM 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @mickemup sagte: nicht kleiner gleich 20 bei vorheriger Wert?

                      Nein! Genau so wie gezeigt bedeutet: Wert < 20 (sonst) UND vorheriger Wert >= 20.

                      mickemupM Online
                      mickemupM Online
                      mickemup
                      schrieb am zuletzt editiert von mickemup
                      #10

                      @paul53 Aja sry, hast natürlich recht.
                      Das heisst hier wird sozusagen auf die abfallende Flanke geschaut (von grösser 20 zu kleiner 20) und dann mit x min Verzögerung ausgeschaltet falls der Wert nicht wieder über 20 steigt.

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • mickemupM mickemup

                        @paul53 Aja sry, hast natürlich recht.
                        Das heisst hier wird sozusagen auf die abfallende Flanke geschaut (von grösser 20 zu kleiner 20) und dann mit x min Verzögerung ausgeschaltet falls der Wert nicht wieder über 20 steigt.

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #11

                        @mickemup sagte: dann mit x min Verzögerung ausgeschaltet falls der Wert nicht wieder über 20 steigt.

                        Ja. Die Prüfung von vorheriger Wert ist erforderlich, um das Starten mehrerer Timer bei Leistungen < 20 W zu verhindern, die sich dann nicht mehr stoppen lassen.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        1 Antwort Letzte Antwort
                        1
                        • M Offline
                          M Offline
                          Markus 7
                          schrieb am zuletzt editiert von
                          #12

                          @paul53 sagte in Gelöst: Fehlfunktion: Shelly Leistungsgesteuert schalten:

                          Vorschlag mit Schwelle 20 W:

                          Danke dir, so funktioniert es perfekt. Mit den Funktionsbausteinen der Timeouts und Intervallen muss ich mich mal näher beschäftigen, verstehen tue ich sie noch nicht wirklich.

                          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

                          527

                          Online

                          32.5k

                          Benutzer

                          81.7k

                          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