Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Hilfsvariable Ansage des Tages über Sayit - das geht bestimmt schöner

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Hilfsvariable Ansage des Tages über Sayit - das geht bestimmt schöner

    This topic has been deleted. Only users with topic management privileges can see it.
    • Matzebhv
      Matzebhv last edited by

      Moin,

      ich lasse mir derzeit Morgens zur Weckzeit einige Dinge über Sayit vorlesen, unter anderem das Datum. Um eine natürliche Sprachausgabe zu erreichen behelfe ich mir derzeit mit folgendem Script für den Tag des Monats: 😄

      ! schedule("0 0 * * *", function () { if (formatDate(new Date(), "TT") == 1) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'ersten', true); } if (formatDate(new Date(), "TT") == 2) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'zweiten', true); } if (formatDate(new Date(), "TT") == 3) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'dritten', true); } if (formatDate(new Date(), "TT") == 4) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'vierten', true); } if (formatDate(new Date(), "TT") == 5) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'fünften', true); } if (formatDate(new Date(), "TT") == 6) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'sechsten', true); } if (formatDate(new Date(), "TT") == 7) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'siebten', true); } if (formatDate(new Date(), "TT") == 8) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'achten', true); } if (formatDate(new Date(), "TT") == 9) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'neunten', true); } if (formatDate(new Date(), "TT") == 10) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'zehnten', true); } if (formatDate(new Date(), "TT") == 11) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'elften', true); } if (formatDate(new Date(), "TT") == 12) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'zwölften', true); } if (formatDate(new Date(), "TT") == 13) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'dreizehnten', true); } if (formatDate(new Date(), "TT") == 14) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'vierzehnten', true); } if (formatDate(new Date(), "TT") == 15) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'fünfzehnten', true); } if (formatDate(new Date(), "TT") == 16) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'sechszehnten', true); } if (formatDate(new Date(), "TT") == 17) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'siebzehnten', true); } if (formatDate(new Date(), "TT") == 18) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'achtzehnten', true); } if (formatDate(new Date(), "TT") == 19) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'neunzehnten', true); } if (formatDate(new Date(), "TT") == 20) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'zwanzigsten', true); } if (formatDate(new Date(), "TT") == 21) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'einundzwanzigsten', true); } if (formatDate(new Date(), "TT") == 22) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'zweiundzwanzigsten', true); } if (formatDate(new Date(), "TT") == 23) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'dreiundzwanzigsten', true); } if (formatDate(new Date(), "TT") == 24) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'vierundzwanzigsten', true); } if (formatDate(new Date(), "TT") == 25) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'fünfundzwanzigsten', true); } if (formatDate(new Date(), "TT") == 26) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'sechsundzwanzigsten', true); } if (formatDate(new Date(), "TT") == 27) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'siebenundzwanzigsten', true); } if (formatDate(new Date(), "TT") == 28) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'achtundzwanzigsten', true); } if (formatDate(new Date(), "TT") == 29) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'neunundzwanzigsten', true); } if (formatDate(new Date(), "TT") == 30) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'dreißigsten', true); } if (formatDate(new Date(), "TT") == 31) { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, 'einunddreißigsten', true); } }); !

      Ich vermute, der geneigte Javascriptprofi macht aus dem Ding ein 4Zeiler. Da ich gerne lernbereit bin, immer her mit den Ideen.

      Hintergrund: Ohne diese Krücke murmelt Sayit unterhalb 10 z.B. Wir haben den Nulleins ""ten" <- das hatte ich vorher schon per Script angehangen" Oktober.

      Gruß

      Matze

      1 Reply Last reply Reply Quote 0
      • Peoples
        Peoples last edited by

        Hi Matze,

        da ich selber kein "Profi" bin konnte ich es leider nicht auf 4 Zeilen kürzen, aber kürzer konnte ich es aber machen:

        ! function tag_als_wort(tag) { switch(tag) { case "01": return 'ersten'; case "02": return 'zweiten'; case "03": return 'dritten'; case "04": return 'vierten'; case "05": return 'fünften'; case "06": return 'sechsten'; case "07": return 'siebten'; case "08": return 'achten'; case "09": return 'neunten'; case "10": return 'zehnten'; case "11": return 'elften'; case "12": return 'zwölften'; case "13": return 'dreizehnten'; case "14": return 'vierzehnten'; case "15": return 'fünfzehnten'; case "16": return 'sechzehnten'; case "17": return 'siebzehnten'; case "18": return 'achtzehnten'; case "19": return 'neunzehnten'; case "20": return 'zwanzigsten'; case "21": return 'einundzwanzigsten'; case "22": return 'zweiundzwanzigsten'; case "23": return 'dreiundzwanzigsten'; case "24": return 'vierundzwanzigsten'; case "25": return 'fünfundzwanzigsten'; case "26": return 'sechsundzwanzigsten'; case "27": return 'siebenundzwanzigsten'; case "28": return 'achtundzwanzigsten'; case "29": return 'neunundzwanzigsten'; case "30": return 'dreißigsten'; case "31": return 'einunddreißigsten'; default: log('Fehler/Error '); } } ! schedule("0 0 * * *", function () { setState("Datenpunkte.0.Helper_Datumsansage"/*Helper_Datumsansage*/, tag_als_wort(formatDate(new Date(), "TT"))); }); !
        Sollte funktionierten

        Gruß

        Steffen

        1 Reply Last reply Reply Quote 0
        • Matzebhv
          Matzebhv last edited by

          Moin Steffen,

          das sieht doch schon viel geschmeidiger aus, Danke! 😄

          Gruß

          Matze

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          692
          Online

          31.7k
          Users

          79.8k
          Topics

          1.3m
          Posts

          2
          3
          367
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo