Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. (solved) Skript funktionslos, aber warum?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    (solved) Skript funktionslos, aber warum?

    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Dragon last edited by Dragon

      Ich habe folgendes Skript um aus einem Bewegungs- und einem Presencemelder einen Anwesenheitsdatenpunkt für ein Zimmer zu erstellen. Ich verstehe nur nicht warum es nicht funktioniert. Wenn einer der beiden true wird geht der Punkt auf true, wenn aber beide auf false sind wechselt die Anwesenheit nicht auf false. Was mache ich falsch?

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on_ext" id="Xg]w0]YLgHvU++$$J/er" x="63" y="63">
          <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="7x2%hoC/rYfsB.uAP;Ke">
              <field name="oid">zigbee.0.a4c138be6ae0e8dd.presence</field>
            </shadow>
          </value>
          <value name="OID1">
            <shadow type="field_oid" id="v^hV~wV@WkPT,u0Uw,io">
              <field name="oid">zigbee.0.00158d00030b342b.occupancy</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="/IXb;E$k=ka.+mi+g[[v">
              <mutation else="1"></mutation>
              <value name="IF0">
                <block type="logic_operation" id="y~*M^!D5a0%ky6dLLpjl" inline="false">
                  <field name="OP">AND</field>
                  <value name="A">
                    <block type="logic_compare" id="H)A_rs_R!f$$LLMVuqD(">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="]r:rz.1Pb-XNF!3J~z87">
                          <field name="ATTR">val</field>
                          <field name="OID">zigbee.0.a4c138be6ae0e8dd.presence</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="~T1*!~reS1=.lc+:O@Nd">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_compare" id="1[uAy;k`tA73t[R3KO~p">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="Y+0.7hOcg~;e:F^|+$y(">
                          <field name="ATTR">val</field>
                          <field name="OID">zigbee.0.00158d00030b342b.occupancy</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="`v$i5Rs^gAkUo,s,TB2T">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="control" id="ccHNe?u?jmJjPC*o+r?D">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Anwesenheit.Anwesenheit_Whiskeyzimmer</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="logic_boolean" id="l2lVo(X4HPA^v83zg0Bi">
                      <field name="BOOL">FALSE</field>
                    </block>
                  </value>
                </block>
              </statement>
              <statement name="ELSE">
                <block type="control" id="O7[q?!J%kGd@AXZC/q7g">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Anwesenheit.Anwesenheit_Whiskeyzimmer</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="logic_boolean" id="s=~d!)M]KAEvKxv7N2bv">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      
      ======================= SUMMARY =======================
                              v.2023-10-10
      
      
       Static hostname: ioBroker
             Icon name: computer-vm
               Chassis: vm 🖴
        Virtualization: kvm
      Operating System: Debian GNU/Linux 12 (bookworm)
                Kernel: Linux 6.1.0-17-amd64
          Architecture: x86-64
       Hardware Vendor: QEMU
        Hardware Model: Standard PC _i440FX + PIIX, 1996_
      Firmware Version: rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org
      
      Installation:           kvm
      Kernel:                 x86_64
      Userland:               amd64
      Timezone:               Europe/Berlin (CET, +0100)
      User-ID:                1000
      X-Server:               false
      Boot Target:            graphical.target
      
      Pending OS-Updates:     0
      Pending iob updates:    0
      
      Nodejs-Installation:    /usr/bin/nodejs         v18.19.0
                              /usr/bin/node           v18.19.0
                              /usr/bin/npm            10.2.3
                              /usr/bin/npx            10.2.3
                              /usr/bin/corepack       0.22.0
      
      Recommended versions are nodejs 18.19.0 and npm 10.2.3
      Your nodejs installation is correct
      
      MEMORY: 
                     total        used        free      shared  buff/cache   available
      Mem:            8.3G        5.7G        1.3G        516K        1.7G        2.7G
      Swap:           1.0G          0B        1.0G
      Total:          9.3G        5.7G        2.3G
      
      Active iob-Instances:   63
      Active repo(s): stable
      
      ioBroker Core:          js-controller           5.0.17
                              admin                   6.12.0
      
      ioBroker Status:        iobroker is running on this host.
      
      
      Objects type: jsonl
      States  type: jsonl
      
      Status admin and web instance:
      + system.adapter.admin.0                  : admin                 : ioBroker                                 -  enabled, port: 8081, bind: 0.0.0.0, run as: admin
      + system.adapter.web.0                    : web                   : ioBroker                                 -  enabled, port: 8082, bind: 0.0.0.0, run as: admin
      
      Objects:                24816
      States:                 21232
      
      Size of iob-Database:
      
      27M     /opt/iobroker/iobroker-data/objects.jsonl
      18M     /opt/iobroker/iobroker-data/objects.json.migrated
      18M     /opt/iobroker/iobroker-data/objects.json.bak.migrated
      54M     /opt/iobroker/iobroker-data/states.jsonl
      13M     /opt/iobroker/iobroker-data/states.json.migrated
      13M     /opt/iobroker/iobroker-data/states.json.bak.migrated
      
      
      
      =================== END OF SUMMARY ====================
      

      Screenshot 2024-01-29 07.18.05.png Screenshot 2024-01-29 07.15.13.png

      Asgothian arteck Codierknecht 3 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @Dragon last edited by

        @dragon

        Du postest etwas was kaum einer so lesen kann. Da wird das helfen schwer.

        A.

        1 Reply Last reply Reply Quote 0
        • arteck
          arteck Developer Most Active @Dragon last edited by

          @dragon sagte in Funktionslos, aber warum?:

          Was mache ich falsch?

          https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge

          D 1 Reply Last reply Reply Quote 0
          • D
            Dragon last edited by

            Infos hinzugefügt, obwohl ich mir nicht vorstellen kann was das weiter hilft, weil viele andere Skripte funktionieren.

            1 Reply Last reply Reply Quote 0
            • D
              Dragon @arteck last edited by

              @arteck Ich denke du weist, dass die Frage auf das Skript bezogen war...

              arteck 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @Dragon last edited by Codierknecht

                @dragon sagte in Funktionslos, aber warum?:

                Was mache ich falsch?

                1. Eigene DP solltest Du mit "Aktualisiere" schreiben, damit die im Baum nicht in rot dargestellt werden.
                  Hat aber nur optische Gründe.
                  https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps/6

                2. Bau im Trigger mal eine Debug-Ausgabe ein und lass Dir die Werte der beiden betroffenen DP ins Log schreiben.

                3. Ich würde es anders lösen:
                  a5853698-bd0d-4039-8a86-63c31d1c9215-image.png

                Ich denke du weist, dass die Frage auf das Skript bezogen war...

                Nur die Allerwenigsten hier werden sich zunächst das XML importieren, um zu sehen was Du überhaupt meinst.
                Und wer nur am Handy liest, hat ganz schlechte Karten.
                Blockly immer als Screenshot. Das XML kannst Du optional (in einen Spoiler verpackt) zeigen.

                Und die Ausgabe von iob diag ist in diesem Fall etwas zu viel des Guten 😉

                D 1 Reply Last reply Reply Quote 1
                • Winni
                  Winni last edited by

                  Wenn das selbst angelegte Datenpunkte sind musst du den Baustein "aktualisieren" verwenden, nicht "steuern"

                  1 Reply Last reply Reply Quote 0
                  • arteck
                    arteck Developer Most Active @Dragon last edited by arteck

                    @dragon wer soll mit dem Titel klar kommen

                    Funktionslos, aber warum?

                    da kannst auch schreiben "geht nicht"

                    was ist funktionslos ?? iobroker ?? dein Auto ?? deine Uhr ?? Internetz ??

                    D 1 Reply Last reply Reply Quote 0
                    • D
                      Dragon @arteck last edited by

                      @arteck Es befindet sich doch im Unterforum Blockly. Was ist dann wohl gemeint... Die Zeit welche du aufbringst um mich hier zu schikanieren, könntest du einfach für eine Antwort verwenden. Ihr macht es Forenmitgliedern echt schwer.

                      Asgothian 1 Reply Last reply Reply Quote 0
                      • Asgothian
                        Asgothian Developer @Dragon last edited by

                        @dragon

                        Der entscheidende Punkt wurde weiter oben von @Codierknecht genannt:

                        Bau Dir log-Ausgaben in das Skript ein um zu schauen wie die beiden Datenpunkte stehen wenn das Skript triggert. So scheint erst einmal alles stimmig - es muss also irgendwo etwas schief gehen.

                        Keiner von uns hat eine Glaskugel die gut genug ist das einfach mal so heraus zu bekommen.

                        A.

                        1 Reply Last reply Reply Quote 0
                        • D
                          Dragon @Codierknecht last edited by

                          @codierknecht ein interessanter Vorschlag. Nun ist die Frage warum ich das so machen sollte. Was ist der unterschied zwischen deinem Vorschlag und meiner Umsetzung. Also was ist an deinem besser und nicht einfach nur eine andere Lösung?

                          Codierknecht 1 Reply Last reply Reply Quote 0
                          • Codierknecht
                            Codierknecht Developer Most Active @Dragon last edited by Codierknecht

                            @dragon
                            Funktionieren sollte Deine Lösung auch.

                            Wie gesagt: Bau Dir Debug-Ausgaben ein.

                            4096894d-7967-4841-b11d-b16f9c09d689-image.png

                            Also was ist an deinem besser und nicht einfach nur eine andere Lösung?

                            Ich behaupte einfach mal ganz dreist: Die ist etwas eleganter 😉
                            Ein "Wert = falsch" ist ineffektiv. Das kann man genau so gut als "nicht Wert" formulieren.
                            Und statt auf "falsch" kann man mit dem "oder" ja auch auf "wahr" prüfen und spart sich eine weitere Operation.
                            Ich weiß: Ist Erbsenzählerei. Wir reden hier vermutlich über einige wenige Taktzyklen und Mikrosekunden.

                            1 Reply Last reply Reply Quote 1
                            • D
                              Dragon last edited by

                              So, hat etwas gedauert, aber es gibt eine Lösung. Ein geprüfter Datenpunkt wurde nicht geändert. (Schlafenszeit) War der Übeltäter...

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              523
                              Online

                              32.0k
                              Users

                              80.4k
                              Topics

                              1.3m
                              Posts

                              blockly
                              5
                              13
                              537
                              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