1-Wire Bus-Timing ist ziemlich zeitkritisch. Also braucht man dezidierte Hardware:
- Entweder einen Busmaster-Chip wie den DS2480B, der via serielle Schnittstelle/USB angebunden wird. Software dafür entweder FHEM oder OWFS. Nachdem ich das einmal für FHEM gemacht habe, kann ich nicht empfehlen, das noch einmal selbst zu entwickeln. Viel besser wäre, auf die Datenwerte von 1-Wire/iButton zuzugreifen, die von OWFS als Dateien im Dateisystem zur Verfügung gestellt werden. Typischerweise kann man damit den 1-Wire Bus/iButton Reader 1x pro Sekunde abfragen.
- Oder einen Arduino, der nicht allgemein den Bus ausliest, sondern nur in sehr kurzen Abständen von 250 ms prüft, ob einer aus einer definierten Gruppe von iButtons auf dem Bus ist. Merke: reduzierte Fähigkeiten = erhöhte Sicherheit. Da der Arduino etwa genausoviel kostet, wie ein 1-Wire-Adapter mit DS2480B und USB-Anschluss, bevorzuge ich als Zugangssystem einen solchen separaten Arduino Micro.
Der Arduino setzt bei einem korrekt erkannten Button einen Ausgangspin auf GND, dieser ist an einen Eingangspin des PiFace gekoppelt.
Das wäre zwar theoretisch ebenfalls überbrückbar. Allerdings ist das System gegen Sabotage gesichert, und der Arduino kann direkt am DoorPi-Rechner und in großer Entfernung von der Frontplatte platziert werden.
In Version 2 kommuniziert der Arduino mit dem DoorPi-Rechner über seine serielle Schnittstelle.
LG
pah