Ankündigung

Einklappen
Keine Ankündigung bisher.

Diagramme via Raspberry darstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Diagramme via Raspberry darstellen

    Hallo,

    mal wieder ein kleines Thema wo ich ein wenig Unterstützung gebrauchen könnte.
    Ich möchte KNX Daten im CV graphisch darstellen. Dafür gibt es auch die gute Möglichkeit mittels "Diagramm" eine rrd Datei einzulesen und darzustellen. Soweit so gut.

    Wenn man das ganze auf einem Raspberry machen möchte wie würden man nun Schritt für Schritt vorgehen?

    JA über das Thema wurde schon einige male gesprochen. Leider viel zu häufig für Wiregat und wenn für Raspberry dann nur punktuell.

    Eventuell gibt es einen Raspberry Experten unter euch der eine Schritt für Schritt Anleitung abgeben kann und möchte (wenn möglich nicht von Experten für Experten (o: sondern für Wald und Wiesen Anwender).


    schon mal vielen dank

    PS: eventuell sollte man hier bei Beiträgen klar sehen können für welche Plattform sie gedacht sind (Wiregate, Raspberry und co.)



    #2
    Also ich kann Dir für den Raspberry bei Interesse ein fertiges Image zur Verfügung stellen - mit Kurzanleitung

    Kommentar


      #3
      Zitat von 2iguana Beitrag anzeigen
      PS: eventuell sollte man hier bei Beiträgen klar sehen können für welche Plattform sie gedacht sind (Wiregate, Raspberry und co.)
      Bzgl. Platform gibt es keine Differenzierung - die CV macht da keinen Unterschied. Man könnte höchstens zwischen dem OpenHAB Backend und dem eibd/knxd Backend unterscheiden. Der Unterschied ist aber gering und liegt eher an Unzulänglichkeiten der üblichen Umgebung (in normaler Installation unterstützt der OpenHAB Server kein PHP. Die Verwendung von PHP ist bei der CV aber aus gutem Grund nur optional, d.h. wer es hat kann erweiterte Features nutzen, wer nicht kann zumindest die grundlegenden Features nutzen)

      Zum Raspberry: Es gibt keinen Grund warum darauf nicht auch die gleichen Features laufen sollten wie auf dem Wiregate. Das ist beides sehr nah beieinander.
      TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

      Kommentar


        #4
        Ich benutze folgende Beschreibung. Ich hatte gar keine Kenntnisse und damit hat es super geklappt:

        Diagramme (rrd´s):

        - zuerst in das Verzeichnis wechseln

        cd /var/www/rrd/

        - Script zum Anlegen der Datenbank anpassen (als Beispiel verwende ich hier „Außentemperatur“)

        - ich verwende vi: vi create_db.pl

        Script:
        #!/bin/bash
        rrdtool create database_aussentemperatur.rrd --start N --step 300 \
        DS:temp:GAUGE:600:U:U \
        RRA:AVERAGE:0.5:1:12 \
        RRA:AVERAGE:0.5:1:288 \
        RRA:AVERAGE:0.5:12:168 \
        RRA:AVERAGE:0.5:12:720 \
        RRA:AVERAGE:0.5:288:365


        In der 2. Zeile den Namen für die neue Datenbank ändern (Rest unbedingt unverändert lassen):
        neu:
        rrdtool create database_deinname.rrd --start N --step 300 \


        - Script ausführen u . Datenbank erstellen

        perl /var/www/rrd/create_db.pl

        - diese Schritte müsst Ihr für jede gewünschte Datenaufzeichnung wiederholen!


        = = = = = = = = = =

        - Nun müssen wir das Script zum eintragen der Daten in die Datenbank kopieren und anpassen

        zuerst in das Verzeichnis wechseln

        cd /var/www/rrd/

        Datei „update_database_aussen_temperatur.sh“ mit vi aufrufen

        original:
        tempread=`cat /var/www/linknx/Aussen_Temperatur`
        neu:
        tempread=`cat /var/www/linknx/deinname`

        und in der 7.Zeile die neue Datenbank eintragen (Rest unbedingt unverändert lassen):
        original:
        rrdtool update database_aussen_temperatur.rrd N:$temp
        neu:
        rrdtool update database_deinname N:$temp


        - auch diese Schritte müsst Ihr für jede gewünschte Datenaufzeichnung wiederholen!


        = = = = = = = = = =

        - linknx anpassen (Verknüpfung zwischen Gruppenadressen (gad=“x/x/x“) und „sprechendem Namen“ (windgeschwindigkeit) herstellen

        - - - - - - - - -
        * zu verwendende Datenpunkttypen (type=“9.xxx“)

        * 1.001: switching (on/off) (EIS1)
        * 3.007: dimming (control of dimmer using up/down/stop) (EIS2)
        * 3.008: blinds (control of blinds using close/open/stop)
        * 5.xxx: 8bit unsigned integer (from 0 to 255) (EIS6)
        * 5.001: scaling (from 0 to 100%)
        * 5.003: angle (from 0 to 360°)
        * 6.xxx: 8bit signed integer (EIS14)
        * 7.xxx: 16bit unsigned integer (EIS10)
        * 8.xxx: 16bit signed integer
        * 9.xxx: 16 bit floating point number (EIS5)
        * 10.001: time (EIS3)
        * 11.001: date (EIS4)
        * 12.xxx: 32bit unsigned integer (EIS11)
        * 13.xxx: 32bit signed integer
        * 14.xxx: 32 bit IEEE 754 floating point number
        * 16.000: string (max 14 ASCII char) (EIS15)
        * 20.102: heating mode (comfort/standby/night/frost)
        - - - - - - - - -

        nano /var/lib/linknx/linknx.xml

        - Für jeden aufgezeichneten Datenpunkt benötigt Ihr hier eine entsprechende Definition - für Euren ersten Wert passt Ihr Euch
        die 4. Zeile einfach an, für jeden weiteren Datenpunkt kopiert Ihr Euch am besten die 4. Zeile und fügt diese irgendwo
        zwischen „<objects>“ und „</objects>“ ein. (normalerweise an der letzten Position vor „</objects>“)
        original:
        <?xml version="1.0"?>
        config>
        <objects>
        <object id="Aussen_Temperatur" gad="0/0/1" type="9.xxx" flags="cwu" init="persist" log="false">Aussen_Temperatur</object>
        </objects>
        <rules>

        neu:
        <?xml version="1.0"?>
        <config>
        <objects>
        <object id="Aussen_Temperatur" gad="0/0/1" type="9.xxx" flags="cwu" init="persist" log="false">Aussen_Temperatur</object>
        <object id="Aussen_Temperatur" gad="0/0/1" type="9.xxx" flags="cwu" init="persist" log="false">Aussen_Temperatur</object>
        </objects>
        <rules>
        </rules>

        - Nun passen Wir uns die eingefügte Zeile für unseren Datenpunkt (windgeschwindigkeit) an:
        gad=„x/x/x (hier wird die Gruppenadresse eingetragen x/x/x), type="9.xxx" (hier wird der Datenpunktstyp definiert)

        <?xml version="1.0"?>
        <config>
        <objects>
        <object id="Aussen_Temperatur" gad="0/0/1" type="9.xxx" flags="cwu" init="persist" log="false">Aussen_Temperatur</object>
        <object id=„windgeschwindigkeit“ gad=„0/0/2“ type="9.xxx" flags="cwu" init="persist" log="false">windgeschwindigkeit</object>
        </objects>
        <rules>
        </rules>

        mit strg + X beenden u. speichern
        - Den Raspberry mit „reboot“ neu starten - jetzt werden die Daten gesichert

        = = = = = = = = = =

        - Nun haben wir bisher:
        die Datenbank angelegt
        das Script für den Eintrag des aktuellen Wertes in die Datenbank angelegt
        die Gruppenadressen (x/x/x) mit „sprechendem Namen“ (windgeschwindigkeit) verknüpft

        was uns noch fehlt, ist eigentlich ein automatischer Aufruf,
        der alle 5 Minuten das Script ausführt und den Eintrag des aktuellen Wertes in die Datenbank schreibt
        dies erledigt ein cronjob für uns
        - Aufruf:

        crontab -e

        interessant ist hier für uns der Bereich (Rest unbedingt unverändert lassen):


        # alle 5 Minuten rrd (ramdisk) aktualisieren
        */5 * * * * /var/www/rrd/update_database_aussen_temperatur.sh


        - für Euren ersten Wert passt Ihr Euch die Zeile mit „update_database_aussen_temperatur.sh“ einfach an,
        ansonsten ergänzen wir einfach um unser neues Script:


        # alle 5 Minuten rrd (ramdisk) aktualisieren
        */5 * * * * /var/www/rrd/update_database_aussen_temperatur.sh
        */5 * * * * /var/www/rrd/update_database_windgeschwindigkeit.sh

        mit strg + X beenden u. speichern
        - Den Raspberry mit „reboot“ neu starten - jetzt werden die Daten gesichert und die Aufzeichnung der Daten beginnt!

        !!!Die Daten in einer Ramdisk aufgezeichnet und 1x stündlich tatsächlich auf die SD-Karte gesichert !!!

        Die gebräuchlichsten HTML-Farben zum einfärben der Diagramme:
        Code Farbe

        #FF8000 orange
        #0000FF blau
        #00FF00 grün
        #FF0000 rot
        #000000 schwarz
        #666666 grau
        #DDDDDD helles grau

        mehr dazu:
        http://html-color-codes.info/webfarben_hexcodes/

        Kommentar


          #5
          Cool, meine Anleitung verbreitet sich ... :-)

          Kommentar


            #6
            Datei „update_database_aussen_temperatur.sh“ mit vi aufrufen
            Sorry, aber ich stehe auf dem Schlauch...
            Wo befindet sich diese Datei? Habe doch nur die "database_aussentemperatur.rrd" angelegt. Oder übersehe ich was.

            Danke

            Kommentar


              #7
              Diese Anleitung bezieht sich auch auf das von mir erstellte Image ....

              Kommentar


                #8
                Aha, gut zu wissen... Danke.

                Kommentar

                Lädt...
                X