@paul53 habe dein Script hier gefunden und sollte ebenfalls deine Unterstüzung haben da ich es nicht wirklich verstehe, kannst du mir weiter helfen
on({id: idWord, ack: true}, function(dp) {
word = dp.state.val;
setState(idVis1, !!(word & 2), true); // bit 1
setState(idVis2, !!(word & 8), true); // bit 3
});
Meine Fragen zu dem Code:
- Wieso hast du hier "ack:true" verwendet
- Wann werden bzw. wie werden die Bits wieder auf false gesetzt
- Was machen die zwei !!, habe was gelesen das du hier zweimal negierst und indirekt eine Typenwandlung von Word auf Bool machst, stimmt das oder liege ich hier komplett falsch
on({id: idVis1, change: 'ne', fromNe: 'system.adapter.javascript.0'}, function(dp) {
const bitval = 1; // bit 0
if(dp.state.val) word |= bitval; // set bit
else word &= ~bitval; // reset bit
setState(idWord, word);
});
- Wieso gibt es hier ({id: idVis1, change: 'ne', fromNe: 'system.adapter.javascript.0'}, zwei Aufzählungen change 'ne' und fromNe: 'sys..'
- Was macht fromNe
Grund: Habe einen WR der ebenfalls ein Statuswort hat, das würde ich gerne in einzelne Bits zerlegen damit ich die Stati in meiner VIS anzeigen kann
Aufbau Statuswort, Beispiel:
Batterie Laden => Bit 1 = 0 => Nicht Laden
Batterie Laden => Bit 1 = 1 => Laden
Batterie Entladen => Bit 2 = 0 => Nicht Entladen
Batterie Entladen => Bit 2 = 1 => Entladen
Leistungsbezug => Bit 5 = 0 => Keine Leistung aus dem Netz
Leistungsbezug => Bit 5 = 1 => Netz Bezug
vielen Dank für deine Unterstüzung
Alex