Poll

Nächste Bricks/Bricklets mit openHAB Unterstützung

Stepper
8 (20%)
IMU
0 (0%)
IMU 2.0
1 (2.5%)
Accelerometer (fertig)
0 (0%)
Analog In (fertig)
1 (2.5%)
Analog In 2.0 (fertig)
2 (5%)
Analog Out
0 (0%)
Analog Out 2.0
2 (5%)
GPS
4 (10%)
Industrial Analog Out
0 (0%)
Industrial Dual Analog In (fertig)
2 (5%)
Laser Range Finder (fertig)
0 (0%)
NFC/RFID
16 (40%)
Color (fertig)
4 (10%)

Total Members Voted: 21

Author Topic: openhab Integration  (Read 104546 times)

StefanOHAN

  • Newbie
  • *
  • Posts: 43
    • View Profile
Re: openhab Integration
« Reply #450 on: April 04, 2019, 08:26:08 »
Hallo Theo,

ich komme momentan nicht weiter (LCD20x4)

Gestern habe ich den Simply-Mode deaktiviert und versucht über die WEB-GUI die Buttons0-3 mit ITEM's aus meiner "ITEMS" Datei zu verlinken.

Es wird mit dann nur angeboten

Quote
"Raw Button Toggle (System:rawbutton-toggle-Switch)

Den kann ich aber nur mit einem Switch-ITEM verlinken (habe ich auch ausgeführt). Ich sehe jedoch im Log keine Nachrichten wenn ich die Buttons betätige (auch keine Fehler Meldungen).
Das Verlinken mit dem Backlight Channel zu einem Switch-ITEM hat funktioniert und ich konnte dann auch das Backlight mit meinem Switch-ITEM ein und ausschalten.
Bei den Buttons habe ich anschließend versucht direkt die Channel mit dem ITEM zu verklinken, auch ohne Erfolg (ich habe es mit Switch und Contact versucht)

Quote
Contact TestButton0 "Testbutton 0" {channel="hier steht der Link aus Thing"}

Es kamen aber auch keine Fehlermeldungen.

Anschließend habe ich mich nochmal dem 16fach IO gewidmet. Bei meinen bisherigen Test's mit dem 16fach IO habe ich immer den "Simple-Mode" verwendet und somit keine Verlinkung mit meinen ITEMS aus der ITEMS-Datei getestet. Hier funktionierte sowohl Switch als auch Contact.
Ein Test mit abgeschalteten "Simple-Mode" einen als INPUT konfigurierten Channel zu verlinken war auch Erfolglos.
Wenn ich das Verlinken über die WEB-GUI versuche werden mir immer nur SWITCH ITEMS angeboten, auch wenn ich über "Things/Configure Channel" den Channel als INPUT deklariert habe.
Das ist für mich ein echtes Problem, da ich in meine Rules das 16-FachIO als Contact nutze.
Bei großen Konfigurationen ist die WEB-GUI-CONFIG einfach zu unübersichtlich. Wenn ich über die ITEM-Datei die Channel zuweisen kann, ist es aus meiner Sicht einfacher zu lesen ob und was ich mit einem ITEM verlinkt habe, auch wenn ich mehr Schreibarbeit habe.

Frage: (ich möchte vermeiden den Simple-Mode nutzen zu müssen)
>> Wie müsste für die Button & String Channel des LCD20x4 die richtige Channel Zuweisung in der ITEM-Datei aussehen ?
>> Wie müsste für das 16fach IO für switch und contact die richtige Channel-Zuweisung in der ITEM-Datei aussehen ?
(wenn für das 16-Fach-IO und die Button0-3 des LCD20x4 kein Contact-ITEM in der Verlinkung über die GUI sichtbar ist)

>> Wie müsste eine Tinkerforge.Things Konfiguration aussehen um diese nicht mehr über die WEB-GUI ausführen zu müssen ? (Diese Frage stellt sich nur wenn es nicht möglich ist CONTACT-ITEM  entweder per Channel in der ITEM-DATEI zu verknüpfen oder ein CONTACT-ITEM über die GUI einem Input-Channel des 16-Fach IO oder Button0-3-LCD20x4 zu verlinken.

« Last Edit: April 05, 2019, 13:58:59 by StefanOHAN »

sihui

  • Newbie
  • *
  • Posts: 25
    • View Profile
Re: openhab Integration
« Reply #451 on: April 05, 2019, 09:29:03 »
Wenn ich das Verlinken über die WEB-GUI versuche werden mir immer nur SWITCH ITEMS angeboten, auch wenn ich über "Things/Configure Channel" den Channel als INPUT deklariert habe.

Zum deinem LCD kann ich nichts sagen da ich keines besitze.
Mein IO16 ist zur Zeit nicht mehr angeschlossen, deshalb die grundsätzliche Vorgehensweise an einem IndustrialQuadRelay:



Du nimmst die Channel Definition aus deinem Simple Mode Switch (also den Teil der über dem "Switch" steht und fügst diesen wie jeden anderen Channel in einer Items Datei ein:
Code: [Select]
Switch TestSwitch { channel="tinkerforge:industrialquadrelay:brick_241:r5M:relay0" }
Bei dem Wechsel von Simple Mode auf manuellen Mode musst du natürlich die ganzen automatisch verlinkten Teile mühsam wieder löschen.
Ggf. ist der schnellere Weg gleich die ganze JsonDB zu löschen, vor allen Dingen dann wenn du den Simple Mode in deiner Produktivumgebung später gar nicht mehr nutzen möchtest.

Wenn ich das Verlinken über die WEB-GUI versuche werden mir immer nur SWITCH ITEMS angeboten, auch wenn ich über "Things/Configure Channel" den Channel als INPUT deklariert habe.

Du kannst in openHAB2 nicht mehr frei wählen welchen Itemtype du verwenden möchtest, das openHAB Core gibt dir das vor. Wenn also bei einem Simple Mode angelegten Itemtype Switch angeboten wird kannst du nicht auf Contact wechseln.
Jedenfalls ist das bei Zwave so. Würde mich sehr wundern wenn das bei Tinkerforge anders wäre.
Theo wird bestimmt etwas dazu sagen können wenn er seine Renovierung abgeschlossen hat  :)
Alternativ könntest du über Mapping (State Mapping, nicht Label Mapping) den Status ON/OFF auf OPEN/CLOSED wechseln, aber der Aufwand wäre mir zu hoch. Ich habe nicht einmal in der Doku eine Anleitung dazu gefunden, man findet aber etwas dazu im englischen Forum.
Mit dem Visual Studio Code Editor ist das Anpassen der Rules doch in wenigen Sekunden erledigt.

Wie müsste eine Tinkerforge.Things Konfiguration aussehen um diese nicht mehr über die WEB-GUI ausführen zu müssen ?

Echt? Du willst diesen genialen Vorteil des Autodiscovery von openHAB2 wieder auf die limitierte Funktion aus openHAB 1 zurückführen?
Würde ich mir gut überlegen.
Die meisten User wenden das wie folgt an: Thing über Autodiscovery automatisch erkennen lassen, schauen welche Channels verfügbar sind und dann in einer Items Datei die Channels mit den Item verknüpfen.
Wenn du tatsächlich so viele Things hast (ich rede hier über dreistellige Zahlen) dass das zu lange dauert: die Things können auch in der JsonDB kopiert werden, man muss nur höllisch aufpassen die Klammern richtig zu setzen.
https://www.openhab.org/docs/administration/jsondb.html#jsondb-storage


StefanOHAN

  • Newbie
  • *
  • Posts: 43
    • View Profile
Re: openhab Integration
« Reply #452 on: April 05, 2019, 14:37:49 »
Hallo sihui

Danke für Deine Antwort.

Ich hab meine Fragestellung nachgebessert, ich saß morgens um 6:15Uhr im Zug als ich den Text schrieb.

Nein ich will nicht die Vorteile des Autodiscovery verlieren. Mir geht es nur darum, dass ich einfach die Contact-Channel (ungleich Simple-Mode) des 16-Fach-IO und des LCD20x4-Button's (hier ging es auch im Simple-Mode nicht) nicht zum laufen bekommen habe.

Auch wenn es mehr Tipp-Arbeit ist, würde ich es bevorzugen über die ITEM-Datei die Channels den passenden ITEM zu zu weisen.

Quote
Du kannst in openHAB2 nicht mehr frei wählen welchen Itemtype du verwenden möchtest, das openHAB Core gibt dir das vor. Wenn also bei einem Simple Mode angelegten Itemtype Switch angeboten wird kannst du nicht auf Contact wechseln.
Zu Deiner Aussage von oben, ich will auch nicht einen ITEM CONTACT in einen ITEM SWITCH ändern, das eine ist eindeutig ein Eingang und das andere ist ein AUSGANG. Und da liegt auch das Problem, in der GUI wird mir beim 16-FACH IO immer ein AUSGANG-ITEM (Switch) angeboten auch wenn es als EINGANG konfiguriert ist. Ähnlich war es beim den Buttons des LCD20x4. Dort wir auch nur in Switch-ITEM angeboten obwohl von der Logik es doch ein INPUT (CONTACT) sein müsste.

In meiner Channel-Zuweisung in der ITEM-Datei habe ich Channel-Bezeichung aus dem GUI Kopiert und 1:1 in die Zuweisung der ITEM Datei eingefügt.

Quote
Auszug aus der ITEM-Datei
Version1
Contact LCD20x2_C0   "dummy Contact 0" (TFhw)  {channel="tinkerforge:lcd20x4:f4a5fb45:vyU:button0"}

Version2
Switch LCD20x2_C0   "dummy Switch 0" (TFhw) {channel="tinkerforge:lcd20x4:f4a5fb45:vyU:button0"}

Jetzt mit dem Backlight
Switch LCD20x2_S0   "dummy Switch 0" (TFhw) {channel="tinkerforge:lcd20x4:f4a5fb45:vyU:backlight"}

bei 16-FachIO (über Configuration/Things/BrickletIO16UID nur als Input-konfiguriert)

Contact Ipuput_gpio1 "Taster-GPIO1" (TFhw) {channel=tinkerforge:io16:f4a5fb45:D8e:gpio1}

nichts hat geholfen. Ich vermute mal dass ich bei den Channel-Text was vergessen habe. Ich schau mir mal die JsonDB an ob da nicht durch die viele  Test sich etwas verhakt hat (danke für den Tip)

Was mir  aber noch unklar ist warum das schreiben auf das LCD20x4 nicht ging (über Rule) hier habe ich Theo's Rule für das LCD128x64 angepasst.

« Last Edit: April 05, 2019, 14:41:15 by StefanOHAN »

andiikaa

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: openhab Integration
« Reply #453 on: April 05, 2019, 20:06:37 »
Hallo,

kann man ich der Entwicklung des OH2 Binding irgendwie beitragen?
Ich bin leider erst spät auf diesen Thread gestoßen und hatte in der Zwischenzeit schon ein paar neue Bricklets dem OH1 Binding hinzugefügt, da ich davon ausging, dass das OH2 Binding keine Fortschritte macht (ich war auch derjenige, welcher damals gefragt hat :) ).

Nun benötige ich für ein Projekt Bricklets, die scheinbar nur vom OH2 Binding unterstützt werden. Leider fehlen bei diesem wieder andere Bricklets, welche ich dem OH1 Binding hinzugefügt habe. Die in OH1 fehlenden Bricklets (LCD128x64 + OLED128x64V2) jetzt noch in das OH1 Binding hinzuzufügen, wäre ja weiter verschwendete Zeit.

Wie könnte ich jetzt aktiv Bricklets zum OH2 Binding hinzufügen?
Ich habe gesehen es existiert ein tinkerforge-client, welcher über CodeGen erzeugt wird? Wie müsste ich vorgehen? Ist das überhaupt gewünscht?

Das OH1 und OH2 Binding gleichzeitig zu verwenden ist sicher keine gute Idee, vermute ich.

Im OH2 fehlt (für mich) aktuell:
- Dual Button V2
- RGB LED Button
- NFC (mit entsprechender Dekodierung der Tags)

Diese habe ich auch schon implementiert (im OH1 Binding).
Für das NFC Bricklet habe ich das so gemacht, dass jeweils für die Tag ID, den Text Record und den Uri Record, ein Item existiert, welches (mit entsprechendem Inhalt) geupdatet wird, falls der gescannte Tag den jeweiligen Record enthält.

Gruß
André

StefanOHAN

  • Newbie
  • *
  • Posts: 43
    • View Profile
Re: openhab Integration
« Reply #454 on: April 06, 2019, 21:15:40 »
Hallo andiikaa

Theo ist gerade dabei die verschieden neuen und alten Tinkerforge Bricklets in ein openhab2 taugliches Binding zu integrieren.

Anbei der Link zu Theo's Liste der aktuell unterstützen Bricklets
Quote
https://github.com/theoweiss/openhab-tinkerforge2-configuration-examples/blob/master/README.md

Die von Dir benötigten Brickles (RGB LED Button/Dual Button V2 / NFC>>noch in Arbeit) scheinen noch nicht dabei zu sein.
Das letzte Binding Update hat Theo am 28.3.2019 gepostet (dort sind die OLED enthalten).

Quote
theo
« Reply #443 on: March 28, 2019, 20:31:26 »
Ein neuer Snapshot ist da: https://bintray.com/theoweiss/generic/download_file?file_path=org.openhab.binding.tinkerforge-2.5.0-12-SNAPSHOT.jar

Ob und wie Du beim Bau des Binding helfen kannst, musst Du mit Theo abstimmen. (Diesen Monat hat er nicht so viel Zeit, da er gerade renoviert)

viele Grüsse Stefan
« Last Edit: April 08, 2019, 07:51:45 by StefanOHAN »

andiikaa

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: openhab Integration
« Reply #455 on: April 07, 2019, 10:52:49 »
Danke für die Antwort.
Das entsprechende Repo habe ich schon gefunden. Ich bräuchte evtl. eine Übersicht oder Anleitung, wie generell vorzugehen ist, um neue Bricklets hinzuzufügen.
Im Github ist das (sicher auch bedingt, durch den frühen Status) nicht genauer dokumentiert (Client, Client Code-Gen, Binding).

Leider habe ich aktuell auch nicht viel Zeit, bis die Bricklets integriert sein müssen (19.4), weshalb ich mich nicht selbst in den kompletten Code von Theo einlesen kann und daher etwas "Guidance" benötige.

Falls das zeitl. bei Theo gerade nicht passt, würde ich die beiden (O)LED Displays erstmal noch in das OH1 Binding einfügen. Das wäre für mich persönlich der schnellste und einfachste Weg (leider dann mit wenig Nutzen für Andere).
Auf die Bricklets habe ich leider auch nur zeitl. begrenzten Zugriff bis ca. Ende Mai.

Viele Grüße
André

theo

  • Sr. Member
  • ****
  • Posts: 314
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #456 on: April 09, 2019, 21:56:06 »
Ich bin gerade auf meiner Hausbaustelle versumpft ich versuche am Wochenende ein bisschen Zeit für Developer Doku freizuschaufeln.

Jerome

  • Newbie
  • *
  • Posts: 9
    • View Profile
    • HeliosBox
Re: openhab Integration
« Reply #457 on: April 09, 2019, 22:37:40 »
Danke Theo das wäre super!

Eine Anleitung wie man ein einzelnes Bricklet ansteuert wäre auch noch super.

Das MotionDetectorBricklet V2 kriege ich nicht zum laufen...

Code: [Select]
Contact MotionSensor "Motion [MAP(en.map):%s]" <motion> { channel="tinkerforge:motiondetectorV2:bab35439:HyR:motiondetected" }
Das BarometerV2 Bricklet liefert noch einen falschen Wert bei der Höhe. Anstatt zum Beispiel 490m liefert es 4900m.

Danke für Eure Hilfe
« Last Edit: April 16, 2019, 23:02:43 by Jerome »

StefanOHAN

  • Newbie
  • *
  • Posts: 43
    • View Profile
Re: openhab Integration
« Reply #458 on: April 17, 2019, 07:51:46 »
Hallo Jerome,

Frage: Geht das MotionDedectorV2 Bricklet generell nicht ?
Bei mir funktioniert die "Motiondedection" des V2, ich habe es allerdings nicht als Channel sonder über das Verlinken per WebGUI (CONFIGURTION/THINKs) mit einem ITEM meiner ITEM Datei ausgeführt.
Was noch nicht funktioniert ist das schalten und dimmen der LED's. (Soweit ich weiß ist da Theo noch dran)

viele Grüsse

sihui

  • Newbie
  • *
  • Posts: 25
    • View Profile
Re: openhab Integration
« Reply #459 on: April 17, 2019, 08:05:00 »
ich habe es allerdings nicht als Channel sonder über das Verlinken per WebGUI (CONFIGURTION/THINKs) mit einem ITEM meiner ITEM Datei ausgeführt.

Ein sehr ungewöhnlicher Weg. Allerdings sind die Begrifflichkeiten bei beiden Varianten, egal ob GUI Konfiguration oder Text Konfiguration, identisch. Das bedeutet, auch das Anlegen einer Konfiguration über GUI ist ein "linken eines Channels mit dem Item", nicht nur die textbasierte Variante.

Um das noch etwas auszuführen: die meisten User von openHAB nutzen folgende Variante bei Bindings der Version 2:
Das Thing wird über GUI, z.B. PaperUI angelegt. Meistens kann es sogar nach Installation autodiscovered werden.
Anschließend sieht man alle verfügbaren Channels grafisch, nun öffnet man seine Items Datei und verlinkt den ersten verfügbaren Channel dieses Things mit einem Item:
Code: [Select]
itemtype itemname "labeltext [stateformat]" <iconname> (group1, group2, ...) ["tag1", "tag2", ...] {bindingconfig}Die andere einigermaßen stringente Variante:
Thing per PaperUI autodiscovern, Items über GUI anlegen, mit dem Channel per GUI verlinken.
Deine Variante würde ich noch mal überdenken: du legst ein Thing per GUI an, legst dann das Item über ein Textfile an und verlinkst dann den Channel über GUI mit dem Item.
Die schlechteste Variante von allen ist übrigens der "Simple Mode", da man hier keinerlei weitere Kontrolle über seine Konfiguration hat und die Itemnamen zu kryptisch sind um sie vernünftig in Rules und Sitemaps verwenden zu können. Allerdings für das Testen vom Tinkerforge Binding in einer Testumgebung von openHAB ist Simple Mode ideal geeignet: mal eben schnell schauen ob es funktioniert, danach die JsonDB löschen und mit dem nächsten Snapshot in einer sauberen openHAB Installation wieder von vorne starten (mit löschen der JsonDB werden auch alle Einstellungen der GUI's gelöscht)
« Last Edit: April 17, 2019, 08:06:55 by sihui »

StefanOHAN

  • Newbie
  • *
  • Posts: 43
    • View Profile
Re: openhab Integration
« Reply #460 on: April 17, 2019, 18:00:29 »
Hallo sihui,

ich gebe Dir recht, meine Variante ist nicht elegant (sie ist aber zum Testen schnell).
Ich hätte erwähnen sollen, dass ich dies immer nur zum Testen des Binding nutze. Wie ich einen meiner "Vorangegangen" Post schon einmal sagte, würde ich das Verlinken über Channel in der ITEM Datei bevorzugen. (Du kennst ja meinen Hilferuf bezüglich LCD20x4 und 16-Fach IO, und verlinken der Channel über die ITEM-TEXT-DATEI)
Über die autodiscover Funktion lasse ich die Komponenten suchen und anschließend das Thing über in der GUI anlegen.

Nachdem bis heute morgen noch keiner auf den Post von Jerome reagiert hatte, wollte ich eigentlich nur sagen, dass das MotionDedection V2 Modul (in Teilen) bei mir funktioniert.

Wenn Theo nach dem renovieren wieder zeit hat, würde ich Ihn daher bitten auch die Channel-Verlinkung in der ITEM-TEXT-DATEI in seiner Doku (abhängig vom TF Bricklet) nochmal kurz zu beschreibt.
 
Wie es auf generischer Ebene funktioniert ist mir bekannt hat auch bei einigen TF Bricklets funktioniert.
Aber daraus eine funktionierende Ableiten wie ich die Channel in der ITEM-TEXT-DATEI für die EINGÄNGE (nicht die Ausgänge) des 16-FACH-IO oder die 4 Buttons des 20x4LCD erstellen muss ist mir nicht gelungen. Eventuell hat Jerome ähnliche Probleme mit dem Motiondedector V2.

Viele Grüsse

Stefan

sihui

  • Newbie
  • *
  • Posts: 25
    • View Profile
Re: openhab Integration
« Reply #461 on: April 17, 2019, 18:08:12 »
Aber daraus eine funktionierende Ableiten wie ich die Channel in der ITEM-TEXT-DATEI für die EINGÄNGE (nicht die Ausgänge) des 16-FACH-IO
Ich würde mal sagen so wie bei allen anderen Channels auch:
einfach aus PaperUI kopieren und in die Items Datei eintragen.

Mir ist heute die Zeit weggelaufen, ich hätte eigentlich mein IO16 final anschließen wollen weil es das Digital IN ersetzen soll, vielleicht schaffe ich es morgen.

Jerome

  • Newbie
  • *
  • Posts: 9
    • View Profile
    • HeliosBox
Re: openhab Integration
« Reply #462 on: April 17, 2019, 19:12:02 »
Hallo Jerome,

Frage: Geht das MotionDedectorV2 Bricklet generell nicht ?
Bei mir funktioniert die "Motiondedection" des V2, ich habe es allerdings nicht als Channel sonder über das Verlinken per WebGUI (CONFIGURTION/THINKs) mit einem ITEM meiner ITEM Datei ausgeführt.
Was noch nicht funktioniert ist das schalten und dimmen der LED's. (Soweit ich weiß ist da Theo noch dran)

viele Grüsse

Also es läuft schon im BrickViewer, aber im Openhab macht es nicht so viel. Es wird auch nicht erwähnt in den Logs. Im Things wird es als Online angezeigt und daher denke ich es funktioniert schon aber nicht mit der Zeile die ich gesetzt habe.

Er wird als Switch angezeigt, müsste doch eher ein Contact sein, oder?

sihui

  • Newbie
  • *
  • Posts: 25
    • View Profile
Re: openhab Integration
« Reply #463 on: April 17, 2019, 20:29:13 »
Er wird als Switch angezeigt, müsste doch eher ein Contact sein, oder?

Nein, hatte ich weiter unten schon mal versucht zu erklären, bitte durchlesen.

Ich habe jetzt mal auf die Schnelle mein IO16 per fliegender Verdrahtung angeschlossen, hier eine Kurzanleitung:

Voraussetzung: brickd ist korrekt als Thing eingerichtet, Simple Mode ist aus.

IO16 autodiscovern lassen, Thing anschauen, sieht dann so aus:



Den markierten Teil wie folgt in eine Items Datei kopieren:

Code: [Select]
Switch IO16_A1 { channel="tinkerforge:io16:master_240:baY:gpio0" }
Switch IO16_A2 { channel="tinkerforge:io16:master_240:baY:gpio1" }
Switch IO16_A3 { channel="tinkerforge:io16:master_240:baY:gpio2" }

Eine simple Sitemap erstellen, die Switche einfügen:

Code: [Select]
sitemap tinkerforge label="Tinkerforge Testing"
{
Frame {
        Switch item=IO16_A1
Switch item=IO16_A2
Switch item=IO16_A3
}
}

Dann die BasicUI aufrufen (oder wenn es sein muss den Control Tab von PaperUI), dann sieht man so etwas:



A1 ist mit einer Büroklammer gerade kurzgeschlossen, deshalb low, deshalb OFF. Die anderen beiden sind offen, also high, also ON.

Have fun.

sihui

  • Newbie
  • *
  • Posts: 25
    • View Profile
Re: openhab Integration
« Reply #464 on: April 17, 2019, 21:57:46 »
Ich rede nie vom Switch-Item sondern vom Contact-Item.

Mein Switch Item ist als Eingang konfiguriert, ich habe doch geschrieben es ist eine Büroklammer drin (=Taster).
Büroklammer raus = Taster nicht gedrückt, Switch ist ON
Büroklammer rein = Taster ist gedrückt, Switch ist OFF