Posts by shgmongo

    Supi.

    Dann schau mal ob das durchrennt und guck auch ab und zu nach irgendwelchen Fehlermeldungen. Damit man in den Exceptions das ordentlich einpflegen kann.

    Die 9999 werden geschrieben wenn openweather oder deine Sensoren nichts zurückgeben.

    Das Skript funktioniert wunderbar! Läuft seit ein paar Tagen ohne Probleme durch. Habe auch einen Internetausfall getestet. Es wird eine Wert für OWM in die Datenbank geschrieben und die "offline" Temperatursensoren werden trotzdem abgefragt und an die Datenbank übergeben.

    Vielen, vielen Dank euch alle für die Unterstützung!!!

    hyle Vielen Dank! Der Code funktioniert jetzt!

    Leider funktioniert die Messung nicht an der Pumpe, siehe Bild. Er erkennt einfach nicht, den Wechsel zwischen an und aus nicht. Jemand ne Idee, mit welchem Sensor es funktionieren sollte oder was ich einzustellen habe?


    Gnom Danke für den Hinweis!

    hyle Danke für das Skript, habe es auch ausgeführt, leider gibt er mir eine Fehlermeldung raus, die ich nicht ganz verstehe....

    noisefloor ja, du hast recht, es ist nicht der Zeitraum vom vorherigen Post. Es ist in den Tagen öfters passiert, daher habe ich einfach einen anderen Zeitraum gewählt.

    Hier alle Timers, der letzte mit n/a ist es heiztemp.timer

    Er scheint nicht aktiv zu sein, weil ich ihn nach dem Neustart des pi nicht von Hand gestartet haben

    keepfear Hammer, das Skript funktioniert und er schreibt Daten in die DB. Vielen Dank!!!

    Wenn ich dein Skript richtig deute, hast du es für mich aufgeräumt und sauber programmiert. In Bezug auf das nicht in die Datenbank schreiben, hast du eingefügt, dass der Wert 9999 geschrieben wird, oder?

    Vielen, vielen Dank!!!!

    Quote

    Wenn du dein Skript über eine systemd Timer Units ausführen würdest wäre die Suche etwas einfacher, weil du der Unit einen Namen geben kannst und dann gezielt danach die Logs filtern kannst.

    noisefloor

    Habe ich probiert. Es funktioniert alles, nur nicht, dass der timer automatisch nach einem Neustart des pi startet..... Keine Ahnung warum. Wenn ich ihn von "Hand" starte oder auslöse, wird das gemacht, was gemacht werden soll.


    Quote

    Du könntest noch in die Logs von systemd schauen, weil der Cron-Job wird ja letztendlich von systemd geregelt. Die Logs kannst du mittels journalctl abfragen. Am besten direkt nach dem betreffenden Zeitraum Filter.

    noisefloor

    Ich habe mal eine Abfrage gemacht. Ich habe die Logs mach etwas gesplittet, damit es übersichtlicher ist. Vor (pi) CMD (python3 /home/pi/heiztemp/heiztemp.py) habe ich zwei Zeilen frei gemacht, z.b. Zeile 69.

    Bis 00:10 Uhr hat er in meine SQL Datenbank geschrieben, da da nicht mehr, siehe Zeile 67.

    Vielleicht gibt es ha Ideen dazu....

    Hallo,

    ich habe einen Lichtsenor an meinem PI installiert und teste ihn mit dem unten gezeigten Programm.

    Leider liefert er die falschen Werte zurück. Wenn das Licht aus ist, zeigt er an an und umgekehrt.

    Was muss ich machen, dass er die richtigen Werte anzeigt bzw. den richtigen Wert in eine Datenbank schreibt (1=an; 0=aus)

    Danke für eure Infos.

    Hier die Meldungen aus meiner log Datei. Bis 2:15Uhr alles gut, und dann geht es nicht mehr richtig.

    Das Skript rufe ich per Cronetab auf:

    Code
    */5 * * * * pi python /home/pi/heiztemp/heiztemp.py

    Deine main-Funktion ist eigentlich noch zu lang, dass kann man stärker modularisieren. Du könntest die Abfrage von OpenWeather und der drei Sensoren auch je in eine eigene Funktion auslagern.

    Wie kann ich es besser machen?

    Hallo,

    ich habe ein Python Progamm, was alle 5 Minuten die Open Weather Temperatur und die mit Senoren gemessene Temperatur in eine MySQL Datenbank schreibt. Leider scheint es so zu sein, dass wenn kein Internet vorhanden ist und der keine OW-Temperatur bekommt, gar nichts in die Datenbank schreibt.

    Das ist sehr doof!

    Wie kann / muss ich mein Skript ändern, dass er entweder für die OW-Temperatur die letzte übertragene nimmt oder ich einen festen Wert nimmt?

    Vielleicht wäre auch was generelles möglich, falls mal ein Sensor eine Störung hat.

    Vielleicht kann man auch der SQL Datenbank einen default Wert zuweisen (bei TA). Weiß jemand, wie man das bei SQl macht?

    Ab Zeile 106 ist das OW Thema

    Okay, danke.

    Wenn ich Daten sammel möchte, wie Temperaturen, Stromverbrauch, Lichtschalter an/aus usw. Wie und womit mach ich das.

    Ich könnte einen pi laufen lassen, der die Daten sammelt, aber wo speichert man die am Besten? Kann / sollte der pi die Daten auf eine NAS oder ein online Laufwerk schreiben?

    Macht es Sinn eine oder mehrer SQL Datenbanken zu habe?

    Gruß,

    Sebastian

    hyle Danke für deine Hilfe.

    Ich habe mir die Values ausgeben lassen. Sie sind bei 0.0.....

    Die Empfindlichkeit scheint nicht hoch genug zu sein. Ich habe aber kein Bock mir jetzt noch nen Kondensator dazwischen zu fummeln.

    Hat jemand ne Idee für einen anderen LRD oder einen anderen Sensor, der empfindlicher ist?

    Oder wie ich meinen LDR empfindlicher machen kann ohne Kondensator....

    Python
    from gpiozero import LightSensor
    
    ldr = LightSensor(27) # Hier muss der korrekte GPIO-Pin angegeben werden
    if ldr.light_detected:
        print("Lampe an")
    else:
        print("Lampe aus")
    print("Aktueller Wert des Lichtsensors: ", ldr.value)

    Hallo zusammen,

    vielen Dank für eure Hinweise. Hab Widerstand mit Kondensator verwechselt.... :dau1:

    Ich habe jetzt auch mein Python Skipt ein wenig angepasst, hier ein Auszug:

    Es funktioniert auch alles so weit. Nur muss ich leider mit der Lampe richtig auf den Sensor leuchten, damit AN

    ausgeben wird. Die abzufragende LED ist leider etwas zu schwach für ein EIN.

    Hat jemand noch ne Idee, wie ich die Empfindlichkeit erhöhen kann?

    Kannst du den Widerstand des LDR messen (beide Werte - bei gelber LED an und bei gelber LED aus)?

    Dann kann man die Schaltung passend dimensionieren.

    Ist der LDR gut gegen Umgebungslicht abgeschirmt, damit es keine äußeren Einflüsse gibt?

    Hast du den LDR direkt an den GPIO gehängt oder einen Transistor dazwischen? Zeig doch bitte mal, wie du das verschaltet hast.

    Nein, ich kann leider nicht die Widerstände messen bei LED ein und aus. Dafür müsste ich das Pumpengehäuse öffnen und dann wüsste ich auch nicht wie ich rankommen kann.

    LDR ist gut abgeschirmt und im Keller ist es meist dunkel.

    LDR hängt direkt an dem PI ohne was dazwischen.

    Eigentlich hat ein LDR nur eine analoge Ausgabe. Man kann das Teil aber auch z.B. mit einem 1µF Kondensator an den RPi anschließen um damit verwertbare Signale zu bekommen.

    Siehe dazu hier: https://gpiozero.readthedocs.io/en/stable/reci…ml#light-sensor

    und hier: https://gpiozero.readthedocs.io/en/stable/api_…ero.LightSensor

    Kann leider den Kondensator nicht tauschen, da dieser bei meinem LDR direkt auf der Platine gelötet ist. War einfacher es so zu bestellen und nicht selber basteln zu müssen.

    * Zeile 32 muss falsch sein. Im gezeigten Code würde die einen ValueError liefern, weil p1 nicht definiert ist. Und wenn es definiert wäre, würde der Vergleich an der Stelle keinen Sinn machen, weil das Ergebnis des Vergleichs an keinen Wert gebunden wird.

    Zu

    Wenn es nur zwei Zustände "ein" und "aus" gibt, dann sollte man das über Bool'sche Wert abbilden, also `True` und `False`. SInniger Weise an = True und aus = False.

    Zeile 32 hast du recht, dass war noch von einem Versuchscode.

    Wäre folgendes richtig?

    Code
    if pump1_status.value:
            print("P1 ist AUS")
            p1 = false
    else:
            print("P1 ist AN")
            p1 = true

    Hallo,

    ich habe drei LDR Sensoren an meinem Pi dran. Wenn ich sie anleuchte oder sie Tageslicht bekommen, zeigen sie auch EIN an. Jetzt habe ich sie an meine Heizungspumpen gebaut, die eine kleine gelbe LED anhaben, wenn sie laufen.

    Leider erkennt der LDR dies nicht richtig und sagt, die Pumpen wären aus, obwohl die LED brennt.

    Kann mir jemand sagen, wie ich die Empfindlichkeit meiner LDR etwas senken kann, so dass es bei wenig Licht schon EIN ist und nur bei Dunkelheit AUS.

    Ich weiß nicht, ob man beim Code =0 AUS und ungleich 0 oder >0 EIN  machen kann.

    Hallo,

    ich beschäftige mich seit einiger Zeit mit der Hausautomation. Ich weiß aber nicht, wie ich es sinnvoll aufsetzten soll und was ich brauche und hoffe, ihr könnt mir mit Rat und Links weiterhelfen.

    Ich lese viel von MQTT. Kann mir jemand kurz sagen, was das genau ist und wo dies installiert sein muss? Man kann es ja wohl auf einem PI installieren, aber ist das sinnvoll? Wo werden Dinge gespeichert?

    Eine NAS oder ähnliches habe ich nicht, da kann man es ja wohl auch drauf laufen lassen.

    Ich habe einen PI. Der ist dazu da, die Temperaturen meiner Heizung in eine SQL DB zu speichern und per Grafana anzuzeigen.

    Ich möchte gerne auch die rel. Luftfeuchtigkeit im Keller messen und mich informieren lassen, wenn sie zu hoch ist.

    In diesem Zusammenhang habe ich was von MQTT gelesen, aber auch von HomeAssisten und NodeRed.

    Mir ist irgendwie klar, dass es alles unterschiedliche Dinge sind, sie aber zusammen hängen. Und den Zusammenhang checke ich noch nicht.

    Gruß,


    Sebastian