Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. ALIAS Variablen als globale Variablen nutzen + schalten?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    ALIAS Variablen als globale Variablen nutzen + schalten?

    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User last edited by A Former User

      Hi
      versuche immer mehr zur Nutzung von iobroker zu verstehen und meist stolper ich über Fehlnutzung in der Programmierung durch ungewünschte Effekte. Könnt ihr mir sagen, ob ich das so machen sollte oder besser anders?

      Ich bekomme über MQTT Variablen geliefert, die für Switch DP von Push Buttons stehen. Um diese DP sofort in der Programmierung nutzen zu können habe ich mir Alias DP angelegt (Skript von paul53).

      Jetzt lösen die Alias DP (Start und Stop) diverse Trigger aus um Zustände zu erzielen. Diese ALIAS DP habe ich nun auch genutzt um die Zustände aus Blockly Skripten anzusteuern.

      Beispiel: Es gibt den Push-Button Stop um eine Pumpe zu stoppen. Der MQTT wird zum ALIAS DP mit dem ich die Logik dahinter trigger um die Pumpe zu stoppen. Ergänzend zB gibt es jetzt einen Überlaufschutz von Tanks. Diese Logik setzt nun auch den ALIAS DP kurz auf true und mit Verzögerung wieder auf false.

      Ich nutze (mein Verständnis) somit den ALIAS DP als globale Variable zum den Zustand Stop der Pumpe anzutriggern.

      Problem/Frage: Während des triggerns durch Skripte ist der ALIAS DP ungleich dem MQTT Datenpunkt. Ist das ein Problem?
      Leider stelle ich fest, dass machmal die ALIAS DP andere Werte haben als der MQTT Wert und dies dauerhaft. Bin nun unsicher ob hier Fehler in meiner Programmierung schuld sind, also der Logik, oder diese Nutzung der ALIAS DP als Schalter von Skripten das Problem erzeugt.

      Ergänzend stelle ich fest, dass die realen Push Buttons manchmal nicht auf den ersten Push reagieren. Erst beim zweiten Push. Könnte das auch ein Effeckt sein, weil sich erst MQTT DP und der ALIAS wieder synchronisieren müssen?

      Hoffe man kann es verstehen 🙂
      Thx

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

        @Pete0815 sagte:

        Während des triggerns durch Skripte ist der ALIAS DP ungleich dem MQTT Datenpunkt.

        Sicher ? Hast Du mal die Instanz admin.0 neu gestartet ? (nicht stoppen !!). Es könnte eine Pufferproblem sein.

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

          @paul53 said in ALIAS Variablen als globale Variablen nutzen + schalten?:

          @Pete0815 sagte:

          Während des triggerns durch Skripte ist der ALIAS DP ungleich dem MQTT Datenpunkt.

          Sicher ? Hast Du mal die Instanz alias.0 neu gestartet ? (nicht stoppen !!). Es könnte eine Pufferproblem sein.

          Habe gerade mal geschaut, wie das gehen könnte, aber unter den Instanzen sehe ich (auch im Expertenmodus) diese Instanz nicht. Aus den Objekten neustarten?

          Edit:
          Habe gerade übrigens wieder so einen Fall, dass der Alias vom MQTT abweicht:
          54477853-8548-40c1-bfff-ed8d6a00181d-grafik.png

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

            @Pete0815
            Sorry, ich meinte admin.0 neu starten ohne zu stoppen.

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

              @paul53 said in ALIAS Variablen als globale Variablen nutzen + schalten?:

              @Pete0815
              Sorry, ich meinte admin.0 neu starten, ohne zu stoppen.

              Ok, danke gerade gemacht und auch den Browser mal aktualisiert/neu geladen aber wie im Screenshot oben die Diskrepanz zwischen ALIAS und DP bleibt.

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

                @Pete0815 sagte:

                die Diskrepanz zwischen ALIAS und DP bleibt.

                Dann zeige bitte die RAW-Ansicht des Alias-DP in Code tags.

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

                  @paul53 said in ALIAS Variablen als globale Variablen nutzen + schalten?:

                  @Pete0815 sagte:

                  die Diskrepanz zwischen ALIAS und DP bleibt.

                  Dann zeige bitte die RAW-Ansicht des Alias-DP in Code tags.

                  {
                    "from": "system.adapter.javascript.0",
                    "user": "system.user.admin",
                    "ts": 1599924788868,
                    "common": {
                      "name": "HeizKeller/Switch_Output/State",
                      "role": "switch",
                      "desc": "mqtt server variable",
                      "type": "boolean",
                      "write": true,
                      "read": true,
                      "alias": {
                        "id": "mqtt.0.HeizKeller.Switch_Output.State"
                      }
                    },
                    "native": {},
                    "acl": {
                      "object": 1636,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator",
                      "state": 1636
                    },
                    "_id": "alias.0.HeizKeller.Pumpe.Switch_Output",
                    "type": "state"
                  }
                  
                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @Guest last edited by paul53

                    @Pete0815 sagte:

                    "mqtt.0.HeizKeller.Switch_Output.State"

                    Ist "mqtt.0.HeizKeller.Switch_Output.State" nicht ein Kommando-Datenpunkt (write only) ? Und die Rückmeldung erfolgt über "mqtt.0.HeizKeller.Switch_Input.State" ?
                    Allerdings sollte der Alias den MQTT-DP in Deiner Konstellation spiegeln und umgekehrt.

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

                      @Pete0815
                      Du solltest mal einen der beiden DP aktualisieren, denn der Zeitstempel ist von gestern 15:47 Uhr.

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

                        @paul53 said in ALIAS Variablen als globale Variablen nutzen + schalten?:

                        @Pete0815 sagte:

                        "mqtt.0.HeizKeller.Switch_Output.State"

                        Ist "mqtt.0.HeizKeller.Switch_Output.State" nicht ein Kommando-Datenpunkt (write only) ? Und die Rückmeldung erfolgt über "mqtt.0.HeizKeller.Switch_Input.State" ?
                        Allerdings sollte der Alias den MQTT-DP in dieser Konstellation spiegeln und umgekehrt.

                        Hoffe zu verstehen was Du meinst. Die Begrifflichkeit Output, Input kommt von mir. Ich habe zwei Push Buttons. Einer steuert das MotorVentil am Ausgang der andere ein MotorVentil am Eingang der Pumpe. Deswegen Switch Input und Output.

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

                          @Pete0815 sagte:

                          Die Begrifflichkeit Output, Input kommt von mir.

                          Verstanden, meine Vermutung war falsch. Hast Du mal einen der beiden DP aktualisiert ?

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

                            @paul53 said in ALIAS Variablen als globale Variablen nutzen + schalten?:

                            @Pete0815 sagte:

                            Die Begrifflichkeit Output, Input kommt von mir.

                            Verstanden, meine Vermutung war falsch. Hast Du mal einen der beiden DP aktualisiert ?

                            Überlege noch wie ich das mache und ob das nicht Ursache des Problems ist (Würde den Datenpunkt jetzt Bestätigen um ihn zu aktualisieren). Sollte das nicht eigenständig passieren? Dass gestern um diese Zeit zu letzt der Push Button gedrückt wurde oder ein Skript den Alias verändert hat kommt hin.

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

                              @Pete0815 sagte in ALIAS Variablen als globale Variablen nutzen + schalten?:

                              Überlege noch wie ich das mache

                              Einfach in das Wert-Feld klicken und dann - ohne etwas zu verändern - das Häkchen rechts anklicken. Dann wird nur der Zeitstempel aktualisiert, alles andere bleibt. Alias und MQTT-DP sollten sich synchronisieren.

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

                                @paul53 said in ALIAS Variablen als globale Variablen nutzen + schalten?:

                                @Pete0815 sagte in ALIAS Variablen als globale Variablen nutzen + schalten?:

                                Überlege noch wie ich das mache

                                Einfach in das Wert-Feld klicken und dann - ohne etwas zu verändern - das Häkchen rechts anklicken. Dann wird nur der Zeitstempel aktualisiert, alles andere bleibt. Alias und MQTT-DP sollten sich synchronisieren.

                                Ja, habe den ALIAS aktualisiert und umgehend geht der MQTT auf den gleichen Wert.

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

                                  @Pete0815 sagte:

                                  ALIAS aktualisiert und umgehend geht der MQTT auf den gleichen Wert.

                                  Dann sollte es künftig auch per Script funktionieren.

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

                                    @paul53 said in ALIAS Variablen als globale Variablen nutzen + schalten?:

                                    @Pete0815 sagte:

                                    ALIAS aktualisiert und umgehend geht der MQTT auf den gleichen Wert.

                                    Dann sollte es künftig auch per Script funktionieren.

                                    Also muß ich nur darauf achten, dass in einem Script die Alias DP auch immer wieder auf false gesetzt werden, damit sie dem Zustand der MQTT werte entsprechen. Kommt dann mal ein Push Button über MQTT setzt er den Alias und auch wieder zurück auf false da es ja ein Push Button ist.

                                    mmmh. Also lag hier ein Pufferproblem vor oder wie kann das kommen?
                                    Meine Verwendung der ALIAS DP ist aber ok (im Prinzip ok wenn richtig gemacht)

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

                                      @Pete0815 sagte:

                                      Also muß ich nur darauf achten, dass in einem Script die Alias DP auch immer wieder auf false gesetzt werden, damit sie dem Zustand der MQTT werte entsprechen.

                                      Nein, für die Synchronisation von Alias- und Original-DP sorgt der js-controller. Beide haben stets den gleichen Zustand (nur der Zeitstempel kann minimal abweichen), wenn es so funktioniert wie es soll.

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

                                        @paul53 said in ALIAS Variablen als globale Variablen nutzen + schalten?:

                                        @Pete0815 sagte:

                                        Also muß ich nur darauf achten, dass in einem Script die Alias DP auch immer wieder auf false gesetzt werden, damit sie dem Zustand der MQTT werte entsprechen.

                                        Nein, für die Synchronisation von Alias- und Original-DP sorgt der js-controller. Beide haben stets den gleichen Zustand (nur der Zeitstempel kann minimal abweichen), wenn es so funktioniert wie es soll.

                                        Danke.

                                        Irgendwas stimmt nicht. Wollte gerade den ALIAS DP auf false setzen indem ich den Haken aus dem Kästchen entferne und bestätige. Der MQTT geht auf false aber nicht der ALIAS.
                                        Bei der Klickerrei stehen jetzt 3 der 4 ALIAS DP auf true ob ich bewusst nur am OUTPUT ALIAS Veränderungen gemacht habe. DIE MQTT DP bleiben auf false stehen.

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

                                          @Pete0815 sagte:

                                          Bei der Klickerrei stehen jetzt 3 der 4 ALIAS DP auf true ob ich bewusst nur am OUTPUT ALIAS Veränderungen gemacht habe. DIE MQTT DP bleiben auf false stehen.

                                          Irgendwas ist da faul ! Hast Du wirklich eine 1:1 Zuordnung Alias - Original ?

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

                                            @paul53 said in ALIAS Variablen als globale Variablen nutzen + schalten?:

                                            @Pete0815 sagte:

                                            Bei der Klickerrei stehen jetzt 3 der 4 ALIAS DP auf true ob ich bewusst nur am OUTPUT ALIAS Veränderungen gemacht habe. DIE MQTT DP bleiben auf false stehen.

                                            Irgendwas ist da faul ! Hast Du wirklich eine 1:1 Zuordnung Alias - Original ?

                                            Ich denke schon und grob hat es auch funktioniert, nur bin ich immer wieder über die Diskrepanz der ALIAS zu Orginal Werte gestolpert wenn ich mal manuell reinschaue. Aber dies muß ich prüfen um hier weiter zu kommen. Zum Anlegen der Alias hatte ich Dein Skript verwendet und hoffe alles auch richtig gemacht. Schaue mal in die RaW Informationen rein, ob ich was sehe kann.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            517
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            blockly
                                            2
                                            38
                                            803
                                            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