Inhaltsverzeichnis
btclock
Die Dokumentation liegt auf Github: https://github.com/dop3j0e/btclock/
Ein Script zum Stellen der Uhr befindet sich auch dort: https://github.com/shackspace/btclock-set
Automatik
Sofern es nicht verstellt wird, ist das btclock-set Script auf dem Kiosk als Cronjob deployed. Bei jedem Boot des Kiosk, versucht dieser sich (falls nötig) mit der Uhr zu pairen (PIN ist hartkodiert im cronjob hinterlegt…) und diese anschliessend zu stellen.
Web-API
Die btclock-api ist deployed auf kiosk.shack unter http://kiosk.shack/btclock/datetime (readonly - nur Aktionen, die den EEPROM nicht beschreiben können hier erreicht werden) sowie writeable unter http://127.0.0.1:8080/btclock/datetime (nur vom kiosk selbst erreichbar).
Das Vorgehen:
Bitte erst den Artikel komplett zu Ende lesen!
Die btclock hat einen Knopf auf der Rückseite, der bei längerem Druck eine 4 stellige zufällige PIN auf dem Display anzeigt.
Nun muss man sich per Bluetooth mit dem Gerät verbinden - der Name des Gerätes lautet „ BT Clock “.
Solange die PIN auf dem Display angezeigt wird, hat man Zeit diese in seinen PC einzugeben um sich zu verbinden.
Nach dem verbinden stehen 2 virtuelle COM-Ports zur Verfügung die man mit Putty öffnen kann.
Nur einer der beiden funktioniert für die Stellung der Uhr - um genau zu sein der Com Port mit dem Namen „ BT Clock 'Dev B' “ und der Direction Outgoing.
Die Baudrate beträgt 9600 - (8) data bits, no (N) parity bit, and one (1) stop bit.
Flow Control: Nicht bekannt. Sowohl XON/XOF als auch None scheint zu funktionieren.
T=YYMMDDhhmmssWWLF
YY = Jahr
MM = Monat
DD = Tag
hh = Stunde
mm = Minute
ss = Sekunde
WW = Wochentag (00 Montag; 01 Dienstag; … ; 06 Sonntag)
LF = Line Feed (auf deutsch: Zeilenumbruch) den man im Unix Format anhängen muss.
Wenn man unter Windows einen Line Feed von Unix einfügen möchte,
benutzt man am besten Notepad++.
Folgende Dinge muss man dann tun:
View, Show Symbol, Show End of Line
Edit, EOL Conversation, Unix (LF)
Anschließend Enter drücken, um einen Zeilenumbruch zu erzeugen.
Mit STRG + A alles aus der Text-Datei markieren und in das Kommandozeilenfenster mit einem einfachen Rechtsklick einfügen.
Wenn ihr alles richtig gemacht habt, sollte die Uhr ein OK zurück geben.
Ungefähr so:
OK
Wenn ihr was falsch gemacht habt, passiert das folgende:
Am Anfang wird ein No| ausgegeben, dannach kommt das, was ihr mit dem Rechtsklick der Maus eingefügt habt und die Meldung +DISC:SUCCESS.
No|T=17102817380005+DISC:SUCCESS
Die Fehlermeldung taucht manchmal auch erst auf, wenn ihr die COM-Portverbindung zum zweiten mal öffnet.
Beispielsitzung - Linux
Koppeln
$ bluetoothctl Agent registered [CHG] Controller 11:22:33:44:55:66 Pairable: yes [bluetooth]# scan on Discovery started [CHG] Controller 11:22:33:44:55:66 Discovering: yes [NEW] Device 20:11:02:47:01:01 BT Clock [bluetooth]# pair 20:11:02:47:01:01 Attempting to pair with 20:11:02:47:01:01 [CHG] Device 20:11:02:47:01:01 Connected: yes Request PIN code [agent] Enter PIN code: 3212 [CHG] Device 20:11:02:47:01:01 ServicesResolved: yes [CHG] Device 20:11:02:47:01:01 Paired: yes Pairing successful [bluetooth]# scan off [bluetooth]# quit
Uhr stellen
Hierfür wird das leider mittlerweile als deprecated eingestufte tool rfcomm benötigt. In Archlinux gibt es dieses Tool noch im AUR. Im Snapshot dieses Pakets befindet sich eine PKGBUILD Datei sowie die Sources des rfcomm-Tools - damit sollte sich dieses Tool auch für andere Distributionen leicht wieder zum Leben erwecken lassen.
$ sudo rfcomm bind rfcomm0 20:11:02:47:01:01 # --echo gibt jedes gesendete Zeichen nochmal lokal aus # --omap crlf ersetzt jedes zu sendende cr (carriage return) durch lf (linefeed) # --imap lfcrlf ersetzt jedes empfangene lf durch crlf # Um picocom zu verlassen, nacheinander die Kombinationen [Strg+a], [Strg+x] drücken $ sudo picocom --quiet --echo --omap crlf --imap lfcrlf /dev/rfcomm0 T=17102817380005 OK T? 2017-10-28(05) 17:38:03 OK $ sudo rfcomm release rfcomm0