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] Scripte die mehrfach auslösen und Objekte

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[gelöst] Scripte die mehrfach auslösen und Objekte

Geplant Angeheftet Gesperrt Verschoben Blockly
blocklycommunication
8 Beiträge 4 Kommentatoren 819 Aufrufe 4 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.
  • A Offline
    A Offline
    Azrael
    schrieb am zuletzt editiert von Azrael
    #1

    Scripte die mehrfach auslösen und Objektaktualisierung

    Guten Abend zusammen,

    ich habe gleich mehrere Probleme mit selbstgebauten Blocky Scripten welche mehrfach auslösen.
    Ich bin kein Programmierer, daher würde ich mich über Hilfe freuen und vielleicht auch über die Erklärung was ich falsch gemacht habe. Ich würde mir das gern weiter beibringen und aus meinen Fehler lernen :-).
    Die beiden Scripte lösen die Telegram Nachrichten mehrfach aus. Das Anwesenheitsscript bringt mir die Telegram Nachricht im Schnitt 4x.
    Das Script an der SP111 weckte mich letzte Nacht bei über 900 Nachrichten in Unter einer Minute …

    SP111_11 Mehrfach Meldungen.png

    Anwesenheit Mehrfach.png

    Bei meinen Recherchen fiel mir nun auf das Teilweise die Objekte im IOBroker nicht Zeitnah aktualisiert werden. Am Beispiel der SP111_11 ist mir aufgefallen das Tasmota bereits 0 Watt meldet, in den Ereignissen beim IOBroker auch die Nachrichten mit der Meldung via MQTT eingehen. Das entsprechende Objekt aber weiterhin bei 25 Watt stand. Erst nach über einer Minute wurde das Objekt dann aktualisiert.

    Kann mir hier vielleicht jemand einen Tipp geben was hier falsch läuft?
    Lt HTOP auf dem RPi (Raspberry Pi 4 mit 4 GB) ist die CPU im Schnitt bei < 10% Auslastung auf allen Kernen und der RAM ist zu ca. 25% verwendet.

    Vielen Dank und viele Grüße
    Alex

    AsgothianA 1 Antwort Letzte Antwort
    0
    • -Alex- 0- Offline
      -Alex- 0- Offline
      -Alex- 0
      schrieb am zuletzt editiert von
      #2

      ok, die lösen mehrfach aus.. sieht man, aber was willst Du denn eigentlich ursprünglich?
      ich verstehe die Verwendung und Zweck deiner mehreren Trigger nicht.
      Also beim ersten sagste,
      wenn Power Knopf an oder aus dann soll wenn Wert wahr(wo initialisiert?)
      wieder trigger hat sich power an/aus dann wenn wert keiner gelich 8 und vorheriger wert grösser 8
      dann ist sp11 abgeschaltet?
      das untere auch keine Ahnung warum denn zwei Trigger?
      für was?
      Schreibe bitte einfach was das Ergebnis sein soll, dann kann ich Dir sagen, wie das Blockly auszusehen hat.

      1 Antwort Letzte Antwort
      0
      • A Azrael

        Scripte die mehrfach auslösen und Objektaktualisierung

        Guten Abend zusammen,

        ich habe gleich mehrere Probleme mit selbstgebauten Blocky Scripten welche mehrfach auslösen.
        Ich bin kein Programmierer, daher würde ich mich über Hilfe freuen und vielleicht auch über die Erklärung was ich falsch gemacht habe. Ich würde mir das gern weiter beibringen und aus meinen Fehler lernen :-).
        Die beiden Scripte lösen die Telegram Nachrichten mehrfach aus. Das Anwesenheitsscript bringt mir die Telegram Nachricht im Schnitt 4x.
        Das Script an der SP111 weckte mich letzte Nacht bei über 900 Nachrichten in Unter einer Minute …

        SP111_11 Mehrfach Meldungen.png

        Anwesenheit Mehrfach.png

        Bei meinen Recherchen fiel mir nun auf das Teilweise die Objekte im IOBroker nicht Zeitnah aktualisiert werden. Am Beispiel der SP111_11 ist mir aufgefallen das Tasmota bereits 0 Watt meldet, in den Ereignissen beim IOBroker auch die Nachrichten mit der Meldung via MQTT eingehen. Das entsprechende Objekt aber weiterhin bei 25 Watt stand. Erst nach über einer Minute wurde das Objekt dann aktualisiert.

        Kann mir hier vielleicht jemand einen Tipp geben was hier falsch läuft?
        Lt HTOP auf dem RPi (Raspberry Pi 4 mit 4 GB) ist die CPU im Schnitt bei < 10% Auslastung auf allen Kernen und der RAM ist zu ca. 25% verwendet.

        Vielen Dank und viele Grüße
        Alex

        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        schrieb am zuletzt editiert von
        #3

        @Azrael
        Dinge die falsch sind:

        • trigger im trigger - das geht nie gut
        • timeout im trigger ohne Schutz vor mehrfachstart - der läuft öfter
        • trigger auf aktualisiert ohne und mit Bestätigung - auch die kommen meist zu oft.

        Ansonsten muss ich @Alex-0 zustimmen: beschreib mal was das tun soll, sonst wird das nichts.

        A.

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        J 1 Antwort Letzte Antwort
        0
        • AsgothianA Asgothian

          @Azrael
          Dinge die falsch sind:

          • trigger im trigger - das geht nie gut
          • timeout im trigger ohne Schutz vor mehrfachstart - der läuft öfter
          • trigger auf aktualisiert ohne und mit Bestätigung - auch die kommen meist zu oft.

          Ansonsten muss ich @Alex-0 zustimmen: beschreib mal was das tun soll, sonst wird das nichts.

          A.

          J Offline
          J Offline
          Jan1
          schrieb am zuletzt editiert von
          #4

          @Asgothian
          Eins hast noch vergessen:blush:
          Mit ner Funktion zu arbeiten macht nur Sinn, wenn man die auch mehrfach verwendet, ansonsten sorgt die nur für Unübersichtlichkeit und mehr unnötigen Code.

          1 Antwort Letzte Antwort
          0
          • A Offline
            A Offline
            Azrael
            schrieb am zuletzt editiert von
            #5

            Hallo alle zusammen,

            vielen Dank soweit. Ich habe da glaube ich einen Denkfehler gehabt.
            Ich dachte ich muss erstmal die ganze Aufgabe Triggern bevor der Wert (8 Watt) geprüft wird.
            Daher dachte ich die Prüfung auf 8 Watt geschieht so nur wenn die Steckdose eingeschaltet ist.
            Die Funktion habe ich genommen um ggf. später mehrere Steckdosen für eine ähnliche Arbeitsweise in einem Script zusammen zu fassen.

            Ziel ist eigentlich einfach nur:

            Bild 1:
            Falls die Steckdose eingeschaltet und die Wattzahl unter 8 Watt liegt schalte die Steckdose ab.

            Bild 2:
            Sobald die Handy von meiner Freundin und mir länger wie 10 Minuten aus dem Haus sind schalte bestimmte Dinge ab. Hier ist das Telegram eben aktuell nur zum testen da.

            Gruß
            Alex

            1 Antwort Letzte Antwort
            0
            • -Alex- 0- Offline
              -Alex- 0- Offline
              -Alex- 0
              schrieb am zuletzt editiert von
              #6

              @Azrael
              ah ok, alles klar also zu block 1:
              einfach deine Objekte noch auswählen.

              Code:

              <block xmlns="http://www.w3.org/1999/xhtml" type="on_ext" id="?CTt[QE~-^5Fn*]Yk!|~" x="-212.2658705966163" y="-562">
                <mutation items="1"></mutation>
                <field name="CONDITION">ne</field>
                <field name="ACK_CONDITION"></field>
                <value name="OID0">
                  <shadow type="field_oid" id="x7vFLk_6+mb4wf7mL.bE">
                    <field name="oid">default</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="controls_if" id="Afv*=u{`+y;vW=Sws(GK">
                    <value name="IF0">
                      <block type="logic_operation" id="/IuvrhU0pYycG|dWeUxS" inline="false">
                        <field name="OP">AND</field>
                        <value name="A">
                          <block type="logic_compare" id="ogqHO/2?a^i`nW;E,6y-">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="EX{xdlEP!QAz2z`:^VQ?">
                                <field name="ATTR">val</field>
                                <field name="OID">ID auswählen</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_boolean" id=":7wIbq!1*d8M-)s?U!o[">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_compare" id=".AtOGM`mXZdoFOF`#[ct">
                            <field name="OP">LTE</field>
                            <value name="A">
                              <block type="get_value" id="0tHn-^4[dnb*`Dvtcdsf">
                                <field name="ATTR">val</field>
                                <field name="OID">ID auswählen</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="ZW`dXmtOKQYKm_2[3|VJ">
                                <field name="NUM">8</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="c_z0veHu=Q^KYZ^k)kA9">
                        <mutation delay_input="false"></mutation>
                        <field name="OID">Object ID</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="bUQto8iNf8_qtGy4mx_C">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                      </block>
                    </statement>
                  </block>
                </statement>
              </block>
              
              

              7709d9b3-8012-428c-a526-7d0674c53d7f-image.png

              zu Block 2:

              hier mit einem Trigger arbeiten. Eigentlich müsste der erste Trigger ausreichen und dann deine Bedingung setzen.

              131b9f06-5ac2-4044-b611-70412c509129-image.png

              1 Antwort Letzte Antwort
              0
              • A Offline
                A Offline
                Azrael
                schrieb am zuletzt editiert von
                #7

                @Alex-0

                Danke Dir. Ich werd das mal entsprechend einbauen und testen.

                Gruß
                Alex

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  Azrael
                  schrieb am zuletzt editiert von
                  #8

                  Hallo Zusammen,

                  wollte noch kurz Feedback geben.
                  Ich hatte das alles umgesetzt, und seither klappt es Prima.
                  Vielen Dank an alle!

                  VG

                  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

                  686

                  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