Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Timer (Gelöst)

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    448

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    372

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    968

Timer (Gelöst)

Geplant Angeheftet Gesperrt Verschoben Blockly
19 Beiträge 4 Kommentatoren 863 Aufrufe 3 Beobachtet
  • Ä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.
  • crepp1967C Offline
    crepp1967C Offline
    crepp1967
    schrieb am zuletzt editiert von crepp1967
    #1
      Hardware + Revision/Jahr
       Proxmox Container auf Minisforum Mini-PC
      Modell AMD Opteron 23xx (Gen 3 Class Opteron)
      RAM 11.45 GB
    
       Software   
       js-controller: 4.0.24
       node.js: 16.20
       npm: 8.19.4
       linux: debian (buster)
    

    Hallo,
    Ich möchte über Blockly einen Timer programmieren bei dem 2 Geräte beteiligt sind die kurz hintereinander (im Abstand von 10sec) eingeschaltet werden (1 u. 10sec später 2) und in der umgekehrten Reihenfolge (2 u. 10sec später 1) ausgeschaltet werden.

    Die Schaltung funktioniert prinzipiell aber ich möchte es auf einen Zeitbereich eingrenzen (7:30 - 20:00)
    Leider schaltet das Script in der vorliegenden Form nicht nur bis 20:00 sondern bis 0:00.
    Heute früh 7:30 hat es dann nicht mehr geschaltet.
    Habe ich einen prinzipiellen Fehler im Verständnis der Logik der Zeitschaltung?
    Hier der Code:

    <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
        <variable type="timeout" id="timeout2">timeout2</variable>
        <variable type="interval" id="Intervall">Intervall</variable>
        <variable type="timeout" id="timeout">timeout</variable>
      </variables>
      <block type="comment" id="G6nRBEc^zS/s9ct)rggV" x="-438" y="-237">
        <field name="COMMENT">test gewächshausbewässerung</field>
        <next>
          <block type="comment" id="$H)JV_C;0SG!E=4(sF3k">
            <field name="COMMENT">Alle 15min - 3min lang Anfang 10sec versetzt</field>
            <next>
              <block type="comment" id="pb=Bz4)sA]{i4h2%FQ8*">
                <field name="COMMENT">shelly3_1=pumpe --- shelly3_2=magnetventil</field>
                <next>
                  <block type="controls_if" id="kLDXUw%]_)$a:B^.1Gr9">
                    <value name="IF0">
                      <block type="time_compare_ex" id="NSQCUt=Mq|RW8`HwZ?eU">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true" actual_time="true"></mutation>
                        <field name="USE_ACTUAL_TIME">TRUE</field>
                        <field name="OPTION">between</field>
                        <value name="START_TIME">
                          <shadow type="text" id="Y?a|Sdmbq2$6;S7Uv.WV">
                            <field name="TEXT">7:30</field>
                          </shadow>
                        </value>
                        <value name="END_TIME">
                          <shadow type="text" id="Nblgnu+Vy18GD_Pd6{MO">
                            <field name="TEXT">20:00</field>
                          </shadow>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="controls_if" id="jduGaA(hQv#)H%!$)+`Q">
                        <value name="IF0">
                          <block type="logic_compare" id="Cs`~sO0:i^_=0M%N4m1c">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="c9DknPHn/*Cgso+8nj/f">
                                <field name="ATTR">val</field>
                                <field name="OID">shelly.0.SHSW-25#D8BFC01A6588#1.Relay0.Switch</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="rF%~6z`0_?R0SjDP?(%:">
                                <field name="NUM">0</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <statement name="DO0">
                          <block type="timeouts_setinterval" id="trpw=Wz@}8x2/`0AGB^#">
                            <field name="NAME">Intervall</field>
                            <field name="INTERVAL">15</field>
                            <field name="UNIT">min</field>
                            <statement name="STATEMENT">
                              <block type="control" id="M9LaUIsTA4EQE]C+uM,l">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">shelly.0.SHSW-25#D8BFC01A6588#1.Relay0.Switch</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="i+(n?o.bc.B0z|%9)feT">
                                    <field name="BOOL">TRUE</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="control" id="bssz])u;c2M]k%V{h0FD">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                    <field name="OID">shelly.0.SHSW-25#D8BFC01A6588#1.Relay1.Switch</field>
                                    <field name="WITH_DELAY">TRUE</field>
                                    <field name="DELAY_MS">10</field>
                                    <field name="UNIT">sec</field>
                                    <field name="CLEAR_RUNNING">FALSE</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id="iNHW7V[}#N~yL,!sQegm">
                                        <field name="BOOL">TRUE</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="debug" id="~/JU`...F+f5?DO=DN_B">
                                        <field name="Severity">log</field>
                                        <value name="TEXT">
                                          <shadow type="text" id="-CQN5[w/8CP(qr|]l2IC">
                                            <field name="TEXT">***shelly3_1 u. shelly3_2 ein</field>
                                          </shadow>
                                        </value>
                                        <next>
                                          <block type="timeouts_settimeout" id="%?YX2J)iGt#;:Hg3@9!(">
                                            <field name="NAME">timeout</field>
                                            <field name="DELAY">3</field>
                                            <field name="UNIT">min</field>
                                            <statement name="STATEMENT">
                                              <block type="control" id="!kWA7,9GbEJIt_RNoX.K">
                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                <field name="OID">shelly.0.SHSW-25#D8BFC01A6588#1.Relay1.Switch</field>
                                                <field name="WITH_DELAY">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="logic_boolean" id=";Xf0ekrtXoq%[QSZL:H{">
                                                    <field name="BOOL">FALSE</field>
                                                  </block>
                                                </value>
                                                <next>
                                                  <block type="control" id="*PsU5V|@Xr0Pa~FVoXl2">
                                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                    <field name="OID">shelly.0.SHSW-25#D8BFC01A6588#1.Relay0.Switch</field>
                                                    <field name="WITH_DELAY">TRUE</field>
                                                    <field name="DELAY_MS">10</field>
                                                    <field name="UNIT">sec</field>
                                                    <field name="CLEAR_RUNNING">FALSE</field>
                                                    <value name="VALUE">
                                                      <block type="logic_boolean" id="1*Nz~BF?/=.n,#$y1Ue.">
                                                        <field name="BOOL">FALSE</field>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="debug" id="znGcbg3HDwMu[IST[/sg">
                                                        <field name="Severity">log</field>
                                                        <value name="TEXT">
                                                          <shadow type="text" id="AP;LP1c[rcHX;I$F=:BD">
                                                            <field name="TEXT">***shelly3_2 u. shelly3_1 aus</field>
                                                          </shadow>
                                                        </value>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </next>
                                              </block>
                                            </statement>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </statement>
                          </block>
                        </statement>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </next>
          </block>
        </next>
      </block>
      <block type="controls_if" id="[#yuEMitvp.=!`@Y*q#2" disabled="true" x="712" y="-288">
        <value name="IF0">
          <block type="time_compare" id="M(i4x-snE{2xS[1vhYh7">
            <mutation xmlns="http://www.w3.org/1999/xhtml" end_time="true"></mutation>
            <field name="OPTION">between</field>
            <field name="START_TIME">6:00</field>
            <field name="END_TIME">23:00</field>
          </block>
        </value>
      </block>
      <block type="control" id=",:Yh]o7z)YKq}[*V%t!." disabled="true" x="988" y="-212">
        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
        <field name="OID">sonoff.0.sonoffmini1.POWER</field>
        <field name="WITH_DELAY">FALSE</field>
        <value name="VALUE">
          <block type="logic_boolean" id="RTI?TA^8LNM.JlGoIM.C">
            <field name="BOOL">TRUE</field>
          </block>
        </value>
        <next>
          <block type="debug" id="Qbg{Y?fTHqY*ijwv8tFr" disabled="true">
            <field name="Severity">log</field>
            <value name="TEXT">
              <shadow type="text" id="0|4$`6c4Ry$,`BIM2slm">
                <field name="TEXT">***sonoffmini1 ein</field>
              </shadow>
            </value>
            <next>
              <block type="timeouts_settimeout" id="TAtH0ckGP0CVw^HH/]v%" disabled="true">
                <field name="NAME">timeout2</field>
                <field name="DELAY">5</field>
                <field name="UNIT">min</field>
                <statement name="STATEMENT">
                  <block type="control" id="mQA?SO)[3D)z[ap{}jY-">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">sonoff.0.sonoffmini1.POWER</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="8Jx[;jFWFMo?:u,9+WIz">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </next>
      </block>
    </xml>
    
    

    Ich wäre sehr dankbar für Tipps zur Lösung

    Gruß
    Torsten

    1 Antwort Letzte Antwort
    0
    • DJMarc75D Offline
      DJMarc75D Offline
      DJMarc75
      schrieb am zuletzt editiert von
      #2

      @crepp1967 zeig mal ein Screen vom Blockly bitte. Kann man dann auch am Smartphone ansehen.

      Lehrling seit 1975 !!!
      Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
      https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

      crepp1967C 1 Antwort Letzte Antwort
      0
      • DJMarc75D DJMarc75

        @crepp1967 zeig mal ein Screen vom Blockly bitte. Kann man dann auch am Smartphone ansehen.

        crepp1967C Offline
        crepp1967C Offline
        crepp1967
        schrieb am zuletzt editiert von
        #3

        @djmarc75

        8e08e089-b5c4-41cc-ac70-d27b4595bd3e-image.png

        Blöd ist nur das die beiden beteiligten Geräte nur "switch" heissen...

        DJMarc75D 1 Antwort Letzte Antwort
        0
        • crepp1967C crepp1967

          @djmarc75

          8e08e089-b5c4-41cc-ac70-d27b4595bd3e-image.png

          Blöd ist nur das die beiden beteiligten Geräte nur "switch" heissen...

          DJMarc75D Offline
          DJMarc75D Offline
          DJMarc75
          schrieb am zuletzt editiert von
          #4

          @crepp1967
          Da fehlt ja der Trigger.
          Wann (durch was) soll den geschalten werden ?

          Lehrling seit 1975 !!!
          Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
          https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

          crepp1967C 1 Antwort Letzte Antwort
          0
          • DJMarc75D DJMarc75

            @crepp1967
            Da fehlt ja der Trigger.
            Wann (durch was) soll den geschalten werden ?

            crepp1967C Offline
            crepp1967C Offline
            crepp1967
            schrieb am zuletzt editiert von
            #5

            @djmarc75
            Wenn switch = 0

            oder reicht das nicht als Trigger?

            DJMarc75D 1 Antwort Letzte Antwort
            0
            • crepp1967C crepp1967

              @djmarc75
              Wenn switch = 0

              oder reicht das nicht als Trigger?

              DJMarc75D Offline
              DJMarc75D Offline
              DJMarc75
              schrieb am zuletzt editiert von
              #6

              @crepp1967 Switch kann kein 0 sondern nur true oder false.

              Vorschlag:

              Screenshot 2023-05-11 081700.png

              Lehrling seit 1975 !!!
              Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
              https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

              crepp1967C 1 Antwort Letzte Antwort
              0
              • DJMarc75D DJMarc75

                @crepp1967 Switch kann kein 0 sondern nur true oder false.

                Vorschlag:

                Screenshot 2023-05-11 081700.png

                crepp1967C Offline
                crepp1967C Offline
                crepp1967
                schrieb am zuletzt editiert von
                #7

                @djmarc75
                Danke für Deinen Vorschlag, ist auf jeden Fall eine Überlegung wert die trigger mit und zu verknüpfen.

                Mittlerweile habe ich gesehen das er eingeschaltet hat...
                7:55 obwohl ab 7:30 im Trigger steht - ich kann mir das nicht erklären aber ich möchte es verstehen.
                Hast Du eine Erklärung für den Zeitversatz???

                DJMarc75D 2 Antworten Letzte Antwort
                0
                • crepp1967C crepp1967

                  @djmarc75
                  Danke für Deinen Vorschlag, ist auf jeden Fall eine Überlegung wert die trigger mit und zu verknüpfen.

                  Mittlerweile habe ich gesehen das er eingeschaltet hat...
                  7:55 obwohl ab 7:30 im Trigger steht - ich kann mir das nicht erklären aber ich möchte es verstehen.
                  Hast Du eine Erklärung für den Zeitversatz???

                  DJMarc75D Offline
                  DJMarc75D Offline
                  DJMarc75
                  schrieb am zuletzt editiert von
                  #8

                  @crepp1967 Wenn das in Deinem Skript ist dann sind 15 Minuten "Versatz" beim Starten des Skripts normal weil Intervall erst 15 Minuten später ausgeführt wird. Ich gehe davon aus dass Du um 7:40 Uhr das Skript neu gestartet hast.

                  Wie gesagt fehlt Deinem Skript jeglicher Trigger und wird als solches nie richtig laufen.

                  Lehrling seit 1975 !!!
                  Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                  https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                  1 Antwort Letzte Antwort
                  0
                  • crepp1967C crepp1967

                    @djmarc75
                    Danke für Deinen Vorschlag, ist auf jeden Fall eine Überlegung wert die trigger mit und zu verknüpfen.

                    Mittlerweile habe ich gesehen das er eingeschaltet hat...
                    7:55 obwohl ab 7:30 im Trigger steht - ich kann mir das nicht erklären aber ich möchte es verstehen.
                    Hast Du eine Erklärung für den Zeitversatz???

                    DJMarc75D Offline
                    DJMarc75D Offline
                    DJMarc75
                    schrieb am zuletzt editiert von
                    #9

                    @crepp1967 sagte in Timer:

                    die trigger mit und zu verknüpfen.

                    das sind keine Trigger sondern Abhängigkeiten ;)

                    Lehrling seit 1975 !!!
                    Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                    https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                    crepp1967C 2 Antworten Letzte Antwort
                    0
                    • DJMarc75D DJMarc75

                      @crepp1967 sagte in Timer:

                      die trigger mit und zu verknüpfen.

                      das sind keine Trigger sondern Abhängigkeiten ;)

                      crepp1967C Offline
                      crepp1967C Offline
                      crepp1967
                      schrieb am zuletzt editiert von
                      #10

                      @djmarc75
                      OK, danke für die Klarstellung.
                      Ich werde Deine Version einrichten u. das Thema so lang offen lassen.

                      Gruß
                      Torsten

                      1 Antwort Letzte Antwort
                      0
                      • DJMarc75D DJMarc75

                        @crepp1967 sagte in Timer:

                        die trigger mit und zu verknüpfen.

                        das sind keine Trigger sondern Abhängigkeiten ;)

                        crepp1967C Offline
                        crepp1967C Offline
                        crepp1967
                        schrieb am zuletzt editiert von
                        #11

                        @djmarc75
                        Noch eine letzte Frage:
                        wo finde ich diesen Baustein:
                        aca1d27c-8f7f-4f35-9e91-714460ca5afe-image.png
                        Eigentlich sollte der in Logik zu finden sein...

                        DJMarc75D 1 Antwort Letzte Antwort
                        0
                        • crepp1967C crepp1967

                          @djmarc75
                          Noch eine letzte Frage:
                          wo finde ich diesen Baustein:
                          aca1d27c-8f7f-4f35-9e91-714460ca5afe-image.png
                          Eigentlich sollte der in Logik zu finden sein...

                          DJMarc75D Offline
                          DJMarc75D Offline
                          DJMarc75
                          schrieb am zuletzt editiert von
                          #12

                          @crepp1967 ja, der UND Baustein... dort dann mit der rechten Maustaste draufklicken und externe Eingänge auswählen.

                          Lehrling seit 1975 !!!
                          Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                          https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                          crepp1967C 2 Antworten Letzte Antwort
                          0
                          • DJMarc75D DJMarc75

                            @crepp1967 ja, der UND Baustein... dort dann mit der rechten Maustaste draufklicken und externe Eingänge auswählen.

                            crepp1967C Offline
                            crepp1967C Offline
                            crepp1967
                            schrieb am zuletzt editiert von
                            #13

                            @djmarc75
                            eigentlich ganz einfach...
                            Ich war blind...

                            Danke!

                            1 Antwort Letzte Antwort
                            0
                            • DJMarc75D DJMarc75

                              @crepp1967 ja, der UND Baustein... dort dann mit der rechten Maustaste draufklicken und externe Eingänge auswählen.

                              crepp1967C Offline
                              crepp1967C Offline
                              crepp1967
                              schrieb am zuletzt editiert von
                              #14

                              @djmarc75

                              Läuft jetzt seit zwei Stunden auber durch...

                              3e91435f-17ff-4291-af9b-d13902eb08f4-image.png
                              Was ich noch nicht verstanden habe, das markierte heisst, der Schalter ist nicht true?

                              DJMarc75D CodierknechtC 2 Antworten Letzte Antwort
                              0
                              • crepp1967C crepp1967

                                @djmarc75

                                Läuft jetzt seit zwei Stunden auber durch...

                                3e91435f-17ff-4291-af9b-d13902eb08f4-image.png
                                Was ich noch nicht verstanden habe, das markierte heisst, der Schalter ist nicht true?

                                DJMarc75D Offline
                                DJMarc75D Offline
                                DJMarc75
                                schrieb am zuletzt editiert von
                                #15

                                @crepp1967 sagte in Timer:

                                der Schalter ist nicht true?

                                richtich ;) Wenn der Switch auf false steht, dann...

                                Lehrling seit 1975 !!!
                                Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                                https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                                1 Antwort Letzte Antwort
                                0
                                • crepp1967C crepp1967

                                  @djmarc75

                                  Läuft jetzt seit zwei Stunden auber durch...

                                  3e91435f-17ff-4291-af9b-d13902eb08f4-image.png
                                  Was ich noch nicht verstanden habe, das markierte heisst, der Schalter ist nicht true?

                                  CodierknechtC Online
                                  CodierknechtC Online
                                  Codierknecht
                                  Developer Most Active
                                  schrieb am zuletzt editiert von Codierknecht
                                  #16

                                  @crepp1967
                                  das Markierte heißt übersetzt:
                                  not false und könnte genau so gut als = true notiert werden. Kommt aufs Gleiche raus, spart aber einen Vergleich.

                                  Edit:
                                  Es wird quasi der "Kehrwert" vom Status des Shelly gebildet.
                                  Wenn der Shelly auf false steht, ergibt ein not Wert dann true.
                                  Die Verkürzung sieht man am besten im JS-Code.
                                  Ein

                                  if (!value)
                                  

                                  ist das Gleiche wie ein

                                  if (value == false)
                                  

                                  Ein Vergleich kostet etwas mehr Rechenzeit als ein einfaches Negieren.

                                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                  HmIP|ZigBee|Tasmota|Unifi
                                  Zabbix Certified Specialist
                                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                  crepp1967C paul53P 2 Antworten Letzte Antwort
                                  0
                                  • CodierknechtC Codierknecht

                                    @crepp1967
                                    das Markierte heißt übersetzt:
                                    not false und könnte genau so gut als = true notiert werden. Kommt aufs Gleiche raus, spart aber einen Vergleich.

                                    Edit:
                                    Es wird quasi der "Kehrwert" vom Status des Shelly gebildet.
                                    Wenn der Shelly auf false steht, ergibt ein not Wert dann true.
                                    Die Verkürzung sieht man am besten im JS-Code.
                                    Ein

                                    if (!value)
                                    

                                    ist das Gleiche wie ein

                                    if (value == false)
                                    

                                    Ein Vergleich kostet etwas mehr Rechenzeit als ein einfaches Negieren.

                                    crepp1967C Offline
                                    crepp1967C Offline
                                    crepp1967
                                    schrieb am zuletzt editiert von
                                    #17

                                    @codierknecht

                                    👍

                                    1 Antwort Letzte Antwort
                                    0
                                    • CodierknechtC Codierknecht

                                      @crepp1967
                                      das Markierte heißt übersetzt:
                                      not false und könnte genau so gut als = true notiert werden. Kommt aufs Gleiche raus, spart aber einen Vergleich.

                                      Edit:
                                      Es wird quasi der "Kehrwert" vom Status des Shelly gebildet.
                                      Wenn der Shelly auf false steht, ergibt ein not Wert dann true.
                                      Die Verkürzung sieht man am besten im JS-Code.
                                      Ein

                                      if (!value)
                                      

                                      ist das Gleiche wie ein

                                      if (value == false)
                                      

                                      Ein Vergleich kostet etwas mehr Rechenzeit als ein einfaches Negieren.

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

                                      @codierknecht sagte: ist das Gleiche wie ein

                                      Nicht ganz.

                                      if (!value)
                                      

                                      ist auch erfüllt bei null, undefined und NaN. Deshalb bevorzuge ich es.

                                      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

                                      CodierknechtC 1 Antwort Letzte Antwort
                                      0
                                      • paul53P paul53

                                        @codierknecht sagte: ist das Gleiche wie ein

                                        Nicht ganz.

                                        if (!value)
                                        

                                        ist auch erfüllt bei null, undefined und NaN. Deshalb bevorzuge ich es.

                                        CodierknechtC Online
                                        CodierknechtC Online
                                        Codierknecht
                                        Developer Most Active
                                        schrieb am zuletzt editiert von
                                        #19

                                        @paul53
                                        Jaja, immer diese Typunsicherheit. In typisierten Sprachen kann ein Bool halt nur true oder false sein. Ich bevorzuge es einfach nur wegen der kürzeren Notation und der Rechenzeit. Es gab mal Zeiten, da war sowas wichtig. Da hat aber ein gewisser Herr Gates auch noch gesagt "640 KB Hauptspeicher reichen für alle Ewigkeit" ;-)

                                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                                        Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                                        HmIP|ZigBee|Tasmota|Unifi
                                        Zabbix Certified Specialist
                                        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                                        1 Antwort Letzte Antwort
                                        0

                                        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                                        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                                        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                                        Registrieren Anmelden
                                        Antworten
                                        • In einem neuen Thema antworten
                                        Anmelden zum Antworten
                                        • Älteste zuerst
                                        • Neuste zuerst
                                        • Meiste Stimmen


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        584

                                        Online

                                        32.8k

                                        Benutzer

                                        82.8k

                                        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