NEWS


  • Ein russisch-sprechender Benutzer hat ein Programm geschrieben um mit der Hilfe von ioBroker(und alles anderem) Windows PC zu steuern. Das Programm sollte english auch unterstützen.

    Hier ist die Übersetzung:

    Es wird ein HTTP Server gestartet und in SystemTray angezeigt. Server akzeptiert RESTful GET Anfragen:

    z.B:

    http://192.168.1.10:8585/?cmd=foobar

    http://192.168.1.10:8585/?cmd=shutdown

    http://192.168.1.10:8585/?cmd=process

    http://192.168.1.10:8585/?chk=foobar2000.exe

    http://192.168.1.10:8585/?key=CTRL+ALT+DOWN

    Commands-Liste:

    cmd

    foobar (Um vorher definierte Applikation zu starten)

    process (Zeigt alle gestartete Prozesse am PC)

    shutdown

    poweroff

    reboot

    forceifhung

    logoff

    monitor1 (schaltet Monitor um wie WIN+P)

    monitor2

    chk:

    http://192.168.1.10:8585/?chk=FILE_NAME.exe (Sucht diese Applikation in Prozessen und gibt true zurück, falls gefunden)

    key:

    http://192.168.1.10:8585/?key=CTRL+ALT+X (Global HotKeys)

    http://192.168.1.10:8585/?key=VOLUP

    Liste von unterstützen Keykombinationen:

    ! CTRL
    ! RCTRL
    ! ALT
    ! RALT
    ! SHIFT
    ! RSHIFT
    ! WIN
    ! RWIN
    ! ESC
    ! ENT
    ! DEL
    ! INS
    ! VOLUP
    ! VOLDN
    ! MUTE
    ! NEXT
    ! PREV
    ! PLAY
    ! STOP
    ! BACK
    ! SPACE
    ! TAB
    ! NUMP
    ! NUMS
    ! NUMD
    ! NUM*
    ! NUMM
    ! NUML
    ! CAPS
    ! END
    ! HOME
    ! PGDN
    ! PGUP
    ! SCRL
    ! PRNTSCR
    ! SLEEP
    ! DOWN
    ! UP
    ! LEFT
    ! RIGHT
    ! F1
    ! F2
    ! F3
    ! F4
    ! F5
    ! F6
    ! F7
    ! F8
    ! F9
    ! F10
    ! F11
    ! F12
    ! F13
    ! F14
    ! F15
    ! F16
    ! F17
    ! F18
    ! F19
    ! F20
    ! F21
    ! F22
    ! F23
    ! F24
    ! NUM0
    ! NUM1
    ! NUM2
    ! NUM3
    ! NUM4
    ! NUM5
    ! NUM6
    ! NUM7
    ! NUM8
    ! NUM9
    ! 0
    ! 1
    ! 2
    ! 3
    ! 4
    ! 5
    ! 6
    ! 7
    ! 8
    ! 9
    ! A
    ! B
    ! C
    ! D
    ! E
    ! F
    ! G
    ! H
    ! I
    ! J
    ! K
    ! L
    ! M
    ! N
    ! O
    ! P
    ! Q
    ! R
    ! S
    ! T
    ! U
    ! V
    ! W
    ! X
    ! Y
    ! Z

    Skript für ioBroker um mit dem Programm zu kommunizieren.

    Falls in Program IP Adresse und Port zu setzen: IP SimpleAPI und PortSimpleAPI dann GetAdmin wird eigene Addresse und Port über die Variablen GetAdmin.Host und GetAdmin.Port mitteilen. Dafür muss SimpleAPI aktiviert sein.

    Skript für IOBROKER:

    createState('GetAdmin.cmd', '');
    createState('GetAdmin.Host', '');
    createState('GetAdmin.Port', '');
    var request = require('request');
    >! on({id: 'javascript.0.GetAdmin.cmd', change: 'any'}, function (obj) {
       if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
           var host = getState('javascript.0.GetAdmin.Host').val;
           var port = getState('javascript.0.GetAdmin.Port').val;
           sendCmdGetAdmin(obj.newState.val,host,port);
           log('Send command to GetAdmin - cmd: '+ obj.newState.val);
       }else{log('GetAdmin. No command found.');}
    });
    /***************************************************************************************/
    function sendCmdGetAdmin(value, host, port){
       var options = {
           url: 'http://'+host+':'+port+'/?cmd='+value 
       };
       log('Send command to GetAdmin - ' +options.url);
       request(options, function (error, response, body) {
           log('Server response - ' + response.statusCode); 
           if (!error && response.statusCode == 200) {
            }
       });
    }
    

    Commands und Applikationen können im Programm konfiguriert werden

    Programm selbst kann man hier runterladen:

    http://forum.iobroker.net/viewtopic.php?f=29&t=1783

    GetAdmin2.5.rar



  • Hi kann mir einer vielleicht eine kurze Anleitung schreiben was ich machen muss um das Programm zu verwenden?

    Ich will damit über alexa verschiedene Tastenkombination auf meinem Windows Pc ausführen.

    Also ich muss jetzt das Programm runterladen und auf dem Windowsrechner starten.

    Und dann dieses Script für IO Broker irgendwo einfügen?

    Sry hab leider noch nicht wirklich Ahnung davon <emoji seq="1f613">😓</emoji>


  • > Also ich muss jetzt das Programm runterladen und auf dem Windowsrechner starten.
    Ohne wird es schwer.

    > Und dann dieses Script für IO Broker irgendwo einfügen?
    Ich empfehle irgendein Video anschauen.

    https://www.youtube.com/watch?v=16obEea4E2k

    https://www.youtube.com/watch?v=RTeHtsIAr5k

    Nachdem als du dieses Skript ausführst, ist es noch was zu tun.

    Für jedes Kommando sollte man ein State erzeugen und dann dieses State im cloud über "+" anlegen.


  • hat sich erledigt funktioniert jetzt 🙂


  • Hab nochmal eine Frage :? Ich kann mein PC Bild mit Tastenkombinationen umschalten. Kann ich gleichzeitig auch einen Datenpunkt im iobroker schalten? Wie kann man das am einfachsten machen?


  • Hallo,

    bei mir hat es noch nicht klick gemacht. Könnte bitte jemand mal mit ein paar worten erklären was man wo und wie konfigurieren muß. Ich habe mittlerweile einige hier im Forum angebotene scripte ausprobiert, komme aber leider nicht weiter.


  • Hallo obi, wo kommst du nicht weiter? Was möchtest du genau realisieren/steuern? Meine Erfahrung zeigt, das weder der JavaScript Adapter, noch der simpleAPI Adapter notwendig sind.

    Hallo pascal, wie schaltest du dein Bild um?


  • Hallo,

    ich habe mal das GetAdmin herunter geladen.

    Auf einem Rechner mit Kaspersky konnte ich es entpacken und starten.

    Auf einem anderen Rechner mit Avira meckert das Antivirenprogramm und sagt, es hätte den BDS/Hupigon.Gen Tronjaner gefunden.

    Jetzt bin ich verunsichert, ob ich das überhaupt installieren soll.

    Kann jemand etwas dazu sagen?

    LG aus Münster

    Volker


  • Werde ich auch testen

    wo finde ich da die Doku

    Danke


  • Avira ist meiner Meinung nach ein wenig übervorsichtig.


  • @Bluefox:

    Ein russisch-sprechender Benutzer hat ein Programm geschrieben um mit der Hilfe von ioBroker(und alles anderem) Windows PC zu steuern. Das Programm sollte english auch unterstützen.

    Hier ist die Übersetzung:

    Es wird ein HTTP Server gestartet und in SystemTray angezeigt. Server akzeptiert RESTful GET Anfragen:

    z.B:

    http://192.168.1.10:8585/?cmd=foobar

    http://192.168.1.10:8585/?cmd=shutdown

    http://192.168.1.10:8585/?cmd=process

    http://192.168.1.10:8585/?chk=foobar2000.exe

    http://192.168.1.10:8585/?key=CTRL+ALT+DOWN

    Commands-Liste:

    cmd

    foobar (Um vorher definierte Applikation zu starten)

    process (Zeigt alle gestartete Prozesse am PC)

    shutdown

    poweroff

    reboot

    forceifhung

    logoff

    monitor1 (schaltet Monitor um wie WIN+P)

    monitor2

    chk:

    http://192.168.1.10:8585/?chk=FILE_NAME.exe (Sucht diese Applikation in Prozessen und gibt true zurück, falls gefunden)

    key:

    http://192.168.1.10:8585/?key=CTRL+ALT+X (Global HotKeys)

    http://192.168.1.10:8585/?key=VOLUP

    Liste von unterstützen Keykombinationen:

    ! CTRL
    ! RCTRL
    ! ALT
    ! RALT
    ! SHIFT
    ! RSHIFT
    ! WIN
    ! RWIN
    ! ESC
    ! ENT
    ! DEL
    ! INS
    ! VOLUP
    ! VOLDN
    ! MUTE
    ! NEXT
    ! PREV
    ! PLAY
    ! STOP
    ! BACK
    ! SPACE
    ! TAB
    ! NUMP
    ! NUMS
    ! NUMD
    ! NUM*
    ! NUMM
    ! NUML
    ! CAPS
    ! END
    ! HOME
    ! PGDN
    ! PGUP
    ! SCRL
    ! PRNTSCR
    ! SLEEP
    ! DOWN
    ! UP
    ! LEFT
    ! RIGHT
    ! F1
    ! F2
    ! F3
    ! F4
    ! F5
    ! F6
    ! F7
    ! F8
    ! F9
    ! F10
    ! F11
    ! F12
    ! F13
    ! F14
    ! F15
    ! F16
    ! F17
    ! F18
    ! F19
    ! F20
    ! F21
    ! F22
    ! F23
    ! F24
    ! NUM0
    ! NUM1
    ! NUM2
    ! NUM3
    ! NUM4
    ! NUM5
    ! NUM6
    ! NUM7
    ! NUM8
    ! NUM9
    ! 0
    ! 1
    ! 2
    ! 3
    ! 4
    ! 5
    ! 6
    ! 7
    ! 8
    ! 9
    ! A
    ! B
    ! C
    ! D
    ! E
    ! F
    ! G
    ! H
    ! I
    ! J
    ! K
    ! L
    ! M
    ! N
    ! O
    ! P
    ! Q
    ! R
    ! S
    ! T
    ! U
    ! V
    ! W
    ! X
    ! Y
    ! Z

    Skript für ioBroker um mit dem Programm zu kommunizieren.

    Falls in Program IP Adresse und Port zu setzen: IP SimpleAPI und PortSimpleAPI dann GetAdmin wird eigene Addresse und Port über die Variablen GetAdmin.Host und GetAdmin.Port mitteilen. Dafür muss SimpleAPI aktiviert sein.

    Skript für IOBROKER:

    ! ````
    createState('GetAdmin.cmd', '');
    createState('GetAdmin.Host', '');
    createState('GetAdmin.Port', '');
    var request = require('request');
    ! on({id: 'javascript.0.GetAdmin.cmd', change: 'any'}, function (obj) {
    if(obj.newState.val !== '' || typeof obj.newState.val !== "undefined"){
    var host = getState('javascript.0.GetAdmin.Host').val;
    var port = getState('javascript.0.GetAdmin.Port').val;
    sendCmdGetAdmin(obj.newState.val,host,port);
    log('Send command to GetAdmin - cmd: '+ obj.newState.val);
    }else{log('GetAdmin. No command found.');}
    });
    /***************************************************************************************/
    function sendCmdGetAdmin(value, host, port){
    var options = {
    url: 'http://'+host+':'+port+'/?cmd='+value
    };
    log('Send command to GetAdmin - ' +options.url);
    request(options, function (error, response, body) {
    log('Server response - ' + response.statusCode);
    if (!error && response.statusCode == 200) {
    ! }
    });
    }

    
    Commands und Applikationen können im Programm konfiguriert werden
    
    Programm selbst kann man hier runterladen:
    
    [http://forum.iobroker.net/viewtopic.php?f=29&amp;t=1783](http://forum.iobroker.net/viewtopic.php?f=29&amp;t=1783)
    
    GetAdmin2.5.rar[http://www.shuttle-paris-airports.com/paris-shuttle](http://www.shuttle-paris-airports.com/paris-shuttle) `  
    

    Thank you for all link


  • Oder einfach einen kleinen node.js server auf dem Windows Rechner laufen lassen und dann mit ein paar Codezeilen sein Rest API programmieren.

    Beispiel:

    /*
    Examples
    http://<ip>:3000/helligkeit/10  switches brightness of server display to 10%
    http://<ip>:3000/battery returns a number containing the battery level 0..1
    */
    const brightness = require('brightness');
    const batteryLevel = require('battery-level');
    const http = require('http');
    const port = 3000;
    const requestHandler = (request, response) => {
      console.log(request.url);
      var  payload = request.url;
      var arr = payload.split("/");
      if (arr[1] == "battery") {
        batteryLevel().then(level => {
    		console.log(level);
    		response.end(''+level);
    	   });
       } 
      if (arr[1] == "brightness") {
    	  var value = Number(arr[2])/100;
    	  brightness.set(value).then(() => {
    		console.log('Changed brightness to ' + value);
    	   });
    	   response.end('Changed brightness to ' + value);
      }
    }
    
    const server = http.createServer(requestHandler);
    server.listen(port, (err) => {
      if (err) {
        return console.log('something bad happened', err)
      }
      console.log(`server is listening on ${port}`)
    });</ip></ip> 
    
  • Developer

    @Marty56:

    Oder einfach einen kleinen node.js server auf dem Windows Rechner laufen lassen und dann mit ein paar Codezeilen sein Rest API programmieren.

    Beispiel: ` :mrgreen: Etwas ähnliches dachte ich mir auch, allerdings nutze ich das auf Ubuntu. Ich hab mir einen Service geschrieben der sich selbst registriert Automatisch gestartet wird und jetzt kommts, er erstellt selbstständig Objekte in ioBroker und meldet ob verfügbar.

    Der Service stellt mir in ioBroker ein Objekt zur Verfügung in den ich den Befehl schreibe und der wird dann ausgeführt. Dank root rechten und Linux kann man fast alles machen.

    Die Kommunikation läuft über socket.io Adapter.

    Angelegt ist es so das es man es erweitern kann für andere Betriebssysteme. Aktuell läuft die Testphase ob die Basis zuverlässig funktioniert.


  • @Marty56:

    Oder einfach einen kleinen node.js server auf dem Windows Rechner laufen lassen und dann mit ein paar Codezeilen sein Rest API programmieren.

    Beispiel:

    /*
    Examples
    http://<ip>:3000/helligkeit/10  switches brightness of server display to 10%
    http://<ip>:3000/battery returns a number containing the battery level 0..1
    */
    const brightness = require('brightness');
    const batteryLevel = require('battery-level');
    const http = require('http');
    const port = 3000;
    const requestHandler = (request, response) => {
      console.log(request.url);
      var  payload = request.url;
      var arr = payload.split("/");
      if (arr[1] == "battery") {
        batteryLevel().then(level => {
    		console.log(level);
    		response.end(''+level);
    	   });
       } 
      if (arr[1] == "brightness") {
    	  var value = Number(arr[2])/100;
    	  brightness.set(value).then(() => {
    		console.log('Changed brightness to ' + value);
    	   });
    	   response.end('Changed brightness to ' + value);
      }
    }
    
    const server = http.createServer(requestHandler);
    server.listen(port, (err) => {
      if (err) {
        return console.log('something bad happened', err)
      }
      console.log(`server is listening on ${port}`)
    });</ip></ip> 
    ```` `  
    

    Hi,

    sehe ich das richtig das man hiermit auch den Akkuzustand abfragen und an iobroker übertragen kann?

    Wenn ja, wie genau muss ich das einrichten?


  • Node.js installieren, die zwei Zusatzmodule, die "required" sind und das Serverscript starten.

    Für mehr Background zu node.js kann ich diesen Kurs empfehlen.

    https://www.udemy.com/derkomplettenodejskurs/

    Super Einstieg. Es wird auch gezeigt, wie man einen kleinen Web Server aufsetzt.


  • Danke für den Link.

    Auch wenn mir das auf die schnelle bei meiner Umsetzung nicht weiter hilft.

    Edit: Habe es hinbekommen. Jetzt nur noch aus iobroker Abfragen, Auswerten und verwenden.


  • So habe ich es gemacht für die Akku Überwachung des Tablets.

    Vermutlich muss Du das Script anpassen, aber vielleicht hilft es ein bisschen.

    //------------ Akkustand des Wandtabletts abfragen und Warnung ausgeben --------
    var http = require('http');
    function tablet_battery(next) {
            var reqOptions = {
                hostname: '192.168.10.30',
                port:     3000,
                path:     '/battery',
                method:   'GET'
            };
    
            var req = http.request(reqOptions, function (res) {
                res.on('data',function (result) {
                    next(false, Number(result));
                });
                res.on('end', function () {});
            });
    
            req.on('error', function (e) {
                next(true, "");
            });
            req.end();
    } 
    var tablet_battery_warm = false;
    var tablet_unreach_warn = false;
    createState("Akku_Tablett",0);
    createState("Tablett_LOWBAT",false);
    createState('Tablett_unreach',false);
    schedule("*/15 * * * *", function(obj){
        tablet_battery(function(err, res){
            if (err === false) {
                setState('Tablett_unreach',false);
                var batterylevel = res;
                setState("Akku_Tablett",batterylevel*100);
                if ((batterylevel < 0.5) && (tablet_battery_warm === false)){
                    setState("Tablett_LOWBAT",true);
                    tablet_battery_warm =true;
                    setState('Botschaft', 'Der Akku des Tabletts ist mit ' + batterylevel*100 + ' % kritisch');
                    setState("speechout2",JSON.stringify({text:'Akku des Tabletts ist mit ' + batterylevel*100 + ' % kritisch',device: "HausohneKZ"}));
                } else {
                    if (batterylevel > 0.7) {
                        setState("Tablett_LOWBAT",false);
                        tablet_battery_warm =false;
                        //log('Akku des Tablets mit ' + batterylevel*100 + ' % ist gut');
                    }
                }
            } else {
                if (getState('Tablett_unreach').val === false) {
                    log("Akkustandsmessung ist nicht erreichbar");
                    setState('Tablett_unreach',true);
                    setState('Botschaft', 'Akkustandsmessung des Tabletts ist nicht erreichbar');
                }
    
            }
        });
    
    });
    

  • Danke. Schaue ich mir an hatte es bis jetzt mit Blockly und dem Syteminfo Adapter gelöst.


  • Hi,

    weiß zufällig jemand ob man über diesen Weg auch die Prozessor Temperatur abfragen kann?

    Danke und Gruß

Suggested Topics

1.1k
Online

38.4k
Users

43.8k
Topics

612.8k
Posts