Ankündigung

Einklappen
Keine Ankündigung bisher.

openHAB || Volkszähler

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

    #31
    Ach so, macht Sinn.

    Grüsse

    Kommentar


      #32
      Hi,

      ich habe volkszaehler auf einem Pi laufen und openHAB auf einem anderen Pi laufen. Geht es nicht, die middleware von volkszaehler anzuzapfen um die Daten auszulesen? Also nicht über den USB Lesekopf, denn der steckt ja an einem anderen Pi, sondern über die Middleware?
      Info zur API gibt es ja hier: volkszaehler.org - wiki - Referenz
      Wie würde dann die Items Datei aussehen, wenn man die Werte z.B. als JSON einlesen will?
      Danke

      Gruß
      Christian

      Mein EIB-Projekte:
      EIB-Interface -> Siemens N148/21 IP-Schnittstelle
      EIBD -> FritzBox 7170 WLAN Router
      linKNX -> Synology DS101j NAS
      Visu -> eigene PHP-Seiten

      Kommentar


        #33
        Für jeden Zähler brauchst Du ein Number Item mit http-binding:
        Code:
        Number Current_L1 "L1 [%.1f W]" (Current) { http="<[http://<server>/volkszaehler.org/middleware.php/data/<uuid>.xml?from=-1Minute&to=+1Minute:60000:XSLT(volkszaehler_avg.xsl)]" }
        <server> und <uuid> musst Du natürlich mit den passenden Werten ersetzten.

        Die Inhalt der volkszaehler_avg.xsl sieht so aus:
        Code:
        <?xml version="1.0"?>
        <xsl:stylesheet
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
                <xsl:output indent="yes" method="xml" encoding="UTF-8" omit-xml-declaration="yes" />
                <xsl:template match="/">
                        <xsl:value-of select="//volkszaehler/data/average/text()" />
                </xsl:template>
        </xsl:stylesheet>
        Das ist jetzt die XML-Variante, mit JSON sollte das sicher auch gehen, hab ich aber kein Beispiel für.
        Gruß
        Tobias

        Kommentar


          #34
          Hey Tobias,

          super, hat geklappt!
          Danke

          Gruß
          Christian

          Mein EIB-Projekte:
          EIB-Interface -> Siemens N148/21 IP-Schnittstelle
          EIBD -> FritzBox 7170 WLAN Router
          linKNX -> Synology DS101j NAS
          Visu -> eigene PHP-Seiten

          Kommentar


            #35
            Hallo,

            muss den Thread wieder ausgraben, da bei mir das Übertragen der Daten nicht funktioniert. Im Gegensatz zu cni hab ich volkszähler und openhab auf einem Pi laufen, aber die Lösung von peuter sollte ja trotzdem funktionieren.

            Hier mein Item:

            Code:
              Number Current_L1 "L1 [%.1f W]" (UEBERBLICK) {http="<[[URL="http://192.168.2.110/volkszaehler.org/middleware.php/data/uuid.xml?from=-1Minute&to=+1Minute$:60000:XSLT(volkszaehler_avg.xsl"]http://192.168.2.110/volkszaehler.org/middleware.php/data/uuid.xml?from=-1Minuteto=+1Minute$:60000:XSLT(volkszaehler_avg.xsl[/URL])]"}
            Die volkszaehler_avg.xsl hab ich 1:1 übernommen und in /transform gespeichert.

            Wert wird keiner angezeigt, im Log erscheint u.a. folgendes:

            Code:
             org.openhab.core.binding.AbstractActiveBinding$BindingActiveService.execute(AbstractActiveBinding.java:156) [org.openhab.core_1.7.1.jar:na]
              at org.openhab.core.service.AbstractActiveService$RefreshThread.run(AbstractActiveService.java:173) [org.openhab.core_1.7.1.jar:na]
              Caused by: javax.xml.transform.TransformerException: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: White spaces are required between publicId and systemId.
              at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:584) ~[na:1.8.0]
              at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:745) ~[na:1.8.0]
              ... 5 common frames omitted
              Caused by: com.sun.org.apache.xml.internal.utils.WrappedRuntimeException: White spaces are required between publicId and systemId.
              at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:427) ~[na:1.8.0]
              at com.sun.org.apache.xalan.internal.xsltc.dom.XSLTCDTMManager.getDTM(XSLTCDTMManager.java:215) ~[na:1.8.0]
              at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getDOM(TransformerImpl.java:562) ~[na:1.8.0]
              ... 6 common frames omitted
              2015-11-17 10:56:50.001 [ERROR] [.o.b.http.internal.HttpBinding] - transformation throws exception [transformation=XSLT(volkszaehler_avg.xsl), response=<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
              <html><head>
              <title>404 Not Found</title>
              </head><body>
              <h1>Not Found</h1>
              <p>The requested URL /volkszaehler.org/middleware.php/data/4f7b9260-89f4-11e5-900a-2d4f3289aae7.xml was not found on this server.</p>
              <hr>
            Die Volkszähler Frontend läuft unter 192.168.2.110, die uuid passt auch.

            Kommentar


              #36
              Und normal über den Browser kannst Du auf die Daten zugreifen? Schau Dir im Zweifel mal genau die URL an, vielleicht ist da irgendwo eine winzige Abweichung (z.B. auch Groß/Kleinschreibung kann ein Problem sein, falls der Webserver entsprechend konfiguriert ist).

              Kommentar


                #37
                Funzt! Zumindest soweit ich das bei dem trüben Wetter beurteilen kann, die die PV jetzt zu wenig Leistung liefert.
                Musste "volkszaehler.org" entfernen. DANKE!

                Kommentar


                  #38
                  Hallo Zusammen,

                  wollte gerade Eure Lösung verwenden um diverse Temperaturen vom volkszähler (aus der Datenbank) auszulesen. Leider bekomme ich keine Anzeige im Openhab, obwohl die Abfrage zu funktionieren scheint. Jemand eine Idee?

                  openhab events.log
                  Code:
                  2015-12-21 17:28:32 - Aussen state updated to <?xml version="1.0" encoding="UTF-8"?>
                  <volkszaehler version="0.3"><data><uuid>afc576b0-905e-11e5-bc20-9bfa3c52ffd6</uuid><from>1450714081096</from><to>1450715281079</to><min timestamp="1450714681082" value="10.5625"/><max timestamp="1450714681082" value="10.5625"/><average>10.563</average><rows>3</rows><tuples><tuple timestamp="1450714681082" value="10.563" count="1"/><tuple timestamp="1450715281079" value="10.563" count="1"/></tuples></data></volkszaehler>
                  openhab items
                  Code:
                  Number Aussen "Außentemperatur [%.1f °C]" <temperature> (gKE) {http="<[http://192.168.7.76/middleware.php/data/afc576b0-905e-11e5-bc20-9bfa3c52ffd6.xml?from=-1Minute&to=+1Minute:60000:XSLT(volkszaehler_avg.xsl)]"}
                  gKE = Gruppe Keller

                  openhab sitemap
                  Code:
                  Frame label="Wetter" {
                          Text item=Aussen    
                          }
                  Beide Felder (Gruppe Keller und Wetter) zeigen keine Temperaturwerte an. Muß ich hier etwas Puffern beim http Binding?

                  Vielen Dank und Grüße
                  Ralf

                  Edit:

                  Sorry, funktioniert. Man sollte die volkszaehler_avg.xsl auch im richtigen Ordner parken....

                  Zuletzt geändert von Oetsch; 22.12.2015, 07:31.

                  Kommentar


                    #39
                    Hallo
                    Ich hab openhab auf einem Raspberry laufen und möchte den Stromzähler ( Smart meter Landys&Gyr) mit einem IR Lesekopf auslesen.
                    Der Lesekopf bringt Daten, hab ich mit einer Testsoftware direkt auf den Laptop bekommen. Sollte also passen:
                    Ich hab versucht den vzlogger zu installieren, bin aber gescheitert.
                    Aus eurem Forum hab ich gesehen, dass es vielleicht direkt auch geht.
                    Ich bräuchte im Prinzip nur den aktuellen Verbrauch. Alles andere ist Zugabe.
                    Kann mir da jemand weiterhelfen ?

                    Danke

                    Kommentar


                      #40
                      Du musst halt schauen, welches Protokoll Dein Smartmeter spricht. wenn Du Glück hast, ist es SML, dafür gibt es schon ein Binding, auch wenn es komischerweise keine eigene Seite im Wiki hat. Zumindest gibt es aber eine Samples-Seite, das Binding werden wir auftreiben können. Falls es ein anderes Protokoll ist, musst Du halt ein Script schreiben, welches den Zähler ausliest und den gewünschten Wert entweder per Rest an openHAB sendet (script läuft per cron über das Betriebssystem) oder aber den Wert selbst ausgibt, dann kannst Du das Script über das Exec Binding auslesen.

                      Kommentar


                        #41
                        Ich hab da ein Testprogramm gefunden.
                        http://www.meter-test-equipment.com/...ownload&lng=en

                        Mit dem hab ich zumindestens eine Logdatei bekommen. Die Daten werden von dem Programm separat geholt. Hab ich im Anhang dabei.
                        Der Lesekopf ist folgender:
                        http://wiki.volkszaehler.org/hardwar...hreib-lesekopf --> und zwar die USB Version
                        http://wiki.volkszaehler.org/hardwar...pf-usb-ausgang

                        Ich hab schon einige Anleitungen durchprobiert.


                        Angehängte Dateien

                        Kommentar


                          #42
                          Hallo
                          Nach vielen Versuchen hab ich es leider noch nicht geschafft. Ich finde nicht raus, ob irgendwelche Daten am Raspberry ankommen.
                          Mit oben genannten Testprogramm funktioniert es.
                          Ich hab mit Minicom die ensteprechenden Einstellugnen gemacht, sollte also passen.
                          Mit "cat /dev/ttyUSB0" wird wohl etwas im Hintergrund gestartet, es erfolgt jedoch keine Ausgabe.
                          Erst nach Abbruch ist der Raspberry wieder eingabebereit.

                          Kommentar


                            #43
                            Code:
                            cat /dev/ttyUSB0
                            führt ja nur dazu, dass alles, was von der Schnittstelle kommt, auf die Ausgabe der Konsole geleitet wird. Da Du aber keine Daten abfragst, wirst Du da auch nichts bekommen.
                            Du brauchst ein Script, welches die Kommunikation mit Deinem Zähler übernimmt und die Daten in einem vernünftigen Format zur Verfügung stellt, also als Textausgabe auf der Konsole (dann kannst Du es bequem per exec Binding abfragen) oder als Wertausgabe über REST (dann liefert das Script regelmäßig seine Daten direkt in das Item).

                            Du kannst auch versuchen, das komplett über openHAB zu erschlagen, dann brauchst Du eine Rule, die <06>050<0D><0A> an /dev/ttyUSB0 schickt und anschließend die Antwort in einem Item speichert, um anschließend die gewünschten Werte (vermutlich 1.8.1 und 1.8.2) in andere Items zu kopieren.
                            Wahrscheinlich gibt es auch einen Befehl, der nur die aktuellen Werte ausspuckt, Du willst ja nicht die Zählerstände zu Beginn jeden Monats des letzten Jahres...

                            Grundsätzlich ist das Protokoll aber d0, vielleicht findest Du da ein Script bei volkszaehler.org oder in den Tiefen des Internet.

                            Kommentar


                              #44
                              Ich hab da was gefunden.
                              https://github.com/openhab/openhab/w...-Meter-Binding

                              Das sieht ja zu einfach aus.
                              So wie ich es verstehe, gibts da schon ein Binding.
                              Ich kann ja das mal versuchen und in den ITEMS mit Regex schauen, was da daherkommt.
                              Oder fehlt da noch was ?

                              Kommentar


                                #45
                                Ja, das sieht gut aus. Schade, dass in dem Text D0 als Datenformat nicht erwähnt ist...

                                Kommentar

                                Lädt...
                                X