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 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
                                        • W
                                          woupi @paul53 last edited by

                                          @paul53

                                          Verstehe ich nicht.

                                          Ich leider schon lange nicht mehr.

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

                                          Habe ich gemacht:

                                          59c71470-d1c3-4986-ba27-d8e208753dcf-image.png

                                          Leider das gleiche Ergebnis:

                                          ab808832-cb49-4d0b-bdee-0be28f834159-image.png

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

                                            @woupi sagte: Leider das gleiche Ergebnis:

                                            Es muss ein Skript geben, das die 1 unbestätigt in den Datenpunkt schreibt?
                                            Ich habe es mit dem Widget (ohne Min, Max) und einer Emulation

                                            const idCommand = 'mqtt.0.shellies.Ventilator.relay.0.command';
                                            const idStatus = 'mqtt.0.shellies.Ventilator.relay.0';
                                            
                                            on(idCommand, function(dp) {
                                                setTimeout(function() {
                                                    setState(idStatus, dp.state.val, true);
                                                }, 50)
                                            });
                                            

                                            des Shelly getestet: Es funktioniert wie es soll.

                                            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

                                            790
                                            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