Jump to content

RouvenE

Members
  • Gesamte Inhalte

    62
  • Benutzer seit

  • Letzter Besuch

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

RouvenE's Achievements

Newbie

Newbie (1/14)

0

Reputation in der Community

  1. Hallo, Die Mails vom Forum scheinen im Spamfolder zu landen. Die Wetterstation ist noch zu haben.
  2. RouvenE

    Wetterstation (Verkauf)

    Hallo, Mangels Zeit für die Einarbeitung verkaufe ich meine Wetterstation: - Weather Station Starter Kit in transparent - Step down power supply - DC Jack Adapter Die Wetterstation wurde mit einem Raspberry Pi autark betrieben. EUR 90 zzgl. Versand stelle ich mir vor... Bei Interesse gerne melden.
  3. Fraglich ist dann aber, ob Master Brick, Red Brick und Ethernet Bricklet aufeinander in die Tinkerforge Wetterstation passen.
  4. Kein Geblitze... Kein Wärmeproblem... Der RPi hängt frei (war zuvor im Tinkergehäuse problemlos verbaut). Das ist doch merkwürdig. Würde sich etwas positiv ändern, wenn ich auf 12 V hochgehe?
  5. Hallo, Derzeit überlege ich (immer noch), den RED Brick einzusetzen... Ich möchte den Brick gerne via Netzwerk ansprechen, nicht über USB. Würde ich einen WiFi-Adapter am USB-Port betreiben, so gehe ich davon aus, dass dieser ständig in strahlender Verwendung wäre, wenn auf dem Red Brick beispielsweise OpenHAB laufen lassen würde. Die Ethernet-Extension hingegen empfinde ich mit Euro 40 als eher zu teuer. Weiß vielleicht jemand, ob es ggf bald eine RED Brick mit Ethernetport gibt? Gibt es anderenfalls ggf. einen unterstützten USB-Ethernet-Adapter? Kann da jemand etwas zu sagen?
  6. Hallo, Seit einiger Zeit betreibe ich die TF-Wetterstation mit dem Beispielsscript (Python) mit dem Raspberry Pi 2. Gespeist wird das System durch die lt. TF-Wiki vorgeschlagene Kombination mit DC Jack Adapter und Step Down. Nun habe ich dem Raspberry eine unterbrechungsfreie Stromversorgng spendiert, die wiederum vom Raspberry gespeist wird. Der Raspberry friert nun nach einigen Stunden Laufzeit das Display der Wetterstation ein und ist auch komplett nicht mehr (über ssh etc) ansprechbar. Kann es sein, dass die Stromversorgung (MW-Netzteil mit 3A am Ausgang und derzeit auf 9V eingestellt) das Problem darstellt? Mich wundert dann nur, dass der RPi bis dahin 10-20 Stunden problemlos lief. Vielleicht hat ja jemand eine Idee, warum das Gesamtsystem nach Stunden jeweils den Dienst versagt...
  7. Es ist merkwürdig... habe es angepasst. Jedoch, der RPi friert zur Schalt-Uhrzeit (22 Uhr) komplett ein und reagiert nicht mehr. Habe eine unterbrechungsfreie Stromversorgung angeschlossen, die den RPi herunterfährt, wenn ich den Strom trenne (da der RPi ja nicht mehr erreichbar ist). Ggf. sagt das ja jemandem etwas, dass dieses noch agiert, wobei ich nicht genau sagen kann, ob es dann tatsächlich den RPi noch herunterfahren kann oder dann nach eingestellten 90 Sekunden simpel den Strom trennt.
  8. Hi, Ich habe die Einrückungen korrigiert... ich bin dermaßen wenig daheim, dass ich keine Zeit finde, mir Python anzueignen, was sich ändern soll. Derzeit möchte ich einfach nur das Display zu bestimmten Uhrzeiten schalten, damit es daheim bei der Familie nicht nervt. Die Einrückungen haben funktioniert, das Script läuft. Allerdings, zur angegebenen Ausschaltzeit läuft der Pi weiter, das Display friert jedoch ein und wacht auch nicht mehr auf. Den folgenden Code habe ich ohne Besserung geändert: lcd.backlight_off() in self.lcd.backlight_off() Vielleicht weiß ja jemand den entscheidenden Hinweis um dieses Problemchen zu beheben,
  9. if __name__ == "__main__": log.info('Weather Station: Start') weather_station = WeatherStation() if sys.version_info < (3, 0): input = raw_input # Compatibility for Python 2.x import time while 1: ts = time.localtime() if ts.tm_hour == 22 and ts.tm_minute == 0: lcd.backlight_off() if ts.tm_hour == 6 and ts.tm_minute == 0: lcd.backlight_on() time.sleep(50) if weather_station.ipcon != None: weather_station.ipcon.disconnect() log.info('Weather Station: End') Habe es nun dort eingefügt... Nun startet das LCD tatsächlich beim Start des RPi und zeigt Werte an, jedoch unter einer Minute, denn dann friert das Display ein, während der RPi normal weiter läuft. EDIT: Nein, das Display läuft weiter, passt die Werte anfangs sekündlich an, dann scheinbar 1 x / Minute.
  10. Ok, den Backlicht-Schaltbefehl bekomme ich hin... Ist es denn so zu coden, dass das Problem im anderen Thread behoben wird und das Script alle paar Minuten aufwacht ? Würde heißen, wenn _nach_ 22 Uhr aus, sonst ab 6:xx Uhr an. Aber, der Code würde nicht ständig schalten ? Derzeit schaltet es nur, wenn es genau 22 Uhr oder 6 Uhr ist (wozu aber ständig abgefragt wird).
  11. #!/usr/bin/env python # -*- coding: utf-8 -*- import socket import sys import time import math import logging as log log.basicConfig(level=log.INFO) from tinkerforge.ip_connection import IPConnection from tinkerforge.ip_connection import Error from tinkerforge.brick_master import Master from tinkerforge.bricklet_lcd_20x4 import LCD20x4 from tinkerforge.bricklet_ambient_light import AmbientLight from tinkerforge.bricklet_ambient_light_v2 import AmbientLightV2 from tinkerforge.bricklet_humidity import Humidity from tinkerforge.bricklet_barometer import Barometer class WeatherStation: HOST = "localhost" PORT = 4223 ipcon = None lcd = None al = None al_v2 = None hum = None baro = None def __init__(self): self.ipcon = IPConnection() while True: try: self.ipcon.connect(WeatherStation.HOST, WeatherStation.PORT) break except Error as e: log.error('Connection Error: ' + str(e.description)) time.sleep(1) except socket.error as e: log.error('Socket error: ' + str(e)) time.sleep(1) self.ipcon.register_callback(IPConnection.CALLBACK_ENUMERATE, self.cb_enumerate) self.ipcon.register_callback(IPConnection.CALLBACK_CONNECTED, self.cb_connected) while True: try: self.ipcon.enumerate() break except Error as e: log.error('Enumerate Error: ' + str(e.description)) time.sleep(1) def cb_illuminance(self, illuminance): if self.lcd is not None: text = 'Illuminanc %6.2f lx' % (illuminance/10.0) self.lcd.write_line(0, 0, text) log.info('Write to line 0: ' + text) def cb_illuminance_v2(self, illuminance): if self.lcd is not None: text = 'Illumina %8.2f lx' % (illuminance/100.0) self.lcd.write_line(0, 0, text) log.info('Write to line 0: ' + text) def cb_humidity(self, humidity): if self.lcd is not None: text = 'Humidity %6.2f %%' % (humidity/10.0) self.lcd.write_line(1, 0, text) log.info('Write to line 1: ' + text) def cb_air_pressure(self, air_pressure): if self.lcd is not None: text = 'Air Press %7.2f mb' % (air_pressure/1000.0) self.lcd.write_line(2, 0, text) log.info('Write to line 2: ' + text) try: temperature = self.baro.get_chip_temperature() except Error as e: log.error('Could not get temperature: ' + str(e.description)) return # \xDF == ° on LCD 20x4 charset text = 'Temperature %5.2f \xDFC' % (temperature/100.0) self.lcd.write_line(3, 0, text) log.info('Write to line 3: ' + text.replace('\xDF', '°')) def cb_enumerate(self, uid, connected_uid, position, hardware_version, firmware_version, device_identifier, enumeration_type): if enumeration_type == IPConnection.ENUMERATION_TYPE_CONNECTED or \ enumeration_type == IPConnection.ENUMERATION_TYPE_AVAILABLE: if device_identifier == LCD20x4.DEVICE_IDENTIFIER: try: self.lcd = LCD20x4(uid, self.ipcon) self.lcd.clear_display() self.lcd.backlight_on() log.info('LCD 20x4 initialized') except Error as e: log.error('LCD 20x4 init failed: ' + str(e.description)) self.lcd = None elif device_identifier == AmbientLight.DEVICE_IDENTIFIER: try: self.al = AmbientLight(uid, self.ipcon) self.al.set_illuminance_callback_period(1000) self.al.register_callback(self.al.CALLBACK_ILLUMINANCE, self.cb_illuminance) log.info('Ambient Light initialized') except Error as e: log.error('Ambient Light init failed: ' + str(e.description)) self.al = None elif device_identifier == AmbientLightV2.DEVICE_IDENTIFIER: try: self.al_v2 = AmbientLightV2(uid, self.ipcon) self.al_v2.set_configuration(AmbientLightV2.ILLUMINANCE_RANGE_64000LUX, AmbientLightV2.INTEGRATION_TIME_200MS) self.al_v2.set_illuminance_callback_period(1000) self.al_v2.register_callback(self.al_v2.CALLBACK_ILLUMINANCE, self.cb_illuminance_v2) log.info('Ambient Light 2.0 initialized') except Error as e: log.error('Ambient Light 2.0 init failed: ' + str(e.description)) self.al = None elif device_identifier == Humidity.DEVICE_IDENTIFIER: try: self.hum = Humidity(uid, self.ipcon) self.hum.set_humidity_callback_period(1000) self.hum.register_callback(self.hum.CALLBACK_HUMIDITY, self.cb_humidity) log.info('Humidity initialized') except Error as e: log.error('Humidity init failed: ' + str(e.description)) self.hum = None elif device_identifier == Barometer.DEVICE_IDENTIFIER: try: self.baro = Barometer(uid, self.ipcon) self.baro.set_air_pressure_callback_period(1000) self.baro.register_callback(self.baro.CALLBACK_AIR_PRESSURE, self.cb_air_pressure) log.info('Barometer initialized') except Error as e: log.error('Barometer init failed: ' + str(e.description)) self.baro = None def cb_connected(self, connected_reason): if connected_reason == IPConnection.CONNECT_REASON_AUTO_RECONNECT: log.info('Auto Reconnect') while True: try: self.ipcon.enumerate() break except Error as e: log.error('Enumerate Error: ' + str(e.description)) time.sleep(1) if __name__ == "__main__": log.info('Weather Station: Start') weather_station = WeatherStation() if sys.version_info < (3, 0): input = raw_input # Compatibility for Python 2.x input('Press key to exit\n') if weather_station.ipcon != None: weather_station.ipcon.disconnect() log.info('Weather Station: End') An welcher Stelle würdest Du es einfügen ? Ich frage mich, warum das alles unter Raspbian Wheezy nicht notwendig war. Das lief problemlos... Wenn es hilft, wäre das ja super.
  12. Hallo, Momentan werkelt mein Tinkerforge-Wetterstations-Kit in Zusammenarbeit mit einem Raspberry Pi 2 und dem Standard-Wetterstations-Beispielcode. Noch immer nicht habe ich Zeit finden können, endlich Python zu lernen. Was ich momentan einfach nur ändern möchte, ist, dass die Wetterstation nachts ab 22 Uhr bis morgens 6 Uhr das LCD-Backlight ausschaltet... Im Grunde müsste man doch in Python eine Uhrzeitabfrage einfügen können, die die Zeit prüft und das Backlight eben dann aus- und 1x/Tag wieder einschaltet. Oder ist ggf. ein cronjob machbar, der das Script nachts beendet und morgens startet ? Aber dann würde das Display eingeschaltet bleiben. Vielleicht hat ja jemand eine kurze Idee, die ich übergangsweise schnell nutzen könnte. Bis ich soweit bin, hat meine Frau sich zahlreich über das ständig leuchtende Display zu oft beschwert.
  13. Ich liste mal die Logdatei auf... INFO:root:Weather Station: Start Press key to exit Traceback (most recent call last): File "/home/pi/tinkerforge/wetter.py", line 167, in <module> input('Press key to exit\n') EOFError: EOF when reading a line Habe ich in rc.local eingebaut... Nutze ich statt dem sudo-crontab doch den Benutzer-crontab, so startet das Skript auch nicht. Muss ich Pfade setzen ? Wenn ja, wie ?
  14. Hi, Derzeit betreibe ich die Tinkerforge-Wetterstation per Raspberry Pi 2. Nun habe ich das System neu aufgesetzt, dabei diesmal aber statt Rapsbian Wheezy das neuere Raspbian Jessie hergenommen. Brick/d/v sind installiert. Starte ich "python /home/pi/tinkerforge/wetter.py" (Wetterstation-Standard-Beispiels-Script), so funktioniert alles wunderbar. Um nun das Skript beim Start des RPi zu laden, habe ich zwei Varianten getestet (was zuvor unter Wheezy tadellos funktionierte): 1) sudo crontab -e, dort eingetragen: @reboot /usr/bin/python /home/pi/tinkerforge/wetter.py 2) sudo nano /etc/rc.local, dort eingetragen: python /home/pi/tinkerforge/wetter.py & Obwohl ich mit selben Befehlen das Script starten kann, funktioniert nicht der Autostart mit obigen Lösungswegen... Ein User eines anderen Forums hat dies getestet und folgendes festgestellt: "/usr/log/brickd.log[script]2015-10-10 12:02:44.221968 <I> <network.c:373> Added new client (N: 127.0.0.1:60812, T: plain-socket, H: 17, A: disabled) 2015-10-10 12:02:44.306278 <I> <client.c:220> Client (N: 127.0.0.1:60812, T: plain-socket, H: 17, A: disabled) disconnected by peer[/script]" Mir ist absolut nicht klar, warum sich a) das Skript manuell starten lässt, nicht aber automatisch und b) alles unter Raspbian Wheezy problemlos funktionierte... Weiß jemand Rat ?
×
×
  • Neu erstellen...