Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Shelly über VIS schalten

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Shelly über VIS schalten

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

      @reiti sagte: Jemand eine Idee?

      Verwende einen Alias, in dem die getrennten Datenpunkte für Status und Kommando zusammen geführt werden.

      R 1 Reply Last reply Reply Quote 1
      • R
        ReiTi @paul53 last edited by

        @paul53 Danke für den Hinweis. Das funktioniert jetzt.
        Ich habe das über einen Alias gelöst mit diesen Einstellungen:
        62775e32-f5b7-448d-bd20-239bc6be69d4-image.png
        3e1b834c-fed5-4a2b-b976-16ea14b6da98-image.png
        Dann musste ich noch in der MQTT Instanz den Haken bei "Nur bei Änderungen publizieren" raus nehmen und jetzt flutscht das.
        Super, dankeschön 🙂

        VG Timo

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

          @reiti
          Obwohl der Typ des Alias "string" ist, wird eine Schreibkonvertierung gemacht, die man eigentlich mit dem Typ "boolean" macht. Dann sollte auch eine Lesekonvertierung gemacht werden (passiert wohl auch automatisch).

          val == 'on'
          
          R 1 Reply Last reply Reply Quote 0
          • R
            ReiTi @paul53 last edited by

            @paul53
            hab den Alias auf boolean umgestellt und die Lesekonvertierung eingestellt. Läuft 😉

            1 Reply Last reply Reply Quote 0
            • W
              woupi last edited by woupi

              Ich hänge gerade an dem gleichen Problem mit einem Shelly und habe versuch diesem Thema zu folgen.

              Ich habe noch nie mit einem Alias gearbeitet und finde auch die Bilder:

              @reiti sagte in [gelöst] Shelly über VIS schalten:

              62775e32-f5b7-448d-bd20-239bc6be69d4-image.png
              3e1b834c-fed5-4a2b-b976-16ea14b6da98-image.png

              nicht.

              Wäre nett wenn mir das mal einer erklären kann.

              Danke und VG

              PS:
              Ich bin ein bisschen weiter gekommen. Ich habe einen Datenpunkt unter alias.0 angelegt und mit dem Stift dann unter Alias folgendes eingegeben:
              2f364113-250e-4ccb-bf00-b7779828a53f-image.png

              Wenn ich nichts falsch gesehen habe, sollte es jetzt genauso aussehen wie von reiti angegeben.

              Wenn ich nun in der VIS den Schalter betätige steht entweder eine 1 statt on oder eine 0 statt off im Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0".
              Als Widget benutze ich bulb on/off.
              Es ist dabei egal ob ich als Datenpunkt des Shelly "mqtt.0.shellies.shelly1-349454734A8E.relay.0" oder den Alias Datenpunkt im Widget angegeben habe.

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

                @woupi sagte: Datenpunkt unter alias.0 angelegt

                Mit Typ "Logikwert"("boolean") und Rolle "switch"?

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

                  @paul53
                  Ich habe irgendwo im Netzt eine Anleitung gefunden, in der geschrieben stand, dass ein Datenpunkt unter Alias.0 angelegt werden sollt. Mehr stand da leider nicht und mehr habe ich leider nicht gefunden.
                  Also habe ich mich an das Bild gehalten Role: State und type: String.

                  {
                    "common": {
                      "name": "AliasShelly1BadHK2",
                      "desc": "Manuell erzeugt",
                      "role": "state",
                      "type": "string",
                      "read": true,
                      "write": true,
                      "def": "",
                      "alias": {
                        "id": {
                          "read": "mqtt.0.shellies.shelly1-349454734A8E.relay.0",
                          "write": "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command"
                        },
                        "write": "val ? \"on\" : \"off\""
                      }
                    },
                    "type": "state",
                    "native": {},
                    "_id": "alias.0.AliasShelly1BadHK2",
                    "acl": {
                      "object": 1636,
                      "state": 1636,
                      "owner": "system.user.admin",
                      "ownerGroup": "system.group.administrator"
                    },
                    "from": "system.adapter.admin.0",
                    "user": "system.user.admin",
                    "ts": 1707120906572
                  }
                  
                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @woupi last edited by

                    @woupi sagte: Role: State und type: String.

                    Ändere es in "type": "boolean" und "role": "switch".

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

                      @paul53

                      Vielen Dank erstmal noch für deine Hilfe

                      Ich habe es geändert:

                      {
                        "common": {
                          "name": "AliasShelly1BadHK2",
                          "desc": "Manuell erzeugt",
                          "role": "switch",
                          "type": "boolean",
                          "read": true,
                          "write": true,
                          "def": "",
                          "alias": {
                            "id": {
                              "read": "mqtt.0.shellies.shelly1-349454734A8E.relay.0",
                              "write": "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command"
                            },
                            "write": "val ? \"on\" : \"off\""
                          }
                        },
                        "type": "state",
                        "native": {},
                        "_id": "alias.0.AliasShelly1BadHK2",
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        },
                        "from": "system.adapter.admin.0",
                        "user": "system.user.admin",
                        "ts": 1707128700138
                      }
                      

                      Hat aber leider keine Auswirkung.
                      Der Datenpunkt

                      {
                        "_id": "mqtt.0.shellies.shelly1-349454734A8E.relay.0",
                        "common": {
                          "name": "shellies/shelly1-349454734A8E/relay/0",
                          "write": true,
                          "read": true,
                          "role": "variable",
                          "desc": "mqtt server variable",
                          "type": "string"
                        },
                        "native": {
                          "topic": "shellies/shelly1-349454734A8E/relay/0"
                        },
                        "type": "state",
                        "from": "system.adapter.mqtt.0",
                        "user": "system.user.admin",
                        "ts": 1682257439875,
                        "acl": {
                          "object": 1636,
                          "state": 1636,
                          "owner": "system.user.admin",
                          "ownerGroup": "system.group.administrator"
                        }
                      }
                      

                      bekommt beim einschalten eine 1 und beim ausschalten eine 0 und nicht on bzw off.

                      Wenn ich den Shelly selbst betätige ändert sich dieser Datenpunkt auf on bzw off.

                      Ich habe es auch wieder mit beiden Datenpunkten im widget versucht. Das Ergebnis bleibt 1 bzw 0. Hier mal noch das widget:
                      70c35dd1-ca09-4423-95db-a30895f87e27-image.png

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

                        @woupi sagte: Ich habe es geändert:

                        Ändere noch "def": false, damit der js-controller nicht meckert.

                        @woupi sagte in [gelöst] Shelly über VIS schalten:

                        Hat aber leider keine Auswirkung.

                        Geschrieben wird auf "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command".

                        @woupi sagte in [gelöst] Shelly über VIS schalten:

                        bekommt beim einschalten eine 1 und beim ausschalten eine 0 und nicht on bzw off.
                        Wenn ich den Shelly selbst betätige ändert sich dieser Datenpunkt auf on bzw off.

                        Der Status-Datenpunkt liefert unterschiedliche Werte?

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

                          @paul53

                          def habe ich noch geändert.

                          Der Status-Datenpunkt liefert unterschiedliche Werte?

                          So sehen die beiden Datenpunkte jetzt aus:
                          f29ebf4d-5302-4511-b050-3a493ee5ebdb-image.png

                          Und so wenn ich eingeschaltet habe:
                          3f942c3f-2457-40e7-89d5-4a790d43f368-image.png

                          Und so wenn ich ausgeschaltet habe:
                          f0049888-fc4c-4699-9cd5-36a29d635e57-image.png

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

                            @woupi
                            Wie kommt false in "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command"? Ist der DP vom Typ "string"?

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

                              @paul53
                              Ja.
                              Der wurde von shelly so angelegt.
                              Ich habe noch einen 2. Shelly 1 und habe da mal nachgesehen. Da ist der Datenpunkt mqtt.0.shellies.shelly1pm-34945472C493.relay.0.command ebenfalls vom "type": "string"

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

                                @woupi sagte: ebenfalls vom "type": "string"

                                Dann wundert es mich erst recht, wie false in den DP gelangen kann. Die Schreibkonvertierung ändert doch den Alias-Wert in "off" / "on".
                                Ändere mal die Schreibkonvertierung mit Hochkommata:

                                      "write": "val ? 'on' : 'off'"
                                

                                Bei mir funktioniert diese Konvertierung:

                                {
                                  "common": {
                                    "name": "Ventilator ein",
                                    "desc": "Manuell erzeugt",
                                    "role": "switch",
                                    "type": "boolean",
                                    "read": true,
                                    "write": true,
                                    "def": false,
                                    "alias": {
                                      "id": {
                                        "read": "mqtt.0.shellies.Ventilator.relay.0",
                                        "write": "mqtt.0.shellies.Ventilator.relay.0.command"
                                      },
                                      "write": "val ? 'on' : 'off'"
                                    }
                                  },
                                  "type": "state",
                                  "native": {},
                                  "_id": "alias.0.Ventilator.ein",
                                

                                Ich habe aber keine Shellys.

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

                                  @paul53 sagte in [gelöst] Shelly über VIS schalten:

                                  "write": "val ? 'on' : 'off'"

                                  Ich habe mir nochmal die Datenpunkte angesehen und was mit denen passiert, wenn ich den Shelly selber schalte.
                                  Der Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command" ädert sich überhaupt nicht.
                                  Der Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0" ändert sich von on zu off und umgekehrt.

                                  Daraus würde ich eigentlich schließen und so hatte ich es mir auch vorher gedacht, dass die widget Objekt ID auf den Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0" eingestellt werden muss..

                                  Einen Alias bräuchte ich so eigentlich nicht, oder?

                                  Da das so allerdings nicht funktioniert und auch noch nicht funktioniert hat habe ich angefangen zu suchen und bin auf dieses Thema gestoßen.

                                  Das erstmal zu dem Hintergrund.

                                  Jetzt habe ich alles nochmal auf null zurück gedreht.

                                  So wie bei dem anderen Shell steht jetzt im Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0" on oder off.

                                  Und im Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command" steht (null.)
                                  Schalte ich über den Shelly ändert sich nur "mqtt.0.shellies.shelly1-349454734A8E.relay.0" auf on bzw off.

                                  Im Widget habe ich als Objekt ID "mqtt.0.shellies.shelly1-349454734A8E.relay.0" ausgewählt.
                                  Schalte ich über das Widget wird kurz 1 oder 0 angezeigt. Kurz drauf steht einfach wieder der alte Wert, also entweder on oder off, drin.

                                  Muss ich jetzt über einen Alias den Wert umwandeln. Also von 1 zu on und von 0 zu off, oder müsste das im widget automatisch gehen, oder muss ich das irgend wo einstellen.

                                  Sorry, wahrscheinlich mache ich einfach irgend etwas falsch, ich weiß nur nicht was.

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

                                    @woupi sagte: im Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command" steht (null.)

                                    Wenn im Admin on bzw. off (unbestätigt) eingegeben wird, schaltet dann der Shelly und antwortet im Status-DP mit on bzw. off (bestätigt)?
                                    Wenn ja, dann verwende für Vis und Skripte ausschließlich den Alias vom Typ "boolean".

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

                                      @paul53
                                      Jetzt wird es für mich noch schwieriger zu verstehen:
                                      Ändern des Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0" von off zu on oder on zu off, sorgt nicht dafür das der shelly ein oder aus geschaltet wird.

                                      Wenn ich das gleiche aber im Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command" mache, schaltet der Shelly.

                                      Also muss der Alias erstellt werden.
                                      Aber wie, wo lese ich und welcher Typ, auch boolean, welche role, auch switch?
                                      Schreiben ist klar, muss ich auf "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command" mit "write": "val ? 'on' : 'off'", oder?

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

                                        @woupi sagte: Ändern des Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0" von off zu on oder on zu off, sorgt nicht dafür das der shelly ein oder aus geschaltet wird.

                                        Das ist ja auch die Rückmeldung des Shelly.

                                        @woupi sagte in [gelöst] Shelly über VIS schalten:

                                        Wenn ich das gleiche aber im Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command" mache, schaltet der Shelly.

                                        Dann ist der Alias so richtig, wie hier gezeigt.

                                        {
                                          "common": {
                                            "name": "AliasShelly1BadHK2",
                                            "desc": "Manuell erzeugt",
                                            "role": "switch",
                                            "type": "boolean",
                                            "read": true,
                                            "write": true,
                                            "def": false,
                                            "alias": {
                                              "id": {
                                                "read": "mqtt.0.shellies.shelly1-349454734A8E.relay.0",
                                                "write": "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command"
                                              },
                                              "write": "val ? 'on' : 'off'"
                                            }
                                          },
                                          "type": "state",
                                        

                                        In Vis nur den Alias verwenden!

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

                                          @paul53

                                          Widget zeigt auf den Alias:
                                          950eb413-d7d0-42d7-8d3e-195bed1273ff-image.png

                                          Alias erstellt:

                                          {
                                            "common": {
                                              "name": "AliasShelly1BadHK2",
                                              "desc": "Manuell erzeugt",
                                              "role": "switch",
                                              "type": "boolean",
                                              "read": true,
                                              "write": true,
                                              "def": false,
                                              "alias": {
                                                "id": {
                                                  "read": "mqtt.0.shellies.shelly1-349454734A8E.relay.0",
                                                  "write": "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command"
                                                },
                                                "write": "val ? 'on' : 'off'"
                                              }
                                            },
                                            "type": "state",
                                            "native": {},
                                            "_id": "alias.0.AliasShelly1BadHK2",
                                            "acl": {
                                              "object": 1636,
                                              "state": 1636,
                                              "owner": "system.user.admin",
                                              "ownerGroup": "system.group.administrator"
                                            },
                                            "from": "system.adapter.admin.0",
                                            "user": "system.user.admin",
                                            "ts": 1707141785818
                                          }
                                          

                                          Leider kein Unterschied:
                                          Im Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0" wird 1 oder 0 geschrieben und nicht on oder off.

                                          Im Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command" passiert nichts.

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

                                            @woupi sagte: Im Datenpunkt "mqtt.0.shellies.shelly1-349454734A8E.relay.0.command" passiert nichts.

                                            Verstehe ich nicht. Trage mal im Widget bei "Min" false und bei "Max" true ein.

                                            W 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

                                            789
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            36
                                            1714
                                            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