Grundsätzlich hat Tommi Recht, man muß die PHP Möglichkeiten selber herausfinden, dann bleibt es hängen.
Allerdings fällt es „nicht Programmierern“ extrem schwer überhaupt heraus zu finden nach was er suchen soll, wie der Lösungsweg aussehen könnte.
Dann kommt noch dazu, dass er das Pokeysmodul nutzt, dann muß ich hier was schreiben 
Grundsätzlich findet in meinem Beispiel [QUOTE]$PokeysWert&(1<<$bit))? [ /QUOTE]eine Bitschieberei (da wo die Pfeile sind) statt, die Du in dem nachfolgenden Script „einzeln“ an der Verschiebung der „1“ im Vergleich siehst.
Dann schreibe ich in Abhängigkeit der UND Verknüpfung die Variablen, gebe das Ergebnis also nicht als Text aus.
Wenn Du es nutzen willst, Modbusinstanz ist klar, dazu mußt Du noch 8 Boolean/Bitvariablen anlegen, oder Du beschreibst in der entsprechenden Schleife Deine genutzten Variablen direkt.
<?
$Wert= GetValueInteger(10494 /*ID Deiner Modbusvariable*/);
If ($Wert & 0b00000001)
{
SetValueBoolean(20240 /*[Test\Bit0]*/, true);
}
else
{
SetValueBoolean(20240 /*[Test\Bit0]*/, false);
}
If ($Wert & 0b00000010)
{
SetValueBoolean(26120 /*[Test\Bit1]*/, true);
}
else
{
SetValueBoolean(26120 /*[Test\Bit1]*/, false);
}
If ($Wert & 0b00000100)
{
SetValueBoolean(43003 /*[Test\Bit2]*/, true);
}
else
{
SetValueBoolean(43003 /*[Test\Bit2]*/, false);
}
If ($Wert & 0b00001000)
{
SetValueBoolean(40069 /*[Test\Bit3]*/, true);
}
else
{
SetValueBoolean(40069 /*[Test\Bit3]*/, false);
}
If ($Wert & 0b00010000)
{
SetValueBoolean(43155 /*[Test\Bit4]*/, true);
}
else
{
SetValueBoolean(43155 /*[Test\Bit4]*/, false);
}
If ($Wert & 0b00100000)
{
SetValueBoolean(47246 /*[Test\Bit5]*/, true);
}
else
{
SetValueBoolean(47246 /*[Test\Bit5]*/, false);
}
If ($Wert & 0b01000000)
{
SetValueBoolean(53187 /*[Test\Bit6]*/, true);
}
else
{
SetValueBoolean(53187 /*[Test\Bit6]*/, false);
}
If ($Wert & 0b100000000)
{
SetValueBoolean(34868 /*[Test\Bit7]*/, true);
}
else
{
SetValueBoolean(34868 /*[Test\Bit7]*/, false);
}
?>
Gruß Helmut