Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Attribute aus object vergleichen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Attribute aus object vergleichen

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

      Hallo

      Ich versuche krampfhaft den Inhalt eines Objects in Blockly zu vergleichen. folgendes Json Object eines Mqtt Wertes ist gegeben:

      {
           "hcmode": {"value": "auto"},
           "flowtempdesired": {"value": 0.0},
           "hwctempdesired": {"value": null},
           "hwcflowtempdesired": {"value": null},
           "disablehc": {"value": 1},
           "disablehwctapping": {"value": 0},
           "disablehwcload": {"value": 0},
           "remoteControlHcPump": {"value": 0},
           "releaseBackup": {"value": 0},
           "releaseCooling": {"value": 0}}
      

      Aus diesem versuche ich mit Hilfe eines Blockly scripts den Wert disablehc zu vergleichen:

      blockly.JPG

      Der Vergleich liefert immer false, Wenn ich das Attribut von setmode_json im Debug anzeigen lasse dann kommt da { value: 1} raus. Wenn ich versuche diesen in Text um zu wandeln dann kommt Obj:Obj raus. Was mache ich falsch?

      Im nächsten schritt würde ich den wert { value: 1}in { value: 0} ändern und zurück in den Mqtt wert schreiben.
      blockly2.JPG
      Auch das funktioniert irgendwie nicht. Was mache ich falsch, bzw., washabe ich an der Funktionsweise falsch verstanden?

      V paul53 3 Replies Last reply Reply Quote 0
      • V
        Vetinari77 @Vetinari77 last edited by

        Kleine Ergänzung mit ein wenig debug dabei.

        blockly2.JPG
        blockly3.JPG

        Homoran 1 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @Vetinari77 last edited by Homoran

          @vetinari77 ich verstehe es nicht

          Screenshot_20240612-223336_Firefox.jpg

          die Anführungszeichen sind weg und anscheinend mehr Leerzeichen.

          Aber selbst wenn ich es ganz auflöse
          Screenshot_20240612-224221_Firefox.jpg

          und nur den value vergleiche kommt false

          EDIT: Ist Blödsinn! stay tuned

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

            @vetinari77 sagte: Blockly scripts den Wert disablehc zu vergleichen:

            Blockly_temp.JPG

            V 1 Reply Last reply Reply Quote 1
            • Homoran
              Homoran Global Moderator Administrators last edited by

              Screenshot_20240612-224905_Firefox.jpg

              klappt nicht, aber
              Screenshot_20240612-224645_Firefox.jpg

              mit dem Wert selbst

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

                @vetinari77 sagte: ändern und zurück in den Mqtt wert schreiben.

                Blockly_temp.JPG

                Ist der zu schreibende DP bei MQTT nicht ein anderer ("/set") als der empfangene?

                V 1 Reply Last reply Reply Quote 1
                • V
                  Vetinari77 @paul53 last edited by

                  @paul53 Das war die Lösung. Danke dafür. Jetzt mach ich mal bei Problem 2 weiter. Aufgefallen ist mir, das is das Object wieder zurück in einJson umwandeln muss. Weiteres später.

                  paul53 1 Reply Last reply Reply Quote 0
                  • V
                    Vetinari77 @paul53 last edited by Vetinari77

                    @paul53 So, ich hab ein wenig Zeit zum Testen gehabt und gehe jetzt step by step vor.

                    Wenn ich folgendes mache:
                    Blockly code setze atribut.PNG

                    Fügt er den Wert folgendermaßen hinten an:
                    debug output.PNG

                    Warum auch immer. Bei einer If abfrage (wie weiter oben zu sehen) liest er ja richtig.

                    Wenn ich das hier mache:
                    Blockly code2.PNG

                    Kommt dieses dabei raus:
                    Blockly debug2.PNG

                    Edit: Ich schreibe die Werte noch nicht in das MQTT Jason. Ich fürchte, dass das in beiden Fällen nicht zu dem Ergebniss führt, welches ich gerne hätte.

                    haus-automatisierung paul53 2 Replies Last reply Reply Quote 0
                    • haus-automatisierung
                      haus-automatisierung Developer Most Active @Vetinari77 last edited by

                      @vetinari77 sagte in Attribute aus object vergleichen:

                      Wenn ich das hier mache:
                      Blockly code2.PNG

                      Kommt dieses dabei raus:
                      Blockly debug2.PNG

                      Logisch, Du setzt ja auch einen String auf den Wert und kein weiteres Objekt mit der Eigenschaft value. So:

                      Screenshot 2024-06-13 at 13.50.24.png

                      PS: setMode_json ist übrigens ein ziemlich blöder Name für die Variable. Ist ja kein JSON mehr, sondern ein Objekt.

                      V 1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @Vetinari77 last edited by

                        @vetinari77 sagte: Jetzt mach ich mal bei Problem 2 weiter.

                        Was gefällt dir an dem geposteten Vorschlag nicht?

                        V 1 Reply Last reply Reply Quote 0
                        • V
                          Vetinari77 @paul53 last edited by

                          @paul53 Damit ist alles in Ordnung. Wobei der MQTT Datenpunkt laut Beschreibung tatsächlich RW sein sollte. Das konnte ich bisher allerdings noch nicht testen da ich gerade keinen direkten Zugriff auf die Heizung hab.

                          1 Reply Last reply Reply Quote 0
                          • V
                            Vetinari77 @haus-automatisierung last edited by Vetinari77

                            @haus-automatisierung said in Attribute aus object vergleichen:

                            @vetinari77 sagte in Attribute aus object vergleichen:

                            Wenn ich das hier mache:
                            Blockly code2.PNG

                            Kommt dieses dabei raus:
                            Blockly debug2.PNG

                            Logisch, Du setzt ja auch einen String auf den Wert und kein weiteres Objekt mit der Eigenschaft value. So:

                            Screenshot 2024-06-13 at 13.50.24.png

                            PS: setMode_json ist übrigens ein ziemlich blöder Name für die Variable. Ist ja kein JSON mehr, sondern ein Objekt.

                            Wald... Bäume... Manchmal ist man ein wenig dumm... Danke dir dafür. Natürlich kann das von mir so nicht funktionieren.

                            Edit: BTW Sehr tolle Arbeit von dir. Danke dafür.

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

                              @vetinari77 sagte: Fügt er den Wert folgendermaßen hinten an:

                              Die Punktschreibweise kann an der Stelle nicht verwendet werden. So funktioniert es, sollte man aber nicht machen:

                              Blockly_temp.JPG

                              haus-automatisierung 1 Reply Last reply Reply Quote 0
                              • haus-automatisierung
                                haus-automatisierung Developer Most Active @paul53 last edited by haus-automatisierung

                                @paul53 sagte in Attribute aus object vergleichen:

                                So funktioniert es, sollte man aber nicht machen:

                                Oha, das ist aber ein Bug und sollte escaped werden (wie bei den anderen Blöcken auch). Werde ich fixen, danke!

                                EDIT: https://github.com/ioBroker/ioBroker.javascript/commit/f841a8bc7f5ec704fd2863a8c47faa0f152841e6

                                0 klein0r committed to ioBroker/ioBroker.javascript
                                Escape single quotes in all object Blockly blocks
                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @haus-automatisierung last edited by paul53

                                  @haus-automatisierung sagte: das ist aber ein Bug und sollte escaped werden

                                  Was ist in Version 8.6.0 anders? Das gezeigte Beispiel funktioniert wie in Version 8.5.0.

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  771
                                  Online

                                  31.7k
                                  Users

                                  79.8k
                                  Topics

                                  1.3m
                                  Posts

                                  4
                                  15
                                  556
                                  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