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 @paul53 last edited by

      @paul53 said in Bitte um Kurzcheck Blockly und Datentypen:

      @pete0815 sagte in Bitte um Kurzcheck Blockly und Datentypen:

      Ist dies so korrekt gelöst?

      Nein, die Objekt-ID (Helligkeit) enthält nicht den Wert. Besser so:

      Bild_2021-08-18_175223.png

      Wert:

      Blockly_DP_Props.JPG

      ok, vielen Dank! Dann kann ich mir den Alias sparen? Sinn war ja den Mqtt DP vom Standardtyp string in number über einen Alias zu konvertieren. Da ich den Mqtt DP öfters verwende, wäre das dann nur 1mal konviert an Stelle von x-fach bei jeder Verwendung. Macht das Sinn?

      Keine eigenen Datenpunkte unter "javascript.0.scriptEnabled" erstellen!

      Oooh Oooh, da habe ich nahezu 99,9% der selbst erstellten DPs.

      Ist der Alias vom Typ Zahl und der MQTT-Datenpunkt vom Typ Zeichenkette? Dann nimm den Alias auch zum Triggern.

      Ja, habe ihn per Skript erstellt, dass Du hier im Forum zur Verfügung gestellt hast. Habe aber eben auch gesehen, dass es inzwischen einen Alias Manager gibt.

      1 Reply Last reply Reply Quote 0
      • ?
        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

                              848
                              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