Dies ist die Beschreibung der MQTT API Bindings für das Industrial Quad Relay Bricklet. Allgemeine Informationen über die Funktionen und technischen Spezifikationen des Industrial Quad Relay Bricklet sind in dessen Hardware Beschreibung zusammengefasst.
Eine Installationanleitung für die MQTT API Bindings ist Teil deren allgemeine Beschreibung.
Der folgende Beispielcode ist Public Domain (CC0 1.0).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # Change XYZ to the UID of your Industrial Quad Relay Bricklet
setup:
# Turn relays alternating on/off 10 times with 100 ms delay
for i in 0..9
wait for 0.1s
publish '{"value_mask": 1}' to tinkerforge/request/industrial_quad_relay_bricklet/XYZ/set_value # 1 << 0 = 1
wait for 0.1s
publish '{"value_mask": 2}' to tinkerforge/request/industrial_quad_relay_bricklet/XYZ/set_value # 1 << 1 = 2
wait for 0.1s
publish '{"value_mask": 4}' to tinkerforge/request/industrial_quad_relay_bricklet/XYZ/set_value # 1 << 2 = 4
wait for 0.1s
publish '{"value_mask": 8}' to tinkerforge/request/industrial_quad_relay_bricklet/XYZ/set_value # 1 << 3 = 8
endfor
|
Alle veröffentlichten Payloads an die und von den MQTT-Bindings sind im JSON Format.
Falls ein Fehler auftritt, veröffentlichen die Bindings ein JSON-Objekt, das die Fehlermeldung als _ERROR
-Member enthält.
Das Objekt wird auf dem zugehörigen Antwort-Topic veröffentlicht: .../response/...
für .../request/...
und .../callback/...
für .../register/...
.
request/
industrial_quad_relay_bricklet/
<UID>/
set_value
¶Anfrage: |
|
---|---|
Antwort: |
|
Setzt die Ausgabewerte mit einer Bitmaske (16Bit). Eine 1 in der Bitmaske bedeutet Relais geschlossen und eine 0 in der Bitmaske bedeutet Relais offen.
Zum Beispiel: Der Wert 3 bzw. 0b0011 wird die Relais 0-1 schließen und alle anderen öffnen.
Falls keine Gruppen verwendet werden (siehe request/industrial_quad_relay_bricklet/<UID>/set_group
), entsprechen
die Pins der Beschriftung auf dem Industrial Quad Relay Bricklet.
Falls Gruppen verwendet werden, entsprechen die Pins den Elementen der Gruppe. Element 1 in der Gruppe bekommt Pins 0-3, Element 2 Pins 4-7, Element 3 Pins 8-11 und Element 4 Pins 12-15.
Alle laufenden Monoflop Timer werden abgebrochen, wenn diese Funktion aufgerufen wird.
request/
industrial_quad_relay_bricklet/
<UID>/
get_value
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt die Bitmaske zurück, wie von request/industrial_quad_relay_bricklet/<UID>/set_value
gesetzt.
request/
industrial_quad_relay_bricklet/
<UID>/
set_monoflop
¶Anfrage: |
|
---|---|
Antwort: |
|
Konfiguriert einen Monoflop für die Pins, wie mittels der Bitmaske des ersten Parameters festgelegt.
Der zweite Parameter ist eine Bitmaske mit den gewünschten Zuständen der festgelegten Pins. Eine 1 in der Bitmaske bedeutet Relais geschlossen und eine 0 in der Bitmaske bedeutet Relais offen.
Der dritte Parameter stellt die Zeit dar, welche die Pins den Zustand halten sollen.
Wenn diese Funktion mit den Parametern (9, 1, 1500) bzw. (0b1001, 0b0001, 1500) aufgerufen wird: Pin 0 wird auf geschlossen und Pin 3 auf geöffnet gesetzt. Nach 1,5s wird Pin 0 wieder geöffnet und Pin 3 geschlossen.
Ein Monoflop kann zur Ausfallsicherung verwendet werden. Beispiel: Angenommen ein RS485 Bus und ein Quad Relay Bricklet ist an ein Slave Stapel verbunden. Jetzt kann diese Funktion sekündlich, mit einem Zeitparameter von 2 Sekunden, aufgerufen werden. Der Pin wird die gesamte Zeit im Zustand geschlossen sein. Wenn jetzt die RS485 Verbindung getrennt wird, wird der Pin nach spätestens zwei Sekunden in den Zustand geöffnet wechseln.
request/
industrial_quad_relay_bricklet/
<UID>/
get_monoflop
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt (für den angegebenen Pin) den aktuellen Zustand und die Zeit, wie von
request/industrial_quad_relay_bricklet/<UID>/set_monoflop
gesetzt, sowie die noch verbleibende Zeit bis zum
Zustandswechsel, zurück.
Wenn der Timer aktuell nicht läuft, ist die noch verbleibende Zeit 0.
request/
industrial_quad_relay_bricklet/
<UID>/
set_group
¶Anfrage: |
|
---|---|
Antwort: |
|
Setzt eine Gruppe von Quad Relay Bricklets die zusammenarbeiten sollen.
Mögliche Gruppierungen können mit der Funktion request/industrial_quad_relay_bricklet/<UID>/get_available_for_group
gefunden werden.
Eine Gruppe besteht aus 4 Element. Element 1 in der Gruppe bekommt Pins 0-3, Element 2 Pins 4-7, Element 3 Pins 8-11 und Element 4 Pins 12-15.
Jedes Element kann entweder auf einen der Ports ('a' bis 'd') gesetzt werden oder falls nicht genutzt 'n' gesetzt werden.
Zum Beispiel: Falls zwei Quad Relay Bricklets mit Port A und Port B verbunden
sind, könnte diese Funktion mit ['a', 'b', 'n', 'n']
aufgerufen werden.
In diesem Fall wären die Pins von Port A den Werten 0-3 zugewiesen und
die Pins von Port B den Werten 4-7. Es ist jetzt möglich mit der Funktion
request/industrial_quad_relay_bricklet/<UID>/set_value
beide Bricklets gleichzeitig zu kontrollieren.
request/
industrial_quad_relay_bricklet/
<UID>/
get_group
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt die Gruppierung zurück, wie von request/industrial_quad_relay_bricklet/<UID>/set_group
gesetzt.
request/
industrial_quad_relay_bricklet/
<UID>/
get_available_for_group
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt eine Bitmaske von Ports zurück die für die Gruppierung zur Verfügung stehen. Zum Beispiel bedeutet der Wert 5 bzw. 0b0101: Port A und Port C sind mit Bricklets verbunden die zusammen gruppiert werden können.
request/
industrial_quad_relay_bricklet/
<UID>/
set_selected_values
¶Anfrage: |
|
---|---|
Antwort: |
|
Setzt die Ausgabewerte mit einer Bitmaske, entsprechend der Selektionsmaske. Die Bitmaske ist 16 Bit lang. true steht für ein geschlossenes Relais und false für ein offenes Relay.
Zum Beispiel: Die Werte (3, 1) bzw. (0b0011, 0b0001) wird das Relais 0 schließen, das Relais 1 öffnen und alle anderen unangetastet lassen.
Falls keine Gruppen verwendet werden (siehe request/industrial_quad_relay_bricklet/<UID>/set_group
), entsprechen
die Pins der Beschriftung auf dem Industrial Quad Relay Bricklet.
Falls Gruppen verwendet werden, entsprechen die Pins den Elementen der Gruppe. Element 1 in der Gruppe bekommt Pins 0-3, Element 2 Pins 4-7, Element 3 Pins 8-11 und Element 4 Pins 12-15.
Laufende Monoflop Timer für die ausgewählten Relais werden abgebrochen, wenn diese Funktion aufgerufen wird.
request/
industrial_quad_relay_bricklet/
<UID>/
get_identity
¶Anfrage: |
|
---|---|
Antwort: |
|
Gibt die UID, die UID zu der das Bricklet verbunden ist, die Position, die Hard- und Firmware Version sowie den Device Identifier zurück.
Die Position ist 'a', 'b', 'c', 'd', 'e', 'f', 'g' oder 'h' (Bricklet Anschluss). Ein Bricklet hinter einem Isolator Bricklet ist immer an Position 'z'.
Eine Liste der Device Identifier Werte ist hier zu finden. Falls die symbolische Ausgabe nicht deaktiviert wurde, wird der Device Identifier auf den entsprechenden Namen im Format, welches die Topics verwenden, abgebildet.
Der Display Name enthält den Anzeigenamen des Industrial Quad Relay.
Callbacks können registriert werden um zeitkritische
oder wiederkehrende Daten vom Gerät zu erhalten. Die Registrierung kann
mit dem entsprechenden .../register/...
-Topic und einem optionalen Suffix durchgeführt werden.
Mit diesem Suffix kann das Callback später deregistriert werden.
Bemerkung
Callbacks für wiederkehrende Ereignisse zu verwenden ist immer zu bevorzugen gegenüber der Verwendung von Abfragen. Es wird weniger USB-Bandbreite benutzt und die Latenz ist erheblich geringer, da es keine Paketumlaufzeit gibt.
register/
industrial_quad_relay_bricklet/
<UID>/
monoflop_done
¶Registrierungsanfrage: |
|
---|---|
Callback-Antwort: |
|
Ein Callback für dieses Event kann durch Senden des Payloads "true" an das .../register/industrial_quad_relay_bricklet/<UID>/monoflop_done[/<SUFFIX>]
-Topic hinzugefügt werden.
Ein hinzugefügtes Callback kann durch Senden des Payloads "false" an das selbe Topic wieder entfernt werden.
Um mehrere (De-)Registrierungen zu unterstützen, z.B. um Nachrichten filtern zu können, kann ein optionaler Suffix verwendet werden.
Wenn das Callback ausgelöst wird, wird dessen Payload für jeden Suffix auf dem entsprechenden .../callback/industrial_quad_relay_bricklet/<UID>/monoflop_done[/<SUFFIX>]
-Topic veröffentlicht.
Dieser Callback wird ausgelöst, wenn ein Monoflop Timer abläuft (0 erreicht). Payload-Member des Callbacks enthalten die beteiligten Pins als Bitmaske und den aktuellen Zustand als Bitmaske (der Zustand nach dem Monoflop).