Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Datenpunkt erzeugen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Cinimod
      Cinimod Most Active @Ahnungsbefreit last edited by Cinimod

      @ahnungsbefreit said in Datenpunkt erzeugen:

      @dom-sch Dann bitte den Beitrag durch Editieren der Überschrift in Deinem ersten Post ganz oben als "[Gelöst] markieren und gerne meine Lösung "upvoten".^^

      Ist nicht mein Topic, hatte mich nur eingeklinkt 😊

      1 Reply Last reply Reply Quote 0
      • fzzybllz
        fzzybllz @PatrickFro last edited by

        @patrickfro said in Datenpunkt erzeugen:

        Wird es dann bald ggf. auch möglich sein, Datenpunkte mit Blockly anzulegen, bei denen der Name durch z.b. eine Variable oder ein Hochzählen bestimmt werden kann? Also keine genaue Vorgabe jeden Namens?

        Wird es hierauf noch eine Antwort geben?

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

          @ahnungsbefreit sagte in Datenpunkt erzeugen:

          @dom-sch Ja:
          cdbaa6d3-59f4-4220-b103-477cf2c2665b-image.png

          Hallo, danke für deinen Post. Hat mir geholfen. Ich habe noch eine Frage zu dem Common Feld. Was kann man da einschreiben?
          Gibt es im Blockly eine Möglichkeit vor dem erstellen abzufragen ob der Datenpunkt schon vorhanden ist?

          A 2 Replies Last reply Reply Quote 0
          • A
            Ahnungsbefreit @Guest last edited by

            @kilian-z said in Datenpunkt erzeugen:

            Ich habe noch eine Frage zu dem Common Feld. Was kann man da einschreiben?

            Siehe oben, Paul's Post:

            241964fa-4fe1-4776-9780-7f4846b30103-image.png

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

              @ahnungsbefreit sry ich meine unter Common. Soll das bedeuten daß die Funktionen die darin stehen erst ausgeführt werden nachdem der Datenpunkt erstellt wurde?

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

                @kilian-z Das sind keine Funktionen, sondern Eigenschaften des Datenpunkts wie z.B. der Typ (number/boolean/string/...) oder für number die Einheit (%/°C/...). Damit kannst Du beim Anlegen das Verhalten des DPs definieren

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

                  @kilian-z said in Datenpunkt erzeugen:

                  Gibt es im Blockly eine Möglichkeit vor dem erstellen abzufragen ob der Datenpunkt schon vorhanden ist?

                  Das ist nicht nötig. Wenn der DP schon existiert, passiert einfach nix. Wenn Du aber die Info trotzdem brauchst, ob der DP existiert, könnte man das über eine Javascript Funktion realisieren.

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

                    @ahnungsbefreit
                    Vielen Dank. Hat alles funktioniert. 👍

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

                      @kilian-z Der Vollständigkeit halber: Mit diesem Einzeiler kann man die Überprüfung machen, ob ein DP existiert:

                      dc28478f-d2d7-4763-8fa5-18453c0c6e1d-image.png

                      return existsObject(id);
                      
                      B 1 Reply Last reply Reply Quote 0
                      • B
                        Bavarian @Ahnungsbefreit last edited by

                        Kann man die Objekt ID auch mit einer Variablen angeben?
                        So wie ich das im Blockly sehe ist die per Hand fest zu vergeben.

                        Ich möchte zB. einen DP anlegen für den jeweils aktuellen Monat.
                        Dazu sollte der DP dann idealerweise auch den Monatsnamen bekommen.
                        Beispiel:
                        0_userdata.0."aktuelles Jahr"."Monat"

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

                          @bavarian sagte: Kann man die Objekt ID auch mit einer Variablen angeben?

                          Wobei?

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

                            @paul53
                            Bei dem oben gezeigten Blockly Datenpunktbaustein.
                            1628057033255-241964fa-4fe1-4776-9780-7f4846b30103-image.png

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

                              @bavarian sagte: Bei dem oben gezeigten Blockly Datenpunktbaustein.

                              Nein, man benötigt eine Javascript-Funktion.

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

                                Hallo, hänge mich hier mal dran. Möchte auch einen Datenpunkt unter "mqtt" erzeugen. Das Blockly funktioniert zwar, aber der Datenpunkt wird unter "javascript.0...." erzeugt und nicht unter "mqtt.0....."
                                Geht das nicht?

                                2b21b908-3c41-4209-8afe-4e0fee8c4668-image.png

                                A paul53 2 Replies Last reply Reply Quote 0
                                • A
                                  Ahnungsbefreit @Atifan last edited by

                                  @atifan Eigene Datenpunkte können und sollen nur unter JavaScript und unter userdata angelegt werden.

                                  Atifan 1 Reply Last reply Reply Quote 0
                                  • Atifan
                                    Atifan @Ahnungsbefreit last edited by

                                    @ahnungsbefreit Hi ja ich weiß, mache ich normal auch so. Aber in dem Fall MUSS der DB unter mqtt damit das NSPanel funktioniert.
                                    Da ich den mqtt-Objektbaum aber öfter mal manuell lösche, möchte ich dass ein Script mir dann automatisch den DB wieder erstellt, damit das NSPanel wieder funktioniert.

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

                                      @atifan sagte: Datenpunkt wird unter "javascript.0...." erzeugt und nicht unter "mqtt.0....."

                                      Das geht unter "mqtt.0" nur mit setObject().

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

                                        @paul53 Hi Danke! Gibts dafür auch ein Blockly-Funktion? Oder geht das dann nur über JavaScript?

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

                                          @atifan sagte: Gibts dafür auch ein Blockly-Funktion?

                                          Nein, absichtlich nicht, denn damit kann man einiges kaputt machen.
                                          Man muss ein komplexes Objekt übergeben, wofür Blockly auch keine Funktion bereit stellt.

                                          EDIT: Man kann sich mit einer Javascript-Funktion behelfen:

                                          Bild_2022-09-14_212130853.png

                                          Inhalt der Funktion createNSPaneCmd(Typ, Name, Rolle, Default):

                                          const obj = {
                                              type: 'state',
                                              native: {},
                                              common: {
                                                  type: Typ,
                                                  name: Name,
                                                  role: Rolle
                                              }
                                          };
                                          if(Default != undefined) obj.common.def = Default;
                                          const path = 'mqtt.0.NsPanel.cmd.';
                                          if(!existsObject(path + Name)) setObject(path + Name, obj);
                                          
                                          Atifan 1 Reply Last reply Reply Quote 0
                                          • Atifan
                                            Atifan @paul53 last edited by

                                            @paul53 Danke habe es hinbekommen, musste zwar bisschen rumprobieren aber irgendwann ging es 🙂
                                            Außerdem muss man im Javascript Adapter das Häkchen setzen, dass die Funktion setObject ausgeführt werden darf.

                                            e096172e-7da4-4f72-9e38-4fc3156b6217-image.png

                                            bab57a25-b77b-4e7d-b9de-8d4b31bf7d63-image.png

                                            const obj = {
                                                type: 'state',
                                                native: {},
                                                common: {
                                                    type: 'string',
                                                    name: 'CustomSend',
                                                    role: 'state',
                                                }
                                            };
                                            if(!existsObject('mqtt.0.NsPanel.cmnd.CustomSend')) setObject('mqtt.0.NsPanel.cmnd.CustomSend', obj);
                                            
                                            paul53 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            549
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            10
                                            43
                                            13101
                                            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