Hintergrundverarbeitung

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Gemeinde!
    Ich habe eine Frage zur Programmverarbeitung im Hintergrund und kann mich nicht so recht für einen Lösungsweg entscheiden.
    Mein Ziel:
    Ich möchte meinen Rpi zur Überwachung von Klimadaten und meiner Heizung verwenden. Die Daten sollen in eine mysql Datenbank abgelegt werden. Alle "Einzelteile" wie Datenbank, Temperaturmessung mittels 1wire und Sensoren (Reedrelais am Gaszähler, Fotodiode für Betriebsanzeige an der Heizung) funktionieren für sich bereits.

    Alle 5 Minuten soll ein Eintrag in die Datenbank gemacht werden. Darin soll enthalten sein:
    - Durchschnittstemperatur der Temperatursensoren
    - Anzahl Ereignisse am Reedrails (entspricht Verbrauch)
    - Anzahl und Dauer des Zustandes "AN" an Fotodiode (entspricht Anzahl der Heizungsstarts und Brenndauer).

    Nun weiß ich nicht so recht womit ich dieses Programm am Besten realisisere:
    1) Es soll 1x pro Sekunde die Eingänge abfragen und die Ereignisse hochzählen bzw. die Zeit messen
    2) Es soll alle 10 sec die Temperatur gemessen werden und gemerkt werden, um die Durchschnittswerte zu errechnen.
    3) es soll alle 5 minuten die Werte in die Datenbank schreiben
    4) es soll beim Start des Rpi automatisch losgehen und ohne viel Resourchen zu verbrauchenvor sich hinwerkeln.

    Würdet ihr ein script 1x pro Sekunde aufrufen und die Werte temporär aus einer Tempdatei holen und nach Verarbeitung wieder wegschreiben?
    Oder ein Programm im ständig im Hintergrund laufen lassen?
    Womit würdet ihr das hinsichtlich der 4 Punkte umsetzen - Shellscript, Python, #c ... ?

    Für eure Tipps und Lösungsansätze oder Links zu Ähnlichem bin ich sehr dankbar?
    kurte

  • gute Frage, habe das Problem auch (noch am NETIO, später am PI)

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hi kurte,
    ich glaube eine kleine C/C++ Anwendung wäre hier am ressourcensparendsten.
    Um die unterschiedlichen Timings zu realisieren müsstest du mit Threads arbeiten.

    Hier ein kleines Bespiel (ungetestet):

  • Danke PeterSilie für die Anregung!
    Ich bin da im Vorfeld dieses Beitrags hier schon dadrüber gestolpert, aber das mit den Threads ist schon hard stuff und c ist nicht unbedingt meine Spezialität...

    Vielleicht hat ja jemand eine Alternative ^^

  • Zitat von kurte pid=10792 dateline=1366205552


    Danke PeterSilie für die Anregung!
    Ich bin da im Vorfeld dieses Beitrags hier schon dadrüber gestolpert, aber das mit den Threads ist schon hard stuff und c ist nicht unbedingt meine Spezialität...

    Vielleicht hat ja jemand eine Alternative ^^

    logisch, wie mache ich es am AVR ( ok hier nicht -> NETIO ) ohne Threads ?

    ein Timer zählt Variable hoch und wenn ein Stand erreicht ist sagen wir
    10 (ms) wird Tastatur gepollt
    100 (ms) wird Display aktualisiert
    1000 (ms) wird Temperatur gelesen

    als Beispiel

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hi jar, wie es am AVR funktioniert, weiß ich auch - ich bin ja gerade dabei von NetIo umzusteigen.
    Das hilft nur hier im Moment nicht weiter - ich versuche gerade meinen AVR-Knoten im Kopf zu lösen und im dem Rpi Horizont zu erweitern ;)

  • Zitat von kurte pid=10800 dateline=1366206632


    Hi jar, wie es am AVR funktioniert, weiß ich auch - ich bin ja gerade dabei von NetIo umzusteigen.
    Das hilft nur hier im Moment nicht weiter - ich versuche gerade meinen AVR-Knoten im Kopf zu lösen und im dem Rpi Horizont zu erweitern ;)

    warum soll das am PI nicht gehen ?

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!