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

Ingenieur

  • Newbie
  • *
  • Posts: 48
    • View Profile
Re: openhab Integration
« Reply #405 on: February 20, 2019, 20:51:59 »
Hallo Theo,

danke schön für die Einweisungen. Es hat für das ThermocoupleBricklet 1.0 ohne Probleme nach Paar Minuten geklappt. Kann sein, dass die Konfiguration nicht alle Einstellungen implementiert. Es reicht aber für die meisten Fälle meiner Anwendung.

  "thermocouple ":{
    "bricklet": "BrickletThermocouple",
    "className": "ThermocoupleBricklet",
    "brickletConfig": "thermocoupleDeviceConfig",
    "package": "thermocouple",
    "deviceType": "thermocouple",
    "callbackChannels": "false",
    "hasConfig": "true",
    "channels": [
      {
        "id": "temperature",
        "baseName": "Temperature",
        "externalDevice": "false",
        "callbackChannel": "true",
        "actuator": "false",
        "hasConfig": "true",
        //TODO i2cMode
        "thresholdSupport": "false",
        "callbackPeriodSupport": "true",
        "field": "temperatureChannel",
        "sensorValueType": "int",
        "valueType": "DecimalValue",
        "callbackMethod": "temperature",
        "getterMethod": "getTemperature()",
        "valueConverter": "Tools.calculate100(",
        "ohchannelid": "temperature",
        "ohunit": "SIUnits.CELSIUS"
      }
    ]
  },

Viele Grüße,
Kirill



Hallo Kirill,
Hallo Sigi,

das stimmt nur noch fast. Ich hab den Branch gewechselt, jetzt ist es tinkerforge3:
https://github.com/theoweiss/openhab2-addons/tree/tinkerforge3

Der größte Teil der Entwicklung findet aber hier statt:
https://github.com/theoweiss/tinkerforge-client-codegen
Der Code für die Devices/Bricklets wird von mir nicht mit der Hand geschrieben, sondern Anhand einer Konfiguration aus Templates generiert.
Das Codegenerieren erzeugt einerseits Code in diesem Projekt:
https://github.com/theoweiss/tinkerforge-client
Das ist eine higher level TinkerForge Client Bibliothek, die auch vom openHAB-Binding verwendet wird.
Andererseits im openHAB-Binding die DeviceHandler und Thing-Konfiguration.

Um neue Geräte hinzuzufügen muss man also im codegen-Projekt ansetzen.

Gruß,
Theo
« Last Edit: February 20, 2019, 21:18:13 by Ingenieur »

StefanOHAN

  • Newbie
  • *
  • Posts: 47
    • View Profile
Re: openhab Integration
« Reply #406 on: February 24, 2019, 18:20:11 »
Hallo Theo

diese Woche sind meine zusätzlichen Tinkerforge Komponenten gekommen.

>Motion Detector Bricklet 2.0
>Multi Touch Bricklet
>NFC Bricklet
>Outdoor Weather Bricklet /Temperatur/Luftfeuchte Sensor TH-6148

Alle 4 Komponenten wurden automatisch erkannt und in der Inbox angezeigt, jedoch hatte ich ein paar Probleme

1) ich konnte für das Wetter Bricklet nicht die Sensor-ID des TH-6148 hinzufügen und speichern (somit waren unter Paper-UI /  Control nur NaN als Werte zu lesen). Leider gibt es im Log und "Configurations Things" Fehlermeldungen auch ohne dass ich die Sensor-ID eintrage. Was mich etwas verwirrt, mir wurden unter control für die Werte Temperatur / Humidity ... immer 2 Felder angezeigt. Warum ist das so ?
(siehe Bilder)

>> Fehlermeldung im Log:
[ERROR] [core.thing.internal.ThingManagerImpl] - Exception occurred while initializing handler of thing 'tinkerforge:outdoorweather:8b9f4473:E4v': null


2) das Multi-Touch konnte ich zwar unter Thinks linken (hab Simple Mode = on, genutzt) es wurde jedoch nichts unter Control angezeigt

3) Frage zum Motion-Dedector-V2, es sind ja 3 LED eingebaut aber ich hab unter "Control" keine "switch" zum ein und ausschalten gefunden, ist das so von dir gewollt ? Hast Du geplant dass man diese auch schalten kann ?

Leider hab ich beim Testen das ganz System so verkorkst dass ich den Pi gerade neu aufsetzte. Ich hoffe dass die Problem mit dem Multi-Touch und der Wetterstation nur folge davon waren (update folgt)


Theo, Du fragtest doch ob ich von meinem Projekt (Gartenhaus & Tinkerforge) eine Projektbeschreibung habe. Ich habe diese Woche einmal alles zusammengefasst (den Gedanken und die Funktionen) und komme auf gut 4 Seiten Text. Wie kann ich Dir diese Information zukommen lassen ? Soll ich es hier posten oder eventuell hier unter Projektvorstellungen eine neue Beitrag öffnen ?)


Update vom 24.02.2019
So Pi wurde mit Openhabian neu installiert, keine Altlasten.
Leider sind beide Fehler/Verhaltensweisen des Weatherbrick und des Multitouch noch immer vorhanden.


« Last Edit: February 25, 2019, 18:10:57 by StefanOHAN »

theo

  • Sr. Member
  • ****
  • Posts: 316
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #407 on: February 25, 2019, 19:44:01 »
Hallo StefanOHAN,

danke für das Testen!
zu1) das OutdoorWeather Bricklet ist noch nicht unterstützt. Der Code, der da ist ist veraltet. Ich hab vergessen, dass wieder rauszunehmen.

zu2) Die Multitouch Channels sind  TriggerChannels vom Typ system.rawbutton mehr dazu findest du u.a. hier: https://www.openhab.org/docs/configuration/items.html#_2-x-binding-configuration

zu3) Da ist mindestens die Channel-Definition falsch, da muss ich was fixen.

Wenn du nur openHAB verkorkst hast, dann musst du nicht den pi neu aufsetzen, es sollte reichen:
Code: [Select]
apt-get remove --purge openhab2
apt-get install openhab2
Für openhabian bin ich da aber nicht ganz sicher, vielleicht weiß da Sigi @sihui mehr?

Das mit der Projektbeschreibung ist super! Poste es doch unter Projektvorstellungen und schick uns in diesem Thread einen Hinweis darauf. Ich bin gespannt.

Gruß,
Theo

theo

  • Sr. Member
  • ****
  • Posts: 316
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #408 on: February 25, 2019, 20:01:55 »
@Ingenieur super!
Konfiguration kannst du über das configureTemplate implementieren und über das config-Array in der Device-Konfiguration anlegen. Siehe z.B.:
Code: [Select]
  "temperaturev2":{
    "bricklet": "BrickletTemperatureV2",
    "className": "TemperatureV2Bricklet",
    "brickletConfig": "TemperatureV2DeviceConfig",
    "package": "temperaturev2",
    "deviceType": "temperatureV2",
    "callbackChannels": "true",
    "hasConfig": "true",
    "configureTemplate": "ConfigureTemperatureV2.mvel",
    "config": [
      {
        "name": "statusLEDConfig",
        "type": "Integer",
        "ohtype": "integer",
        "ohmultiple": "false",
        "converter": "Integer.parseInt",
        "getter": "getStatusLEDConfig",
        "default": "3",
        "min": "0",
        "max": "3",
        "description": "Status LED<![CDATA[<br>]]>Between 0=>OFF), 1=>ON, 2=>HEARTBEAT, 3=>STATUS; default is 3=>STATUS."
      }
    ],

sihui

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: openhab Integration
« Reply #409 on: February 25, 2019, 20:13:12 »
Code: [Select]
apt-get remove --purge openhab2
apt-get install openhab2

Die erste Zeile sollte so bleiben können, die zweite Zeile sollte man ersetzen durch Aufruf von openhabian-config, darüber kann man dann neu installieren.
Ist aber nur angelesen, selbst genutzt habe ich openHABian noch nicht.

StefanOHAN

  • Newbie
  • *
  • Posts: 47
    • View Profile
Re: openhab Integration
« Reply #410 on: February 26, 2019, 07:59:52 »
Hallo Theo, hallo sihui

mit einem TriggerChannels vom Typ system.rawbutton hab ich noch nie gearbeitet, werde ich heute Abend gleich mal nachlesen wie es funktioniert.

Zum Thema MotionDector V2, mir ist da so ein verwegener Gedanke gekommen.
>> Laut Tinkerforge kann man ja die Farben jeder der 3 LED verändern (0-255), meinst Du, dass Du in einer späteren Version des Binding (ich würde es als Nice-To-have bezeichnen) jeder LED neben dem Switch-Item auch ein Number-Item zuweisen könnten und über das Number-Item kann dann der Farbwert von 0-255 verändert werden ?

02.03.2019 Sorry, das mit den verschieden Farben stimmt nicht, mann kann nur die Helligkeit verändern.

@ sihui & Theo
danke für den Tipp mit dem Rücksetzen, so einen Neuinstallation dauert relativ lange (man muss zwar nicht viel machen, aber halt warten) incl Image auf die Karte schreiben, der automatischen Installation von Openhabian , der Nachinstallation und Konfiguration von diversen Komponenten gehen bestimmt 3 Stunden drauf.

zum Thema Projekt-Vorstellung, ich werde am WE dann hier einen neuen Post eröffnen und mein Projekt vorstellen. Ich plane auch mal so alle die kleinen Fallstricke zu erwähnen über die ich im laufe der Zeit gestolpert bin
« Last Edit: March 02, 2019, 12:17:03 by StefanOHAN »

sihui

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: openhab Integration
« Reply #411 on: February 26, 2019, 08:06:32 »
mit einem TriggerChannels vom Typ system.rawbutton hab ich noch nie gearbeitet, werde ich heute Abend gleich mal nachlesen wie es funktioniert.

Diese Channel Triggers kennst du bestimmt schon vom Astro Binding, auch das Amazon Dash Button Binding nutzt diese:

Hier sind noch weitere Infos dazu:

https://www.openhab.org/docs/configuration/rules-dsl.html#channel-based-triggers

Code: [Select]
rule "Dash button pressed"
    when
        Channel "amazondashbutton:dashbutton:ac-63-be-62-be-f5:press" triggered
    then
        logInfo("EXTRA","DASHBUTTON: The dash button has been pressed")
    ...
end

Code: [Select]
rule "Twilight"
when
    Channel 'astro:sun:local:set#event' triggered START
then
    logInfo("EXTRA", "DAYTIME: rule Twilight")    
    ...
end

Bei der Nutzung benötigt man keine Items.

StefanOHAN

  • Newbie
  • *
  • Posts: 47
    • View Profile
Re: openhab Integration
« Reply #412 on: February 26, 2019, 18:02:18 »
Hallo sihui

Du hast Recht über das Astro-Binding hab ich schon mit Channel gearbeitet, aber über einen vermutlich komplizierten weg

1) erstelle ein Thing der "Datei xxx.thing"  z.B. >>Thing astro:sun:abc .....<<
2) weise einem Item in der Item-Datei einen Channel des Thing "astro:sun:abc" zu

damit hab ich dann in rules gearbeitet. Mit dem Tipp von Dir dürfte das alles einfacher werden da ich nicht so viele Abhängigkeiten habe.
Danke für den Tipp

sihui

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: openhab Integration
« Reply #413 on: February 26, 2019, 18:28:22 »
1) erstelle ein Thing der "Datei xxx.thing"  z.B. >>Thing astro:sun:abc .....<<

Ja, diese von openHAB1 herrührende Variante der manuellen Konfigurationsdateien kann man nutzen, komfortabler geht es aber über das Autodiscovery.

2) weise einem Item in der Item-Datei einen Channel des Thing "astro:sun:abc" zu

Jein. Für den reinen Channel Trigger benötigst du kein Item, geschweige denn einen Channel der darauf verlinkt ist.
Ich habe leider kein Multitouch, deshalb kann ich dir kein aktuelles Beispiel liefern.

Zur weiteren Erläuterung am Astro Binding:
Wenn du ein Astro Thing (egal ob über Autodiscovery oder manueller Things Datei) angelegt hast, steht dir direkt der Range Event Channel als Channel Trigger zur Verfügung. Du erkennst das auch daran dass dieser Channel keinen blauen Kreis hat, sondern es ist grau hinterlegt. Man KANN es also gar nicht mit einem Item verknüpfen.

Ein Item brauchst du nur anlegen, wenn du die Channels für Startzeit/Endzeit/Dauer usw. benötigst, z.b. zur Anzeige in der Sitemap. Logischerweise muss man dann auch das Item mit einem dieser Channels verknüpfen.


« Last Edit: February 26, 2019, 18:30:39 by sihui »

theo

  • Sr. Member
  • ****
  • Posts: 316
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #414 on: March 01, 2019, 19:51:30 »
So wie ich das verstehe, ist das eigentlich coole an TriggerChannels vom Typ system.rawbutton, dass es dafür ein profile gibt und es damit möglich ist ohne eine Rule einen Channel (z.B. einen RelayChannel) mit dem Button zu verknüpfen. Siehe:
https://www.openhab.org/docs/configuration/items.html#profiles
Quote
Instead of using this Rule, you can also use the rawbutton-toggle-switch Profile in combination with Multi-Channel Linking:

Color Bedroom_Light { channel="hue:0210:1:bulb1:color", channel="serialbutton:button:mybutton:button" [profile="rawbutton-toggle-switch"] }
This will make your Rule obsolete. So with Profiles, you can significantly reduce the amount of Rules you need for your Smart Home which helps you to keep your configuration short and clear.

theo

  • Sr. Member
  • ****
  • Posts: 316
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #415 on: March 02, 2019, 12:09:13 »
Helau! Neuer Snapshot mit Support für:

io16
io16v2
io4
io4v2
loadcellv2

Die GPIO Konfiguration ist im PaperUI am Channel (nicht am Thing), dort könnt ihr "input" oder "output" konfigurieren und auch alles Weitere.

Ausserdem hat sich einiges an der Konfiguration bestehender Bricklets geändert: CallbackPeriod und Threshold werden jetzt - wenn vorhanden - an den Channels und nicht am Thing konfiguriert.

Ansonsten gibt es sehr viele Änderungen unter der Decke, Regressions sind also nicht unwahrscheinlich.

https://bintray.com/theoweiss/generic/download_file?file_path=org.openhab.binding.tinkerforge-2.5.0-9-SNAPSHOT.jar

Ich bin wirklich gespannt auf euere Testergebnisse.

StefanOHAN

  • Newbie
  • *
  • Posts: 47
    • View Profile
Re: openhab Integration
« Reply #416 on: March 02, 2019, 13:45:09 »
Hallo Theo

Super dass Du schon die nächste Binding-Version zum Testen bereitgestellt hast.

Ich habe das neue Binding gerade kurz getestet, meine beiden 16-fach IO werden erkannt.
Ich konnte die Channel‘s  als Switch oder Contact konfigurieren und bei einem kurzen Test hat sich die Switch (mini LED mit 5v/3mA hat sich schalten lassen) als auch die Contact Funktion nutzen lassen. Ich werde das ganze noch mal intensiver testen (baue mir nur eine Tasterleiste )
 

Theo, Frage ist es möglich in der Paper-UI-View „Configuration / Things / BrickletIO16“  den Text abhängig ob der GPIO es als Switch oder Contact konfiguriert ist, mit „Switch“ oder Contact GPIO (0-15) einzutragen ? (aktuell steht immer Switch, was das überprüfen der Konfiguration schwieriger macht, da man alle anklicken muss um nach zu schauen was sie sind. (siehe Bild)


Leider bin ich diese Woche etwas im Stress gewesen und konnte das mit dem rawchannel nicht richtig testen.

Ich hab mal rum gespielt und konnte dann doch einen rawchannel mit einem Switch-Item verknüpfen, dann reagriet der Switch im Grunde wie ein Taster. 1x berührt = ein, ein weiteres mal berührt = aus.

Ich werde es aber auf jedem Fall ohne Umwege (über Item) mit dem Rules probieren wie es sihui sagte.

Eine Sache ist mir jedoch aufgefallen, ich weiß nicht ob es nun am Binding oder am Tinkerforge Masterbrick liegt.

Ich habe unter der Woche meine Testkonfiguration umgebaut.

Jetzt

Stapel1:
2 x Masterbrick und 1x RS485-Extention (hiervon ist ein Masterbrick über USB an den Pi angeschlossen)

Stapel2:
1 x Masterbrick und 1 x RS485-Extention (hier wird nur der Masterbrick mit Strom versorgt, die Daten Kommunikation läuft über die Busverlängerung durch das RS485.

Stapel-1 und Stapel-2 sind über den RS485 Bricklet verbunden.

Test Szenario 1:

a) Anschließen des Masterbrick Stapel-1 an den Pi
  >> der MotionDedector V2 wurde erkannt

b) Spannungsversorgung des Stapel-2 angeschlossen
  >> die Weather und der NFC-Bricklet wurden erkannt.

Test Szenario 2:
a) "nur" am Stapel 2 wird die Spannungsversorgung deaktiviert
  >> Weather & NFC Bricklet gehen offline
b) am Stapel 2 wird wieder Spannung angelegt
  >> Weahter & NFC Bricklet bleiben weiter offline

Um das ganze wieder zum laufen zu bekommen, musste ich Openhab durchstarten.

Wenn ich ohne RS485 Verbindung zwischen beiden Stapeln arbeite und den zweiten Stalpel auch USB an den Pi anschließe, geht beim gleichen Test nach dem wieder einstecken des Stapel-2 Weather und NFC wieder online. (hier ist kein durchstarten notwendig)

Wenn ich gleiches Spiel nun BrickViewer mache (also wieder beide Stapel über RS485 gekoppelt und nur Stapel-1 per USB am PC angeschlossen), erkennt der Viewer automatisch nach der Wiederherstellung der Spannungsversorgung die Komponenten des zweiten Stapel (hier wieder mit der Datenkommunikation über den RS485).

theo

  • Sr. Member
  • ****
  • Posts: 316
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #417 on: March 02, 2019, 16:33:34 »
Hallo StefanOHAN,

danke fürs schnelle Feedback. Das klingt ja schon mal nicht so schlecht.

Laut TF-Doku sollte das mit dem RS485 mit meinem Code in beiden Fällen funktionieren (https://www.tinkerforge.com/de/doc/Hardware/Master_Extensions/RS485_Extension.html#rs485-busmodifikation). Ich werde das mal testen, ich habe ein RS485 hier.

Für das mit dem Switch/Contact sehe ich keine schnelle Lösung, da muss ich etwas in den OH-Innereien kramen.

Gruß,
Theo


theo

  • Sr. Member
  • ****
  • Posts: 316
    • View Profile
    • Twitter
Re: openhab Integration
« Reply #418 on: March 02, 2019, 18:14:47 »
StefanOHAN,

probier doch mal aus ob mit diesem Snapshot dein rf485-Problem behoben ist:  https://bintray.com/theoweiss/generic/download_file?file_path=org.openhab.binding.tinkerforge-2.5.0-10-SNAPSHOT.jar

StefanOHAN

  • Newbie
  • *
  • Posts: 47
    • View Profile
Re: openhab Integration
« Reply #419 on: March 02, 2019, 20:54:37 »
Hallo Theo,

ich kann nur sagen WOW wie schnell du einen Update hier rein gestellt hast, Danke  :)

Jetzt verhält sich das System etwas anderes, anfangs hatte ich folgende Konfiguration am 2-Stapel (der über das RS485) angebunden ist.

1x Masterbrick
1x RS485 Masterextention
1x Multitouch
1x Outdoor-Weather
1x 20x4 Display
1x NFC

nachdem das 20x4 Display noch nicht im Binding ist und das NFC und das Outdoor Weather noch nicht richtig funktioniert, hatte ich nur das Multitouch zum testen.
Da sich das Outdoor-Weather irgendwie unmotiviert verhalten hat (es ging immer auf uninitialisierten Status), habe ich es durch den Motion-Dedector V2 ersetzt.

In diese Konfiguration konnte ich die Spannung am 2-Stapel entfernen und als ich nach ca 1 Minute diesen wieder mit Spannung versorgte konnte ich ich das Multitouch und den Motion-Dedector wieder nutzen.

Jedoch sind weder der Multitouch noch der Motion-Dedector im Menue "Configuration / Things" je als offline dargestellt worden, sie waren immer mit Status online.

Nur im Log konnte ich einer Meldung lesen dass der Multitouch nicht erreichbar war.

2019-03-02 19:46:29.860 [ERROR] [evices.multitouch.MultiTouchBricklet] - setting configuration failed
com.tinkerforge.TimeoutException: Did not receive response in time for function ID 4


Ich könnte mir vorstellen dass es eventuell damit zusammenhängt, wie der Masterbrick der per USB an den Pi angeschlossen ist die Gesamtkonfiguration Managed. Mir reicht es aber völlig aus, wenn nach dem wieder Spannung am 2-Stapel anliegt alles wieder nutzbar ist.
Ich werde heute Nacht einmal den 2 Stapel spannungslos machen und dann morgen schauen wie der Status ist (online oder offline).

Was ich durch das eintauschen des Motion-Dedector V2 gesehen habe, ist dass Du die 3 LED jetzt als Schalter (dimmbar) in der Konfiguration hast  :)
Leider haben die 3 LED bei ein oder ausschalten nicht reagiert (blieben dunkel) auch wenn die die Dimmung verstellt habe.

Zum Thema Mulittouch
ich hab zum Testen als Notlösung eine Taste als "rawbutton-toggle-switch" über ein vorhandenes Item aus meiner Item Datei verlinkt (siehe Bild). Hat gut funktioniert, verhält sich halt wie ein Tastschalter.
Ich versuche nächste Woche mal das ganze rawchannel Thema am Mulittouch über eine rule zu testen. Ich will mal schauen ob es so in der Art funktioniert wie "Item changed to ON" .... also als richtiger Taste und nicht als Tastschalter.
Update folgt.