Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. iOS Device mit Jailbreak VIS/ioBroker Integration

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    iOS Device mit Jailbreak VIS/ioBroker Integration

    This topic has been deleted. Only users with topic management privileges can see it.
    • E
      el_malto last edited by

      Bis auf deinen Workaround mit den „Geführten Modus“ und einer Notification ist mir nichts bekannt was die anderen beschriebenen Sachen angeht.

      Bezüglich Jailbreak: Der checkra1n Jailbreak ist ja veröffentlicht worden. Bisher ist das Air 2 aber noch nicht supported. Kommt aber in Zukunft. Da der Jailbreak einen Hardware Exploit nutzt, ist der von der iOS Version unabhängig. Es müssen nur immer die Tweaks angepasst werden. Die meisten werden auch schnell angepasst. Leider ist der Developer von Activator, der Tweak der hier benutzt wird, nicht mehr so wirklich aktiv. Activator ist noch nicht mal komplett für iOS 12 angepasst. Bei iOS 13 läuft der Tweak gar nicht. Würde bei dir also bisher nicht funktionieren.
      Ich hoffe das der Tweak bald an iOS angepasst wird.

      M 1 Reply Last reply Reply Quote 0
      • M
        manu4771 @el_malto last edited by manu4771

        @el_malto

        Hallo zusammen,

        mir ist bekannt, dass das Thema schon etwas älter ist. Da ich aber genau diesen Fall bei mir zuhause betreiben möchte, krame ich das Thema wieder aus. Leider bin ich nocht nicht sonderlich bewandert im Thema JS. Daher die Frage ob jemadn mal über den Code aus dem Beispiel schauen kann ob der unter einem aktuellen ioBroker noch lauffähig ist.

        Was soll passieren: iPad über SSH aufwecken wenn Bewegungsmelder anschlägt.
        Der Befehl (von putty am PC gesendet):

        activator send libactivator.lockscreen.dismiss
        

        ...weckt mein iPad. Das funktioniert also bereits.

        Ich bekomme es nur nicht hin mich mit node-ssh mit dem Pad zu verbinden und anschließend den Befehl zu senden.

        Habe mich an das Beispiel gehalten:

        node_ssh = require('node-ssh');
        ssh = new node_ssh();
        ssh.connect({
          host: '192.168.x.xx',
          username: 'root',
          password: 'alpine'
        }).then(() => {
          ssh.execCommand("activator send libactivator.lockscreen.dismiss");
        })
        setStateDelayed('javascript.0.scriptEnabled.common.ipad_screen_on', false, 5000);
        
        

        IP, User und PW eingetragen, bekomme aber denoch die unterschiedlichsten Fehler beim Starten des Scriptes.

        • javascript.0 2020-11-02 19:35:31.256 error (23414) at Script.runInContext (vm.js:130:18)
        • javascript.0 2020-11-02 19:35:31.256 error (23414) at script.js.iPad_an:2:7
        • javascript.0 2020-11-02 19:35:31.255 error (23414) TypeError: node_ssh is not a constructor
        • javascript.0 2020-11-02 19:35:31.255 error (23414) ^
        • javascript.0 2020-11-02 19:35:31.254 error (23414) ssh = new node_ssh();
        • javascript.0 2020-11-02 19:35:31.253 error (23414) script.js.iPad_an: script.js.iPad_an:2

        Wenn ich daran experimentiere wirds nur schlimmer 🙂 Vermute mal hier hat sich an der Syntax inzwischen was geändert?

        Idela wäre es für mich, wenn ich mir den Codeschnippsel als "Blackbox" in Blocky nutzbar machen könnte. Dann bekomme ich die Ansterung über den Bewegungsmelder auch mit meinem Möglichkeiten zusammengeklickt. Habe mal gelesen dies soll möglich sein. Vermutlich mit dem Block JS-Funktion? 🙂

        Die Anleitung ist ansonsten spitze 🙂 Nur der Activator stürzt bei mir beim Erstellen der neuen Befehle immer ab. Jailbreak eben...

        Besten Dank vorab.

        Edit: ganz vergessen. Benutz mein uhrzeitliches iPad3 (iOS 9.3.5) welches für VIS aber allemal noch ausreicht.

        E S 2 Replies Last reply Reply Quote 1
        • E
          el_malto @manu4771 last edited by

          @manu4771 teste das mal:
          https://forum.iobroker.net/topic/36076/fehler-im-script-node_ssh-is-not-a-constructor
          bin die nächsten Tage nicht zu Hause und kann nicht testen. Hab die Steuerung gerade nicht mehr aktiv.

          1 Reply Last reply Reply Quote 0
          • S
            smet-o @manu4771 last edited by

            @manu4771 Ist ja nun doch schon etwas älter, aber die Lösung war für mich folgende:

            const node_ssh = require('node-ssh').NodeSSH;
            const ssh = new node_ssh();
            ssh.connect({
              host: '192.168.xx.xxx,
              username: 'xxxx',
              password: 'xxxxxxx'
            }).then(() => {
              ssh.execCommand("activator send libactivator.lockscreen.dismiss");
            })
            

            Also in den ersten zwei Zeilen einfach ein "const" davor. Vielleicht hilft es ja jemandem weiter.

            E 1 Reply Last reply Reply Quote 0
            • S
              smet-o last edited by

              Vielen Dank für die super Anleitung, ich habe jedoch ein Problem mit der SSH Verbindung. Ich habe auf meinem iPad 3 (iOS 9.3.5) OpenSSH installiert und konnte mich anfangs auch super damit verbinden. Aufwecken über Activator hat auch geklappt. Nach einer gewissen Zeit bekomm ich allerdings, wenn ich versuche mit über SSH zu verbinden folgende Meldung:

              kex_exchange_identification: Connection closed by remote host
              

              Neuinstallation von OpenSSH hilft kuzzeitig - dann wieder gleicher Fehler. Hat da jemand Ahnung was man machen könnte?

              1 Reply Last reply Reply Quote 0
              • E
                el_malto @smet-o last edited by

                @smet-o sagte in iOS Device mit Jailbreak VIS/ioBroker Integration:

                @manu4771 Ist ja nun doch schon etwas älter, aber die Lösung war für mich folgende:

                const node_ssh = require('node-ssh').NodeSSH;
                const ssh = new node_ssh();
                ssh.connect({
                  host: '192.168.xx.xxx,
                  username: 'xxxx',
                  password: 'xxxxxxx'
                }).then(() => {
                  ssh.execCommand("activator send libactivator.lockscreen.dismiss");
                })
                

                Also in den ersten zwei Zeilen einfach ein "const" davor. Vielleicht hilft es ja jemandem weiter.

                Ja das habe ich auch letztens gemerkt. Bei node-ssh hat hat sich was geändert -> https://www.npmjs.com/package/node-ssh
                Nach der Anpassung wie im "Example" hat es wieder funktioniert.

                @smet-o sagte in iOS Device mit Jailbreak VIS/ioBroker Integration:

                Nach einer gewissen Zeit bekomm ich allerdings, wenn ich versuche mit über SSH zu verbinden folgende Meldung:

                kex_exchange_identification: Connection closed by remote host
                

                Neuinstallation von OpenSSH hilft kuzzeitig - dann wieder gleicher Fehler. Hat da jemand Ahnung was man machen könnte?

                Immer? Also auch wenn dein iPad normal entsperrt ist und sich im Wlan befindet?

                Wenn es nur passiert, wenn es gesperrt ist kann es sein, dass das iPad dann die Wlan Verbindung kappt.

                • iNoSleep (optional, um die WLAN Verbindung auch bei gesperrtem Zustand aufreicht zu erhalten. Klappt bei mir auch ohne. Ich kann jederzeit eine SSH verbindung zum iPad aufbauen)
                S 1 Reply Last reply Reply Quote 0
                • S
                  smet-o @el_malto last edited by

                  @el_malto Jap immer, nur wenn ich OpenSSH neu installiere klappt es ne zeitlang. iNoSleep hab ich schon installiert. Wenn ich -vvv dazu gebe bekomme ich folgendes, wirklich schlau werde ich daraus allerdings nicht:

                  OpenSSH_8.1p1, LibreSSL 2.7.3
                  debug1: Reading configuration data /etc/ssh/ssh_config
                  debug1: /etc/ssh/ssh_config line 47: Applying options for *
                  debug2: resolve_canonicalize: hostname 192.168.xxx.xxx is address
                  debug2: ssh_connect_direct
                  debug1: Connecting to 192.168.xxx.xxx [192.168.xxx.xxx] port 22.
                  debug1: Connection established.
                  debug1: identity file /Users/namel/.ssh/id_rsa type -1
                  debug1: identity file /Users/name/.ssh/id_rsa-cert type -1
                  debug1: identity file /Users/name/.ssh/id_dsa type -1
                  debug1: identity file /Users/name/.ssh/id_dsa-cert type -1
                  debug1: identity file /Users/name/.ssh/id_ecdsa type -1
                  debug1: identity file /Users/name/.ssh/id_ecdsa-cert type -1
                  debug1: identity file /Users/name/.ssh/id_ed25519 type -1
                  debug1: identity file /Users/name/.ssh/id_ed25519-cert type -1
                  debug1: identity file /Users/name/.ssh/id_xmss type -1
                  debug1: identity file /Users/name/.ssh/id_xmss-cert type -1
                  debug1: Local version string SSH-2.0-OpenSSH_8.1
                  kex_exchange_identification: Connection closed by remote host
                  

                  Wenn ich lokal auf dem iPad versuche über ein Terminal zu benutzen bekomme ich:

                  ssh exchange identification: Connection closed by remote host
                  

                  Ich kenn mich nicht wirklich aus damit, aber zur Lösung hat mir das auch noch nicht geholfen...

                  E 1 Reply Last reply Reply Quote 0
                  • E
                    el_malto @smet-o last edited by

                    @smet-o wenn das immer passiert dann hat es mit iNoSleep nichts zu tun sondern ist ein anderer Fehler.
                    Komisch ist, dass es nach dem installieren funktioniert und danach nicht mehr. Vielleicht crashed OpenSSH oder so. Vielleicht mal CrashReporter oder Cr4shed aus Cydia installieren. Die zeigen dir an wenn Prozesse oder so crashen.
                    Ansonsten vielleicht mal Dropbear ausprobieren. Das ist auch ein SSH Server. Weiß allerdings nicht ob der mit iOS 9 kompatibel ist.

                    B 1 Reply Last reply Reply Quote 0
                    • B
                      backfisch88 @el_malto last edited by backfisch88

                      Also für alle die noch nach ner Lösung suchen... Ich habe das jetzt aktuell so gemacht:
                      Vorraussetzung ist Jailbreak. Habe die o.g. Sachen installiert - aber keine Ahnung ob Nötig

                      const node_ssh = require('node-ssh').NodeSSH;
                      
                      const ssh = new node_ssh();
                      
                      ssh.connect({
                      
                        host: '192.168.178.236',
                      
                        username: 'root',
                      
                        password: 'alpine'
                      
                      }).then(() => {
                      setInterval(async function () {
                      ssh.execCommand("ioreg -l -w0 | grep CurrentCapacity | head -1").then((function(result3) {
                      
                              var str = result3.stdout;
                              var res = str.split(' ');
                              var res1 = res[res.length - 1];
                              setState('vis.0.iPad_von_henri.battery.level', parseInt(res1));
                              }
                              ));
                            
                      setTimeout(async function () {
                      
                       ssh.execCommand("ioreg -l -w0 | grep power").then((function(result3) {
                      
                              var str = result3.stdout;
                              var str1 = str.match(/power status"=(.*?)"/ig);
                              var str2 = str.search(/power status"=Yes/);
                              if (str2 >=1){
                              setState('vis.0.iPad_von_henri.battery.state', "2");
                              }else{
                              setState('vis.0.iPad_von_henri.battery.state', "1");
                              }
                      
                                                              
                              }
                              ));       
                              }, 2000);
                              }, 60000);}
                              )
                              
                      
                      
                      
                      

                      Damit bekommt Ihr Batteriestatus und Ladestatus in n DP geschrieben

                      PS ist quick n dirty... es Funktioniert. Fertig

                      A 1 Reply Last reply Reply Quote 1
                      • A
                        Aragon @backfisch88 last edited by

                        @backfisch88 Guten Abend,
                        ich habe dieses Script kopiert und angepasst. (Host, username, password und die drei Datenpunkte)
                        Es läuft bei mir ca. 2 Tage, danach bekomme ich folgende Fehlermeldung (siehe Bild), kann mit bitte jemand helfen?
                        Das iPad Air is gejailbreakt und wird mittels Bewegungsmelder Aufgeweckt, dass funktioniert ganz gut und per DimMe wieder gesperrt.

                        Fehlermeldung:
                        Bild4.jpg

                        Codierknecht 1 Reply Last reply Reply Quote 0
                        • Codierknecht
                          Codierknecht Developer Most Active @Aragon last edited by

                          @aragon
                          1.) Sich an einen steinalten Thread dranzuhängen ist nicht wirklich sinnvoll. Inzwischen hat sich die Welt etwas weitergedreht.
                          2.) Auch ein ebenso altes Script zu übernehmen kann funktionieren, muss aber nicht.
                          3.) Texte bitte in Code-Tags </> einschließen und nicht als Screenshot

                          A 2 Replies Last reply Reply Quote 0
                          • A
                            Aragon @Codierknecht last edited by Aragon

                            @codierknecht Okay hier als Code-Tag.

                            2022-12-05 08:59:29.285  - error: javascript.0 (21463) script.js.common.Tablet.Tablet_Laden.Tablet_EG_Akkustand: Error: Not connected to server
                            2022-12-05 08:59:29.285  - error: javascript.0 (21463)     at NodeSSH.getConnection (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-ssh/lib/cjs/index.js:119:19)
                            2022-12-05 08:59:29.286  - error: javascript.0 (21463)     at NodeSSH.execCommand (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-ssh/lib/cjs/index.js:281:33)
                            2022-12-05 08:59:29.286  - error: javascript.0 (21463)     at Object.<anonymous> (script.js.common.Tablet.Tablet_Laden.Tablet_EG_Akkustand:29:5)
                            2022-12-05 08:59:29.286  - error: javascript.0 (21463)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2362:34)
                            2022-12-05 08:59:29.286  - error: javascript.0 (21463)     at listOnTimeout (internal/timers.js:557:17)
                            2022-12-05 08:59:29.286  - error: javascript.0 (21463)     at processTimers (internal/timers.js:500:7)
                            
                            E 1 Reply Last reply Reply Quote 0
                            • A
                              Aragon @Codierknecht last edited by

                              @codierknecht Kann mir Bitte jemand helfen?
                              Hat vielleicht jemand ein funktionierendes Script für mich?
                              Ich nutze die iObroker App um meine Visualisierung, die ich mit iqontrol erstellt habe anzuzeigen.
                              Den Akkustand kann ich darüber leider nicht beziehen, um mein Tablet Smart zu Laden.
                              Mittlerweile läuft das Script 3 Stunden stabil, danach kommen diese Fehlermeldungen und der Akkustand, wird nicht mehr Übertragen.

                              1 Reply Last reply Reply Quote 0
                              • E
                                el_malto @Aragon last edited by el_malto

                                Wenn es ein paar Stunden funktioniert ist das Skript ja noch richtig.
                                Du siehst im Log doch schon woran es liegt.

                                2022-12-05 08:59:29.285  - error: javascript.0 (21463) script.js.common.Tablet.Tablet_Laden.Tablet_EG_Akkustand: Error: Not connected to server
                                

                                und

                                2022-12-05 08:59:29.286  - error: javascript.0 (21463)     at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:2362:34)
                                

                                IP Broker kann keine SSH Verbindung mehr zum iPad aufbauen. Sehr wahrscheinlich geht dein iPad in einen Ruhemodus und stellt die W-Lan Verbindung ab. Bei den Apple Geräten hat man leider keine 100%ige Kontrolle wann und wie was abgeschaltet werden soll.
                                Vielleicht könnte man die W-Lan Verbindung mit einen "Dauerping" o.ä. aufrecht erhalten. Müsstest du mal probieren und testen. Oder je nachdem was für eine iOS Version du hast die oben ganannten Tweaks die auch verhindern das sich das Gerät in den Ruhemodus versetzt.
                                Paar mehr Infos von dir wären vielleicht hilfreich.

                                A 1 Reply Last reply Reply Quote 0
                                • A
                                  Aragon @el_malto last edited by Aragon

                                  @el_malto Habe diese Fehlermeldung erhalten, ich vermute, dass es daran liegen könnte.

                                  javascript.0
                                  	2022-12-28 20:34:09.497	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
                                  
                                  javascript.0
                                  	2022-12-28 20:34:09.517	error	Error: (SSH) Channel open failure: open failed
                                  
                                  javascript.0
                                  	2022-12-28 20:34:09.537	error	Error: (SSH) Channel open failure: open failed at onChannelOpenFailure (/opt/iobroker/node_modules/ssh2/lib/utils.js:16:11) at CHANNEL_OPEN_FAILURE (/opt/iobroker/node_modules/ssh2/lib/client.js:510:11) at 92 (/opt/iobroker/node_modules/ssh2/lib/protocol/handlers.misc.js:810:16) at Protocol.onPayload (/opt/iobroker/node_modules/ssh2/lib/protocol/Protocol.js:2025:10) at ChaChaPolyDecipherBinding.decrypt (/opt/iobroker/node_modules/ssh2/lib/protocol/crypto.js:851:26) at Protocol.parsePacket [as _parse] (/opt/iobroker/node_modules/ssh2/lib/protocol/Protocol.js:1994:25) at Protocol.parse (/opt/iobroker/node_modules/ssh2/lib/protocol/Protocol.js:293:16) at Socket.<anonymous> (/opt/iobroker/node_modules/ssh2/lib/client.js:713:21) at Socket.emit (events.js:400:28) at addChunk (internal/streams/readable.js:293:12) at readableAddChunk (internal/streams/readable.js:267:9) at Socket.Readable.push (internal/streams/readable.js:206:10) at TCP.onStreamRead (internal/stream_base_commons.js:188:23)
                                  

                                  Vielleicht ist dass Aussagekräftig.
                                  Ich verstehe nur, dass es einen fehler beim öffnen der SSH Verbindung gibt.
                                  Die Fehlermeldung wurde 10 Mal innerhalb einer Sekunde Protokolliert.

                                  Eben kamen diese Fehlermeldungen dazu:

                                  javascript.0
                                  	2022-12-28 22:27:49.256	error	Error: read EHOSTUNREACH at TCP.onStreamRead (internal/stream_base_commons.js:209:20)
                                  javascript.0
                                  	2022-12-28 22:27:49.256	error	Error: read EHOSTUNREACH
                                  javascript.0
                                  	2022-12-28 22:27:49.254	error	An error happened which is most likely from one of your scripts, but the originating script could not be detected.
                                  
                                  haselchen E 2 Replies Last reply Reply Quote 0
                                  • haselchen
                                    haselchen Most Active @Aragon last edited by

                                    @aragon
                                    Hast du das Modul node-ssh überhaupt im JavaScript Adapter eingetragen?

                                    A 1 Reply Last reply Reply Quote 0
                                    • A
                                      Aragon @haselchen last edited by

                                      @haselchen Ja habe ich
                                      Bild1.jpg

                                      1 Reply Last reply Reply Quote 0
                                      • E
                                        el_malto @Aragon last edited by

                                        @aragon kannst du denn wenn der Fehler bei ioBroker auftritt per Putty (Windows) oder Terminal (Mac/Linux) eine SSH Verbindung aufbauen? Wenn das schon nicht geht, liegt es ja wie von mir bereits schon geschrieben am Gerät und es müsste da nach Fehler gesucht werden wie ebenfalls schon geschrieben, dass das Gerät vielleicht in einen Ruhemodus geht und WLan abschaltet.
                                        Da das Skript ja erst funktioniert und nach drei Stunden nicht mehr würde ich den Fehler am Gerät vermuten.
                                        Hast du schon mal einen Dauerping oder die Tweaks versucht? Du müsstest da schon ein bisschen mithelfen und input liefern was du schon versucht hast. Das keine Verbindung mehr aufgebaut werden kann wissen wir ja schon vom ersten Post 😉

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

                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        581
                                        Online

                                        31.6k
                                        Users

                                        79.6k
                                        Topics

                                        1.3m
                                        Posts

                                        ios app vis
                                        8
                                        22
                                        4242
                                        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