Jump to content

topi

Members
  • Gesamte Inhalte

    13
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von topi

  1. Guten Morgen,

    bei der Beschreibung zur Tisch-Wetterstation finde ich "Für einen Standalone-Betrieb kann ein RED Brick oder ein anderes Embedded Board, wie z.B. das Raspberry Pi genutzt werden.". Ich möchte mich hier erkundigen, ob vielleicht schon jemand einen Versuch mit Raspberry Pi und der Tisch-Wetterstation gemacht hat. Insbesondere würde mich dabei interessieren welcher Raspberry Pi dabei verwendet wurde (RPi 3, Nano etc) und ob/wie der RPi in das Gehäuse untergebracht wurde. Hintergrund meiner Frage ist, dass ich mich derzeit erkundige ob ich einen Red Brick oder eben eine RPi verwenden sollte. Für die Verwendung des Red Brick gibt es ja schon Fotos und eine kleine Anleitung auf der Tinkerfoge Website.

    Vielen Dank schon mal im Voraus für den einen oder anderen Hinweis.

    Gruss,

    topi

  2. Hallo,

    zuerst  das Problem, dann das Setup und zum Schluss meine Frage.

    Wenn ich die Ausgabe des Python-Programm (weather_station.py) zu meiner Wetterstation im Terminal verfolge sehe ich im Wesentlichen dieses Bild:

    Press key to exit
    INFO:root:Weather Station: Start
    Press key to exit
    INFO:root:Barometer initialized
    INFO:root:LCD 20x4 initialized
    INFO:root:Humidity initialized
    INFO:root:Temperature initialized
    INFO:root:Write to line 2: Air Press  961.09 mb
    INFO:root:Write to line 3: Temperature 24.81 ßC
    INFO:root:Write to line 1: Humidity    58.00 %
    INFO:root:Write to line 2: Air Press  961.06 mb
    INFO:root:Write to line 1: Humidity    58.10 %
    INFO:root:Write to line 3: Temperature 24.87 ßC
    INFO:root:Write to line 2: Air Press  961.08 mb
    INFO:root:Write to line 1: Humidity    57.90 %
    INFO:root:Write to line 3: Temperature 24.81 ßC
    INFO:root:Write to line 2: Air Press  961.08 mb
    INFO:root:Write to line 3: Temperature 24.87 ßC
    INFO:root:Write to line 1: Humidity    58.00 %
    INFO:root:Write to line 2: Air Press  961.04 mb
    INFO:root:Write to line 1: Humidity    58.10 %
    INFO:root:Write to line 2: Air Press  961.08 mb
    INFO:root:Write to line 1: Humidity    58.20 %
    INFO:root:Write to line 2: Air Press  961.08 mb
    INFO:root:Write to line 3: Temperature 24.81 ßC
    INFO:root:Write to line 1: Humidity    58.00 %
    INFO:root:Write to line 2: Air Press  961.05 mb
    INFO:root:Write to line 3: Temperature 24.87 ßC
    INFO:root:Write to line 1: Humidity    58.10 %
    INFO:root:Write to line 2: Air Press  961.07 mb
    INFO:root:Write to line 3: Temperature 24.81 ßC
    INFO:root:Write to line 1: Humidity    58.30 %
    INFO:root:Write to line 2: Air Press  961.07 mb
    INFO:root:Write to line 3: Temperature 24.87 ßC
    INFO:root:Write to line 2: Air Press  961.04 mb
    INFO:root:Write to line 1: Humidity    58.20 %
    INFO:root:Write to line 3: Temperature 24.81 ßC
    INFO:root:Barometer initialized
    INFO:root:LCD 20x4 initialized
    INFO:root:Humidity initialized
    INFO:root:Temperature initialized
    INFO:root:Write to line 2: Air Press  961.06 mb
    INFO:root:Write to line 1: Humidity    58.30 %
    INFO:root:Write to line 3: Temperature 24.87 ßC
    INFO:root:Write to line 2: Air Press  961.08 mb
    ……….
    

     

    Mein Setup:

    USB-Netzteil mit 2000 mA -->Raspberry Pi 1B <–-> Master Brick (Temperature-, Humidity-, Barometer- und LCD24-Bricklet).

    Das bedeutet, dass der RasPi den MasterBrick mit Strom versorgt. Der Raspi wird so gebootet, dass an dessen zwei USB-Anschlüssen bis zu 1200 mA zur Verfügung stehen (in der config.txt die Zeil „max_usb_current=1“ ergänzen).

     

    Meine Frage:

    Die Bricklets werden alle paar Sekunden neu initialisiert. Ich frage mich, woran dies liegen kann bzw. ob dies so sein muss im gewählten Setup?

    Schliesse ich den Master Brick direkt an einen USB-Ausgang meines PCs an und sehe mir dann die Anzeige auf dem Terminal an, so wird genau zum Startup der Wetterstation einmal initialisiert und dann sehe ich nur noch die Messwerte der Sensoren.

     

    Vielen Dank für einen Tipp  im Voraus,

    topi

  3. Hallo,

    Bosch hat mit dem  BME680 einen VOC-Sensor herausgegeben. VOC=flüchtige organische Verbindungen, z.B.: Lösungsmittel und anderen chemisch-organischen Substanzen aus Böden, Möbeln, Farben etc.. Das kann zur Messung der Luftqualität in Innenräumen herangezogen werden. Neben der VOC-Messung wird auch der Luftdruck, die Luftfeuchtigkeit und -temperatur bestimmt.

    Wäre dieser Sensor etwas für die Erweiterung des Tinkerforge-Sortiments?

     

  4. Hallo Zusammen,

     

    das SenseBox-Projekt https://sensebox.de/ der Uni Münster benutzt offenbar auch den SDS011 als Feinstaubsensor-Erweiterung.

     

    Die Problematik der 8000h Betriebsdauer ist bekannt und wird zumindest bei luftdaten.info http://luftdaten.info/faq/#toggle-id-5 wie folgt abgeschwächt: "Der von uns verwendete Sensor SDS011 hat laut Datenblatt eine Lebensdauer im Dauerbetrieb von ca. 8.000 Stunden. Unsere Firmware schaltet deshalb den Sensor nur für 20 Sekunden pro Messintervall von 150 Sekunden ein. Damit ist die theoretische Lebensdauer 7,5-mal so hoch. Praktisch sollte dies für ca. 4-5 Jahre Betrieb reichen."

  5. Hallo,

    ich bin mit meinem marginalen Python-Kenntnissen ans vorläufige Ende gekommen und hoffe auf Tipps der Python-Kenner hier im Forum.

    Gegeben und funktionierend, basierend auf den Beispielen im Tinkerforge Website, ist folgender Python-Code:

    HOST = "localhost"
    PORT = 4223
    UID = "XXX" # Change XYZ to the UID of your LCD 20x4 Bricklet
    
    from tinkerforge.ip_connection import IPConnection
    from tinkerforge.bricklet_lcd_20x4 import BrickletLCD20x4
    import os
    
    # Callback function for button pressed callback
    def cb_button_pressed(button):
        print("Button Pressed: " + str(button))
        print("backlight=",lcd.is_backlight_on())
        if button == 0:
          if lcd.is_backlight_on() is True:
            lcd.backlight_off()
          else:
            lcd.backlight_on()
        if button == 3:
          os.system("sudo systemctl reboot")   
    
    
    # Callback function for button released callback
    def cb_button_released(button):
        print("Button Released: " + str(button))
    
    if __name__ == "__main__":
        ipcon = IPConnection() # Create IP connection
        lcd = BrickletLCD20x4(UID, ipcon) # Create device object
    
        ipcon.connect(HOST, PORT) # Connect to brickd
        # Don't use device before ipcon is connected
    
        # Register button pressed callback to function cb_button_pressed
        lcd.register_callback(lcd.CALLBACK_BUTTON_PRESSED, cb_button_pressed)
    
        # Register button released callback to function cb_button_released
        #lcd.register_callback(lcd.CALLBACK_BUTTON_RELEASED, cb_button_released)
    
        input("Press key to exit\n") # Use input() in Python 3
        ipcon.disconnect()
    

    Wo ich nun nicht mehr weiter weiss ist, wie kann ich für Button 3 eine funktionale Abfrage einbauen in der Art "Bitte Button 3 nochmals drücken für System Reboot!" Button 3 soll dabei innerhalb von 5 Sekunden nochmals gedrückt werden, ansonsten würde alles wieder in den Ausganszustand zurückfallen.

    Vielen Dank für hilfreiche Tipps im Voraus,

    topi

     

  6. Hallo,

    im MQTT Bereich bin ich noch eher ein Frischling und habe vermutlich konzeptionell noch etwas nicht korrekt verstanden. Daher fange ich mit dem an was in der Shell funktioniert:

    mosquitto_sub -t tinkerforge/bricklet/lcd_20x4/ohF/button_pressed

    ergibt je nach Taste die ich am LCD-Dispaly drücke:

    {"1":false,"_timestamp":1503859070.435154,"2":false,"0":false,"3":false}
    {"1":false,"_timestamp":1503859491.0309947,"2":false,"0":false,"3":true}
    {"1":false,"_timestamp":1503859491.3909144,"2":false,"0":false,"3":false}
    {"1":false,"_timestamp":1503859493.2529447,"2":true,"0":false,"3":false}
    {"1":false,"_timestamp":1503859493.5261495,"2":false,"0":false,"3":false}
    

    was ich so erwarte habe.

    Hingegen funktioniert nicht:

    mosquitto_sub -t tinkerforge/bricklet/lcd_20x4/ohF/callback_button_pressed

    Hier würde ich, je nachdem welche Taste ich drücke, eine "0", "1", ...,"3" als Antwort erwarten. Nur, die Shell zeigt leider gar nichts an.

    Ich denke ich habe mit der Callback Funktion etwas missverstanden und frage daher, was ich im Mosquitto-Aufruf ändern muss, damit ich die gewünschte Antwort bekomme.

     

    Danke im Voraus,

    topi

     

     

  7. Vielen Dank sihui für die klasse Anleitung!

    Das snapshot .jar entsprechend Deiner Anleitung eingebaut und das LCD Display funktioniert tadellos, zeigt alle Wetterwerte an wie erwartet  :)

    Abweichend von Deiner Anleitung musste ich eine einzige Änderung vornehmen. Das tinkerfoge-Binding wird nicht im PaperUI angezeigt, da es noch ein OpenHab 1.x Binding ist. Es muss daher manuell deinstalliert werden:

    - OpenHab2 Service stoppen

    - in die Karaf Konsole wechseln

    - bundle:list

    - ID des tinkerforge Bundles suchen (bei mir verbarg es sich hinter der Bezeichnung „Model Model“

    - bundle:stop <ID>

    - bundle:uninstall <ID>

    - bundle:list und verifizieren, dass das bisherige tinkerfoge Bundle nicht mehr vorhanden ist

    - weiter verfahren, wie Du es beschreibst.

     

  8. Hallo Theo,

    habe nun die aktuelle OpenHab 2.0.0-1 Version auf einem Raspberry Pi zusammen mit der TinkerForge Wetterstation in Betrieb nehmen wollen. Das TinkerForge Binding weisst die Version 1.9.0 auf. Ich habe mich dabei sklavisch  (ausser dem host und den UIDs) an Deine Beipielkonfiguration unter https://github.com/theoweiss/openhab2-tinkerforge-configuration-examples/tree/master/weatherstation  gehalten (ohne AnalogOutV2-Konfiguration).

    Das Ergebnis: Es funktioniert auf der Website aber das LCD Display zeigt keinerlei Messwerte an. Das einzige das ich dort machen kann ist das LCD-Backlight ein- bzw. auszuschalten. 

    Möglicherweise relevante Einträge im openhab.log:

    2017-05-27 21:13:05.232 [ERROR] [kerforge.internal.TinkerforgeBinding] - COMMAND no tinkerforge device found for command for item uid: ofH subId: null
    2017-05-27 21:13:05.152 [ERROR] [kerforge.internal.TinkerforgeBinding] - COMMAND no tinkerforge device found for command for item uid: ofH subId: null
    2017-05-27 21:13:05.408 [ERROR] [org.quartz.core.ErrorLogger         ] - Job (DEFAULT.2017-05-27T21:13:03.756+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | {
    2017-05-27 21:13:05.465 [ERROR] [kerforge.internal.TinkerforgeBinding] - COMMAND no tinkerforge device found for command for item uid: ofH subId: null
    2017-05-27 21:13:05.670 [ERROR] [kerforge.internal.TinkerforgeBinding] - COMMAND no tinkerforge device found for command for item uid: ofH subId: null
    2017-05-27 21:13:05.687 [ERROR] [kerforge.internal.TinkerforgeBinding] - COMMAND no tinkerforge device found for command for item uid: ofH subId: null
    2017-05-27 21:13:07.619 [ERROR] [kerforge.internal.TinkerforgeBinding] - COMMAND no tinkerforge device found for command for item uid: ofH subId: null
    2017-05-27 21:13:07.993 [ERROR] [kerforge.internal.TinkerforgeBinding] - COMMAND no tinkerforge device found for command for item uid: ofH subId: null
    2017-05-27 21:13:08.484 [ERROR] [kerforge.internal.TinkerforgeBinding] - COMMAND no tinkerforge device found for command for item uid: ofH subId: null
    

     

     

    sowie:

    2017-05-27 21:31:13.232 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/TF_LCD] {bridgemarker=true, item=TF_LCD, command=TFNUM<113>49.7} | {org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService}={event.topics=openhab/command/*, service.pid=org.openhab.tinkerforge, component.name=org.openhab.binding.tinkerforge.binding, component.id=0, service.id=286, service.bundleid=183, service.scope=bundle} | Bundle(org.openhab.binding.tinkerforge_1.9.0 [183])]
    at org.openhab.binding.tinkerforge.internal.model.impl.MBrickletLCD20x4Impl.write(MBrickletLCD20x4Impl.java:1035)[183:org.openhab.binding.tinkerforge:1.9.0]
    at org.openhab.binding.tinkerforge.internal.TinkerforgeBinding.internalReceiveCommand(TinkerforgeBinding.java:787)[183:org.openhab.binding.tinkerforge:1.9.0]
    2017-05-27 21:31:13.292 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/TF_LCD] {bridgemarker=true, item=TF_LCD, command=TFNUM<213> 960} | {org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService}={event.topics=openhab/command/*, service.pid=org.openhab.tinkerforge, component.name=org.openhab.binding.tinkerforge.binding, component.id=0, service.id=286, service.bundleid=183, service.scope=bundle} | Bundle(org.openhab.binding.tinkerforge_1.9.0 [183])]
    at org.openhab.binding.tinkerforge.internal.model.impl.MBrickletLCD20x4Impl.write(MBrickletLCD20x4Impl.java:1035)[183:org.openhab.binding.tinkerforge:1.9.0]
    at org.openhab.binding.tinkerforge.internal.TinkerforgeBinding.internalReceiveCommand(TinkerforgeBinding.java:787)[183:org.openhab.binding.tinkerforge:1.9.0]
    2017-05-27 21:31:13.316 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/TF_LCD] {bridgemarker=true, item=TF_LCD, command=TFNUM<013>25.0} | {org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService}={event.topics=openhab/command/*, service.pid=org.openhab.tinkerforge, component.name=org.openhab.binding.tinkerforge.binding, component.id=0, service.id=286, service.bundleid=183, service.scope=bundle} | Bundle(org.openhab.binding.tinkerforge_1.9.0 [183])]
    at org.openhab.binding.tinkerforge.internal.model.impl.MBrickletLCD20x4Impl.write(MBrickletLCD20x4Impl.java:1035)[183:org.openhab.binding.tinkerforge:1.9.0]
    at org.openhab.binding.tinkerforge.internal.TinkerforgeBinding.internalReceiveCommand(TinkerforgeBinding.java:787)[183:org.openhab.binding.tinkerforge:1.9.0]
    2017-05-27 21:31:22.575 [WARN ] [org.apache.karaf.services.eventadmin] - EventAdmin: Exception during event dispatch [org.osgi.service.event.Event [topic=openhab/command/TF_LCD] {bridgemarker=true, item=TF_LCD, command=TFNUM<113>50.2} | {org.osgi.service.event.EventHandler, org.osgi.service.cm.ManagedService}={event.topics=openhab/command/*, service.pid=org.openhab.tinkerforge, component.name=org.openhab.binding.tinkerforge.binding, component.id=0, service.id=286, service.bundleid=183, service.scope=bundle} | Bundle(org.openhab.binding.tinkerforge_1.9.0 [183])]
    at org.openhab.binding.tinkerforge.internal.model.impl.MBrickletLCD20x4Impl.write(MBrickletLCD20x4Impl.java:1035)[183:org.openhab.binding.tinkerforge:1.9.0]
    at org.openhab.binding.tinkerforge.internal.TinkerforgeBinding.internalReceiveCommand(TinkerforgeBinding.java:787)[183:org.openhab.binding.tinkerforge:1.9.0]
    

     

    Eventuell ist es ja das gleiche Problem wie bei MacDuff hier im thread. Allerdings, wie installiere ich das .jar bzw. woher bekomme ich einen passenden Snapshot und wie installiere ich ihn?

    Danke für Deine Hilfe im Vorraus,

    topi

  9. Guten Abend,

     

    zuerst einmal vielen Dank an Theo und alle anderen die mithalfen die Verbindung von TF zu openHAB so glatt und einfach hinzubekommen.

     

    Ich habe die TF Wetterstation plus externes Temperatur-Bricklet gebaut,. Zur Steuerung dient ein Raspberry Pi Modell B mit Raspbian und openHAB 1.5.1. Der Raspberry ist via Ethernet ins heimische LAN eingebunden.

     

    Konfiguriert habe ich die Dinge entsprechend der Anleitung von Theo in diesem Thread und es verlief glatt bis ich versuchte das LCD 20×4 Bricklet (LCD, backlight and 4 buttons) via einer rules-Datei zu steuern. Von da an holpert es und das ist der Grund, warum ich hier gerne um Hilfe bitten würde. Zur Illustration habe ich meine sitemap, rules und items  Datei dazugelegt. Die rules-Datei stammt aus „Documentation of the TinkerForge binding bundle“ auf GitHub und ich habe versucht diese anzupassen.

     

    Die Fragen sehen so aus:

    [*]Das LCD-Display schaltet sich nach dem Hochfahren des Raspberry und von openHab einfach von alleine ein – soll das so sein?

    [*] Erstmalig Ausschalten lässt sich das Display erst nach zweimaligem Drücken von Button 0 am Display

    [*] Button 1-3 haben keine ersichtliche Funktion bzw. zeigen keinen sichtbaren Effekt wenn man sie drückt

    [*] Die Anzeige der Werte (Luftfruck, Luftfeuchte, Temperatur, Helligkeit) auf dem Display versuchte ich anzupassen, allerdings ist dies insbesondere bei der Luftdruckanzeige nicht gut gelungen, die Zahlen für den Luftdruck beginnen sich hintereinander zu reihen

    [*] Beim Herunterfahren des System (openHAB Service stoppen oder  auch beim einfachen Ausschalten des Raspberry Pi bleibt die LCD Anzeige in eingeschaltetem Zustand einfach stehen. Ich würde das Ausschalten der Anzeige erwarten.

     

    Ja, soviel einmal zu meinen Fragen. Vielleicht kann mir ja jemand mit einem Tipp zum einem oder anderen weiterhelfen?

     

    Beste Grüsse,

    topi

     

    wetter.items

    tinkerforge_lcd-display.rules

    wetter.sitemap

×
×
  • Neu erstellen...