Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Variable als number deklarieren

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [gelöst] Variable als number deklarieren

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

      Hallo Zusammen,

      habe gerade festgestellt, dass ich über Blockly variablen zwar einfach erstellen kann,
      allerdings ohne type. Wenn ich nun z.B. einen Datenpunkt number damit füllen möchte bekomme ich einen
      Fehler da die Variable scheinbar als string deklariert ist.

      Ich habe das über folgende function (welche ich hier gefunden habe) versucht zu lösen:

      var.PNG

      Code in der function:

      createState(ID, Init, {
          type: 'number',
          name: Name
      });
      

      Anschließend verwende ich die Variable dann in einem Skript um einen Wert in einem Datenpunkt zu speichern.
      Leider erhalte ich trotzdem folgenden Fehler:

      You are assigning a object to the state "0_userdata.0.Durchschnitt_Strom_Shelly.Anzahl_Resets" which expects a number. Please fix your code to use a number or change the state type to object.
      

      Kann mir hier jemand einen Tipp geben was ich ändern muss damit das klappt?
      Kann ich die Variable vll sogar ohne function als number deklarieren?

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

        @claus1985-0
        Wo und wie wird in den Datenpunkt "0_userdata.0.Durchschnitt_Strom_Shelly.Anzahl_Resets" geschrieben?

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

          @paul53 Hi Paul,

          der wird im rot markierten Teil geschrieben.
          Ich zähle in einer Variable nach Durchlaufen einer Schleife hoch und speichere den Wert der Variable dann
          im Datenpunkt um zu historisieren:

          674a38f0-ddaf-4b92-8284-4e03964426c3-image.png

          Habe gerade festgestellt, dass er über die Variable den Wert {"ack":true} übergibt..
          Allerdings mache ich ja nichts anderes als das erst als number zu deklarieren und dann jeweils +1 zu erhöhen..

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

            @claus1985-0 sagte: Ich zähle in einer Variable nach Durchlaufen einer Schleife hoch

            Das muss außerhalb des falls-Blockes erfolgen:

            Bild_2022-06-18_171108257.png

            Damit der Wert einen Skriptstart überlebt, muss der Datenpunktwert bei Skriptstart in die Variable eingelesen werden.

            @claus1985-0 sagte in Variable als number deklarieren:

            Kann ich die Variable vll sogar ohne function als number deklarieren?

            Bild_2022-06-18_171445338.png

            Common im JSON-Format übergeben.

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

              @paul53 Hi Paul, danke für die Hinweise verstehe ich das so richtig?

              1. Datenpunkt bei Skriptstart in Variable einlesen
              2. Im Falls Block die Variable nur um eins hochsetzen
              3. Den Datenpunkt außerhalb des Falls-Blocks mit der Variable überschreiben

              Quasi so:
              efae0997-9c4e-4ce8-a881-bb0c79393de9-image.png

              Eine Frage auch noch zu deinem JSON code im common. Warum wird "def" benötigt?

              Danke Dir und Gruß,

              Claus

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

                @claus1985-0 sagte in Variable als number deklarieren:

                Warum wird "def" benötigt?

                das istcder default Wert, der gesetzt wird, wenn der Datenpunkt noch nicht beschrieben wurde.

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

                  @homoran wird der nicht über Init-Wert gesetzt? So hatte ich das zumindest verstanden..

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

                    @claus1985-0 sagte: Quasi so:

                    Nein. Vergleiche mit meinem Bild:

                    • Variablen außerhalb des falls-Blockes setzen / erhöhen und Wert in Datenpunkt schreiben
                    • Bei Skriptstart (außerhalb des Triggers) den Datenpunktwert in die Variable Summe_Resets einlesen.
                    Claus1985 0 1 Reply Last reply Reply Quote 0
                    • Claus1985 0
                      Claus1985 0 @paul53 last edited by

                      @paul53 allerdings verliert die Logik dann ja ihre Funktion?
                      Mein Ziel ist ja, die Variable nur dann hochzuzählen, wenn die Bedingungen im Falls-Block erfüllt sind.

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

                        @claus1985-0 sagte: Variable nur dann hochzuzählen, wenn die Bedingungen im Falls-Block erfüllt sind.

                        Gut, dann müssen aber die beiden anderen Variablen außerhalb des falls-Blockes gesetzt werden.

                        Bild_2022-06-18_175145074.png

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

                          @paul53 danke Dir! 🙂
                          Eine Frage noch zur Deklaration der Variable am Skript-Start.
                          Wenn ich den Datenpunkt bei Init-Wert angebe, muss ich dann im Common trotzdem "def" ebenfalls angeben
                          oder genügen da type und name?

                          e3d3e32b-b411-4581-8ca4-3d24801b65c2-image.png

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

                            @claus1985-0 sagte: muss ich dann im Common trotzdem "def" ebenfalls angeben oder genügen da type und name?

                            Da bin ich mir nicht sicher, denn es hat sich diesbezüglich etwas geändert. Probiere es aus.

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

                              @paul53 habs ausprobiert, ist notwendig. Ohne kommt der bekannte Fehler mit number erwartet aber string erhalten.
                              Danke für Deine Hilfe!

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

                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              757
                              Online

                              31.7k
                              Users

                              79.6k
                              Topics

                              1.3m
                              Posts

                              3
                              13
                              264
                              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