NEWS
Hilfsvariable Ansage des Tages über Sayit - das geht bestimmt schöner
-
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
-
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 funktioniertenGruß
Steffen
-
Moin Steffen,
das sieht doch schon viel geschmeidiger aus, Danke!
Gruß
Matze