Jump to content

saschakp

Members
  • Gesamte Inhalte

    27
  • Benutzer seit

  • Letzter Besuch

Posts erstellt von saschakp

  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. 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. Lernen durch schmerz  :P

    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.

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

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

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

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

  10. Hallo irgendwie weiß ich nicht wie ich das anstellen soll, habe folgendes vor:

     

    Master Brick 1 + Wifi im Esszimmer, mit: 2x Temperatur und Luftdruck Bricklets

     

    Master Brick 2 + Ethernet im Flur, mit: Temperatur, Licht Bricklets und LCD Display.

     

    Auf dem LCD Display im Flur (an MasterBrick2)

    sollen die Werte von den an Master Brick1 und Brick2 angeschlossenen Bricklets angezeigt werden, geht das überhaupt?

     

    Möchte dieses gern mit Python machen.

     

    lg Sascha

  11. Danke für die Antworten,

    wenn ich "While (TRUE)" einfüge kommen folgende meldungen:

    Traceback (most recent call last):
      File "lcd.py", line 26, in <module>
        while (TRUE):
    NameError: name 'TRUE' is not defined
    Exception in thread Brickd-Receiver (most likely raised during interpreter shutdown):Exception in thread Disconnect-Prober (most likely raised during interpreter shutdown):
    Traceback (most recent call last):
    Traceback (most recent call last):
      File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
      File "/usr/lib/python2.7/threading.py", line 552, in __bootstrap_inner
    
      File "/usr/lib/python2.7/threading.py", line 505, in run  File "/usr/lib/python2.7/threading.py", line 505, in run
    
      File "/usr/local/lib/python2.7/dist-packages/tinkerforge.egg/tinkerforge/ip_connection.py", line 617, in receive_loop  File "/usr/local/lib/python2.7/dist-packages/tinkerforge.egg/tinkerforge/ip_connection.py", line 752, in disconnect_probe_loop
    
    <type 'exceptions.TypeError'>: 'NoneType' object is not callable  File "/usr/lib/python2.7/Queue.py", line 174, in get
    
    <type 'exceptions.TypeError'>: 'NoneType' object is not callable
    

     

    Das mit den Buttons ist die CallBack funktion?

    Muss mich da mal reinlesen.

     

    lg

    Sascha

     

  12. Hallo,

    möchte gern das mein LCD Display alle 5 sek. was anderes auf dem

    Diplay anzeigt (Seiten).

    Wie bekomme ich das hin?

     

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-  
    
    import socket
    import sys
    import time
    import math
    
    HOST = "192.168.2.32"
    PORT = 4223
    UID = "9LY" # Change to your UID
    
    from tinkerforge.ip_connection import IPConnection
    from tinkerforge.bricklet_lcd_20x4 import LCD20x4
    
    
    if __name__ == "__main__":
        ipcon = IPConnection() # Create IP connection
        lcd = LCD20x4(UID, ipcon) # Create device object
        ipcon.connect(HOST, PORT) # Connect to brickd
        # Don't use device before ipcon is connected
    
        # Turn backlight on
        lcd.backlight_on()
    
        # "Seite 1"
        lcd.clear_display()
        lcd.write_line(0, 0, 'Seite1')
        lcd.write_line(1, 0, 'Seite1')
        lcd.write_line(2, 0, 'Seite1')
        lcd.write_line(3, 0, 'Seite1')
        time.sleep(5)
        
        # "Seite 2"
        lcd.clear_display()
        lcd.write_line(0, 0, 'Seite2')
        lcd.write_line(1, 0, 'Seite2')
        lcd.write_line(2, 0, 'Seite2')
        lcd.write_line(3, 0, 'Seite2')
        time.sleep(5)
        
        # "Seite 3"
        lcd.clear_display()
        lcd.write_line(0, 0, 'Seite3')
        lcd.write_line(1, 0, 'Seite3')
        lcd.write_line(2, 0, 'Seite3')
        lcd.write_line(3, 0, 'Seite3')
        time.sleep(5)
        
        # "Seite 4"
        lcd.clear_display()
        lcd.write_line(0, 0, 'Seite4')
        lcd.write_line(1, 0, 'Seite4')
        lcd.write_line(2, 0, 'Seite4')
        lcd.write_line(3, 0, 'Seite4')
        time.sleep(5)
    
    
    
        raw_input('Press key to exit\n') # Use input() in Python 3
        ipcon.disconnect()
    

     

    Müsste da ein schleife einbauen oder?

     

    lg

    Sascha

  13. Hallo,

    ich komme gerade irgendwie nicht weiter,

    habe es geschafft daten die ein script in die mysql db geschrieben hat auszulesen und in highcharts anzuzeigen.

    Leider bekomme ich unter dem diagramm nicht die uhrzeit angezeigt.

    http://jediwookie.dyndns.org/test4.php?hour=2

    xAxis: {
                    categories: [<?php echo $row_buero; ?>] // HIER SOLL DIE UHRZEIT AUS DER DATENBANK REIN !!!!!!!!
                },

    Funktioniert und er schreibt unter den Char die Temperatur Werte aus dem Büro, dieses habe mal zum testen anzeigen lassen.

     

    xAxis: {
                    categories: [<?php echo $row_dattim; ?>] // HIER SOLL DIE UHRZEIT AUS DER DATENBANK REIN !!!!!!!!
                },
    

    Funktioniert leider nicht und die website bleibt weiss.

     

    Auch das umwandeln des datums in

     

    Hier der komplette code:

    <center>
    <a href="test4.php?hour=2">Last 2h</a> - 
    <a href="test4.php?hour=6">Last 6h</a> - 
    <a href="test4.php?hour=12">Last 12h</a> - 
    <a href="test4.php?hour=24">Last 24h</a> - 
    <a href="test4.php?hour=48">Last 48h</a>
    </center>
    <?php
    
    include("connect.php");
    
    $ausruf = $_GET["hour"];
    $result = mysql_query("SELECT * FROM August WHERE dattim > DATE_SUB(NOW(), INTERVAL $ausruf HOUR)");
    $num = mysql_num_rows ($result);
    
    // $dattim = new DateTime;
    // echo $dattim->format("H:i:s"); 
    
    if ($num > 0 ) {
    $i=0;
    while ($i < $num) {
    
    	$id = stripslashes(mysql_result($result,$i,"id"));
    	$dattim = stripslashes(mysql_result($result,$i,"dattim"));
    	$aussen1 = stripslashes(mysql_result($result,$i,"aussen1"));
    	$buero = stripslashes(mysql_result($result,$i,"buero"));
    	$temprasperry = stripslashes(mysql_result($result,$i,"temprasperry"));	
    	$flur = stripslashes(mysql_result($result,$i,"flur"));
    
    $row .= '<tr><td>'.$dattim.'</td><td>'.$aussen1.'°C</td><td>'.$temprasperry.'°C</td><td>'.$buero.'°C</td></tr>';
        $row_aussen .= ''.$aussen1.',';
    $row_buero .= ''.$buero.',';
    $row_rasp .= ''.$temprasperry.',';
    // $row_flur .= ''.$flur.',';
    $row_dattim .= ''.$dattim.',';
    
    
    ++$i; }} else { $row = '<tr><td colspan="2" align="center">Nothing found</td></tr>'; }
    
    mysql_close();
    ?>
    
    
    
    <!DOCTYPE HTML>
    <html>
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    	<title>Temperaturen</title>
    
    	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    	<script type="text/javascript">
    $(function () {
            $('#container').highcharts({
                title: {
                    text: 'Temperaturen',
                    x: -20 //center
                },
                subtitle: {
                    text: 'Source: Database -><?php echo $jahr;?>',
                    x: -20
                },
                xAxis: {
                    categories: [<?php echo $row_buero; ?>] // HIER SOLL DIE UHRZEIT AUS DER DATENBANK REIN !!!!!!!!
                },
                yAxis: {
                    title: {
                        text: 'Temperature (°C)'
                    },
                    plotLines: [{
                        value: 0,
                        width: 1,
                        color: '#808080'
                    }]
                },
                tooltip: {
                    valueSuffix: '°C'
                },
                legend: {
                    layout: 'vertical',
                    align: 'right',
                    verticalAlign: 'middle',
                    borderWidth: 2
                },
                series: [{
                    name: 'Buero',	
                    data: [<? echo $row_buero ?>]
                },
                {
                    name: 'Aussentemperatur',
                    data: [<? echo $row_aussen ?>]
                },
                {
                    name: 'Raspberry',
                    data: [<? echo $row_rasp ?>]
                },
                {
                    name: 'Flur',
                    data: [<? echo $row_flur ?>]
                }]
            });
        });
        
    
    	</script>
    </head>
    <body>
    <script src="js/highcharts.js"></script>
    <script src="js/modules/exporting.js"></script>
    
    <div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
    
    </body>
    </html>
    
    

     

    Vieleicht kann mir jemand einen tip geben. :-)

     

    Anbei noch bilder von der db struktur

     

    gruss

    Sascha

    Bildschirmfoto_2013-08-23_um_14_53_31.thumb.png.a2f52c00adfbd4d674ffc7cf0dd1cf69.png

    Bildschirmfoto_2013-08-23_um_14_54_16.png.f2aa347da058c024f29315720fc230f0.png

  14. So habe heute nach langer Zeit mich wieder mit dem dem Thema C# und mySQL

    beschäftigt, es funktioniert das er in die Datenbank schreibt,

    aber er schreibt noch nicht die richtigen werte.

     

    "INSERT into wetter (sensor1, sensor2) values ('voltage','temperature')";
    

    Hier schreibt er das Wort: "voltage" und "temperature" in die Datenbank,

    irgendwie bekomme ich ihn nicht dazu den richtigen wert zu nehmen, hat jemand eine Idee?

     

    Hier der Komplette Code:

    using Tinkerforge;
    using MySql.Data;
    using MySql.Data.MySqlClient;
    using System;
    using System.Data;
    
    
    class Example
    {
        private static string myConnectionString = "SERVER=localhost;" +
                                "DATABASE=wetter;" +
                                "UID=xxxx;" +
                                "PASSWORD=xxxxxxx;";
        
    
        private static string HOST = "localhost"; // Am Server abgeschlossen ist
        private static int PORT = 4223;
        private static string UID_00 = "xxxxxxxxxxx"; // Change to your UID
        private static string UID_01 = "xxx"; // Change to your UID
        private static string UID_02 = "xxx"; // Change to your UID
        private static DateTime thisDate = DateTime.Now;
    
       
    
        static void Main()
        {
           
    
            IPConnection ipcon = new IPConnection(HOST, PORT); // Create connection to brickd
            BrickMaster master = new BrickMaster(UID_00); // Create device object
            BrickletTemperature temp = new BrickletTemperature(UID_01); // Create device object
            BrickletLCD20x4 lcd = new BrickletLCD20x4(UID_02); // Create device object
    
             ipcon.AddDevice(lcd); // Add device to IP connection
            ipcon.AddDevice(master); // Add device to IP connection
            ipcon.AddDevice(temp); // Add device to IP connection
            // Don't use device before it is added to a connection
    
            
            
            //for (int i = 1; i <= 1000; i++)
              while( true )  
            {
            // Get voltage and current from stack (in mV/mA)
            ushort voltage = master.GetStackVoltage();
            ushort current = master.GetStackCurrent();
            short temperature = temp.GetTemperature();
    
            lcd.BacklightOn();
            lcd.ClearDisplay();
            lcd.WriteLine(0, 0, "Tinkerforge");
            // lcd.WriteLine(1, 0, "{0:d}", thisDate);
            lcd.WriteLine(2, 0, "Temperatur " + temperature /100.0 + " C");
            System.Console.Clear();
            // System.Console.WriteLine(("").PadRight(38, '#'));
            System.Console.WriteLine("## TinkerForge Temperatur Projekt ## \n");
            System.Console.WriteLine("Stack Voltage: " + voltage / 1000.0 + " V \n");
            System.Console.WriteLine("Stack Current: " + current / 1000.0 + " A \n");
            System.Console.WriteLine("Temperature: " + temperature / 100.0 + " ∞C \n");
            System.Console.WriteLine("Datum: {0:d} \n", thisDate);
            System.Console.WriteLine("Zeit: {0:t} \n", thisDate);
    
            MySqlConnection connection = new MySqlConnection(myConnectionString);
            MySqlCommand command = connection.CreateCommand(); ;
            command.CommandText = "INSERT into wetter (sensor1, sensor2) values ('voltage','temperature')"; // Daten werden in Datenbank geschrieben mit Auto ID
    
            MySqlDataReader Reader;
            connection.Open();
            Reader = command.ExecuteReader();
    
            System.Threading.Thread.Sleep(2500); // Wert wird später hochgesetzt
    
    
        }
                
        }
        
    }
    

     

    mfg

    Sascha

  15. Der Code wird ausgeführt,

    er zeigt in der Konsole auch den Temperatur Wert und die Werte vom

    Maste Brick an.

    Habe aber gerade gesehen das er mir zu der mySQL funktion auch fehler ausgepuckt hatte, die ich anscheinend ignoriert hatte  :-\

     

    Was ich halt "nur"  ;D brauche ist ein Programm/Script was

    im Hintergrund läuft und mir die Werte in eine DB schreibt,

    es sollen nich mehr Sensoren angeschlossen werden.

    Das auslesen wird alles in PHP gemacht.

     

    Werde mich mit dem Thema C# noch weiter einlesen, mal sehen ob ich ein Buch finde.

     

    Trozdem Danke erstmal.

     

    mfg

    Sascha

×
×
  • Neu erstellen...