NEWS
Iobroker -> falscher Zeichensatz (locale) eingestellt
-
Hat den keiner nen Tip?
Also wenn ich in Javascript n Testscript starte (Anzeige Datum Uhrzeit) dann bekomme ich im Log folgendes
Thu Jun 15 2017 23:21:16 GMT+0200 (CEST)
Wenn ich mir auf der Konsole mit date das Datum mit Uhrzeit ausgeben lasse dann erhalte ich folgendes
Do 15\. Jun 23:21:53 CEST 2017
Da stimmt der Zeichensatz in IoBroker zum installierten System nicht. Wie kann ich das in ioBroker beheben?
Gruß
Johnny
-
Keiner ne Idee wie ich das Problem lösen könnte?
-
Keiner ne Idee wie ich das Problem lösen könnte? `
Zeige bitte dein Skript und was für Sprache hast du in System Settings von Iob? -
Als Script nutze ich das Tageszeitenscript von Pix
! ````
/* System Tageszeoten
! Skript meldet Tageszeiten
! Nacht;Frühmorgens;Morgengrauen;Vormittag;Mittag;Nachmittag;Dämmerung;Abend;
Basis: http://www.homematic-inside.de/tecbase/homematic/scriptlibrary/item/tageszeit-in-abschnitte-unterteilen
oder hier: https://github.com/ioBroker/ioBroker.javascript#astro--funktion
! https://github.com/iobroker/ioBroker.javascript/blob/master/README.md#getastrodate
! erstellt: 01.06.2015 von Pix
11.12.2015 getAstroDate ermittelt nun auch Sonnenaufgang und Untergang
Astrotag (isAstroDay) eingebaut
/
! // Variablen erstellen
createState('Tageszeit', {
name: 'Tageszeit'
});
createState('Tageszeit.Sonnenaufgang', {
name: 'nächster Sonnenaufgang Uhrzeit',
desc: 'sunrise (top edge of the sun appears on the horizon)'
});
createState('Tageszeit.Sonnenuntergang', {
name: 'nächster Sonnenuntergang Uhrzeit',
desc: 'sunset (sun disappears below the horizon, evening civil twilight starts)'
});
createState('Tageszeit.Astrotag', false, {
read: true,
write: true,
type: 'boolean',
name: 'Astologischer Tag',
desc: 'Zeit zwischen Sonnenauf- und untergang'
});
! var idTageszeit = "Tageszeit",
tageszeiten = ['Nacht',
'Morgendämmerung',
'Morgen',
'Vormittag',
'Mittag',
'Nachmittag',
'Abenddämmerung',
'Abend'],
idAstrotag = "Tageszeit.Astrotag",
idSonnenaufgang = "Tageszeit.Sonnenaufgang",
idSonnenuntergang = "Tageszeit.Sonnenuntergang";
! function zeiten_speichern () {
var astrotag = getState(idAstrotag).val,
sonnenaufgang,
sonnenuntergang;
var today = new Date();
var tomorrow = today.setDate(today.getDate()+1);
if (astrotag) { // Wenn Tag (Aufgang vorbei (erst wieder morgen, Untergang kommt noch heute)
sonnenuntergang = getAstroDate('sunset', today),
sonnenaufgang = getAstroDate('sunrise', tomorrow);
} else { // nach Nacht (Untergang vorbei (erst wieder morgen, Aufgang kommt heute oder morgen)
sonnenuntergang = getAstroDate('sunset', tomorrow);
sonnenaufgang = (today.getHours() > 12 && today.getHours() <= 23) ? getAstroDate('sunrise', tomorrow) : getAstroDate('sunrise', today); // es ist vor Mitternacht (bzw. vor 23:XXUhr), dann morgen, sonst heute
}
setState(idSonnenaufgang, sonnenaufgang.toLocaleTimeString());
setState(idSonnenuntergang, sonnenuntergang.toLocaleTimeString());
}
! function neue_tageszeit(abschnitt) {
setState(idTageszeit, tageszeiten[parseInt(abschnitt, 10)]);
log('neue Tagezeit: ' + tageszeiten[parseInt(abschnitt, 10)], 'info');
zeiten_speichern();
}
! // Nacht
schedule({astro: "night", shift: 120}, function () { neue_tageszeit(0) });
! // Morgengdämmerung
schedule({astro: "nightEnd"}, function () { neue_tageszeit(1) });
! // Morgen
schedule({astro: "sunrise"}, function () { neue_tageszeit(2) });
! // Vormittag (beginnt 120min vor Sonnenhöchststand)
schedule({astro: "solarNoon", shift: -120}, function () { neue_tageszeit(3) });
! // Mittag
schedule({astro: "solarNoon"}, function () { neue_tageszeit(4) });
! // Nachmittag
schedule({astro: "solarNoon", shift: 60}, function () { neue_tageszeit(5) });
! // Abenddämmerung (nach Sonnenuntergang)
schedule({astro: "dusk"}, function () { neue_tageszeit(6) });
! // Abend
schedule({astro: "night"}, function () { neue_tageszeit(7) });
! // Astrotag checken
schedule("/1 * * * *", function () {
if (isAstroDay) setState(idAstrotag, true);
if (!isAstroDay) setState(idAstrotag, false);
zeiten_speichern();
});In ioBroker ist in Admin als Systemsprache Deutsch eingestellt
-
Hast du dir das nochmal angeguckt
-
Hast du dir das nochmal angeguckt `
https://github.com/ioBroker/ioBroker.ja … formatdate
Statt
setState(idSonnenaufgang, sonnenaufgang.toLocaleTimeString());
benutze bitte das
=>
setState(idSonnenaufgang, formatDate(sonnenaufgang));
oder das
setState(idSonnenaufgang, formatDate(sonnenaufgang, "JJJJ.MM.TT SS:mm:ss.sss");
-
Vielleicht hilft auch reinstall.sh
-
Hi Bluefox, anke für die Hilfa aber hat leider auch nichts gebracht.
Da bekomme ich dann NaN NaN NaN
Kann ich das so ohne Probleme ausführen? Auch auf nem Multihost-System?
-
Ich habs nur einmal gemacht und da gings gut. Aber da kann dir bestimnt Bluefox besser Auskunft geben oder aber Suche im Forum oder aber einfach probieren (Backup vorausgesetzt).
-
Also ich hab mal das reinstall.sh durchgeführt. Hat leider nichts geholfen. Was mir aber noch aufgefallen ist, ist das das reinstall.sh zuerst nicht starten wollte. Hat mir ne Fehlermeldung ausgeschmissen
Standardausgabe/Fehler: sh: /opt/iobroker/reinstall.sh: /bin/bash^M: bad interpreter: No such file or directory
Also Windowszeilenumbrüche im Script.
Nach m korrigieren lief es dann durch.
Wie kommen da plötzlich die Windowszeilenumbrüche rein? Ist das in der github Version auch so?
Oder hat bei mir die iobroker Installation mit dem verstellten local jetzt nen Schuss weg?
Dein Lösungsvorschlag @bluefox hat leider auch nichts gebracht. Beim ermitteln tomorrow bekomme ich kein Datum Uhrzeit angezeigt sonder ne mehrstellige zahlenkombi. Ist das bei der Funktion so gewollt?
var today = new Date(); var tomorrow = today.setDate(today.getDate()+1);