Also kurz ein Auszug aus der Anleitung:

Benutzung eines Digitalports als Eingang
Digitaleingänge werden zur Abfrage von Schaltzuständen verwendet. Wird ein Digitalport als Eingang benutzt,
führt er im unbeschalteten Zustand undefinierten Pegel der z.B. mit einem PULL UP-Widerstand festgelegt
werden muss. Ist beispielsweise ein Reedkontakt an diesem Portangeschlossen, wird bei offenem Schalter eine
logische Eins (,,wahr”) vom Port gelesen, bei geschlossenem Schalter eine logische Null (,,falsch”).
Achten Sie bitte unbedingt darauf, daß je nach Beschaltung des Ports und der logischen Aussage, die Ihr
Programm beinhalten soll, der eingelesene Wert eventuell invertiert werden muß (NOT-Operator, siehe Befehlsbeschreibung)!
Wie sieht denn deine Aussenbeschlatung aus, oder ist dir noch garnicht klar, wie sie aussehen muss? Falls nicht, ist dein Programm theoretisch richtig, du bräuchtest dann aber einen Pulldown Widerstand, dern Port im Falle von keiner Kollision runter (off) zieht.

Wenn dir das noch nicht klar ist, dann frag.