Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly Objekt ID auf True/False setzen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Blockly Objekt ID auf True/False setzen

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

      Hallo zusammen, egal ob ich aktualisiere oder Steuern nutze, er will mir das Objekt hier einfach nicht ändern zwischen True/False.

      Muss ich etwas anderes nutzen? danke im Voraus.

      Objekt:
      Bildschirmfoto 2023-10-27 um 07.58.17.png

      on({ id: 'openknx.0.Rückmeldungen.Zentral.Urlaub_Status_1=ja_0=nein' /* Urlaub Status 1=ja 0=nein */, change: 'any' }, async (obj) => {
        let value = obj.state.val;
        let oldValue = obj.oldState.val;
        if (getObject('openknx.0.Rückmeldungen.Zentral.Urlaub_Status_1=ja_0=nein') == true) {
          setState('unifi.0.default.devices.74:ac:b9:ae:38:26.port_table.port_6.port_poe_enabled' /* switch poe power */, false);
        }
        if (getObject('openknx.0.Rückmeldungen.Zentral.Urlaub_Status_1=ja_0=nein') == false) {
          setState('unifi.0.default.devices.74:ac:b9:ae:38:26.port_table.port_6.port_poe_enabled' /* switch poe power */, true, true);
        }
        console.log('test');
      });
      

      Bildschirmfoto 2023-10-27 um 08.01.08.png

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

        @memberx
        Du musst nicht das ganze Objekt prüfen, sondern "Wert von Objekt" verwenden.

        Edit:
        Geht auch noch deutlich einfacher ... ohne "Falls" usw.
        Habe gerade keinen ioBroker da, darum ohne Screenshots:

        Falls Objekt XYZ wurde geändert (nicht aktualisiert)
        => steuere Switch mit WERT

        Den Block "Wert" findest Du unter "Trigger".
        Er heißt dort noch "Objekt ID" - das kann man dann nach "Wert" ändern.

        Schmakus 1 Reply Last reply Reply Quote 1
        • M
          memberx last edited by memberx

          @codierknecht vielen Dank

          Und nehme ich dann aktualisiere oder steuere?

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

            @memberx sagte in Blockly Objekt ID auf True/False setzen:

            Und nehme ich dann aktualisiere oder steuere?

            Grundregel:
            Alle DP von Adaptern werden mit steuere geschrieben.
            Alle eigenen DP (unterhalb von 0_userdata.0) mit aktualisiere.

            1 Reply Last reply Reply Quote 1
            • Schmakus
              Schmakus Developer @Codierknecht last edited by

              @codierknecht sagte in Blockly Objekt ID auf True/False setzen:

              @memberx
              Du musst nicht das ganze Objekt prüfen, sondern "Wert von Objekt" verwenden.

              Edit:
              Geht auch noch deutlich einfacher ... ohne "Falls" usw.
              Habe gerade keinen ioBroker da, darum ohne Screenshots:

              Falls Objekt XYZ wurde geändert (nicht aktualisiert)
              => steuere Switch mit WERT

              Den Block "Wert" findest Du unter "Trigger".
              Er heißt dort noch "Objekt ID" - das kann man dann nach "Wert" ändern.

              In seinem Fall: steuere Switch mit nicht Wert

              Er will ja bei Urlaub true, den switch mit false setzen und umgekehrt.

              Codierknecht M 2 Replies Last reply Reply Quote 1
              • Codierknecht
                Codierknecht Developer Most Active @Schmakus last edited by

                @schmakus
                Wer lesen kann, ist klar im Vorteil 😉

                1 Reply Last reply Reply Quote 0
                • M
                  memberx @Schmakus last edited by

                  @schmakus nicht ganz, Switch false setzen wenn Urlaub True ist, Urlaub wird aber über KNX bzw. Server gesetzt.

                  Schmakus 1 Reply Last reply Reply Quote 0
                  • Schmakus
                    Schmakus Developer @memberx last edited by Schmakus

                    @memberx Ja, meine Aussage passt doch.
                    Du kannst sogar den Binde-Block nehmen oder dir einen Alias erstellen.
                    Für so einfache "Schaltungen" ist eigentlich ein Alias das idealste.

                    Beim alias wäre dann bei wert für Lesen: !val

                    M 1 Reply Last reply Reply Quote 1
                    • M
                      memberx @Schmakus last edited by

                      @schmakus muss ich mir mal anschauen. Kenne die Befehle noch nicht, noch viel Neuland bei mir 😁

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

                        @memberx
                        Du gehst im Objektbaum nach alias.0.
                        Dort kannst Du Dir Ordner und Datenpunkte nach Deinen Anforderungen anlegen.
                        Einen DP vom Typ "Bool" anlegen, den auf Deinen DP mit Urlaub "gucken" lassen und in der Konvertierungsfunktion - wie von @Schmakus vorgeschlagen - !val eintragen.

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          memberx @Codierknecht last edited by

                          @codierknecht was genau ist der Vorteil davon gegenüber falls dann?

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

                            @memberx
                            Du sparst Dir ein Script.

                            M 1 Reply Last reply Reply Quote 0
                            • M
                              memberx @Codierknecht last edited by

                              @codierknecht

                              Versteh nicht ganz, wie mir das ein Script spart? Soweit ich jetzt gelesen hab, ist der Alias doch eher ein Replacement für zentralere Datenpunkte, damit man bspw. nur die Datenquelle ändert wenn nötig, anstatt überall die Quelle anzupassen?!

                              Oder wieso spare ich mir in meinem Fall ein Script?

                              paul53 Schmakus 2 Replies Last reply Reply Quote 0
                              • paul53
                                paul53 @memberx last edited by paul53

                                @memberx sagte: wieso spare ich mir in meinem Fall ein Script?

                                Um den Unifi-Datenpunkt zu steuern, wird natürlich ein Skript benötigt:

                                Blockly_temp.JPG

                                Der Block "nicht" wandelt 1 in false und 0 in true.

                                M 2 Replies Last reply Reply Quote 1
                                • M
                                  memberx @paul53 last edited by

                                  @paul53 muss dann wirklich nur nicht wert rein? Nicht mehr spezifisch Wert von Objekt Urlaub?

                                  paul53 Codierknecht 2 Replies Last reply Reply Quote 0
                                  • paul53
                                    paul53 @memberx last edited by

                                    @memberx sagte: muss dann wirklich nur nicht wert rein?

                                    Ja, Wert (findet man unter "Trigger") enthält den Wert des Trigger-Datenpunktes.

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

                                      @memberx

                                      Wie @paul53 schon schreibt:

                                      Ja, Wert (findet man unter "Trigger") enthält den Wert des Trigger-Datenpunktes.

                                      Es wäre unsinnig, den Wert nochmal aus dem Objekt zu lesen. Wenn der Trigger zum Objekt feuert, sind alle Eigenschaften des auslösenden Objektes längst bekannt.

                                      1 Reply Last reply Reply Quote 1
                                      • Schmakus
                                        Schmakus Developer @memberx last edited by

                                        @memberx sagte in Blockly Objekt ID auf True/False setzen:

                                        @codierknecht

                                        Versteh nicht ganz, wie mir das ein Script spart? Soweit ich jetzt gelesen hab, ist der Alias doch eher ein Replacement für zentralere Datenpunkte, damit man bspw. nur die Datenquelle ändert wenn nötig, anstatt überall die Quelle anzupassen?!

                                        Oder wieso spare ich mir in meinem Fall ein Script?

                                        Weil man mit einem Alias nicht nur, wie du beschreibst, ein Replacement ist, sondern man kann damit auch Werte des Quelldatenpunkts manipulieren (verändern, berechnen, usw) und andersrum.

                                        Beispiel: mein Quelldatenpunkt liefert Watt und ich möchte aber Kilowatt, dann erstelle ich einen Alias und füge als Formel zum Lesen val * 1000 ein. Somit benötige ich kein Script, weil alles der Alias macht.

                                        Beispiel 2:
                                        Ich habe einen Quelldatenpunkt, welcher als String ON oder OFF hat. Ich möchte aber woanders in irgendwelchen Scripten nur true/falseverwenden.
                                        Dann einen Alias des typs boolean. Für lesen: val === "ON" ? true : false Für schreiben: val ? "ON" : "OFF"

                                        Somit habe ich eigene Datenpunkte ohne ein Script.

                                        paul53 1 Reply Last reply Reply Quote 1
                                        • paul53
                                          paul53 @Schmakus last edited by paul53

                                          @schmakus sagte: Formel zum Lesen val * 1000

                                          val / 1000
                                          oder mit Runden auf 2 Nachkommastellen
                                          Math.round(val / 10) / 100

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            memberx @paul53 last edited by

                                            @paul53 Und wie könnte folgendes man es angehen:

                                            Vor dem Urlaub ist ser Unifi AP AUS (aus irgendeinen Grund)

                                            Wenn Urlaub True -> Unifi AP POE AUSSCHALTEN

                                            Wenn Urlaub dann geändert auf FALSE -> Status wie vorher wiederherstellen, also wenn er vorher AN war wieder an, wenn er AUS war, wieder aus

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            946
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            4
                                            21
                                            1492
                                            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