Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Java adapter SSH keine funktion mehr ?

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Java adapter SSH keine funktion mehr ?

    This topic has been deleted. Only users with topic management privileges can see it.
    • P
      padi0-000 last edited by padi0-000

      Hallo zusammen,
      Ich habe immer meine Raspberri PI im Wohnzimmer mit einem Script runtergefahren.

      So wie es nun aussieht funktioniert das nicht mehr.
      Ich habe vor kurzem den JavaScript Adapter geupdatet.

      
      
      on({id: '0_userdata.0.DG_Technik.Raspberry_Wohn_Shutdown', change: "any"}, function (obj) {
      
       
      
         const node_ssh = require('node-ssh').NodeSSH;
      
         const ssh = new node_ssh();
      
       
      
         ssh.connect({
      
       
      
         host: '192.168.xxx.xxx',
      
         username: 'pi',
      
         password: 'xxxxxxx'
      
       
      
         }).then(() => {
      
       
      
         ssh.execCommand("sudo shutdown");
      
       
      
      });
      
       
      
      

      Fehlermeldung ist folgende.

      javascript.0
      	2024-04-22 02:47:14.530	error	Error: No response from server at Client.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-ssh/lib/cjs/index.js:198:24) at Client.emit (node:events:517:28) at Client.emit (node:domain:489:12) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/ssh2/lib/client.js:821:12) at Socket.emit (node:events:517:28) at Socket.emit (node:domain:489:12) at TCP.<anonymous> (node:net:350:12)
      

      node ssh.PNG

      Würde mich über Hilfe freuen.

      Ro75 falke69 2 Replies Last reply Reply Quote 0
      • Ro75
        Ro75 @padi0-000 last edited by Ro75

        @padi0-000

        versuche es mal so:

        const { Client } = require('ssh2');
        function getData(sHost='', sUser='', sPass='', sBefehl='') {
            const conn = new Client();
            return new Promise((resolve, reject) => {
                let allData = "";
                conn.on('ready', () => {
                    conn.exec(sBefehl, (err, stream) => {
                        if (err) {
                            reject(err);
                            conn.end();
                            return;
                        }
                        stream.on('data', (data) => {
                            allData += data;
                        });
                        stream.on('close', (code, signal) => {
                            resolve(allData);
                            conn.end();
                        });
                        stream.on('error', reject);
                    });
                }).connect({
                    host: sHost,
                    port: 22,
                    username: sUser,
                    password: sPass
                });
            });
        };
        
        getData('xxx.xxx.xxx.xxx', 'BENUTZER', 'KENNWORT', "sudo shotdown").then(result => {
            console.log(result);
        });
        

        Füge im JS-Adapter "ssh2" dazu. Dein jetzigen kannst du dann entfernen wenn er nicht mehr gebraucht wird.

        Ro75.

        EDIT: Über diese Variante kannst du auch Daten abfragen (z.B. free, etc)

        1 Reply Last reply Reply Quote 0
        • falke69
          falke69 @padi0-000 last edited by

          @padi0-000

          .... oder Du schaust hier:

          https://forum.iobroker.net/topic/74157/gelöst-ssh-befehle-per-blockly-absetzen/4

          P 1 Reply Last reply Reply Quote 0
          • P
            padi0-000 @falke69 last edited by

            @falke69

            habe es mit dem ursprünglichem Script wieder zum laufen gebracht.

            aber habe noch fehlermeldungen.
            kann mir jemand sagen was diese bedeuten ?

            javascript.0
            	2024-04-22 20:18:53.646	error	Error: No response from server at Client.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-ssh/lib/cjs/index.js:202:24) at Client.emit (node:events:517:28) at Client.emit (node:domain:489:12) at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.javascript/node_modules/ssh2/lib/client.js:821:12) at Socket.emit (node:events:517:28) at Socket.emit (node:domain:489:12) at TCP.<anonymous> (node:net:350:12)
            javascript.0
            	2024-04-22 20:18:53.646	error	Error: No response from server
            javascript.0
            	2024-04-22 20:18:53.644	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
            
            OliverIO haus-automatisierung 2 Replies Last reply Reply Quote 0
            • OliverIO
              OliverIO @padi0-000 last edited by OliverIO

              @padi0-000 sagte in Java adapter SSH keine funktion mehr ?:

              Error: No response from server

              eigentlich sagt es das schon.
              läuft der ssh deamon auf dem anderen server bzw. ist die ip adresse erreichbar?

              probiere mal selbst auf der konsole den ssh befehl abzusetzen.
              um es möglichst realistisch zu machen am besten mit dem iobroker user durchführen.
              den kannst du nutzen wenn du auf der konsole den folgenden befehl aufrufst

              sudo -u iobroker bash
              

              dadurch wird in einer neuen ebene deiner konsole die shell erneut aufgerufen aber als user iobroker. als passwort musst du das passwort deines aktuellen users eintragen. der aktuelle user muss der gruppe sudoer zugeordnet sein. zurück kommst du mit exit.
              wenn dein shell prompt gut eingestellt ist, kannst du daran erkennen mit welchem user du gerade unterwegs bist.

              1 Reply Last reply Reply Quote 0
              • haus-automatisierung
                haus-automatisierung Developer Most Active @padi0-000 last edited by

                @padi0-000 sagte in Java adapter SSH keine funktion mehr ?:

                kann mir jemand sagen was diese bedeuten ?

                Nur eine Vermutung: Du triggerst auf "change: any". Also auf jede Änderung. Angenommen Du setzt den State jetzt auf true und dann zurück auf false. Dann würde die Logik 2x ausgeführt, aber das System fährt ja schon bei der ersten Änderung herunter.

                Das heißt dass die zweite Verbindung nicht mehr zustande kommt. Du solltest also

                1. noch mit .catch() den Fehler abfangen.
                2. nur auf einen bestimmten Wert triggern (z.B. val: true) oder zumindest im Trigger prüfen. Wäre ja komisch, wenn man den Wert auf false setzt und der Server dann runter fährt 🙂
                P 1 Reply Last reply Reply Quote 0
                • P
                  padi0-000 @haus-automatisierung last edited by

                  @haus-automatisierung sagte in Java adapter SSH keine funktion mehr ?:

                  @padi0-000 sagte in Java adapter SSH keine funktion mehr ?:

                  kann mir jemand sagen was diese bedeuten ?

                  Nur eine Vermutung: Du triggerst auf "change: any". Also auf jede Änderung. Angenommen Du setzt den State jetzt auf true und dann zurück auf false. Dann würde die Logik 2x ausgeführt, aber das System fährt ja schon bei der ersten Änderung herunter.

                  Das heißt dass die zweite Verbindung nicht mehr zustande kommt. Du solltest also

                  1. noch mit .catch() den Fehler abfangen.
                  2. nur auf einen bestimmten Wert triggern (z.B. val: true) oder zumindest im Trigger prüfen. Wäre ja komisch, wenn man den Wert auf false setzt und der Server dann runter fährt 🙂

                  Das ist der Lösungsansatz. sobald ich den Wert manuell auf True setze fährt der Raspberry runter und es gibt keine Fehlermeldung.
                  Sobald ich dann wieder zurück auf False setze bekomme ich die Fehlermeldungen.

                  Wie muss ich das eintragen ?

                  on({id: '0_userdata.0.DG_Technik.Raspberry_Wohn_Shutdown', change: "val: true"}, function (obj) {
                  
                  Codierknecht haus-automatisierung 2 Replies Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @padi0-000 last edited by

                    @padi0-000

                    ... change: "gt"}
                    

                    Damit triggerst Du nur auf die Änderung von false auf true.

                    1 Reply Last reply Reply Quote 0
                    • haus-automatisierung
                      haus-automatisierung Developer Most Active @padi0-000 last edited by

                      @padi0-000 sagte in Java adapter SSH keine funktion mehr ?:

                      Wie muss ich das eintragen ?

                      In der Doku sind Beispiele 🙂

                      on({ id: '0_userdata.0.DG_Technik.Raspberry_Wohn_Shutdown', val: true }, function (obj) {
                      
                      1 Reply Last reply Reply Quote 0
                      • P
                        padi0-000 last edited by

                        So es funktioniert jezt alles und das ohne fehlermeldung.

                        Es lag tatsächlich an dem Trigger...
                        Was mich wundert, das die Fehlermeldung erst jezt aufgetaucht ist, da es schon lange lief...

                        Danke für die hilfe.

                        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

                        802
                        Online

                        31.9k
                        Users

                        80.3k
                        Topics

                        1.3m
                        Posts

                        6
                        10
                        501
                        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