Hi, das geht viel einfacher.
Du musst zunächst mit Deinen Tastern den Port auf Gnd schalten (nicht auf 5Volt!). Wenn nicht gedrückt ist, dann wird der Port automatisch auf 5V gezogen und damit als "On" erkannt (also logisch gerade verkehrt herum).
Die Zustände der Relais werden schon im Byte "STATION_IO" als Bit-Zustände gespeichert. Die Tastenzustände müssen mit Not einfach invertiert werden und dem Relais-Bits zugewiesen werden. Fertig!
Schau Dir auch die Definition hier an, dass ist einfacher und führt nicht zu weiteren Kuddelmuddel:
define REL4 ref STATION_IO at bit[8]

Code:
define LIGHT       as port[16]
define BPORT1   as byteport[1]

import "...\LIB\SHOW_BINARY.BAS"
import "...\LIB\PULLUP1_ENABLE.BAS"

define ADC8           ad[8]

define SDA          as port[9]
define SCL          as port[10]
define EXTPORT      as byteport[4]

define STATION_IO   as  byte

define REL1 ref STATION_IO at bit[5]
define REL2 ref STATION_IO at bit[6]
define REL3 ref STATION_IO at bit[7]
define REL4 ref STATION_IO at bit[8]

define Taster1 as Port[1] ' Taster auf GND
define Taster2 as Port[2] ' Taster auf GND
define Taster3 as Port[3] ' Taster auf GND
define Taster4 as Port[4] ' Taster auf GND

PULLUP1_ENABLE()
LIGHT=off
LCD.INIT
SDA=on
SCL=on

STATION_IO=OFF

#HAUPTSCHLEIFE
REL1=Not(Taster1)
REL2=Not(Taster2)
REL3=Not(Taster3)
REL4=Not(Taster4)

EXTPORT=STATION_IO   ' Auf Byteport schreiben
LCD.POS 1,1
LCD.PRINT "BINARY: "
SHOW_BINARY(BPORT1)

goto HAUPTSCHLEIFE