Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Visualisierung
  4. [Vorstellung] Meine zweite Visualisierung

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.1k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

[Vorstellung] Meine zweite Visualisierung

Scheduled Pinned Locked Moved Visualisierung
vistemplate
1.3k Posts 148 Posters 547.7k Views 157 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.
  • D DennisMenger

    @Kuddel du hast ja in deiner Vis alle Views einzeln erstellt, die dann ja zusätzlich auf den einzelnen Übersichtsseiten eingebunden sind. Wie bekomme ich die Views dann zusätzlich auf die Übersichtsseiten? Einfach exportieren und dann importieren?

    Pat1968P Offline
    Pat1968P Offline
    Pat1968
    wrote on last edited by
    #999

    @DennisMenger

    Zentrieren kanns du die einzelnen view indem du auf deiner view das widget zentrierst. View in view geht das nicht.

    1 Reply Last reply
    0
    • B Offline
      B Offline
      bug77
      wrote on last edited by
      #1000

      Hi Kuddel und vielen Dank, dein View war und ist meine Inspiration 👍👍👍

      Frage:

      Im Navi View will ich einen Button mit /Icon/mfd-png/time_calendar.png darstellen.
      Jedoch hat dieser immer die 14 🙂

      Ich möchte die Zahl je nach Tag entsprechend anzeigen lassen.
      Habe dazu bereits ein Objekt im JavaScript welches mir je nach Tag den entsprechenden Pfad erzeugt. /icon-mfd-png/time_calwndar_23.png z.b

      Wie bekomme ich das aber in das Widget rein?
      Das Metro Navigation Widget unterstützt ja das Icon, aber keinen Pfad zu einem State.

      K 1 Reply Last reply
      0
      • B bug77

        Hi Kuddel und vielen Dank, dein View war und ist meine Inspiration 👍👍👍

        Frage:

        Im Navi View will ich einen Button mit /Icon/mfd-png/time_calendar.png darstellen.
        Jedoch hat dieser immer die 14 🙂

        Ich möchte die Zahl je nach Tag entsprechend anzeigen lassen.
        Habe dazu bereits ein Objekt im JavaScript welches mir je nach Tag den entsprechenden Pfad erzeugt. /icon-mfd-png/time_calwndar_23.png z.b

        Wie bekomme ich das aber in das Widget rein?
        Das Metro Navigation Widget unterstützt ja das Icon, aber keinen Pfad zu einem State.

        K Offline
        K Offline
        Kuddel
        wrote on last edited by
        #1001

        @bug77 ich habe dein Problem noch nicht so ganz verstanden. könntest du vllt. zur Verdeutlichung paar Screenshots anhängen?

        B 1 Reply Last reply
        0
        • D Online
          D Online
          DennisMenger
          wrote on last edited by
          #1002

          @Kuddel Ich habe noch eine Frage zu deinem Blockly für den Datenpunkt "alle_fenster_eg_geschlossen". Ich nutze HmIP 3 Fensterkontakte. Habe das Blockly jetzt versucht auf meine Bedürfnisse anzupassen, aber der Datenpunkt ändert sich nicht.

          Hier der Code, wie kann ich das Blockly selber hier einstellen?

          // Alle Fenster EG geschlossen
          on({id: new RegExp('hmip\\.0\\.devices\\.3014F711A00000DA4994DB9F\\.channels\\.1\\.windowOpen' + "|" + 'hmip\\.0\\.devices\\.3014F711A00007DA4989AD87\\.channels\\.1\\.windowOpen' + "|" + 'hmip\\.0\\.devices\\.3014F711A00000DA4994DB86\\.channels\\.1\\.windowOpen'), change: "ne"}, function (obj) {
              setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, true);
            // Sofaecke
            if (getState("hmip.0.devices.3014F711A00000DA4994DB9F.channels.1.windowOpen").val == false) {
              setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, false);
            }
            // Terrasse
            if (getState("hmip.0.devices.3014F711A00007DA4989AD87.channels.1.windowOpen").val == false) {
              setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, false);
            }
            // Essecke
            if (getState("hmip.0.devices.3014F711A00000DA4994DB86.channels.1.windowOpen").val == false) {
              setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, false);
            }
          });
          on({id: new RegExp('hmip\\.0\\.devices\\.3014F711A00000DA4994DB9F\\.channels\\.1\\.windowOpen' + "|" + 'hmip\\.0\\.devices\\.3014F711A00007DA4989AD87\\.channels\\.1\\.windowOpen' + "|" + 'hmip\\.0\\.devices\\.3014F711A00000DA4994DB86\\.channels\\.1\\.windowOpen'), change: "ne"}, function (obj) {
              if (getState("hmip.0.devices.3014F711A00000DA4994DB9F.channels.1.windowOpen").val == true || getState("hmip.0.devices.3014F711A00007DA4989AD87.channels.1.windowOpen").val == true || getState("hmip.0.devices.3014F711A00000DA4994DB86.channels.1.windowOpen").val == true) {
              setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, true);
            } else {
              setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, false);
            }
          });
          
          K 1 Reply Last reply
          0
          • D DennisMenger

            @Kuddel Ich habe noch eine Frage zu deinem Blockly für den Datenpunkt "alle_fenster_eg_geschlossen". Ich nutze HmIP 3 Fensterkontakte. Habe das Blockly jetzt versucht auf meine Bedürfnisse anzupassen, aber der Datenpunkt ändert sich nicht.

            Hier der Code, wie kann ich das Blockly selber hier einstellen?

            // Alle Fenster EG geschlossen
            on({id: new RegExp('hmip\\.0\\.devices\\.3014F711A00000DA4994DB9F\\.channels\\.1\\.windowOpen' + "|" + 'hmip\\.0\\.devices\\.3014F711A00007DA4989AD87\\.channels\\.1\\.windowOpen' + "|" + 'hmip\\.0\\.devices\\.3014F711A00000DA4994DB86\\.channels\\.1\\.windowOpen'), change: "ne"}, function (obj) {
                setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, true);
              // Sofaecke
              if (getState("hmip.0.devices.3014F711A00000DA4994DB9F.channels.1.windowOpen").val == false) {
                setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, false);
              }
              // Terrasse
              if (getState("hmip.0.devices.3014F711A00007DA4989AD87.channels.1.windowOpen").val == false) {
                setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, false);
              }
              // Essecke
              if (getState("hmip.0.devices.3014F711A00000DA4994DB86.channels.1.windowOpen").val == false) {
                setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, false);
              }
            });
            on({id: new RegExp('hmip\\.0\\.devices\\.3014F711A00000DA4994DB9F\\.channels\\.1\\.windowOpen' + "|" + 'hmip\\.0\\.devices\\.3014F711A00007DA4989AD87\\.channels\\.1\\.windowOpen' + "|" + 'hmip\\.0\\.devices\\.3014F711A00000DA4994DB86\\.channels\\.1\\.windowOpen'), change: "ne"}, function (obj) {
                if (getState("hmip.0.devices.3014F711A00000DA4994DB9F.channels.1.windowOpen").val == true || getState("hmip.0.devices.3014F711A00007DA4989AD87.channels.1.windowOpen").val == true || getState("hmip.0.devices.3014F711A00000DA4994DB86.channels.1.windowOpen").val == true) {
                setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, true);
              } else {
                setState("javascript.0.VIS-Status.alle_fenster_eg_geschlossen"/*alle_fenster_eg_geschlossen*/, false);
              }
            });
            
            K Offline
            K Offline
            Kuddel
            wrote on last edited by
            #1003

            @DennisMenger wenn du das Blocky offen hast, sind oben rechts zwei Icons zum exportieren und importieren.

            darüber kannst du dann das Blocky hier reinstellen.
            am besten den Code immer mit spoiler (das augenicon hier im Editor) posten, dann bleiben die Beträge übersichtlicher

            D 1 Reply Last reply
            0
            • K Kuddel

              @DennisMenger wenn du das Blocky offen hast, sind oben rechts zwei Icons zum exportieren und importieren.

              darüber kannst du dann das Blocky hier reinstellen.
              am besten den Code immer mit spoiler (das augenicon hier im Editor) posten, dann bleiben die Beträge übersichtlicher

              D Online
              D Online
              DennisMenger
              wrote on last edited by DennisMenger
              #1004

              @Kuddel danke

              hier einmal ein Screenshot

              blockly1.png

              reicht das so?

              K 2 Replies Last reply
              0
              • D DennisMenger

                @Kuddel danke

                hier einmal ein Screenshot

                blockly1.png

                reicht das so?

                K Offline
                K Offline
                Kuddel
                wrote on last edited by
                #1005

                @DennisMenger so geht es natürlich auch. wenn die skripte nicht zu groß sind, ist es mit Screenshot sogar einfacher.

                schaue mir das morgen früh mal in Ruhe im Büro an

                D 1 Reply Last reply
                0
                • K Kuddel

                  @DennisMenger so geht es natürlich auch. wenn die skripte nicht zu groß sind, ist es mit Screenshot sogar einfacher.

                  schaue mir das morgen früh mal in Ruhe im Büro an

                  D Online
                  D Online
                  DennisMenger
                  wrote on last edited by
                  #1006

                  @Kuddel super danke

                  1 Reply Last reply
                  0
                  • D Online
                    D Online
                    DennisMenger
                    wrote on last edited by Negalein
                    #1007

                    Teil 1

                    <block xmlns="http://www.w3.org/1999/xhtml" type="on_ext" id="1xhq]CF5|L8T:e3!T,eV" x="121" y="-3307">
                     <mutation items="3"></mutation>
                     <field name="CONDITION">ne</field>
                     <field name="ACK_CONDITION"></field>
                     <value name="OID0">
                       <shadow type="field_oid" id="2-;6RL-j;|G*ArqTG1YN">
                         <field name="oid">hmip.0.devices.3014F711A00000DA4994DB9F.channels.1.windowOpen</field>
                       </shadow>
                     </value>
                     <value name="OID1">
                       <shadow type="field_oid" id="HVjS`S%;z.oO#A%@?UwN">
                         <field name="oid">hmip.0.devices.3014F711A00007DA4989AD87.channels.1.windowOpen</field>
                       </shadow>
                     </value>
                     <value name="OID2">
                       <shadow type="field_oid" id="`1zZ0_d~+Zq6q%2,guN(">
                         <field name="oid">hmip.0.devices.3014F711A00000DA4994DB86.channels.1.windowOpen</field>
                       </shadow>
                     </value>
                     <statement name="STATEMENT">
                       <block type="control" id="+KE!n1mO,v#37eCLWau8">
                         <mutation delay_input="false"></mutation>
                         <field name="OID">javascript.0.VIS-Status.alle_fenster_eg_geschlossen</field>
                         <field name="WITH_DELAY">FALSE</field>
                         <value name="VALUE">
                           <block type="logic_boolean" id="3cZSLKgqD{5UUDV]5L9%">
                             <field name="BOOL">TRUE</field>
                           </block>
                         </value>
                         <next>
                           <block type="comment" id="gC*ZeYN|f3kr/.I[9DP#">
                             <field name="COMMENT">Sofaecke</field>
                             <next>
                               <block type="controls_if" id="HPB,4eTF.uoaO{_+!3u.">
                                 <value name="IF0">
                                   <block type="logic_compare" id="%@~okf=@+-A*91gcVoPT">
                                     <field name="OP">EQ</field>
                                     <value name="A">
                                       <block type="get_value" id="NLB`S^q,7Ezk^-5FO~dq">
                                         <field name="ATTR">val</field>
                                         <field name="OID">hmip.0.devices.3014F711A00000DA4994DB9F.channels.1.windowOpen</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="logic_boolean" id="2Zt/rI_kZf9JRrX(%[+=">
                                         <field name="BOOL">FALSE</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <statement name="DO0">
                                   <block type="control" id="t%OD+4?^;Q2EAW[{gezg">
                                     <mutation delay_input="false"></mutation>
                                     <field name="OID">javascript.0.VIS-Status.alle_fenster_eg_geschlossen</field>
                                     <field name="WITH_DELAY">FALSE</field>
                                     <value name="VALUE">
                                       <block type="logic_boolean" id="x6;G~-S)P^vsQgyDy9jp">
                                         <field name="BOOL">FALSE</field>
                                       </block>
                                     </value>
                                   </block>
                                 </statement>
                                 <next>
                                   <block type="comment" id="h-#fBL:)4*zpY=ygP4L+">
                                     <field name="COMMENT">Terrasse</field>
                                     <next>
                                       <block type="controls_if" id="Ws}5}dkY;DP;[mbkf*?T">
                                         <value name="IF0">
                                           <block type="logic_compare" id="[aAkmc(hIxC4B_ef(02h">
                                             <field name="OP">EQ</field>
                                             <value name="A">
                                               <block type="get_value" id="oy,pXr=MMD;A3bT}_z}%">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">hmip.0.devices.3014F711A00007DA4989AD87.channels.1.windowOpen</field>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <block type="logic_boolean" id="fm`J]%Qn?!{m#87d0D+e">
                                                 <field name="BOOL">FALSE</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <statement name="DO0">
                                           <block type="control" id="rxIluhfn:;7hz`bSN*JO">
                                             <mutation delay_input="false"></mutation>
                                             <field name="OID">javascript.0.VIS-Status.alle_fenster_eg_geschlossen</field>
                                             <field name="WITH_DELAY">FALSE</field>
                                             <value name="VALUE">
                                               <block type="logic_boolean" id="l+lw[US]=)gT9LT0K*.C">
                                                 <field name="BOOL">FALSE</field>
                                               </block>
                                             </value>
                                           </block>
                                         </statement>
                                         <next>
                                           <block type="comment" id="Q?WR3aB:#~[Y%`+Q@k-X">
                                             <field name="COMMENT">Essecke</field>
                                             <next>
                                               <block type="controls_if" id="GwR1Chvv*lZ0OYUCT%zT">
                                                 <value name="IF0">
                                                   <block type="logic_compare" id="#!4|5=PNGp*QSWpYv6Ox">
                                                     <field name="OP">EQ</field>
                                                     <value name="A">
                                                       <block type="get_value" id="pmzZZpJLGsc6ztzT12Fp">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">hmip.0.devices.3014F711A00000DA4994DB86.channels.1.windowOpen</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <block type="logic_boolean" id="A9[[W3SNU:c@D(v5c],.">
                                                         <field name="BOOL">FALSE</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="control" id="M|@3-CZwB5;NhARTE2g@">
                                                     <mutation delay_input="false"></mutation>
                                                     <field name="OID">javascript.0.VIS-Status.alle_fenster_eg_geschlossen</field>
                                                     <field name="WITH_DELAY">FALSE</field>
                                                     <value name="VALUE">
                                                       <block type="logic_boolean" id=":K%I%=+F|{BVB0^`|b%1">
                                                         <field name="BOOL">FALSE</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </statement>
                    </block>
                    

                    Teil 2:

                    <block xmlns="http://www.w3.org/1999/xhtml" type="on_ext" id="Am#Mvvb/*1YJDMz?~{jC" x="121" y="-2789">
                     <mutation items="3"></mutation>
                     <field name="CONDITION">ne</field>
                     <field name="ACK_CONDITION"></field>
                     <value name="OID0">
                       <shadow type="field_oid" id="^Rnuo?@=GaPu0(B]CbPF">
                         <field name="oid">hmip.0.devices.3014F711A00000DA4994DB9F.channels.1.windowOpen</field>
                       </shadow>
                     </value>
                     <value name="OID1">
                       <shadow type="field_oid" id="QT?xIh7zwWae63n)567T">
                         <field name="oid">hmip.0.devices.3014F711A00007DA4989AD87.channels.1.windowOpen</field>
                       </shadow>
                     </value>
                     <value name="OID2">
                       <shadow type="field_oid" id="lqQsO)+}EIG`A5SEQ[^s">
                         <field name="oid">hmip.0.devices.3014F711A00000DA4994DB86.channels.1.windowOpen</field>
                       </shadow>
                     </value>
                     <statement name="STATEMENT">
                       <block type="controls_if" id="srHu]+:v1PF4Df6VAkDp">
                         <mutation else="1"></mutation>
                         <value name="IF0">
                           <block type="logic_operation" id=";7L~HfPom:D}|:FHFHmW" inline="false">
                             <field name="OP">OR</field>
                             <value name="A">
                               <block type="logic_operation" id="tAIX9mXkKpsLPOKe;!wm" inline="false">
                                 <field name="OP">OR</field>
                                 <value name="A">
                                   <block type="logic_compare" id="^hNN!_u~7@%rhT?,pGx!">
                                     <field name="OP">EQ</field>
                                     <value name="A">
                                       <block type="get_value" id="1kw=ck+jlGF7E,o(m*TP">
                                         <field name="ATTR">val</field>
                                         <field name="OID">hmip.0.devices.3014F711A00000DA4994DB9F.channels.1.windowOpen</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="logic_boolean" id="dlee^R!ZwIpm|3W;a.gK">
                                         <field name="BOOL">TRUE</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="logic_compare" id="]~wCrMl9d;,,zS~`^]Nf">
                                     <field name="OP">EQ</field>
                                     <value name="A">
                                       <block type="get_value" id="@7ZQu/3,LS{9xCS/|PQ*">
                                         <field name="ATTR">val</field>
                                         <field name="OID">hmip.0.devices.3014F711A00007DA4989AD87.channels.1.windowOpen</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="logic_boolean" id="Xr{x-T+d^8zoe]j)#;Zl">
                                         <field name="BOOL">TRUE</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <value name="B">
                               <block type="logic_compare" id="u.D%QT7f@1q:(GeBV(wb">
                                 <field name="OP">EQ</field>
                                 <value name="A">
                                   <block type="get_value" id="B=l,y8S-Gg??UZ1#vus(">
                                     <field name="ATTR">val</field>
                                     <field name="OID">hmip.0.devices.3014F711A00000DA4994DB86.channels.1.windowOpen</field>
                                   </block>
                                 </value>
                                 <value name="B">
                                   <block type="logic_boolean" id="Gs#^|(N?05J2`y_]+ZT2">
                                     <field name="BOOL">TRUE</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                           </block>
                         </value>
                         <statement name="DO0">
                           <block type="control" id="zO}9d*sWT}RMP*47UhC{">
                             <mutation delay_input="false"></mutation>
                             <field name="OID">javascript.0.VIS-Status.alle_fenster_eg_geschlossen</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="logic_boolean" id="DZ~=Vh9{AGqaB{1{J4|?">
                                 <field name="BOOL">TRUE</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                         <statement name="ELSE">
                           <block type="control" id="Nn+FIb%v0OvZ*ytwYYj+">
                             <mutation delay_input="false"></mutation>
                             <field name="OID">javascript.0.VIS-Status.alle_fenster_eg_geschlossen</field>
                             <field name="WITH_DELAY">FALSE</field>
                             <value name="VALUE">
                               <block type="logic_boolean" id="!XuypNuAE[ydF?#Gw%V3">
                                 <field name="BOOL">FALSE</field>
                               </block>
                             </value>
                           </block>
                         </statement>
                       </block>
                     </statement>
                    </block>
                    

                    Mod-Edit: Code/Log in Code Tags gepackt. Bitte benutzt die Code Tags Funktion -> </>
                    Hier gehts zur Hilfe.

                    1 Reply Last reply
                    0
                    • K Kuddel

                      @bug77 ich habe dein Problem noch nicht so ganz verstanden. könntest du vllt. zur Verdeutlichung paar Screenshots anhängen?

                      B Offline
                      B Offline
                      bug77
                      wrote on last edited by
                      #1008

                      @Kuddel said in [Vorstellung] Meine zweite Visualisierung:

                      @bug77 ich habe dein Problem noch nicht so ganz verstanden. könntest du vllt. zur Verdeutlichung paar Screenshots anhängen?

                      Einfach gefragt, kann ich das Icon der Navigation Buttons anhand eines States setzen, statt dem Iconverzeichnis.

                      Ich möchte einfach das Icon anzeigen, welches den aktuellen Kalendertag anzeigt.
                      Das Icon time_calendar.png zeigt ja immer die 14.

                      K 1 Reply Last reply
                      0
                      • D DennisMenger

                        @Kuddel danke

                        hier einmal ein Screenshot

                        blockly1.png

                        reicht das so?

                        K Offline
                        K Offline
                        Kuddel
                        wrote on last edited by Kuddel
                        #1009

                        @DennisMenger ich habe direkt eine Frage: Wieso verwendest du zwei Blöcke, also zwei Trigger für die selbe Aufgabe ?

                        Ich würde nur den unteren Triggger nehmen und damit testen:

                        f8d24bd0-a76e-4e57-acf7-899041e4903f-grafik.png

                        D 1 Reply Last reply
                        0
                        • B bug77

                          @Kuddel said in [Vorstellung] Meine zweite Visualisierung:

                          @bug77 ich habe dein Problem noch nicht so ganz verstanden. könntest du vllt. zur Verdeutlichung paar Screenshots anhängen?

                          Einfach gefragt, kann ich das Icon der Navigation Buttons anhand eines States setzen, statt dem Iconverzeichnis.

                          Ich möchte einfach das Icon anzeigen, welches den aktuellen Kalendertag anzeigt.
                          Das Icon time_calendar.png zeigt ja immer die 14.

                          K Offline
                          K Offline
                          Kuddel
                          wrote on last edited by
                          #1010

                          @bug77 wenn du es z.b. per Blockly hinbekomsmt den Pfad zum Icon in einen Datenpunkt zu schreiben, sollte das gehen.

                          Pfad könnte zb sein: /vis.0/VIS/Meine_Icons/Kalender/Tag_1.jpg
                          Datenobjekt = javascript.0.navi.kalender_icon_pfad

                          In der VIS muss dann den Pfad zum Icon wie folget hinterlegen: {javascript.0.navi.kalender_icon_pfad}

                          Entscheidend sind die geschweiften Klammern

                          O 1 Reply Last reply
                          0
                          • B Offline
                            B Offline
                            bug77
                            wrote on last edited by bug77
                            #1011

                            Vielen Dank, die Klammern waren der entscheidende Tip , danke 👍

                            Komisch ist nur, wenn ich icons in /vis.0/main/Meine_Icons/Kalender/ lege, sind sie über ftp vorhanden mit 777 Rechten, aber im Vis Editor ist der Ordner leer und man kann sie auf nicht direkt aufrufen 🧐

                            EDIT:
                            wie gesagt über Ftp/ssh sind die Dateien drauf, aber im Vis nicht vorhanden.
                            Wenn ich die Icons direkt im Vis Editor hochlade, geht es. naja komisch

                            Z 1 Reply Last reply
                            0
                            • K Kuddel

                              @DennisMenger ich habe direkt eine Frage: Wieso verwendest du zwei Blöcke, also zwei Trigger für die selbe Aufgabe ?

                              Ich würde nur den unteren Triggger nehmen und damit testen:

                              f8d24bd0-a76e-4e57-acf7-899041e4903f-grafik.png

                              D Online
                              D Online
                              DennisMenger
                              wrote on last edited by
                              #1012

                              @Kuddel das Blockly ist aus deiner Vis. Habe nur die Geräte ausgetauscht, daher dachte ich dass es sonst so bleiben kann. Ich teste das dann mal nur mit einem Trigger.

                              K 1 Reply Last reply
                              0
                              • K Kuddel

                                @bug77 wenn du es z.b. per Blockly hinbekomsmt den Pfad zum Icon in einen Datenpunkt zu schreiben, sollte das gehen.

                                Pfad könnte zb sein: /vis.0/VIS/Meine_Icons/Kalender/Tag_1.jpg
                                Datenobjekt = javascript.0.navi.kalender_icon_pfad

                                In der VIS muss dann den Pfad zum Icon wie folget hinterlegen: {javascript.0.navi.kalender_icon_pfad}

                                Entscheidend sind die geschweiften Klammern

                                O Offline
                                O Offline
                                Oli
                                wrote on last edited by Oli
                                #1013

                                @Kuddel

                                hier mal mein Lösungsansatz zum Adapter schalten:

                                Diese bitte in die Zeile 5 des Scriptes kopieren

                                createState('Adapter.Adapter', 0, { name: 'Adapter zum schalten', desc: 'Adapter zum schalten', type: 'number', unit: '', min: '0', max: '255', role: '',read: true, write: true });
                                

                                Das hier bitte in die Zeile 49

                                devicename="Adapter.Adapter"+counter.toString()+".KompletterNameAdapter";
                                        createState(devicename, 'empty', { name: 'Kompletter Name des Adapters', desc: '', type: 'string', role: '',read: true, write: true }); 
                                        setStateDelayed(devicename, devicenameName, 800);
                                

                                und das gier ganz unten nach den letzten Klammern "});" in eine neue Zeile

                                on({id:"javascript.0.Adapter.Adapter", change: 'any'}, function (dpobj) {
                                    if (getState("javascript.0.Adapter.Adapter").val != 0) {        
                                        const instanz = "javascript." + instance;
                                        var adapterName = getState(instanz + ".Adapter.Adapter").val;
                                        var adapter = getState(instanz + ".Adapter.Adapter" + adapterName + ".KompletterNameAdapter").val; // Name und Instanz des Adapters 
                                        var idAdapter = "system.adapter." + adapter;
                                        
                                        var obj = getObject(idAdapter);
                                        if (dpobj.state.val == false) {
                                            obj.common.enabled = true;  // Adapter einschalten
                                        } else if (dpobj.state.val == true) {
                                            obj.common.enabled = false;  // Adapter ausschalten
                                        }
                                        setObject(idAdapter, obj);
                                        setStateDelayed('javascript.0.Adapter.Adapter', 0, 800);        
                                    }
                                });   
                                

                                der Button dazu:

                                [{"tpl":"tplHqButton","data":{"oid":"javascript.0.Adapter.Adapter","min":"3","max":"3","timeAsInterval":"true","infoLeftFontSize":"12","infoFontRightSize":"12","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":"0","signals-icon-0":"{javascript.0.Adapter.Adapter3.Bild}","signals-icon-size-0":"40","signals-blink-0":true,"signals-horz-0":"10","signals-vert-0":"10","signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":"1","signals-icon-1":"{javascript.0.Adapter.Adapter3.Bild}","signals-icon-size-1":"40","signals-blink-1":false,"signals-horz-1":"10","signals-vert-1":"10","signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":"2","signals-icon-2":"{javascript.0.Adapter.Adapter3.Bild}","signals-icon-size-2":"40","signals-blink-2":true,"signals-horz-2":"10","signals-vert-2":"10","signals-hide-edit-2":false,"pushButton":false,"usejQueryStyle":false,"g_visibility":false,"styleActive":"hq-button-no-background","name":"Bild","infoLeftPaddingLeft":"15","infoLeftPaddingRight":"50","infoRightPaddingRight":"15","gestures-swipeLeft-limit":"-1","gestures-rotateLeft-limit":"2","styleNormal":"hq-button-no-background","testActive":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"descriptionLeft":"Side brush lifetime reset","descriptionLeftDisabled":true,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-oid-0":"javascript.0.Adapter.Adapter3.Connected","signals-oid-1":"javascript.0.Adapter.Adapter3.Connected","g_center":true,"iconName":"","btIconWidth":"56","offsetAuto":"true","leftOffset":"15","topOffset":"55","signals-oid-2":"javascript.0.Adapter.Adapter3.Connected"},"style":{"left":"1400px","top":"152px","width":"50px","height":"50px","border-width":"","border-style":"","border-color":"","border-radius":"10px","z-index":"20","text-align":"center","font-size":"small","box-shadow":"","background":"#212121","background-color":"#212121"},"widgetSet":"hqwidgets"}]
                                

                                hoffe es funktioniert.

                                Gruß
                                Oliver

                                K 1 Reply Last reply
                                0
                                • D DennisMenger

                                  @Kuddel das Blockly ist aus deiner Vis. Habe nur die Geräte ausgetauscht, daher dachte ich dass es sonst so bleiben kann. Ich teste das dann mal nur mit einem Trigger.

                                  K Offline
                                  K Offline
                                  Kuddel
                                  wrote on last edited by
                                  #1014

                                  @DennisMenger oh stimmt. nur ist bei mir der erste block mittlerweile deaktiviert

                                  D 1 Reply Last reply
                                  0
                                  • B bug77

                                    Vielen Dank, die Klammern waren der entscheidende Tip , danke 👍

                                    Komisch ist nur, wenn ich icons in /vis.0/main/Meine_Icons/Kalender/ lege, sind sie über ftp vorhanden mit 777 Rechten, aber im Vis Editor ist der Ordner leer und man kann sie auf nicht direkt aufrufen 🧐

                                    EDIT:
                                    wie gesagt über Ftp/ssh sind die Dateien drauf, aber im Vis nicht vorhanden.
                                    Wenn ich die Icons direkt im Vis Editor hochlade, geht es. naja komisch

                                    Z Offline
                                    Z Offline
                                    Zipkart
                                    wrote on last edited by
                                    #1015

                                    @bug77 hallo. Das liegt am letzten Update des Systems. Eigene Icons muss man nun über den integrierten Dateimanager hochladen. Als Ziel muss es ein Ordner unterhalb von vis.0 liegen. Ich musste auch alle verschieben. Danach ging es dann.

                                    Produktiv Proxmox / NUC / IOBroker / RFLInk / Mysensor / Raspimatic / Keymatic / HUE / MiHome / Tradfri / Shelly / SOnOff / Alexa / Sonos / Wandtablet / iPad

                                    Testsystem…
                                    immer mal wieder unterschiedlich

                                    1 Reply Last reply
                                    0
                                    • Firewalker99F Offline
                                      Firewalker99F Offline
                                      Firewalker99
                                      wrote on last edited by Firewalker99
                                      #1016

                                      Hallo Zusammen und schöne Feiertage,
                                      habe leichte Probleme beim Import der Java Script ZIP.

                                      • Will ich alle Scripte exportieren erscheint: File 2019-12-25-scripts.zip.zip not found.
                                      • Importiere ich die Zip 2019-11-06-scripts.zip ohne vorherigen Export bekomme ich beim in jedem Script Syntax Error und außer den Gruppen wird nicht angelegt.

                                      Ich vermute irgendwelche fehlenden Rechtevergaben weiß jedoch nicht wo ich hier ansetzen soll?


                                      BlocklyJavascriptTypeScript
                                      Fehler
                                      Cannot parse "script.js.java.shutdown.reboot_qnap-b": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.shutdown.shutdown_qnap-archiv_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.shutdown.shutdown_synology_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.sonstige.abfall_tage": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.sonstige.hm_meldungen": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.sonstige.kodi_fanart": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.sonstige.onlinezeit": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.sonstige.regenradar": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.sonstige.speedtest": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.sonstige.upnp_update": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.wol.wol_daniel": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.wol.wol_esxp01": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.wol.wol_esxp02": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.wol.wol_qnap_archiv": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.wol.wol_synology": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.wol.wol_winnas": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.wol.wol_xmg": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.heizung.wohnzimmer_v0_3": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.temperaturen": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.haushalt.geschirrspueler_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.iobroker-pi_api_sync": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.NAS_und_VMware.shutdown_synology_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.heizung.ankleide_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.heizung.kueche_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.heizung.schlafzimmer_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.aussenbeleuchtung": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.kueche_v0_2": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.schlafzimmer_v0_3": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.weckzeit_jenny": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.weihnachten": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.rolladen.leinwand_v0_3": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.rolladen.lueftung_rolladen_v0_2": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.alexa_ansagen.außentemperatur": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.kamera_auf_TV": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.tuerklingel": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.weckradio": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.buero_monitore_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.haushalt.trockner_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.haushalt.waschmaschine_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.kodi_steckdose_v0_3": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.ps4_lueftung_v0_2": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.schlafzimmer_tv_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.vu_receiver": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.backup_erstellen": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.reboot_skript": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.ressourcen_berechnungen": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.iobroker": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.iobroker_instanz": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.iobroker_pi": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.iobroker_pi_instanz": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.qnap_archiv": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.qnap_b": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.sonoff_bewaesserung": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.synology": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.unifi_ap_eg": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.unifi_ap_og": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.unifi_ap_pavillon": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.unifi_switch_rack": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.unifi_switch_wohnzimmer": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.win10": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.winnas": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.wlan_failover": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.java.sonstige.logs_vis": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.NAS_und_VMware.start_stop_esxp": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.kodi_licht_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.schriftleuchte_v0_2": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.weckzeit_daniel": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.kamera": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.kamera_überwachung": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.system_ctr_vis": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.esx_nuc": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.NAS_und_VMware.wake_on_lan_v0_2": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.rolladen.rolladen_beamer_v0_3": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.rolladen.rolladen_verdunkelung_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.briefkasten_tuerklingel_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.anwesenheit": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.echo_stati": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.ccu": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.nut-server": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.omv": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.pihole": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.sophos": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.unifi_controller": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.uptime.vu_wohnzimmer": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.NAS_und_VMware.shutdown_WinNAS_v01": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.lichterkette_flur_v0_3": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.licht.lichtkugeln_v0_2": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.usv_shutdown": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.steckdosen.harmony_schaltung_v0_4": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.tablet": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.vis_status": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.alexa_benachrichtigungen": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.zeiten_v01": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.rolladen.rolladen_tag_nacht": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.system.adapter_starten_stoppen": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.benachrichtigungen_v0_1": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.staubsauger_v0_2": SyntaxError: Unexpected token / in JSON at position 0, Cannot parse "script.js.smarthome.sontiges.bewaesserung": SyntaxError: Unexpected token / in JSON at position 0

                                      Bass-TB 1 Reply Last reply
                                      0
                                      • K Kuddel

                                        @DennisMenger oh stimmt. nur ist bei mir der erste block mittlerweile deaktiviert

                                        D Online
                                        D Online
                                        DennisMenger
                                        wrote on last edited by
                                        #1017

                                        @Kuddel

                                        blockly2.png

                                        Das Blockly funktioniert leider nur zum Teil. Datenpunkt wird geändert in false, wenn ich ein Fenster öffne. Schließe ich das aber wieder, wird der Datenpunkt aber nicht wieder auf true gesetzt. Ich habe keine Ahnung warum.

                                        K 1 Reply Last reply
                                        0
                                        • D DennisMenger

                                          @Kuddel

                                          blockly2.png

                                          Das Blockly funktioniert leider nur zum Teil. Datenpunkt wird geändert in false, wenn ich ein Fenster öffne. Schließe ich das aber wieder, wird der Datenpunkt aber nicht wieder auf true gesetzt. Ich habe keine Ahnung warum.

                                          K Offline
                                          K Offline
                                          Kuddel
                                          wrote on last edited by
                                          #1018

                                          @DennisMenger probiere mal statt "sonst" den Befehl "sonst falls" und prüfe ob alle fenster geschlossen sind und setze dann den DP auf true

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          242

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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