Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Vcontrold - funktionierendes images für raspi 3

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Vcontrold - funktionierendes images für raspi 3

    This topic has been deleted. Only users with topic management privileges can see it.
    • bahnuhr
      bahnuhr Forum Testing Most Active last edited by

      So, nachdem der Fehler wieder kam, hab ich mal folgendes gemacht:

      per winscp mit dem raspi verbunden; putty aufgerufen, dann

      sudo /etc/init.d/vcontrol force-reload

      (damit wird wohl die konfig neu geladen und alte verbindungen gelöscht)

      dann

      Instanz in iobroker neu gestartet.

      und es geht wieder.

      Was ich also bräuchte:

      man müsste per script überwachen ob ein Fehler auftritt.

      Wenn ja, dann o.g. Befehl an den raspi

      Und dann instanz neu starten.

      Kann mir da jemand mal dabei helfen?

      Vielleicht liest ja doch der Entwickler mit und sagt mir ob ich richtig liege?

      Wenn ja, dann vielleicht auch den Adapter anpassen.

      mfg

      Dieter

      1 Reply Last reply Reply Quote 0
      • bahnuhr
        bahnuhr Forum Testing Most Active last edited by

        Alternative wäre:

        Im Raspi bei crontab einen cron erzeugen, der alle 30 Min. (oder so) den force-reload Befehl ausführt.

        Und bei den Instanzen genauso; also Adapter neu starten alle 30 Min.

        Könnte so gehen; ist aber doch nicht so gedacht.

        mfg

        1 Reply Last reply Reply Quote 0
        • bahnuhr
          bahnuhr Forum Testing Most Active last edited by

          So, habe (glaub ich) eine Lösung für mich gefunden:

          Habe ein Script geschrieben (eher Paul hat es geschrieben; ich hab es nur angepasst) was auf dem raspi den Befehl

          sudo /etc/init.d/vcontrol force-reload

          ausführt. Hierbei werden bestehende Verbindungen beendet (das war wohl das Problem).

          Danach wird der Adapter Viessmann beendet und nach 15 Sek. neu gestartet.

          Nun das Script:

          // Wenn der Viessmann Adapter keine Daten mehr bekommt (Verbindung nicht geschlossen) dann force_reload beim raspi und Adapter nach 2 Min. neu starten
          
          const Client = require('ssh2').Client;
          
          function raspi() {
            var conn = new Client();
            conn.on('ready', function() {
              conn.exec('sudo /etc/vcontrold/force_reload.sh', function(err, stream) {
                if (err) throw err;
                stream.on('close', function(code, signal) {
                  conn.end();
                }).on('data', function(data) {
                  log('Ausgabe: ' + data);
                }).stderr.on('data', function(data) {
                  log('Fehler: ' + data);
                });
              });
            }).connect({
              host: '192.168.xxx.xx', // IP des RPi
              port: 22,
              username: 'root',
              password: 'xxxxx'
            });
          }
          
          on({id: "viessmann.0.info.connection", change:"ne", val: false, ack: false}, function(obj){
                  log ('Viessmann war nicht mehr verbunden; Raspi und Adapter neu gestartet!');
                  raspi();
                  setState('system.adapter.viessmann.0.alive', false);
                  setStateDelayed('system.adapter.viessmann.0.alive', true, 15000);
          });
          
          

          Danke nochmal an Paul53.

          Achja, Voraussetzung für das Script ist das Einbinden von ssh2 beim javascript Adapter.

          Werde das nun mal beobachten ob alles richtig läuft.

          mfg

          Dieter

          P.S.

          Besser wäre natürlich wenn der Adapter diese (oder ähnliche) Prozedur automatisch ausführen würde.

          1 Reply Last reply Reply Quote 0
          • blauholsten
            blauholsten Developer last edited by

            @bahnuhr:

            Vielleicht liest ja doch der Entwickler mit und sagt mir ob ich richtig liege?

            Wenn ja, dann vielleicht auch den Adapter anpassen.

            mfg

            Dieter `
            Jetzt lese ich mit, schaue mir das die<tage an.</r=""></tage>

            1 Reply Last reply Reply Quote 0
            • blauholsten
              blauholsten Developer last edited by

              Hi,

              nur mal auf die schnelle, das ist aus aktueller Sicht, kein Fehler des Adapters.

              Wenn ich mir deinen ersten Lag Auszug anschaue, macht der alles wie er es soll.

              Ich habe kurz unter openv geschaut, dort gibt es diesen Eintrag https://github.com/openv/openv/issues/37

              daraus entnehme ich, das es dort Probleme mit der USB Konfig gibt.

              Kann es eventuell sein, das dein Optolink Adapter, oder der <usb port,/sich/nach/einer/gewissen/zeit/aufhängt?/<br="">Alles was Vcontrold an sich betrifft, bin ich leider nicht der richtig Ansprechpartner.</usb>

              WikiSpaxe created this issue in openv/openv

              open error read tty #37

              1 Reply Last reply Reply Quote 0
              • bahnuhr
                bahnuhr Forum Testing Most Active last edited by

                Hallo blauholsten,

                danke, dass du jetzt mitliest.

                Ich schreib dir mal ne Zusammenfassung und wie ich es jetzt gelöst habe (funktioniert fast richtig)

                Ausgangslage:

                iobroker ist auf win laptop im büro.

                raspi 2 mit vcontrol anleitung installiert läuft im Keller bei der Heizung

                Der raspi ist per lan verbunden mit Heimnetz

                Problem war:

                Es kam immer wieder der Fehler wie oben beschrieben, also "Vctrld send Error; err, error read tty"

                Ich habe folgendes probiert:

                Kurzform:

                auf raspi ausführen: sudo /etc/init.d/vcontrol force-reload

                dann Instanz neu starten und läuft wieder

                Nun habe ich mir überlegt wie bekomme ich das ganze in ein Script.

                Die 1. Idee war:

                sh script für raspi schreiben und per crontab auf dem raspi jede Stunde ausführen lassen

                dann Instanz viessmann jede Stunde und 5 Min. ausführen lassen.

                Fazit:

                Funktioniert; aber die cron werden auch dann ausgeführt wenn kein Fehler vorliegt.

                Also brauche ich etwas was auf den Fehler triggert.

                Herausgekommen ist folgendes:

                In der Datei C:\iobroker\node_modules\iobroker.viessmann\main.js eingefügt (ziemlich unten):

                } else if(fail.test(data)) {

                adapter.log.warn('Vctrld send ERROR: ' + data);

                adapter.log.warn('DM: connection auf false gesetzt'); // DM: dies hab ich neu eingefügt.

                client.destroy(); // DM: dies hab ich neu eingefügt. - also nach Fehler "kill client"

                adapter.setState('info.connection', false, true); // DM: dies hab ich neu eingefügt.

                stepPolling();

                Folge davon ist: Wenn ein Fehler auftritt "vctrld send error…" dann log:Warnmeldung und "info.connection" auf false setzen

                Das iobroker script triggert auf false und führt auf dem raspi ein sh.script aus was einen force_reload

                ausführt und eine telegram nachricht schreibt. Danach wird der Adapter neu gestartet.

                Das sh.script auf dem Raspi hat folgende Befehle:

                # force-reload ausfuehren und Text an telegram
                curl -s -k "https://api.telegram.org/bot26337650xxxxxxxxx/sendMessage" -d text="**Pi-Heizung: force-reload ausgefuehrt !**" -d chat_id=25xxxxxx5 -d parse_mode=html
                sleep 3
                sudo /etc/init.d/vcontrol force-reload
                
                

                Das iobroker script sieht wie folgt aus:

                // Wenn der Viessmann Adapter keine Daten mehr bekommt (Verbindung nicht geschlossen) dann force_reload beim raspi und Adapter nach 2 Min. neu starten
                
                const Client = require('ssh2').Client;      //ssh2 muss vorher beim Adapter javascript eingebunden werden.
                
                function raspi() {
                  var conn = new Client();
                  conn.on('ready', function() {
                    conn.exec('sudo /etc/vcontrold/force_reload.sh', function(err, stream) {
                      if (err) throw err;
                      stream.on('close', function(code, signal) {
                        conn.end();
                      }).on('data', function(data) {
                        log('Ausgabe: ' + data);
                      }).stderr.on('data', function(data) {
                        log('Fehler: ' + data);
                      });
                    });
                  }).connect({
                    host: '192.168.xxx.xx', // IP des RPi
                    port: 22,
                    username: 'root',
                    password: 'xxxxx'
                  });
                }
                
                on({id: "viessmann.0.info.connection", change:"ne", val: false, ack: true}, function(obj){
                        log ('Viessmann war nicht mehr verbunden; Raspi und Adapter neu gestartet!');
                        raspi();
                        setState('system.adapter.viessmann.0.alive', false);
                        setTimeout(function() {
                            if (getState('system.adapter.viessmann.0.alive').val === false) {
                                setState('system.adapter.viessmann.0.alive', true);
                            }
                        }, 60000);    
                });
                
                

                Fazit:

                Im laufenden Betrieb funktioniert das ganze.

                Es funktioniert nicht beim neustart von iobroker. Hier will das script ständig den adapter neu starten.

                Hier hilft nur: Script ausschalten; adapter starten; und danach wieder das script neu starten.

                Nachteil ist also:

                • man muss ssh2 bei adapter javascript hinzufügen

                • beim neustart funktioniert das script nicht so richtig

                • Eigentlich ist es so ja nicht gewollt; der Adapter soll ja auch so laufen (ohne Eingriff von mir).

                Wünschenswert wäre:

                • Ich finde den Fehler warum das ganze nicht funktioniert.

                Also entweder bei vcontrol oder beim Adapter

                • oder ich muss mit den o.g. Unzulänglichkeiten leben.

                Es wäre klasse wenn wir den Fehler (im System oder in der Denke) finden könnten.

                mfg

                Dieter

                1 Reply Last reply Reply Quote 0
                • bahnuhr
                  bahnuhr Forum Testing Most Active last edited by

                  @blauholsten:

                  Kann es eventuell sein, das dein Optolink Adapter, oder der `

                  Möglich ist das.

                  Nur wie prüfe ich das; oder besser wie stelle ich dies dann ab?

                  mfg

                  Dieter

                  1 Reply Last reply Reply Quote 0
                  • blauholsten
                    blauholsten Developer last edited by

                    @bahnuhr:

                    @blauholsten:

                    Kann es eventuell sein, das dein Optolink Adapter, oder der `

                    Möglich ist das.

                    Nur wie prüfe ich das; oder besser wie stelle ich dies dann ab?

                    mfg

                    Dieter `

                    Da kann ich dir leider nicht wirklich weiterhelfen…

                    Aber probier doch vielleicht Mal folgendes. Adapter stoppen, eine Verbindung z.B. über PuTTY herstellen, und dann die Verbindung bestehen lassen. In der Zeit immer Mal wieder ein paar Werte abfragen.

                    1 Reply Last reply Reply Quote 0
                    • bahnuhr
                      bahnuhr Forum Testing Most Active last edited by

                      @blauholsten

                      Konntest du mein o.g. Beitrag mal lesen.

                      Kannst du damit was anfangen ?

                      mfg

                      Dieter

                      1 Reply Last reply Reply Quote 0
                      • blauholsten
                        blauholsten Developer last edited by

                        @bahnuhr:

                        @blauholsten

                        Konntest du mein o.g. Beitrag mal lesen.

                        Kannst du damit was anfangen ?

                        mfg

                        Dieter `

                        Inwiefern meinst du das? Ich habe deine Beiträge gelesen. Ich habe auch gesehen was du in der main.js gemacht hast. Dein Problem kommt aber nicht vom Adapter, dieser nimmt nur die Antwort von vcontrold entgegen. Alles andere passiert auf deinem rpi.

                        Probier doch mal den Weg den ich einen Post zuvor geschrieben habe.

                        1 Reply Last reply Reply Quote 0
                        • bahnuhr
                          bahnuhr Forum Testing Most Active last edited by

                          na klar probier ich das aus.

                          Ich weiß aber noch nicht wie ich das dann beseitigen soll.

                          Schaun wir mal.

                          mfg

                          1 Reply Last reply Reply Quote 0
                          • D
                            dtp last edited by

                            @bahnuhr:

                            Irgendwann (1-2 Stunden nach Start) kommt dann "Vctrld send ERROR: ERR: error read tty" `

                            Sorry, sehe diesen Thread erst jetzt. :?

                            Das sieht nach einem Fehler in Verbindung mit der USB-Schnittstelle aus. Ob nun am Raspi oder am Optolink-Adapter, bleibt zu klären. Ist der Adapter selbst gebaut?

                            Grundsätzlich kann ich nur sagen, dass bei mir der Raspi 3 mit Raspbian Stretch Lite seit Monaten problemlos in Verbindung mit dem Optolink-Adapter läuft. Null Abstürze oder Hänger. An der Software - weder an vcontrold, noch an dem viessmann-Adapter - kann es also eher nicht liegen. Ich verwende die Version r107 von vcontrold, die ich nach https://openv.wikispaces.com/vcontrold%20mit%20Raspberry%20Pi installiert habe. Aber wie gesagt, es dürfte sich bei dir eher um ein Hardware-Problem handeln.

                            Ein erster Schritt wäre ggf. mal das Verwenden einer anderen USB-Schnittstelle am Raspi.

                            @bahnuhr:

                            @dtp

                            Du wolltest doch mal ein image zur Verfügung stellen (dachte ich hätte das irgendwo mal gelesen).

                            Kannst du mir mal einen link geben. `

                            Sorry, aber das wird nicht viel helfen, zumal ich meine XML-Dateien auf meinen Heizungstyp zugeschnitten habe. Normalerweise geht die Installation aber nach oben verlinkter Anleitung recht leicht von der Hand, wobei man den Punkt 4.1 komplett auslassen kann.

                            Und wenn du am Ende der Installation

                            sudo /etc/init.d/vcontrol start
                            

                            ohne Fehler aufrufen konntest und per PuTTY oder einem anderen Konsolendienst über

                            telnet localhost 3002
                            

                            das Kommando-Prompt "vctrld>" erhältst, dann sieht das schon mal gut aus.

                            Gruß,

                            Thorsten

                            1 Reply Last reply Reply Quote 0
                            • bahnuhr
                              bahnuhr Forum Testing Most Active last edited by

                              Danke für deine Info.

                              Im Einzelnen:

                              @dtp:

                              Das sieht nach einem Fehler in Verbindung mit der USB-Schnittstelle aus. Ob nun am Raspi oder am Optolink-Adapter, bleibt zu klären. Ist der Adapter selbst gebaut? `
                              Gekaufter, fertiger Viessmann Adapter bei Ebay

                              Weiter:

                              Ich hab diese benutzt: 2018-04-18-raspbian-stretch-lite.img

                              Die verlinkte Anleitung ist die gleiche die ich genommen habe.

                              Habe mit und ohne den Punkt 4 versucht.

                              Ich hatte allerdings ein Problem mit Punkt 3 (sowohl bei Raspi 2 und bei Raspi 3)

                              Es wurde die Datei vcontrold nicht erstellt.

                              Ich habe dann die Datei "vcontrold.init.d.sh" manuell kopiert von /home/pi/openv/vcontrold-doce/vcontrold

                              ins Vereichnis /etc/init.d und umbenennen in "vcontrol".

                              zu Version: wie bekommt man diese angezeigt.

                              zu image: Ich würde dein Image dann auf ne sd karte ziehen und meine xml-Dateien einfügen.

                              zu Kommando-Promt vctrld: ja, der kommt und ich kann auch Befehle eingeben und WErte abrufen. Das funktioniert ja alles.

                              mfg

                              Dieter

                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post

                              Support us

                              ioBroker
                              Community Adapters
                              Donate
                              FAQ Cloud / IOT
                              HowTo: Node.js-Update
                              HowTo: Backup/Restore
                              Downloads
                              BLOG

                              859
                              Online

                              32.1k
                              Users

                              80.7k
                              Topics

                              1.3m
                              Posts

                              5
                              28
                              2993
                              Loading More Posts
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes
                              Reply
                              • Reply as topic
                              Log in to reply
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                              The ioBroker Community 2014-2023
                              logo