Quantasy Geschrieben May 22, 2016 at 22:08 Geschrieben May 22, 2016 at 22:08 Hallo Tinkerforge-ler da draussen Ich habe für meine Studenten (und vor allem für mich) eine neue MQTT-Repräsentation der Tinkerforge-Device erstellt. Dabei ist jedes Device als 'Service' ausgeführt, welches Anfragen jeweils über Intent-Topics entgegen nimmt (Der Service ist darauf subscribed). Antwort darauf in Event- und Status-Topics ausgibt (Der Service published dort drauf). Jede Device-Klasse ist in einer eigenen MQTT-Topic (description) beschrieben. Die Implementation auf Dynamik und Robustheit aus und erwartet, dass die Bandbreite der MQTT-Anbindung auch mal schlecht ist. Deshalb werden sämtliche Events als "Array of Events" versandt, sodass auf keinen Fall ein Event verpasst wird (Vielleicht aber halt eine Liste von veralteten Events daher kommt). Als Syntax wurde YAML gewählt, "weil diese dem Menschen einfach noch am nächsten liegt" (Aussage eines Studenten der auf diesem Gebiet die Bachelorarbeit gemacht hat). Noch wird die Implementierung mit heisser Nadel weiter gestrickt und muss bestimmt noch ein wenig abkühlen (-> Dokumentiert werden) ehe sie als 'Rock-Solid' gelten darf.... Aber das ist das Ziel... darauf arbeite ich hin. Dennoch, für mutige "Probierer", welche sich in MQTT und Tinkerforge ein wenig zu Hause fühlen sei die Sache bereits dienlich. https://github.com/knr1/ch.quantasy.tinkerforge.mqtt.gateway P.S. Ich habe versucht, mich so nahe wie möglich an der Tinkerforge (Java) Dokumentation zu halten, sodass es sich für einen Tinkerforge-ler sehr natürlich anfühlt. Bloss bei einzelnen z.B. LEDStrip habe ich eine Vereinfachung für den Benutzer vorgenommen... So muss man sich nicht um das LED-Handling kümmern, kann einfach nur die kompletten Daten für ein neues Frame hochsenden. Zitieren
Gast piwo Geschrieben May 24, 2016 at 07:30 Geschrieben May 24, 2016 at 07:30 danke ! danke ! habe partiell auch schon angefangen den eher schmucklosen und "rohen" tf-mqtt zu redesignen mit verschiedenen python-libs, aber - die zeitnot - arrrgh ich habe schon viele überlegungen angestellt, welche "middleware" am passendsten wäre als "breakout" einer stackfarm. vielleicht hat ja wer ideen wie eine weitere "verdichtung" bzw. aggregierung von events & eventuell eine rudimentäre state-machine aussehen könnte ? hat vllt. wer da eine brauchbare implementierung eines petrinetzes o.ä. mal versucht ? hat wer sonstige ideen bzw. implementierungsversuche angestellt ?? Zitieren
Quantasy Geschrieben July 14, 2016 at 12:47 Autor Geschrieben July 14, 2016 at 12:47 Die Library schreitet mutig voran und unterstützt bereits eine nette Menge an Bricks und Bricklets. Nun ist auch noch NFC dazugekommen, welches das ganze NFC-Handling um einiges vereinfacht! Die Library arbeitet intern mit Callbacks und ist stark parallelisiert. Wie nutzt man die Library: Um einen Stack (z.B. USB) verwalten zu können muss folgende Message versandt werden: Topic: TF/Manager/stack/address/add Message: localhost Es können beliebige weitere Stacks verwaltet werden (Bsp: via wlan): Topic: TF/Manager/stack/address/add Message: 192.168.1.97 Um eine LCD-Display (mit UID a1e) anzusteuern: Topic: TF/LCD20x4/a1e/intent/backlight Message: true Um NFC-Tags discovern zu können (UID oop): Topic: TF/NfcRfid/ouu/intent/scanning/callbackPeriod Message: 1000 Um eine Temperatur auslesen zu können (UID aad): Topic: TF/NfcRfid/aad/intent/scanning/callbackPeriod Message: 1000 Dabei ist es absolut egal, an welchem Stack sich ein Sensor/Aktor befindet, der wird immer über seinen Typ und UID identifiziert. Wäre toll, wenn diese Library auch von anderen benutzt werden könnte, so würde ich Feedback erlangen. https://github.com/knr1/ch.quantasy.tinkerforge.mqtt.gateway @ piwo: Stimmt, das nächste wäre nun eine state-machine... Aber he, der Sommer ist noch laaaaang ;-) Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.