Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. [gelöst] Variable als number deklarieren

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    524

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

[gelöst] Variable als number deklarieren

Geplant Angeheftet Gesperrt Verschoben Blockly
13 Beiträge 3 Kommentatoren 557 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • Claus1985 0C 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?

    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #2

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

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    Claus1985 0C 1 Antwort Letzte Antwort
    0
    • paul53P paul53

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

      Claus1985 0C Offline
      Claus1985 0C Offline
      Claus1985 0
      schrieb am zuletzt editiert von Claus1985 0
      #3

      @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..

      paul53P 1 Antwort Letzte Antwort
      0
      • Claus1985 0C 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..

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #4

        @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.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        Claus1985 0C 1 Antwort Letzte Antwort
        2
        • paul53P 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 0C Offline
          Claus1985 0C Offline
          Claus1985 0
          schrieb am zuletzt editiert von
          #5

          @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

          HomoranH paul53P 2 Antworten Letzte Antwort
          0
          • Claus1985 0C Claus1985 0

            @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

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #6

            @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.

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            Claus1985 0C 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @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 0C Offline
              Claus1985 0C Offline
              Claus1985 0
              schrieb am zuletzt editiert von
              #7

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

              1 Antwort Letzte Antwort
              0
              • Claus1985 0C Claus1985 0

                @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

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #8

                @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.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                Claus1985 0C 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @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 0C Offline
                  Claus1985 0C Offline
                  Claus1985 0
                  schrieb am zuletzt editiert von
                  #9

                  @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.

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • Claus1985 0C Claus1985 0

                    @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.

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von paul53
                    #10

                    @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

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    Claus1985 0C 1 Antwort Letzte Antwort
                    1
                    • paul53P 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 0C Offline
                      Claus1985 0C Offline
                      Claus1985 0
                      schrieb am zuletzt editiert von
                      #11

                      @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

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • Claus1985 0C Claus1985 0

                        @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

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von
                        #12

                        @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.

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        Claus1985 0C 1 Antwort Letzte Antwort
                        0
                        • paul53P paul53

                          @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 0C Offline
                          Claus1985 0C Offline
                          Claus1985 0
                          schrieb am zuletzt editiert von
                          #13

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

                          1 Antwort Letzte Antwort
                          0
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          892

                          Online

                          32.5k

                          Benutzer

                          81.8k

                          Themen

                          1.3m

                          Beiträge
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                          ioBroker Community 2014-2025
                          logo
                          • Anmelden

                          • Du hast noch kein Konto? Registrieren

                          • Anmelden oder registrieren, um zu suchen
                          • Erster Beitrag
                            Letzter Beitrag
                          0
                          • Home
                          • Aktuell
                          • Tags
                          • Ungelesen 0
                          • Kategorien
                          • Unreplied
                          • Beliebt
                          • GitHub
                          • Docu
                          • Hilfe