NEWS
Windows Steuerung
-
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ß
-
@wendy2702 Man kann Prozessor-Temperatur nicht mal mit Standard-Windows tools auslesen. Und damit auch nicht
-
Hm,
für Windows direkt auf dem Desktop gibt es z.B. dieses Tool: https://www.alcpu.com/CoreTemp/
Hatte gedacht das es eventuell auch ein NodeJS Package oder so gibt.
Mal googeln...
EDIT: Google --> https://stackoverflow.com/questions/47136213/node-js-read-cpu-temperature
werde ich mal testen
-
Hi,
habe mir das NodeJS Package "Systeminformation" mal auf einem WIN10 Rechner installiert und die NodeJS Datei versucht zu erweitern.
Sieht jetzt aktuell so aus:
/* 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 si = require('systeminformation'); 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] == "temp") { si.cpuTemperature().then(data => { console.log(data); response.end(''+data); }); } 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}`) });
Wenn ich jetzt aus dem Browser das abschicke:
http://192.168.178.103:3000/temp
Bekomme ich auf dem Windows 10 Rechner im NodeJS Fenster das zurück:
Im Browser erhalte ich aber nur das als Antwort:
Ob mir eventuell jemand helfen kann das richtig hinzubekommen?
Danke und Gruß
Mirko
-
@wendy2702 said in Windows Steuerung:
si.cpuTemperature().then(data => { console.log(data); response.end(''+data); });
si.cpuTemperature().then(data => { console.log(data); response.end(JSON.stringify(data)); });
-
@Bluefox sagte in Windows Steuerung:
si.cpuTemperature().then(data => { console.log(data); response.end(JSON.stringify(data));
Danke....!
Jetzt nur noch mit dem Systeminfo Adapter parsen damit ich die Werte verarbeiten kann und gut ist.
-
Hi Leute,
ich finde den Download Link nicht für GetAdmin2.6.rar.
Kann mir jemand den richtigen Link posten ?
Besten Dank.
-
@Qlink steht im zweiten Beitrag: https://forum.iobroker.net/topic/1505/программа-управления-компьютером-getadmin
Ich nehme alles zurück. Auch wenn er da steht kann man in dem Tollen Forum nach dem Import scheinbar die Files nicht mehr runterladen
Hoffentlich klappt das hochladen...
-
Danke für das file !
Ich hätte nun probiert GetAdmin auszuführen, bekomme aber gleich mal einen Socket Fehler:Habe ich es richtig verstanden, dass unter Server IP die Adresse des Windows PCs, auf dem GetAdmin läuft, den ich also steuern bzw. auslesen will, eingetragen werden muss und unter Simple API die Adresse meines Iobroker Servers ?
Firewalls hätte ich testweise deaktiviert, Simple API Adapter läuft in iobroker ...
Muss sonst noch etwas durchgeführt werden, damit GetAdmin läuft ?
-
Das kleine JavaScript auf deinem ioBroker hast du angelegt und gestartet?
-
Nein, danke für den Hinweis.
Das läuft nur leider auch nicht
Muss ich an dem Script etwas verändern/ergänzen, oder sollte das einfach per copy/paste funktionieren ? -
Du hast da glaube ich Zeichen drin die da nicht hin gehören. In Zeile 23 das „!“ zum Beispiel.
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) { } }); }
-
ich versuche mich auch derzeit daran.
wenn ich im browser "http://192.168.10.39:8585/?key=reboot" eingebe
kommt als AntwortOk!reboot true
aber passiert nichts?
das Programm habe ich installiert, das script ebenfalls? -
GetAdmin gestartet ?
Firewall?
Screenshot der Einstellungen?
Funktioniert nur der Reboot nicht ?
-
getadmin läuft,
darin habe ich aber nichts konfiguriert, bis auf die IP und Ports.
was da rein muss, verstehe ich noch nicht.
die ipadresse der Win Server habe ich selbst reinschreiben müssen.Firewall habe ich zum test mal deaktiviert.
der reboot war erstmal ein Test, was ich ebenfalls noch nicht verstehe - wie ich aus vis heraus den Befehl senden kann. Mit einem "basic-Link" klappt es nicht.
-
achsooo, es fehlt der cmd Datenpunkt
den pflege ich mit den befehlen aus vis heraus und dann macht er auch... -
hab den thread zufällig gefunden - tolles script - simple und effektiv - jetzt kann man auch einfach mit tasker etwas an den pc senden - genial
-
@wendy2702 said in Windows Steuerung:
Du hast da glaube ich Zeichen drin die da nicht hin gehören. In Zeile 23 das „!“ zum Beispiel.
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) { } }); }
Vielen Dank Wendy ! Das war das Problem. Vermutlich wieder ein Opfer desr mehr als unglücklich verlaufenen Foren Migration. Im Ausgangspost ist das Script mit ! usw. verunstaltet worden ...
Jetzt läufts jedenfalls !Eine Frage: Weiß jemand wie ich mit dem chk Befehl prüfen kann ob der Bildschirmschoner gerade läuft (.scr) Der chk Befehl geht leider anscheinend automatisch davon aus, dass man eine .exe prüfen will. Bildschirmschoner haben aber .scr
Eine weitere Frage wäre: Gibt es bei GetAdmin eine ähnliche Funktionalität wie bei CCU-Remote-PC für screen(on) bzw. screen(off) ???
Dann könnte ich komplett auf CCU-Remote-PC verzichten ...