Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. gehen komplexere Objektinfos in Blockly

    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

    gehen komplexere Objektinfos in Blockly

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by Homoran

      Jetzt hab ich auch Probleme einen sinnvollen Threadtitel zu finden.

      Nachdem ich in den letzten Tagen erstmalig meine Klimaanlage zum Heizen gebraucht habe, schwebt mir ein Programm zur Steuerung meiner Multisplit-Klimaanlage für die Heizung in der Übergangszeit vor um möglichst effizient zu arbeiten.

      Leider verhält sich die Anlage im Heizmodus anders als im Kühlmodus, so dass die Steuerung komplexer wird.

      Ich möchte immer mehrere (2 oder 3) Inneneinheiten parallel betreiben, da der Gesamtstromverbrauch niedriger als die Summe der einzelnen Geräte ist.

      Als ersten Schritt wollte ich die Zimmertemperauren vergleichen.

      Das klappt soweit, auch das Auffinden des kältesten Raums.
      Screenshot_20221119-220658_Firefox.jpg

      auch die zwei kältesten Räume Temperaturen bekomme ich raus
      Screenshot_20221119-221601_Firefox.jpg

      jetzt würde ich gerne noch den zugehörigen Raum herausbekommen (ggf. auch die ID oder der common name)

      geht so etwas?

      Homoran paul53 sten-tor 3 Replies Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators @Homoran last edited by

        @homoran hab es jetzt mal auf die umständliche Art des Wertevergleichs versucht
        Screenshot_20221119-223950_Firefox.jpg

        sieht richtig aus, muss es aber nicht sein.
        spätestens bei 2 gleichen Werten und der Suche nach dem zweitkältesten Raum wird das wohl nicht mehr klappen.

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

          @homoran sagte: den zugehörigen Raum herausbekommen

          Bild_2022-11-19_224358167.png

          Inhalt von roomName(id):

          let room = getObject(id, 'rooms').enumNames[0];
          if(typeof room == 'object') room = room.de;
          return room;
          
          Homoran 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @Homoran last edited by

            @homoran
            Muss es denn Blockly sein? Da sind die Möglichkeiten ja doch recht beschränkt.
            JS oder TS sind keine Alternative?

            Ich lerne ja gerade erst JS - wäre ja vielleicht 'ne interessante Übung.

            In "meiner Welt" würde ich zunächst an sowas wie eine eigene Listenklasse denken, die nicht nur Temperaturen sondern gleich ganze Objekte hält.
            Die ließe sich dann anhand der Temperaturen innerhalb der Objekte sortieren.
            Der Rest dürfte dann einfach sein: Die ersten n-Elemente der Liste lesen und los ...

            Aber heute nicht mehr 😉

            Die Expähden haben da aber sicher noch ganz andere tollen Ideen 👍

            Gruß
            Bernd

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

              @paul53 Danke!
              wieso habe ich gewusst dass du mit einer js-Funktion kommen wirst 😉

              Das werde ich mir mal näher ansehen und als Grundlage nehmen.
              warum das mit dem minimum Vergleich hab ich noch nicht verstanden.

              paul53 2 Replies Last reply Reply Quote 0
              • Homoran
                Homoran Global Moderator Administrators @Codierknecht last edited by Homoran

                @codierknecht sagte in gehen komplexere Objektinfos in Blockly:

                Muss es denn Blockly sein? Da sind die Möglichkeiten ja doch recht beschränkt.

                ja! ich kann kein js. Auch unter Strafandohung nicht. Nachvollziehen ja, selber schreiben nicht!

                auch wenn ich nicht aus deiner Welt kommen hatte ich mir den Rest ähnlich vorgestellt.
                aber zwei listen über i und j iterieren wobei eine umsortiert wird habe ich nicht synchronisiert bekommen.

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

                  @homoran sagte: das mit dem minimum Vergleich hab ich noch nicht verstanden.

                  Die Variable minimum enthält die minimale Temperatur. Sie wird hier in einer Schleife ermittelt.

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

                    @paul53 das hab ich schon verstanden, aber wo ist der Vorteil zu meinem Versuch mit Minimum der Liste?

                    edit: deine Liste enthält ja nur IDs!

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

                      @homoran sagte in gehen komplexere Objektinfos in Blockly:

                      Auch unter Strafandohung nicht

                      😁 😁 😁 😁 😁

                      Vielleicht ja nicht für das komplette Script.
                      Es würde ja reichen, eine nach Temperatur sortierte Liste der DP zu generieren (in einer JS-Funktion).
                      Mit dieser Liste kann man doch dann in Blockly weiterarbeiten - oder?

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

                        @homoran sagte: wo ist der Vorteil zu meinem Versuch mit Minimum der Liste?

                        Vorteil: In der Schleife lässt sich nebenbei auch die zugehörige ID ermitteln.

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

                          @codierknecht sagte in gehen komplexere Objektinfos in Blockly:

                          @homoran sagte in gehen komplexere Objektinfos in Blockly:

                          Auch unter Strafandohung nicht

                          😁 😁 😁 😁 😁

                          Vielleicht ja nicht für das komplette Script.
                          Es würde ja reichen, eine nach Temperatur sortierte Liste der DP zu generieren (in einer JS-Funktion).
                          Mit dieser Liste kann man doch dann in Blockly weiterarbeiten - oder?

                          das scheint @paul53 so vorzuhaben

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

                            @paul53 ja! hab ich dann auch gesehen, zu langsam 😞
                            geht da auch noch der zweitkälteste Raum?
                            gib mir Zeit bis morgen

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

                              @homoran sagte in gehen komplexere Objektinfos in Blockly:

                              auch wenn ich nicht aus deiner Welt kommen hatte ich mir den Rest ähnlich vorgestellt.
                              aber zwei listen über i und j iterieren wobei eine umsortiert wird habe ich nicht synchronisiert bekommen.

                              Mal ein gaaaanz platter Ansatz:
                              Statt nur die Temp. in die Liste zu packen, baut man einen (normierten) string zusammen - nach dem Muster:
                              19.20|73wcb745vb74wv74s
                              21.00|xsck5888z449wvw9h
                              Das sind die Listenelemente. Die kann man prima sortieren und dann von rechts die id rausprömpeln.

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

                                @codierknecht hatte ich auch schon als json versucht, dann damit aber nicht das Minimum über die Listenfunktion gefunden.

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

                                  @homoran
                                  Nix JSON - einfacher Text. Das sollte ja trotzdem korrekt sortiert werden.
                                  Und dann von rechts x-Zeichen oder ab dem Tennzeichen im string ("|") den Rest.

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

                                    @codierknecht klar! gefällt mir.
                                    json geht ja nicht, hier vorne die Zahlen auch als String, alphanumerisch sortieren ist kein Problem.
                                    splitten an der pipe wenn die Zahlen nicht gleiche Zifferzahl haben (in blockly machbar, wenn auch umständlich.

                                    könnte von mir sein die Idee 👍

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

                                      @homoran
                                      Sieht zwar echt krude aus und hat mit "Clean" nix zu tun ... aber das wird ja auch keine Raketensteuerung 😉

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

                                        @codierknecht ich sach doch: könnte von mir sein 😂

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

                                          @homoran
                                          Wobei mich wundert, dass JSON nicht funzt.
                                          Wenn z.B. die Liste so aussieht:

                                          '{"temp":19.2,"id":"12345"}', '{"temp":20.1,"id":"23456"}', '{"temp":18.0,"id":"34567"}'
                                          

                                          Dann sollte sich diese Liste doch trotzdem korrekt sortieren lassen.
                                          Das JSON müsste halt komprimiert sein.

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

                                            @codierknecht sagte in gehen komplexere Objektinfos in Blockly:

                                            Dann sollte sich diese Liste doch trotzdem korrekt sortieren lassen.

                                            möglich, aber nicht mit dem listen sortieren Block.

                                            Aber wäre das recht so 😁
                                            Screenshot_20221119-232609_Firefox.jpg

                                            wenn jetzt noch, was ich nicht zu hoffen wage, 19,0 geschrieben würde ist das aufwändige suchen und splitten nach der pipe nicht nötig.
                                            Screenshot_20221119-233454_Firefox.jpg

                                            Codierknecht 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            792
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            28
                                            1297
                                            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