Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. Steuerelement in HTML-Tabelle

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    917

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Steuerelement in HTML-Tabelle

Scheduled Pinned Locked Moved Visualisierung
vis
45 Posts 5 Posters 3.8k Views 9 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • G GiuseppeS

    Anbei der resultierende HTML Code aus den Funktionen.

    Jeder Button spricht die selbe Funktion an, übermittelt aber einen individuellen Wert an die Funktion. Anhand des Wertes kann ich dann später im Objekt, z.B. javascript.0.Timer.AtHomeSimul.clickTarget, erkennen, welcher Button geklickt wurde und kann entsprechende Funktionen ausführen.

    Übertragene Werte wären hier u.a.:
    Schlafz.~1~nr
    Schlafz.~1~time
    Balkon_Li~2~dev
    Balkon_Li~2~nr

    In meinem Hauptskript reagiere ich auf eine Aktualisierung des Objekts (oben fett). Durch Split des übertragenen Strings, kann ich die Zeile meiner Tabelle (Schlafz., Timernummer 1) und die für mich definierte Spalte (hier nr, time, oder dev) erkennen.

    <table style='font-size:1em;width:100%;'>
    	<tbody>
    		<tr>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Schlafz.~1~dev"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">Schlafz.</button>
    			</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:#FF0000; font-size:1em; text-align:left" value="Schlafz.~1~nr"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">1</button>
    			</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Schlafz.~1~nr"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">❌</button>
    			</td>
    			<td></td>
    			<td>B</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Schlafz.~1~time"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">10:00</button>
    			</td>
    			<td>täglich</td>
    			<td>100</td>
    			<td>10:00</td>
    			<td></td>
    			<td></td>
    		</tr>
    		<tr>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Schlafz.~2~dev"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">Schlafz.</button>
    			</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:#FF0000; font-size:1em; text-align:left" value="Schlafz.~2~nr"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">2</button>
    			</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Schlafz.~2~nr"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">❌</button>
    			</td>
    			<td></td>
    			<td>B</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Schlafz.~2~time"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">19:00</button>
    			</td>
    			<td>täglich</td>
    			<td>0</td>
    			<td>19:00</td>
    			<td></td>
    			<td></td>
    		</tr>
    		<tr>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Balkon_Li~1~dev"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">Balkon_Li</button>
    			</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:#FF0000; font-size:1em; text-align:left" value="Balkon_Li~1~nr"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">1</button>
    			</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Balkon_Li~1~nr"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">❌</button>
    			</td>
    			<td></td>
    			<td>C</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Balkon_Li~1~time"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">11:00</button>
    			</td>
    			<td>So</td>
    			<td>100</td>
    			<td>11:00</td>
    			<td></td>
    			<td></td>
    		</tr>
    		<tr>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Balkon_Li~2~dev"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">Balkon_Li</button>
    			</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:#FF0000; font-size:1em; text-align:left" value="Balkon_Li~2~nr"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">2</button>
    			</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Balkon_Li~2~nr"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">❌</button>
    			</td>
    			<td></td>
    			<td>B</td>
    			<td>
    				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Balkon_Li~2~time"onclick="setOnClickAtHomeSimul(this.value)"ondblclick="setOnDblClickAtHomeSimul(this.value)">19:00</button>
    			</td>
    			<td>täglich</td>
    			<td>0</td>
    			<td>19:00</td>
    			<td></td>
    			<td></td>
    		</tr>
    	</body>
    </table>
    <script>
    function setOnClickAtHomeSimul(val) {
    var objID = "javascript.0.Timer.AtHomeSimul.clickTarget";this.servConn._socket.emit('setState', objID, val);
    }
    function setOnDblClickAtHomeSimul(val) {
    var objID = "javascript.0.Timer.AtHomeSimul.dblClickTarget";this.servConn._socket.emit('setState', objID, val);
    }
    </script>
    

    So schaut dann übrigens die Tabelle dazu aus:
    ecc56e3c-09d8-4fa4-b8ad-9d3c240a3a72-image.png

    ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #21

    @GiuseppeS Und wie konfiguriere ich das ? Bzw. was muss ich machen, wenn ich eine Aktion beim Klick auf das Symbol ausführen mag? Danke

    G 2 Replies Last reply
    0
    • ? A Former User

      @GiuseppeS Und wie konfiguriere ich das ? Bzw. was muss ich machen, wenn ich eine Aktion beim Klick auf das Symbol ausführen mag? Danke

      G Offline
      G Offline
      GiuseppeS
      wrote on last edited by
      #22

      @HeinrichB
      Ich erweitere mal deine Tabelle und lade eure wieder hoch. Bin Zug-Pendler und dank des optional gültigen Fahrplans der DB habe ich auch die Zeit...

      1 Reply Last reply
      0
      • ? A Former User

        @GiuseppeS Und wie konfiguriere ich das ? Bzw. was muss ich machen, wenn ich eine Aktion beim Klick auf das Symbol ausführen mag? Danke

        G Offline
        G Offline
        GiuseppeS
        wrote on last edited by GiuseppeS
        #23

        @HeinrichB

        Hier mal deine Tabelle in angepasster Form.

        <table border="1">
          <tr>
            <td class="HeaderFormat" align="center">Gerät</td>      
            <td class="HeaderFormat" align="center"><b>Heute</b></td>
            <td class="HeaderFormat" align="center"><b>Gestern</b></td>    
            <td class="HeaderFormat" align="center"><b>Gesamt</b></td>
            <td>
        				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Geraet" ondblclick="setOnDblClickCustom(this.value)">{Gerät An/Aus Visu}</button>
        	</td>
          </tr>  
          <tr>
            <td class="LineFormat" align="center"><b>SolarHaus</b></td>
            <td class="LineFormat" align="center"><b>{hs100.0.192_168_2_112.totalNow}kWh</b></td>
            <td class="LineFormat" align="center"><b>{0_userdata.0.daily_earning_solar_house}kWh</b></td>
            <td class="LineFormat" align="center"><b>{0_userdata.0.total_earning_solar_house}kWh</b></td>
            <td>
        				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="SolarHaus" ondblclick="setOnDblClickCustom(this.value)">{SolarHaus An/Aus Visu}</button>
        	</td> 
          </tr>
        </table>
        
        <script>
        function setOnDblClickCustom(val) {
        var objID = "0_userdata.0.ZielObjID";
        this.servConn._socket.emit('setState', objID, val);
        }
        </script>
        

        Folgendes müsstest du noch machen:

        • Anpassung der beiden Bindings zum Schluss der neuen Zellen-Einträge. Was in diesen Bindings steht, wird auf dem Button als Text angezeigt.
          {Gerät An/Aus Visu} bzw {SolarHaus An/Aus Visu}

        • Unten in der Funktion steht eine Objekt ID. Diese auch anpassen. Bei einem Doppeklick auf einem der neuen Buttons wird mit dieser Funktion entweder "Geraet" bzw. "SolarHaus" in die hier eingetragene Objekt ID geschrieben.

        Mit einem Standard Skript/Blockly in ioBroker reagierst du nun auf eine Aktualisierung von "0_userdata.0.ZielObjID" (bzw angepasste ID). Je nach Inhalt schaltest Du etwas An oder Aus UND (Empfehlung) Du passt den dynamischen Text der Buttons mit Hilfe derer Bindings an.

        Hoffe, das bringt etwas Licht ins Dunkle

        ? 1 Reply Last reply
        0
        • G GiuseppeS

          @HeinrichB

          Hier mal deine Tabelle in angepasster Form.

          <table border="1">
            <tr>
              <td class="HeaderFormat" align="center">Gerät</td>      
              <td class="HeaderFormat" align="center"><b>Heute</b></td>
              <td class="HeaderFormat" align="center"><b>Gestern</b></td>    
              <td class="HeaderFormat" align="center"><b>Gesamt</b></td>
              <td>
          				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Geraet" ondblclick="setOnDblClickCustom(this.value)">{Gerät An/Aus Visu}</button>
          	</td>
            </tr>  
            <tr>
              <td class="LineFormat" align="center"><b>SolarHaus</b></td>
              <td class="LineFormat" align="center"><b>{hs100.0.192_168_2_112.totalNow}kWh</b></td>
              <td class="LineFormat" align="center"><b>{0_userdata.0.daily_earning_solar_house}kWh</b></td>
              <td class="LineFormat" align="center"><b>{0_userdata.0.total_earning_solar_house}kWh</b></td>
              <td>
          				<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="SolarHaus" ondblclick="setOnDblClickCustom(this.value)">{SolarHaus An/Aus Visu}</button>
          	</td> 
            </tr>
          </table>
          
          <script>
          function setOnDblClickCustom(val) {
          var objID = "0_userdata.0.ZielObjID";
          this.servConn._socket.emit('setState', objID, val);
          }
          </script>
          

          Folgendes müsstest du noch machen:

          • Anpassung der beiden Bindings zum Schluss der neuen Zellen-Einträge. Was in diesen Bindings steht, wird auf dem Button als Text angezeigt.
            {Gerät An/Aus Visu} bzw {SolarHaus An/Aus Visu}

          • Unten in der Funktion steht eine Objekt ID. Diese auch anpassen. Bei einem Doppeklick auf einem der neuen Buttons wird mit dieser Funktion entweder "Geraet" bzw. "SolarHaus" in die hier eingetragene Objekt ID geschrieben.

          Mit einem Standard Skript/Blockly in ioBroker reagierst du nun auf eine Aktualisierung von "0_userdata.0.ZielObjID" (bzw angepasste ID). Je nach Inhalt schaltest Du etwas An oder Aus UND (Empfehlung) Du passt den dynamischen Text der Buttons mit Hilfe derer Bindings an.

          Hoffe, das bringt etwas Licht ins Dunkle

          ? Offline
          ? Offline
          A Former User
          wrote on last edited by A Former User
          #24

          @GiuseppeS

          Hallo

          danke Dir. Ich habe mich mal dran probiert und den folgenden DP als Zeichenkette angelegt:

          0_userdata.0.TestDP
          

          Im Nachlauf die HTML-Tabelle in der Funktion angepasst. Die Texte und zu schreibenden Value habe ich erstmal gelassen. Das Blockly-Skript dann erst, wenn der DP geschrieben wird.

          <table border="1">
            <tr>
              <td class="HeaderFormat" align="center">Gerät</td>      
              <td class="HeaderFormat" align="center"><b>Heute</b></td>
              <td class="HeaderFormat" align="center"><b>Gestern</b></td>    
              <td class="HeaderFormat" align="center"><b>Gesamt</b></td>
              <td>
          	<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Geraet" ondblclick="setOnDblClickCustom(this.value)">{Gerät An/Aus Visu}</button>
          	</td>
            </tr>  
            <tr>
              <td class="LineFormat" align="center"><b>SolarHaus</b></td>
              <td class="LineFormat" align="center"><b>{hs100.0.192_168_2_112.totalNow}kWh</b></td>
              <td class="LineFormat" align="center"><b>{0_userdata.0.daily_earning_solar_house}kWh</b></td>
              <td class="LineFormat" align="center"><b>{0_userdata.0.total_earning_solar_house}kWh</b></td>
              <td>
          	<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="SolarHaus" ondblclick="setOnDblClickCustom(this.value)">{SolarHaus An/Aus Visu}</button>
          	</td> 
            </tr>
          </table>
           
          <script>
          function setOnDblClickCustom(val) {
          var objID = "0_userdata.0.TestDP";
          this.servConn._socket.emit('setState', objID, val);
          }
          </script>
          

          So sieht es aktuell aus und der DP wird noch nicht geschrieben. Etwas habe ich noch vergessen anzupassen :)

          Bildschirmfoto 2020-02-06 um 08.27.37.JPG

          G 1 Reply Last reply
          0
          • ? A Former User

            @GiuseppeS

            Hallo

            danke Dir. Ich habe mich mal dran probiert und den folgenden DP als Zeichenkette angelegt:

            0_userdata.0.TestDP
            

            Im Nachlauf die HTML-Tabelle in der Funktion angepasst. Die Texte und zu schreibenden Value habe ich erstmal gelassen. Das Blockly-Skript dann erst, wenn der DP geschrieben wird.

            <table border="1">
              <tr>
                <td class="HeaderFormat" align="center">Gerät</td>      
                <td class="HeaderFormat" align="center"><b>Heute</b></td>
                <td class="HeaderFormat" align="center"><b>Gestern</b></td>    
                <td class="HeaderFormat" align="center"><b>Gesamt</b></td>
                <td>
            	<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Geraet" ondblclick="setOnDblClickCustom(this.value)">{Gerät An/Aus Visu}</button>
            	</td>
              </tr>  
              <tr>
                <td class="LineFormat" align="center"><b>SolarHaus</b></td>
                <td class="LineFormat" align="center"><b>{hs100.0.192_168_2_112.totalNow}kWh</b></td>
                <td class="LineFormat" align="center"><b>{0_userdata.0.daily_earning_solar_house}kWh</b></td>
                <td class="LineFormat" align="center"><b>{0_userdata.0.total_earning_solar_house}kWh</b></td>
                <td>
            	<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="SolarHaus" ondblclick="setOnDblClickCustom(this.value)">{SolarHaus An/Aus Visu}</button>
            	</td> 
              </tr>
            </table>
             
            <script>
            function setOnDblClickCustom(val) {
            var objID = "0_userdata.0.TestDP";
            this.servConn._socket.emit('setState', objID, val);
            }
            </script>
            

            So sieht es aktuell aus und der DP wird noch nicht geschrieben. Etwas habe ich noch vergessen anzupassen :)

            Bildschirmfoto 2020-02-06 um 08.27.37.JPG

            G Offline
            G Offline
            GiuseppeS
            wrote on last edited by
            #25

            @HeinrichB
            Das hast du richtig erfasst. Da fehlt noch eine Anpassung...
            Am Ende der beiden Button-Zeilen stehen Bindings. Siehe Post oben. Diese hast du noch nicht angepasst. Theoretisch kannst du direkt einen Text eingeben, schöner ist es aber den Text in Abhängigkeit vom Geräte-Status anzuzeigen. Beispiel
            SolarHaus = Aus - - - Text = An
            SolarHaus = An - - - Text = Aus

            ? 1 Reply Last reply
            0
            • G GiuseppeS

              @HeinrichB
              Das hast du richtig erfasst. Da fehlt noch eine Anpassung...
              Am Ende der beiden Button-Zeilen stehen Bindings. Siehe Post oben. Diese hast du noch nicht angepasst. Theoretisch kannst du direkt einen Text eingeben, schöner ist es aber den Text in Abhängigkeit vom Geräte-Status anzuzeigen. Beispiel
              SolarHaus = Aus - - - Text = An
              SolarHaus = An - - - Text = Aus

              ? Offline
              ? Offline
              A Former User
              wrote on last edited by A Former User
              #26

              @GiuseppeS

              Nächster Versuch. Erstmal mit einem fixen Text und dann das mit dem dynamischen :)

              Hier die angepasste:

              <table border="1">
                <tr>
                  <td class="HeaderFormat" align="center">Gerät</td>      
                  <td class="HeaderFormat" align="center"><b>Heute</b></td>
                  <td class="HeaderFormat" align="center"><b>Gestern</b></td>    
                  <td class="HeaderFormat" align="center"><b>Gesamt</b></td>
                  <td>
              	<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Geraet" ondblclick="setOnDblClickCustom(this.value)">Gerät</button>
              	</td>
                </tr>  
                <tr>
                  <td class="LineFormat" align="center"><b>SolarHaus</b></td>
                  <td class="LineFormat" align="center"><b>{hs100.0.192_168_2_112.totalNow}kWh</b></td>
                  <td class="LineFormat" align="center"><b>{0_userdata.0.daily_earning_solar_house}kWh</b></td>
                  <td class="LineFormat" align="center"><b>{0_userdata.0.total_earning_solar_house}kWh</b></td>
                  <td>
              	<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="SolarHaus" ondblclick="setOnDblClickCustom(this.value)">SolarHaus</button>
              	</td> 
                </tr>
              </table>
               
              <script>
              function setOnDblClickCustom(val) {
              var objID = "0_userdata.0.TestDP";
              this.servConn._socket.emit('setState', objID, val);
              }
              </script>
              

              Wenn ich nun draufklicke, müsste doch der Wert in den DP geschrieben werden oder nicht? Aktuell ist da noch NULL (nicht 0)

              EDIT: Ich habe es gefunden. Das ist ein Funktion für Doppelklick "OnDblClickCustom"; Da habe ich nicht genau die Funktion mir angesehen :)

              G 1 Reply Last reply
              0
              • ? A Former User

                @GiuseppeS

                Nächster Versuch. Erstmal mit einem fixen Text und dann das mit dem dynamischen :)

                Hier die angepasste:

                <table border="1">
                  <tr>
                    <td class="HeaderFormat" align="center">Gerät</td>      
                    <td class="HeaderFormat" align="center"><b>Heute</b></td>
                    <td class="HeaderFormat" align="center"><b>Gestern</b></td>    
                    <td class="HeaderFormat" align="center"><b>Gesamt</b></td>
                    <td>
                	<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="Geraet" ondblclick="setOnDblClickCustom(this.value)">Gerät</button>
                	</td>
                  </tr>  
                  <tr>
                    <td class="LineFormat" align="center"><b>SolarHaus</b></td>
                    <td class="LineFormat" align="center"><b>{hs100.0.192_168_2_112.totalNow}kWh</b></td>
                    <td class="LineFormat" align="center"><b>{0_userdata.0.daily_earning_solar_house}kWh</b></td>
                    <td class="LineFormat" align="center"><b>{0_userdata.0.total_earning_solar_house}kWh</b></td>
                    <td>
                	<button style="border:none; background-color:transparent; color:white; font-size:1em; text-align:left" value="SolarHaus" ondblclick="setOnDblClickCustom(this.value)">SolarHaus</button>
                	</td> 
                  </tr>
                </table>
                 
                <script>
                function setOnDblClickCustom(val) {
                var objID = "0_userdata.0.TestDP";
                this.servConn._socket.emit('setState', objID, val);
                }
                </script>
                

                Wenn ich nun draufklicke, müsste doch der Wert in den DP geschrieben werden oder nicht? Aktuell ist da noch NULL (nicht 0)

                EDIT: Ich habe es gefunden. Das ist ein Funktion für Doppelklick "OnDblClickCustom"; Da habe ich nicht genau die Funktion mir angesehen :)

                G Offline
                G Offline
                GiuseppeS
                wrote on last edited by
                #27

                @HeinrichB
                Es klappt auch mit einem einfachen Klick wenn "onClick" bei den Buttons verwendet wird. Im html Code aus meiner Tabelle sind beide Funktionen drin. Einfach reinschauen. Wollte es hier unkomplizierter halten ;-)

                ? liv-in-skyL 2 Replies Last reply
                0
                • G GiuseppeS

                  @HeinrichB
                  Es klappt auch mit einem einfachen Klick wenn "onClick" bei den Buttons verwendet wird. Im html Code aus meiner Tabelle sind beide Funktionen drin. Einfach reinschauen. Wollte es hier unkomplizierter halten ;-)

                  ? Offline
                  ? Offline
                  A Former User
                  wrote on last edited by
                  #28

                  @GiuseppeS Hallo, das war meine Schusseligkeit. Ich kenn grundsätzlich beide Varianten, nur habe ich da nicht sauber hingeschauen

                  Und jetz baue ich meinen Trigger auf den DP und setze dann die anderen DP zum Anzeigen des Butto-Texts per Binding :)

                  1 Reply Last reply
                  0
                  • G GiuseppeS

                    @HeinrichB
                    Es klappt auch mit einem einfachen Klick wenn "onClick" bei den Buttons verwendet wird. Im html Code aus meiner Tabelle sind beide Funktionen drin. Einfach reinschauen. Wollte es hier unkomplizierter halten ;-)

                    liv-in-skyL Offline
                    liv-in-skyL Offline
                    liv-in-sky
                    wrote on last edited by
                    #29

                    @GiuseppeS kann man da eine toggle function einbauen ?

                    ich bekomm diesen getStates befehl nicht hin - hast du da ahnung ?

                    <script>
                    function setOnDblClickCustom(val) {
                    var objID = "0_userdata.0.buttonTestBox";
                    var getty =this.servConn._socket.emit('getStates', objID);
                    if (getty.val) {this.servConn._socket.emit('setState', objID, false);} else {this.servConn._socket.emit('setState', objID, true);}
                    
                    }
                    </script>
                    

                    ist das machbar - getStates soll ja ein object zurückgeben

                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                    G 1 Reply Last reply
                    0
                    • liv-in-skyL liv-in-sky

                      @GiuseppeS kann man da eine toggle function einbauen ?

                      ich bekomm diesen getStates befehl nicht hin - hast du da ahnung ?

                      <script>
                      function setOnDblClickCustom(val) {
                      var objID = "0_userdata.0.buttonTestBox";
                      var getty =this.servConn._socket.emit('getStates', objID);
                      if (getty.val) {this.servConn._socket.emit('setState', objID, false);} else {this.servConn._socket.emit('setState', objID, true);}
                      
                      }
                      </script>
                      

                      ist das machbar - getStates soll ja ein object zurückgeben

                      G Offline
                      G Offline
                      GiuseppeS
                      wrote on last edited by GiuseppeS
                      #30

                      @liv-in-sky
                      Mit getStates hatte ich noch nicht gearbeitet.
                      Funktioniert sicher die Abfrage nicht? Oder scheitert es bei der If-Bedingung? Wenn ein Objekt zurück kommt, dann könnte getty.state.val statt getty.val funktionieren.

                      liv-in-skyL 1 Reply Last reply
                      0
                      • G GiuseppeS

                        @liv-in-sky
                        Mit getStates hatte ich noch nicht gearbeitet.
                        Funktioniert sicher die Abfrage nicht? Oder scheitert es bei der If-Bedingung? Wenn ein Objekt zurück kommt, dann könnte getty.state.val statt getty.val funktionieren.

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        wrote on last edited by
                        #31

                        @GiuseppeS habe einen eigenen thread aufgemacht - da einzige was ich gefunden haben zu getStates habe ich im thread https://forum.iobroker.net/topic/29851/socket-io-state-lesen-und-setzen

                        probiert

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        1 Reply Last reply
                        0
                        • G Offline
                          G Offline
                          GiuseppeS
                          wrote on last edited by
                          #32

                          Im anderen Thread ist man ein gutes Stück weiter gekommen. Anscheinend funktioniert auch die Funktion aus VIS heraus auch mit dieser Schreibweise:

                          function setOnClickDevices(val) {
                              var objID = "javascript.0.Timer.Devices.clickTarget";
                              servConn.setState(objID, val);
                          }
                          

                          Zuvor hatte ich hier meine Lösung gezeigt, wo ich die Hauptfunktionen nach diesem Schema gezeigt habe:

                          this.servConn._socket.emit('setState', objID, val);
                          

                          Keine Ahnung ob es Nebenwirkungen gibt, aber auf diese Weise ist der Code kürzer und (viel wichtiger) die offizielle socket.io Doku auf Github macht mit den Aufrufen endlich Sinn.

                          @HeinrichB
                          Im verlinkten Thread von @liv-in-sky wird das Togglen geklärt. Wenn Du in deiner Tabelle rein statisch ausschließlich togglen möchtest, wäre das was für dich. Dann wird kein Trigger-Skript benötigt, wie ich es bei mir mache.

                          ? 1 Reply Last reply
                          0
                          • G GiuseppeS

                            Im anderen Thread ist man ein gutes Stück weiter gekommen. Anscheinend funktioniert auch die Funktion aus VIS heraus auch mit dieser Schreibweise:

                            function setOnClickDevices(val) {
                                var objID = "javascript.0.Timer.Devices.clickTarget";
                                servConn.setState(objID, val);
                            }
                            

                            Zuvor hatte ich hier meine Lösung gezeigt, wo ich die Hauptfunktionen nach diesem Schema gezeigt habe:

                            this.servConn._socket.emit('setState', objID, val);
                            

                            Keine Ahnung ob es Nebenwirkungen gibt, aber auf diese Weise ist der Code kürzer und (viel wichtiger) die offizielle socket.io Doku auf Github macht mit den Aufrufen endlich Sinn.

                            @HeinrichB
                            Im verlinkten Thread von @liv-in-sky wird das Togglen geklärt. Wenn Du in deiner Tabelle rein statisch ausschließlich togglen möchtest, wäre das was für dich. Dann wird kein Trigger-Skript benötigt, wie ich es bei mir mache.

                            ? Offline
                            ? Offline
                            A Former User
                            wrote on last edited by
                            #33

                            @GiuseppeS said in Steuerelement in HTML-Tabelle:

                            Im verlinkten Thread von @liv-in-sky wird das Togglen geklärt. Wenn Du in deiner Tabelle rein statisch ausschließlich togglen möchtest, wäre das was für dich. Dann wird kein Trigger-Skript benötigt, wie ich es bei mir mache.

                            Danke für den Hinweis. Das schaue ich mir auf jeden Fall mal an :)

                            GlasfaserG 1 Reply Last reply
                            0
                            • ? A Former User

                              @GiuseppeS said in Steuerelement in HTML-Tabelle:

                              Im verlinkten Thread von @liv-in-sky wird das Togglen geklärt. Wenn Du in deiner Tabelle rein statisch ausschließlich togglen möchtest, wäre das was für dich. Dann wird kein Trigger-Skript benötigt, wie ich es bei mir mache.

                              Danke für den Hinweis. Das schaue ich mir auf jeden Fall mal an :)

                              GlasfaserG Offline
                              GlasfaserG Offline
                              Glasfaser
                              wrote on last edited by Glasfaser
                              #34

                              @HeinrichB

                              Könntest du vielleicht dein ganzes Skript zur Verfügung stellen , da es ja jetzt bei dir funktioniert !?
                              Bin ja auch gerne am Basteln ;)

                              Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                              liv-in-skyL ? 2 Replies Last reply
                              0
                              • GlasfaserG Glasfaser

                                @HeinrichB

                                Könntest du vielleicht dein ganzes Skript zur Verfügung stellen , da es ja jetzt bei dir funktioniert !?
                                Bin ja auch gerne am Basteln ;)

                                liv-in-skyL Offline
                                liv-in-skyL Offline
                                liv-in-sky
                                wrote on last edited by liv-in-sky
                                #35

                                @Glasfaser ist das nicht hier - ist ein wenig hin und her zwischen den threads

                                https://forum.iobroker.net/post/373006

                                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                1 Reply Last reply
                                0
                                • GlasfaserG Glasfaser

                                  @HeinrichB

                                  Könntest du vielleicht dein ganzes Skript zur Verfügung stellen , da es ja jetzt bei dir funktioniert !?
                                  Bin ja auch gerne am Basteln ;)

                                  ? Offline
                                  ? Offline
                                  A Former User
                                  wrote on last edited by
                                  #36

                                  @Glasfaser

                                  Hier meine Tabelle, wofür ich die Buttons verwende. Ich hab nur ein paar Tabellenzeilen der Übersichtlichkeit wegen rausgelöscht.

                                  <table border="1">
                                   <tr>
                                     <td class="FirstColoumnFormat" align="center">Waschmaschine</td>   
                                     <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.INFO.IPAddress}</b></td>
                                     <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.Wifi_RSSI}%</b></td>
                                     <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.INFO.Hostname}</b></td>
                                     <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.Time;date(DD.MM.YY hh:mm)}</b></td>
                                     <td>
                                         <button value="Waschmaschine" onClick="setOnClickCustom(value)">{v:sonoff.0.WaschMaschine.POWER;v == "true" ? "An":"Aus"}</button>
                                     </td> 
                                   </tr> 
                                   <tr>
                                     <td class="FirstColoumnFormat" align="center">ZBox</td>   
                                     <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.INFO.IPAddress}</b></td>
                                     <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.Wifi_RSSI}%</b></td>
                                     <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.INFO.Hostname}</b></td>
                                     <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.Time;date(DD.MM.YY hh:mm)}</b></td>
                                     <td>
                                         <button value="ZBox" onClick="setOnClickCustom(value)">{v:sonoff.0.ZBox.POWER;v == "true" ? "An":"Aus"}</button>
                                     </td> 
                                   </tr> 
                                   <tr>
                                     <td class="FirstColoumnFormat" align="center">Wasserkocher</td>   
                                     <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.INFO.IPAddress}</b></td>
                                     <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.Wifi_RSSI}%</b></td>
                                     <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.INFO.Hostname}</b></td>
                                     <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.Time;date(DD.MM.YY hh:mm)}</b></td>
                                     <td>
                                         <button value="Wasserkocher" onClick="setOnClickCustom(value)">{v:sonoff.0.Wasserkocher.POWER;v == "true" ? "An":"Aus"}</button>
                                     </td> 
                                   </tr>    
                                  </table>
                                  
                                  <script>
                                  function setOnClickCustom(val) {
                                     var objID;
                                     if (val == "Waschmaschine") {
                                         objID = "sonoff.0.WaschMaschine.POWER";
                                     }
                                     if (val == "Wasserkocher") {
                                         objID = "sonoff.0.Wasserkocher.POWER";
                                     }
                                     if (val == "ZBox") {
                                         objID = "sonoff.0.ZBox.POWER";
                                     } 
                                     servConn.getStates(objID, (error, states) => {
                                         console.log(states);
                                         servConn.setState(objID, !states[objID].val);
                                     });
                                  }
                                  </script>
                                  

                                  liv-in-skyL GlasfaserG 3 Replies Last reply
                                  1
                                  • ? A Former User

                                    @Glasfaser

                                    Hier meine Tabelle, wofür ich die Buttons verwende. Ich hab nur ein paar Tabellenzeilen der Übersichtlichkeit wegen rausgelöscht.

                                    <table border="1">
                                     <tr>
                                       <td class="FirstColoumnFormat" align="center">Waschmaschine</td>   
                                       <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.INFO.IPAddress}</b></td>
                                       <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.Wifi_RSSI}%</b></td>
                                       <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.INFO.Hostname}</b></td>
                                       <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.Time;date(DD.MM.YY hh:mm)}</b></td>
                                       <td>
                                           <button value="Waschmaschine" onClick="setOnClickCustom(value)">{v:sonoff.0.WaschMaschine.POWER;v == "true" ? "An":"Aus"}</button>
                                       </td> 
                                     </tr> 
                                     <tr>
                                       <td class="FirstColoumnFormat" align="center">ZBox</td>   
                                       <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.INFO.IPAddress}</b></td>
                                       <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.Wifi_RSSI}%</b></td>
                                       <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.INFO.Hostname}</b></td>
                                       <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.Time;date(DD.MM.YY hh:mm)}</b></td>
                                       <td>
                                           <button value="ZBox" onClick="setOnClickCustom(value)">{v:sonoff.0.ZBox.POWER;v == "true" ? "An":"Aus"}</button>
                                       </td> 
                                     </tr> 
                                     <tr>
                                       <td class="FirstColoumnFormat" align="center">Wasserkocher</td>   
                                       <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.INFO.IPAddress}</b></td>
                                       <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.Wifi_RSSI}%</b></td>
                                       <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.INFO.Hostname}</b></td>
                                       <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.Time;date(DD.MM.YY hh:mm)}</b></td>
                                       <td>
                                           <button value="Wasserkocher" onClick="setOnClickCustom(value)">{v:sonoff.0.Wasserkocher.POWER;v == "true" ? "An":"Aus"}</button>
                                       </td> 
                                     </tr>    
                                    </table>
                                    
                                    <script>
                                    function setOnClickCustom(val) {
                                       var objID;
                                       if (val == "Waschmaschine") {
                                           objID = "sonoff.0.WaschMaschine.POWER";
                                       }
                                       if (val == "Wasserkocher") {
                                           objID = "sonoff.0.Wasserkocher.POWER";
                                       }
                                       if (val == "ZBox") {
                                           objID = "sonoff.0.ZBox.POWER";
                                       } 
                                       servConn.getStates(objID, (error, states) => {
                                           console.log(states);
                                           servConn.setState(objID, !states[objID].val);
                                       });
                                    }
                                    </script>
                                    

                                    liv-in-skyL Offline
                                    liv-in-skyL Offline
                                    liv-in-sky
                                    wrote on last edited by
                                    #37

                                    @HeinrichB

                                    wie sieht den der button in der tabelle aus - magst du ein bild zeigen - ich würde ein z.b. für toggle 🔄 genutzt oder 🔀

                                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                    ? 1 Reply Last reply
                                    0
                                    • liv-in-skyL liv-in-sky

                                      @HeinrichB

                                      wie sieht den der button in der tabelle aus - magst du ein bild zeigen - ich würde ein z.b. für toggle 🔄 genutzt oder 🔀

                                      ? Offline
                                      ? Offline
                                      A Former User
                                      wrote on last edited by A Former User
                                      #38

                                      @liv-in-sky Der ist aktuell sehr primitiv noch

                                      Bildschirmfoto 2020-02-07 um 13.39.43.JPG

                                      Funktioniert aber; jedoch muss man der Tabelle etwas Zeit beim ersten Mal lassen /2-3sec., da die Bindings etwas brauchen

                                      liv-in-skyL 1 Reply Last reply
                                      0
                                      • ? A Former User

                                        @Glasfaser

                                        Hier meine Tabelle, wofür ich die Buttons verwende. Ich hab nur ein paar Tabellenzeilen der Übersichtlichkeit wegen rausgelöscht.

                                        <table border="1">
                                         <tr>
                                           <td class="FirstColoumnFormat" align="center">Waschmaschine</td>   
                                           <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.INFO.IPAddress}</b></td>
                                           <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.Wifi_RSSI}%</b></td>
                                           <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.INFO.Hostname}</b></td>
                                           <td class="LineFormat" align="center"><b>{sonoff.0.WaschMaschine.Time;date(DD.MM.YY hh:mm)}</b></td>
                                           <td>
                                               <button value="Waschmaschine" onClick="setOnClickCustom(value)">{v:sonoff.0.WaschMaschine.POWER;v == "true" ? "An":"Aus"}</button>
                                           </td> 
                                         </tr> 
                                         <tr>
                                           <td class="FirstColoumnFormat" align="center">ZBox</td>   
                                           <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.INFO.IPAddress}</b></td>
                                           <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.Wifi_RSSI}%</b></td>
                                           <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.INFO.Hostname}</b></td>
                                           <td class="LineFormat" align="center"><b>{sonoff.0.ZBox.Time;date(DD.MM.YY hh:mm)}</b></td>
                                           <td>
                                               <button value="ZBox" onClick="setOnClickCustom(value)">{v:sonoff.0.ZBox.POWER;v == "true" ? "An":"Aus"}</button>
                                           </td> 
                                         </tr> 
                                         <tr>
                                           <td class="FirstColoumnFormat" align="center">Wasserkocher</td>   
                                           <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.INFO.IPAddress}</b></td>
                                           <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.Wifi_RSSI}%</b></td>
                                           <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.INFO.Hostname}</b></td>
                                           <td class="LineFormat" align="center"><b>{sonoff.0.Wasserkocher.Time;date(DD.MM.YY hh:mm)}</b></td>
                                           <td>
                                               <button value="Wasserkocher" onClick="setOnClickCustom(value)">{v:sonoff.0.Wasserkocher.POWER;v == "true" ? "An":"Aus"}</button>
                                           </td> 
                                         </tr>    
                                        </table>
                                        
                                        <script>
                                        function setOnClickCustom(val) {
                                           var objID;
                                           if (val == "Waschmaschine") {
                                               objID = "sonoff.0.WaschMaschine.POWER";
                                           }
                                           if (val == "Wasserkocher") {
                                               objID = "sonoff.0.Wasserkocher.POWER";
                                           }
                                           if (val == "ZBox") {
                                               objID = "sonoff.0.ZBox.POWER";
                                           } 
                                           servConn.getStates(objID, (error, states) => {
                                               console.log(states);
                                               servConn.setState(objID, !states[objID].val);
                                           });
                                        }
                                        </script>
                                        

                                        liv-in-skyL Offline
                                        liv-in-skyL Offline
                                        liv-in-sky
                                        wrote on last edited by liv-in-sky
                                        #39

                                        @HeinrichB ah - der button wird bei mir nicht angezeigt - da habe ich wohl wieder einen kleinen "unsichtbaren" fehler

                                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                        ? 1 Reply Last reply
                                        0
                                        • ? A Former User

                                          @liv-in-sky Der ist aktuell sehr primitiv noch

                                          Bildschirmfoto 2020-02-07 um 13.39.43.JPG

                                          Funktioniert aber; jedoch muss man der Tabelle etwas Zeit beim ersten Mal lassen /2-3sec., da die Bindings etwas brauchen

                                          liv-in-skyL Offline
                                          liv-in-skyL Offline
                                          liv-in-sky
                                          wrote on last edited by
                                          #40

                                          @HeinrichB

                                          wenn mal die muse stimmt, werde ich mal versuchen, dass in mein sonoff script zu integrieren

                                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          405

                                          Online

                                          32.6k

                                          Users

                                          82.2k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe