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 @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
      • ?
        A Former User @Guest last edited by A Former User

        Ganz komisch. Admin nochal neu gestartet und browser refresh.

        Die ALIAS verändern sich nicht wenn ich die MQTT manuell setze und bestätige (leuchten nur kurz grün). Bleiben also auf true stehen.

        20ca9d2a-b288-4115-a3ed-c2fc8d2815f2-grafik.png

        Die ALIAS RAW Informationen sehen für mich ok aus:

        {
          "type": "state",
          "common": {
            "name": "HeizKeller/Switch_Input/State",
            "write": true,
            "read": true,
            "role": "switch",
            "desc": "mqtt server variable",
            "type": "boolean",
            "alias": {
              "id": "mqtt.0.HeizKeller.Switch_Input.State"
            }
          },
          "native": {},
          "from": "system.adapter.javascript.0",
          "user": "system.user.admin",
          "ts": 1599924832543,
          "_id": "alias.0.HeizKeller.Pumpe.Switch_Input",
          "acl": {
            "object": 1636,
            "state": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          }
        }
        
        {
          "type": "state",
          "common": {
            "name": "HeizKeller/Switch_Output/State",
            "write": true,
            "read": true,
            "role": "switch",
            "desc": "mqtt server variable",
            "type": "boolean",
            "alias": {
              "id": "mqtt.0.HeizKeller.Switch_Output.State"
            }
          },
          "native": {},
          "from": "system.adapter.javascript.0",
          "user": "system.user.admin",
          "ts": 1599924788868,
          "_id": "alias.0.HeizKeller.Pumpe.Switch_Output",
          "acl": {
            "object": 1636,
            "state": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          }
        }
        
        {
          "type": "state",
          "common": {
            "name": "HeizKeller/Switch_Start/State",
            "write": true,
            "read": true,
            "role": "switch",
            "desc": "mqtt server variable",
            "type": "boolean",
            "alias": {
              "id": "mqtt.0.HeizKeller.Switch_Start.State"
            }
          },
          "native": {},
          "from": "system.adapter.javascript.0",
          "user": "system.user.admin",
          "ts": 1595845072459,
          "_id": "alias.0.HeizKeller.Pumpe.Switch_Start",
          "acl": {
            "object": 1636,
            "state": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          }
        }
        
          "type": "state",
          "common": {
            "name": "HeizKeller/Switch_Stop/State",
            "write": true,
            "read": true,
            "role": "switch",
            "desc": "mqtt server variable",
            "type": "boolean",
            "alias": {
              "id": "mqtt.0.HeizKeller.Switch_Stop.State"
            }
          },
          "native": {},
          "from": "system.adapter.javascript.0",
          "user": "system.user.admin",
          "ts": 1595844550962,
          "_id": "alias.0.HeizKeller.Pumpe.Switch_Stop",
          "acl": {
            "object": 1636,
            "state": 1636,
            "owner": "system.user.admin",
            "ownerGroup": "system.group.administrator"
          }
        }
        

        Ist es ok, dass die alle die gleiche Object und state Nummer (1636) haben?

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

          @Pete0815 sagte:

          Die ALIAS RAW Informationen sehen für mich ok aus:

          Für mich auch.

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

          alle die gleiche Object und state Nummer (1636) haben?

          Das sind Zugriffsrechte, die alle gleich sind.

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

          Die ALIAS verändern sich nicht wenn ich die MQTT manuell setze und bestätige

          Welche Version vom js-controller ?

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

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

            Welche Version vom js-controller ?

            3.1.6

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

              @Pete0815 sagte:

              3.1.6

              Diese Version funktioniert bei mir.

              ? 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:

                3.1.6

                Diese Version funktioniert bei mir.

                Ok, mal den iobroker neustarten?

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

                  @Pete0815 sagte:

                  mal den iobroker neustarten?

                  Ein Versuch schadet nicht.

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

                    @paul53

                    Jaein. Habe gerade den Switch_Input probiert der sonst noch nicht in einer Logik (Skript) Verwendung findet also nur der Button und der ALIAS "aktiv" ist.

                    Den MQTT DP von 0 auf 1 gesetzt. Funktioniert und setzt auch den ALIAS.
                    Wichtig, ich muß den MQTT auf 0 oder 1 setzen, nicht true oder false.

                    Der ALIAS wird auf true oder false gesetzt. Setze ich diesen manuell. wird der MQTT DP aber auf false oder true gesetzt. Nicht 0 oder 1. Ist das vielleicht das Problem?

                    Edit: Wenn ich den ALIAS nicht über das Kästchen mit Haken auf true oder false setze, sondern in das Pop-UP Window 0 oder 1 reinschreibe. Setzt er den ALIAS auf TRUE/false und den MQTT auf 0 oder 1. mmmh

                    Muss ich also evtl. in den Skripten hier nicht auf wahr oder falsch steuern sondern auf 0 oder 1 setzen?

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

                      @Pete0815 sagte:

                      Wichtig, ich muß den MQTT auf 0 oder 1 setzen, nicht true oder false.

                      Dann wandele mit common.alias.read und common.alias.write .

                          "alias": {
                            "id": "mqtt.0.HeizKeller.Switch_Output.State",
                            "read": "!!val",
                            "write": "val ? 1 : 0"
                          }
                      
                      ? 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?:

                        Wichtig, ich muß den MQTT auf 0 oder 1 setzen, nicht true oder false.

                        Welchen Typ haben die MQTT-Datenpunkte ? Falls "number", dann wandele mit common.alias.read und common.alias.write .

                            "alias": {
                              "id": "mqtt.0.HeizKeller.Switch_Output.State",
                              "read": "!!val",
                              "write": "val ? 1 : 0"
                            }
                        

                        Die MQTT sind vom typ string. Hieraus auch meine Intention ALIAS zu verwenden, damit ich direkt bolean werte habe für die skripte.

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

                          @Pete0815 sagte:

                          Die MQTT sind vom typ string.

                          Mit den Werten "0" und "1" ? Dann sollte die Read-Wandlung eigentlich automatisch erfolgen. Aber nicht write:

                              "alias": {
                                "id": "mqtt.0.HeizKeller.Switch_Output.State",
                                "write": "val ? String(1) : String(0)"
                              }
                          
                          ? 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 MQTT sind vom typ string.

                            Mit den Werten "0" und "1" ? Dann sollte die Read-Wandlung eigentlich automatisch erfolgen. Aber nicht write:

                                "alias": {
                                  "id": "mqtt.0.HeizKeller.Switch_Output.State",
                                  "write": "val ? '1' : '0'"
                                }
                            

                            OK, verstehe. habe gerade einen Test gemacht.

                            Ausgangszustand: Alle ALIAS auf false und MQTT auf 0

                            Habe dann den Push Button Output gedrückt und da der Füllstand es derzeit nicht erlaubt, überschreibt ein Script dies wieder und triggert nochmal diesen Push Button über den ALIAS. Ergebnis, dass im MQTT DP jetzt ein false steht wo eine 0 stehen müßte. Also genau wie du sagst, die Schreibrichtung vom ALIAS auf den MQTT wandelt nicht.

                            Kopiere ich die Zeile 3 jetzt einfach bei mir im ALIAS dazu?

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

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

                              Kopiere ich die Zeile 3 jetzt einfach bei mir im ALIAS dazu?

                              Ja. Allerdings bin ich mir nicht ganz sicher, ob es so funktioniert. Falls nicht, dann evtl. so:

                                    "write": "val ? String(1) : String(0)"
                              
                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @paul53 last edited by

                                @paul53
                                Hab es gerade getestet: Die erste Version funktioniert nicht. Also:

                                      "write": "val ? String(1) : String(0)"
                                
                                ? 1 Reply Last reply Reply Quote 0
                                • ?
                                  A Former User @paul53 last edited by

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

                                  "val ? String(1) : String(0)"

                                  Danke. Probiere gerade noch und sehe komische Effekte wie selbständiges setzen der ALIAS auf true und true/false taucht dann doch wieder im MQTT DP auf. Teste aber noch um mir sicher zu sein was genau passiert

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

                                    Also ich glaube bei mir funktioniert, dass noch nicht.
                                    Habe wieder den Testfall mit dem Switch_Output getestet. Habe manuell den Push Button gedrückt. Dies löst MQTT DP und dann den Alias aus. Dadurch beginnt das Motorventil am Ausgang zu drehen. Es findet eine zyklische Füllstandsmessung statt und die Logik "Überlaufschutz" löst ALIAS Switch_Output aus um den Vorgang wieder umzukehren/zu verhindern.

                                    Die Logik dazu sieht so aus:
                                    940be658-3a5b-46ab-b07e-189a4bd77d21-grafik.png

                                    Der ALIAS wie besprochen jetzt:

                                    {
                                      "from": "system.adapter.javascript.0",
                                      "user": "system.user.admin",
                                      "ts": 1599924788868,
                                      "common": {
                                        "name": "HeizKeller/Switch_Output/State",
                                        "write": "val ? String(1) : String(0)",
                                        "role": "switch",
                                        "desc": "mqtt server variable",
                                        "type": "boolean",
                                        "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"
                                    }
                                    

                                    Am Ende sieht der Zustand so aus:
                                    fdd2d07e-bdea-4b70-ba5f-8e8d9fcf02bc-grafik.png

                                    Warum der ALIAS auf true und der MQTT DP auf false und nicht auf 0 ist so nicht gewollt.

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

                                      @Pete0815 sagte:

                                      Der ALIAS wie besprochen jetzt:

                                      Es fehlt common.alias.write.

                                          "alias": {
                                            "id": "mqtt.0.HeizKeller.Switch_Output.State",
                                            "write": "val ? String(1) : String(0)"
                                          }
                                      

                                      Zeile 7 muss lauten:

                                          "write": true,
                                      

                                      Im Blockly schaltest Du den Alias-DP ?

                                      ? 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:

                                        Der ALIAS wie besprochen jetzt:

                                        Es fehlt common.alias.write.

                                            "alias": {
                                              "id": "mqtt.0.HeizKeller.Switch_Output.State",
                                              "write": "val ? String(1) : String(0)"
                                            }
                                        

                                        Achso, falsch verstanden und das write in Zeile 7 modifiziert. den oben Block komplett einfügen.

                                        Zeile 7 muss lauten:

                                            "write": true,
                                        

                                        Mache ich rückgängig.

                                        Im Blockly schaltest Du den Alias-DP ?

                                        Ja, alias.0.HeizKeller.Pumpe.Switch_Output

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

                                          @paul53
                                          jetzt schaut es gut aus! Erster Test war erfolgreich! Danke 👍 😊

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          411
                                          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