Jump to content

theo

Members
  • Gesamte Inhalte

    325
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    1

Posts erstellt von theo

  1. Hab ich gesehen. Aber leider ist nicht nur das TinkerForge API im Modul, sondern auch die RapidPM Anwendung.

    Ich habe mittlerweile noch eine Anleitung gefunden, wie man Third Party Artifacts in die maven central hochladen kann:

    https://docs.sonatype.org/display/Repository/Uploading+3rd-party+Artifacts+to+The+Central+Repository

     

    @TFTeam wenn ihr nicht selbst das java Binding in die maven central einpflegen wollt, könnte ich das übernehmen.

  2. Hallo derAngler,

     

    OK, ich verstehe.

    Also ich gehe mal davon aus, dass du die Installation auf dem Pi mit dem apt-repo gemacht hast. Wenn nicht, dann empfehle ich dir das (vorher am Besten händische Installationen löschen). Die Doku dazu findest du hier:

    https://github.com/openhab/openhab/wiki/Apt-Repository

     

    Installation:

    Werde root.

    Installiere java:

    apt-get update
    apt-get install oracle-java7-jdk
    update-java-alternatives -s jdk-7-oracle-armhf
    

     

    Registiere das openHAB apt-Repository:

    echo "deb http://repository-openhab.forge.cloudbees.com/release/1.4.0/apt-repo/ /" > /etc/apt/sources.list.d/openhab.list
    apt-get update
    

     

    Installiere openHAB und das Tinkerforge Binding:

    apt-get install openhab-runtime openhab-addon-binding-tinkerforge
    

     

    Jetzt brauchst du eine openhab.cfg. Darin muss erstmal nur das Gerät konfiguriert werden, auf dem der brickd läuft. Du legst eine Datei /etc/openhab/configurations/openhab.cfg an (muss vom Benutzer openhab gelesen werden können, wie alle weiteren Dateien auch) und schreibst eine Zeile rein, in der Folgendes steht (die IP-Addresse musst du für dich passend machen):

    tinkerforge:hosts=127.0.0.1
    

     

    Nun zur items Datei /etc/openhab/configurations/items/test.items. Achtung die Benennung ist wichtig: die Erweiterung muss "items" sein, den Namen "test" musst du dann auch für die sitemap und Web-URL verwenden. In die Datei schreibst du folgende Zeilen, allerdings musst du uid=XYZ durch die uids deiner Bricklets ersetzen.

    Number Luftfeuchte                 "Luftfeuchte [%.1f %%]"  { tinkerforge="uid=XYZ" }
    Number Temperatur                 "Temperatur [%.1f Cel]"  { tinkerforge="uid=XYZ" }
    

     

    Zum Schluß noch eine sitemap Datei /etc/openhab/configurations/sitemaps/test.sitemap. Da schreibst du Folgendes rein:

    sitemap Wetter label="Tinkerforge Weather Station"
    {
      Frame {
            Text item=Luftfeuchte
            Text item=Temperatur
            }
    }
    

     

    openHAB starten:

    /etc/init.d/openhab start
    

    Beim Pi musst du durchaus einige Minuten warten bis der Server wirklich oben ist.

     

    Mit dem Browser auf die deine openHAB Seite navigieren. IP oder Rechnernamen in der URL musst du entsprechend anpassen.

    http://localhost:8080/openhab.app?sitemap=test
    

     

    Du kannst dir noch die Android oder IOS-App holen und starten.

     

    Solltest du später - was ich hoffe - einen SNAPSHOT des Bindings testen wollen, dann einfach openHAB stoppen. Dann /opt/openhab/addons/org.openhab.binding.tinkerforge* loeschen und durch das SNAPSHOT jar-File vom Download ersetzen. openHAB Server wieder starten und warten.

     

    Wenn ich nichts vergessen habe, war es das schon.

     

    Gruß,

    Theo

     

    PS: Alles was auf meinem Blog war, findest du noch ausführlicher im openHAB Wiki https://github.com/openhab/openhab/wiki/Tinkerforge-Binding . Ich bin gerade auch dabei einen neuen Blog aufzusetzen, das wird aber noch etwas dauern bis der fertig ist.

     

     

  3. 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

     

  4. 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

  5. Ich bin auf dieses bereits abgeschlossene Kickstarter Projekt gestoßen:

    Pixy (CMUcam5): a fast, easy-to-use vision sensor by Charmed Labs and Carnegie Mellon http://kck.st/1cEgPcL

     

    Es ist ein Image Sensor zum Verfolgen und Detektieren von Objekten und benötigt nicht wie Leap Motion oder Kinect einen ausgewachsenen Rechner zur Bildverarbeitung, sondern funktioniert an einem Microcontroller.

     

    Die Hardware (ich denke auch die Software) ist open source und bezahlbar.

     

    Ich denke das gäbe ein schönes "Vision Sensor Bricklet" ab. Was meint ihr?

     

    Gruß,

    Theo

     

  6. 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

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

     

  8. Kann man deine Datei auch eigentlich direkt in seinem Projekt verankern und wenn man sein Projekt baut wird zuerst deine api im lokalen Repository installiert?

    Ich kenne keine Möglichkeit wie das geht. Vermutlich willst du das auch nicht auf Dauer, da das nicht das aktuellste Java-Api ist.

     

  9. Hi,

     

    ein maven Projekt habe ich auch schon vermisst. Ich habe mir selbst eines gebaut, du findest es hier:

    https://github.com/theoweiss/TinkerForgeThings/tree/master/tinkerforge-api

     

    Einfach mit "mvn install" in dein lokales Repo installieren.

     

    Gruß,

    Theo

     

    PS:

    Schön wäre es natürlich wenn das TinkerForge Team ein maven Projekt zur Verfügung stellen würde. Ich habe uploads in die maven-central nach dieser Anleitung gemacht:

    https://docs.sonatype.org/display/Repository/Sonatype+OSS+Maven+Repository+Usage+Guide#SonatypeOSSMavenRepositoryUsageGuide-8.ReleaseIt

     

  10. 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

     

  11. Hallo photron,

     

    danke für die schnelle Reaktion. Das sieht sehr gut aus, das mit der direction-mask funktioniert jetzt wie erwartet!

     

    Ich bin gerade beim Testen für das Reconnect Handling im openHAB Binding, dafür habe ich einen Reconnect durch stoppen und starten des brickd simuliert (ich weiß, dass ist nicht das gleiche mit einer lost connection des wifi, aber einfacher zu testen). Bisher - ich möchte es nicht beschwören - waren nach dem Neustart des brickd die output ports high, wenn sie es vor dem stoppen waren. Jetzt sind alle low.

     

    -- Ich habe es gerade noch mal mit der alten Firmware versucht, da scheint das Verhalten auch schon so gewesen zu sein. Trotzdem bin ich mir nicht sicher, ob das so sein sollte? --

     

    # tinkerforge call io16-bricklet efY set-port-configuration a 0b11110011 i true

    # tinkerforge call io16-bricklet efY set-port-configuration a 0b00001100 o true

    # tinkerforge call io16-bricklet efY get-port-configuration a

    direction-mask=243

    value-mask=255

    # /etc/init.d/brickd restart

    Restarting Brick Daemon:

    Stopped process in pidfile '/var/run/brickd.pid' (pid 5607).

    Starting /usr/bin/brickd...

    # tinkerforge call io16-bricklet efY get-port-configuration a

    direction-mask=243

    value-mask=243

     

    Gruß,

    Theo

  12. Hi,

     

    was mache ich falsch, ich bekomme immer direction-mask=236?

     

    Es scheint nicht am shell-Binding zu liegen, ich konnte es mit einem simplen python und ruby Skript nachvollziehen.

     

    root@proliant:~# tinkerforge call io16-bricklet efY set-port-configuration a 0b11111111 o false

    root@proliant:~# tinkerforge call io16-bricklet efY get-port-configuration a

    direction-mask=236

    value-mask=0

    root@proliant:~# tinkerforge call io16-bricklet efY set-port-configuration a 0b00001100 o true

    root@proliant:~# tinkerforge call io16-bricklet efY get-port-configuration a

    direction-mask=236

    value-mask=12

    root@proliant:~# tinkerforge call io16-bricklet efY set-port-configuration a 0b11110011 i true

    root@proliant:~# tinkerforge call io16-bricklet efY get-port-configuration a

    direction-mask=236

    value-mask=255

    root@proliant:~# tinkerforge call io16-bricklet efY set-port-configuration a 0b11111111 o true

    root@proliant:~# tinkerforge call io16-bricklet efY get-port-configuration a

    direction-mask=236

    value-mask=255

    root@proliant:~# tinkerforge call io16-bricklet efY get-port-configuration a

    direction-mask=236

    value-mask=255

    root@proliant:~# tinkerforge call io16-bricklet efY set-port-configuration a 0b11110011 i false

    root@proliant:~# tinkerforge call io16-bricklet efY get-port-configuration a

    direction-mask=236

    value-mask=12

     

    Gruß,

    Theo

     

  13. 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

     

  14. 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

     

     

     

×
×
  • Neu erstellen...