NEWS
Fully Kiosk Browser Akkustand abfragen
-
Hallo zusammen,
ich möchte gerne den Akkustand von meinem Android Tablet abfragen. Die Vis läuft über den Fully Browser, daher würde ich auch gerne über diesen den Akkustand erfahren. Gibt es eine Möglichkeit den Akkustand vom Tablet darüber abzuholen bzw diesen von Fully senden zu lassen?
Danke.
-
korrektur
Fully kann das doch in der gekauften Version..
mit
http://ip:port/?cmd=deviceInfo&type=json
im Knoten batteryLevel
kannst du dir die Device Infos holen dann im script parsen..
-
Ich nutze den PAW Webserver und habe das Ladegerät an einer Schaltsteckdose angeschlossen.
Browser im Vordergrund ist Fully und dahinter liefert der PAW Server den Akkustand an den ioBroker.
Geladen wird dann per Script zwischen 20 und 90 % Akkustand.
Funktioniert seit längerer Zeit Problemlos.
Einzig nach einem Neustart steht der PAW Server weil er irgendwelche Bestätigung will. Das habe ich noch nicht wegbekommen.
-
Ich mache das mit Tasker. Tasker schreibt den Akkustand alle 15 min. in ein Objekt. Mit einem Skript steuere ich dann einen Sonoff Basic. Läuft ohne Probleme.
-
kannst du dir die Device Infos holen dann im script parsen.. `
OK, die Pro habe ich.
Hast du für das parsen ein Beispiel wie das aufgebaut sein muss?
Alternatv würde ich es dann mit dem Tasker versuchen, da hatte ich es schon mal so ähnlich aufgebaut
-
nach einiger Suchzeit und probieren habe ich es glaub ich herausgefunden:
var request = require('request'); var link = "http://192.168.0.49:2323/?cmd=deviceInfo&type=json&password=xxxx"; var state = "javascript.0.Allgemein.Akku_Tablet"/*Akku_Tablet*/; function fully() { request(link, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else { objects = JSON.parse(body); bat = objects.batteryLevel; setState(state, bat); log ("Batterylevel = " + bat); } }); } fully(); schedule('*/10 * * * *', fully);
Danke für den Denkanstoß
-
Danke für die Idee. Da wird bei mir eventuell auch der PAW Server hinfällig.
Allerdings werden bei mir noch ein paar Fehler gesetzt:
javascript.0 2018-09-24 16:16:41.177 warn at process._tickCallback (internal/process/next_tick.js:181:9) javascript.0 2018-09-24 16:16:41.177 warn at _combinedTickCallback (internal/process/next_tick.js:139:11) javascript.0 2018-09-24 16:16:41.177 warn at endReadableNT (_stream_readable.js:1064:12) javascript.0 2018-09-24 16:16:41.177 warn at IncomingMessage.emit (events.js:208:7) javascript.0 2018-09-24 16:16:41.177 warn at emitNone (events.js:111:20) javascript.0 2018-09-24 16:16:41.176 warn at Object.onceWrapper (events.js:313:30) javascript.0 2018-09-24 16:16:41.176 warn at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1085:12) javascript.0 2018-09-24 16:16:41.176 warn at Request.emit (events.js:211:7) javascript.0 2018-09-24 16:16:41.176 warn at emitOne (events.js:116:13) javascript.0 2018-09-24 16:16:41.176 warn at Request. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1163:10) javascript.0 2018-09-24 16:16:41.176 warn at Request.emit (events.js:214:7) javascript.0 2018-09-24 16:16:41.176 warn at emitTwo (events.js:126:13) javascript.0 2018-09-24 16:16:41.176 warn at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:186:22) javascript.0 2018-09-24 16:16:41.176 warn at Request._callback (script.js.Wandtablet.LadenFully:11:13) javascript.0 2018-09-24 16:16:41.175 warn Wrong type of javascript.0.Akkustand: "number". Please fix, while deprecated and will not work in next versions.</anonymous></anonymous>
Zum Teil verstehe ich das. Der Datenpunkt ist als Zeichenkette angelegt. Das ist scheinbar falsch, aber mir ist nicht klar als was das angelegt werden müsste.
Die restlichen Fehler sagen mir gar nichts.
-
versuch mal das…
ändere mal:
else { objects = JSON.parse(body);
in:
else { log(body); objects = JSON.parse(body);
dann müsste sich im log der komplette Inhalt aus "http://192.168.0.49:2323/?cmd=deviceInf … sword=xxxx" zeigen.
Wenn du die http im Browser eingibst siehst du aber die Werte oder?
-
Die Werte sehe ich.
Der Datenpunkt wird auch mit dem Akkustand beschreiben.
Mit der Änderung ist die Fehlerliste scheinbar nochmal gewachsen:
javascript.0 2018-09-24 16:31:58.246 warn at process._tickCallback (internal/process/next_tick.js:181:9) javascript.0 2018-09-24 16:31:58.245 warn at _combinedTickCallback (internal/process/next_tick.js:139:11) javascript.0 2018-09-24 16:31:58.245 warn at endReadableNT (_stream_readable.js:1064:12) javascript.0 2018-09-24 16:31:58.245 warn at IncomingMessage.emit (events.js:208:7) javascript.0 2018-09-24 16:31:58.245 warn at emitNone (events.js:111:20) javascript.0 2018-09-24 16:31:58.245 warn at Object.onceWrapper (events.js:313:30) javascript.0 2018-09-24 16:31:58.245 warn at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1085:12) javascript.0 2018-09-24 16:31:58.245 warn at Request.emit (events.js:211:7) javascript.0 2018-09-24 16:31:58.245 warn at emitOne (events.js:116:13) javascript.0 2018-09-24 16:31:58.245 warn at Request. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1163:10) javascript.0 2018-09-24 16:31:58.245 warn at Request.emit (events.js:214:7) javascript.0 2018-09-24 16:31:58.244 warn at emitTwo (events.js:126:13) javascript.0 2018-09-24 16:31:58.244 warn at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:186:22) javascript.0 2018-09-24 16:31:58.244 warn at Request._callback (script.js.Wandtablet.LadenFully:12:13) javascript.0 2018-09-24 16:31:58.243 warn Wrong type of javascript.0.Akkustand: "number". Please fix, while deprecated and will not work in next versions. javascript.0 2018-09-24 16:31:54.488 warn at process._tickCallback (internal/process/next_tick.js:181:9) javascript.0 2018-09-24 16:31:54.488 warn at _combinedTickCallback (internal/process/next_tick.js:139:11) javascript.0 2018-09-24 16:31:54.488 warn at endReadableNT (_stream_readable.js:1064:12) javascript.0 2018-09-24 16:31:54.488 warn at IncomingMessage.emit (events.js:208:7) javascript.0 2018-09-24 16:31:54.488 warn at emitNone (events.js:111:20) javascript.0 2018-09-24 16:31:54.488 warn at Object.onceWrapper (events.js:313:30) javascript.0 2018-09-24 16:31:54.488 warn at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1085:12) javascript.0 2018-09-24 16:31:54.487 warn at Request.emit (events.js:211:7) javascript.0 2018-09-24 16:31:54.487 warn at emitOne (events.js:116:13) javascript.0 2018-09-24 16:31:54.487 warn at Request. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1163:10) javascript.0 2018-09-24 16:31:54.487 warn at Request.emit (events.js:214:7) javascript.0 2018-09-24 16:31:54.487 warn at emitTwo (events.js:126:13) javascript.0 2018-09-24 16:31:54.487 warn at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:186:22) javascript.0 2018-09-24 16:31:54.487 warn at Request._callback (script.js.Wandtablet.LadenFully:12:13) javascript.0 2018-09-24 16:31:54.486 warn Wrong type of javascript.0.Akkustand: "number". Please fix, while deprecated and will not work in next versions.</anonymous></anonymous></anonymous></anonymous>
-
Ich denke ich habe den Fehler:
1. Datenpunkt auf Zahl
2. Diese Zeile:
log ("Batterylevel = " + bat);
muss lauten
log ("batteryLevel = " + bat);
-
2. Diese Zeile:
log ("Batterylevel = " + bat);
log ("batteryLevel = " + bat); ```` `
Punkt 2 ist hinfällig, da diese Änderung nur dem Freitext im Log entspricht und nicht mit dem "batteryLevel" aus dem json vom Fully.
Da könnte auch ("xyz = " + bat) oder nur (bat) stehen.
Wenn dann war Punkt 1 der Entscheidende.
-
Irgendwie scheinbar nicht.
Wenn ich den
log ("Batterylevel = " + bat);
falsch schreibe kommt sofort das im Log:
javascript.0 2018-09-24 17:00:00.877 warn at process._tickCallback (internal/process/next_tick.js:181:9) javascript.0 2018-09-24 17:00:00.876 warn at _combinedTickCallback (internal/process/next_tick.js:139:11) javascript.0 2018-09-24 17:00:00.876 warn at endReadableNT (_stream_readable.js:1064:12) javascript.0 2018-09-24 17:00:00.876 warn at IncomingMessage.emit (events.js:208:7) javascript.0 2018-09-24 17:00:00.876 warn at emitNone (events.js:111:20) javascript.0 2018-09-24 17:00:00.876 warn at Object.onceWrapper (events.js:313:30) javascript.0 2018-09-24 17:00:00.876 warn at IncomingMessage. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1085:12) javascript.0 2018-09-24 17:00:00.876 warn at Request.emit (events.js:211:7) javascript.0 2018-09-24 17:00:00.875 warn at emitOne (events.js:116:13) javascript.0 2018-09-24 17:00:00.875 warn at Request. <anonymous>(/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1163:10) javascript.0 2018-09-24 17:00:00.875 warn at Request.emit (events.js:214:7) javascript.0 2018-09-24 17:00:00.875 warn at emitTwo (events.js:126:13) javascript.0 2018-09-24 17:00:00.875 warn at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:186:22) javascript.0 2018-09-24 17:00:00.874 warn at Request._callback (script.js.Wandtablet.LadenFully:11:13) javascript.0 2018-09-24 17:00:00.873 warn Wrong type of javascript.0.Allgemein.Akku_Tablet: "undefined". Please fix, while deprecated and will not work in next versions.</anonymous></anonymous>
ok, ist ja eigentlich egal, weil es ja jetzt funktioniert.
Danke für deine Umsetzung.
-
@0018 sagte in Fully Kiosk Browser Akkustand abfragen:
nach einiger Suchzeit und probieren habe ich es glaub ich herausgefunden:
var request = require('request'); var link = "http://192.168.0.49:2323/?cmd=deviceInfo&type=json&password=xxxx"; var state = "javascript.0.Allgemein.Akku_Tablet"/*Akku_Tablet*/; function fully() { request(link, function(error,response, body) { if(error) log('Fehler request: ' + error, 'error'); else { objects = JSON.parse(body); bat = objects.batteryLevel; setState(state, bat); log ("batteryLevel = " + bat); } }); } fully(); schedule('*/10 * * * *', fully);
Danke für den Denkanstoß
Hat gleich auf Anhieb geklappt! Danke für das Skript.
Nur eben meine IP und den Datenpunkt angepasst... Läuft!Hier eine etwas erweiterte Version:
var request = require('request'); var link = "http://10.0.0.59:2323/?cmd=deviceInfo&type=json&password=XXXXXX"; var Akkustand = "javascript.0.MeinTablet.Akkustand"/*Akkustand*/; var Plugged = "javascript.0.MeinTablet.Plugged"/*Plugged*/; var Helligkeit = "javascript.0.MeinTablet.Helligkeit"/*Helligkeit*/; function fully() { request(link, function(error,response, body) { if(error) log('### Fehler request: ' + error, 'error'); else { objects = JSON.parse(body); bat = objects.batteryLevel; plug = objects.plugged; bright = objects.screenBrightness; setState(Akkustand, bat); setState(Plugged, plug); setState(Helligkeit, bright); log ("### Tablet Akkustand: " + bat + " %"); log ("### Tablet Plugged: " + plug ); log ("### Tablet Helligkeit: " + bright ); } }); } fully(); schedule('*/10 * * * *', fully);
-
Hallo zusammen,
ich möchte gerne das o.g. Script noch um die Info "ScreenOn" true/false erweitern.
Ich habe mir dementsprechend es nun so zusammen gebastelt:
var request = require('request'); var link = "http://192.168.178.23:2323/?cmd=deviceInfo&type=json&password=xxxxxx"; var Akkustand = "NeueObjekte.0.AkkuTabletFully_"/*Akkustand*/; var Plugged = "NeueObjekte.0.PluggedTabletFully_"/*Plugged*/; var Helligkeit = "NeueObjekte.0.HelligkeitTabletFully_"/*Helligkeit*/; var ScreenOn = "NeueObjekte.0.ScreenTabletFully_"/*ScreenOn*/; function fully() { request(link, function(error,response, body) { if(error) log('### Fehler request: ' + error, 'error'); else { objects = JSON.parse(body); bat = objects.batteryLevel; plug = objects.plugged; bright = objects.screenBrightness; screen = objects.screenOn; setState(Akkustand, bat); setState(Plugged, plug); setState(Helligkeit, bright); setState(ScreenOn, screen ); log ("### Tablet Akkustand: " + bat + " %"); log ("### Tablet Plugged: " + plug ); log ("### Tablet Helligkeit: " + bright ); log ("### Tablet ScreenOn: " + screen ); } }); } fully(); schedule('*/10 * * * *', fully);
Aber Natürlich funktioniert dies aber nicht. Leider keine Ahnung warum. Nach Fully docu sollte "ScreenOn" aber der richtige Parameter sein, wenn ich sehen möchte ob der Bildschirm an oder aus ist.
11:00:15.697 warn javascript.0 at Request._callback (script.js.Tablet.ScreenOn:22:4) 11:00:15.697 info javascript.0 script.js.Tablet.ScreenOn: ### Tablet Akkustand: 78 % 11:00:15.697 info javascript.0 script.js.Tablet.ScreenOn: ### Tablet Plugged: true 11:00:15.697 info javascript.0 script.js.Tablet.ScreenOn: ### Tablet Helligkeit: 110 11:00:15.697 info javascript.0 script.js.Tablet.ScreenOn: ### Tablet ScreenOn: undefined
Vielen Dank
eve11
-
@eve11 sagte in Fully Kiosk Browser Akkustand abfragen:
Hallo zusammen,
ich möchte gerne das o.g. Script noch um die Info "ScreenOn" true/false erweitern.
Ich habe mir dementsprechend es nun so zusammen gebastelt:
var request = require('request'); var link = "http://192.168.178.23:2323/?cmd=deviceInfo&type=json&password=xxxxxx"; var Akkustand = "NeueObjekte.0.AkkuTabletFully_"/*Akkustand*/; var Plugged = "NeueObjekte.0.PluggedTabletFully_"/*Plugged*/; var Helligkeit = "NeueObjekte.0.HelligkeitTabletFully_"/*Helligkeit*/; var ScreenOn = "NeueObjekte.0.ScreenTabletFully_"/*ScreenOn*/; function fully() { request(link, function(error,response, body) { if(error) log('### Fehler request: ' + error, 'error'); else { objects = JSON.parse(body); bat = objects.batteryLevel; plug = objects.plugged; bright = objects.screenBrightness; screen = objects.screenOn; setState(Akkustand, bat); setState(Plugged, plug); setState(Helligkeit, bright); setState(ScreenOn, screen ); log ("### Tablet Akkustand: " + bat + " %"); log ("### Tablet Plugged: " + plug ); log ("### Tablet Helligkeit: " + bright ); log ("### Tablet ScreenOn: " + screen ); } }); } fully(); schedule('*/10 * * * *', fully);
Aber Natürlich funktioniert dies aber nicht. Leider keine Ahnung warum. Nach Fully docu sollte "ScreenOn" aber der richtige Parameter sein, wenn ich sehen möchte ob der Bildschirm an oder aus ist.
11:00:15.697 warn javascript.0 at Request._callback (script.js.Tablet.ScreenOn:22:4) 11:00:15.697 info javascript.0 script.js.Tablet.ScreenOn: ### Tablet Akkustand: 78 % 11:00:15.697 info javascript.0 script.js.Tablet.ScreenOn: ### Tablet Plugged: true 11:00:15.697 info javascript.0 script.js.Tablet.ScreenOn: ### Tablet Helligkeit: 110 11:00:15.697 info javascript.0 script.js.Tablet.ScreenOn: ### Tablet ScreenOn: undefined
Vielen Dank
eve11
Hallo eve11
es sollte so aussehenbat = objects.batteryLevel; plug = objects.plugged; bright = objects.screenBrightness; screen = objects.isScreenOn;
also nur screenOn in isScreenOn ändern dann sollte es gehen
-
Super, vielen Dank. Funktioniert.
Noch eine Frage. Wo kann ich alle Parameter einsehen ?eve11
-
@eve11 sagte in Fully Kiosk Browser Akkustand abfragen:
Super, vielen Dank. Funktioniert.
Noch eine Frage. Wo kann ich alle Parameter einsehen ?eve11
wen du z.B. das hier log(body); in das script schreibst bekommst du den komplette Inhalt von deviceInfo
else { log(body); objects = JSON.parse(body);
-
Hallo
ist der Port 2323 immer gleich?
-
@acramatic sagte in Fully Kiosk Browser Akkustand abfragen:
Ich mache das mit Tasker. Tasker schreibt den Akkustand alle 15 min. in ein Objekt. Mit einem Skript steuere ich dann einen Sonoff Basic. Läuft ohne Probleme.
Ich möchte auch evtl Tasker verwenden.
Weil mein FullyBrowser irgendwie mehrmals pro Minute den "alive" Status wechselt und somit nicht ganz zuverlässig ist.
Mit PAW bin ich bisher nicht warm geworden. Werde ich vllt auch nochmal probieren.Wo finde ich Anleitungen oder Beispiele wie man Tasker mit ioBroker verbindet?
Geht das nur über die ioBroker Cloud? -
@arteck
Kannst du m ir das kurz erklären?
Ich habe die Kaufversion vom Fully Browser auf meinem Tablett am laufen und möchte den Batterieladezustand auf der VIs anzeigen.