Jump to content

openhab Integration


theo
[[Template core/global/global/poll is throwing an error. This theme may be out of date. Run the support tool in the AdminCP to restore the default theme.]]

Recommended Posts

  • Replies 526
  • Created
  • Last Reply

Top Posters In This Topic

Hi Theo,

 

ein sehr toller und ausführlicher Wikiartikel.

 

Devices which do not support will callbacks will be polled with a configurable interval, the default is 60000 milliseconds. This value can be changed in openhab.cfg

Hier hast du ein "will" zuviel.

 

Außerdem hattest du mir dies geantwortet:

Zusätzlich zu den Callbacks werden die Werte auch regelmäßig abgefragt. Du kannst den Refresh mit "tinkerforge:refresh=(Wert in Millisekunden)" in openhab.cfg setzen, der default ist 60000.

Dies könnte man, meiner Meinung nach, zu dem von mir zitierten Abschnitt hinzufügen.

 

Der letzte Status wiederherzustellen ist so schwierig, da das Binding nicht den aktuellen Status speichern darf, oder? Könntest du nicht die Option anbieten, dass man neben dem defaultState auch einen defaultStateReconnect hat und diese auch jeweils als "uninitialized" konfigurieren kann. Dann könnte man mit "restoreOnStartup" (habe ich noch nie ausprobiert) oder einer "Rule" doch den letzten Stand laden.

 

 

 

 

Link to comment
Share on other sites

Hi Stefan,

 

danke für das gründliche Lesen und die Rückmeldung: ich habe die Wiki-Seite aktualisiert. Ausserdem habe ich noch einen upgrade-Hinweis hinzugefügt.

 

Zum IO16: ja, den letzten Status wieder herstellen ist schwierig, da ich bei einem Disconnect alle vorhanden Informationen verwerfe. Es könnte ja sein, dass ein Bricklet nach dem Reconnect z.B. gar nicht mehr da ist. Nach einem Reconnect kann ich lediglich versuchen, die Daten aus dem Bricklet auszulesen. Das hat aber bei meinen ersten Versuchen nicht zuverlässig funktioniert. Mittlerweile habe ich das mit zu Hilfenahme des Shell-Bindings nochmals etwas gedebuggt, muss aber noch in die Tiefe gehen.

 

Gruß,

Theo

 

 

 

Link to comment
Share on other sites

Remote Switch Bricklet Unterstützung

 

Ich habe einen Snapshot hochgeladen mit dem das Remote Switch Bricklet unterstützt wird:

http://m1theo.org/wp-content/uploads/org.openhab.binding.tinkerforge-1.5.0-SNAPSHOT-remoteswitch.jar

 

Getestet habe ich mit den Funksteckdosen (Typ A) aus dem Hardware Hacking Kit. Ob B und C Funksteckdosen funktionieren konnte ich also nicht verifizieren.

 

Dimmerunterstützung gibt es noch keine.

 

Die Konfiguration sieht so aus:

 

openhab.cfg:

tinkerforge:hosts=localhost

 

tinkerforge:rs1.uid=jKw

tinkerforge:rs1.type=bricklet_remote_switch

tinkerforge:rs1.typeADevices=rslr1 rslr2

tinkerforge:rs1.typeBDevices=kitchen

tinkerforge:rs1.typeCDevices=floor

 

tinkerforge:rs_living_room.uid=jKw

tinkerforge:rs_living_room.subid=rslr1

tinkerforge:rs_living_room.type=remote_switch_a

tinkerforge:rs_living_room.houseCode=31

tinkerforge:rs_living_room.receiverCode=8

 

tinkerforge:rs_living_room2.uid=jKw

tinkerforge:rs_living_room2.subid=rslr2

tinkerforge:rs_living_room2.type=remote_switch_a

tinkerforge:rs_living_room2.houseCode=31

tinkerforge:rs_living_room2.receiverCode=4

 

tinkerforge:rs_kitchen.uid=jKw

tinkerforge:rs_kitchen.subid=kitchen

tinkerforge:rs_kitchen.type=remote_switch_b

tinkerforge:rs_kitchen.address=344

tinkerforge:rs_kitchen.unit=9

 

tinkerforge:rs_floor.uid=jKw

tinkerforge:rs_floor.subid=floor

tinkerforge:rs_floor.type=remote_switch_c

tinkerforge:rs_floor.systemCode=A

tinkerforge:rs_floor.deviceCode=8

 

 

items:

Switch r0          {tinkerforge="uid=jKw, subid=rslr1"}

Switch r1          {tinkerforge="uid=jKw, subid=rslr2"}

Switch rb          {tinkerforge="uid=jKw, subid=kitchen"}

Switch rc          {tinkerforge="uid=jKw, subid=floor"}

 

sitemap:

sitemap remoteswitch label="Main Menu"

{

Frame {

Switch item=r0

Switch item=r1

Switch item=rb

Switch item=rc

}

}

 

 

Ich freue mich auf eure Rückmeldungen.

 

Gruß,

Theo

 

Link to comment
Share on other sites

Reconnect Unterstützung für das IO16 Bricklet

 

Hi Stefan,

 

ich habe einen Snapshot hochgeladen mit dem (u.a.) der Reconnect fuer das IO16 Bricklet unterstützt wird:

http://openhab.m1theo.org/downloads/org.openhab.binding.tinkerforge-1.5.0-SNAPSHOT-remoteswitch-io16-reconnect.jar

 

Es gibt eine neue, optionale Konfigurationsvariable "keepOnReconnect" für den type io_actuator. Ausserdem kann der defaultState für io_actuator jetzt auch den Wert "keep" haben:

- keepOnReconnect: Status nach einem Reconnect beibehalten; initial - also beim Starten der openHAB runtime - wird der defaultState gesetzt.

- defaultState=keep: Status immer, d.h. auch bei einem Neustart beibehalten.

 

Das IO16 Bricklet muss die aktuelle Firmware haben siehe hier http://www.tinkerunity.org/forum/index.php/topic,2220.0.html und hier http://www.tinkerunity.org/forum/index.php/topic,673.msg14566.html#msg14566

 

Hier ist eine Beispielkonfiguration:

 

tinkerforge:io16outa2.uid=efY

tinkerforge:io16outa2.subid=outa2

tinkerforge:io16outa2.type=io_actuator

tinkerforge:io16outa2.defaultState=keep

 

tinkerforge:io16outa3.uid=efY

tinkerforge:io16outa3.subid=outa3

tinkerforge:io16outa3.type=io_actuator

tinkerforge:io16outa3.defaultState=true

tinkerforge:io16outa3.keepOnReconnect=true

 

Gruß,

Theo

 

Link to comment
Share on other sites

Super und danke, Theo.

 

Den Status aus dem Bricklet auszulesen ist natürlich die beste Lösung.

 

Ich finde die Idee diesen Thread in "Hausautomatisierung mit openHAB" umzubenennen gut. Du kannst es ja vorher nocheinmal ankündigen und schreiben, dass alle ihre E-Mail Benachrichtigung ändern sollen.

Vielleicht wäre aber auch der Titel "openHAB Heimautomatisierung" nicht schlecht, da es viele Titel gibt, die mit Heimautomatisierung anfangen und man so sehen würde, welches System gemeint ist.

Link to comment
Share on other sites

Bei mir funktioniert es.

 

Beim "reconnecten" wurde nicht umgeschaltet (der andere Zustand war der "default" Zustand).

Insgesamt ist es aber schwierg zu sagen wann "reconnected" wird, da falls die Verbindung verloren geht, die Zustände - z.B. ON -  erhalten bleiben und nicht auf "uninitialized" wechseln.

 

Manchmal kommen bei mir auch die Zustände ganz durcheinander. Dies liegt sehr wahrscheinlich aber nicht mit openHAB und deinem Binding zusammen. Dies habe ich mit Brickv auch. Darum kümmere ich mich aber erst, wenn ich mir einen neuen Rechner hole.

Link to comment
Share on other sites

  • 2 weeks later...

Gute Idee, habe auch schon darüber nachgedacht Theo das Motion-Bricklet zu schenken, hmm, würde mich also auch daran beteiligen wenn möglich.

 

Ansonsten würde mir nur noch das IR-Distance-Bricklet fehlen, dann könnte ich mit openHAB loslegen.

VIelleicht sollte ich Theo dann einfach dieses Bricklet spendieren und das Motion-Bricklet kommt von Luxor?

Link to comment
Share on other sites

  • 3 weeks later...

Hallo luxor,

Hallo derAngler,

 

vielen Dank für euer nettes Angebot!

Das hat jetzt eine Weile gedauert bis ich auf eure Postings antworte, sorry dafür. Das lag daran, dass ich gerade im Austausch mit dem TinkerForge Team war, um zu Besprechen wie wir bei der Weiterentwicklung der openHAB Integration zusammenarbeiten könnten.

Das Ergebnis ist ein großzügiges Hardware-Sponsoring durch das TinkerForge Team! Ein Motion Detector Bricklet gehört u.a. auch dazu und wird als nächstes ins openHAB Binding integriert werden.

 

@derAngler: das Distance IR Bricklet ist schon unterstützt:

https://github.com/openhab/openhab/wiki/Tinkerforge-Binding#distance-ir-bricklet

 

Gruß,

Theo

 

Link to comment
Share on other sites

So zu Ostern gibt es erstmal Unterstützung fürs Motion Detector Bricklet!

Den SNAPSHOT gibt es hier:

http://m1theo.org/org.openhab.binding.tinkerforge-1.5.0-SNAPSHOT-1-motion.jar

oder für diejenigen, die die deb-Pakete verwenden hier:

http://m1theo.org/openhab-addon-binding-tinkerforge-1.5.0-SNAPSHOT-1-motion.deb

 

Konfiguration:

openhab.cfg:

Keine Konfiguration nötig.

 

items:

Contact motion      "motion [MAP(en.map):MOTION%s]" {tinkerforge="uid=m3W"}

 

sitemap:

sitemap motion label="Main Menu"

{

        Frame {

                Text item=motion

        }

 

}

 

transform/en.map:

MOTIONCLOSED=no motion

MOTIONOPEN=montion detected

 

Das Ergebnis seht ihr in den angehängten Screenshots.

 

Als nächstes kommt das Multi Touch Bricklet dran.

 

Frohe Ostern,

Theo

motion-no.jpg.774742bdaa6cac6cbeacb7acd8da07ac.jpg

motion.jpg.5aca0767be48e0c2361779e42fd37741.jpg

Link to comment
Share on other sites

Unterstützung fürs Multi Touch Bricklet!

 

So, das Multi Touch Bricklet funktioniert jetzt auch!

Den SNAPSHOT gibt es hier:

http://m1theo.org/org.openhab.binding.tinkerforge-1.5.0-SNAPSHOT-1-multitouch.jar

oder für diejenigen, die die deb-Pakete verwenden hier:

http://m1theo.org/openhab-addon-binding-tinkerforge-1.5.0-SNAPSHOT-2-multitouch.deb

 

Konfiguration:

 

openhab.cfg (optional):

tinkerforge:touch.uid=jUS
tinkerforge:touch.type=bricklet_multitouch
tinkerforge:touch.sensitivity=181
tinkerforge:touch.recalibrate=true

#tinkerforge:touche0.uid=jUS
#tinkerforge:touche0.type=electrode
#tinkerforge:touche0.subid=electrode1
#tinkerforge:touche0.disableElectrode=true

tinkerforge:touche1.uid=jUS
tinkerforge:touche1.type=proximity
tinkerforge:touche1.subid=proximity
tinkerforge:touche1.disableElectrode=true

 

items:

Contact electrode0      "electrode0 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode0"}
Contact electrode1      "electrode1 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode1"}
Contact electrode2      "electrode2 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode2"}
Contact electrode3      "electrode3 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode3"}
Contact electrode4      "electrode4 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode4"}
Contact electrode5      "electrode5 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode5"}
Contact electrode6      "electrode6 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode6"}
Contact electrode7      "electrode7 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode7"}
Contact electrode8      "electrode8 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode8"}
Contact electrode9      "electrode9 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode9"}
Contact electrode10     "electrode10 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode10"}
Contact electrode11     "electrode11 [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=electrode11"}
Contact proximity       "proximity [MAP(en.map):%s]" {tinkerforge="uid=jUS, subid=proximity"}

 

sitemap:

Text item=electrode0
Text item=electrode1
Text item=electrode2
Text item=electrode3
Text item=electrode4
Text item=electrode5
Text item=electrode6
Text item=electrode7
Text item=electrode8
Text item=electrode9
Text item=electrode10
Text item=electrode11
Text item=proximity

 

transform/en.map:

CLOSED=closed
OPEN=open

 

Jetzt bin ich am TemperatureIR dran.

 

Sollte jemand ein spezielles Bricklet als nächstes haben wollen, nur raus damit! Wenn es in meiner Schachtel ist und nicht zu kompliziert wird, kommt das nach dem TemperatureIR dran.

 

Gruß,

Theo

Link to comment
Share on other sites

  • 2 weeks later...

Vier weitere Bricklets werden jetzt unterstützt: Bricklet TemperatureIR, Bricklet SoundIntensity, Bricklet Moisture, Bricklet DistanceUS

 

Dowloads:

http://m1theo.org/org.openhab.binding.tinkerforge-1.5.0-SNAPSHOT-3-temperatureIR-etal.jar

http://m1theo.org/openhab-addon-binding-tinkerforge-1.5.0-SNAPSHOT-3-temperatureIR-etal.deb

 

Konfiguration:

Bricklet TemperatureIR

openhab.cfg (optional)

tinkerforge:objIR.uid=kr2
tinkerforge:objIR.subid=object_temperature
tinkerforge:objIR.type=object_temperature
tinkerforge:objIR.emissivity=65535
tinkerforge:objIR.threshold=0

tinkerforge:ambIR.uid=kr2
tinkerforge:ambIR.subid=ambient_temperature
tinkerforge:ambIR.type=ambient_temperature
tinkerforge:ambIR.threshold=0

items

Number AmbientTemperature                 "AmbientTemperature [%.1f C]"  { tinkerforge="uid=kr2, subid=ambient_temperature" }
Number ObjectTemperature                 "ObjectTemperature [%.1f C]"  { tinkerforge="uid=kr2, subid=object_temperature" }

sitemap

Text item=AmbientTemperature
Text item=ObjectTemperature

 

 

Bricklet SoundIntensity

openhab.cfg (optional)

tinkerforge:sound.uid=iQE
tinkerforge:sound.type=bricklet_soundintensity
tinkerforge:sound.threshold=1
tinkerforge:sound.callbackPeriod=5000

items

Number SoundIntensity                 "Sound [%.1f]"  { tinkerforge="uid=iQE" }

sitemap

Text item=SoundIntensity

 

 

Bricklet Moisture

openhab.cfg (optional)

tinkerforge:moisture.uid=kve
tinkerforge:moisture.type=bricklet_moisture
tinkerforge:moisture.threshold=0
tinkerforge:moisture.callbackPeriod=5000
tinkerforge:moisture.movingAverage=90

items

Number Moisture                 "Moisture [%.1f]"  { tinkerforge="uid=kve" }

sitemap

Text item=Moisture 

 

 

Bricklet DistanceUS

openhab.cfg (optional)

tinkerforge:distanceUS.uid=mXq
tinkerforge:distanceUS.type=bricklet_distanceUS
tinkerforge:distanceUS.threshold=0
tinkerforge:distanceUS.callbackPeriod=100
tinkerforge:distanceUS.movingAverage=100

items

Number DistanceUS                 "DistanceUS [%.1f]"  { tinkerforge="uid=mXq" }

sitemap

Text item=DistanceUS 

 

 

Ausserdem habe ich einiges an Cleanup gemacht:

- Es werden jetzt nur noch Sensoren in regelmäßig Zeitabständen abgefragt, die selbst keine Callback-/Interruptlistener unterstützen. Letztere schicken ohnehin Aktualisierungen, wenn es nötig ist.

- Threshold Konfigurationswerte haben jetzt die gleiche Einheit wie die Sensorwerte, wie sie von openHAB zurückgegeben werden. Wer Threshold konfiguriert hat muss sein openhab.cfg anpassen!

- Beim Pollen von Werten wurden bisher zwei Events auf den eventbus geschickt, das ist jetzt nicht mehr so.

Durch die letztgenannten Änderungen wird der Traffic auf dem Eventbus reduziert.

 

Da durch den Cleanup auch bestehende Funktionalität betroffen ist, wäre es schön wenn ich auch Rückmeldung bekommen würde, ob auch die schon länger unterstützten Geräte noch funktionieren.

 

Vielen Dank für jede Form der Rückmeldung!

 

Gruß,

Theo

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...