Jump to content

saschakp

Members
  • Gesamte Inhalte

    27
  • Benutzer seit

  • Letzter Besuch

saschakp's Achievements

Newbie

Newbie (1/14)

0

Reputation in der Community

  1. Hallo, da wir ein Haus gekauft haben wo noch eine ÖL Heizung drin ist, würde ich gerne den ÖL Verbauch messen, dazu würde ich das Ambient Light Bricklet verwenden und dieses auf die Kontrollleuchte vom Brenner Kleben. Jetzt meine Frage, wie erfasse ich die Zeit die der Brenner an ist und die Menge ÖL die er Verbraucht. Düse ist 0,5 USgal/h = 1.89l/h, ich muss die Zeit erfassen wo die Statusleuchte an ist und dieses dann in eine Datenbank schreiben. Am besten mit RRDTool anzeigen lassen in Stunde/Tag/Woche/Monat Wie schreibe ich das in Python? Mir fehlt gerade der Ansatz, wie ich das Programmiere. Vieleicht könnt Ihr mir ja einen Tipp geben. lg Sascha
  2. danke für die Antwort, habe jetzt den Übeltäter gefunden, ein Temperatur Bricklet. Irgendwas hat den zum Absturz gebracht, alles lief 6 Monate durch, es wurden alle 5 min Werte abgefragt per Python und in eine Datenbank geschrieben. Seit ich OpenHab verwendet habe stürzte der ganze Stack ab. Habe jetzt alle mal vom Master abgezogen und durchgetestet. Jetzt läuft alles durch ohne den Temperatur Bricklet. lg Sascha
  3. Anhängen meine ich mit das es nicht mehr ansprechbar ist, im WLAN nicht mehr zu finden und per BrickV nicht ansprechbar. Habe verschiede Master versucht Ver. 1.0, 2.0 und 2.1 und alle mit aktuellen Firmwares. Läuft seitdem ich OpenHab deaktiviert habe seit einem Tag durch. Es hängt ein Barometer, Remote und ein Temperatur Bricklet an Master. lg Sascha
  4. saschakp

    OpenHab und disconnect

    Hallo, haben folgendes Problem: Mein Masterbrick mit Wifi hängt sich immer wieder auf wenn ich OpenHab am laufen habe und er damit verbunden ist. Habe noch ein Masterbrick der direkt (USB) am Raspberry angeschlossen ist und auch von OpenHab angefragt wird, dieser ist noch nicht abgestürzt. Anbei ein Auszug aus der openhab.cfg tinkerforge:hosts=192.168.2.156 192.168.2.2 tinkerforge:rs1.uid=jL7 tinkerforge:rs1.type=bricklet_remote_switch tinkerforge:rs1.typeADevices=rslr1 rslr2 rslr4 rslr8 tinkerforge:rs1.typeBDevices=kitchen tinkerforge:rs1.typeCDevices=floor tinkerforge:rs_living_room.uid=jL7 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=1 tinkerforge:rs_living_room2.uid=jL7 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=2 tinkerforge:rs_living_room4.uid=jL7 tinkerforge:rs_living_room4.subid=rslr4 tinkerforge:rs_living_room4.type=remote_switch_a tinkerforge:rs_living_room4.houseCode=31 tinkerforge:rs_living_room4.receiverCode=4 tinkerforge:rs_living_room8.uid=jL7 tinkerforge:rs_living_room8.subid=rslr8 tinkerforge:rs_living_room8.type=remote_switch_a tinkerforge:rs_living_room8.houseCode=31 tinkerforge:rs_living_room8.receiverCode=8 lg Sascha
  5. Bin auch am überlegen wie mir mein Briefkasten mitteilt das Post da ist. Da der Briefkasten 2 Etagen weiter unten ist, wollte ich die Funkelektronik und Empfänger einer Funkklingel nutzen und dann ein Digital IN Bricklet zu nutzen. Unten dachte ich an eine Lichtschranke. lg Sascha
  6. Sorry war mein Fehler, mußte OpenHab stoppen und neu starten. Echt peinlich, danke für die Hilfe. OpenHab ist echt interessant. lg Sascha Schönes Wochenende
  7. Danke für die Antwort habe es so eingetragen: tinkerforge:hosts=192.168.1.101 192.168.1.102 leider klappt das nicht. lg Sascha
  8. Hallo zusammen, gibt es die Möglichkeit bei OpenHab mehrere Masterbricks ab zu fragen? In der openhab.cfg kann ich ja nur eine IP eintragen. Habe im Flur ein Display, 2 Sensoren über LAN und im Wohnzimmer 3 Sensoren, Remote Switch per WLAN, möchte die aber gerne per OpenHab auslesen steuern. Jemand eine Idee ob und wie das geht? lg Sascha
  9. Also mache ich eine Tabelle mit Uhrzeiten: Zeit: 09:00 09:15 09:30 09:45 etc. Schalter 1: AN AUS Schalter 2: AN AUS Habe aber noch kein Ansatzpunkt wie ich das Script schreibe. Mir fehlt da im Moment noch die Phantasie. lg Sascha
  10. Möchte gerne Funksteckdosen zeitgesteuert schalten. Dazu möchte ich in einer Datenbank bis zu vier Schaltzeiten hinterlegen. z.b. Steckdose 1: AN 10:00 AUS 10:15 / AN 14:00 AUS 14:15 etc ...... wie frage ich das mit einem CronJob ab? Dachte das alle 5 min ein Python oder PHP Script gestartet wird um zu schauen ob jetzt was geschaltet werden soll. lg Sascha
  11. Lernen durch schmerz So sollte es jetzt laufen: ... ... if __name__ == "__main__": while True: ipcon1 = IPConnection() # Create IP connection ipcon2 = IPConnection() # Create IP connection lcd = LCD20x4(UID_L, ipcon1) # Create device object b = Barometer(UID_B, ipcon2) # Create device object temp1 = Temperature(UID_T1, ipcon2) temp2 = Temperature(UID_T2, ipcon1) al = AmbientLight(UID_A, ipcon1) # Create device object h = Humidity(UID_F, ipcon2) # Create device object master = Master(UID_M, ipcon2) # Create device object ipcon1.connect(HOST1, PORT) # Connect to brickd ipcon2.connect(HOST2, PORT) ... ... "while True:" muss richtig eingerückt sein und der rest darunter auch. Ohh mann war ich dämlich. lg Sascha p.s. schöne Ostern.
  12. Hey, habe gerade festgestellt das das Script doch nicht so 100% funktioniert. Es beendet sich mit einem Timeout. Dieser Code hier hat ja auch nicht funktioniert, da er zwar durchläuft, aber die Werte nicht aktualisieren. Hast du eine Idee? Habe einen Mäster per WLAN im Esszimmer (Temp, Baro, Luft) Ein Master hängt im Flur (LCD, Temp, Licht) Wahrscheinlich wäre es mit der CallBack Funktion besser, aber das habe ich noch nicht hinbekommen, das er mehrere Master abfragt und die dann noch in das LCD schreibt und dann noch verschiedene Buttons abfragt. ##!/usr/bin/env python # -*- coding: utf-8 -*- import socket import sys import time import math import os HOST1 = "192.168.2.157" # MasterBrick Flur mit Ethernet HOST2 = "192.168.2.156" # MasterBrick Esszimmer mit Wireless LAN PORT = 4223 # Port von den Bricks UID_L = "9LY" # UID_B = "jXQ" #Barometer inkl. Temperatur UID_A = "jxV" UID_M = "68USSm" #MasterBrick 1 UID_T1 = "Temp1" # Temperatur Aussen UID_T2 = "dUj" # Temperatur Flur UID_F = "ka6" # Luftfeuchte from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_lcd_20x4 import LCD20x4 from tinkerforge.bricklet_barometer import Barometer from tinkerforge.bricklet_ambient_light import AmbientLight from tinkerforge.brick_master import Master from tinkerforge.bricklet_temperature import Temperature from tinkerforge.bricklet_humidity import Humidity if __name__ == "__main__": ipcon1 = IPConnection() ipcon2 = IPConnection() lcd = LCD20x4(UID_L, ipcon1) b = Barometer(UID_B, ipcon2) temp1 = Temperature(UID_T1, ipcon2) temp2 = Temperature(UID_T2, ipcon1) al = AmbientLight(UID_A, ipcon1) h = Humidity(UID_F, ipcon2) master = Master(UID_M, ipcon2) ipcon1.connect(HOST1, PORT) ipcon2.connect(HOST2, PORT) lcd.backlight_on() # Don't use device before ipcon is connected air_pressure = b.get_air_pressure()/1000.0 altitude = b.get_altitude()/100.0 illuminance = al.get_illuminance()/10.0 bartemp = b.get_chip_temperature()/100.0 esszimm = temp1.get_temperature()/100.0 flur = temp2.get_temperature()/100.0 voltage = master.get_stack_voltage() current = master.get_stack_current() wifi = master.get_wifi_configuration() wifistatus = master.get_wifi_status() wifipower = master.get_wifi_power_mode() wifihost = master.get_wifi_hostname() usbvoltage = master.get_usb_voltage() masterid = master.get_identity() feuchte = h.get_humidity()/10.0 lcd.backlight_on() os.system('clear') while True: # "Seite 1" lcd.clear_display() lcd.write_line(0, 0, 'Aussen: ' + str(esszimm) + '') lcd.write_line(0, 13, ' \xdfC') lcd.write_line(1, 0, ' Buero: ' + str(21.82) + '') lcd.write_line(1, 13, ' \xdfC') lcd.write_line(2, 0, ' Flur: ' + str(flur) + '') lcd.write_line(2, 13, ' \xdfC') lcd.write_line(3, 0, ' EssZi: ' + str(bartemp) + '') lcd.write_line(3, 13, ' \xdfC') time.sleep(10) # "Seite 2" lcd.clear_display() lcd.write_line(0, 0, 'Luftdr.: ' + str(air_pressure) + '') lcd.write_line(0, 15, ' mbr') lcd.write_line(1, 0, 'Feuchte: ' + str(feuchte) + '') lcd.write_line(1, 15, ' %') lcd.write_line(2, 0, ' Licht: ' + str(illuminance) + '') lcd.write_line(2, 15, ' Lux') lcd.write_line(3, 0, ' ' + str() + '') lcd.write_line(3, 13, ' ') time.sleep(10) lg Sascha
  13. Habe die Lösung: ... ... from tinkerforge.bricklet_temperature import Temperature from tinkerforge.bricklet_humidity import Humidity def restart_program(): python = sys.executable os.execl(python, python, * sys.argv) if __name__ == "__main__": ipcon1 = IPConnection() # Create IP connection ipcon2 = IPConnection() # Create IP connection ... ... ... ... restart_program() # Skript neustarten lg Sascha
  14. Das mit den Seitenwechsel klappt ja ganz gut, habe es auch hinbekommen das er Werte von verschiedenen Bricks anzeigt. Nur er läd die Werte nicht neu, wenn ich das Script starte holt er sich die Werte und dann bleiben die bestehen. Wie muss ich das mit der schleife machen damit er sich die werte jedesmal neu holt bzw aktualisiert? ##!/usr/bin/env python # -*- coding: utf-8 -*- import socket import sys import time import math import os HOST1 = "192.168.2.157" # MasterBrick Flur mit Ethernet HOST2 = "192.168.2.156" # MasterBrick Esszimmer mit Wireless LAN PORT = 4223 # Port von den Bricks UID_L = "9LY" # UID_B = "jXQ" #Barometer inkl. Temperatur UID_A = "jxV" UID_M = "68USSm" #MasterBrick 1 UID_T1 = "Temp1" # Temperatur Aussen UID_T2 = "dUj" # Temperatur Flur UID_F = "ka6" # Luftfeuchte from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_lcd_20x4 import LCD20x4 from tinkerforge.bricklet_barometer import Barometer from tinkerforge.bricklet_ambient_light import AmbientLight from tinkerforge.brick_master import Master from tinkerforge.bricklet_temperature import Temperature from tinkerforge.bricklet_humidity import Humidity if __name__ == "__main__": ipcon1 = IPConnection() ipcon2 = IPConnection() lcd = LCD20x4(UID_L, ipcon1) b = Barometer(UID_B, ipcon2) temp1 = Temperature(UID_T1, ipcon2) temp2 = Temperature(UID_T2, ipcon1) al = AmbientLight(UID_A, ipcon1) h = Humidity(UID_F, ipcon2) master = Master(UID_M, ipcon2) ipcon1.connect(HOST1, PORT) ipcon2.connect(HOST2, PORT) lcd.backlight_on() # Don't use device before ipcon is connected air_pressure = b.get_air_pressure()/1000.0 altitude = b.get_altitude()/100.0 illuminance = al.get_illuminance()/10.0 bartemp = b.get_chip_temperature()/100.0 esszimm = temp1.get_temperature()/100.0 flur = temp2.get_temperature()/100.0 voltage = master.get_stack_voltage() current = master.get_stack_current() wifi = master.get_wifi_configuration() wifistatus = master.get_wifi_status() wifipower = master.get_wifi_power_mode() wifihost = master.get_wifi_hostname() usbvoltage = master.get_usb_voltage() masterid = master.get_identity() feuchte = h.get_humidity()/10.0 lcd.backlight_on() os.system('clear') while True: # "Seite 1" lcd.clear_display() lcd.write_line(0, 0, 'Aussen: ' + str(esszimm) + '') lcd.write_line(0, 13, ' \xdfC') lcd.write_line(1, 0, ' Buero: ' + str(21.82) + '') lcd.write_line(1, 13, ' \xdfC') lcd.write_line(2, 0, ' Flur: ' + str(flur) + '') lcd.write_line(2, 13, ' \xdfC') lcd.write_line(3, 0, ' EssZi: ' + str(bartemp) + '') lcd.write_line(3, 13, ' \xdfC') time.sleep(10) # "Seite 2" lcd.clear_display() lcd.write_line(0, 0, 'Luftdr.: ' + str(air_pressure) + '') lcd.write_line(0, 15, ' mbr') lcd.write_line(1, 0, 'Feuchte: ' + str(feuchte) + '') lcd.write_line(1, 15, ' %') lcd.write_line(2, 0, ' Licht: ' + str(illuminance) + '') lcd.write_line(2, 15, ' Lux') lcd.write_line(3, 0, ' ' + str() + '') lcd.write_line(3, 13, ' ') time.sleep(10) lg Sascha
  15. Danke für die Antwort, habe das jetzt so gemacht, weiß nicht ob da die eleganteste Lösung ist, aber es funktioniert. #!/usr/bin/env python # -*- coding: utf-8 -*- import socket import sys import time import math import os HOST1 = "192.168.2.157" HOST2 = "192.168.2.156" PORT = 4223 UID_L = "xxx" UID_B = "xxx" UID_A = "xxx" UID_M = "xxxxx" from tinkerforge.ip_connection import IPConnection from tinkerforge.bricklet_lcd_20x4 import LCD20x4 from tinkerforge.bricklet_barometer import Barometer from tinkerforge.bricklet_ambient_light import AmbientLight from tinkerforge.brick_master import Master if __name__ == "__main__": ipcon1 = IPConnection() # Create IP connection ipcon2 = IPConnection() # Create IP connection lcd = LCD20x4(UID_L, ipcon1) # Create device object b = Barometer(UID_B, ipcon2) # Create device object al = AmbientLight(UID_A, ipcon1) # Create device object master = Master(UID_M, ipcon2) # Create device object ipcon1.connect(HOST1, PORT) # Connect to brickd ipcon2.connect(HOST2, PORT) lg Sascha
×
×
  • Neu erstellen...