@paul53 said in Bitweise "and" in Blockly:
@ubecker sagte: Ich benötige ein bestimmtes Bit aus einem Wert.
Siehe checkBit(val, bit)
Danke, gelesen und nicht alles verstanden. Ist noch etwas zu hoch für mich. (Bin Hardwerker und kein Softwerker)
Hab aber eine einfache JS Lösung für mich gefunden.
brauch doch nur 3 Bits.
let Bit_0 = 1;
let Bit_1 = 2;
let Bit_2 = 4;
let ID_WR2Haus = 'javascript.0.PV_WR2Haus';
let ID_Batt_charge = 'javascript.0.PV_Batt_charge';
let ID_Batt_discharge = 'javascript.0.PV_Batt_discharge';
let ID_System_state = 'alias.0.Energie.PV_Anlage.Betriebsstatus';
let System_state = getState(ID_System_state).val;
let Batt_charge = getState(ID_Batt_charge).val;
let WR2Haus = getState(ID_WR2Haus).val;
// 0 = not charging ; 2 = Charging;
setState(ID_Batt_charge , (System_state & Bit_1), true);
// 0 = not discharging ; 4 = discharging;
setState(ID_Batt_discharge , (System_state & Bit_2), true);
// 0 = no Power from PV; 1 = power from PV
setState(ID_WR2Haus , (System_state & Bit_1), true);
on({ id: [].concat(ID_System_state), change: 'ne' }, async (obj) => {
let value = obj.state.val;
let oldValue = obj.oldState.val;
System_state = (obj.state ? obj.state.val : '');
setState(ID_Batt_charge , (System_state & Bit_1), true);
setState(ID_Batt_discharge , (System_state & Bit_2), true);
setState(ID_WR2Haus , (System_state & Bit_0), true);
});