Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Fragen / Antworten rund um die neue Alias Funktion

    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

    Fragen / Antworten rund um die neue Alias Funktion

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @McBeath last edited by

      @mcbeath sagte: Ist das etwas überhaupt möglich?

      Nein, man kann in einem Alias nur einen Datenpunkt auswerten. Für alles andere benötigt man ein Skript.

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

        @paul53 said in Fragen / Antworten rund um die neue Alias Funktion:

        @mcbeath sagte: Ist das etwas überhaupt möglich?

        Nein, man kann in einem Alias nur einen Datenpunkt auswerten. Für alles andere benötigt man ein Skript.

        Danke @paul53, das war zwar nicht die Antwort, die ich erhofft aber erwartet hatte.😉

        1 Reply Last reply Reply Quote 0
        • UweRLP
          UweRLP @McBeath last edited by

          @mcbeath sagte in Fragen / Antworten rund um die neue Alias Funktion:

          Konverter beim Lesen
          "0_userdata.0.Datenpunkt.Laden" == "Laden PV" ? val : 0

          Aus 0_userdata.0.Datenpunkt.Laden einen Alias erstellen, dass sollte gehen.
          Im Alias dann val == "Laden PV"

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

            @uwerlp sagte in Fragen / Antworten rund um die neue Alias Funktion:

            @mcbeath sagte in Fragen / Antworten rund um die neue Alias Funktion:

            Konverter beim Lesen
            "0_userdata.0.Datenpunkt.Laden" == "Laden PV" ? val : 0

            Aus 0_userdata.0.Datenpunkt.Laden einen Alias erstellen, dass sollte gehen.
            Im Alias dann val == "Laden PV"

            Sorry ist so unvollständig

            Alias Read-Function val == "Laden PV"
            Gibt dann TRUE / WAHR zurück

            Alias Write-Function val == true ? "Laden PV" : "Nicht Laden"
            Wird der Alias auf TRUE gesetzt wird USERDATA auf "Laden PV" gesetzt wenn Alias auf FALSE dann wird USERDATA auf "Nicht Laden" gesetzt.

            Ich hoffe so ist nun vollständig und verständlich 😊

            M 1 Reply Last reply Reply Quote 0
            • M
              McBeath @UweRLP last edited by McBeath

              @uwerlp said in Fragen / Antworten rund um die neue Alias Funktion:

              @uwerlp sagte in Fragen / Antworten rund um die neue Alias Funktion:

              @mcbeath sagte in Fragen / Antworten rund um die neue Alias Funktion:

              Konverter beim Lesen
              "0_userdata.0.Datenpunkt.Laden" == "Laden PV" ? val : 0

              Aus 0_userdata.0.Datenpunkt.Laden einen Alias erstellen, dass sollte gehen.
              Im Alias dann val == "Laden PV"

              Sorry ist so unvollständig

              Alias Read-Function val == "Laden PV"
              Gibt dann TRUE / WAHR zurück

              Alias Write-Function val == true ? "Laden PV" : "Nicht Laden"
              Wird der Alias auf TRUE gesetzt wird USERDATA auf "Laden PV" gesetzt wenn Alias auf FALSE dann wird USERDATA auf "Nicht Laden" gesetzt.

              Ich hoffe so ist nun vollständig und verständlich 😊

              @UweRLP
              Danke für deine Unterstützung, aber das war nicht ganz das, worum es ging.
              Der Alias des DP "Ladeleistung" val z.b. 3000W sollte in Abhängigkeit von "0_userdata.0.Datenpunkt.Laden" ,welcher den Wert "Laden PV" oder "Entladen" enthält, den alias mal mit "val" oder mit "0" befüllen.
              Das hätte dann aus 3000W - Laden PV auf 2 untersiedljche Alias

              1. Laden = 3000W
              2. Entladen = 0W

              Und aus 3000W - Entladen

              1. Laden = 0W
              2. Entladen = 3000W
                Gezaubert.

              Ich hoffe mein Vorhaben ist verständlich. 😲

              UweRLP 1 Reply Last reply Reply Quote 0
              • UweRLP
                UweRLP @McBeath last edited by

                @McBeath
                "Ist 0_userdata.0.Datenpunkt.Laden = Laden PV dann Ladeleistung = 3000W"
                "Ist 0_userdata.0.Datenpunkt.Laden = Entladen dann Ladeleistung = 0W"

                So habe ich das jetzt verstanden, würde ich mit einem Blockly/Script lösen.

                M 1 Reply Last reply Reply Quote 0
                • M
                  McBeath @UweRLP last edited by

                  @uwerlp
                  Genau so habe ich es jetzt auch gelöst. 👍 😊

                  F 1 Reply Last reply Reply Quote 0
                  • F
                    fredje @McBeath last edited by

                    Hallo, habe einen DP der true und false ausgibt. Kann ich durch anlegen eines alias erreichen das für true 1 und für false 0 im alias ausgegeben wird. Wenn ja, wie .. Danke

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

                      @fredje sagte: für true 1 und für false 0 im alias ausgegeben wird. Wenn ja, wie .. Danke

                      Beim Lesen?

                      val ? 1 : 0
                      
                      F 1 Reply Last reply Reply Quote 1
                      • F
                        fredje @paul53 last edited by

                        @paul53 .. danke .. funktioniert

                        M 1 Reply Last reply Reply Quote 0
                        • M
                          McBeath @fredje last edited by McBeath

                          Ich hätte hier noch mal eine kurze Frage.

                          Habe einen Datenpunkt mit den Werten 0, 1, 2, 3.
                          Möchte aber nur jeweils 0 und 1 bzw 2 und 3 auswerten.
                          Habe auf diesen Datenpunkt mal zwei Alias angelegt
                          Und mit der konvertierfunktion folgendes eingetragen

                          Alias1
                          Lesen val == 0 ? 1 : val == 1 ? 0 : val
                          Scheiben val == 1 ? 0 : val == 0 ? 1 : val

                          Alias2
                          Lesen val == 3 ? 0 : val == 2 ? 1 : val
                          Schreiben val == 0 ? 3 : val == 1 ? 2 : val

                          Jetzt müsste ich nur noch wissen wie ich bei Alias1 die Werte 2 und 3
                          bzw. bei Alias2 die Werte 1 und 0 ignorieren kann?

                          Der DP steuert einen Aktor 0 = Ch1 on, 1 = Ch1 off, 2 = Ch2 on, 3 = Ch2 off

                          Wäre toll wenn das möglich wäre 😲

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

                            @mcbeath sagte: Werte 1 und 0 ignorieren kann?

                            Das ist nicht möglich. Dafür benötigt man ein Skript.

                            1 Reply Last reply Reply Quote 0
                            • M
                              McBeath @McBeath last edited by

                              @mcbeath sagte in Fragen / Antworten rund um die neue Alias Funktion:

                              Ich hätte hier noch mal eine kurze Frage.

                              Habe einen Datenpunkt mit den Werten 0, 1, 2, 3.
                              Möchte aber nur jeweils 0 und 1 bzw 2 und 3 auswerten.
                              Habe auf diesen Datenpunkt mal zwei Alias angelegt
                              Und mit der konvertierfunktion folgendes eingetragen

                              Alias1
                              Lesen val == 0 ? 1 : val == 1 ? 0 : val
                              Scheiben val == 1 ? 0 : val == 0 ? 1 : val

                              Alias2
                              Lesen val == 3 ? 0 : val == 2 ? 1 : val
                              Schreiben val == 0 ? 3 : val == 1 ? 2 : val

                              Jetzt müsste ich nur noch wissen wie ich bei Alias1 die Werte 2 und 3
                              bzw. bei Alias2 die Werte 1 und 0 ignorieren kann?

                              Der DP steuert einen Aktor 0 = Ch1 on, 1 = Ch1 off, 2 = Ch2 on, 3 = Ch2 off

                              Wäre toll wenn das möglich wäre 😲

                              Und es funktioniert doch!
                              Alias1 lesen:
                              val == 0 ? 1 : val == 1 ? 0 : val = nothing
                              Alias1 scheiben:
                              val == 0 ? 1 : val == 1 ? 0 : val = nothing

                              Alias2 lesen:
                              val == 2 ? 1 : val == 3 ? 0 : val = nothing
                              Alias2 schreiben:
                              val == 0 ? 3 : val == 1 ? 2 : val = nothing

                              So übergibt Alias 1 nur bei Eingabe von 0 oder 1 den Wert 1 bzw. 0.
                              Und der Alias 2 nur bei Eingabe von 0 oder 1 den Wert 3 bzw. 2.

                              Man soll nicht zu früh aufgeben 😁

                              M 1 Reply Last reply Reply Quote 0
                              • M
                                McBeath @McBeath last edited by

                                @mcbeath
                                Allerdings erhält man dann Fehler in den logs ... 😠
                                Funktioniert aber trotzdem 🙄

                                Garfonso 1 Reply Last reply Reply Quote 0
                                • Garfonso
                                  Garfonso Developer @McBeath last edited by

                                  @mcbeath
                                  Naja, die Fehler im log sind, weil du einen Teil des Controllers mit deinem Code abschießt. Deshalb schreibt der da auch nix in den Datenpunkt... sei lieber mal froh, dass der js-controller mittlerweile so gut gebaut ist, dass er da nicht komplett abschmiert.

                                  Ich würde empfehlen, du überlegst dir schon einen Wert für "ignorieren", z.B. null.
                                  Dann könntest du es so machen:
                                  val === 0 ? 1 : val === 1 ? 0 : null
                                  null ist in Javascript ein Platzhalter für "nix" und, soweit ich weiß, auch als state.val erlaubt (eigentlich wäre es sauberer den ganzen state auf null zu setzen, aber das geht, AFAIK, mit Alias-read Funktionen nicht). Du müsstest dann nur hoffen bzw. den Maintainer des Adapters / dein Skript anpassen, dass da null ignoriert wird.
                                  Im Grunde ist das ja "nur" ein Problem bei der Anzeige / beim lesen. Beim Schreiben kannst du doch selber dafür sorgen, dass nur 0 / 1 bzw. 2 / 3 reingehen, indem du min/max setzt und selber nicht mit scripts oder so da Unsinn machen 😉 .

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

                                    @garfonso sagte: Wert für "ignorieren", z.B. null

                                    Meckert der js-controller dann nicht den Typ an? Denn "typeof null" liefert "object".

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

                                      @paul53

                                      ich bräuchte hier auch einmal deine Hilfe: Ich habe eine Rollladensteuerung die für open,close,stop genau einen DP hat.

                                      0: open
                                      1: close
                                      2: stop
                                      d158d864-fa14-4cd3-a79d-5dae84f2d583-grafik.png

                                      Ich Alias Manager muss ich diese separat definieren. Hast du eine Idee welche Funktion ich da enstprechend eintragen muss?

                                      val == 2 ? true
                                      

                                      Klappt bei stop leider nicht

                                      Codierknecht 1 Reply Last reply Reply Quote 0
                                      • Codierknecht
                                        Codierknecht Developer Most Active @cdn last edited by Codierknecht

                                        @cdn sagte in Fragen / Antworten rund um die neue Alias Funktion:

                                        val == 2 ? true

                                        Wenn schon, dann musst Du das auch komplett formulieren.

                                        val == 2 ? true : false
                                        

                                        Das Ding heißt "ternärer Operator" und benötigt deshalb auch 3 Operanden.

                                        Geht dann aber auch kürzer:

                                        val == 2
                                        

                                        Liefert true wenn in val eine 2 steht und in allen anderen Fällen false.

                                        1 Reply Last reply Reply Quote 2
                                        • C
                                          cdn last edited by

                                          @codierknecht
                                          Ach so nein ich steuer damit. Also möchte quasi die Aktion STOP, CLOSE, OPEN ausführen.

                                          Im DP steht
                                          STOP (2)
                                          ZZ (0)
                                          FZ (1)

                                          Wobei ZZ auf und ZZ zu ist.
                                          Wobei jetzt der DP auf true gesetzt wird. Was ja nicht funktioniert.

                                          Codierknecht 1 Reply Last reply Reply Quote 0
                                          • Codierknecht
                                            Codierknecht Developer Most Active @cdn last edited by

                                            @cdn
                                            Das heißt, Du willst die 3 DP in einem einzigen zusammenführen?
                                            Das geht nur per Script.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            771
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            alias js-controller
                                            87
                                            615
                                            141784
                                            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