Posts by RasPi-Jo

    Hallo, Entschuldigung. dass ich mich erst jetzt melde. War familiär eingespannt.

    Quote

    Warum? Never change a running system!


    Ich stimme euch zu hyle und Andreas, aber was ist mit den Sicherheitsupdates nach oldstable?
    Ich werde wohl mit

    Code
    dd bs=2M if=/dev/mmcblk0  | dd bs=2M of=/dev/sdb

    das Original klonen.
    Im Vergleich zu wheezy soll es bei jessie Änderungen bei der Ansteuerung der GPIO-Ports - durch phyton (?) - geben; meine ich gelesen zu haben.
    Wenn das läuft weiter nach stretch.
    Apache und postfix sind bei mir nicht installiert.
    Notfalls kommt dann die Ersatzkarte zum Einsatz!!

    Hallo,
    mein Pi beantwortet die Frage nach der Version wie folgt:

    Code
    cat /sys/firmware/devicetree/base/model
    Raspberry Pi Model B Rev 2


    Das dürfte also nach heutiger Lesart ein Pi 1 B sein.
    Zurzeit ist noch die wheezy Version von Raspbian (ohne grafische Oberfläche) installiert.
    Es ist nun wohl an der Zeit - über jessie - auf stretch upzugraden. Nun die Frage, läuft Raspbian stretch auf dieser Hardware!

    Die Lösung wurde mir auf der RRD Mailinglist zu teil!
    Nach dem ich den Code


    Code
    ...
    "CDEF:OnOff=PUMPE,FLOOR,80,*",
    "AREA:OnOff#F0EFEF:Umwaelzpumpe  ",
    "LINE1:OnOff#424242:",
    ...


    gegen


    Code
    ...
    "CDEF:PUMPE_EIN=PUMPE,0.5,LT,0,80,IF",
    "CDEF:PUMPE_AUS=PUMPE,0.5,LT,0,NEGINF,IF",
    "AREA:PUMPE_EIN#F0EFEF:Umwaelzpumpe",
    "AREA:PUMPE_AUS#F0EFEF",
    "LINE1:PUMPE_EIN#424242:",
    "LINE1:PUMPE_AUS#424242:",
    ...


    ausgetauscht habe sie die Grafik nun so aus:


    Hallo,
    meine grafische Darstellung des Heizungsmonitorings hat bei Außentemperaturen unter Null einen kleinen optischen Mangel (s. Grafik):



    Hier der Perl-Code zur Grafik:



    Nun würde ich gerne erreichen, dass die Pumpengrafik - bei negativen Temperaturen - nicht an der Nulllinie sondern an der x-Achse endet. Grundsätzlich müsste das mit CDEF und oder VDEF gehen, ich weiß aber nicht wie?
    Einer eine Idee?

    Meine Entscheidung für die Apache - Lighttpd - Kombination:

    • Den Apache-Server (... 113) betreibe ich schon fast 10 Jahre.
    • Der Raspberry (... 130) kam vor ziemlich 2 Jahren dazu.
    • Auf dem Raspberry ist der Web-Server lighttpd bereits vorinstalliert.
    • Lighttpd ist für die Aufgabe des Heizungsmonitoring vollkommen ausreichend (http://www.forum-raspberrypi.d…thon?pid=135867#pid135867).
    • Für das gekapselte Monitoring auf dem Raspberry spricht:

      • Das klappt auch bei Netzwerkstörungen.
      • Minimierung des Datenverkehrs zwischen Server und Raspberry.


    • Der Zugriff aus dem Internet kam erst jetzt dazu.

    Diese Anleitung richtet sich an Nutzer, die sich mit der grundsätzichen Konfiguration eines Apache-Web-Servers auskennen!
    Ich betreibe ein kleines Netzwerk mit einigen Windowsrechnern, einer Fritz!Box als Router, einem Debian-Server (zwei Domains) und einem Raspberry als Monitor für die Heizungsanlage.
    Anfragen aus dem Internet (Port 80 und 443) erfolgen an die reale Domain http://www.example.dyndns.org, solche aus dem Heimnetzwerk (nur Port 80) an die fiktive Domain myServer.xx.


    Code
    #~# ls /etc/apache2/sites-enabled/
    010-example.dyndns.conf -> /etc/apache2/sites-available/example.dyndns.org
    020-myserver.conf -> ../sites-available/myserver.xx


    - Die Fritz!Box (192.168.x.1) leitet alle Anfragen aus dem Internet für die Ports 80 und 443 am den Server (192.168.x.113) weiter.
    - Die Windows-Datei hosts regelt das Routing im Heimnetzwerk.
    - Alle Anfragen für http://www.example.dyndns.org auf Port 80 (HTTP) werden durch den Server auf HTTPS (Port 443) umgeleitet.
    - Alle Anfragen für myServer.xx werden über den Port 80 abgewickel.
    - Die Zugangsberechtigung für die Webseiten wird - wie bei Apache üblich - über die .htaccess geregelt



    Aus dem Heimnetzwerk lassen sich die Seiten des Raspberry leicht über http://192.168.x.130 erreichen. Etwas komplizerter ist das aus dem Internet wenn man gleichzeitig zum Datenschutz eine Kennwort-abfrage möchte. Da alle Anfragen aus dem Internet - dank Frizt!Box - auf dem ApacheSever (192.168.x.113) landen muss dieser sie an den Raspberry (192.168.x.130) weiterleiten.



    Die Webseiten des Raspberry sind jetzt - ungeschützt - aus dem Internet erreichbar! Das Programm lighttpd kennt zwar eine .htpasswd, daber keine .htaccess. Hier kommt die Datei /etc/lighttpd/conf-available/05-auth.conf als Muster ins Spiel. Sie ist die Vorlagen für meine Eigenkreation 06-my_auth.conf.



    Für den Pi gilt für alle Anfragen aus dem Internet der Debian-Server (192.168.x.113) als Quelle und genau für diese eine IP-Adresse wird eine Kennwort-Abfrage vorgeschrieben.


    Die Datei /home/pi/.passwd/.htpasswd_hzg wir - wie auch bei Apache - so erstellt:

    Code
    #~# printf "BENUTZERNAME:$(openssl passwd -1 KENNWORT )\n" >> /home/pi/.passwd/.htpasswd_hzg


    Die Begriffe BENUTZER und KENNWORT sind natürlich entsprechend zu ändern.
    Nicht vergessen die Eigenkreation zu "enablen" und ggf. die Datei 05-auth.conf zu "unablen"!

    Code
    #~# ls /etc/lighttpd/conf-enabled/
      06-my_auth.conf -> ../conf-available/06-my_auth.conf
      10-cgi.conf -> ../conf-available/10-cgi.conf
      10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
      10-ssl.conf -> ../conf-available/10-ssl.conf
      10-userdir.conf -> ../conf-available/10-userdir.conf
      15-fastcgi-php.conf -> /etc/lighttpd/conf-available/15-fastcgi-php.conf


    Vielleicht habe ich euch ja nichts neues erzählt, aber ich habe nach einer Lösung vergeblich gesucht.

    Hallo AliceDeh,
    ich steige an dieser Stelle aus! Mein Tipp an dich:
    Setz dich erst mal mit der Temperaturmessung und einer Programmiersprache auseinander. Kannst du eine, verstehst du andere besser. Fast alle haben mal mit dem Projekt "Hello word!" begonnen. Mit Google findest du für jede Programmiersprache ein Beispiel.

    Tausch mal diesen Code


    gegen diesen aus:

    Code
    path = "/sys/bus/w1/devices/28-0000065fa6c1/w1_slave"
    
    
    # Endlosschleife
    while True:
        print("temp C=%f\ttemp F=%f\tQuelle=%s"% read_sensor(path))


    Und vergleiche das mal mit dem Code den ich im Thread 35 gelefert habe. Manch mal sind auch die kleinen Details von großer Bedeutung.
    Ich gehe davon aus, dass dein Sensor die Kennung 28-0000065fa6c1 hat! Sonst ist die Zeile entsprechend anzupassen.

    An dieser Stelle muss gar nichts für "path rein"!
    Path ist der Übergabeparamter für dir Funktion read_sensor! Ich Zerlege mal das Ganze.
    Hier stehen die allgemeinen Definitionen:


    Nun folgt die Fehlerbehandlung, wobei beim Aufruf dieser Funktion

    Code
    log('Error reading : No such file or directory:', datei)


    der Wert für msg in der Klammer mitgegeben wird.


    Und die Funktion mit der Fehlermeldung


    Der Wert für Path wird beim Aufruf mitgegeben:

    Code
    print("temp C=%f\ttemp F=%f\tQuelle=%s"% read_sensor(path))


    Nun zum Hauptteil, der bei dir simpel ausfällt, da du nur einen Sensor hast:

    Code
    path="/sys/bus/w1/devices/28-0000065fa6c1/w1_slave"
    ######### Heinzung.py itself ####################
    # Endlosschleife
    while True:
        print("temp C=%f\ttemp F=%f\tQuelle=%s"% read_sensor(path))


    Der Wert für den path wird definiert und dann die Endlosschleife gestartet.
    So, jetzt gilt wieder probieren geht über studieren.


    PS: Das mit dem Übergabeparameter funktioniert in allen Programmiersprachen so. ;)