Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Bitte um Kurzcheck Blockly und Datentypen

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Bitte um Kurzcheck Blockly und Datentypen

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User @Ahnungsbefreit last edited by

      @ahnungsbefreit said in Bitte um Kurzcheck Blockly und Datentypen:

      @pete0815 Nein, mit oder ohne Alias (und das sollte eigentlich den gleichen Datentyp haben wie die Quelle). Den Inhalt eines Datenpunkts bekommst Du nur mit "Wert von ..."

      Das hier

      54686f09-2668-465b-b746-3feced3dbcab-image.png

      kann nicht funktionieren. Wenn es an den Datentypen hängt, dann kannst Du die ja auch in Blockly konvertieren.

      Danke, nochmal gut und verständlich erklärt. Irgendwann muß ich das mal länger raffen.

      1 Reply Last reply Reply Quote 0
      • ?
        A Former User @paul53 last edited by

        @paul53

        Darf ich nochmal dumm zum Verständnis fragen. Hatte es vorher auf "Wert von" und dann direkt auf den Mqtt DP laufen:
        6553769c-a8e9-406a-8f00-01d9913c1a2d-grafik.png

        Das hat bis Admin5/JS3.3 funktioniert. Warum funktioniert das ohne Konvertierung wenn der MQTT DP immer vom Typ String ist. Der sollte doch dann keinen Wert haben oder?

        mickym paul53 2 Replies Last reply Reply Quote 0
        • mickym
          mickym Most Active @Guest last edited by mickym

          @pete0815 Weil Du grundsätzlich auch Strings vergleichen kannst - das nennt man dann sortieren:

          A ist kleiner als B. 😉

          und auch

          1 ist keiner als 2

          allerdings wird

          2 größer als 12 sein. 😉

          ? 1 Reply Last reply Reply Quote 0
          • ?
            A Former User @mickym last edited by

            @mickym said in Bitte um Kurzcheck Blockly und Datentypen:

            @pete0815 Weil Du grundsätzlich auch Strings vergleichen kannst - das nennt man dann sortieren:

            A ist kleiner als B. 😉

            und auch

            1 ist keiner als 2

            allerdings wird

            2 größer als 12 sein. 😉

            Aaah ok. Vielen Dank! da wäre ich nie drauf gekommen 🤦‍♂️

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

              @pete0815 sagte: Das hat bis Admin5/JS3.3 funktioniert.

              Jetzt nicht mehr?

              @pete0815 sagte in Bitte um Kurzcheck Blockly und Datentypen:

              Warum funktioniert das ohne Konvertierung wenn der MQTT DP immer vom Typ String ist

              Wenn eine Seite eines Vergleichs eine Zahl enthält, macht Javascript eine implizite Typwandlung des Strings auf der anderen Seite in eine Zahl.

              ? 1 Reply Last reply Reply Quote 0
              • ?
                A Former User @paul53 last edited by

                @paul53 said in Bitte um Kurzcheck Blockly und Datentypen:

                @pete0815 sagte: Das hat bis Admin5/JS3.3 funktioniert.

                Jetzt nicht mehr?

                Nuja, die Schaltung funktioniert noch, aber der Log lief auf einmal bei mir voll. Ein paar Tage habe ich nichts bemerkt und heute hatte ich einen 16MB Log.

                2021-08-17 23:55:45.896 - info: mqtt.0 (843) State value to set for "mqtt.0.HeizKellerTank2.Lux.Helligkeit" has to be type "number" but received type "string" 
                

                Hieraus die Intention dies zu Verbessern und richtig umzusetzen.

                @pete0815 sagte in Bitte um Kurzcheck Blockly und Datentypen:

                Warum funktioniert das ohne Konvertierung wenn der MQTT DP immer vom Typ String ist

                Wenn eine Seite eines Vergleichs eine Zahl enthält, macht Javascript eine implizite Typwandlung des Strings auf der anderen Seite in eine Zahl.

                danke.Widerspricht sich das zur Auskunft von @mickym ?
                Alleine kann ich Beides nachvollziehen, aber zusammen tue ich mich schwer.

                mickym 1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Guest last edited by mickym

                  @pete0815 Na ja mein Beispiel mit den Zahlen war nicht ganz richtig und die implizite Typumwandlung in Zahlen findet halt statt, wenn die Strings beides in 2 Zahlen gewandelt werden kann. Ist jedoch eines der beiden Typen ein String und das andere eine Zahl, wird auch das andere ein String. (siehe Beispiel unten 52)

                  https://www.w3schools.com/js/js_type_conversion.asp

                  9a3b8677-d20b-4ccb-a1f6-3a3f7d13e805-image.png

                  Im Endeffekt hat @paul53 natürlich mal wieder Recht, wenn beide Strings in Zahlen gewandelt werden kann. Allerdings weiß ich nicht, ob diese implizierte Konvertierung tatsächlich bei Vergleichsoperationen stattfindet - oder nur wenn damit gerechnet wird. 😉 - Aber das kann @paul53 sicher auch klären.

                  ? paul53 2 Replies Last reply Reply Quote 0
                  • ?
                    A Former User @mickym last edited by

                    @mickym
                    Danke, jetzt habe ich es wohl verstanden und die Helligkeit ist in der Zwischenzeit zur Dunkelheit geworden und die Rollos haben sich ohne Meldung im Log wie gewünscht geschlossen. Besten Dank!

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

                      @mickym sagte: wenn beide Strings in Zahlen gewandelt werden kann.

                      Wenn beide Seiten eines Vergleichs Strings enthalten, erfolgt keine Typwandlung, sondern ein String-Vergleich wie Du ihn beschrieben hast.

                      @mickym sagte in Bitte um Kurzcheck Blockly und Datentypen:

                      ob diese implizierte Konvertierung tatsächlich bei Vergleichsoperationen stattfindet - oder nur wenn damit gerechnet wird.

                      Auch, wenn gerechnet wird, außer bei + (Addition): Wenn bei + nur an einer Stelle ein String vorkommt, erfolgt immer eine String-Verkettung. Beispiel: "4" + 1 + 2 = 4 + "1" + 2 = "412".

                      ? 1 Reply Last reply Reply Quote 0
                      • ?
                        A Former User @paul53 last edited by

                        @paul53

                        Ich glaube, ich habe eine Idee woher die Log Einträge kommen. Die kamen nur zwischen 20:45h und 06:30h. Das dürfte grob eine Zeit sein, wo der Mqtt String 0 gewesen ist (Dunkel).

                        Ist das dann ein besonderer Fall für die Umwandlung (ggf Division durch 0 oder sowas) und läuft deswegen ins Log?

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

                          @pete0815 sagte: Mqtt String 0 gewesen ist (Dunkel).

                          Ist das dann ein besonderer Fall für die Umwandlung (ggf Division durch 0 oder sowas) und läuft deswegen ins Log?

                          Wo machst Du eine Division? "0" ist nichts besonderes.

                           "mqtt.0.HeizKellerTank2.Lux.Helligkeit" has to be type "number" but received type "string"
                          

                          Das ist ein Fehler im MQTT-Adapter, da der Datenpunkt den falschen Typ "number" hat. Dieser Fehler ist früher nicht aufgefallen, da nicht angemeckert.

                          ? 1 Reply Last reply Reply Quote 0
                          • ?
                            A Former User @paul53 last edited by A Former User

                            @paul53 said in Bitte um Kurzcheck Blockly und Datentypen:

                            @pete0815 sagte: Mqtt String 0 gewesen ist (Dunkel).

                            Ist das dann ein besonderer Fall für die Umwandlung (ggf Division durch 0 oder sowas) und läuft deswegen ins Log?

                            Wo machst Du eine Division? "0" ist nichts besonderes.

                            Bei dem DP handelt es sich um die Helligkeit in Lux. Da die Meldung nur im Log zwischen ca. 20:45h und 6:30h alle 20 Sekunden auftaucht war dies für mich ein Ansatz/Frage da die Helligkeit in der Zeit 0 Lux ist.
                            Da aber nicht anwendbar, ok und verworfen.

                             "mqtt.0.HeizKellerTank2.Lux.Helligkeit" has to be type "number" but received type "string"
                            

                            Das ist ein Fehler im MQTT-Adapter, da der Datenpunkt den falschen Typ "number" hat. Dieser Fehler ist früher nicht aufgefallen, da nicht angemeckert.

                            Edit: Aah, habe es gefunden. Adapter gestopt, Datenpunkte gelöscht und Adapter gestartet. Die alten DPs waren "number". Die neuen sind "string".
                            Das dürfte es gewesen sein 🙂

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate

                            851
                            Online

                            32.0k
                            Users

                            80.5k
                            Topics

                            1.3m
                            Posts

                            4
                            16
                            576
                            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