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, habe meinen raspi3 mal platt gemacht und alles neu installiert auf einem raspi2.

      Mal schauen obs jetzt besser wird.

      Vielleicht hängt es ja auch wieder daran, dass ich iobroker auf win habe; und der adapter deshalb nicht richtig funktioniert.

      mfg

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

        Nachtrag von mir:

        Es wurde nicht besser

        Der Raspi2 hat zwar länger durchgehalten als der Raspi3; aber nun (nach 1 Tag) die gleichen Fehler.

        "Vctrld send Error; err, error read tty

        Die Instanz ist weiterhin grün.

        Per winscp komme ich auch weiterhin auf den raspi.

        per putty verbinden, klappt auch

        Befehl: sudo /etc/init.d/vcontrol status

        zeigt folgendes:
        1540_bild1.jpg

        Der Service ist doch aktiv, woran liegt das nur ?

        Hat denn hier keiner eine Idee, was das sein könnte.

        mfg

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

          So,

          raspi neu gestartet.

          Adapter neu gestartet.

          Es hat 15 Min. gedauert.

          Dann kam die Fehlermeldung wieder.

          Fazit:

          Ich weiß nicht wo dies herkommt.

          Hilfe, Ideen kommen hier nicht.

          Es antwortet ja nicht einmal jemand.

          Frust.

          Ich geb auf.

          mfg

          1 Reply Last reply Reply Quote 0
          • Dutchman
            Dutchman Developer Most Active Administrators last edited by

            Eventuell liest der Entwickler nicht mit ich benutze diesen Adapter leider nicht.

            Wie währe es Mal ein issue auf github zu erstellen ?

            –-----------------------

            Send from mobile device

            Das schöne ios hat Auto Korrektur zum k****

            Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

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

              issue hab ich eingestellt.

              1 Reply Last reply Reply Quote 0
              • wendy2702
                wendy2702 last edited by

                Hilft dir nicht driekt weiter aber:

                a) kennst du das "Wiki" zu vcontrold: https://github.com/openv/openv/issues?p … dated-desc

                Da gibt es zumindest einen Eintrag der den gleichen Fehler schon in der Überschrift hat.

                Würde hier mal fragen da der Adapter laut meinem Verständnis (grob umschrieben) ja eigenlich nur die Werte aus Vcontrold in iobroker Objekte packt.

                b) ich hatte ein ähnliches Problem beim Auslesen meiner Heizung über ein Javascript, da lag es Zeitweise daran das der Serielle Port doppelt abgefragt wurde bzw. der Port dadurch nicht mehr richtig geschlossen wurde. Bei mir lag es letztendlich an den Verbindungseinstellungen und der Laufzeit der Scripte.

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

                  @wendy2702:

                  b) ich hatte ein ähnliches Problem beim Auslesen meiner Heizung über ein Javascript, da lag es Zeitweise daran das der Serielle Port doppelt abgefragt wurde bzw. der Port dadurch nicht mehr richtig geschlossen wurde. Bei mir lag es letztendlich an den Verbindungseinstellungen und der Laufzeit der Scripte. `

                  Kannst du mir das Script mal zeigen.

                  Der Script-Schnipsel von paul53 mit "exec" funktioniert nicht.

                  Ich vermute, weil ich iobroker auf win habe.

                  mfg

                  Dieter

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

                    @wendy2702:

                    … da lag es Zeitweise daran das der Serielle Port doppelt abgefragt wurde bzw. der Port dadurch nicht mehr richtig geschlossen wurde. Bei mir lag es letztendlich an den Verbindungseinstellungen und der Laufzeit der Scripte.... `

                    Ja, sowas vermute ich auch.

                    Nur wie geh ich da vor.

                    Warum wird der Port nicht geschlossen?

                    Was meinst du mit Verbindungseinstellungen?

                    Fazit:

                    Mir würde ein Script-Schnipsel reichen mit dem ich ein Wert abfragen kann.

                    Dann schreib ich mir das Script selber (dann weiß man auch, wann und wie der Wert abgefragt wird).

                    mfg

                    Dieter

                    1 Reply Last reply Reply Quote 0
                    • wendy2702
                      wendy2702 last edited by

                      Schau mal hier:

                      viewtopic.php?f=21&t=12203&hilit=Waterkotte

                      Das war der Anfang.

                      Ich schau mal ob ich per VPN mit IPAD an das script komme.

                      Verbindungseinstellungen: z.B. 9600, 8,N,1… passt das ? Oder wie wird der tty definiert?

                      Habe das nur überflogen aber las sich für mich wie eine „Serielle“ Verbindung.

                      EDIT: Gerade mit IPAD über VPN versucht. Bekomme das Script leider nicht zum kopieren markiert 😞

                      1 Reply Last reply Reply Quote 0
                      • wendy2702
                        wendy2702 last edited by

                        Hier mal das Script das ich verwende.

                        Bitte nicht auf JavaScript Schönheit achten…

                        ! ````
                        createState('Waterkotte.Daten.Abfrage_Rohdaten');
                        ! // To use the ByteLength parser:
                        const SerialPort = require('serialport');
                        const ByteLength = SerialPort.parsers.ByteLength;
                        ! var buffer = new Buffer(12);
                        buffer[0] = 0x10;
                        buffer[1] = 0x02;
                        buffer[2] = 0x01;
                        buffer[3] = 0x15;
                        buffer[4] = 0x00;
                        buffer[5] = 0x00;
                        buffer[6] = 0x00;
                        buffer[7] = 0xf3;
                        buffer[8] = 0x10;
                        buffer[9] = 0x03;
                        buffer[10] = 0x7c;
                        buffer[11] = 0x32;
                        const port = new SerialPort("/dev/ttyUSB0", {
                        baudRate: 9600,
                        dataBits : 8,
                        parity : 'none',
                        stopBits: 1
                        // flowControl : false
                        }, function (err) {
                        if (err) {
                        // port.close();
                        return console.log('Error1: ', err.message);
                        }
                        ! const parser = port.pipe(new ByteLength({ length: 253 }));
                        parser.on('data', function (data) {
                        console.log('Data received: ' + data.toString('hex'));
                        var daten = data.toString('hex');
                        setState('Waterkotte.Daten.Abfrage_Rohdaten', daten, true);
                        //port.close();
                        });
                        ! // Flush input
                        port.flush();
                        ! // send Data
                        port.write(buffer, function(err) {
                        if (err) {
                        return console.log('Error on write: ', err.message);
                        }

                        	    console.log('Daten send');
                        

                        // port.close();
                        });
                        });

                        port.on('open', function() {
                        console.log('Connected');
                        });

                        ! port.on('error', function(err) {
                        console.log('Error2: ', err.message);
                        // port.close();
                        });
                        ! // close port if the script stopped (to be able to open it again)
                        onStop(function (callback) {
                        if (port && port.isOpen) {
                        port.close();
                        console.log('port closed');
                        }
                        });
                        ! ````

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

                          Hallo wendy,

                          vielen Dank für das Script.

                          Ich muss aber nun mal blöd fragen (gibt es ja nicht ;-).

                          Ausgangslage:

                          iobroker läuft auf win laptop im Büro

                          Im Keller bei der Heizung hab ich nun einen Raspi der per lan Kabel an einem Switch hängt.

                          An diesem Raspi hab ich ein Optolink Kabel von viessmann per usb angeschlossen.

                          Nun zum Script.

                          Wenn ich dieses ausführe auf win Laptop mit iobroker im Büro; wie erreicht er dann den Raspi?

                          Funktioniert das denn überhaupt.

                          mfg

                          Dieter

                          1 Reply Last reply Reply Quote 0
                          • wendy2702
                            wendy2702 last edited by

                            Hi Dieter,

                            Also mein Script ist ja NICHT für Viessmann! Hoffe wir haben uns nicht missverstanden.

                            Ich habe auf dem PI der bei meiner Heizung steht iobroker als Slave laufen und dort dann eine JavaScript Instanz installiert in der mein Script zur Abfrage der Daten läuft!

                            Gruß

                            Mirko

                            Gesendet von iPhone mit Tapatalk Pro

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

                              Mirko, ist schon klar.

                              Und slave wo das script läuft gibt auch sinn.

                              Trotzdem kann ich doch nicht der einzige sein bei dem dieser Fehler auftritt.

                              Ist schon komisch, aber offensichtlich läuft es ja nur bei mir nicht.

                              mfg

                              1 Reply Last reply Reply Quote 0
                              • 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
                                            • First post
                                              Last post

                                            Support us

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

                                            983
                                            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