Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Alle Shelly aus

    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

    Alle Shelly aus

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

      @dr-pie sagte: Das sieht dann so aus:

      idButton hat keine gültige ID. Die IDs der Shellys sind sicher nicht die Datenpunkte-IDs, über die man die Shellys schaltet.
      Beispiel für eine gültige ID:

      const idButton = '0_userdata.0.shellys.Gute_Nacht'; // Datenpunkt vom Typ "boolean", Rolle: "button"
      
      1 Reply Last reply Reply Quote 0
      • D
        DaniStrie last edited by

        Vermutlich tust du dir leichter, wenn du über Blockly arbeitest. Das hat mir wesentlich geholfen. Ich hatte keine Kenntnisse über Java.

        Reihenfolge:
        Einen Datenpunkt anlegen mit bspw. Shelly aus. Hier ein Tipp: Vermutlich werden noch viele weiter Datenpunkte hinzu kommen. Da macht eine gewisse Struktur Sinn.

        Im nächsten Schritt erstellst du mit Blockly ein Skript. Nähere Infos wie das funktioniert entnimmst du am besten über Erklärvideos auf YouTube o.ä.

        Und im letzten Schritt setzt du einen Butten in deiner VIS, mit der du dann entsprechend auf den Datenpunkt zurückgreifst, der dann wiederum das Skript auslöst.

        Viel Erfolg.

        Grüße

        Dr.Pie 1 Reply Last reply Reply Quote 0
        • Dr.Pie
          Dr.Pie @DaniStrie last edited by

          Moin

          das mit dem Script von @paul53 hab ich so nicht hinbekommen.

          Ich hatte mir dann überlegt, wie du ja schon empfohlen hast, es mit Blockly zu versuchen.
          Bei YouTube kann man sich da ja unendlich viele Videos reinziehen.

          Aber es scheitert bei mir an 2 Dingen.

          1: Alle Videos die ich mir angeschaut habe sind mit einer ioBroker Version gemacht worden die ich gar nicht kenne und somit die Schritte nicht nachvollziehen kann.
          2: Es wird immer erzählt von "Datenpunkte erstellen" ... aber meine Shellys haben diese doch schon angelegt ... oder täusche ich mich da ?
          datenpunkte.png

          Unter Objekte sind doch alle Punkte da, oder muss man diese noch extra erstellen ?

          Danke

          mickym crunchip 2 Replies Last reply Reply Quote 0
          • mickym
            mickym Most Active @Dr.Pie last edited by mickym

            gelöscht

            Dr.Pie 1 Reply Last reply Reply Quote 0
            • Dr.Pie
              Dr.Pie @mickym last edited by

              @mickym

              ich habe mit Blockly folgendes Script erstellt:

              on({id: "shelly.0.SHCB-1#483FDA927EEC#1.id"/*id*/, val: true}, async function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
              });
              getState("shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch", function (err, state) {
                  setState("shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch"/*Switch*/, state ? !state.val : true);
              });
              

              Wenn Shelly ID shelly.0.SHCB-1#483FDA927EEC#1.id true ist dann schalte shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch

              So soll das ?

              mickym 1 Reply Last reply Reply Quote 0
              • crunchip
                crunchip Forum Testing Most Active @Dr.Pie last edited by

                @dr-pie du kannst natürlich die original Datenpunkte deiner shelly's verwenden, zukünftig angelegte Alias für deine originalen Geräte, erleichtern dir jedoch das Arbeiten, wenn z.b. ein Gerät getauschtwerden muss/kaputt geht.

                Für deine virtuellen Schalter musst du natürlich Datenpunkte (userdata) anlegen

                1 Reply Last reply Reply Quote 0
                • mickym
                  mickym Most Active @Dr.Pie last edited by mickym

                  @dr-pie Ich verstehe Deinen Code irgend wie nicht.

                  Bei dem Trigger speicherst Du nur den aktuellen und den vorangeganenen Wert in einer Variablen und dann liest Du den Zustand des Shellies aus und schaltest dann???
                  Der Zustand interessiert Dich doch gar nicht, also stellst Du doch mmer auf false!

                  Triggern darf nur Dein Gute Nacht Button - und dann schaltest Du doch immer aus. Sprich ist egal wie der jetzige Zustand ist.

                  Du musst es meines Erachtens wie in dem Skript vom Paul machen.

                  In dem Skript unten ist doch schon alles drin. Nur in Deinem

                  const idButton = 'Gute Nacht'; 
                  
                  
                  

                  darf nicht Gute Nacht stehen, sondern natürlich der Datenpunkt mit dem Du dann im VIS oder wo auch immer den Gute Nacht Button steuern willst.

                  Also nehmen wir mal an Du hast einen GuteNacht Datenpunkt unter 0_userdata.0 erstellt, dann ist der Pfad zu diesem Datenpunkt 0_userdata.0.GuteNacht

                  Wenn Du mit shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch = false das Licht/Shelly ausschaltest, dann brauchst das Skript von paul doch nur so anzupassen:

                  const idButton = '0_userdata.0.GuteNacht'; 
                   
                  const idsShelly = [
                   
                      'shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch'
                   
                  ];
                   
                   
                   
                  on({id: idButton, val: true}, function() {
                   
                      for(let i = 0; i < idsShelly.length; i++) {
                   
                          let id = idsShelly[i];
                   
                          if(getState(id).val) setState(id, false);
                   
                      }
                   
                  });
                  
                  

                  Für mehrere Shellies, musst Du nur noch die ganzen IDs für den Switch in das Array idsShelly anpassen.

                  Mit Blockly könnte das dann auch so aussehen:

                  e942bd84-1726-41b0-a729-534fc9716ec7-image.png

                  und mit Objekt ID müsstest Du dann Deine Schalter angeben also: shelly.0.SHCB-1#483FDA927EEC#1.lights.Switch

                  1 Reply Last reply Reply Quote 0
                  • C
                    Cino last edited by

                    So sieht es bei mir aus.

                    bbe4f1f8-b0ed-4ea6-83ca-d05b16a1bfd9-image.png

                    <block xmlns="https://developers.google.com/blockly/xml" type="on" id="MH2!xLg#VfJ!|X.)#i9W" x="37" y="-12">
                      <field name="OID">zigbee.0.b4e3f9fffe6811c2.on</field>
                      <field name="CONDITION">true</field>
                      <field name="ACK_CONDITION"></field>
                      <statement name="STATEMENT">
                        <block type="control" id="aiwu?j=PTT1-aEg]g%XG">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">shelly.0.SHSW-1#111A32#1.Relay0.Switch</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="logic_boolean" id="~d;NSOaBCzk|ty^X[83~">
                              <field name="BOOL">FALSE</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id="In?69YUu^,oL6uNbqV0b">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">shelly.0.SHSW-1#117741#1.Relay0.Switch</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="5]@QkDORSD?g0vZN(O7I">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                              <next>
                                <block type="control" id="`fI@MCtQ#a#rNPTY}oFP">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">shelly.0.SHSW-1#117414#1.Relay0.Switch</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id="l[SSXO[bV337,acgaV@L">
                                      <field name="BOOL">FALSE</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="O_5+A^lIa4G9M).9|2#U">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                      <field name="OID">shelly.0.SHSW-25#10B819#1.Relay0.Switch</field>
                                      <field name="WITH_DELAY">FALSE</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="x7pI{X-*}edB[F[6aJ/+">
                                          <field name="BOOL">FALSE</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="control" id="4ZQ[FoaK#k}jf$O$jxJc">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                          <field name="OID">shelly.0.SHSW-25#10B819#1.Relay1.Switch</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE">
                                            <block type="logic_boolean" id="Nm2Q2])kgT#l[bnxq03g">
                                              <field name="BOOL">FALSE</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="control" id="RcuL%SyZ)@8}7hu(YQa-">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                              <field name="OID">shelly.0.SHSW-1#117A0A#1.Relay0.Switch</field>
                                              <field name="WITH_DELAY">FALSE</field>
                                              <value name="VALUE">
                                                <block type="logic_boolean" id=":YXiTgtN[$CcZoRl+$TL">
                                                  <field name="BOOL">FALSE</field>
                                                </block>
                                              </value>
                                              <next>
                                                <block type="control" id="+9FCExW$Gy.EGLQn]HPX">
                                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                  <field name="OID">shelly.0.SHSW-1#115FC1#1.Relay0.Switch</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE">
                                                    <block type="logic_boolean" id="ga-xtVePiY;^Dj;EskzK">
                                                      <field name="BOOL">FALSE</field>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="control" id="%DteQ]A_,|rQ{~)q!V6W">
                                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                      <field name="OID">shelly.0.SHSW-25#F408D5#1.Relay0.Switch</field>
                                                      <field name="WITH_DELAY">FALSE</field>
                                                      <value name="VALUE">
                                                        <block type="logic_boolean" id="T`W9Lx0Fm@]-1dNTf,G2">
                                                          <field name="BOOL">FALSE</field>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="control" id="l]0G85O|b:e$66I3K|y=">
                                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                                          <field name="OID">shelly.0.SHSW-25#F408D5#1.Relay1.Switch</field>
                                                          <field name="WITH_DELAY">FALSE</field>
                                                          <value name="VALUE">
                                                            <block type="logic_boolean" id="`+Ty$CMm]@J$$iM$|]j/">
                                                              <field name="BOOL">FALSE</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </next>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </statement>
                    </block>
                    
                    Dr.Pie 1 Reply Last reply Reply Quote 0
                    • Dr.Pie
                      Dr.Pie @Cino last edited by

                      Also muss ich erst mit den Datenpunkten beginnen ?

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Dr.Pie last edited by

                        @dr-pie Du legst nur einen Datenpunkt an - GuteNacht - hab Dir unten das Blockly gepostet:

                        screen.png

                        und schaltest mit diesem alle Deine Switch Datenpunkte - siehe Blockly unten - oder auch das JS Code

                        Dr.Pie 1 Reply Last reply Reply Quote 0
                        • Dr.Pie
                          Dr.Pie @mickym last edited by

                          @mickym ok ...
                          Lege ich den an werde ich nach dem Zustandstyp gefragt.
                          Automatisch steht da string drin ... das scheint wohl falsch zu sein ...

                          mickym 1 Reply Last reply Reply Quote 0
                          • mickym
                            mickym Most Active @Dr.Pie last edited by

                            @dr-pie 2ef6feee-adac-4ac9-95f0-0fa292ed16df-image.png

                            Du nimmst ein Boolean als Datentyp

                            Dr.Pie 1 Reply Last reply Reply Quote 0
                            • Dr.Pie
                              Dr.Pie @mickym last edited by

                              @mickym Ihr seid hier echt der Hammer.

                              Es funktioniert so wie es soll 👍👍👍👍👍
                              1000 Dank dafür 😀😀😀

                              Nun muss ich nur noch den richtigen Button finden ... quasi einen Taster.

                              Grüße

                              mickym 1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active @Dr.Pie last edited by

                                @dr-pie In dem Fall brauchst nicht wirklich einen Taster sondern ein Button reicht:

                                e000db0f-165f-4b03-b1aa-c11c051d411b-image.png

                                70c6e1bc-2532-443e-a779-fcfce36afa81-image.png

                                Ein Drücken aktualisiert den Datenpunkt mit true und triggert damit Dein Skript

                                Dr.Pie 1 Reply Last reply Reply Quote 0
                                • Dr.Pie
                                  Dr.Pie @mickym last edited by

                                  @mickym Ich habe da ja meine eigenen Button ... aus lcars 😉

                                  Dr.Pie 1 Reply Last reply Reply Quote 0
                                  • Dr.Pie
                                    Dr.Pie @Dr.Pie last edited by

                                    Moin...

                                    da isser wieder 👍

                                    Dieser "Gute Nacht" Button klappt sehr sehr gut.

                                    Aaaaber ....
                                    Ich habe in meiner VIS einen Button:
                                    harmony.0.HarmonyHub.activities.Fernsehen
                                    Mit diesem Button schalte ich TV, AV-Receiver und Sky-Box aus.
                                    Will ich nun das auch in den "Gute Nacht" Button integrieren funktioniert das nicht.

                                    Java sieht so aus:
                                    setState("harmony.0.HarmonyHub.activities.Fernsehen"/activity:Fernsehen/, false);

                                    Aber der die Geräte schalten nicht ab.
                                    Über den Button in der VIS gehts dann problemlos.

                                    Wo hängt es denn nun wieder ... kopfkratz ...

                                    Danke

                                    mickym 1 Reply Last reply Reply Quote 0
                                    • mickym
                                      mickym Most Active @Dr.Pie last edited by

                                      @dr-pie Activities ausschalten mit 0 und nicht false. Einschalten einer Activity ist größer 0.

                                      Liest man unter Adaüterbeschreibung:
                                      556b1e37-2d42-4194-b73e-c2810e23ffc4-image.png

                                      Dr.Pie 1 Reply Last reply Reply Quote 0
                                      • Dr.Pie
                                        Dr.Pie @mickym last edited by

                                        @mickym Wie ändert man den Wert von false in 0 ?
                                        gutenacht.png

                                        mickym Dr.Pie 2 Replies Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @Dr.Pie last edited by mickym

                                          @dr-pie Ich bin zwar kein Blockly Spezialist, aber ich würde einfach die 0 aus dem Mathematik Block nehmen

                                          38bcde6e-89c5-41d8-9c39-e54436321211-image.png

                                          8ddcdcff-8211-463f-ad53-dda72f371650-image.png

                                          1 Reply Last reply Reply Quote 0
                                          • Dr.Pie
                                            Dr.Pie @Dr.Pie last edited by

                                            Und warum bin ich jetzt nicht selber darauf gekommen ??
                                            Ich wusste nicht das man den "Wahr-Falsch" block einfach so ersetzen kann 😊

                                            1000 Dank Dir .👍 👍 👍

                                            machs-smart.de 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            593
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            10
                                            34
                                            1705
                                            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