Gpio über i2C mit MCP23017

  • Hallo zusammen,


    ich habe mir den MCP23017 zum erweitern der I/O besorgt. Die ganze Ansteuerung usw. funktioniert. Wo ich nun etwas Hilfe gebrauchen könnte ist folgendes.

    Auf dem Webserver liegt eine Homepage sagen wir mal ich möchte damit 8 Leuchten steuern. Ich gebe nun über einen Button den Befehl an ein .sh script weiter mit der Übergabe w0_on/off.

    Code
    PHP TEIL:
    exec('sudo /home/user/script.sh w0_on');
    exec('sudo /home/user/script.sh w0_off');
    SCRIPT:
    w0_on) sudo i2cset -y 1 0x22 0x14 0x01;;
    w0_off) sudo i2cset -y 1 0x22 0x14 0x00;;

    Das wiederum funktioniert auch ohne Probleme. Out0 schält an und aus. Mein eigentliches Problem an der Sache ist nun, möchte ich den Out1 dazu nehmen, muss ich ja wissen, ist Out0 bereits geschalten oder nicht. Abhängig davon, muss ich meinen Hexcode auf "2" oder auf "3" anpassen. Das selbe Problem habe ich beim ausschalten. Wenn ich das richtig überschlagen habe, ergibt das bei 0xff 255 mögliche Kombinationen. Das kann doch nicht die Lösung sein, dass ich hier alle möglichen Kombinationen hinterlegen muss. Dazu muss das ganze ja in PHP auch noch abgefangen werden.


    Da gibt es doch mit Sicherheit einen einfachen komfortablen Trick?