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. Tester
  4. Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)

NEWS

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

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

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

Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)

Scheduled Pinned Locked Moved Tester
appdark-modeiqontrolresponsivevisvisualisierungvisualizationwidget
7.6k Posts 296 Posters 7.0m Views 201 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.
  • dslraserD dslraser

    @s-bormann sagte in Test Adapter iQontrol 1.2.x:

    Sag mal, kann man mit den neuen ADDITIONAL_CONTROLS nicht so was basteln? Eine value-List, in der man den Sender auswählt, und darunter ein oder mehrere Strings mit den EPG-Infos. Dahinter steckt dann ein Blockly-Script, dass dann die String-Datenpunkte entsprechend der Auswahl der value-List befüllt.

    meinst Du so in etwa ?

    Bildschirmfoto 2020-10-07 um 22.18.34.png

    EDIT: übrigens sind beim Start trotz anderer Einstellung alle Sektionen geöffnet

    Bildschirmfoto 2020-10-07 um 22.46.12.png

    V Offline
    V Offline
    vepman
    wrote on last edited by
    #3337

    @dslraser sagte in Test Adapter iQontrol 1.2.x:

    EDIT: übrigens sind beim Start trotz anderer Einstellung alle Sektionen geöffnet

    Verstehe ich nicht. Egal was ich einstelle, alle Sektionen bleiben zugeklappt.

    K 1 Reply Last reply
    1
    • V vepman

      @dslraser sagte in Test Adapter iQontrol 1.2.x:

      EDIT: übrigens sind beim Start trotz anderer Einstellung alle Sektionen geöffnet

      Verstehe ich nicht. Egal was ich einstelle, alle Sektionen bleiben zugeklappt.

      K Offline
      K Offline
      Kueppert
      wrote on last edited by
      #3338

      @vepman ist bei mir genauso ;)

      UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

      1 Reply Last reply
      1
      • dslraserD Offline
        dslraserD Offline
        dslraser
        Forum Testing Most Active
        wrote on last edited by
        #3339

        @blackeagle998 @s-bormann

        seit dem letzten Update auf 1.3.1 geht bei mir die Vorhersage mit klick auf das "unsichtbare" Icon oben links nicht mehr auf ?
        @blackeagle998 geht das bei Dir noch ?

        Screenshot_20201008-214159_Chrome.jpg

        Ich habe eben nochmal drüber installiert und auch einen upload gemacht.

        B 2 Replies Last reply
        0
        • dslraserD dslraser

          @blackeagle998 @s-bormann

          seit dem letzten Update auf 1.3.1 geht bei mir die Vorhersage mit klick auf das "unsichtbare" Icon oben links nicht mehr auf ?
          @blackeagle998 geht das bei Dir noch ?

          Screenshot_20201008-214159_Chrome.jpg

          Ich habe eben nochmal drüber installiert und auch einen upload gemacht.

          B Offline
          B Offline
          blackeagle998
          wrote on last edited by
          #3340

          @dslraser @s-bormann
          Hmm stimmt, jetzt lässt sich der virtuelle State einer Widget Kachel nicht mehr schalten, wenn das Icon blank ist.
          Kann man die Option pro Kachel steuerbar machen?

          s.bormannS 1 Reply Last reply
          0
          • dslraserD dslraser

            @blackeagle998 @s-bormann

            seit dem letzten Update auf 1.3.1 geht bei mir die Vorhersage mit klick auf das "unsichtbare" Icon oben links nicht mehr auf ?
            @blackeagle998 geht das bei Dir noch ?

            Screenshot_20201008-214159_Chrome.jpg

            Ich habe eben nochmal drüber installiert und auch einen upload gemacht.

            B Offline
            B Offline
            blackeagle998
            wrote on last edited by
            #3341

            @dslraser
            Ich nutze mittlerweile das Wettericon rechts oben, um die Wettervorschau anzuzeigen / auszublenden.
            Wäre das für dich eine Option?

            Wenn ja, müsstest du mir mal dein komplettes Skript zur Verfügung stellen, dann kann ich dir helfen, das anzupassen.
            Dafür bräuchtest du lediglich einen zusätzlichen Datenpunkt (boolean, switch), der über true/false die Anzeige (true = Kachel aktiv = Größe 3x2, false = Kachel inaktiv = Größe 3x1) regelt.

            dslraserD 1 Reply Last reply
            0
            • B blackeagle998

              @dslraser
              Ich nutze mittlerweile das Wettericon rechts oben, um die Wettervorschau anzuzeigen / auszublenden.
              Wäre das für dich eine Option?

              Wenn ja, müsstest du mir mal dein komplettes Skript zur Verfügung stellen, dann kann ich dir helfen, das anzupassen.
              Dafür bräuchtest du lediglich einen zusätzlichen Datenpunkt (boolean, switch), der über true/false die Anzeige (true = Kachel aktiv = Größe 3x2, false = Kachel inaktiv = Größe 3x1) regelt.

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              wrote on last edited by dslraser
              #3342

              @blackeagle998
              Moin, danke für Deine Hilfe. Das Script ist noch das hier aus dem Forum (V7 ohne Müll)

              Edit: müßte das hier sein
              https://forum.iobroker.net/post/491770

              const DP_Uhr_digital = '0_userdata.0.Uhr.Digital_Uhr_HTML_Uhrzeit_und_Datum_V7';
              
              fctInit();
              
              function fctInit(){
               if(!existsState(DP_Uhr_digital)) {
                   createState(DP_Uhr_digital,
                       {type: 'string', name: 'iQontrol Uhr', role: 'value', read: true , write: true}
                   );
               }
               setStateDelayed(DP_Uhr_digital, fctUhrzeitDatumWetter_V7(), 1000);
               schedule("*/10 * * * * *", function () {
                   setState(DP_Uhr_digital, fctUhrzeitDatumWetter_V7());
               })
              }
              
              function fctUhrzeitDatumWetter_V7() {
                let str_Uhrzeit         = String(formatDate(new Date(), "hh:mm"));
                let str_Datum           = String(formatDate(new Date(), "DD.MM.YYYY"));
                let str_Wochentag       = String(formatDate(new Date(), "WW", "de"));
                
                let str_color_body      = '#005c78';
                let str_color_cell      = '#47575c';
                let str_color_font      = 'Silver';
               
                let str_position_font   = 'left'
                let str_Tageszeit       = 'Tag';
                let str_HTML            = '';
                let str_HTML_style      = '';
                let image_Wetter        = '';
              
                //in diesem iQontrol Unterordner liegen die Wetter-Icons
                image_Wetter        = './../iqontrol.meta/userimages/usericons/wetter/';
              
              // ##########################################################################
              // CSS Style (Formatierung der HTML Elemente)
              // ##########################################################################
                str_HTML_style = str_HTML_style + '<style>';
                str_HTML_style = str_HTML_style + 'body {';
                str_HTML_style = str_HTML_style + 'background-color:' + str_color_body + ';';
                str_HTML_style = str_HTML_style + '}';
              
                str_HTML_style = str_HTML_style + 'span {';
                //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
                //str_HTML_style = str_HTML_style + 'border-radius:5px;border-collapse:separate;border:1px solid gainsboro;border-color:White;';
                //Textausrichtung
                str_HTML_style = str_HTML_style + 'text-align:' + str_position_font + ';';
                //Schriftfarbe
                str_HTML_style = str_HTML_style + 'color:' + str_color_font + ';';
                //Wer keine Hintergrundfarbe für die Boxen will, kommentiert die nachfolgende Zeile aus oder löscht sie.
                //str_HTML_style = str_HTML_style + 'background-color:' + str_color_cell + ';';
                str_HTML_style = str_HTML_style + '}';
              
                str_HTML_style = str_HTML_style + 'td {';
                str_HTML_style = str_HTML_style + 'border-width:1px;';
                str_HTML_style = str_HTML_style + 'border-style:solid;';
                str_HTML_style = str_HTML_style + 'border-color:black;';
                str_HTML_style = str_HTML_style + '}';
              
                str_HTML_style = str_HTML_style + '.container_column {';
                str_HTML_style = str_HTML_style + 'display:flex;';
                //Elemente werden untereinander dargestellt
                str_HTML_style = str_HTML_style + 'flex-direction: column;';
                str_HTML_style = str_HTML_style + 'justify-content: flex-start;';
                //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
                //str_HTML_style = str_HTML_style + 'border-radius:5px;border-collapse:separate;border:2px solid gainsboro;border-color:yellow;';
                str_HTML_style = str_HTML_style + '}';
              
                str_HTML_style = str_HTML_style + '.container_row {';
                str_HTML_style = str_HTML_style + 'display: flex;';
                //Elemente werden untereinander dargestellt
                str_HTML_style = str_HTML_style + 'flex-direction: row;';
                str_HTML_style = str_HTML_style + 'justify-content: space-between;';
                //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
                //str_HTML_style = str_HTML_style + 'border-radius:5px;border-collapse:separate;border:2px solid gainsboro;border-color:yellow;';
                str_HTML_style = str_HTML_style + '}';
              
                str_HTML_style = str_HTML_style + 'input {';
                str_HTML_style = str_HTML_style + 'height:10vw;';
                str_HTML_style = str_HTML_style + 'width:10vw;';
                str_HTML_style = str_HTML_style + '}';
              
                str_HTML_style = str_HTML_style + '.img_wetter {';
                str_HTML_style = str_HTML_style + 'height:15vw;';
                str_HTML_style = str_HTML_style + 'width:15vw;';
                str_HTML_style = str_HTML_style + '}';
               
                //Hier habt ihr die Möglichkeit, CSS Eigenschaften für jede Box einzeln einzutragen.
                //Bspw. könnt ihr hier eine separate Hintergrundfarbe einstellen.
                //Außerdem steuert ihr hier die Schriftgrößen der einzelnen Boxen
                str_HTML_style = str_HTML_style + '.box_uhr {font-size:14vmax;}';
                str_HTML_style = str_HTML_style + '.box_datum {font-size:4vmax;text-align:center;}';
                str_HTML_style = str_HTML_style + '.box_wetter {font-size:4vmax;margin-right:1.5vw;text-align:center;}';
                
                str_HTML_style = str_HTML_style + '.table_Wettervorschau {';
                str_HTML_style = str_HTML_style + 'margin-top:3vw;';
                str_HTML_style = str_HTML_style + 'border-collapse: collapse;';
                str_HTML_style = str_HTML_style + 'font-size:3vmax;';
                str_HTML_style = str_HTML_style + 'color:' + str_color_font + ';';
                str_HTML_style = str_HTML_style + '}';
                str_HTML_style = str_HTML_style + '</style>';
              
              // ##########################################################################
              // Prüfen ob Tag oder Nacht um Sonne oder Mond Icons anzuzeigen
              // ##########################################################################
                //Wenn ihr den nachfolgenden Datenpunkt 'javascript.0.Astro.Tageszeit.current' auch habt, könnt ihr das einkommentieren --> /* und */ löschen
                //--> dafür gibt es ein ASTRO Skript hier im Forum
                /*
                switch (getState('javascript.0.Astro.Tageszeit.current').val){
                    case "Sonnenuntergang":
                    case "Abenddämmerung":
                    case "Nacht":
                    case "Morgendämmerung":
                        str_Tageszeit = 'Nacht';
                        break;
                    default:
                        break;
                }
                */
              
              // ##########################################################################
              // Ab hier werden die verschiedenen HTML Flex Container zusammengebaut
              // ##########################################################################
                //Box 1 = Uhrzeit und Wettersymbol
                str_HTML = str_HTML + str_HTML_style + '<div class="container_row">';
                str_HTML = str_HTML + '<span class="box_uhr"><b>' + str_Uhrzeit + ' Uhr</b></span>';
                if (str_Tageszeit == 'Tag'){
                    str_HTML = str_HTML + '<span><img class="img_wetter" src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_1.current.symbol_value').val + '.png' + '"/></span>';
                }else{
                    str_HTML = str_HTML + '<span><img class="img_wetter" src="' + image_Wetter + 'mond/' + getState('daswetter.0.NextHours.Location_1.Day_1.moon_symbol').val + '.png' + '"/></span>';
                }
                str_HTML = str_HTML + '</div>';
              
                //Box 2 = Wochentag/Datum, Abfallentsorgung und aktuelle Wetterdaten
                str_HTML = str_HTML + '<div class="container_row">';
                str_HTML = str_HTML + '<div class="container_column">';
                str_HTML = str_HTML + '<span class="box_datum"><b><i>' + str_Wochentag + ', ' + str_Datum + '</i></b></span>';
                str_HTML = str_HTML + '</div>';
                str_HTML = str_HTML + '<div class="container_column">';
                str_HTML = str_HTML + '<span class="box_wetter"><b><i>' + Math.round(getState('hm-rpc.0.0010D8A98AD4AC.1.ACTUAL_TEMPERATURE'/*Temperatursensor aussen ACTUAL TEMPERATURE*/).val) + '°C</i></b></span>';
                if (str_Tageszeit == 'Tag'){
                    str_HTML = str_HTML + '<span class="box_wetter"><i>' + getState('daswetter.0.NextHours.Location_1.Day_1.current.symbol_desc').val + '</i></span>';
                }else{
                    str_HTML = str_HTML + '<span class="box_wetter"><i>' + str_Tageszeit + '</i></span>';
                }
                
                str_HTML = str_HTML + '</div>';
                str_HTML = str_HTML + '</div>';
              
                //Box 3 = Wettervorschau
                str_HTML = str_HTML + '<div class="container_column">';
                str_HTML = str_HTML + '<table class="table_Wettervorschau">';
              
                str_HTML = str_HTML + '<tr>';
                str_HTML = str_HTML + '<td>heute</td>';
                str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_1.symbol_value').val + '.png' + '"/></td>';
                str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_1.tempmin_value').val + '°C bis ';
                str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_1.tempmax_value').val + '°C</td>';
                //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_1.humidity_value').val + '%</td>';
                str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_1.symbol_desc').val + '</td>';
                str_HTML = str_HTML + '</tr>';
              
                str_HTML = str_HTML + '<tr>';
                str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_2.day_name').val + '</td>';
                str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_2.symbol_value').val + '.png' + '"/></td>';
                str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_2.tempmin_value').val + '°C bis ';
                str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_2.tempmax_value').val + '°C</td>';
                //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_2.humidity_value').val + '%</td>';
                str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_2.symbol_desc').val + '</td>';
                str_HTML = str_HTML + '</tr>';
              
                str_HTML = str_HTML + '<tr>';
                str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_3.day_name').val + '</td>';
                str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_3.symbol_value').val + '.png' + '"/></td>';
                str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_3.tempmin_value').val + '°C bis ';
                str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_3.tempmax_value').val + '°C</td>';
                //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_3.humidity_value').val + '%</td>';
                str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_3.symbol_desc').val + '</td>';
                str_HTML = str_HTML + '</tr>';
              
                str_HTML = str_HTML + '<tr>';
                str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_4.day_name').val + '</td>';
                str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_4.symbol_value').val + '.png' + '"/></td>';
                str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_4.tempmin_value').val + '°C bis ';
                str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_4.tempmax_value').val + '°C</td>';
                //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_4.humidity_value').val + '%</td>';
                str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_4.symbol_desc').val + '</td>';
                str_HTML = str_HTML + '</tr>';
              
                str_HTML = str_HTML + '<tr>';
                str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_5.day_name').val + '</td>';
                str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_5.symbol_value').val + '.png' + '"/></td>';
                str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_5.tempmin_value').val + '°C bis ';
                str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_5.tempmax_value').val + '°C</td>';
                //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_5.humidity_value').val + '%</td>';
                str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_5.symbol_desc').val + '</td>';
                str_HTML = str_HTML + '</tr>';
              
                str_HTML = str_HTML + '</table>';
                str_HTML = str_HTML + '</div>';
              
                return str_HTML;
              }
              
              

              B 1 Reply Last reply
              0
              • dslraserD dslraser

                @blackeagle998
                Moin, danke für Deine Hilfe. Das Script ist noch das hier aus dem Forum (V7 ohne Müll)

                Edit: müßte das hier sein
                https://forum.iobroker.net/post/491770

                const DP_Uhr_digital = '0_userdata.0.Uhr.Digital_Uhr_HTML_Uhrzeit_und_Datum_V7';
                
                fctInit();
                
                function fctInit(){
                 if(!existsState(DP_Uhr_digital)) {
                     createState(DP_Uhr_digital,
                         {type: 'string', name: 'iQontrol Uhr', role: 'value', read: true , write: true}
                     );
                 }
                 setStateDelayed(DP_Uhr_digital, fctUhrzeitDatumWetter_V7(), 1000);
                 schedule("*/10 * * * * *", function () {
                     setState(DP_Uhr_digital, fctUhrzeitDatumWetter_V7());
                 })
                }
                
                function fctUhrzeitDatumWetter_V7() {
                  let str_Uhrzeit         = String(formatDate(new Date(), "hh:mm"));
                  let str_Datum           = String(formatDate(new Date(), "DD.MM.YYYY"));
                  let str_Wochentag       = String(formatDate(new Date(), "WW", "de"));
                  
                  let str_color_body      = '#005c78';
                  let str_color_cell      = '#47575c';
                  let str_color_font      = 'Silver';
                 
                  let str_position_font   = 'left'
                  let str_Tageszeit       = 'Tag';
                  let str_HTML            = '';
                  let str_HTML_style      = '';
                  let image_Wetter        = '';
                
                  //in diesem iQontrol Unterordner liegen die Wetter-Icons
                  image_Wetter        = './../iqontrol.meta/userimages/usericons/wetter/';
                
                // ##########################################################################
                // CSS Style (Formatierung der HTML Elemente)
                // ##########################################################################
                  str_HTML_style = str_HTML_style + '<style>';
                  str_HTML_style = str_HTML_style + 'body {';
                  str_HTML_style = str_HTML_style + 'background-color:' + str_color_body + ';';
                  str_HTML_style = str_HTML_style + '}';
                
                  str_HTML_style = str_HTML_style + 'span {';
                  //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
                  //str_HTML_style = str_HTML_style + 'border-radius:5px;border-collapse:separate;border:1px solid gainsboro;border-color:White;';
                  //Textausrichtung
                  str_HTML_style = str_HTML_style + 'text-align:' + str_position_font + ';';
                  //Schriftfarbe
                  str_HTML_style = str_HTML_style + 'color:' + str_color_font + ';';
                  //Wer keine Hintergrundfarbe für die Boxen will, kommentiert die nachfolgende Zeile aus oder löscht sie.
                  //str_HTML_style = str_HTML_style + 'background-color:' + str_color_cell + ';';
                  str_HTML_style = str_HTML_style + '}';
                
                  str_HTML_style = str_HTML_style + 'td {';
                  str_HTML_style = str_HTML_style + 'border-width:1px;';
                  str_HTML_style = str_HTML_style + 'border-style:solid;';
                  str_HTML_style = str_HTML_style + 'border-color:black;';
                  str_HTML_style = str_HTML_style + '}';
                
                  str_HTML_style = str_HTML_style + '.container_column {';
                  str_HTML_style = str_HTML_style + 'display:flex;';
                  //Elemente werden untereinander dargestellt
                  str_HTML_style = str_HTML_style + 'flex-direction: column;';
                  str_HTML_style = str_HTML_style + 'justify-content: flex-start;';
                  //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
                  //str_HTML_style = str_HTML_style + 'border-radius:5px;border-collapse:separate;border:2px solid gainsboro;border-color:yellow;';
                  str_HTML_style = str_HTML_style + '}';
                
                  str_HTML_style = str_HTML_style + '.container_row {';
                  str_HTML_style = str_HTML_style + 'display: flex;';
                  //Elemente werden untereinander dargestellt
                  str_HTML_style = str_HTML_style + 'flex-direction: row;';
                  str_HTML_style = str_HTML_style + 'justify-content: space-between;';
                  //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
                  //str_HTML_style = str_HTML_style + 'border-radius:5px;border-collapse:separate;border:2px solid gainsboro;border-color:yellow;';
                  str_HTML_style = str_HTML_style + '}';
                
                  str_HTML_style = str_HTML_style + 'input {';
                  str_HTML_style = str_HTML_style + 'height:10vw;';
                  str_HTML_style = str_HTML_style + 'width:10vw;';
                  str_HTML_style = str_HTML_style + '}';
                
                  str_HTML_style = str_HTML_style + '.img_wetter {';
                  str_HTML_style = str_HTML_style + 'height:15vw;';
                  str_HTML_style = str_HTML_style + 'width:15vw;';
                  str_HTML_style = str_HTML_style + '}';
                 
                  //Hier habt ihr die Möglichkeit, CSS Eigenschaften für jede Box einzeln einzutragen.
                  //Bspw. könnt ihr hier eine separate Hintergrundfarbe einstellen.
                  //Außerdem steuert ihr hier die Schriftgrößen der einzelnen Boxen
                  str_HTML_style = str_HTML_style + '.box_uhr {font-size:14vmax;}';
                  str_HTML_style = str_HTML_style + '.box_datum {font-size:4vmax;text-align:center;}';
                  str_HTML_style = str_HTML_style + '.box_wetter {font-size:4vmax;margin-right:1.5vw;text-align:center;}';
                  
                  str_HTML_style = str_HTML_style + '.table_Wettervorschau {';
                  str_HTML_style = str_HTML_style + 'margin-top:3vw;';
                  str_HTML_style = str_HTML_style + 'border-collapse: collapse;';
                  str_HTML_style = str_HTML_style + 'font-size:3vmax;';
                  str_HTML_style = str_HTML_style + 'color:' + str_color_font + ';';
                  str_HTML_style = str_HTML_style + '}';
                  str_HTML_style = str_HTML_style + '</style>';
                
                // ##########################################################################
                // Prüfen ob Tag oder Nacht um Sonne oder Mond Icons anzuzeigen
                // ##########################################################################
                  //Wenn ihr den nachfolgenden Datenpunkt 'javascript.0.Astro.Tageszeit.current' auch habt, könnt ihr das einkommentieren --> /* und */ löschen
                  //--> dafür gibt es ein ASTRO Skript hier im Forum
                  /*
                  switch (getState('javascript.0.Astro.Tageszeit.current').val){
                      case "Sonnenuntergang":
                      case "Abenddämmerung":
                      case "Nacht":
                      case "Morgendämmerung":
                          str_Tageszeit = 'Nacht';
                          break;
                      default:
                          break;
                  }
                  */
                
                // ##########################################################################
                // Ab hier werden die verschiedenen HTML Flex Container zusammengebaut
                // ##########################################################################
                  //Box 1 = Uhrzeit und Wettersymbol
                  str_HTML = str_HTML + str_HTML_style + '<div class="container_row">';
                  str_HTML = str_HTML + '<span class="box_uhr"><b>' + str_Uhrzeit + ' Uhr</b></span>';
                  if (str_Tageszeit == 'Tag'){
                      str_HTML = str_HTML + '<span><img class="img_wetter" src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_1.current.symbol_value').val + '.png' + '"/></span>';
                  }else{
                      str_HTML = str_HTML + '<span><img class="img_wetter" src="' + image_Wetter + 'mond/' + getState('daswetter.0.NextHours.Location_1.Day_1.moon_symbol').val + '.png' + '"/></span>';
                  }
                  str_HTML = str_HTML + '</div>';
                
                  //Box 2 = Wochentag/Datum, Abfallentsorgung und aktuelle Wetterdaten
                  str_HTML = str_HTML + '<div class="container_row">';
                  str_HTML = str_HTML + '<div class="container_column">';
                  str_HTML = str_HTML + '<span class="box_datum"><b><i>' + str_Wochentag + ', ' + str_Datum + '</i></b></span>';
                  str_HTML = str_HTML + '</div>';
                  str_HTML = str_HTML + '<div class="container_column">';
                  str_HTML = str_HTML + '<span class="box_wetter"><b><i>' + Math.round(getState('hm-rpc.0.0010D8A98AD4AC.1.ACTUAL_TEMPERATURE'/*Temperatursensor aussen ACTUAL TEMPERATURE*/).val) + '°C</i></b></span>';
                  if (str_Tageszeit == 'Tag'){
                      str_HTML = str_HTML + '<span class="box_wetter"><i>' + getState('daswetter.0.NextHours.Location_1.Day_1.current.symbol_desc').val + '</i></span>';
                  }else{
                      str_HTML = str_HTML + '<span class="box_wetter"><i>' + str_Tageszeit + '</i></span>';
                  }
                  
                  str_HTML = str_HTML + '</div>';
                  str_HTML = str_HTML + '</div>';
                
                  //Box 3 = Wettervorschau
                  str_HTML = str_HTML + '<div class="container_column">';
                  str_HTML = str_HTML + '<table class="table_Wettervorschau">';
                
                  str_HTML = str_HTML + '<tr>';
                  str_HTML = str_HTML + '<td>heute</td>';
                  str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_1.symbol_value').val + '.png' + '"/></td>';
                  str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_1.tempmin_value').val + '°C bis ';
                  str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_1.tempmax_value').val + '°C</td>';
                  //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_1.humidity_value').val + '%</td>';
                  str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_1.symbol_desc').val + '</td>';
                  str_HTML = str_HTML + '</tr>';
                
                  str_HTML = str_HTML + '<tr>';
                  str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_2.day_name').val + '</td>';
                  str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_2.symbol_value').val + '.png' + '"/></td>';
                  str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_2.tempmin_value').val + '°C bis ';
                  str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_2.tempmax_value').val + '°C</td>';
                  //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_2.humidity_value').val + '%</td>';
                  str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_2.symbol_desc').val + '</td>';
                  str_HTML = str_HTML + '</tr>';
                
                  str_HTML = str_HTML + '<tr>';
                  str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_3.day_name').val + '</td>';
                  str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_3.symbol_value').val + '.png' + '"/></td>';
                  str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_3.tempmin_value').val + '°C bis ';
                  str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_3.tempmax_value').val + '°C</td>';
                  //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_3.humidity_value').val + '%</td>';
                  str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_3.symbol_desc').val + '</td>';
                  str_HTML = str_HTML + '</tr>';
                
                  str_HTML = str_HTML + '<tr>';
                  str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_4.day_name').val + '</td>';
                  str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_4.symbol_value').val + '.png' + '"/></td>';
                  str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_4.tempmin_value').val + '°C bis ';
                  str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_4.tempmax_value').val + '°C</td>';
                  //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_4.humidity_value').val + '%</td>';
                  str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_4.symbol_desc').val + '</td>';
                  str_HTML = str_HTML + '</tr>';
                
                  str_HTML = str_HTML + '<tr>';
                  str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_5.day_name').val + '</td>';
                  str_HTML = str_HTML + '<td><img src="' + image_Wetter + getState('daswetter.0.NextHours.Location_1.Day_5.symbol_value').val + '.png' + '"/></td>';
                  str_HTML = str_HTML + '<td nowrap>' + getState('daswetter.0.NextHours.Location_1.Day_5.tempmin_value').val + '°C bis ';
                  str_HTML = str_HTML + getState('daswetter.0.NextHours.Location_1.Day_5.tempmax_value').val + '°C</td>';
                  //str_HTML = str_HTML + '<td>' + getState('daswetter.0.NextHours.Location_1.Day_5.humidity_value').val + '%</td>';
                  str_HTML = str_HTML + '<td align=left>' + getState('daswetter.0.NextHours.Location_1.Day_5.symbol_desc').val + '</td>';
                  str_HTML = str_HTML + '</tr>';
                
                  str_HTML = str_HTML + '</table>';
                  str_HTML = str_HTML + '</div>';
                
                  return str_HTML;
                }
                
                

                B Offline
                B Offline
                blackeagle998
                wrote on last edited by blackeagle998
                #3343

                Hier stand was.

                dslraserD 2 Replies Last reply
                2
                • B blackeagle998

                  Hier stand was.

                  dslraserD Offline
                  dslraserD Offline
                  dslraser
                  Forum Testing Most Active
                  wrote on last edited by
                  #3344

                  @blackeagle998
                  Danke Dir. Ich muß jetzt erstmal los. Probiere ich dann später und gebe Dir Rückmeldung.

                  1 Reply Last reply
                  0
                  • B blackeagle998

                    Hier stand was.

                    dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    wrote on last edited by dslraser
                    #3345

                    @blackeagle998 sagte in Test Adapter iQontrol 1.2.x:

                    Anschließend solltest du per Klick auf das Wetter-Icon oben rechts die Anzeige steuern können.
                    Probier mal bitte ob es geht.

                    Funktioniert prima. Danke Dir.

                    2_5188614552798891176.gif

                    1 Reply Last reply
                    1
                    • B Offline
                      B Offline
                      blackeagle998
                      wrote on last edited by blackeagle998
                      #3346

                      Hier stand was.

                      K C M 3 Replies Last reply
                      2
                      • B blackeagle998

                        Hier stand was.

                        K Offline
                        K Offline
                        Kueppert
                        wrote on last edited by Kueppert
                        #3347

                        @blackeagle998 ich denke, das kannst du auf jeden Fall hier reinstellen. Ggf kann man das mit irgendwo beim Adapter packen als Idee zu einer Ideensammlung? :)
                        Ich hab noch den Vacuum v1, da gibts keine Räume, aber die restlichen Funktionen sollten funktionieren.

                        UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                        B dslraserD 2 Replies Last reply
                        0
                        • K Kueppert

                          @blackeagle998 ich denke, das kannst du auf jeden Fall hier reinstellen. Ggf kann man das mit irgendwo beim Adapter packen als Idee zu einer Ideensammlung? :)
                          Ich hab noch den Vacuum v1, da gibts keine Räume, aber die restlichen Funktionen sollten funktionieren.

                          B Offline
                          B Offline
                          blackeagle998
                          wrote on last edited by blackeagle998
                          #3348

                          @Kueppert
                          Hab's oben ergänzt :wink:
                          Hmm kann sein, dass es momentan nur geht, wenn auch Räume gefunden werden.
                          Wusste nicht, dass es auch ohne Raumdefinitionen geht.

                          Probier es mal, wenn nicht, muss ich da nochmal ran...

                          K 1 Reply Last reply
                          0
                          • B blackeagle998

                            @Kueppert
                            Hab's oben ergänzt :wink:
                            Hmm kann sein, dass es momentan nur geht, wenn auch Räume gefunden werden.
                            Wusste nicht, dass es auch ohne Raumdefinitionen geht.

                            Probier es mal, wenn nicht, muss ich da nochmal ran...

                            K Offline
                            K Offline
                            Kueppert
                            wrote on last edited by Kueppert
                            #3349

                            @blackeagle998 wofür ist das css- und js-file? ^^ Ansonsten hört sich das total easy an. Probiere ich später direkt mal aus ^^
                            NACHTRAG: steht in Punkt 1 ^^

                            UDM Pro, Intel NUC - ioBroker in Proxmox-VM, PiHole+Grafana&Influx+TasmoAdmin in LXCs, Raspberry Pi3 (als CCU), Zigbee-Stick Sonoff, Synology DS918+

                            1 Reply Last reply
                            0
                            • K Kueppert

                              @blackeagle998 ich denke, das kannst du auf jeden Fall hier reinstellen. Ggf kann man das mit irgendwo beim Adapter packen als Idee zu einer Ideensammlung? :)
                              Ich hab noch den Vacuum v1, da gibts keine Räume, aber die restlichen Funktionen sollten funktionieren.

                              dslraserD Offline
                              dslraserD Offline
                              dslraser
                              Forum Testing Most Active
                              wrote on last edited by
                              #3350

                              @Kueppert sagte in Test Adapter iQontrol 1.2.x:

                              Ich hab noch den Vacuum v1, da gibts keine Räume, aber die restlichen Funktionen sollten funktionieren.

                              Ich habe auch noch den V1, mal schauen was da geht...

                              1 Reply Last reply
                              0
                              • s.bormannS s.bormann

                                @blackeagle998 sagte in Test Adapter iQontrol 1.2.x:

                                @s-bormann
                                Hey, openDialog einer Popup Kachel mit URL wird nicht vernünftig skaliert, das Popup rutscht immer aus dem Bild rechts raus:
                                Screenshot_20201004-232908_Chrome_1.png

                                Bei einem "normalen" Dialog klappt es:
                                Screenshot_20201004-232945_Chrome_1.png

                                Kannst du mal bitte schauen ob du da noch was drehen kannst?

                                Versuchs mal mit der aktuellen Github-Version.

                                M Offline
                                M Offline
                                muuulle
                                wrote on last edited by
                                #3351

                                @s-bormann
                                Magst du einmal einen kurzen Ausblick geben, was deine nächsten Schwerpunkte beim Adapter sind?

                                Ich denke, dass ich nicht der einzige Neugierige bin 😊

                                s.bormannS 1 Reply Last reply
                                1
                                • dslraserD dslraser

                                  @s-bormann
                                  Ich habe bisher eine kleine Kachel als Wert benutzt um mir html Listen anzuzeigen.
                                  Eine aktive Kachel ist hell mit entsprechendem Symbol und eine inaktive mit anderem Symbol.

                                  aktiv

                                  Screenshot_20201007-203627_Chrome.jpg

                                  inaktiv

                                  Screenshot_20201007-203647_Chrome.jpg

                                  Liste als PopUp

                                  Screenshot_20201007-203301_Chrome.jpg

                                  Jetzt möchte ich das Ganze als Widget nutzen, das funktioniert auch soweit, bis auf eine Kleinigkeit. Ich bekomme den Überzug der Kachel nicht weg

                                  links als Wert /rechts als Widget

                                  Screenshot_20201007-203238_Chrome.jpg

                                  Das Widget an sich gefällt mir besser, da mehr Bildschirmfläche auf dem Handy benutzt wird

                                  Screenshot_20201007-203318_Chrome.jpg

                                  Wie bekomme ich den Überzug bzw. "Schleier" von dem 0,5x0,5 Icon weg ?

                                  Screenshot_20201007-211712_Chrome.jpg

                                  s.bormannS Offline
                                  s.bormannS Offline
                                  s.bormann
                                  Most Active
                                  wrote on last edited by
                                  #3352

                                  @dslraser sagte in Test Adapter iQontrol 1.2.x:

                                  @s-bormann
                                  Ich habe bisher eine kleine Kachel als Wert benutzt um mir html Listen anzuzeigen.
                                  Eine aktive Kachel ist hell mit entsprechendem Symbol und eine inaktive mit anderem Symbol.

                                  aktiv

                                  Screenshot_20201007-203627_Chrome.jpg

                                  inaktiv

                                  Screenshot_20201007-203647_Chrome.jpg

                                  Liste als PopUp

                                  Screenshot_20201007-203301_Chrome.jpg

                                  Jetzt möchte ich das Ganze als Widget nutzen, das funktioniert auch soweit, bis auf eine Kleinigkeit. Ich bekomme den Überzug der Kachel nicht weg

                                  links als Wert /rechts als Widget

                                  Screenshot_20201007-203238_Chrome.jpg

                                  Das Widget an sich gefällt mir besser, da mehr Bildschirmfläche auf dem Handy benutzt wird

                                  Screenshot_20201007-203318_Chrome.jpg

                                  Wie bekomme ich den Überzug bzw. "Schleier" von dem 0,5x0,5 Icon weg ?

                                  Screenshot_20201007-211712_Chrome.jpg

                                  Hi,
                                  die neue Github-Version hat das jetzt als Option
                                  VG

                                  dslraserD 1 Reply Last reply
                                  0
                                  • B blackeagle998

                                    @s-bormann
                                    Hi, siehst du irgendeine Möglichkeit die .js und .css Dateien im Ordner /userwidgets direkt über die iQontrol Config Seite bearbeiten zu können?

                                    Dieses ständige hochladen bei Änderungen nervt etwas :wink:

                                    s.bormannS Offline
                                    s.bormannS Offline
                                    s.bormann
                                    Most Active
                                    wrote on last edited by s.bormann
                                    #3353

                                    @blackeagle998 sagte in Test Adapter iQontrol 1.2.x:

                                    @s-bormann
                                    Hi, siehst du irgendeine Möglichkeit die .js und .css Dateien im Ordner /userwidgets direkt über die iQontrol Config Seite bearbeiten zu können?

                                    Dieses ständige hochladen bei Änderungen nervt etwas :wink:

                                    Wir denken wohl oft an das Gleiche. Schau mal in der aktuellen github-Version :)

                                    8f05206b-517a-4d2c-a93e-81319c70f986-image.png

                                    1 Reply Last reply
                                    1
                                    • B blackeagle998

                                      @dslraser @s-bormann
                                      Hmm stimmt, jetzt lässt sich der virtuelle State einer Widget Kachel nicht mehr schalten, wenn das Icon blank ist.
                                      Kann man die Option pro Kachel steuerbar machen?

                                      s.bormannS Offline
                                      s.bormannS Offline
                                      s.bormann
                                      Most Active
                                      wrote on last edited by
                                      #3354

                                      @blackeagle998 sagte in Test Adapter iQontrol 1.2.x:

                                      @dslraser @s-bormann
                                      Hmm stimmt, jetzt lässt sich der virtuelle State einer Widget Kachel nicht mehr schalten, wenn das Icon blank ist.
                                      Kann man die Option pro Kachel steuerbar machen?

                                      Hi,
                                      ist jetzt als Option in der aktuellen Github-Version verfügbar (Mauszeiger-Events für Icon).
                                      VG

                                      1 Reply Last reply
                                      0
                                      • dslraserD dslraser

                                        @s-bormann sagte in Test Adapter iQontrol 1.2.x:

                                        Sag mal, kann man mit den neuen ADDITIONAL_CONTROLS nicht so was basteln? Eine value-List, in der man den Sender auswählt, und darunter ein oder mehrere Strings mit den EPG-Infos. Dahinter steckt dann ein Blockly-Script, dass dann die String-Datenpunkte entsprechend der Auswahl der value-List befüllt.

                                        meinst Du so in etwa ?

                                        Bildschirmfoto 2020-10-07 um 22.18.34.png

                                        EDIT: übrigens sind beim Start trotz anderer Einstellung alle Sektionen geöffnet

                                        Bildschirmfoto 2020-10-07 um 22.46.12.png

                                        s.bormannS Offline
                                        s.bormannS Offline
                                        s.bormann
                                        Most Active
                                        wrote on last edited by
                                        #3355

                                        @dslraser sagte in Test Adapter iQontrol 1.2.x:

                                        @s-bormann sagte in Test Adapter iQontrol 1.2.x:

                                        Sag mal, kann man mit den neuen ADDITIONAL_CONTROLS nicht so was basteln? Eine value-List, in der man den Sender auswählt, und darunter ein oder mehrere Strings mit den EPG-Infos. Dahinter steckt dann ein Blockly-Script, dass dann die String-Datenpunkte entsprechend der Auswahl der value-List befüllt.

                                        meinst Du so in etwa ?

                                        Bildschirmfoto 2020-10-07 um 22.18.34.png

                                        Ja, das sieht doch ganz gut aus, oder?

                                        EDIT: übrigens sind beim Start trotz anderer Einstellung alle Sektionen geöffnet

                                        Bildschirmfoto 2020-10-07 um 22.46.12.png

                                        Bei mir funktioniert das genau, wie es soll.

                                        Für die REMOTE-Sektionen wurde jetzt eine eigene Option eingebaut (aktuelle Github-Version).
                                        VG!

                                        dslraserD 1 Reply Last reply
                                        0
                                        • M muuulle

                                          @s-bormann
                                          Magst du einmal einen kurzen Ausblick geben, was deine nächsten Schwerpunkte beim Adapter sind?

                                          Ich denke, dass ich nicht der einzige Neugierige bin 😊

                                          s.bormannS Offline
                                          s.bormannS Offline
                                          s.bormann
                                          Most Active
                                          wrote on last edited by
                                          #3356

                                          @muuulle sagte in Test Adapter iQontrol 1.2.x:

                                          @s-bormann
                                          Magst du einmal einen kurzen Ausblick geben, was deine nächsten Schwerpunkte beim Adapter sind?

                                          Ich denke, dass ich nicht der einzige Neugierige bin 😊

                                          Hmm, das ganze geschieht mehr so spontan und ohne so ganz ausgeklügelten Plan :)

                                          Manchmal fasziniert mich einfach ein Gedanke oder eine Idee (die kommen ja auch oft hier aus dem Forum).

                                          Ein paar andere Dinge stehen zwar noch auf einer ToDo-Liste, allerdings weiß ich noch nicht, ob und wann ich das umsetzen will und kann.

                                          Was ich gerne noch machen würde (aber das geht vermutlich nur, wenn ich Urlaub und mehr zusammenhängende Zeit habe), ist eine Möglichkeit, automatisch Räume und Geräte einfügen zu lassen (entsprechend der Raum-Liste von ioBroker). Aktuell ist mir das aber ein zu großes Projekt.

                                          Zunächst denke ich deshalb eher, dass ich etwas Zeit in die feste Implementation von Widgets stecken werde. Hier sind ja schon einige ziemlich gute Entwürfe entstanden, die ich gerne (natürlich mit Zustimmung der Entwickler) fest in iQontrol integrieren würde. Hier denke ich gerade darüber nach, wie man das dann mit den dazu benötigten Datenpunkten lösen kann.

                                          Ich hoffe, das hilft erst mal :)

                                          VG!

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          669

                                          Online

                                          32.4k

                                          Users

                                          81.6k

                                          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