@Vumer:
@Vumer:
Zu den LogoDec2Hex und LogoHex2Dec, Tobias Kolb von "Frickelzeugs" erlärt das so:
> Die Logo speichert Uhrzeiten (z.B. der Wochenschaltuhr) relativ seltsam ab. Eine Zeit von 18:30 Uhr wird als Hex-Wert 0x1830 im VM-Speicher abgelegt, dies entspricht der Dezimalzahl 6192\. Für die Visualisierung muss diese Dezimalzahl also wieder in Hex umgerechnet werden. Die Funktion LogoDec2Hex entspricht also einer einfachen Dec->Hex-Konvertierung mit einem Sonderfall: die Umrechnung wird nur durchgeführt, wenn der sich ergebende Hex-Wert ausschließlich aus Ziffern bestünde (kein A-F erlaubt!). Ist dies nicht der Fall, liefert die Funktion -1 zurück. Dieser Kunstgriff ist nötig, da NCalc nicht mit Hex-Werten umgehen kann. Die Funktion LogoHex2Dec erledigt die Konvertierung in die entgegengesetzte Richtung.
das muss dann warscheinlich im Widget gemacht werden
Schöne Grüße `
@Bluefox
@all
habe leider von programmieren keine Ahnung, hoffe das wird sich ändern 
Was meinst ihr, wo kann man dem Konverter einbauen?
In meine Rolllädensteuerung sind über 20 Uhren
Schöne Grüße `
Habe nun Umrechner! Es gibt leider kein Widget, das eine solche Umrechnung "im Bauch" hat (vielleicht bin ich ja auch nur nicht fündig geworden), deshalb Umweg über Javascript:
Im ioBroker.admin den Adapter "Scripte" installieren. In der neuen Lasche Scripte im Order Common u.a. Zeilen einfügen und speichern und Script auf Play stellen. In diesem Fall wollte ich den Sonnenaufgang richtig darstellen (sunrisenf:ohne Formatierung, sunrise: mit Formatierung - mit Doppelpunkt). Natürlich ist Sunrise nur 3 stellig (weil morgens), deshalb habe ich auch für 4stellige Uhrzeiten Zeile eingefügt und für diesen Fall auskommentiert. In der Visu dann ein Widget mit Stringvariablen auswählen und als Obekt ID gewünschte Variable einfügen. Hier: sunrise bzw. sunrisenf. Diese werden wie die S7 Variablen im Objektexplorer im Ordner javascript.0 geführt.
Achtung: Script wird nur bei Änderung ausgeführt!!(change: "ne")
Mein Dank gilt an Faisalman fyzlman@gmail.com(https://gist.github.com/faisalman/4213592) für diese Passage:
__//decimal to hexadecimal
ConvertBase.dec2hex = function (num) {
return ConvertBase(num).from(10).to(16);
};
this.ConvertBase = ConvertBase;
})(this);__
und meinem Arbeitskollegen.
__/**
- Beschreibe diese Funktion …
*/
createState('Sunrise', 0);
createState('Sunrisenf', 0);
on({id: "s7.1.DBs.DB1.Sunrise", change: "ne"}, function (obj) {
(function(){
var ConvertBase = function (num) {
return {
from : function (baseFrom) {
return {
to : function (baseTo) {
return parseInt(num, baseFrom).toString(baseTo);
}
};
}
};
};
// decimal to hexadecimal
ConvertBase.dec2hex = function (num) {
return ConvertBase(num).from(10).to(16);
};
this.ConvertBase = ConvertBase;
})(this);
setState("javascript.0.Sunrisenf",ConvertBase.dec2hex(getState("s7.1.DBs.DB1.Sunrise").val));
var Sunrisetmp= ConvertBase.dec2hex(getState("s7.1.DBs.DB1.Sunrise").val).toString();
//setState("javascript.0.Sunrise",Sunrisetmp.slice(0, 2) + String(":") + Sunrisetmp.slice(2, 4)) ; //bei 4 stelliger Zeit
setState("javascript.0.Sunrise",Sunrisetmp.slice(0, 1) + String(":") + Sunrisetmp.slice(1, 3)) ; //bei 3 stelliger Zeit
});__