Ankündigung

Einklappen
Keine Ankündigung bisher.

vcontrold (Dämon für Viessmann Heizungssteuerungen) für EDOMI

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

    #61
    Zitat von MichaP Beitrag anzeigen
    Habt ihr schon mal versucht, einen Set-Befehl an die Heizung zu senden? Ich habe per SHELL-Befehl vclient -h 127.0.0.1:3002 -c 'setBetriebsartM2 2' versucht, die Betriebsart zu senden, leider ohne Erfolg. In putty funktioniert es.
    Selbst habe ich es auch noch nicht versucht, aber auf GitHub hatte gerade ein User ein ähnliches Problem: https://github.com/openv/openv/issues/383

    Zitat von RBender Beitrag anzeigen
    Es gibt im übrigen eine neue Vito.xml auf GitHub.
    Ich habe sie aber nicht getestet!
    Welche Datei meinst du da? Könntest du vielleicht einen Link posten? Es ist ja so, dass jede Kombination aus Anlage und Steuereinheit eigene Adressen hat und die vito.xml-Dateien nicht allgmeingültig sind. Daher wäre es interessant für welche Anlage es eine neue vito.xml gibt.
    Gruß
    Stefan

    Kommentar


      #62
      Zitat von MrIcemanLE Beitrag anzeigen

      Welche Datei meinst du da? Könntest du vielleicht einen Link posten? Es ist ja so, dass jede Kombination aus Anlage und Steuereinheit eigene Adressen hat und die vito.xml-Dateien nicht allgmeingültig sind. Daher wäre es interessant für welche Anlage es eine neue vito.xml gibt.
      Naja meine derzeitige vito-Datei ist schon so eine allgemeingültige. Die ist für mehr als eine Steuerung. In vcontrold wurde dann festgelegt welches setting genutzt werden soll. Bei mir war das 20CB.

      Das sollte die aktuellste nur für die 20CB sein: https://github.com/openv/openv/wiki/...-Masterdateien

      Kommentar


        #63

        Zitat von MichaP Beitrag anzeigen
        Habt ihr schon mal versucht, einen Set-Befehl an die Heizung zu senden? Ich habe per SHELL-Befehl vclient -h 127.0.0.1:3002 -c 'setBetriebsartM2 2' versucht, die Betriebsart zu senden, leider ohne Erfolg. In putty funktioniert es.
        Nur so zur Info, was ist aus deinem Set-Problem geworden?

        Kommentar


          #64
          Ich bin noch nicht weitergekommen. Die Betriebsart lesen und setzen via Konsole funktioniert bereits. Nun möchte ich eine Logik aufbauen, bei der ich die Heizung auf "Nur Warmwasser" setze (Betriebsart 1), wenn die Solltemperatur in den Räumen erreicht wurde und keine Wärme mehr abgenommen wird. Momentan läuft die Heizkreispumpe sinnlos weiter. Aus EDOMI heraus via SHELL-Befehl oder LBS funktioniert das Setzen bei mir noch nicht. Bin aber weiter dran. :-) Hat jemand schon einen Set-Befehl aus EDOMI hinbekommen?

          Kommentar


            #65
            Hast du mal geklärt ob die Heizungspumpe wirklich trotz geschlossener ERR wirklich weiterläuft. Das glaube ich nämlich nicht.

            Ich bin mir auch nicht sicher ob es wirklich so sinnvoll ist die Pumpe aus zuschalten nur weil die Solltemperatur erreicht ist. Eigentlich verliert die Gebäudehülle doch ständig Energie und würde es Sinn machen die Pumpe laufen zu lassen. Ein überhitzen verhinderst du durch eine gute Heizkurve.


            Aber ich wollte dein Unterfangen nicht bremsen!

            Kommentar


              #66
              Ich stimme dir hundertprozentig zu, normalerweise würde ich das auch von unserer Heizung erwarten. Leider tut sie es nicht. Unsere Heizung ist witterungsgeführt. Obwohl die Heizkurve schon ganz flach eingestellt ist, fängt sie an, bei sehr kalten Außentemperaturen die Räume unnötig aufzuheizen, die Heizkreisventile machen dann natürlich zu. Die Pumpe läuft trotz ausgeschaltetem Frostschutz weiter. Zwei Heizungsinstallateure haben sich an diesem Phänomen bereits die Zähne ausgebissen. ;-) Nun versuche ich mich dem Problem zu nähern, in dem ich die Stati der HKV abfrage, mit externen Fühlern die Vorlauf- und Rücklauftemperatur messen will und dann ggf. den Betriebsmodus umschalte. Vielleicht finde ich ja auch noch die Ursache. :-)

              Kommentar


                #67
                Also bei mir funktioniert das auslesen und setzen der Werte auch endlich über die Konsole. Über Edomi kann ich aber auch keine Werte setzen.
                Was ich mich aber gefragt habe, was passiert wenn man z.B. über den LBS fünf minütlich die Werte abfragt und direkt zu dem Zeitpunkt versucht einen Wert zu setzen?
                Bringt das dann alles durcheinander?
                MrIcemanLE hat ja nicht umsonst geschrieben das man bei Verwendung von 2 LBS eine Verzögerung einbauen sollte. Das gleiche tritt ja auch beim Wert setzen ein.

                Ich hab da so eine Idee. Ich schreib das mal zusammen.
                Wäre es möglich das setzen der Werte auch über den LBS machen zu lassen, über einen weiteren Eingang?
                Zusätzlich den vorhanden Eingang so ändern das man soviele Abfragen man möchte eintragen kann.
                Dann einen Eingang für ein Delay.
                Der LBS prüft dann immer welche Befehle anstehen und packt das in 10er Blöcke und schickt das dann an die Heizung, wartet auf dass Delay und schickt den nächsten Block. So kann nie was durcheinander kommen.

                Als Ausgang würde man die Werte einfach als String ausgeben. Somit bräuchte man sich auch nicht auf die Anzahl der Ausgänge festlegen.
                Das einzige für was ich noch keine Idee hab, was passiert mit der Rückmeldung beim Wert setzten.
                Diese vielleicht auf einen extra Ausgang und mit nachgeschaltener Logik auswerten.

                Wie gesagt, das ganze ist ne Idee, vielleicht auch ein Wunsch von mir. Bin jetzt schon total happy mit dem tollen LBS, dass ich überhaupt mal die Werte auslesen kann.

                Über das setzen der Werte würde ich gerne das Betriebsarten umschalten Sommer/Winter = Heizen/Kühlen/nur Warmwasser bewerkstelligen. Also aus reiner Faulheit in den Keller zu gehn .

                Und da wir die Warmwassertemperatur auf 45Grad haben, was uns in 95% der Fälle ausreicht, aber leider nicht reicht zum Badewanne füllen. Würde ich gern vorm Baden das Wasser auf 55Grad erwärmen und dann das Wasser einlassen. Fände es verschwenderisch wegen den paar mal Baden die Temperatur dauerhaft hochzusetzen.

                Vielleicht noch ein Tip, für die die ihre Datenpunkte suchen.
                Auf dieser Seite: https://connectivity.viessmann.com/d...b-05-2016.html
                hat Viessmann ja die Datenpunkte raus genommen. Aber ich hab mir einfach die ETS Applikation geladen, dort kann man sich einige Datenpunkte auch raussuchen.

                PS: Der von mir erwähnte Adapter auf Seite 1 funktioniert übrigens einwandfrei. Bloß leider ist er scheinbar auch ganz schön im Preis gestiegen

                Gruß Ben

                Kommentar


                  #68
                  Ja der Optolink-Adapter ist mächtig im Preis gestiegen. Für Neuanlagen gibt es wohl noch das Angebot von Viessmann, dass man die Vitoconnect für umme bekommt. Dort ist der Adapter dabei. Dafür sollte man seinen Heizi fragen. Oder aber in der Bucht mal nach Vitoconnect schauen. DIe sind komplett tlw. billiger zu haben, als der Adapter alleine.

                  Zum LBS:
                  Ein Baustein, der die Kommunikation in verschiedenen Intervallen selbstständig "regelt" wäre natürlich ein Traum!

                  Kommentar


                    #69
                    Ich könnte mir eine JSON-Variante des LBS vorstellen. Oder ich prüfe am Eingang, ob ein valider JSON-String vorliegt und gebe dann einen JSON-String am Ausgang aus. Dann kann jeder seine Befehle vorher zusammenstricken und danach mit einem JSON-Parser zerlegen.
                    Zuletzt geändert von MrIcemanLE; 11.12.2017, 10:30.
                    Gruß
                    Stefan

                    Kommentar


                      #70
                      Nur drei Sätze und ich habe nicht einen verstanden....

                      Kommentar


                        #71
                        Sorry,

                        JSON ist eine bestimmte Formatierung eines Strings (Zeichenkette). Es gibt LBS die bauen aus mehreren Einträgen eine solche Zeichenkette zusammen.

                        Man/Ich könnte den LBS jetzt so umbauen, dass am ersten Eingang geprüft wird, ob eine solche Zeichenkette vorliegt und alle darin enthaltenen Befehle der Reihe nach abarbeiten. Wenn eine solche Zeichenkette übergeben wurde, werden alle Ergebnisse wieder in einem solchen Format an A1 ausgegeben und könnten mit einem entsprechenden LBS zerlegt werden (JSON Decoder).

                        Besser so?
                        Gruß
                        Stefan

                        Kommentar


                          #72
                          Verstanden! Klingt interessant

                          Kommentar


                            #73
                            Hört sich klasse an. Bin dafür
                            Gruß Ben

                            Kommentar


                              #74
                              Eine kleine Preview der v0.3:
                              Preview.PNG
                              Muss noch ein wenig an den Logeinträgen feilen, aber so sieht es schon ganz gut aus.

                              In der Übersicht oben können also bis zu 10 Werte in Form eine festen Kommandos abgefragt werden (wie gehabt mit einer Pipe getrennt) und "parallel" dazu ein beliebig langer JSON-String übergeben werden. Für die hier abgefragten Werte benötigt mein aktuelles Setup (Intel NUC, 10m USB und Adapter aus dem OpenV-Wiki) 28 Sekunden. Das sollte man berücksichtigen, falls man bestimmte Werte nur zur vollen Stunde abrufen will und andere im 5 Minutentakt. Dann zur Sicherheit eine Verzögerung einbauen. Die "alte" Abfrage findet nach wie vor in einem Kommando statt und das Ergebnis des VClient-Aufrufes wird vom LBS zerlegt und an die Ausgänge verteilt. Anschließend werden alle nicht leeren JSON-Einträge nacheinander abgearbeitet (mit einem eigenen VClient aufruf). Die Ergebnisse werden dem Ursprünglichen Key wieder zugewiesen, sodass man auch mit Keys arbeiten kann, die einem im Nachgang die Zuordung der Werte erleichtert.

                              Soweit ich weiß läuft EDOMI per Default auf PHP 5.3.3. In dieser Version kann man die Tiefe des JSON-Strings nicht (einfach) prüfen. Wenn also ein geschachtelter String übergeben wird, kommt es zu einem Fehler, der im Log-File dokumentiert wird. Der LBS sollte aber trotzdem laufen.

                              Ich denke mit dieser Variante können alte Logiken trotz Update bestehenbleiben.

                              ToDo: Setzen von Werten testen
                              Beim Setzen von Werten muss ja der Wert mit übergeben werden. Ich denke dass das JSON-Array dann den Befehl in einfachen Anführungszeichen enthalten sollte 'setTempWW 60' oder so. Da ich bisher noch keinen Wert habe, den ich von EDOMI aus setzen möchte und damit auch noch keine passende Adresse für meine Anlage rausgesucht habe, kann ich das aktuell nicht testen. Wenn hier jemand Feedback hätte, wäre das super (sobald der LBS freigegeben ist).
                              Gruß
                              Stefan

                              Kommentar


                                #75
                                Super, vielen vielen Dank. Das ging ja jetzt verdammt schnell.
                                Das testen der Werte setzten teste ich doch gerne
                                Gruß Ben

                                Kommentar

                                Lädt...
                                X