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 104441 times)

Jerome

  • Newbie
  • *
  • Posts: 9
    • View Profile
    • HeliosBox
Re: openhab Integration
« Reply #480 on: May 27, 2019, 18:50:25 »
Cool ich bin an einem gleichen Projekt!

Hallo OH Gemeinde,

ich bin schon lange aktiv in der OH community und dort auch unter RAK erreichbar. Ich betreibe 2 OH Anlagen und möchte gerne mit Tinkerforge nun mein Wohnmobil smart machen.

Ich lese mich noch ein wenig ein. Die Hardware ist da und läuft auch schon mit dem BrickViewer. Nächster Schritt ist einen neuen Pi3B+ aufzusetzen mit OH und brickd (beides in jeweils einem Docker Container) und dann das Binding mal in Angriff nehmen.

Ich freue mich hier mit euch an dem Thema weiter zu kommen.

Gruss
Ralf

rasby

  • Newbie
  • *
  • Posts: 4
    • View Profile
Re: openhab Integration
« Reply #481 on: June 01, 2019, 17:03:39 »
Hallo zusammen, Hallo theo,

wie sieht es mit der Integration der folgenden Bricklets aus?

- Segment Display 4x7 Bricklet 2.0
- DMXBricklet

Gruß


rak

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: openhab Integration
« Reply #482 on: June 02, 2019, 15:04:22 »
Hallo,

wie komme ich den an das aktuelle Binding? Ich habe nur die OH1 er Versionen gefunden. 1.14 (2.5.0 M1) und 1.13 (2.4.0 stable).

Konkret hätte ich gerne das Outdoor Modul angebunden.

Gruss
Ralf

StefanOHAN

  • Newbie
  • *
  • Posts: 43
    • View Profile
Re: openhab Integration
« Reply #483 on: June 02, 2019, 15:46:35 »
Hallo rak,

Theo veröffentlicht hier seine aktuellen Snapshot-Entwicklungs-Stände per download-Link.

dies dürfte der letzte Stand sein org.openhab.binding.tinkerforge-2.5.0-12-SNAPSHOT.jar  (link im zitierten Post von Theo, unten).
Weiter findest du auch einen Link zu Theos Readme. Dort findest du beispiel für die Rules und ob ein Bricklet schon eingebunden ist.
So wie ich das sehe ist Theo mit dem Outdoor noch nicht fertig

Quote
theo
Sr. Member
****
Beiträge: 307
Profil anzeigen  Twitter  E-Mail  Private Mitteilung (Offline)

Re: openhab Integration
« Antwort #443 am: März 28, 2019, 20:31:26 »
Zitat
Ein neuer Snapshot ist da: https://bintray.com/theoweiss/generic/download_file?file_path=org.openhab.binding.tinkerforge-2.5.0-12-SNAPSHOT.jar

Support für:
* LCD20x4
* OLED128x64
* OLED128x64V2
* OLED64x48

Die Bedienung des display-Channels ist genauso wie beim LCD128x64 https://github.com/theoweiss/openhab-tinkerforge2-configuration-examples#display.

Das LCD hat zusätzlich noch 3 Button-Channels. Actions für clearDisplay o.ä. werden nachgeliefert.

Beispielregeln gibt es noch keine, ihr könnt euch aber an den alten Beispielen orientieren: https://github.com/theoweiss/openhab2-tinkerforge-configuration-examples/blob/master/weatherstation/rules/tf.rules
Was dort mit "TFNUM<20>" formuliert ist, ist jetzt "{2,0}".

Viel Spaß damit.
Moderator informieren     Gespeichert
https://github.com/theoweiss/openhab-tinkerforge2-configuration-examples/blob/master/README.md

viele Grüsse
Stefan

rak

  • Newbie
  • *
  • Posts: 3
    • View Profile
Re: openhab Integration
« Reply #484 on: June 03, 2019, 08:16:34 »
Danke. Das ist schon Mal ein Abfang. Gibt es ein GitHub repository wo man die letzte Version findet?

Theo scheint ein Clone vom addon2 zu haben, darin finde ich das Tinkerforge binding aber nicht.

https://github.com/theoweiss/openhab2-addons/tree/master/bundles

Theo, du liest hier mit, oder? Melde dich Mal. Danke

theo

  • Sr. Member
  • ****
  • Posts: 314
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #485 on: June 03, 2019, 17:40:57 »
Hallo Ralf,
Hallo Stefan et.al.,

ja ich lese mit. Dummerweise bin ich gerade durch einen defekten Rücken lahmgelegt. Leider zieht sich die Sache etwas hin, deshalb wird es auch noch eine Weile dauern bis ich am Binding weiter machen kann.
Ein bisschen was geht zwar, aber leider bekomme ich das Binding mit dem neuen bnd OH2 Build nicht zum Laufen. Der aktuellste Code ist jetzt im tinkerforge4 branch: https://github.com/theoweiss/openhab2-addons/tree/tinkerforge4/bundles . Das baut auch mit Maven aber in der Demo App funktioniert es noch nicht. Warum auch immer.
Wie die Binding-Entwicklung funktioniert ist hier beschrieben: https://github.com/theoweiss/tinkerforge-client-codegen

So long,
Theo

theo

  • Sr. Member
  • ****
  • Posts: 314
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #486 on: June 03, 2019, 18:46:00 »
Jetzt hab ich den Fehler gefunden und konnte ein neues Binding bauen: https://bintray.com/theoweiss/generic/download_file?file_path=org.openhab.binding.tinkerforge-2.5.0-13-SNAPSHOT.jar

Möglicherweise läuft das Binding jetzt nur noch mit openHAB 2.5 SNAPSHOT, das habe ich nicht probiert.

Ansonsten sind nur kleine Änderungen enthalten:
- die Buttons am LCD20x4 sollten jetzt funktionieren
- das NFC Bricklet sollte jetzt auch funktionieren

Gruß,
Theo

StefanOHAN

  • Newbie
  • *
  • Posts: 43
    • View Profile
Re: openhab Integration
« Reply #487 on: June 10, 2019, 16:54:15 »
Hallo Theo

ich hab über das verlängerte Wochenende Dein neues Binding mit

-LCD20x4
-LCD128x64
-Motion-Dedector V2
-NFC Bricklet
getestet.

Aktuell arbeite ich mit
-openHABian V1.4.1
-OpenHAB 2.5.0-Snapshot-Build 1607
-tinkerforge-2.5.0-13-SNAPSHOT
-Firmware alles TF Komponenten auf aktuellen Stand (08.06.2019)

Es wird wieder etwas viel zu lesen ;-)

Test: Background-Beleuchtung des LCD 20x4 (Funktion erfolgreich getestet)
Quote
Eintrag in der ITEM.items Datei

Switch LCD20x4_BL "LCD20x4 Backlight [%s]" (TestTF) { channel="tinkerforge:lcd20x4:f4a5fb45:abc:backlight", channel="serialbutton:button:mybutton:button" [profile="rawbutton-toggle-switch"] }


Frage:
Theo, Ich hab wie von Dir empfohlen das Beispiel (siehe unten) angepasst.
Quote
Color Bedroom_Light { channel="hue:0210:1:bulb1:color", channel="serialbutton:button:mybutton:button" [profile="rawbutton-toggle-switch"] }
Für das Background des LCD 20x4, hat auch alles geklappt (für das LCD128x64 Background nicht siehe weiter unten).
Was mir nur nicht klar war, wo bekomme ich den Input für
Quote
channel="serialbutton:button:mybutton:button"

her. (habe daher 1:1 aus dem genannten Beispiel übernommen)
Die Informationen auf der openhab-Seiten waren da etwas spärlich
Ist dieser Text nach einer bestimmten Syntax aufgebaut ?


Abfragen eines Button-Channel in einer Rule >> Dies hat funktioniert
Schreiben eines Text auf das LCD 20x4 >> Dies hat nicht funktioniert.

Quote
Eintrag in der ITEM.items Datei
String LCD20x4_text "LCD20x4 Text [%s]" (TestTF) {channel="tinkerforge:lcd20x4:f4a5fb45:abc:display" }

Beim ersten Test habe ich die Rule für das LCD128x64 angepasst
Quote
rule "test-button-lcd20x4"
when
Channel "tinkerforge:lcd20x4:f4a5fb45:abc:button0" triggered RELEASED
then
val actions20 = getActions("tinkerforge", "tinkerforge:lcd20x4:f4a5fb45:abc")
actions20.writeLine(1, 1, "Hello Openhab")
end
auch mit
Quote
„val actions20 = getActions("tinkerforge", "tinkerforge:lcd20x4:f4a5fb45:abc:display")
hatte ich keinen Erfolg

Quote
Fehler Meldung im LOG-File
2019-06-09 19:42:42.561 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'test-button-lcd20x4': Instance is not an LCD128x64BrickletActions class.


Beim zweiten Test habe ich die alten Rule-Beispiele aus Openhab1 abgeleitet

Quote
rule "test-button-lcd20x4"
when
Channel "tinkerforge:lcd20x4:f4a5fb45:abc:button0" triggered RELEASED
then
LCD20x4_text.sendCommand("TFNUM<00>Test old")
end

Fehlermeldung um LOG-File
Quote
2019-06-09 20:17:50.661 [ERROR] [lient.devices.lcd20x4.DisplayChannel] - invalid command format
org.m1theo.tinkerforge.client.tools.Tools$LinePositionParseException: prefix is missing

Theo, was mache ich falsch ?
Wo liegt mein Fehler ?


Test des MotionDedector V2
Quote
Eintrag in der ITEM.items Datei
Switch MotionDV2SW1 "BewegungsmelderV2 [%s]" (TestTF) {channel = "tinkerforge:motiondetectorV2:f4a5fb45:bcd:motiondetected"}
Dimmer MotionDV2dl "BewegungsmelderV2 LED1 [%s]" (TestTF) {channel = "tinkerforge:motiondetectorV2:f4a5fb45:bcd:topLeftled"}
Dimmer MotionDV2dr "BewegungsmelderV2 LED1 [%s]" (TestTF) {channel = "tinkerforge:motiondetectorV2:f4a5fb45:bcd:topRightled"}
Dimmer MotionDV2db "BewegungsmelderV2 LED1 [%s]" (TestTF) {channel = "tinkerforge:motiondetectorV2:f4a5fb45:bcd:bottomled"}

Ich hatte es bisher noch nie geschafft, die 3 LED's zu nutzen, weder konnte ich sie per basicui/app (Website) noch über eine Rule bedienen. Der eigentliche Bewegungs-Melder funktioniert, nur die 3 LED lassen sich nicht ansteuern.

Quote
Rule zum Test:
rule "test-Motion-DedectroV2-LED"
when
Channel "tinkerforge:lcd20x4:f4a5fb45:abc:button0" triggered RELEASED
then
sendCommand(MotionDV2dl,80)
end

Quote
Eintrag im LOG-File
2019-06-09 20:39:13.027 [ome.event.ItemCommandEvent] - Item 'MotionDV2dl' received command 80
2019-06-09 20:39:13.083 [nt.ItemStatePredictedEvent] - MotionDV2dl predicted to become 80
2019-06-09 20:39:13.180 [vent.ItemStateChangedEvent] - MotionDV2dl changed from 100 to 80

Die LED Leuchten nicht, wo liegt mein Fehler ?
---
Test des NFC Bricklet
Die TAG-ID von konnte ausgelesen werden
Die TAG-ID wird im Log als auch auf der Web-Site dargestellt

Quote
Eintrag in die ITEM.items Datei
String NFCTAG_text "NFC-TAG [%s]" (TestTF) { channel="tinkerforge:nfc:f4a5fb45:cde:tagID" }
String NFCTAG_merker "NFC-merker [%s]"

Frage: Wie kann ich dem Inhalt des String-ITEMS (ausgelesene TAG-ID) einer Variablen oder einem anderen String ITEM übergeben ?
Ich bekomme da immer Fehlermeldungen im LOG

Sorry mein Fehler hab Syntax bei der Zuweisung nicht beachtet


LCD128x64

Theo ich finde unter
Paperui / Configuration / Things / BrickletLCD128x64
keine Channel für die Backgroungbeleuchtung !

Ich habe anschließend analog zum LCD20x4 die ITEM-Verlinkung eingetragen, hatte aber keinen Erfolg.

Quote
Eintrag in die ITEM.items Datei
Switch LCD128x64_BL "LCD128x65 Backlight [%s]" (TestTF) { channel="tinkerforge:lcd128x64:f4a5fb45:bcd:backlight", channel="serialbutton:button:mybutton:button" [profile="rawbutton-toggle-switch"] }

Das Anlegen der Buttons und Slider klappt, ich kann auch Text auf dem Display ausgeben.
Das Auslesen der Number-Werte bei Änderung der Slider‘s funktioniert und die Werte können in Rule‘s ausgewertet werden.

Frage: Wie kann ich mit dem „actions.writeLine(3, 10, ...)“ den Inhalt eines ITEMS oder einer Variable mit auf dem Display ausgeben ?
Quote
actions.writeLine(3, 10, „Dummytext“) funktioniert
Quote
actions.writeLine(3, 10, ITEM.state) oder „actions.writeLine(3, 10,ITEM ) funktioniert nicht
Quote
Beispiel-Rule:
rule "LCD164-Slider"
when
Item LCD128x64_SL0 changed
then
val actions = getActions("tinkerforge", "tinkerforge:lcd128x64:f4a5fb45:HQJ")
actions.clearDisplay
actions.writeLine(3, 10, "change")
actions.writeLine(3, 10, LCD128x64_SL0.state )
if (LCD128x64_SL0.state > 15 ) { LCD20x4_BL.sendCommand (ON) } else { LCD20x4_BL.sendCommand (OFF) }
end

Fehlermeldung im LOG-FILE (es macht keinen Unterschied ob ich nun ITEM oder ITEM.state nutze)
Quote
2019-06-10 13:39:30.050 [ERROR] [ntime.internal.engine.RuleEngineImpl] - Rule 'LCD164-Slider': An error occurred during the script execution: Could not invoke method: org.openhab.binding.tinkerforge.action.LCD128x64BrickletActions.writeLine(org.eclipse.smarthome.core.thing.binding.ThingActions,int,int,java.lang.String) on instance: null


Wie müsste ich die Rule aufbauen, dass ich als eine Variable oder ein ITEM ausgeben kann ?
Ich hab diese Rule auch mit dem String-ITEM des NCF-TAG probiert, gleicher Fehler.

Zum Schluss noch eine Frage:
Ich nutze zwei Masterbrick-Stapel die ich über eine RS485 Master-Extension verbunden sind. Es funktioniert soweit ganz gut, allerdings werden bei einem Restart von openhab nicht alle Bricklets am „Remote“ angebunden Stapel als ONLINE angezeigt. Ich muss immer erst am Remote-Stapel die Spannung aus und wieder einschalten, dann gehen alle Brickles online. Gibt es eine Möglichkeit per Komonado ein Rescan der  TF-Komponenten zu initiieren ??

Ist mal wieder viel zu lesen :-(
Leider hab ich in den verschiedenen Foren nicht viel gefunden was mir helfen hätte können

Grüsse

Stefan
« Last Edit: June 11, 2019, 21:09:33 by StefanOHAN »

theo

  • Sr. Member
  • ****
  • Posts: 314
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #488 on: June 10, 2019, 22:10:07 »
Hallo Stefan,

vielen Dank für das ausführliche Testen. Ob des Umfangs antworte ich mal häppchenweise:

Frage: Channels für eine Item-Definition mit rawbutton-toggle-switch, woher?
Antwort: Ein Beispiel: das Backlight des LCD20x4 mit dem Button 0 an- und ausschalten.
- Erstelle ein Switch Item mit dem Namen LCDBacklightStefan und gebe als ersten Channel die ChannelId des Backlight Channels an und als zweiten Channel ide ChannelId des buttons0 und gebe als Profile rawbutton-toggle-switch an.
- die ChannelIds findest du im PaperUI: Configuration-> Things -> BrickletLCD20x4 xyz -> "Betrieb" und "Button 0"
- die fertige Konfiguration sieht so aus:
Code: [Select]
Switch LCDBacklightStefan {channel="tinkerforge:lcd20x4:e2ccaaf7:d4j:backlight", channel="tinkerforge:lcd20x4:e2ccaaf7:d4j:button0" [profile="rawbutton-toggle-switch"]}

Hier ist ein kleiner Screencast, der den Vorgang zeigt:
https://m1theo.de/ncloud/index.php/s/xBnwM98Amgsk97D

theo

  • Sr. Member
  • ****
  • Posts: 314
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #489 on: June 10, 2019, 22:50:40 »
Quote
Schreiben eines Text auf das LCD 20x4 >> Dies hat nicht funktioniert.

Stefan, du warst nahe dran, sorry für die Umstände, so sollte es funktionieren:

Items:
Code: [Select]
String LCD20x4Test {channel="tinkerforge:lcd20x4:e2ccaaf7:d4j:display"}

Rule:
Code: [Select]
rule "Test PRESSED LCD Text"
when
  Channel "tinkerforge:lcd20x4:e2ccaaf7:d4j:button1" triggered PRESSED
then
  LCD20x4Test.sendCommand("{0,0}Button1 pressed")
end

rule "Test RLEASED LCD Text"
when
  Channel "tinkerforge:lcd20x4:e2ccaaf7:d4j:button1" triggered RELEASED
then
  LCD20x4Test.sendCommand("{1,0}Button1 released")
end

theo

  • Sr. Member
  • ****
  • Posts: 314
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #490 on: June 10, 2019, 22:52:24 »
Quote
Ich hatte es bisher noch nie geschafft, die 3 LED's zu nutzen, weder konnte ich sie per basicui/app (Website) noch über eine Rule bedienen. Der eigentliche Bewegungs-Melder funktioniert, nur die 3 LED lassen sich nicht ansteuern.

Ist leider noch nicht implementiert. Sorry.

theo

  • Sr. Member
  • ****
  • Posts: 314
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #491 on: June 10, 2019, 23:10:50 »
Quote
Paperui / Configuration / Things / BrickletLCD128x64
keine Channel für die Backgroungbeleuchtung !
Das ist derzeit eine Konfigurationseinstellung. Wahrscheinlich sollte ich das analog zum 20x4 als Channel implementieren.

theo

  • Sr. Member
  • ****
  • Posts: 314
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #492 on: June 10, 2019, 23:33:11 »
NFC Bricklet Test: schreiben auf ein LCD128x64 Bricklet

Items:
Code: [Select]
String NFCBricklet "Stefans TagId" {channel="tinkerforge:nfc:e2ccaaf7:E26:tagID"}
String LCD128x64Test {channel="tinkerforge:lcd128x64:e2ccaaf7:H8Z:display"}

Rule:
Code: [Select]
rule "Test NFC LCD128"
when
  Item NFCBricklet changed
then
  LCD128x64Test.sendCommand("{1,0}" + NFCBricklet.state)
end

StefanOHAN

  • Newbie
  • *
  • Posts: 43
    • View Profile
Re: openhab Integration
« Reply #493 on: June 11, 2019, 19:44:52 »
Hallo Theo

vielen danke für die schnellen Antworten.
Ich muss mal schaun wie ich diese Woche (abends) das ganze nochmal angepasst testen kann.

Eine Sache hat mich jetzt doch etwas erstaunt, im dem letzten Beispiel
>> Schreiben der Tag-ID (String-Item) >> nutzt Du für das LCD128x64 den gleichen Befehl wie für das LCD20x4 >> sendcommad und nicht "action.writeline"
Wann nutzte ich dann den writeline ? nur für statische Texte ?

viele Grüsse

Stefan

Update
Das ganze hat mir keine Ruhe gelassen und ich habe es schnell getestet.
Das Schreiben auf LCD20x4 und LCD128x64 funktioniert mit einem statischen Text und mit dem Inhalt eines String-Item (meine TAG-ID).

Vergesse bitte meine Frage zum zuweisen des Inhalt des TAG-ID-String-Item auf eine Variable oder einem anderen String-Item. Ich hab total verdrängt dass man eine gewisse Syntax einhalten muss.

Quote
stringvariable = String_Item.state.toString
so funktioniert es auch ;-)


« Last Edit: June 11, 2019, 21:12:34 by StefanOHAN »

omiT

  • Newbie
  • *
  • Posts: 6
    • View Profile
Re: openhab Integration
« Reply #494 on: June 13, 2019, 00:09:26 »
Hallo theo (oder auch an die anderen),

wie kann ich mir denn auf dem LCD20x4 Display die Werte des Temperatursensors oder z.B. die Luftfeuchtigkeit anzeigen lassen? Ich stehe gerade irgendwie auf dem Schlauch und bekomme es nicht hin.

lg omiT

Update: so gehts:
rule "displaytemperature"
when
    Item Tinkerforge_Temperature changed
then
    LCD20x4.sendCommand("{1,0}Temperatur " + Tinkerforge_Temperature.state + "C" )
end
« Last Edit: June 13, 2019, 00:33:43 by omiT »