Navigation

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

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Objekt-ID zusammensetzen

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

      Zur Überwachung meiner Fenster würde ich gerne ein Programm schreiben und die betroffenen Datenpunkte durch eine Variable ansteuern, sodass ich am Anfang nur den Fensternamen austauschen muss.

      Hier mein Versuch.

      7de6f5c5-8585-4e32-a7ab-d9f96ae98624-image.png

      Der deaktivierte Block wäre der direkte Datenpunkt mit dem das Programm auch funktioniert.
      Die zusammengesetzte Version läuft nicht.

      haus-automatisierung paul53 2 Replies Last reply Reply Quote 0
      • haus-automatisierung
        haus-automatisierung Developer Most Active @TripleX last edited by

        @triplex Im Block wird ja der Name angezeigt (und nicht die ID). Wie genau lautet denn die Objekt ID?

        T 1 Reply Last reply Reply Quote 0
        • T
          TripleX @haus-automatisierung last edited by

          @haus-automatisierung Ich vermute mal du meinst den Datenpunkt.

          027b14c6-fd59-4326-9881-e0fa955c2aa3-image.png

          Sehe gerade, dass ich das 0_userdata.0..... nicht mit übernommen habe.
          Muss ich die "_" auchso mit übernehmen?

          haus-automatisierung 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @TripleX last edited by paul53

            @triplex sagte: am Anfang nur den Fensternamen austauschen muss.

            Enthält die Datenpunkt-ID nicht den Fensternamen? Oder der Datenpunktname? Dann könnte man auch den Selektor verwenden und muss nicht für jedes Fenster ein neues Skript erzeugen.
            Wie @haus-automatisierung schon schrieb: Fenster - Status Alarm Farbe enthält keine gültige ID.

            paul53 1 Reply Last reply Reply Quote 0
            • haus-automatisierung
              haus-automatisierung Developer Most Active @TripleX last edited by

              @triplex Genau. Das ist die ID. Und die muss auch so zusammengebaut werden. Grundlagen anschauen

              T 1 Reply Last reply Reply Quote 0
              • T
                TripleX @haus-automatisierung last edited by TripleX

                @haus-automatisierung Jetzt läuft es.

                2226e060-c235-428d-aa3f-38c281b5c42a-image.png

                Wenn ich mir jetzt noch automatisch die Datenpunkte erstellen möchte, dann kann ich das mit diesem Block machen und die Variable einfach einsetzen?

                f80eee31-0080-4916-a65f-cc9aecaf47b6-image.png

                Wie ist das wenn ein Datenpunkt schon existiert?
                Muss ich das vorher abfragen oder passiert dann einfach nichts?

                EDIT: Seh gerade, dass das der falsche Block wäre, aber welchen kann man dann nehmen?

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

                  @triplex sagte: falsche Block wäre, aber welchen kann man dann nehmen?

                  Blockly bietet keinen Block zum Erstellen eines Datenpunktes mit variabler ID.

                  haus-automatisierung 1 Reply Last reply Reply Quote 0
                  • haus-automatisierung
                    haus-automatisierung Developer Most Active @paul53 last edited by

                    @paul53 sagte in Objekt-ID zusammensetzen:

                    Blockly bietet keinen Block zum Erstellen eines Datenpunktes mit variabler ID.

                    Gibt glaube ich schon einen GitHub Issue mit diesem Wunsch. Kam zumindest schon öfter auf das Thema.

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

                      @paul53 sagte: Dann könnte man auch den Selektor verwenden und muss nicht für jedes Fenster ein neues Skript erzeugen.

                      Das könnte so aussehen:

                      Blockly_temp.JPG

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

                        @paul53 Danke für den Tipp.
                        Bin noch nicht so der Experte, habe aber glaube ich verstanden wie das Programm abläuft.
                        Werde es mal versuchen so umzusetzen.
                        An das Erstellen der Datenpunkte komme ich dann wohl nicht vorbei.

                        paul53 2 Replies Last reply Reply Quote 0
                        • paul53
                          paul53 @TripleX last edited by paul53

                          @triplex sagte: An das Erstellen der Datenpunkte komme ich dann wohl nicht vorbei.

                          Man könnte es auch mit einer Javascript-Funktion, was für dich sicherlich nicht einfacher ist.

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

                            @triplex sagte: Danke für den Tipp.

                            Man kann auch Anfang und Ende in der ID ersetzen:

                            Blockly_temp.JPG

                            1 Reply Last reply Reply Quote 1
                            • BananaJoe
                              BananaJoe Most Active last edited by BananaJoe

                              @triplex sagte in Objekt-ID zusammensetzen:

                              Wenn ich mir jetzt noch automatisch die Datenpunkte erstellen möchte, dann kann ich das mit diesem Block machen und die Variable einfach einsetzen?

                              Da habe ich mir selbst eine Blockly-Funktion für gebaut:
                              https://forum.iobroker.net/topic/76518/blockly-createmystate-datenpunkte-mit-unit-states?_=1735509779356

                              man beachte die ganzen Beispiele!
                              In der aktuellen Version V5 kann man weglassen was man nicht braucht, wenn es nicht geht (unmögliche Kombination) steht im Log eine Fehlermeldung

                              T 2 Replies Last reply Reply Quote 0
                              • T
                                TripleX @BananaJoe last edited by

                                @bananajoe Danke Dir!
                                Genau das habe ich gesucht.
                                Du ersparst mir gerade ne Menge Arbeit bei 20 Türen & Fenstern mit je 3-5 Datenpunkten.

                                Ein Frage hätte ich noch.
                                Was passiert wenn man versucht einen Datenpunkt anzulegen, den es bereits gibt?
                                Wird das dann ignoriert oder der bestehende überschrieben?

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

                                  @triplex sagte: der bestehende überschrieben?

                                  Nein.

                                  T 1 Reply Last reply Reply Quote 0
                                  • T
                                    TripleX @BananaJoe last edited by TripleX

                                    @bananajoe Kurzes Feedback!
                                    Deine Funktion läuft spitze...da macht das Erstellen der Datenpunkte doch gleich wieder Spaß.

                                    EDIT:
                                    Eine Kleinigkeit ist mir gerade noch aufgefallen.
                                    Wenn ich den Datenpunkt manuell anlege und im Namen ein Leerzeichen drin habe, dann wird das auch im Namen so übernommen, im Datenpunkt wird dann ein "" eingesetzt.
                                    Wenn ich mit deiner Funktion Leerzeichen habe, dann heißt auch der Datenpunkt so.
                                    Ich weiß nicht ob das irgendwelche Auswirkungen hat.
                                    Wäre es möglich die Funktion zu erweitern, dass Leerzeichen im Namen durch "
                                    " im Datenpunkt ersetzt werden?

                                    BananaJoe 1 Reply Last reply Reply Quote 0
                                    • T
                                      TripleX @paul53 last edited by

                                      @paul53 Habe dein Programm so umgesetzt und es funktioniert auch soweit und dank @BananaJoe kann ich mir jetzt auch die ganzen Datenpunkt schnell und einfach erstellen.

                                      Jetzt würde ich gerne überprüfen, wenn ich z.B. die Alarmanlage aktiviere, welche von den ganzen Fenstern evtl. noch geöffnet sind und einen zu dem jeweiligen Fenster zugehörigen Datenpunkt auf "true" setzen.

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • BananaJoe
                                        BananaJoe Most Active @TripleX last edited by

                                        @triplex Weis du, ich bin jetzt seit etwa 1989 in der IT, habe also nun über 35 Jahre "Berufserfahrung".

                                        Und immer noch fehlt mir völlig die Fantasie um überhaupt auf die Idee zu kommen, bei so etwas Leerzeichen oder Sonderzeichen einzusetzen.

                                        Wenn ich da etwas anderes einsetze statt dem Leerzeichen, dann wird doch danach dein Programm scheitern weil der Name nicht so ist wie gedacht.
                                        Was genau meinst du mit "" ?
                                        Ah, du meinst den _

                                        Aber wie geschrieben, wenn ich das automatisch ändere passt es ja für den Rest nicht.
                                        Ich könnte das Erstellen mit Fehlermeldung verweigern wenn da ein Leezeichen drin ist.

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

                                          @triplex sagte: überprüfen, wenn ich z.B. die Alarmanlage aktiviere, welche von den ganzen Fenstern evtl. noch geöffnet sind

                                          Dazu gibt es im Forum etliche Lösungen. Etwa solche:

                                          Blockly_temp.JPG

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          861
                                          Online

                                          31.9k
                                          Users

                                          80.3k
                                          Topics

                                          1.3m
                                          Posts

                                          4
                                          19
                                          424
                                          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