NEWS
Weltzeituhr in VIS
-
puuuhh ist ja schon schwere Kost dieser Adapter, wenn man sich das erste mal mit sowas beschäftigt.
Hab es bei uhrzeit.org leider nicht hinbekommen. Habe dann auf diese Seite gewechselt
http://www.zeitzonen.de/land_australien … ydney.html
Hier ist es mir dann nach ein paar Stunden gelungen die Uhrzeit raus zu parsen.
Danke! `
Die Lösung würde die Helferlein sicher auch interessieren
Danke!
-
Super, wie es scheint führen hier ja mehre Wege nach Rom
Welche Variante wäre denn am wenigsten belastend für die Ressourcen meines Pi´s?
1. Alle 60s parsen von einer Webseite, wie bereits erwähnt
2. Alle 60s über npm timezone
3. Alle 60s Berechnung über JS
oder ist das Thema Ressourcen hier nicht weiter zu beachten weil es sich nicht bemerkbar macht?
-
Hallo,
denke, diese Berechnungen sind Kleinkram. Das belastet nicht.
Das Parsen kann zum Problem werden. Wenn sich die Seite nicht aufrufen lässt oder deren Inhalt sich ändert (anderer Code, Design, Unterseite, …)
Ich denke, das nodemodul ist der sicherste Weg.
Bin unterwegs und kann nicht nachsehen. Aber gibt es denn die Systemzeit nicht schon als Objekt in Iobroker? Man doch einfach darauf reagieren und Stunden zuzählen oder abziehen. Sekunden und Minuten bleiben ja gleich. Die Sommerzeit kann man notfalls manuell umstellen, aber auch das lässt sich in Skript abfangen.
Pix
-
Ich habe jetzt mal das nodemodul timezone installiert.
Kann mir jemand hierzu erklären wie ich das im Script verwenden muss, damit ich zB von Sydney die Zeit direkt rausbekomme?
Ich verstehe die Erklärungen auf der Seite nicht ganz.
-
Hier gibts ne Liste der Timezones
https://en.wikipedia.org/wiki/List_of_t … time_zones
Namen ersetzen schätze ich, dann sollte es gehen
-
Du meinst sicherlich das hier?
var tz = require('timezone/loaded'), equal = require('assert').equal, utc; // Get POSIX time in UTC. utc = tz('2012-01-01'); // Convert UTC time to local time in a localize language. equal(tz(utc, '%c', 'fr_FR', 'America/Montreal'), 'sam. 31 déc. 2011 19:00:00 EST');
Mir ist trotzdem nicht klar wie das Script aussehen muss damit ich am Ende die Uhrzeit rausbekomme.
-
So ich habe ein wenig am Script gebastelt und habe nun eine halbwegs funktionierende Lösung:
var heute = new Date(); var shift = 8; //Zeitverschiebung zum Zielort var pfad = "javascript.0.Weltzeit.Sydney."; var syd = pfad + "Sydney"; // Berechnete Uhrzeit var calc_std = pfad + "stunde"; // Hilfswert Stunde var calc_min = pfad + "minute"; // Hilfswert Minute var debug = true; createState(syd, {name: "Uhrzeit Sydney", type: "mixed", def: "00:00"}); createState(calc_std, {name: "Uhrzeit Sydney Stunde", type: "number", def: "00"}); createState(calc_min, {name: "Uhrzeit Sydney Minute", type: "number", def: "00"}); function timeshift(){ // Berechnung der Zeitverschiebung Stunde var std = formatDate(new Date(), "hh"); var min = formatDate(new Date(), "mm"); setStateDelayed(calc_std, parseFloat(std) + shift,1000); setState(calc_min, parseFloat(min)); if (debug) log ("std = " + std); if (debug) log ("min = " + min); } on({id: calc_std, change: "any"},function () { var std_val = getState(calc_std).val; var min_val = getState(calc_min).val; if (debug) log ("std_val = " + std_val); if (debug) log ("min_val = " + min_val); if (std_val < 23){ setState(syd, (std_val + ":" + min_val)); if (debug) log ("kleiner als 23"); if (debug) log ("neue Zeit = " + std_val + ":" + min_val); } else if (std_val > 23){ setState(syd, (std_val-24) + ":" + min_val); if (debug) log ("größer als 23"); if (debug) log ("neue Zeit = " + ((std_val-24) + ":" + min_val)); } }); // bei Programmstart timeshift(); // jede Minute Berechnung starten schedule("* * * * *", function () { timeshift(); });
Jedoch benötigte ich nun ein wenig Hilfe, bei den noch offenen Punkten, damit es perfekt ist:
1. Bei einstelligen Uhrzeiten wie z.B: 04:07 Uhr, bekomme ich leider nur den Wert 4:7 geliefert.
- Gibt es eine Möglichkeit die Zahlen so zu formatieren das bei einstelligen Werten eine 0 voran gesetzt wird?
2. Um bei Sommer/Winterzeitumstellungen weiterhin die richtige Uhrzeit zu haben, würde ich gerne einmal am Tag, wie bereits vorgeschlagen, mit npm Timezone einen Wert schreiben, auf welchen dann meine Berechnung läuft.
- Kann mir jemand erklären wie ich "timezone" zu verwenden habe?
-
Jedoch benötigte ich nun ein wenig Hilfe, bei den noch offenen Punkten, damit es perfekt ist:
1. Bei einstelligen Uhrzeiten wie z.B: 04:07 Uhr, bekomme ich leider nur den Wert 4:7 geliefert.
- Gibt es eine Möglichkeit die Zahlen so zu formatieren das bei einstelligen Werten eine 0 voran gesetzt wird?
2. Um bei Sommer/Winterzeitumstellungen weiterhin die richtige Uhrzeit zu haben, würde ich gerne einmal am Tag, wie bereits vorgeschlagen, mit npm Timezone einen Wert schreiben, auf welchen dann meine Berechnung läuft.
- Kann mir jemand erklären wie ich "timezone" zu verwenden habe? `
Kann mir jemand weiterhelfen wie ich bei den einstelligen Zahlen eine 0 davor bekomme?
-
Hallo Gemeinde,
So kann die Wektzeituhr aussehen:
dahinter verbirgt sich ein HTML Widget in dem Code von
https://www.zeitverschiebung.net/de/clock-widget
läuft.
Dort lassen sich Uhr Widgets für viele Städte erzeugen.
Analog wäre mir zwar lieber, aber so geht's auch.
-
Dort lassen sich Uhr Widgets für viele Städte erzeugen.
Analog wäre mir zwar lieber, aber so geht's auch. `
Sehr cool, danke. Hätte auch lieber ein eigenes Design aber für meine Zwecke reicht das auch erstmal so aus.
Wäre aber trotzdem noch an einer Lösung meines Scriptsproblems interessiert, einfach um es gelöst zu haben :?:
Wenn also jemand eine Idee hat…..