Skip to content
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo
  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.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

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

Geplant Angeheftet Gesperrt Verschoben Tester
appdark-modeiqontrolresponsivevisvisualisierungvisualizationwidget
7.6k Beiträge 296 Kommentatoren 7.0m Aufrufe 201 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    schrieb am zuletzt editiert von dslraser
    #7133

    @Geesthachter

    das versuche ich tatsächlich schon seit zwei Tagen aber ich bekomme es nicht gebacken:
    Der Beitrag ist im Entwicklungs-Thread und ist wahrscheinlich für Entwickler leicht zu lesen aber mir als Anwender fehlen da wohl doch ein paar Schritte um es zu verstehen. Ich werde es weiter selber versuchen würde mich aber freuen wenn sich jemand findet der mir auf die Sprünge hilft.
    Björn

    Vielleicht nochmal an dieser Stelle...
    Bei mir läuft aktuell dieses Script (nicht von mir)

    
    const DP_Uhr_digital 				= '0_userdata.0.Uhr.Digital_Uhr_HTML_Uhrzeit_und_Datum_V7';
    const DP_Wetter_Vorschau 			= '0_userdata.0.Uhr.Wetter_Vorschau';
    const DP_Wetter_Vorschau_Trigger	= '0_userdata.0.Uhr.Wetter_Vorschau_Trigger';
    
    fctInit();
    
    on({id:DP_Wetter_Vorschau_Trigger, val:true} , function (dp) {
      if (getState(DP_Wetter_Vorschau).val){
          setState(DP_Wetter_Vorschau, false);
      }else{
          setState(DP_Wetter_Vorschau, true);
      }
    });
    
    function fctInit(){
    if(!existsState(DP_Uhr_digital)) {
        createState(DP_Uhr_digital,
            {type: 'string', name: 'iQontrol Uhr', role: 'html', read: true , write: true}
        );
    }
    if(!existsState(DP_Wetter_Vorschau_Trigger)) {
        createState(DP_Wetter_Vorschau_Trigger,
            {type: 'boolean', name: 'Wetter Vorschau Trigger', role: 'button', read: false , write: true}
        );
    }
    if(!existsState(DP_Wetter_Vorschau)) {
        createState(DP_Wetter_Vorschau,
            {type: 'boolean', name: 'Wetter Vorschau', role: 'switch', read: true , write: true, def: false}
        );
    }
    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      = 'rgba(66, 66, 66, 1)';
    let str_color_cell      = 'rgba(71, 87, 92, 0)';
    let str_color_font      = 'rgba(255, 255, 255, 1)';
    
    
    let str_position_font   = 'left'
    let str_Tageszeit       = 'Tag';
    let str_html            = '';
    let str_html_head       = '';
    let image_Wetter_Pfad   = './../iqontrol.meta/userimages/usericons/wetter/';
    
    // ##########################################################################
    // CSS Style (Formatierung der HTML Elemente)
    // ##########################################################################
    str_html_head = str_html_head + '<head><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">';
    str_html_head = str_html_head + '<style>';
    str_html_head = str_html_head + 'body {';
    //str_html_head = str_html_head + 'overflow:hidden;'; //Scrollbalken ausgeblendet
    str_html_head = str_html_head + 'background-color:' + str_color_body + ';';
    str_html_head = str_html_head + '}'; 
    
    
    
    str_html_head = str_html_head + 'span {';
    //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
    //str_html_head = str_html_head + 'border-radius:5px;border-collapse:separate;border:1px solid gainsboro;border-color:White;';
    //Textausrichtung
    str_html_head = str_html_head + 'text-align:' + str_position_font + ';';
    //Schriftfarbe
    str_html_head = str_html_head + 'color:' + str_color_font + ';';
    //Wer keine Hintergrundfarbe für die Boxen will, kommentiert die nachfolgende Zeile aus oder löscht sie.
    //str_html_head = str_html_head + 'background-color:' + str_color_cell + ';';
    str_html_head = str_html_head + '}';
    
    str_html_head = str_html_head + 'td {';
    str_html_head = str_html_head + 'border-width:0px;';
    str_html_head = str_html_head + 'border-style:solid;';
    str_html_head = str_html_head + 'border-color:silver;';
    str_html_head = str_html_head + '}';
    
    str_html_head = str_html_head + '.container_column {';
    str_html_head = str_html_head + 'display:flex;';
    //Elemente werden untereinander dargestellt
    str_html_head = str_html_head + 'flex-direction: column;';
    str_html_head = str_html_head + 'justify-content: flex-start;';
    //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
    //str_html_head = str_html_head + 'border-radius:5px;border-collapse:separate;border:2px solid gainsboro;border-color:yellow;';
    str_html_head = str_html_head + '}';
    
    str_html_head = str_html_head + '.container_row {';
    str_html_head = str_html_head + 'display: flex;';
    //Elemente werden untereinander dargestellt
    str_html_head = str_html_head + 'flex-direction: row;';
    str_html_head = str_html_head + 'justify-content: space-between;';
    //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
    //str_html_head = str_html_head + 'border-radius:5px;border-collapse:separate;border:2px solid gainsboro;border-color:yellow;';
    str_html_head = str_html_head + '}';
    
    str_html_head = str_html_head + 'input {';
    str_html_head = str_html_head + 'height:10vw;';
    str_html_head = str_html_head + 'width:10vw;';
    str_html_head = str_html_head + '}';
    
    str_html_head = str_html_head + '.img_wetter {';
    str_html_head = str_html_head + 'height:15vw;';
    str_html_head = str_html_head + 'width:15vw;';
    str_html_head = str_html_head + '}';
    
    //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_head = str_html_head + '.box_uhr {font-size:14vmax;}';
    str_html_head = str_html_head + '.box_datum {font-size:4vmax;text-align:center;}';
    str_html_head = str_html_head + '.box_wetter {font-size:4vmax;margin-right:1.5vw;text-align:center;}';
    
    str_html_head = str_html_head + '.table_Wettervorschau {';
    str_html_head = str_html_head + 'margin-top:4vw;';
    str_html_head = str_html_head + 'border-collapse: collapse;';
    str_html_head = str_html_head + 'font-size:3vmax;';
    str_html_head = str_html_head + 'color:' + str_color_font + ';';
    str_html_head = str_html_head + '}';
    str_html_head = str_html_head + '</style>';
    str_html_head = str_html_head + '<script type="text/javascript">';
    str_html_head = str_html_head + 'function setState(stateId, value){';
    str_html_head = str_html_head + 'sendPostMessage("setState", stateId, value);';
    str_html_head = str_html_head + '}';
    str_html_head = str_html_head + 'function sendPostMessage(command, stateId, value){';
    str_html_head = str_html_head + 'message = { command: command, stateId: stateId, value: value};';
    str_html_head = str_html_head + 'window.parent.postMessage(message, "*");';
    str_html_head = str_html_head + '}';
    str_html_head = str_html_head + '</script>';
    str_html_head = str_html_head + '</head>';
    
    // ##########################################################################
    // Prüfen ob Tag oder Nacht um Sonne oder Mond Icons anzuzeigen
    // ##########################################################################
    //Wenn ihr den nachfolgenden Datenpunkt '0_userdata.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('0_userdata.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_head + '<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 + '<input type="image" class="img_wetter" onclick="setState(\'' + DP_Wetter_Vorschau_Trigger + '\', true)" src="' + image_Wetter_Pfad + getState('daswetter.0.NextHours.Location_1.Day_1.current.symbol_value').val + '.png' + '" />';
    }else{
          str_html = str_html + '<input type="image" class="img_wetter" onclick="setState(\'' + DP_Wetter_Vorschau_Trigger + '\', true)" src="' + image_Wetter_Pfad + 'mond/' + getState('daswetter.0.NextHours.Location_1.Day_1.moon_symbol').val + '.png' + '" />';
    }
    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.toFixed(1)) + '°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_Pfad + 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_Pfad + 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_Pfad + 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_Pfad + 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_Pfad + 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;
    }
    

    Wenn Du dieses Script bei Dir als Javascript einfügst (einfügen in ein neues leeres Script) und einmal startest, dann werden drei Datenpunkte erstellt, wenn es die noch nicht gibt. Bei mir sind das

    const DP_Uhr_digital 				= '0_userdata.0.Uhr.Digital_Uhr_HTML_Uhrzeit_und_Datum_V7';
    const DP_Wetter_Vorschau 			= '0_userdata.0.Uhr.Wetter_Vorschau';
    const DP_Wetter_Vorschau_Trigger	= '0_userdata.0.Uhr.Wetter_Vorschau_Trigger';
    

    Das sieht dann so aus bei mir:

    Bildschirmfoto 2022-04-06 um 11.24.15.png

    Im Script, bei mir Zeile 52 ist der Pfad angegeben, wo sich bei mir die Wetter Symbole/Icon befinden.

    let image_Wetter_Pfad   = './../iqontrol.meta/userimages/usericons/wetter/';
    

    Alles weitere ist in den Kommentaren im Script beschrieben (z.B. Astro---Tag/Nacht)

    const sec = false; // Sekunden darstellen oder nicht
    const fC = false; // forceCreation ein/aus
    const pfad = "0_userdata." + 0  + ".Astro."; // Pfad zum Objekt - Objektbaum-Hauptverzeichnis
    
    // *****************************************************************************
    // TAGESZEITEN - T E I L 
    
    // Tageszeiten nach eigenem Gusto
    const tageszeiten = [{name: "Nacht", astro: "nauticalDusk", shift: 45},
       	     {name: "Morgendämmerung", astro: "nauticalDawn", shift: -45},
       	     {name: "Sonnenaufgang", astro: "sunrise", shift: 0},
       	     {name: "Morgen", astro: "sunriseEnd", shift: 0},
       	     {name: "Vormittag", astro: "goldenHourEnd", shift: 60},
       	     {name: "Mittag", astro: "solarNoon", shift: -30},
       	     {name: "Nachmittag", astro: "solarNoon", shift: 30},
       	     {name: "Abend", astro: "goldenHour", shift: -60},
       	     {name: "Sonnenuntergang", astro: "sunsetStart", shift: 0},
       	     {name: "Abenddämmerung", astro: "sunset", shift:0}
                       ];
    
    const idTageszeit = pfad + "Tageszeit.current" /*Tageszeit*/,
         idTageszeitNext = pfad + "Tageszeit.next",
         idAstrotag =  pfad + "Tageszeit.Astrotag";
    
         
    createState(idTageszeit, "nächste Minute abwarten", {
       name: "Tageszeit",
       desc: "Name der Tageszeit",
       type: "string"
    });   
    createState(idTageszeitNext, "nächste Minute abwarten", {
       name: "nächste Tageszeit",
       desc: "Name der nächsten Tageszeit",
       type: "string"
    });
    createState(idAstrotag, isAstroDay(), {
       type: "boolean",
       name: "Astrologischer Tag",
       desc: "Liegt die aktuelle Zeit zwischen Sonnenauf- und untergang"
    }); 
    
    
    schedule('* * * * *', function() { // jede Minute
       for(let i = 0; i < tageszeiten.length; i++) {
       	var act = tageszeiten[i];
       	var next = tageszeiten[0];
       	if(i + 1 < tageszeiten.length) next = tageszeiten[i + 1];
           var actTime = getAstroDate(act.astro).getTime() + 60000 * act.shift;
           var nextTime = getAstroDate(next.astro).getTime() + 60000 * next.shift;
           if(actTime > nextTime) {
               if(new Date().getHours() > 12) nextTime = nextTime + 24 * 3600000;
               else actTime = actTime - 24 * 3600000;
           }    
       	var now = Date.now();
       	if(now > actTime && now < nextTime) {
    			setState(idTageszeit, act.name, true);
       		setState(idTageszeitNext, next.name, true);
       	}
       }
       setState(idAstrotag, isAstroDay(), true);
    });
    
    
    // *****************************************************************************
    // A S T R O - T E I L 
    
    // Objekt für Uhrzeiten der Astrozeiten
    const astrotime = {
       "elements" : [
           // Astrotag beginnt
           {
               "fname" : "nadir",
               "de" : {
                   "name" : "Nadir",
                   "nxt" : "nächster",
                   "desc" : "Fußpunkt gegenüber dem Zenit"
               },
               "en" : {
                   "name" : "Nadir",
                   "desc" : "darkest moment of the night, sun is in the lowest position"
               },
               "astroday" : false //during astronight
           },
           {
               "fname" : "nauticalDawn",
               "de" : {
                   "name" : "nautische Morgendämmerung",
                   "nxt" : "nächste",
                   "desc" : ""
               },
               "en" : {
                   "name" : "Nautical dawn",
                   "desc" : "morning nautical twilight starts"
               },
               "astroday" : false //during astronight
           },
           {
               "fname" : "dawn",
               "de" : {
                   "name" : "bürgerliche Morgendämmerung",
                   "nxt" : "nächste",
                   "desc" : ""
               },
               "en" : {
                   "name" : "dawn",
                   "desc" : "morning nautical twilight ends, morning civil twilight starts"
               },
               "astroday" : false //during astronight
           },
           {
               "fname" : "sunrise", // function name
               "de" : {
                   "name" : "Sonnenaufgang",
                   "nxt" : "nächster",
                   "desc" : ""
               },
               "en" : {
                   "name" : "Sunrise",
                   "desc" : "top edge of the sun appears on the horizon"
               },
               "astroday" : true //during astroday
           },
           {
               "fname" : "sunriseEnd", // function name
               "de" : {
                   "name" : "Ende Sonnenaufgang",
                   "nxt" : "nächstes",
                   "desc" : ""
               },
               "en" : {
                   "name" : "End of sunrise",
                   "desc" : "bottom edge of the sun touches the horizon"
               },
               "astroday" : true //during astroday
           },
           {
               "fname" : "goldenHourEnd", // function name
               "de" : {
                   "name" : "Ende der goldenen Stunde am Morgen",
                   "nxt" : "nächstes",
                   "desc" : ""
               },
               "en" : {
                   "name" : "End of golden hour",
                   "desc" : "morning golden hour (soft light, best time for photography) ends"
               },
               "astroday" : true //during astroday
           },
           {
               "fname" : "solarNoon", // function name
               "de" : {
                   "name" : "Sonnenhöchststand",
                   "nxt" : "nächster",
                   "desc" : ""
               },
               "en" : {
                   "name" : "Solar noon",
                   "desc" : "sun is in the highest position"
               },
               "astroday" : true //during astroday
           },
           {
               "fname" : "goldenHour", // function name
               "de" : {
                   "name" : "Goldene Stunde (am Abend)",
                   "nxt" : "nächste",
                   "desc" : ""
               },
               "en" : {
                   "name" : "Golden hour",
                   "desc" : "evening golden hour starts"
               },
               "astroday" : true //during astroday
           },
           {
               "fname" : "sunsetStart", // function name
               "de" : {
                   "name" : "Beginn Sonnenuntergang",
                   "nxt" : "nächster",
                   "desc" : ""
               },
               "en" : {
                   "name" : "Sunset starts",
                   "desc" : "bottom edge of the sun touches the horizon"
               },
               "astroday" : true //during astroday
           },
           // Astronacht beginnt
           {
               "fname" : "sunset", // function name
               "de" : {
                   "name" : "Sonnenuntergang",
                   "nxt" : "nächster",
                   "desc" : ""
               },
               "en" : {
                   "name" : "Sunset",
                   "desc" : "sun disappears below the horizon, evening civil twilight starts"
               },
               "astroday" : false //during astronight
           },
           {
               "fname" : "dusk",
               "de" : {
                   "name" : "Ende bürgerliche Abenddämmerung",
                   "nxt" : "nächstes",
                   "desc" : ""
               },
               "en" : {
                   "name" : "Dusk",
                   "desc" : "evening nautical twilight starts"
               },
               "astroday" : false //during astronight
           },
           {
               "fname" : "nauticalDusk",
               "de" : {
                   "name" : "Ende nautische Abenddämmerung",
                   "nxt" : "nächstes",
                   "desc" : ""
               },
               "en" : {
                   "name" : "Nautical dusk",
                   "desc" : "evening astronomical twilight starts"
               },
               "astroday" : false //during astronight
           }
       
       ]
    };
    
    for(let i = 0; i < astrotime.elements.length; i++) {
       // führende Nummer zur Sortierung in Admin/Objekte
       var nr = i;
       if(i < 10) nr = '0' + nr;
       // Erstelle Objekt, falls nicht bereits vorhanden
       var idAstroObject = pfad + "Zeiten." + nr + "-" + astrotime.elements[i].fname;
       createState(idAstroObject, " ", {
           name: astrotime.elements[i].de.nxt + " " + astrotime.elements[i].de.name,
           desc: astrotime.elements[i].en.desc,
           type: "string"
       });
    }
    
    function writeAstroTimes(i) {
       // führende Nummer zur Sortierung in Admin/Objekte
       var nr = i;
       if(i < 10) nr = '0' + nr;
       var idAstroObject = pfad + "Zeiten." + nr + "-" + astrotime.elements[i].fname;
       var today = new Date();
       var tomorrow = today.setDate(today.getDate()+1);
       var fname = astrotime.elements[i].fname;
       var next_event = today.getTime();
       if (getAstroDate(fname) < today) next_event = tomorrow;
       var temp = getAstroDate(fname, next_event);
       let astro = formatDate(temp, 'hh:mm');
       if(sec) astro = formatDate(temp, 'hh:mm:ss');
       setState(idAstroObject, astro, true);
    }
    
    function iterateAstrotimes() {
       // Zeiten für jede Astrozeit schreiben
       for (var i = 0; i < astrotime.elements.length; i++) {
           writeAstroTimes(i);
       }
    }
    
    schedule("59 1 * * *", iterateAstrotimes);
    
    setTimeout(function() { // Skriptstart
       iterateAstrotimes();
       setState(idAstrotag, isAstroDay(), true);
    }, 200);
    
    

    Hier noch meine verwendeten Wettersymbole und Mondsymbole

    userfiles_usericons_wetter.zip

    userfiles_usericons_wetter_mond.zip

    Und hier noch ein Export des Gerätes von/in iQontrol zum wieder importieren

    2022-04-06_iqontrol_0_devices.json.zip

    Das sieht dann bei mir so aus (am Handy)

    3C43200B-D38A-4583-8662-49129C9512BB.jpeg

    Bei Klick auf das Wetter Icon oben rechts sieht es dann so aus (ein Tag mehr gibt es noch, den müsste ich scrollen)

    3A3393A8-4D67-4CF5-80C2-539389C71A5B.jpeg

    EDIT: Voraussetzung ist der Adapter daswetter
    https://github.com/rg-engineering/ioBroker.daswetter/blob/master/README.md
    Bildschirmfoto 2022-04-06 um 12.08.39.png

    würde mich aber freuen wenn sich jemand findet der mir auf die Sprünge hilft.

    Wobei brauchst Du denn Hilfe...?

    Edit: eine kleine Ergänzung:

    In Zeile 172 im Uhren Script habe ich einen Sensor für die Aussentemperatur eingetragen. Wenn Du keinen hast, dann einen anderen Datenpunkt, z.B. von daswetter, z.B. den hier (daswetter.0.NextHours.Location_1.Day_1.current.temp_value). Im daswetter Adapter habe ich alle Pfade von 1-4 eingetragen. Mehr ist eigentlich nicht zu machen.

    Edit: Nachtrag wo sich bei mir wetter und mond icon in iQontrol befinden:

    wetter habe ich in /usericons/wetter
    mond habe ich in /usericons/wetter/mond

    In Zeile 162 im Uhrenscript ist die Pfadangabe für mond drinn

    G 1 Antwort Letzte Antwort
    3
    • dslraserD dslraser

      @Geesthachter

      das versuche ich tatsächlich schon seit zwei Tagen aber ich bekomme es nicht gebacken:
      Der Beitrag ist im Entwicklungs-Thread und ist wahrscheinlich für Entwickler leicht zu lesen aber mir als Anwender fehlen da wohl doch ein paar Schritte um es zu verstehen. Ich werde es weiter selber versuchen würde mich aber freuen wenn sich jemand findet der mir auf die Sprünge hilft.
      Björn

      Vielleicht nochmal an dieser Stelle...
      Bei mir läuft aktuell dieses Script (nicht von mir)

      
      const DP_Uhr_digital 				= '0_userdata.0.Uhr.Digital_Uhr_HTML_Uhrzeit_und_Datum_V7';
      const DP_Wetter_Vorschau 			= '0_userdata.0.Uhr.Wetter_Vorschau';
      const DP_Wetter_Vorschau_Trigger	= '0_userdata.0.Uhr.Wetter_Vorschau_Trigger';
      
      fctInit();
      
      on({id:DP_Wetter_Vorschau_Trigger, val:true} , function (dp) {
        if (getState(DP_Wetter_Vorschau).val){
            setState(DP_Wetter_Vorschau, false);
        }else{
            setState(DP_Wetter_Vorschau, true);
        }
      });
      
      function fctInit(){
      if(!existsState(DP_Uhr_digital)) {
          createState(DP_Uhr_digital,
              {type: 'string', name: 'iQontrol Uhr', role: 'html', read: true , write: true}
          );
      }
      if(!existsState(DP_Wetter_Vorschau_Trigger)) {
          createState(DP_Wetter_Vorschau_Trigger,
              {type: 'boolean', name: 'Wetter Vorschau Trigger', role: 'button', read: false , write: true}
          );
      }
      if(!existsState(DP_Wetter_Vorschau)) {
          createState(DP_Wetter_Vorschau,
              {type: 'boolean', name: 'Wetter Vorschau', role: 'switch', read: true , write: true, def: false}
          );
      }
      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      = 'rgba(66, 66, 66, 1)';
      let str_color_cell      = 'rgba(71, 87, 92, 0)';
      let str_color_font      = 'rgba(255, 255, 255, 1)';
      
      
      let str_position_font   = 'left'
      let str_Tageszeit       = 'Tag';
      let str_html            = '';
      let str_html_head       = '';
      let image_Wetter_Pfad   = './../iqontrol.meta/userimages/usericons/wetter/';
      
      // ##########################################################################
      // CSS Style (Formatierung der HTML Elemente)
      // ##########################################################################
      str_html_head = str_html_head + '<head><meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">';
      str_html_head = str_html_head + '<style>';
      str_html_head = str_html_head + 'body {';
      //str_html_head = str_html_head + 'overflow:hidden;'; //Scrollbalken ausgeblendet
      str_html_head = str_html_head + 'background-color:' + str_color_body + ';';
      str_html_head = str_html_head + '}'; 
      
      
      
      str_html_head = str_html_head + 'span {';
      //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
      //str_html_head = str_html_head + 'border-radius:5px;border-collapse:separate;border:1px solid gainsboro;border-color:White;';
      //Textausrichtung
      str_html_head = str_html_head + 'text-align:' + str_position_font + ';';
      //Schriftfarbe
      str_html_head = str_html_head + 'color:' + str_color_font + ';';
      //Wer keine Hintergrundfarbe für die Boxen will, kommentiert die nachfolgende Zeile aus oder löscht sie.
      //str_html_head = str_html_head + 'background-color:' + str_color_cell + ';';
      str_html_head = str_html_head + '}';
      
      str_html_head = str_html_head + 'td {';
      str_html_head = str_html_head + 'border-width:0px;';
      str_html_head = str_html_head + 'border-style:solid;';
      str_html_head = str_html_head + 'border-color:silver;';
      str_html_head = str_html_head + '}';
      
      str_html_head = str_html_head + '.container_column {';
      str_html_head = str_html_head + 'display:flex;';
      //Elemente werden untereinander dargestellt
      str_html_head = str_html_head + 'flex-direction: column;';
      str_html_head = str_html_head + 'justify-content: flex-start;';
      //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
      //str_html_head = str_html_head + 'border-radius:5px;border-collapse:separate;border:2px solid gainsboro;border-color:yellow;';
      str_html_head = str_html_head + '}';
      
      str_html_head = str_html_head + '.container_row {';
      str_html_head = str_html_head + 'display: flex;';
      //Elemente werden untereinander dargestellt
      str_html_head = str_html_head + 'flex-direction: row;';
      str_html_head = str_html_head + 'justify-content: space-between;';
      //Rahmen: abgerundete Ecken (5px), Strichstärke (0px = aus) und Farbe
      //str_html_head = str_html_head + 'border-radius:5px;border-collapse:separate;border:2px solid gainsboro;border-color:yellow;';
      str_html_head = str_html_head + '}';
      
      str_html_head = str_html_head + 'input {';
      str_html_head = str_html_head + 'height:10vw;';
      str_html_head = str_html_head + 'width:10vw;';
      str_html_head = str_html_head + '}';
      
      str_html_head = str_html_head + '.img_wetter {';
      str_html_head = str_html_head + 'height:15vw;';
      str_html_head = str_html_head + 'width:15vw;';
      str_html_head = str_html_head + '}';
      
      //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_head = str_html_head + '.box_uhr {font-size:14vmax;}';
      str_html_head = str_html_head + '.box_datum {font-size:4vmax;text-align:center;}';
      str_html_head = str_html_head + '.box_wetter {font-size:4vmax;margin-right:1.5vw;text-align:center;}';
      
      str_html_head = str_html_head + '.table_Wettervorschau {';
      str_html_head = str_html_head + 'margin-top:4vw;';
      str_html_head = str_html_head + 'border-collapse: collapse;';
      str_html_head = str_html_head + 'font-size:3vmax;';
      str_html_head = str_html_head + 'color:' + str_color_font + ';';
      str_html_head = str_html_head + '}';
      str_html_head = str_html_head + '</style>';
      str_html_head = str_html_head + '<script type="text/javascript">';
      str_html_head = str_html_head + 'function setState(stateId, value){';
      str_html_head = str_html_head + 'sendPostMessage("setState", stateId, value);';
      str_html_head = str_html_head + '}';
      str_html_head = str_html_head + 'function sendPostMessage(command, stateId, value){';
      str_html_head = str_html_head + 'message = { command: command, stateId: stateId, value: value};';
      str_html_head = str_html_head + 'window.parent.postMessage(message, "*");';
      str_html_head = str_html_head + '}';
      str_html_head = str_html_head + '</script>';
      str_html_head = str_html_head + '</head>';
      
      // ##########################################################################
      // Prüfen ob Tag oder Nacht um Sonne oder Mond Icons anzuzeigen
      // ##########################################################################
      //Wenn ihr den nachfolgenden Datenpunkt '0_userdata.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('0_userdata.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_head + '<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 + '<input type="image" class="img_wetter" onclick="setState(\'' + DP_Wetter_Vorschau_Trigger + '\', true)" src="' + image_Wetter_Pfad + getState('daswetter.0.NextHours.Location_1.Day_1.current.symbol_value').val + '.png' + '" />';
      }else{
            str_html = str_html + '<input type="image" class="img_wetter" onclick="setState(\'' + DP_Wetter_Vorschau_Trigger + '\', true)" src="' + image_Wetter_Pfad + 'mond/' + getState('daswetter.0.NextHours.Location_1.Day_1.moon_symbol').val + '.png' + '" />';
      }
      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.toFixed(1)) + '°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_Pfad + 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_Pfad + 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_Pfad + 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_Pfad + 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_Pfad + 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;
      }
      

      Wenn Du dieses Script bei Dir als Javascript einfügst (einfügen in ein neues leeres Script) und einmal startest, dann werden drei Datenpunkte erstellt, wenn es die noch nicht gibt. Bei mir sind das

      const DP_Uhr_digital 				= '0_userdata.0.Uhr.Digital_Uhr_HTML_Uhrzeit_und_Datum_V7';
      const DP_Wetter_Vorschau 			= '0_userdata.0.Uhr.Wetter_Vorschau';
      const DP_Wetter_Vorschau_Trigger	= '0_userdata.0.Uhr.Wetter_Vorschau_Trigger';
      

      Das sieht dann so aus bei mir:

      Bildschirmfoto 2022-04-06 um 11.24.15.png

      Im Script, bei mir Zeile 52 ist der Pfad angegeben, wo sich bei mir die Wetter Symbole/Icon befinden.

      let image_Wetter_Pfad   = './../iqontrol.meta/userimages/usericons/wetter/';
      

      Alles weitere ist in den Kommentaren im Script beschrieben (z.B. Astro---Tag/Nacht)

      const sec = false; // Sekunden darstellen oder nicht
      const fC = false; // forceCreation ein/aus
      const pfad = "0_userdata." + 0  + ".Astro."; // Pfad zum Objekt - Objektbaum-Hauptverzeichnis
      
      // *****************************************************************************
      // TAGESZEITEN - T E I L 
      
      // Tageszeiten nach eigenem Gusto
      const tageszeiten = [{name: "Nacht", astro: "nauticalDusk", shift: 45},
         	     {name: "Morgendämmerung", astro: "nauticalDawn", shift: -45},
         	     {name: "Sonnenaufgang", astro: "sunrise", shift: 0},
         	     {name: "Morgen", astro: "sunriseEnd", shift: 0},
         	     {name: "Vormittag", astro: "goldenHourEnd", shift: 60},
         	     {name: "Mittag", astro: "solarNoon", shift: -30},
         	     {name: "Nachmittag", astro: "solarNoon", shift: 30},
         	     {name: "Abend", astro: "goldenHour", shift: -60},
         	     {name: "Sonnenuntergang", astro: "sunsetStart", shift: 0},
         	     {name: "Abenddämmerung", astro: "sunset", shift:0}
                         ];
      
      const idTageszeit = pfad + "Tageszeit.current" /*Tageszeit*/,
           idTageszeitNext = pfad + "Tageszeit.next",
           idAstrotag =  pfad + "Tageszeit.Astrotag";
      
           
      createState(idTageszeit, "nächste Minute abwarten", {
         name: "Tageszeit",
         desc: "Name der Tageszeit",
         type: "string"
      });   
      createState(idTageszeitNext, "nächste Minute abwarten", {
         name: "nächste Tageszeit",
         desc: "Name der nächsten Tageszeit",
         type: "string"
      });
      createState(idAstrotag, isAstroDay(), {
         type: "boolean",
         name: "Astrologischer Tag",
         desc: "Liegt die aktuelle Zeit zwischen Sonnenauf- und untergang"
      }); 
      
      
      schedule('* * * * *', function() { // jede Minute
         for(let i = 0; i < tageszeiten.length; i++) {
         	var act = tageszeiten[i];
         	var next = tageszeiten[0];
         	if(i + 1 < tageszeiten.length) next = tageszeiten[i + 1];
             var actTime = getAstroDate(act.astro).getTime() + 60000 * act.shift;
             var nextTime = getAstroDate(next.astro).getTime() + 60000 * next.shift;
             if(actTime > nextTime) {
                 if(new Date().getHours() > 12) nextTime = nextTime + 24 * 3600000;
                 else actTime = actTime - 24 * 3600000;
             }    
         	var now = Date.now();
         	if(now > actTime && now < nextTime) {
      			setState(idTageszeit, act.name, true);
         		setState(idTageszeitNext, next.name, true);
         	}
         }
         setState(idAstrotag, isAstroDay(), true);
      });
      
      
      // *****************************************************************************
      // A S T R O - T E I L 
      
      // Objekt für Uhrzeiten der Astrozeiten
      const astrotime = {
         "elements" : [
             // Astrotag beginnt
             {
                 "fname" : "nadir",
                 "de" : {
                     "name" : "Nadir",
                     "nxt" : "nächster",
                     "desc" : "Fußpunkt gegenüber dem Zenit"
                 },
                 "en" : {
                     "name" : "Nadir",
                     "desc" : "darkest moment of the night, sun is in the lowest position"
                 },
                 "astroday" : false //during astronight
             },
             {
                 "fname" : "nauticalDawn",
                 "de" : {
                     "name" : "nautische Morgendämmerung",
                     "nxt" : "nächste",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "Nautical dawn",
                     "desc" : "morning nautical twilight starts"
                 },
                 "astroday" : false //during astronight
             },
             {
                 "fname" : "dawn",
                 "de" : {
                     "name" : "bürgerliche Morgendämmerung",
                     "nxt" : "nächste",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "dawn",
                     "desc" : "morning nautical twilight ends, morning civil twilight starts"
                 },
                 "astroday" : false //during astronight
             },
             {
                 "fname" : "sunrise", // function name
                 "de" : {
                     "name" : "Sonnenaufgang",
                     "nxt" : "nächster",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "Sunrise",
                     "desc" : "top edge of the sun appears on the horizon"
                 },
                 "astroday" : true //during astroday
             },
             {
                 "fname" : "sunriseEnd", // function name
                 "de" : {
                     "name" : "Ende Sonnenaufgang",
                     "nxt" : "nächstes",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "End of sunrise",
                     "desc" : "bottom edge of the sun touches the horizon"
                 },
                 "astroday" : true //during astroday
             },
             {
                 "fname" : "goldenHourEnd", // function name
                 "de" : {
                     "name" : "Ende der goldenen Stunde am Morgen",
                     "nxt" : "nächstes",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "End of golden hour",
                     "desc" : "morning golden hour (soft light, best time for photography) ends"
                 },
                 "astroday" : true //during astroday
             },
             {
                 "fname" : "solarNoon", // function name
                 "de" : {
                     "name" : "Sonnenhöchststand",
                     "nxt" : "nächster",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "Solar noon",
                     "desc" : "sun is in the highest position"
                 },
                 "astroday" : true //during astroday
             },
             {
                 "fname" : "goldenHour", // function name
                 "de" : {
                     "name" : "Goldene Stunde (am Abend)",
                     "nxt" : "nächste",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "Golden hour",
                     "desc" : "evening golden hour starts"
                 },
                 "astroday" : true //during astroday
             },
             {
                 "fname" : "sunsetStart", // function name
                 "de" : {
                     "name" : "Beginn Sonnenuntergang",
                     "nxt" : "nächster",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "Sunset starts",
                     "desc" : "bottom edge of the sun touches the horizon"
                 },
                 "astroday" : true //during astroday
             },
             // Astronacht beginnt
             {
                 "fname" : "sunset", // function name
                 "de" : {
                     "name" : "Sonnenuntergang",
                     "nxt" : "nächster",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "Sunset",
                     "desc" : "sun disappears below the horizon, evening civil twilight starts"
                 },
                 "astroday" : false //during astronight
             },
             {
                 "fname" : "dusk",
                 "de" : {
                     "name" : "Ende bürgerliche Abenddämmerung",
                     "nxt" : "nächstes",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "Dusk",
                     "desc" : "evening nautical twilight starts"
                 },
                 "astroday" : false //during astronight
             },
             {
                 "fname" : "nauticalDusk",
                 "de" : {
                     "name" : "Ende nautische Abenddämmerung",
                     "nxt" : "nächstes",
                     "desc" : ""
                 },
                 "en" : {
                     "name" : "Nautical dusk",
                     "desc" : "evening astronomical twilight starts"
                 },
                 "astroday" : false //during astronight
             }
         
         ]
      };
      
      for(let i = 0; i < astrotime.elements.length; i++) {
         // führende Nummer zur Sortierung in Admin/Objekte
         var nr = i;
         if(i < 10) nr = '0' + nr;
         // Erstelle Objekt, falls nicht bereits vorhanden
         var idAstroObject = pfad + "Zeiten." + nr + "-" + astrotime.elements[i].fname;
         createState(idAstroObject, " ", {
             name: astrotime.elements[i].de.nxt + " " + astrotime.elements[i].de.name,
             desc: astrotime.elements[i].en.desc,
             type: "string"
         });
      }
      
      function writeAstroTimes(i) {
         // führende Nummer zur Sortierung in Admin/Objekte
         var nr = i;
         if(i < 10) nr = '0' + nr;
         var idAstroObject = pfad + "Zeiten." + nr + "-" + astrotime.elements[i].fname;
         var today = new Date();
         var tomorrow = today.setDate(today.getDate()+1);
         var fname = astrotime.elements[i].fname;
         var next_event = today.getTime();
         if (getAstroDate(fname) < today) next_event = tomorrow;
         var temp = getAstroDate(fname, next_event);
         let astro = formatDate(temp, 'hh:mm');
         if(sec) astro = formatDate(temp, 'hh:mm:ss');
         setState(idAstroObject, astro, true);
      }
      
      function iterateAstrotimes() {
         // Zeiten für jede Astrozeit schreiben
         for (var i = 0; i < astrotime.elements.length; i++) {
             writeAstroTimes(i);
         }
      }
      
      schedule("59 1 * * *", iterateAstrotimes);
      
      setTimeout(function() { // Skriptstart
         iterateAstrotimes();
         setState(idAstrotag, isAstroDay(), true);
      }, 200);
      
      

      Hier noch meine verwendeten Wettersymbole und Mondsymbole

      userfiles_usericons_wetter.zip

      userfiles_usericons_wetter_mond.zip

      Und hier noch ein Export des Gerätes von/in iQontrol zum wieder importieren

      2022-04-06_iqontrol_0_devices.json.zip

      Das sieht dann bei mir so aus (am Handy)

      3C43200B-D38A-4583-8662-49129C9512BB.jpeg

      Bei Klick auf das Wetter Icon oben rechts sieht es dann so aus (ein Tag mehr gibt es noch, den müsste ich scrollen)

      3A3393A8-4D67-4CF5-80C2-539389C71A5B.jpeg

      EDIT: Voraussetzung ist der Adapter daswetter
      https://github.com/rg-engineering/ioBroker.daswetter/blob/master/README.md
      Bildschirmfoto 2022-04-06 um 12.08.39.png

      würde mich aber freuen wenn sich jemand findet der mir auf die Sprünge hilft.

      Wobei brauchst Du denn Hilfe...?

      Edit: eine kleine Ergänzung:

      In Zeile 172 im Uhren Script habe ich einen Sensor für die Aussentemperatur eingetragen. Wenn Du keinen hast, dann einen anderen Datenpunkt, z.B. von daswetter, z.B. den hier (daswetter.0.NextHours.Location_1.Day_1.current.temp_value). Im daswetter Adapter habe ich alle Pfade von 1-4 eingetragen. Mehr ist eigentlich nicht zu machen.

      Edit: Nachtrag wo sich bei mir wetter und mond icon in iQontrol befinden:

      wetter habe ich in /usericons/wetter
      mond habe ich in /usericons/wetter/mond

      In Zeile 162 im Uhrenscript ist die Pfadangabe für mond drinn

      G Offline
      G Offline
      Geesthachter
      schrieb am zuletzt editiert von Geesthachter
      #7134

      @dslraser Vielen Dank für deine Antwort.
      Sorry das ich jetzt erst schreibe ich habe es heute erst gesehen das du mir diese Hilfe geschickt hast.
      Ich habe es leider bisher noch nicht zum Laufen gebracht, irgendwas fehlt mir anscheinend noch. Wie du siehst erscheint nur die Überschrift "Digitaluhr" aber nicht die Digitaluhr selber.
      screenshot.iqontrol.png

      Wenn ich dann dort anklicke erscheint

      Screenshot_20220410-172653_Chrome.jpg

      und wenn ich dann auf öffnen gehe kommt das.

      Screenshot_20220410-172703_Chrome.jpg

      Ich habe folgendes gemacht.
      Ich habe für das „Digital Uhr Script“ und das „Astro Script“ je ein Javascript erstellt.
      Dabei wurden die drei von dir erwähntem Datenpunkte wie bei dir erstellt.

      screenshot.Angelegte Datenpunkte.png

      Die Wetter Icons habe ich in dem gleich Pfad wie du gespeichert.

      screenshot.Wetter icons .png

      Dann habe ich das Widget „2022-04-06_iqontrol_0_devices.json“ als Gerät importiert.

      screenshot.Exportiertes Widget.png

      screenshot.Datenpunkte des Widgets.png

      Und ich habe „derWetter“ Adapter installiert mich dort angemeldet und einen generierten Pfad bei
      „Pfad 1: XML-Datei mit 7-Tage-Wettervorhersage und Tagesübersicht“ eingetragen.screenshot.dasWette.0 Adapter.png

      Was habe ich falsch gemacht oder was fehlt mir noch?
      Kannst du mir bitte weiterhelfen.

      Gruß Björn

      F 1 Antwort Letzte Antwort
      0
      • N Nordischerjung

        @s-bormann Moin, ich habe mir ein WLAN Grillthermometer gebaut und visualisiere diesen mit iQontrol.
        Screenshot_20220324-115617_Chrome.jpg

        Leider sind die Werte sehr klein, egal ob 2x1 oder 1x1 oder groß beim klicken. Kann man die Werte größer erstellen?

        s.bormannS Offline
        s.bormannS Offline
        s.bormann
        Most Active
        schrieb am zuletzt editiert von s.bormann
        #7135

        @nordischerjung sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

        @s-bormann Moin, ich habe mir ein WLAN Grillthermometer gebaut und visualisiere diesen mit iQontrol.
        Screenshot_20220324-115617_Chrome.jpg

        Leider sind die Werte sehr klein, egal ob 2x1 oder 1x1 oder groß beim klicken. Kann man die Werte größer erstellen?

        Hi,
        wenn Du die Werte bei STATE verlinkst, erscheinen sie unten in groß.
        EDIT: Sorry, war eine Zeit nicht da (Fortbildung und Urlaub). Habe gerade gesehen, @da_Woody hatte das schon beantwortet. VG

        1 Antwort Letzte Antwort
        1
        • C Cino

          Ja du hast ja unterschiedliche Datenpunkte? Ich beschreibe ja den DP mit dem 1 2 3.
          Da gibt es doch eine Einstellung, Name als DP Wert nehmen oder so. Deswegen die Ziffern.

          s.bormannS Offline
          s.bormannS Offline
          s.bormann
          Most Active
          schrieb am zuletzt editiert von
          #7136

          @cino sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

          Ja du hast ja unterschiedliche Datenpunkte? Ich beschreibe ja den DP mit dem 1 2 3.
          Da gibt es doch eine Einstellung, Name als DP Wert nehmen oder so. Deswegen die Ziffern.

          Du kannst einfach die Überschriften weglassen:
          9edf8188-6a37-4c1d-aba2-be177f3bff08-image.png

          1 Antwort Letzte Antwort
          1
          • S Offline
            S Offline
            Soukai
            schrieb am zuletzt editiert von Soukai
            #7137

            @dslraser Bin neu in iQontrol, würde gerne dein Widget nutzen, da es sehr gelungen ist 🙂 wie geh ich das an? Ich habe es probiert als eigenes widget zu erstellen und den code als JS eingetragen, jedoch kann ich es nicht in "BACKGROUND_xx" sehen. Vielen Dank!

            im Javascript adapter krieg ich einen fehler
            f4755b6d-7533-43aa-96a0-76d2d4527ca7-grafik.png

            Adapter das wetter ist installiert

            dslraserD 1 Antwort Letzte Antwort
            0
            • S Soukai

              @dslraser Bin neu in iQontrol, würde gerne dein Widget nutzen, da es sehr gelungen ist 🙂 wie geh ich das an? Ich habe es probiert als eigenes widget zu erstellen und den code als JS eingetragen, jedoch kann ich es nicht in "BACKGROUND_xx" sehen. Vielen Dank!

              im Javascript adapter krieg ich einen fehler
              f4755b6d-7533-43aa-96a0-76d2d4527ca7-grafik.png

              Adapter das wetter ist installiert

              dslraserD Offline
              dslraserD Offline
              dslraser
              Forum Testing Most Active
              schrieb am zuletzt editiert von dslraser
              #7138

              @soukai
              ich weiß nicht wie ich da helfen könnte. Ich habe eigentlich alles dazu geschrieben (inkl. Nachträge)

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

              S 1 Antwort Letzte Antwort
              0
              • dslraserD dslraser

                @soukai
                ich weiß nicht wie ich da helfen könnte. Ich habe eigentlich alles dazu geschrieben (inkl. Nachträge)

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

                S Offline
                S Offline
                Soukai
                schrieb am zuletzt editiert von Soukai
                #7139

                @dslraser Du hast recht, sorry. War wohl zu voreilig. Habe alles soweit hinbekommen. Danke für dein Widget! und es funktioniert 🙂

                1 Antwort Letzte Antwort
                1
                • M Offline
                  M Offline
                  meerkat
                  schrieb am zuletzt editiert von
                  #7140

                  Hi @all,
                  habe nun schon 3000 Beiträge durchgescrollt. Ich würde gerne in den Eigenschaften (Schalter usw.) ein Eventlog anzeigen lassen. Die Informationen liegen im JSON vor. Hat einer von euch ne Idee, wie ich das als Tabelle anzeigen lassen kann?
                  Ich bekomme zwar den Inhalt rein, aber der ist dann als Textbox.

                  Gruß

                  s.bormannS 1 Antwort Letzte Antwort
                  0
                  • DK43D Offline
                    DK43D Offline
                    DK43
                    schrieb am zuletzt editiert von
                    #7141

                    Hi Leute,

                    Ich nutze Iqontrol gerne auch unterwegs über Iobroker.pro.

                    Ich habe fast in jeder Ansicht zu einem Raum mit dem ECharts Adapter Kurven erstellt (Aktuelle Temp, Soll-Temp, Ventilstellung usw.)

                    Mit einem Widget lässt sich das ja gut umsetzen.

                    Wenn ich jetzt auf Iqontrol unterwegs über Iobroker.pro zugreife dann werden die Kurvendiagramme aus dem ECharts Adapter nicht angezeigt.

                    Gibt es eine Möglichkeit dass ein Widget einen Alternativlink (den iobroker.pro link) nutz? Vorzugsweise dann, wenn dieser Widget nichts anzeigt.

                    Vielen Dank 🙂

                    W JLegJ 2 Antworten Letzte Antwort
                    0
                    • DK43D DK43

                      Hi Leute,

                      Ich nutze Iqontrol gerne auch unterwegs über Iobroker.pro.

                      Ich habe fast in jeder Ansicht zu einem Raum mit dem ECharts Adapter Kurven erstellt (Aktuelle Temp, Soll-Temp, Ventilstellung usw.)

                      Mit einem Widget lässt sich das ja gut umsetzen.

                      Wenn ich jetzt auf Iqontrol unterwegs über Iobroker.pro zugreife dann werden die Kurvendiagramme aus dem ECharts Adapter nicht angezeigt.

                      Gibt es eine Möglichkeit dass ein Widget einen Alternativlink (den iobroker.pro link) nutz? Vorzugsweise dann, wenn dieser Widget nichts anzeigt.

                      Vielen Dank 🙂

                      W Offline
                      W Offline
                      Wuschl
                      schrieb am zuletzt editiert von Wuschl
                      #7142

                      @davut-karabulut Servus, wusste nicht daß man iQontrol über iobroker.pro bekommt. Hättest du da eine Anleitung für mich? Funktioniert das über die Iobroker App?

                      DK43D 1 Antwort Letzte Antwort
                      0
                      • DK43D DK43

                        Hi Leute,

                        Ich nutze Iqontrol gerne auch unterwegs über Iobroker.pro.

                        Ich habe fast in jeder Ansicht zu einem Raum mit dem ECharts Adapter Kurven erstellt (Aktuelle Temp, Soll-Temp, Ventilstellung usw.)

                        Mit einem Widget lässt sich das ja gut umsetzen.

                        Wenn ich jetzt auf Iqontrol unterwegs über Iobroker.pro zugreife dann werden die Kurvendiagramme aus dem ECharts Adapter nicht angezeigt.

                        Gibt es eine Möglichkeit dass ein Widget einen Alternativlink (den iobroker.pro link) nutz? Vorzugsweise dann, wenn dieser Widget nichts anzeigt.

                        Vielen Dank 🙂

                        JLegJ Offline
                        JLegJ Offline
                        JLeg
                        schrieb am zuletzt editiert von
                        #7143

                        @davut-karabulut sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

                        Gibt es eine Möglichkeit dass ein Widget einen Alternativlink (den iobroker.pro link) nutz? Vorzugsweise dann, wenn dieser Widget nichts anzeigt.

                        das sollte eigentlich einfach sein - ich benutze zwar keinen iobroker.pro, aber sowas Ähnliches; einfach bei der echarts-URL in iqontrol die URI ohne den Hostnamen angeben, dann nimmt er immer den aktuell benutzten (/echarts/bla/fasel/…)

                        1 Antwort Letzte Antwort
                        0
                        • W Wuschl

                          @davut-karabulut Servus, wusste nicht daß man iQontrol über iobroker.pro bekommt. Hättest du da eine Anleitung für mich? Funktioniert das über die Iobroker App?

                          DK43D Offline
                          DK43D Offline
                          DK43
                          schrieb am zuletzt editiert von
                          #7144

                          @wuschl

                          Auf dem Smartphone einfach eine Verknüpfung zu : https://iobroker.pro/iqontrol/index.html anlegen und statt der Adminoberfläche von iobroker.pro öffnet sich Iqontrol.

                          Vorausgesetzt man hat sich vorher einmal eingeloggt.

                          @JLeg

                          Danke ich probiere das mal aus.

                          Was benutzt du den? Einfach mal so aus Interesse. Wusste nicht dass es auch andere Möglichkeiten gibt

                          W 1 Antwort Letzte Antwort
                          0
                          • JLegJ Offline
                            JLegJ Offline
                            JLeg
                            schrieb am zuletzt editiert von
                            #7145

                            @davut-karabulut sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

                            @JLeg

                            Danke ich probiere das mal aus.

                            Was benutzt du den? Einfach mal so aus Interesse. Wusste nicht dass es auch andere Möglichkeiten gibt

                            nix Wildes, nur einen externen Reverse-Proxy; aber deswegen auch unterschiedliche Hostnamen für ‚innen‘ und ‚aussen‘

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              Soukai
                              schrieb am zuletzt editiert von Soukai
                              #7146

                              Hey Leute,
                              versuche zurzeit mein Tablet an meine Handysicht anzupassen und möchte das rechts gleich aussieht wie links. Sprich genauso groß.
                              32d40c1c-4dcd-4ca9-9830-4798bc7fb6c7-grafik.png

                              Das Tablet ist ein Asus Nexus 7 (grouper) mit einer Auflösung von 800 x 1280. Das handy 1.080 x 2.400 Pixel

                              Mit den folgenden Optionen in den Einstellungen habe ich schon rumgespielt, aber irgendwie erhalte ich keine Änderung. Kann mir hier jemand schnell helfen?

                              fb410f90-f19f-4477-a676-61e296a3ae91-grafik.png

                              Außerdem eine frage zum Glow der Lichttiles: Ist es möglich, dass das Tile in der Farbe leuchtet die "ALTERNATIVE_COLORSPACE_VALUE" zeigt? Denn bei mir zeigt es immer nur eine Farbe an. Hier meine Einstellungen dazu.

                              ee078d81-fa64-4dc8-915b-750eb7145a68-grafik.png

                              0344ee11-225c-4297-80af-8291c44e172d-grafik.png

                              s.bormannS 1 Antwort Letzte Antwort
                              0
                              • DK43D DK43

                                @wuschl

                                Auf dem Smartphone einfach eine Verknüpfung zu : https://iobroker.pro/iqontrol/index.html anlegen und statt der Adminoberfläche von iobroker.pro öffnet sich Iqontrol.

                                Vorausgesetzt man hat sich vorher einmal eingeloggt.

                                @JLeg

                                Danke ich probiere das mal aus.

                                Was benutzt du den? Einfach mal so aus Interesse. Wusste nicht dass es auch andere Möglichkeiten gibt

                                W Offline
                                W Offline
                                Wuschl
                                schrieb am zuletzt editiert von
                                #7147

                                @davut-karabulut cool. Danke, funktioniert, das erspart mir viel arbeit.

                                1 Antwort Letzte Antwort
                                0
                                • dslraserD dslraser

                                  @meerkat sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

                                  Hi @dslraser. Ich würde das nicht mit Schalter lösen, sondern mit einem Knopf. Dadurch könntest du dir die einzelnen datenpunkte ersparen und nur einen datenpunkt verwenden. Im iqontrol mit "Bedingung für aktive.." darauf dann reagieren. Wenn du dann auf einen anderen Knopf drückst, schreibst du ja einen anderen Wert in den datenpunkt und deaktivierst ja so den vorherigen.
                                  So habe ich es aktuell auch gelöst, aber vergessen es zu beschreiben.

                                  Eine genaue Beschreibung wäre hilfreich.

                                  über offset_value. Geb da ein Leerzeichen ein, damit er etwas schreibt. Ich habe dort ne 0 gesetzt

                                  Bekomme ich trotzdem nicht hin....(Bitte mal eine genaue Beschreibung)

                                  EDIT: so ?

                                  Bildschirmfoto 2022-03-22 um 13.12.00.png

                                  So wird bei drücken des Knopfes erst Licht in den DP geschrieben und direkt danach aus. Irgendwie kapiere ich nicht wie ich das machen soll...

                                  EDIT2: das hatte ich noch nicht gemacht

                                  Bildschirmfoto 2022-03-22 um 13.48.04.png

                                  Edit3: So, jetzt ist es so wie ich es mir gewünscht habe. Nun kann man kreuz und quer klicken. Wenn gewünscht, dann stelle ich später diese Blockly Variante mit einer Beschreibung zur Verfügung.

                                  290699D2-F0B2-4BCF-8833-ADDA846947F9.gif

                                  eingebaut

                                  CF1810A3-EAEF-4331-B1C3-0736CF6D67EB.gif

                                  O Offline
                                  O Offline
                                  Opa75+
                                  schrieb am zuletzt editiert von
                                  #7148

                                  @dslraser Hallo. ich hätte gerne die Anweisungen und das Blockly. Schaut gut aus und ist obendrein noch platzsparend.

                                  dslraserD 1 Antwort Letzte Antwort
                                  0
                                  • O Opa75+

                                    @dslraser Hallo. ich hätte gerne die Anweisungen und das Blockly. Schaut gut aus und ist obendrein noch platzsparend.

                                    dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #7149

                                    @opa75 sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

                                    @dslraser Hallo. ich hätte gerne die Anweisungen und das Blockly. Schaut gut aus und ist obendrein noch platzsparend.

                                    ? wovon sprichst oder schreibst Du ?

                                    O 1 Antwort Letzte Antwort
                                    0
                                    • dslraserD dslraser

                                      @opa75 sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

                                      @dslraser Hallo. ich hätte gerne die Anweisungen und das Blockly. Schaut gut aus und ist obendrein noch platzsparend.

                                      ? wovon sprichst oder schreibst Du ?

                                      O Offline
                                      O Offline
                                      Opa75+
                                      schrieb am zuletzt editiert von
                                      #7150

                                      @dslraser vom Test Thread vom 22. März, betreffend Listendarstellung

                                      1 Antwort Letzte Antwort
                                      0
                                      • JLegJ JLeg

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

                                        @jleg Hab es jetzt genau wie Du noch mal probiert, bei mir keine Fehler. Hast Du spaßeshalber mal einen anderen Browser versucht?

                                        Ja, klar - bei mir läuft iqontrol "produktiv" auf dem iPad - da passiert das nie. FF benutze ich überwiegend beim Scriptbasteln am PC. Bei Chrome tritt es - glaube ich - auch nicht auf, allerdings habe ich bei Chrome eine etwas "verwaschene" Darstellung bei iqontrol, daher nehme ich FF...

                                        Aber, wie gesagt, eher lustig als lästig... 😉

                                        M Offline
                                        M Offline
                                        meerkat
                                        schrieb am zuletzt editiert von meerkat
                                        #7151

                                        @jleg sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

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

                                        Tritt der Fehler jedes Mal auf? Oder nur gelegentlich? Gibt es in der F12-Konsole irgendwelche suspekten Meldungen?

                                        ich kann das bei mir so halbwegs reproduzieren (momentan "klappt" das eigentlich immer):

                                        • Iqontrol-URL als "Lesezeichen" in der Lesezeichen-Leiste ablegen
                                        • im Firefox (keine iqontrol-Tabs offen) einen neuen Tab anlegen
                                        • auf Lesezeichen klicken
                                        • Badge kriegt ADHS

                                        F12 sieht für mich eher normal aus, zumindest gibt's keine Fehler...

                                        Hi @jleg,
                                        tritt der Fehler bei dir immer noch auf? Ich wollte nunfully kiosk auf nem firetab nutzen und dort tillt der jetzt auch mit dem Badge. Im Chrome auf firetab ist alles OK

                                        1 Antwort Letzte Antwort
                                        0
                                        • dslraserD dslraser

                                          @meerkat sagte in Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread):

                                          Hi @dslraser. Ich würde das nicht mit Schalter lösen, sondern mit einem Knopf. Dadurch könntest du dir die einzelnen datenpunkte ersparen und nur einen datenpunkt verwenden. Im iqontrol mit "Bedingung für aktive.." darauf dann reagieren. Wenn du dann auf einen anderen Knopf drückst, schreibst du ja einen anderen Wert in den datenpunkt und deaktivierst ja so den vorherigen.
                                          So habe ich es aktuell auch gelöst, aber vergessen es zu beschreiben.

                                          Eine genaue Beschreibung wäre hilfreich.

                                          über offset_value. Geb da ein Leerzeichen ein, damit er etwas schreibt. Ich habe dort ne 0 gesetzt

                                          Bekomme ich trotzdem nicht hin....(Bitte mal eine genaue Beschreibung)

                                          EDIT: so ?

                                          Bildschirmfoto 2022-03-22 um 13.12.00.png

                                          So wird bei drücken des Knopfes erst Licht in den DP geschrieben und direkt danach aus. Irgendwie kapiere ich nicht wie ich das machen soll...

                                          EDIT2: das hatte ich noch nicht gemacht

                                          Bildschirmfoto 2022-03-22 um 13.48.04.png

                                          Edit3: So, jetzt ist es so wie ich es mir gewünscht habe. Nun kann man kreuz und quer klicken. Wenn gewünscht, dann stelle ich später diese Blockly Variante mit einer Beschreibung zur Verfügung.

                                          290699D2-F0B2-4BCF-8833-ADDA846947F9.gif

                                          eingebaut

                                          CF1810A3-EAEF-4331-B1C3-0736CF6D67EB.gif

                                          O Offline
                                          O Offline
                                          Opa75+
                                          schrieb am zuletzt editiert von
                                          #7152

                                          @dslraser Hallo DSLRASER Etwas verspätet! Es geht um die Listen laut Foto. am 22.3. wurde da einiges hin und her chatted.
                                          Könnte ich da bitte die notwendigen scripts bekommen? Ich nehme an, man kann die Listen, erstellt nach deiner Anleitung, weiter verwenden.
                                          Besten Dank im Voraus.
                                          736bec4f-0abe-4630-839d-4ef56a606df7-image.png https://forum.iobroker.net/assets/uploads/files/1647972213844-73642bb4-0539-4ee8-88b0-aabc54cbffdf.png

                                          da_WoodyD 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          535

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe