Navigation

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

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly Datenpunkte erstellen

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      aleks-83 last edited by

      Hi,

      ich programmiere nun seit ca. 1,5 Jahren zwischendurch an meiner ioBroker Instanz herum.

      Da das Thema programmieren für mich neu war, habe ich beim Erstellen meiner Blockly Skripte einige ANfänger Fehler gemacht.

      z.B. habe ich die Datenpunkte die in den Skripten genutzt werden, vorher manuell erstellt.
      Jetzt werde ich meine ioBroker Instanz demnächst wohl neu aufesetzen (müssen) weil meine Datenpunkte und Objekte gelöscht habe und sie nicht mehr importieren kann.
      Das will ich zum Anlass nehmen und meine Skripte Absturz sicherer zu machen.

      Ich möchte in jedem Blockly Skript in dem ein Datenpunkt genutzt wird, diesen vorher erstellen.

      Hierzu gibt es ja den System Baustein "Create State".
      Leider finde ich in der Doku keine weiteren Infos darüber, wie man dem so erstellen Datenpunkt dann Attribute zuweist.
      Ich möchte gerne per Blockly Datenpunkte erzeugen und folgendes mitgeben können:

      • Typ (bool, num ...)
      • Min / Max Wert
      • Einheit

      Geht das?

      paul53 -Alex- 0 2 Replies Last reply Reply Quote 0
      • paul53
        paul53 @aleks-83 last edited by

        @aleks-83 sagte:

        Geht das?

        Ja, siehe hier.

        1 Reply Last reply Reply Quote 1
        • A
          aleks-83 last edited by

          Perfekt. Danke.

          Das könnte man evtl. noch in die Doku vom JavaScript Adapter aufnehmen.
          Am besten bei GitHub melden, oder?

          1 Reply Last reply Reply Quote 0
          • -Alex- 0
            -Alex- 0 @aleks-83 last edited by

            @aleks-83 sagte in Blockly Datenpunkte erstellen:

            z.B. habe ich die Datenpunkte die in den Skripten genutzt werden, vorher manuell erstellt.
            Jetzt werde ich meine ioBroker Instanz demnächst wohl neu aufesetzen (müssen) weil meine Datenpunkte und Objekte gelöscht habe und sie nicht mehr importieren kann.
            Das will ich zum Anlass nehmen und meine Skripte Absturz sicherer zu machen.

            Wichtig ist auch zu bedenken und zu erwähnen, das es am besten ist, eigene Datenpunkte ausserhalb eines Adapterkontextes anzulegen.
            Also d.h. am besten unter 0_Userdata.0. (dann wäre das mit dem Javascript Adapter crash auch kein Problem gewesen)

            dslraser 1 Reply Last reply Reply Quote 0
            • dslraser
              dslraser Forum Testing Most Active @-Alex- 0 last edited by

              @Alex-0 sagte in Blockly Datenpunkte erstellen:

              Also d.h. am besten unter 0_Userdata.0.

              das stimmt, aber das kann der Blockly Baustein nicht. Das geht aber per Script

              -Alex- 0 1 Reply Last reply Reply Quote 0
              • -Alex- 0
                -Alex- 0 @dslraser last edited by

                @dslraser sagte in Blockly Datenpunkte erstellen:

                @Alex-0 sagte in Blockly Datenpunkte erstellen:

                Also d.h. am besten unter 0_Userdata.0.

                das stimmt, aber das kann der Blockly Baustein nicht. Das geht aber per Script

                @dslraser ja das stimmt auch 😉
                ich würde dann halt anstatt diesen Datenpunkt Blockly ein Javascript Blockly - Baustein nutzen.
                e563738a-22f8-4162-9c17-dcca4cf5ff19-image.png

                dslraser A 2 Replies Last reply Reply Quote 0
                • dslraser
                  dslraser Forum Testing Most Active @-Alex- 0 last edited by dslraser

                  @Alex-0

                  Hierzu gibt es ja den System Baustein "Create State".

                  ich mache das auch so, ich wollte nur drauf hinweisen, weil es im ersten Beitrag um den Blockly Baustein ging.

                  -Alex- 0 1 Reply Last reply Reply Quote 0
                  • -Alex- 0
                    -Alex- 0 @dslraser last edited by

                    @dslraser sagte in Blockly Datenpunkte erstellen:

                    @Alex-0

                    Hierzu gibt es ja den System Baustein "Create State".

                    ich mache das auch so, ich wollte nur drauf hinweisen, weil es im ersten Beitrag um den Blockly Baustein ging.

                    @dslraser
                    gut, dann sind wir uns ja einig 👍 😊

                    1 Reply Last reply Reply Quote 0
                    • A
                      aleks-83 @-Alex- 0 last edited by

                      Danke euch für die hilfreichen Tipps!

                      @Alex-0
                      Die Funktion "Datenpunkte_anlegen" ist eine globale Javascript Funktion?
                      Wie ich die erstelle weiß ich leider (noch) nicht.

                      Die Datenpunkte unter Javascript.0 zu "lagern" ist ja eigentlich nicht mein Grundproblem.
                      Wenn der Javascript Adapter abstürzt oder ein Problem hat und die Datenpunkte dann mal weg sind, werden sie ja nach der Reparatur des Javascript Adapters wieder angelegt.
                      Ich verwende diese Datenpunkte auch ausschließlich im Javascript Adapter. Das wäre für mich von daher kein Problem.

                      -Alex- 0 1 Reply Last reply Reply Quote 0
                      • -Alex- 0
                        -Alex- 0 @aleks-83 last edited by -Alex- 0

                        @aleks-83 sagte in Blockly Datenpunkte erstellen:

                        Danke euch für die hilfreichen Tipps!

                        @Alex-0
                        Die Funktion "Datenpunkte_anlegen" ist eine globale Javascript Funktion?
                        Wie ich die erstelle weiß ich leider (noch) nicht.

                        nein, gibt es nicht.
                        nimm als Vorlage hier dieses Script: https://forum.iobroker.net/topic/26839/vorlage-skript-erstellen-von-user-datenpunkten/64
                        Bzw. besser gleich von hier: https://github.com/Mic-M/iobroker.createUserStates
                        Einfach kopieren und hier in den Blockly einfügen:

                        beabb2fe-0e8f-4d85-b8f9-473529d3048f-image.png

                        Die Funktion heisst bei mir dann "Datenpunkte_anlegen" wie man hier im Screenshot auch erkennt.

                        Das Script ist funktonal aufgebaut und kannst das überall, wo Du datenpunkte benötigst nutzen.
                        oben im Script bei der Variablendeklaration kannst Du dann beliebig viele Datenpunkte anlegen lassen:

                        let statesToCreate = [
                        ['Datenpunkt_1', {'name':Datenpunkt 1', 'type':'boolean', 'read':true, 'write':true, 'role':'switch' }],
                        ['Datenpunkt_2', {'name':Datenpunkt 2', 'type':'boolean', 'read':true, 'write':true, 'role':'button' }],
                        ['Datenpunkt_3', {'name':Datenpunkt 3', 'type':'text', 'read':true, 'write':true, 'role':'mixed' }],
                        ];
                        

                        der unter teil des Scipts bleibt immer gleich.

                        paul53 A 2 Replies Last reply Reply Quote 1
                        • paul53
                          paul53 @-Alex- 0 last edited by paul53

                          @Alex-0 sagte:

                          ['Datenpunkt_3', {'name':Datenpunkt 3', 'type':'text', 'read':true, 'write':true, 'role':'mixed' }],

                          type:'text' und role:'mixed' sind unzulässig.

                          1 Reply Last reply Reply Quote 0
                          • A
                            aleks-83 @-Alex- 0 last edited by aleks-83

                            @Alex-0
                            Super, Danke.
                            Das werde ich dann doch eher umsetzen. Dann lege ich alle meine eigenen DP in userdata.
                            Scheint ja so auch gewünscht und empfohlen zu werden von den ioBroker Programmierern.

                            Bei dem GitHub Skript verstehe ich allerdings nicht wo ich den Pfad und die Datenpunkte deklariere.
                            Bzw. wo schreibe ich das "statesToCreate " hin?

                            let statesToCreate = [
                                ['Test.Test1', {'name':'Test 1', 'type':'string', 'read':true, 'write':true, 'role':'info', 'def':'Hello' }],
                                ...
                            ];
                            

                            Wenn ich das Javascript Skript dann im Ordner "global" ablege, kann ich aber in keinem Blockly diese Funktion aufrufen.
                            Geht das dann nur aus reinen Javascript Skripten?

                            @paul53 sagte in Blockly Datenpunkte erstellen:

                            type:'text' und role:'mixed' sind unzulässig.

                            Steht denn irgendwo was (un)zulässig ist?
                            Für erfahrene Programmierer ist downs evtl selbstverständlich, aber für Menschen wie mich leider gar nicht 😬

                            paul53 1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @aleks-83 last edited by

                              @aleks-83 sagte:

                              Steht denn irgendwo was (un)zulässig ist?

                              Siehe Doku Kernkonzept unter "Attribute für bestimmte Objekttypen" und Rollen von Datenpunkten.

                              1 Reply Last reply Reply Quote 0
                              • E
                                Eisbaer721 last edited by

                                Hallo zusammen
                                wie kann ich eigentlich den Datenpunkt sofort im History.0 Adapter aktivieren?

                                let statesToCreate = [
                                    ['Test.Test1', {'name':'Test 1', 'type':'string', 'read':true, 'write':true, 'role':'info', 'def':'Hello' }],
                                    ...
                                ];
                                

                                (4070a8bf-255d-4c9e-bc4e-74034f0c5dab-image.png

                                Vielen Dank

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

                                  @Eisbaer721 sagte:

                                  sofort im History.0 Adapter aktivieren?

                                  So sieht ein Eintrag für history.0 unter common aus:

                                      "custom": {
                                        "history.0": {
                                          "enabled": true,
                                          "changesOnly": true,
                                          "debounce": "1000",
                                          "maxLength": "10",
                                          "retention": "259200",
                                          "changesRelogInterval": 0,
                                          "changesMinDelta": 0,
                                          "aliasId": ""
                                        }
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  788
                                  Online

                                  32.0k
                                  Users

                                  80.4k
                                  Topics

                                  1.3m
                                  Posts

                                  blockly
                                  5
                                  15
                                  12153
                                  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