Author Topic: Betaversion der openHAB-Bindings  (Read 14168 times)

rtrbt

  • Tinkerforge Staff
  • Administrator
  • Full Member
  • *****
  • Posts: 135
    • View Profile
Betaversion der openHAB-Bindings
« on: September 05, 2019, 14:25:43 »
Moin,

Ich habe die letzten Monate daran gearbeitet, unseren Binding-Generator so aufzubohren, dass auch openHAB-Bindings generiert werden können. Die elfte Beta findet sich hier.

Edit: Beta 11 mit Backlight-Channel für das LCD 128x64.

Hier der Inhalt der README:
Installation:
    Die Bindings benötigen eine openHAB 2.5.0 Milestone/Snapshot Installation.
    Zum Installieren reicht es, die JAR in das addons-Verzeichnis zu kopieren.
    Nachdem openHAB das Addon geladen hat (das kann einen Moment dauern), kann
    über die Inbox ein Brick Daemon hinzugefügt werden.

Konfiguration:
    Nachdem der Brick Daemon hinzugefügt wurde, werden angeschlossene Geräte
    automagisch in die Inbox gelegt. Nicht unterstützte Geräte haben "This
    device is not supported yet." in der Beschreibung. Zwecks Übersicht können
    diese versteckt werden.

    Sowohl Bricklets als auch Channels können Konfiguration haben: Channels
    typischerweise die Aktualisierungsrate (Default: 1s). Die
    Brickletkonfiguration kann Channels anzeigen/verstecken, z.b. erzeugt die
    Pinkonfiguration der IO-4/16 Input/Output-Channels je nachdem, ob ein Pin
    auf Input oder Output konfiguriert wurde. Die PaperUI braucht manchmal eine
    Aktualisierung per F5, damit neue Channels angezeigt werden.

    Es kann nur Konfiguration gesetzt werden, die im RAM des Bricklets
    gespeichert wird. Persistente Konfiguration muss extern (z.b. mit dem Brick
    Viewer) gesetzt werden, da openHAB diese jedes Mal schreiben würde, wenn
    openHAB startet, oder die Verbindung zum Brick Daemon wiederhergestellt
    wurde usw. Das kostet zu viele Flash-Schreibzyklen.

Weitere Dokumentation:
    Findet sich im doc-Unterordner der Bindings. Dort sind pro Gerät die
    unterstützten Konfigurationsparameter und Channel mit Beschreibung
    aufgelistet.
   
Display-Bricklets:
    Text wird auf folgende Weise gesetzt: [line],[position],[text].
    Weitere ',' nach den ersten beiden werden als Teil des Textes behandelt.
    Der Text kann mit \x[zwei Hex-Ziffern] das Character-Set des Displays
    verwenden. Zusätzlich werden Unicode-Zeichen so gut es geht auf das
    Display-Character-Set abgebildet, wie das auch in den Code-Beispielen
    passiert, siehe z.B. hier: https://www.tinkerforge.com/de/doc/Software/Bricklets/LCD20x4_Bricklet_Java.html#unicode
   
    Beispielsweise gibt 1,2,Hallo, opεnH\xE0B! auf einem LCD 20x4 in
    Zeile 1, Spalte 2 aus: Hallo, opεnHαB!
    Das kleine Epsilon wurde von Unicode in das LCD-Character-Set übersetzt,
    0xE0 (224) entspricht dem kleinen Alpha.
   
    Die PaperUI scheint Leerzeichen am Rand des Commands abzuschneiden.
    Um (Teile) einer Zeile zu löschen kann also nicht ein Befehl wie
    1,2,[Leerzeichen] verwendet werden. Stattdessen kann 1,2,\xFE\xFE\xFE
    benutzt werden um in Zeile 1, Spalte 2 drei Zeichen zu löschen.
   
Fehlende Features:
    Channels akzeptieren nur einen CommandTypen, d.h. z.B. LED des
    RGB LED Button Bricklets nimmt nur HSBType an, nicht die anderen, die von
    openHAB erwartet werden (wie PercentType wenn die Brightness geändert wird)
   
    Für Displays: Aktuell ist nur Textausgabe, Clearen des Displays und
    Kontrolle des Backlights möglich. Weitere Funktionen wie GUI und Anzeigen
    von Bildern (also Setzen von Pixel) sind in Arbeit: Der Generator
    unterstützt zur Zeit noch keine Actions.
   
    Manche Channel (z.B. Sensor Connected der PTC-Bricklets) aktualisieren
    ihren Wert nur, wenn ein RefreshCommand gesendet wird. Das ist aktuell
    nicht dokumentiert.

Bekannte Bugs:
    Brickletkonfiguration zeigt Bridge Selection an, aber nicht den
    (bereits konfigurierten) Brick Daemon. Editieren wirft Fehler.

    Display Bricklets zeigen auf der Übersichtsseite, solange noch kein Text
    gesendet wurde, '-' als Text an, wenn darauf geklickt wird NULL.
   
    Die Displayübersetzung benutzt im Moment für alle Displays das
    Character-Set vom LCD 20x4.

    PaperUI zeigt die Description von Channel(Typen) und
    Konfigurationsparameter-Gruppen nicht an. -> Sind im docs-Unterorder pro
    Gerät aufgeführt.

    Löschen von nicht angeschlossenen Geräten funktioniert nur manchmal: Der
    DeviceHandler versucht aufzuräumen, z.b. Callbacks zu deaktivieren. Falls
    das Gerät nicht erreicht wird, fliegen hier Timeouts. Das wird aktuell
    nicht korrekt behandelt.

    Generierter Code muss noch verbessert werden. Kompilieren erzeugt viele
    Warnungen, Listener(de)registrierungen werden teilweise dupliziert.

Unbekannte Bugs:
    Falls ein anderer Bug auftritt, bitte das openHAB-Log mit anhängen. Das Log
    findet sich im userdata/logs-Verzeichnis der openHAB-Installation. Falls der
    Bug reproduzierbar ist, kann mit log:set TRACE org.openhab.binding.tinkerforge
    (in der Karaf-Konsole) das LogLevel erhöht werden, dann erscheinen eventuell
    weitere hilfreiche Informationen im Log. Außerdem hilfreich ist
    log:exception-display. Falls Fehler in der PaperUI angezeigt werden,
    können diese mit der Netzwerkanalyse der Web-Entwickler-Tools untersucht
    werden. Dann mit laufender Analyse die Seite neuladen und die Antworten von
    Anfragen mit Statuscode 500 ansehen. Eventuell hilft hier auch
    log:exception-display.

Noch nicht unterstützte Geräte:
    DC Brick
    Master Brick
    RED Brick
    Servo Brick
    Silent Stepper Brick
    Stepper Brick
    CAN Bricklet
    CAN 2.0 Bricklet
    DMX Bricklet
    E-Paper 296x128 Bricklet
    NFC Bricklet
    NFC-RFID Bricklet
    One Wire Bricklet
    Piezo Buzzer Bricklet
    Piezo Speaker Bricklet
    Piezo Speaker 2.0 Bricklet
    Remote Switch Bricklet
    Remote Switch 2.0 Bricklet
    RS232 Bricklet
    RS232 2.0 Bricklet
    RS485 Bricklet

Nur teilweise unterstützte Geräte:
    IO4 2.0 Bricklet # PWM Support fehlt. Modellierung? (Frequenz/Duty Cycle als Channel, Konfiguration oder komplexer Channel mit Parsing wie bei Displays, eventuell Action?)   
    LCD 16x2 Bricklet # Siehe Display-Bricklets-Abschnitt
    LCD 20x4 Bricklet # Siehe Display-Bricklets-Abschnitt
    LCD 128x64 Bricklet # Siehe Display-Bricklets-Abschnitt
    OLED 64x48 Bricklet # Siehe Display-Bricklets-Abschnitt
    OLED 128x64 Bricklet # Siehe Display-Bricklets-Abschnitt
    OLED 128x64 2.0 Bricklet  # Siehe Display-Bricklets-Abschnitt
   
« Last Edit: September 27, 2019, 15:08:44 by rtrbt »

StefanOHAN

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #1 on: September 06, 2019, 09:07:03 »
Hallo rtrbt

das hört sich interessant an.

Kurze Frage hätte ich, ist dieser "Binding-Generator" dazu gedacht dass sich jeder dann sein eigenes Binding erstellen kann in dem er den Generator auf dem System installiert auf dem Openhab läuft ?

Viele Grüsse

Stefan

rtrbt

  • Tinkerforge Staff
  • Administrator
  • Full Member
  • *****
  • Posts: 135
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #2 on: September 06, 2019, 09:22:40 »
Moin,

Der Generator ist dieser hier. Er erzeugt die API-Bindings für alle unterstützten Programmiersprachen und jetzt auch für openHAB. Den kannst du theoretisch bei dir ausführen, aber zur Zeit ist es noch etwas Handarbeit, die openHAB-Bindings zu kompilieren.

Erik

StefanOHAN

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #3 on: September 06, 2019, 09:58:13 »
Hallo Erik,


danke für die schnelle Antwort
Es wird auf jedem Fall dann Theo die Arbeit erleichtern

viele Grüsse
Stefan

piwo2

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #4 on: September 09, 2019, 16:09:28 »
!!!!!!!!!!!!! grossartige nachricht !!!!!!!!!!!!!!!

ich forsche schon seit wochen nach frameworks & deren möglichkeiten, anpassungen/workarounds in richtung tinkerforge UND andere (z.b. ebus, knx) unter einen hut zu bringen ....
als einziger ansatz ist mir bisher seitens tf der mqtt-proxy via einer eigens zu schreibenden "übersetzungs-middleware" eingefallen ....

eigene bindings würden nun openhab definitiv als integrationsschicht der ersten wahl anbieten !

bin echt gespannt & aufgeregt. endlich nägel mit köpfen.

lg wp

maxico

  • Newbie
  • *
  • Posts: 18
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #5 on: September 10, 2019, 11:53:19 »
Danke, klingt erstmal vielversprechend.
Ist geplant weitere Bricklet-Bindings "generieren" zu lassen?
Konkret (Theos Binding hat die):
Analog In
Analog In 2.0
Industrial Digital Out
Industrial Digital In 4
« Last Edit: September 10, 2019, 11:58:23 by maxico »

rtrbt

  • Tinkerforge Staff
  • Administrator
  • Full Member
  • *****
  • Posts: 135
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #6 on: September 10, 2019, 12:10:16 »
Moin,
Geplant ist möglichst alle Bricks und Bricklets generieren zu lassen. Ich habe für die Beta nur erstmal die, die Theos Bindings unterstützen genommen, da das ja scheinbar die sind, an denen openHAB-User am wahrscheinlichsten interessiert sind. Die vier auf deiner Liste habe ich beim spontanen Codedurchsuchen in Theos aktuellen Bindings nicht gefunden, ich setze sie mir aber trotzdem mal auf der TODO-Liste nach oben.

maxico

  • Newbie
  • *
  • Posts: 18
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #7 on: September 10, 2019, 16:58:02 »
Danke fürs Anpassen der TODO-LIste :-) teste dann gerne
Was meinst Du mit Theos "aktuellen Bindings"?
Bin nicht sicher, aber es gibt das OH1 Binding (offizielles Addon, von Theo):
https://www.openhab.org/addons/bindings/tinkerforge1/

Und es gibt Theos Beta des nativen OH2 Bindings (jar Datei). Das unterstützt  weniger, aber auch andere, neuere Bricklets...
« Last Edit: September 10, 2019, 17:00:37 by maxico »

rtrbt

  • Tinkerforge Staff
  • Administrator
  • Full Member
  • *****
  • Posts: 135
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #8 on: September 10, 2019, 17:09:11 »
Ich meinte die OH2 Bindings. Ich editiere gleich den Post oben auf einen Link zur Beta 2. Die unterstützt die vier Bricklets auf deiner Liste und das Joystick V2. Vom Analog In (1) und Industrial Digital In 4 habe ich hier keins mehr gefunden, die kannst du ja mal testen ;)

Jerome

  • Newbie
  • *
  • Posts: 15
    • View Profile
    • HeliosBox
Re: Betaversion der openHAB-Bindings
« Reply #9 on: September 10, 2019, 19:22:01 »
Super Sache!

Vermisst wird immer noch das GPS sowie das LED Stripe Bricklet. :)

Liebe Grüsse

xsherlock

  • Jr. Member
  • **
  • Posts: 78
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #10 on: September 11, 2019, 19:03:18 »
C'mon translate that to english, I'm waiting for those proper binding for months.

StefanOHAN

  • Jr. Member
  • **
  • Posts: 72
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #11 on: September 11, 2019, 21:29:13 »
Hallo Erik,
ich habe heute Dein Binding "2.5.0.201909101456" in meiner Openhab2 Entwicklungsumgebung eingespielt.
HW = RasPi 3b
OS = Openhabian v1.5
Openhab = 2.5.0-SNAPSHOT Build #1673

Leider habe ich momentan nicht viel Zeit und nur mal kurz gecheckt was bei mir angezeigt wird.
Ich konnte alle angeschlossenen brick's / brickletes / HAT-Brick unter "paperui/index.html#/inbox" sehen.
Unter paperui/index.html#/configuration/things
wurden IO-16 / IO-16 2.0 ; Humidity 2.0 ; Industrial Quad Relais 2.0 ; LCD 128x64 ;LCD 20x4 ; Multi-Touch ; Motion Detector 2.0 erkannt.
Als not supported yet angezeigt wurden
->Tinkerforge Master Brick
->Tinkerforge Outdoor Weather Bricklet
->Tinkerforge NFC Bricklet
->Tinkerforge HAT Brick


Also auf meiner Wunschliste wäre diese 4 weiteren Komponenten :-)

Mit Rules / Channel usw. hab ich noch nichts getestet, nur 3 x den Openhab-Service durchgestartet, um zu schauen ob nach dem Restart auch wieder alle Komponenten als Online angezeigt wurden, da hatte ich in letzter Zeit öfters mal Probleme. Es wurden immer alle Komponenten wieder als Online angezeigt.

Eine paar Fragen hätte ich:
Wie haben Du und Theo das zukünftige Vorgehen geplant ?
Wer wird das Binding pflegen ?
Wen soll man ansprechen wenn man Erweiterungen möchte ?
Wen soll / kann ich durch Testen des Binding unterstützen ?

viele Grüße

Stefan

rtrbt

  • Tinkerforge Staff
  • Administrator
  • Full Member
  • *****
  • Posts: 135
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #12 on: September 12, 2019, 11:47:09 »
Moin,
Hier ist Beta 3 mit Support für die LED Strip und GPS Bricklet.

@StefanOHAN:
Was hast du mit dem Master Brick und openHAB vor? Bin mir da noch unschlüssig was sinnvoll abzubilden ist.

Outdoor Weather und NFC stehen noch aus, da sie aber schwieriger umzusetzen sind, wird das noch etwas dauern. Das Outdoor Weather Bricklet werde ich voraussichtlich als eine Bridge abbilden, die gefundenen Sensoren und Stationen als Einzeldevices. Beim NFC muss ich die State-Machine implementieren.

HAT Brick nehme ich mir mal für Beta 4 vor.

Zu deinen weiteren Fragen: Geplant ist, dass die openHAB-Bindings bezüglich Wartung und Weiterentwicklung genauso behandelt werden wie die für alle unterstützten Programmiersprachen.

Ich weiß nicht, ob Theo vor hat, seine Variante der Bindings weiterzuentwickeln. Vorteil der generierten Bindings ist, dass sie offiziell von uns unterstützt werden, also kannst du bei Feature-Wünschen und Bugreports immer ins Forum posten.

@xsherlock:
I've translated the readme, everything else is english anyway. I will post a thread in the General Discussion in a moment. Edit: done.
« Last Edit: September 12, 2019, 11:52:10 by rtrbt »

andreasOH

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #13 on: September 12, 2019, 21:24:15 »
Hallo Erik

auch von mir ein Seufzer der Erleichterung. Ich habe TF PoE Nodes für meine Heimautomation aufgeplant, mit OpenHAB. Jetzt ist der Krimi für die Unterstützung hoffentlich bald vorbei.

Ich glaube, wenn ein stabiles Binding verfügbar ist, werden viele den Weg über TF gehen für Sensorik/Aktorik im Bereich „Smart Home“ #buzzword

Off-Topic: wie sieht es bei Node RED aus, kommt da noch eine Unterstützung von TF für die aktuellen Sachen?

Danke schon mal, Gruß
Andreas

maxico

  • Newbie
  • *
  • Posts: 18
    • View Profile
Re: Betaversion der openHAB-Bindings
« Reply #14 on: September 12, 2019, 21:34:02 »
N'abend
HW: RPi4b 2GB
OS: Openhabian 1.5
OH: openHAB 2.5.0 Build #1686
Binding: Beta 3

Neuer Pi als Testumgebung kam erst vorhin an, die letzte wurde zu Volumio. Testergebnisse:
Hinzufügen von zwei Brick Deamons in PaperUI mit unterschiedlichen IPs funktioniert. Beide Online. Auf den ersten Blick wurden alle Bricks und Bricklets (beider Stapel) erkannt und konnten als Thing hinzugefügt werden:
1x Analog IN (1.0)
2x IO-16 Bricklet (1.0)
1x Industrial Digital In 4 Bricklet (1.0)
9x Industrial Quad Relay Bricklet (1.0)
9x Industrial Digital Out 4 Bricklet (1.0)
1x Industrial Digital Out 4 Bricklet (2.0)

Kurzer Blick in die Things:
Alle komplett.
Monoflops bei den Aktorbricklets als Channel anzubieten ist super! Das spart enorm rules!
Nach Neustart alle Things wieder online.
Mit den Things etwas "machen", konnte ich aus Zeitmangel noch nicht.

Erstmal Danke!
« Last Edit: September 12, 2019, 21:38:15 by maxico »