Jump to content

openhab Integration


[[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

Hi,

 

seit einiger Zeit arbeite ich an einer Integration (binding) der TF Hardware in openhab (näheres hier https://github.com/openhab/openhab/wiki/Tinkerforge-Binding). Falls euch das nichts sagt, openhab (http://openhab.org) ist eine opensource Heimautomatisierungs- / IoT-Lösung, die verschiedenste Hardware einbindet. Die Hardware kann dann entweder mit dem Browser, mit einer IOS-App oder einer Android-App ausgelesen oder gesteuert werden. Persistierung in Datenbanken wird ebenso unterstützt, wie Darstellung von Grafiken mit RRD und vieles mehr.

Ein Vorteil ist, dass man dazu keinen eigenen Code schreiben muss, sondern eine mächtige Regelmaschine zur Hand hat. Mit den Regeln kann man z.B. konfigurieren, dass die aktuelle Temperatur auf dem LCD-Bricklet ausgegeben wird.

Auch das Aussehen der Apps und das Einbinden der Devices geschieht mittels Konfigurationsdateien. Details dazu könnt ihr auf der openhab Seite sicher besser nachlesen.

 

Das binding von mir unterstützt bisher nur einen Teil der TF Hardware, ich werde das aber nach und nach vervollständigen (soweit ich die Hardware habe). Die Wetterstation wird aber u.a. unterstützt und ist bei mir schon einige Wochen über meinen PI am Laufen.

Am "Hardware Hacking Kit" bin ich gerade dran.

 

Eine openhab-Installationsanleitung gibt es im openhab-wiki https://github.com/openhab/openhab/wiki/Quick-Setup-an-openHAB-Server (ich bin gerade dran debian Pakete zu machen, das ist aber noch was für die Mutigen).

 

Happy Tinkering,

Theo

Link zu diesem Kommentar
Share on other sites

  • Replies 526
  • Created
  • Letzte Antwort

Top Posters In This Topic

Super!

Das Binding, das auf meiner Webseite liegt, wird leider nur noch mit der openhab 1.3-Snapshot runtime funktionieren, da es in der runtime eine zu 1.2 inkompatible Änderung gab. Du findest ein deb-Paket mit der 1.3 runtime auf meiner Webseite. Infos zum deb-Paket gibt es hier (die Verzeichnisstruktur ist anders als im zip): http://code.google.com/p/openhab/issues/detail?id=370 . Hier kannst du die offiziellen Snapshots holen: https://openhab.ci.cloudbees.com/job/openHAB/ .

Gerne gebe ich Hilfestellung und für Feedback bin ich sowieso dankbar, allerdings bin ich ab Donnerstag bis Ende August im Urlaub.

 

Gruß,

Theo

 

Link zu diesem Kommentar
Share on other sites

Ich glaube der Link zu deinen Bindings im Blog ist kaputt...

 

edit: Konkreter: in deinem blog-artikel unter HOME geht der Link zum download nicht.

 

DIe Links zu den beiden deb-Paketen (anderer Artikel) funktionieren.

Ich werde diese jetzt ausprobieren...

 

edit2: Davon abgesehen läuft es offenbar super. Ich kann auf die Sensoren zugreifen :)

 

edit3: Gerade nach etwas Herumspielen waren plötzlich ein paar Werte nciht mehr zu sehen... im Log fand sich folgendes:

21:01:40.688 INFO  o.o.c.s.AbstractActiveService[:201]- Tinkerforge Refresh Service has been shut down

 

Keine Ahnung was passiert ist ^^

Link zu diesem Kommentar
Share on other sites

Der download link ist wieder ok, danke für den Hinweis (ich hatte etwas zu großzügig aufgeräumt).

 

Super, dass du die deb-Pakete am Laufen hast. In der Version die im Download-Bereich liegt, musst du noch aufpassen, falls du openhab z.B. zum debuggen als root gestartet hast. Da das init-Skript openhab unter der user id "openhab" laufen läßt, musst du u.U. den Besitzer der Dateien unter /var/lib/openhab und /var/log/openhab anpassen.

 

Funktioniert es denn jetzt wieder?

 

Das Problem mit "Tinkerforge Refresh Service has been shut down" hört sich nach defekter Konfiguration an. Hast du noch einige Zeilen aus dem Log um diese Meldung herum?

U.U musst du das loglevel hochdrehen in /etc/openhab/logback.xml

eine Zeile wie diese Einfügen:

<logger name="org.openhab.binding.tinkerforge" level="DEBUG" />

es gibt auch noch trace, dann wird es aber sehr gesprächig:

<logger name="org.openhab.binding.tinkerforge" level="TRACE" />

 

 

 

 

Link zu diesem Kommentar
Share on other sites

Mein log war leider zu sparsam... da war nichts weiter drumherum. Allerdings habe ich eine Vermutung, es könnte der typische Fehler gewesen sein:

Zwischendurch war mein brickv connected, falls dieser die Callbacks ausgeschaltet hat und deine Bindings die Callbacks nutzen war das das Problem.

 

Ich tu einfach so als wäre das nie passiert, falls es jedoch wieder vorkommt versuche ich dir einen besseren Bug-Report zukommen zu lassen.

 

Ist der Quellcode deiner Bindings zufällig schon irgendwo gehostet? (github oder Google Code o.ä?)

 

Ich bin im Moment aber eh noch mehr im Testbetrieb, muss mir noch überlegen wie und wo ich am Ende die historischen Daten speichern will. RRD-Persistency scheint ja eine feine Sache zu sein, allerdings muss ich mich hier noch schlau machen, wie ich dann selbst an die Daten herankomme ^^ Offenbar ja nur über rrd4j... und geht das dann auch Parallel zum Logging-betrieb? ^^ Ein wenig ist hier also noch zu tun und herauszufinden :D

Link zu diesem Kommentar
Share on other sites

Das mit dem brickv klingt plausibel, die Bindings nutzen die Callbacks. Ich dachte auch schon an eine Aktualisierung der runtime auf einen aktuelleren Stand. Es gab kürzlich noch eine race-condition beim item-file einlesen.

 

Den Quellcode kannst du hier finden: http://code.google.com/r/theoweiss-tinkerforge2/

 

Die Antworten auf deine Fragen kenne ich leider auch noch nicht, da ich bisher vor allem mit dem binding beschäftigt war.

Logging und RRD werden auf jeden Fall gleichzeitig funktionieren.

Für openhab-Fragen unabhängig vom tinkerforge binding gibt es ein wirklich aktives deutsches und ein englisches Forum. Sie sind auf openhab.org verlinkt.

Link zu diesem Kommentar
Share on other sites

  • 1 month later...

Heute wurde openHAB 1.3 released, das Tinkerforge Binding ist mit dabei!

 

Die neue Version gibt es unter http://openHAB.org, das Tinkerforge Binding ist im openhab-addons Paket. Doku zum Binding findet ihr hier http://code.google.com/p/openhab/wiki/TinkerForgeBinding .

 

Kai hat das Tinkerforge Binding in die Release Highlights aufgenommen:

http://kaikreuzer.blogspot.de/2013/09/openhab-13-release-highlights.html

 

Das spiegelt sich auch in der Presse wieder:

http://www.heise.de/open/meldung/17-neue-Bindings-fuer-Smart-Home-Projekt-openHAB-1952414.html

http://jaxenter.de/news/openHAB-in-Version-13-erschienen-zahlreiche-neue-Bindings-167199

 

Gruß,

Theo

 

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

@theo @auronx

Sooo ich hab mich auchmal mit openhab und tinkerforgen bindings etwas versucht (openhab klingt für mich spannend aber ich bin noch blutiger anfänger).

 

Habt ihr für dummies eine anleitung wie ich aus meinen Barometer Bricklet die Temperatur auslesen kann?

 

Meine bisherigen Erkentnisse:

 

items_config:

/* Indoor Temperatures */
Number Temperature_Wohnung 	"Temperature [%.1f °C]"	<temperature> (Weather_Chart) { tinkerforge="name=bar_temp" }

 

openhab.cfg

############################## Tinkerforge  Binding ###################################
#
# IP addresses / Hostnames  of the hosts running the brickd (optional port
# separated by a colon, defaults to 4223)
tinkerforge:hosts=192.168.4.24
tinkerforge:bar_temp.uid=NSa
tinkerforge:bar_temp.type=barometer_temperature
tinkerforge:bar_temp.subid=temperature

 

Was muss ich nun in rules eintragen für ein update der werte?

Wie zeige ich es auf der Demoseite an?

 

rules

rule "Set temperatures"
when 
	System started or
	Time cron "0 0/5 * * * ?"
then
	Temperature?.members.forEach(temperature|
		postUpdate(bar_temp??)
	)
end

rule "Update max and min temperatures"
when
Item Weather_Temperature changed or
Time cron "0 0 0 * * ?" or
System started
then	
postUpdate(Weather_Temp_Max, Weather_Temperature.maximumSince(now.toDateMidnight).state)
postUpdate(Weather_Temp_Min, Weather_Temperature.minimumSince(now.toDateMidnight).state)
end

 

Viele Grüße

Link zu diesem Kommentar
Share on other sites

Hallo Einstein,

 

freut mich, dass du openHAB ausprobierst!

 

Wenn du den name nicht brauchst (hilft, wenn du die Hardware tauschst, sich also die uid ändert), am einfachsten damit:

 

openhab.cfg

tinkerforge:hosts=192.168.4.24

 

In die items Datei kommt Folgendes:

?.items

Number Temperature_Wohnung   "Temperature [%.1f °C]" { tinkerforge="uid=NSa, subid=temperature" }

 

In die sitemap Datei an eine Stelle deiner Wahl:

?.sitemap

Text item=Temperature_Wohnung

 

Das rules file ist nicht nötig!

Der update wird automatisch gemacht: für devices, die einen CallbackListener unterstützen bei jeder Änderung, für die anderen - z.B. das Temperatur device auf dem Barometer Bricklet - alle 60 Sekunden (konfigurierbar mit refreshInterval).

 

Gruß,

Theo

 

 

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

hallo theo,

soweit so gut es läuft erst einmal alles und nimmt temperaturen in ein diagramm auf.

 

jedoch kommen auf der openhab konsole ab und zu mal fehler

 

ERROR o.o.b.t.i.m.i.MBarometerTemperatureImpl[:55] - Tinkerforge Error: Tinkerforge "not connected" occurred : null

 

sodass nur ein neustart von openhab hilft.

Kannst du /ihr mir hier weiterhelfen?

 

VG

Link zu diesem Kommentar
Share on other sites

Hallo Einstein,

 

super das du es am Laufen hast.

Ist dein brickd tatsächlich hin und wieder weg?

Oder verwendest du die Wifi-Extension und hast gelegentlich Verbindungsprobleme?

Ich werde mir das mit dem autoreconnect die Tage noch einmal anschauen. Da lässt sich bestimmt was verbessern.

 

Bis dahin,

Theo

 

 

Link zu diesem Kommentar
Share on other sites

  • 2 weeks later...

Hallo Theo,

ich weiß nicht ob du schon eine Eingebung hattest.

Hier noch ein paar auszüge

 

21:10:32.676 ERROR o.o.b.t.i.m.i.MBrickletTemperatureImpl[:55] - Tinkerforge Error: Tinkerforge "not connected" occurred : null
21:10:32.684 INFO  runtime.busevents[:46] - Temperature_DD_Wohnung state updated to Undefined
21:10:32.687 ERROR o.o.b.t.i.m.i.MBarometerTemperatureImpl[:55] - Tinkerforge Error: Tinkerforge "not connected" occurred : null
21:10:32.713 INFO  runtime.busevents[:46] - Temperature_bar_DD_Wohnung state updated to Undefined
21:10:37.665 INFO  runtime.busevents[:46] - Date state updated to 2013-10-16T21:10:37
21:11:32.696 ERROR o.o.b.t.i.m.i.MBrickletTemperatureImpl[:55] - Tinkerforge Error: Tinkerforge "not connected" occurred : null
21:11:32.702 INFO  runtime.busevents[:46] - Temperature_DD_Wohnung state updated to Undefined

Link zu diesem Kommentar
Share on other sites

Vielen Dank Theo für dein Tinkerforge-Binding. Openhab ist damit richtig genial.

 

Mein wichtigstes Bricklet ist das IO16-Bricklet. Ist es geplant dieses Bricklet auch in das Tinkerforge-Binding zu übernehmen?

Es wäre cool, wenn man einzelne Pins von den 16 Pins des IO16 auf "input pull up" stellen könnte und mit dem Item 'Switch itemName "itemText" { tinkerforge="uid=uid" port='a', pin="1" }' würde dann auf jede Änderung des Zustandes des gewählten Pins reagiert werden.

 

Die Outputfähigkeit, also einen Pin zu schalten, lässt sich jetzt schon sehr gut mit dem openhab exec-Binding und den Tinkerforge Shell Bindings realisieren:

Switch pin1 {exec=">[ON:tinkerforge call io16-bricklet uid set-port-configuration a 1 out true]"}

Link zu diesem Kommentar
Share on other sites

Hi Einstein,

 

du kannst hier http://m1theo.org/wp-content/uploads/org.openhab.binding.tinkerforge-1.4.0-SNAPSHOT-reconnect.jar ein Binding herunterladen mit dem das AutoReconnect funktionieren sollte.

Zur Installation einfach openHAB herunterfahren, das originale Binding aus dem addons-Verzeichnis sichern/wegschieben, das org.openhab.binding.tinkerforge-1.4.0-SNAPSHOT-reconnect.jar dort ablegen und openHAB neu starten.

 

Schon mal vielen Dank fürs Testen.

 

Gruß,

Theo

 

Link zu diesem Kommentar
Share on other sites

Hallo Stefan und AuronX,

 

vielen Dank für euer Feedback, so bekomme ich eine Idee davon was funktioniert, wo es vielleicht hakt, welche neuen Features wichtig sind und natürlich auch ob das Binding überhaupt verwendet wird.

 

@Stefan: Ich habe vor zunächst nach und nach die Bricklets, die in meiner Bastelkiste sind in openhab einzubinden. Derzeit habe ich bei mir zusätzlich zu den mit 1.3 veröffentlichten Devices: das QuadRelay-Bricklet am Laufen und das "Industrial Digital In 4 Bricklet" zu 90% fertig. Leider sind die Entwicklungen noch im alten 1.3-mercurial-Zweig von openHAB und ich muss sie erst noch in den 1.4-Git-Zweig überführen. Danach werde ich einen neuen SNAPSHOT auf meinen Blog hochladen.

Jetzt die gute Nachricht in meiner Bastelkiste ist u.a. ein IO16-Bricklet. Das kommt dann einfach als nächstes dran. Ich melde mich wenn es was zum Testen gibt.

 

Gruß,

Theo

 

Link zu diesem Kommentar
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.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...