Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin: Pelletskessel ETA PU

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] Plugin: Pelletskessel ETA PU

    Hallo zusammen,

    ja ist den heut schon Weihnachten...

    Ich habe soeben von meinem Heizungshersteller erfahren, daß mein Heizkessel neben einer properitären Fernsteuerung übers Web auch Webservices zur Integration in andere Systeme (also KNX) unterstützt.

    Anbei die entsprechenden Dokumente für alle, die sich mit mir freuen wollen.

    Jetzt geht es daran, daraus ein passendes Plugin zu basteln, ohne über eine RS-232 Schnittstelle gehen zu müssen.

    Gibt es schon Plugins, die solche Webservices verarbeiten?
    GET /user/var/112/10021/0/0/12112 HTTP/1.1

    POST /user/var/112/10021/0/0/12112 HTTP/1.1
    Content-Type: application/x-www-form-urlencoded

    value=1803

    PUT /user/vars/myset1/112/10021/0/0/12112 HTTP/1.1

    Danke
    Sascha

    Angehängte Dateien

    #2
    Heidewitzka.
    Seit 2 Jahren nerve ich ETA. Diskutiere dies und jenes mit denen. Die alten Kessel hatten ja seriell, das ging ganz gut. Die neuen. Naja, die funktionieren, aber der CAN Bus war nicht so mein Ding.
    Ich habe Quartalsweise Trostmails bekommen und letzte Woche dann die Info, das es nun geht.
    Missträuisch die Website angeschaut und ... für gut befunden, was da geht. Man muss die Kiste wohl registrieren, aber dann ist Netzwerk oben und man kann loslegen.
    Ich denke, ich werds am Wochenende mal probieren.
    Die Webservices sind ja weniger das Problem. Wenn Du weisst was Du brauchst, kannst Du es auch mit wget und co einfach auslesen. Das XML ist nicht so schwer zu parsen...
    Derzeit zwischen Kistenauspacken und Garten anlegen.
    Baublog im Profil.

    Kommentar


      #3
      Denke das kann man Klasse im Plugin machen, vor allem wenns Pellets und keine Raketentreibstoffe sind, wo es eher um Minuten als um ms geht
      use XML::Simple o.ä.

      -> Wenns konkrete Fragen/Probleme gibt: fragen. Ohne "lebendes Beispiel" aber immer schwer.. Im Zweifel hilft ein Link zur Detail-Doku oder ein Capture von etwas funktionierendem zum weiterhelfen..

      Makki
      EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
      -> Bitte KEINE PNs!

      Kommentar


        #4
        Das war die Detail Doku
        Ich werds Wochenende mal mit wget Browsen, um erstmal zu sehen, was so geboten wird. Das ist ja das schlimme aeh schöne an XML, das noch nicht klar sein muss, welche Werte alles rauskommen und wo sie gespeichert sind...

        Mir gehts primär mal um Meldungen wie "Aschebox voll", da ETA das leider nicht als Störung sieht und den vorhandenen Störungskontakt dabei nicht betätigt. Da Asche auch nur 3 mal im Jahr raus muss, vergisst man das ruckzuck.

        Gruß
        Derzeit zwischen Kistenauspacken und Garten anlegen.
        Baublog im Profil.

        Kommentar


          #5
          Zitat von makki Beitrag anzeigen
          use XML::Simple o.ä.

          -> Wenns konkrete Fragen/Probleme gibt: fragen. Ohne "lebendes Beispiel" aber immer schwer..
          Hallo zusammen,

          ich habe jetzt mal rumprobiert und scheitere am XML-Parser, da die XML Datei für mich einen andere Struktur hat, als z. B. GoogleWeather oder bei Wetter.com:

          Code:
          <eta version="1.0" xmlns="[URL]http://www.eta.co.at/rest/v1[/URL]">
            <menu>
              <fub uri="/112/10021" name="Kessel">
                <object uri="/112/10021/0/0/12010" name="Zählerstände">
                  <object uri="/112/10021/0/0/12153" name="Volllaststunden"/>
                  <object uri="/112/10021/0/0/12016" name="Gesamtverbrauch"/>
                  <object uri="/112/10021/0/0/12014" name="kg seit Wartung"/>
                  <object uri="/112/10021/0/0/12011" name="Behälterinhalt"/>
                  <object uri="/112/10021/0/0/12012" name="kg seit Entaschung"/>
                  <object uri="/112/10021/0/0/12013" name="kg seit Kübel entleeren"/>
                </object>
                <object uri="/112/10021/0/0/12000" name="Kessel">
                  <object uri="/112/10021/0/0/12180" name="Kesseldruck"/>
                  <object uri="/112/10021/0/0/12161" name="Kessel">
          Wie komme ich z. B. an den Wert /112/10021/0/0/12011 für Behälterinhalt?

          Das hier hat nicht funtioniert:
          Code:
          use LWP::Simple;
          use XML::Simple;
          my $XML_Menu = XMLin( get($URL) );
          return $XML_Menu->{menu}->{"fub name"}->{"Kessel"}->{"object name"}->{"Zählerstände"}->{"object name"}->{"Behälterinhalt"}->{"object uri"};
          Das hier geht auch nicht:
          Code:
          return $XML_Menu->{menu}->{"fub name"}->{"Kessel"}->{"object name"}->{"Behälterinhalt"}->{"object uri"};
          Ich gebe schonmal zu, daß das evtl. stümperhaft ist. Mir bleibt nichts anderes übrig, als mich Stück für Stück "ranzutasten", weil meine Programmierkenntnisse bescheiden sind.

          Danke schonmal für einen heißen Tipp!
          Sascha

          Kommentar


            #6
            Ich hab vor, die interessanten Daten dann einfach per wget zu holen.
            Die URI steht ja das und das sollte gehen?
            Derzeit zwischen Kistenauspacken und Garten anlegen.
            Baublog im Profil.

            Kommentar


              #7
              Zitat von greentux Beitrag anzeigen
              Ich hab vor, die interessanten Daten dann einfach per wget zu holen.
              Wie schaut das denn in Perl aus?

              Ich möchte nicht nur die Daten abziehen. Viel interessanter ist es die Variablen zu ändern, um dem Kessel etwas Intelligenz anzuerziehen z. B. Heizungsaktor fordert keine Leistung an, Heizkreis aus. Bei mir gehen nämlich relativ viele Pelletes verloren, weil der Kessel ewig seine StandBy Temperatur halten will, weil ja irgendwann geheizt werden könnte.

              Kommentar


                #8
                Das verstehe ich nicht ganz.
                Wenn Dein Heizaktor keine Energie abnimmt, dann erreicht der verbleibende Heizkreis relativ schnell die VL Temperatur und damit ist dann Sense... oder? Also es glhen noch ein paar Pellets vor sich her, aber es wird nicht wirklich mehr was verbrannt. Weil, wo sollte denn die Energie da dann hin....?

                Ich betreibe die Kiste derzeit ohne Aktoren mit abgeglichenen Heizkreisen und bin "nur" noch am korrigieren der Heizkurve.
                Derzeit zwischen Kistenauspacken und Garten anlegen.
                Baublog im Profil.

                Kommentar


                  #9
                  Zitat von greentux Beitrag anzeigen
                  Das verstehe ich nicht ganz.
                  Wenn Dein Heizaktor keine Energie abnimmt, dann erreicht der verbleibende Heizkreis relativ schnell die VL Temperatur und damit ist dann Sense... oder?
                  Leider nicht, der Kessel versucht immer, die Grundtemperatur zu halten. Also VL-Soll + X. Das kann ich ihm nur aberziehen, wenn ich ihm mitteile daß alles gut ist und er nicht heizen braucht. Er kennt ja die Situation der Räume nicht.

                  Außerdem habe ich noch einen 2. Heizkreis mit Heizkörpern, der mit höherer VL-Temperatur betrieben wird. Wenn die Heizkörper keine Energie wollen, dann braucht der Kreis auch nicht laufen.

                  Kommentar


                    #10
                    Wie wird denn Dein Kessel gesteuert?
                    Nach Raumtemperatur oder nach Aussentemperatur?

                    Ich mein, wenn da kein Wasser fliest, dann hat der ein paar Liter auf Temperatur zu halten...

                    Ich finde die eingebaute Steuerung ist schon recht überdacht.
                    Anzahl Starts/Zündungen haben schonmal ein gutes Verhältnis. Und das ohne Puffer, rein moulierend.
                    Derzeit zwischen Kistenauspacken und Garten anlegen.
                    Baublog im Profil.

                    Kommentar


                      #11
                      Zitat von greentux Beitrag anzeigen
                      Wie wird denn Dein Kessel gesteuert?
                      Nach Raumtemperatur oder nach Aussentemperatur?
                      Der Kessel (Heizkurve) ist nach Außentemperatur ohne Puffer gesteuert. Die Steuerung nach Raumtemperatur will ich ihm über die Schnittstelle und Logiken geben.

                      Schon klar, daß kein Wasser fließt. Aber wenn der Kessel mit seinem geringen Volumen immer versucht ca. 50°C zu halten, dann moduliert er an der untersten Leistungsgrenze bis er die obere Ausschalttemperatur erreicht hat während das 60W Gebläse unnötig Strom verballert .

                      An einem kalten sonnigen Tag brauche ich durch die solaren Gewinne fast keine zusätzliche Heizung, aber der Kessel läuft. Genau sowas will ich ihm aberziehen.
                      Mir ist an einem sonnigen Tag die Heizungspumpe ausgefallen und ich habe den Kessel (Brenner) ausgeschaltet und nur noch der Kreis für die FBH lief. Der Kesselinhalt hat ca. 20h gereicht bis er unter die VL-Temperatur gesunken ist. Das hat mir zu denken gegeben.

                      Die Steuerung ist an Sich echt schick, aber 100% durchdacht ist die auch nicht. z. B. wenn ein Solarkreis angeschlossen ist, dann gibt es keinen Schutz der Kollektoren vor Überhitzung. Genauso verhält es sich mit der Bereitschaftstemperatur des Kessels. Da braucht die Kesselsteuerung etwas mehr Input (Stellgrößen Heizungsaktoren bzw. Raumtemperaturen).
                      Außerdem halte ich es für sinnvoll, daß die Absenkungszeiten bzw. Zeiten für WW über den Bus vorgegeben werden.

                      Also gibts da noch viel Optimierungsbedarf, um das Teil noch sparsamer zu machen.

                      Kommentar


                        #12
                        Ok, das mit dem WW ist ein Punkt. Das wäre schonmal "nett". Wobei ich da jetzt eine Variante gefunden hab. Aber das der nicht gleichzeitig WW und Heizen kann ist halt schon ein Problem und muss bedacht werden.
                        Daher wärs schon schön, wenn es auf der Visu einen Warmwasserspeicher gäbe und die Frau sich denkt "pack die Kinder mal ausser der Reihe in die Wanne" und das halt anfordern kann. Wobei "smart" ists dann nicht

                        Das bei Sonne in die Südfenster das alles reichte liegt aber auch daran, das vermutlich der Boden von der Sonne auf > VL geheizt wurde und damit der Heizkreis Wärme abtransportiert hat! Das ist bei den heutigen niedrigen VL durchaus ein Effekt (Selbstregeleffekt).

                        Gut bleiben wir mal dran.
                        Derzeit zwischen Kistenauspacken und Garten anlegen.
                        Baublog im Profil.

                        Kommentar


                          #13
                          Naja, gut zu wissen, daß ich nicht der Einzige bin, der die PU von ETA an den Bus bringen will (lesen + schreiben).

                          Jetzt ist da nur noch mein Problem mit dem Parsen der XML Datei, ohne weitergehende Programmierkenntinisse.

                          Kann mir jemand auf die Sprünge helfen?

                          Danke
                          Sascha

                          Kommentar


                            #14
                            So ich habe mich nun entschlossen, die Variablen des Kessels nicht aus der Menustruktur zu parsen, sondern in einem Array direkt (hardcode) vorzugeben.

                            Nun stellt sich das Problem beim Parsen der Menustruktur in anderer Weise beim Parsen der Rückgabewerte wieder...

                            Ich bekomme folgende XML Struktur:

                            Code:
                            <eta version="1.0" xmlns="[URL]http://www.eta.co.at/rest/v1[/URL]">
                            <value uri="//user/var/112/10021/0/0/12317" strValue="xxx" unit="" decPlaces="0" scaleFactor="1" advTextOffset="1800">
                            1800
                            </value>
                            </eta>
                            Den Value Wert von 1800 zu parsen schaffe ich ;-)
                            Aber wie komme ich an die Attribute von value?: strValue, unit, decPlaces, scaleFactor, advTextOffset

                            Danke
                            Sascha

                            Kommentar


                              #15
                              So ich komme erstmal dran an die Kiste. Das hat schonmal geklappt. Läuft bei dir die 1.20_1? Bei mir wird die nicht geupdatet. Daher die 1.20_0 am laufen.

                              Bisher hab ich erstmal den Webbrowser genommen und durch die xml gesurft. Geht ja auch.
                              Ich frage mich nun, ob Asche voll, dann wirklich mal als Fehler auftaucht. Ich bin gespannt.
                              Nun bleiben mir armseligen Programmierwürstchen zwei Möglichkeiten:
                              a) ich mach das auf der Shell mit wget, grep und co
                              b) ich suche mir am Montag einen Kollegen, der das elegant in Perl/Python macht, wobei Perl wg WG wohl prio hätte...
                              Derzeit zwischen Kistenauspacken und Garten anlegen.
                              Baublog im Profil.

                              Kommentar

                              Lädt...
                              X