1280 ist die dezimale Darstellung der hexadezimalen Zahl 500.Die Schaltzeit wird von der Logo in HEX bereitgestellt. In Node Red wird diese als dezimal Zahl angezeigt jedoch nicht richtig.
Beispiel: Logo Uhrzeit 05:00 Uhr in Node Red erhalte ich 1280.
Hallo Thomas, super funktioniert. Das wäre das Lesen aus der Logo. Wie funktioniert jetzt die umwandlung beim schreiben in die LogoIch würde das in einen String konvertieren, andernfalls hast du bei einer Zeit von 00:03 Uhr den Wert 3, fänd ich etwas unschön.
Mit Umwandlung in Strings und wieder zurück wäre das aber z.B. so möglich:
Ergebnis = parseInt(X.toString(16), 10);
msg.payload = parseInt((msg.payload).toString(16), 10);
return msg;
Ja deswegen wäre es ja gut, wenn beim Lesen die Stunden und die Minuten in eine Variable geschrieben werden. Dann könnte ich für Stunden 0-23 begrenzen und für Minuten 0-60. Das Ganze dann wieder rückwärtig die Logo.Du musst nur bedenken, dass es schwer ist bei diesem einen Wert Fehleingaben abzufangen, 0 bis 59 sind gültig, 60 bis 99 nicht, ab 100 wieder usw.
function Wochentag(X) {
/* Wochentag von int in Array schreiben */
var days = [];
for (var i = 0; i < 7; i++)
days[i] = (X >> i) & 1;
return days
}
a = msg.payload
b = a.reduce((res, x) => res << 1 | x)
msg.payload = b;
return msg;
function WochentagArrToInt(days) {
/* Wochentag von Array nach int schreiben */
var x = 0;
for (var i = 0; i < 7; i++) {
if (days[i]) {
x = x | (1 << i);
}
}
return x;
}
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?