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. Trigger mit mehr

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    324

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

Trigger mit mehr

Geplant Angeheftet Gesperrt Verschoben Blockly
18 Beiträge 4 Kommentatoren 1.2k 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.
  • G Gatam

    @paul53

    a6edb580-0f7d-4cb7-9bbc-54e541498bb8-Screenshot_1.png

    Ist diese Version dann kurz genug und Logisch?
    2 Familienhaus - DG Wohnung = DG.Presence

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

    @gatam sagte: Ist diese Version dann kurz genug und Logisch?

    Nein, kein Vergleich, sondern ODER!
    Kürzeste Version:

    Bild_2022-05-20_115958812.png

    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

    G 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @gatam sagte: Ist diese Version dann kurz genug und Logisch?

      Nein, kein Vergleich, sondern ODER!
      Kürzeste Version:

      Bild_2022-05-20_115958812.png

      G Offline
      G Offline
      Gatam
      schrieb am zuletzt editiert von
      #10

      @paul53

      Person1 Zuhause [TRUE].
      Person 2 verlässt das aus [FALSE], Trigger wird ausgelöst

      UND dann steuere ObjektID DG.Presence mit TRUE oder FALSE?

      Fertige Lösungen sind gut
      Aber noch mehr will ich wissen wie und warum etwas funktioniert

      paul53P ZarelloZ 2 Antworten Letzte Antwort
      0
      • G Gatam

        @paul53

        Person1 Zuhause [TRUE].
        Person 2 verlässt das aus [FALSE], Trigger wird ausgelöst

        UND dann steuere ObjektID DG.Presence mit TRUE oder FALSE?

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

        @gatam sagte: Person1 Zuhause [TRUE].
        Person 2 verlässt das aus [FALSE], Trigger wird ausgelöst

        Ja, Person1(true) ODER Person2(false) = true.

        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
        • G Gatam

          @paul53

          Person1 Zuhause [TRUE].
          Person 2 verlässt das aus [FALSE], Trigger wird ausgelöst

          UND dann steuere ObjektID DG.Presence mit TRUE oder FALSE?

          ZarelloZ Offline
          ZarelloZ Offline
          Zarello
          schrieb am zuletzt editiert von Zarello
          #12

          @gatam Über die Sache mit den Vergleichen stolpern eigentlich fast alle am Anfang.
          Ich versuche nochmal eine andere Erklärung:
          Ein = ist für den Computer genauso eine Operation wie ein +, es werden zwei Werte miteinander verknüpft und ein Ergebnis erzeugt.
          5 + 3 ergibt 8, soweit kennt man das. 5 = 3 ergibt falsch und 4 = 4 ergibt wahr.
          Jetzt ist ein Wahrheitswert (boolean oder kurz bool) aber genauso ein Wert wie eine Zahl, der irgendwo stehen kann.
          Ein falls möchte nun einen Wahrheitswert bekommen und entscheidet anhand dieses Wertes, ob mache oder sonst ausgeführt wird.
          In Deinem Fall steht in dem Objekt mit dem Namen "Gerhard.presence" ein Wahrheitswert.
          Dieser Wahrheitswert reicht dem falls aus.
          Ein Vergleich aus (hole Wert von Objekt Gerhard.presence) = wahr liefert Dir ein Ergebnis dieser Vergleichsoperation.
          Falls der Wert des Objekts wahr ist, dann ist er gleich dem Vergleichswert und das Ergebnis des Vergleichs ist wahr.
          Falls der Wert des Objekts falsch ist, dann ist er ungleich dem Vergleichswert und das Ergebnis des Vergleichs ist falsch.
          Du kannst also auf den Vergleich verzichten.

          Ein und bzw. ein oder ist übrigens auch nur eine weitere solche Operation. Sie verknüpft zwei Wahrheitswerte miteinander.
          Dummerweise lassen die meisten Programmiersprachen es zu, dass und und oder auch Zahlen oder andere Werte verarbeiten, sie verhalten sich dann aber nicht mehr so wie erwartet.
          Das ist ein ganz wichtiger Unterschied zur natürlichen Sprache und liefert manchmal seltsame Ergebnisse.
          Bei Wahrheitswerten und einem anschließenden Vergleich mit wahr verhält es sich wie erwartet.
          Hinter dem Spoiler eine kleine Auflistung mit entsprechenden Operationen und deren schrittweisen Berechnungen:


          Der natürlichen Sprache entsprechend:
          (wahr oder falsch) = wahr :arrow_right: wahr = wahr :arrow_right: wahr
          (falsch oder falsch) = wahr :arrow_right: falsch = wahr :arrow_right: falsch
          (wahr und wahr) = wahr :arrow_right: wahr = wahr :arrow_right: wahr
          (wahr und falsch) = wahr :arrow_right: falsch = wahr :arrow_right: falsch

          Aber entgegen der natürlichen Sprache:
          (wahr oder falsch) = falsch :arrow_right: wahr = falsch :arrow_right: falsch
          (wahr und falsch) = falsch :arrow_right: falsch = falsch :arrow_right: wahr
          (5 oder 3) = 3 :arrow_right: 5 = 3 :arrow_right: falsch
          (5 oder 3) = 5 :arrow_right: 5 = 5 :arrow_right: wahr
          (5 oder 3) < 4 :arrow_right: 5 < 4 :arrow_right: falsch
          (5 und 3) = 3 :arrow_right: 3 = 3 :arrow_right: wahr
          (5 und 3) = 5 :arrow_right: 3 = 5 :arrow_right: falsch
          (5 und 3) < 4 :arrow_right: 3 < 4 :arrow_right: wahr

          Wird in Blockly und mit Zahlen verwendet, liefert es den zweiten der beiden Werte, oder liefert den ersten Wert.
          Deshalb möchte man solche Vergleiche eigentlich so machen:
          (5 = 3) oder (3 = 3) :arrow_right: falsch oder wahr :arrow_right: wahr

          Entschuldigt diese Wall of Text, aber ich hoffe, es hat dem ein oder anderen die Sache etwas verdeutlichen können und hilft ein wenig zu verstehen, wie Computer euch verstehen (oder missverstehen ;-) ).

          paul53P G 2 Antworten Letzte Antwort
          1
          • ZarelloZ Zarello

            @gatam Über die Sache mit den Vergleichen stolpern eigentlich fast alle am Anfang.
            Ich versuche nochmal eine andere Erklärung:
            Ein = ist für den Computer genauso eine Operation wie ein +, es werden zwei Werte miteinander verknüpft und ein Ergebnis erzeugt.
            5 + 3 ergibt 8, soweit kennt man das. 5 = 3 ergibt falsch und 4 = 4 ergibt wahr.
            Jetzt ist ein Wahrheitswert (boolean oder kurz bool) aber genauso ein Wert wie eine Zahl, der irgendwo stehen kann.
            Ein falls möchte nun einen Wahrheitswert bekommen und entscheidet anhand dieses Wertes, ob mache oder sonst ausgeführt wird.
            In Deinem Fall steht in dem Objekt mit dem Namen "Gerhard.presence" ein Wahrheitswert.
            Dieser Wahrheitswert reicht dem falls aus.
            Ein Vergleich aus (hole Wert von Objekt Gerhard.presence) = wahr liefert Dir ein Ergebnis dieser Vergleichsoperation.
            Falls der Wert des Objekts wahr ist, dann ist er gleich dem Vergleichswert und das Ergebnis des Vergleichs ist wahr.
            Falls der Wert des Objekts falsch ist, dann ist er ungleich dem Vergleichswert und das Ergebnis des Vergleichs ist falsch.
            Du kannst also auf den Vergleich verzichten.

            Ein und bzw. ein oder ist übrigens auch nur eine weitere solche Operation. Sie verknüpft zwei Wahrheitswerte miteinander.
            Dummerweise lassen die meisten Programmiersprachen es zu, dass und und oder auch Zahlen oder andere Werte verarbeiten, sie verhalten sich dann aber nicht mehr so wie erwartet.
            Das ist ein ganz wichtiger Unterschied zur natürlichen Sprache und liefert manchmal seltsame Ergebnisse.
            Bei Wahrheitswerten und einem anschließenden Vergleich mit wahr verhält es sich wie erwartet.
            Hinter dem Spoiler eine kleine Auflistung mit entsprechenden Operationen und deren schrittweisen Berechnungen:


            Der natürlichen Sprache entsprechend:
            (wahr oder falsch) = wahr :arrow_right: wahr = wahr :arrow_right: wahr
            (falsch oder falsch) = wahr :arrow_right: falsch = wahr :arrow_right: falsch
            (wahr und wahr) = wahr :arrow_right: wahr = wahr :arrow_right: wahr
            (wahr und falsch) = wahr :arrow_right: falsch = wahr :arrow_right: falsch

            Aber entgegen der natürlichen Sprache:
            (wahr oder falsch) = falsch :arrow_right: wahr = falsch :arrow_right: falsch
            (wahr und falsch) = falsch :arrow_right: falsch = falsch :arrow_right: wahr
            (5 oder 3) = 3 :arrow_right: 5 = 3 :arrow_right: falsch
            (5 oder 3) = 5 :arrow_right: 5 = 5 :arrow_right: wahr
            (5 oder 3) < 4 :arrow_right: 5 < 4 :arrow_right: falsch
            (5 und 3) = 3 :arrow_right: 3 = 3 :arrow_right: wahr
            (5 und 3) = 5 :arrow_right: 3 = 5 :arrow_right: falsch
            (5 und 3) < 4 :arrow_right: 3 < 4 :arrow_right: wahr

            Wird in Blockly und mit Zahlen verwendet, liefert es den zweiten der beiden Werte, oder liefert den ersten Wert.
            Deshalb möchte man solche Vergleiche eigentlich so machen:
            (5 = 3) oder (3 = 3) :arrow_right: falsch oder wahr :arrow_right: wahr

            Entschuldigt diese Wall of Text, aber ich hoffe, es hat dem ein oder anderen die Sache etwas verdeutlichen können und hilft ein wenig zu verstehen, wie Computer euch verstehen (oder missverstehen ;-) ).

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

            @zarello sagte: und mit Zahlen verwendet, scheint es das Minimum der Zahlen zu liefern

            Es erfolgt eine implizite Typwandlung: 0 --> false, alle anderen Werte liefern true. Siehe auch

            Bei Zahlen: oder liefert den ersten Wert, und liefert den letzten Wert.

            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

            ZarelloZ 2 Antworten Letzte Antwort
            0
            • paul53P paul53

              @zarello sagte: und mit Zahlen verwendet, scheint es das Minimum der Zahlen zu liefern

              Es erfolgt eine implizite Typwandlung: 0 --> false, alle anderen Werte liefern true. Siehe auch

              Bei Zahlen: oder liefert den ersten Wert, und liefert den letzten Wert.

              ZarelloZ Offline
              ZarelloZ Offline
              Zarello
              schrieb am zuletzt editiert von
              #14

              @paul53 sagte in Trigger mit mehr:

              Nein, es erfolgt eine implizite Typwandlung: 0 --> false, alle anderen Werte liefern true.

              Das oder eine Bitweise Verknüpfung war, was ich erwartet hatte. Aber um sicher zu gehen, hatte ich folgendes kleines Blockly ausgeführt mit verschiedenen Werten und Operation und war doch sehr überrascht:
              267d1610-d6d4-41e3-9c77-b570dbf40053-image.png

              1 Antwort Letzte Antwort
              1
              • paul53P paul53

                @zarello sagte: und mit Zahlen verwendet, scheint es das Minimum der Zahlen zu liefern

                Es erfolgt eine implizite Typwandlung: 0 --> false, alle anderen Werte liefern true. Siehe auch

                Bei Zahlen: oder liefert den ersten Wert, und liefert den letzten Wert.

                ZarelloZ Offline
                ZarelloZ Offline
                Zarello
                schrieb am zuletzt editiert von
                #15

                @paul53 sagte in Trigger mit mehr:

                Bei Zahlen: oder liefert den ersten Wert, und liefert den letzten Wert.

                Tatsächlich! Wieder was gelernt. Wer denkt sich denn so etwas aus, das ist doch verrückt!
                Dann korrigiere ich mal schnell meinen Text oben.

                paul53P 1 Antwort Letzte Antwort
                0
                • ZarelloZ Zarello

                  @paul53 sagte in Trigger mit mehr:

                  Bei Zahlen: oder liefert den ersten Wert, und liefert den letzten Wert.

                  Tatsächlich! Wieder was gelernt. Wer denkt sich denn so etwas aus, das ist doch verrückt!
                  Dann korrigiere ich mal schnell meinen Text oben.

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

                  @zarello sagte: Wer denkt sich denn so etwas aus, das ist doch verrückt!

                  Finde ich auch. Ein Konstrukt, dem man öfter begegnet, ist

                  Prüfung || 0;
                  

                  Ergibt Prüfung eine Zahl != 0, wird diese verwendet. Ergibt Prüfung undefined, null, Leerstring, false oder NaN, so wird die rechte Zahl verwendet.

                  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

                  ZarelloZ 1 Antwort Letzte Antwort
                  0
                  • paul53P paul53

                    @zarello sagte: Wer denkt sich denn so etwas aus, das ist doch verrückt!

                    Finde ich auch. Ein Konstrukt, dem man öfter begegnet, ist

                    Prüfung || 0;
                    

                    Ergibt Prüfung eine Zahl != 0, wird diese verwendet. Ergibt Prüfung undefined, null, Leerstring, false oder NaN, so wird die rechte Zahl verwendet.

                    ZarelloZ Offline
                    ZarelloZ Offline
                    Zarello
                    schrieb am zuletzt editiert von
                    #17

                    @paul53 In dem Zusammenhang ergibt das ja schon wieder Sinn: Verwende die Zahl oder, falls es keine Zahl ist, verwende 0.
                    Wirklich schön finde ich das nicht, aber ich bin sowieso kein Freund von impliziten Typumwandlungen, das hat mir im Zweifelsfall bisher nur Ärger bereitet und nur relativ wenig Nutzen gebracht, ein paar eingesparte Zeichen halt auf Kosten der Sicherheit bei Änderungen.

                    1 Antwort Letzte Antwort
                    0
                    • ZarelloZ Zarello

                      @gatam Über die Sache mit den Vergleichen stolpern eigentlich fast alle am Anfang.
                      Ich versuche nochmal eine andere Erklärung:
                      Ein = ist für den Computer genauso eine Operation wie ein +, es werden zwei Werte miteinander verknüpft und ein Ergebnis erzeugt.
                      5 + 3 ergibt 8, soweit kennt man das. 5 = 3 ergibt falsch und 4 = 4 ergibt wahr.
                      Jetzt ist ein Wahrheitswert (boolean oder kurz bool) aber genauso ein Wert wie eine Zahl, der irgendwo stehen kann.
                      Ein falls möchte nun einen Wahrheitswert bekommen und entscheidet anhand dieses Wertes, ob mache oder sonst ausgeführt wird.
                      In Deinem Fall steht in dem Objekt mit dem Namen "Gerhard.presence" ein Wahrheitswert.
                      Dieser Wahrheitswert reicht dem falls aus.
                      Ein Vergleich aus (hole Wert von Objekt Gerhard.presence) = wahr liefert Dir ein Ergebnis dieser Vergleichsoperation.
                      Falls der Wert des Objekts wahr ist, dann ist er gleich dem Vergleichswert und das Ergebnis des Vergleichs ist wahr.
                      Falls der Wert des Objekts falsch ist, dann ist er ungleich dem Vergleichswert und das Ergebnis des Vergleichs ist falsch.
                      Du kannst also auf den Vergleich verzichten.

                      Ein und bzw. ein oder ist übrigens auch nur eine weitere solche Operation. Sie verknüpft zwei Wahrheitswerte miteinander.
                      Dummerweise lassen die meisten Programmiersprachen es zu, dass und und oder auch Zahlen oder andere Werte verarbeiten, sie verhalten sich dann aber nicht mehr so wie erwartet.
                      Das ist ein ganz wichtiger Unterschied zur natürlichen Sprache und liefert manchmal seltsame Ergebnisse.
                      Bei Wahrheitswerten und einem anschließenden Vergleich mit wahr verhält es sich wie erwartet.
                      Hinter dem Spoiler eine kleine Auflistung mit entsprechenden Operationen und deren schrittweisen Berechnungen:


                      Der natürlichen Sprache entsprechend:
                      (wahr oder falsch) = wahr :arrow_right: wahr = wahr :arrow_right: wahr
                      (falsch oder falsch) = wahr :arrow_right: falsch = wahr :arrow_right: falsch
                      (wahr und wahr) = wahr :arrow_right: wahr = wahr :arrow_right: wahr
                      (wahr und falsch) = wahr :arrow_right: falsch = wahr :arrow_right: falsch

                      Aber entgegen der natürlichen Sprache:
                      (wahr oder falsch) = falsch :arrow_right: wahr = falsch :arrow_right: falsch
                      (wahr und falsch) = falsch :arrow_right: falsch = falsch :arrow_right: wahr
                      (5 oder 3) = 3 :arrow_right: 5 = 3 :arrow_right: falsch
                      (5 oder 3) = 5 :arrow_right: 5 = 5 :arrow_right: wahr
                      (5 oder 3) < 4 :arrow_right: 5 < 4 :arrow_right: falsch
                      (5 und 3) = 3 :arrow_right: 3 = 3 :arrow_right: wahr
                      (5 und 3) = 5 :arrow_right: 3 = 5 :arrow_right: falsch
                      (5 und 3) < 4 :arrow_right: 3 < 4 :arrow_right: wahr

                      Wird in Blockly und mit Zahlen verwendet, liefert es den zweiten der beiden Werte, oder liefert den ersten Wert.
                      Deshalb möchte man solche Vergleiche eigentlich so machen:
                      (5 = 3) oder (3 = 3) :arrow_right: falsch oder wahr :arrow_right: wahr

                      Entschuldigt diese Wall of Text, aber ich hoffe, es hat dem ein oder anderen die Sache etwas verdeutlichen können und hilft ein wenig zu verstehen, wie Computer euch verstehen (oder missverstehen ;-) ).

                      G Offline
                      G Offline
                      Gatam
                      schrieb am zuletzt editiert von
                      #18

                      @zarello

                      Vielen Dank für deinen ausführlichen Text. Man kann im Internet ja viel finden, aber kann sich nicht immer sicher sein ob es richtig ist, oder schon lange überholt.

                      @paul53

                      Nochmal Danke für deine Tipps.
                      Daraufhin habe ich meine Skripte mit EG, DG und Haus Presence entsprechend angepasst. Auch meine Bewegung während Abwesendheit.

                      Nun funktionieren sie besser und sind deutlich kürzer.

                      Fertige Lösungen sind gut
                      Aber noch mehr will ich wissen wie und warum etwas funktioniert

                      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

                      555

                      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