NEWS
[gelöst] Script: Wand-Display ein/aus nach Bewegungsmelder
-
Hallo zusammen,
ich habe versucht das obige Skript von Bluefox zur Aktivierung des Wandtablets für meine Zwecke anzupassen:
// Script zum Schalten des Wand-Displays nach Bewegungsmelder // Datenpunkt-ID var idBewegung = "hm-rpc.1.MEQ1849126.3.MOTION"/*Bewegungsmelder Flur:3.MOTION*/; // Variablendeklaration und Initialisierung bei Scriptstart var display_on = ("hm-rpc.1.MEQ0201171.1.STATE"/*iPad-Starter:1.STATE*/,false); var display_off = ("hm-rpc.1.MEQ0201171.1.STATE"/*iPad-Starter:1.STATE*/,true); var request = require('request'); var timer = null; // Aufruf der Funktion bei Änderung on(idBewegung, function(dp) { if (timer) { clearTimeout(timer); timer = null; } if (dp.newState.val) { request (display_on); } else { timer = setTimeout(function() { timer = null; request (display_off); }, 15 * 60000); } });
leider habe ich hiermit nur einen Haufen Fehlermeldungen im Log und einen Absturz der Javascriptinstanz erreicht.
Ich habe allerdings auch nicht verstanden, was es mit dem Timer (der Global sein muss) auf sich hat. Verstehe das so, dass da ein extra Skript erforderlich ist!? Habe im Forum nichts konkretes gefunden…
Ich habe übrigens die stromlose Statusanszeige als Starter des IPads im Einsatz. Nicht wundern "false" ist an und "true" aus. Über die Homematic-Direktverknüpfung funktioniert es auch einwandfrei, nur halt nicht mit einem Timer, der bei erneuter ewegung zurückgesetzt wird. Will außerdem möglichst viele Funktionen auf ioBroker übertragen.
Vielen Dank für jede Hilfe,
Beste Grüße, Rob `
Nee, da kommt einiges durcheinander. Mach lieber so:
// Script zum Schalten des Wand-Displays nach Bewegungsmelder // Datenpunkt-ID var idBewegung = "hm-rpc.1.MEQ1849126.3.MOTION"/*Bewegungsmelder Flur:3.MOTION*/; // Variablendeklaration und Initialisierung bei Scriptstart var idDisplay = ("hm-rpc.1.MEQ0201171.1.STATE"/*iPad-Starter:1.STATE*/); var timer = null; // Aufruf der Funktion bei Änderung on(idBewegung, function(dp) { if (timer) { // wenn Timer läuft, wird er auf null gesetzt clearTimeout(timer); timer = null; } if (dp.newState.val) { // wenn erstmals Bewegung setState(idDisplay, false); // StromloseStatusanzeige kriegt false, also bei dir an } else { // wenn erstmals keine Bewegung wird timer gestartet timer = setTimeout(function() { timer = null; setState(idDisplay, true); // Stausanzeige kriegt ein true, also bei dir aus }, 15 * 60 * 1000); // nach 15 * 60s, also 15 Minuten } });
Ein globales Skript brauchst du nicht. Das geht alles hier.
Gruß
Pix
-
Super Pix, vielen Dank!
Es funktioniert einwandfrei.
Habe übrigens auch dein Skript zum Aktualisieren von Vis im Einsatz und seit vorhin auch die Sayit-Ansage mit Datum, Wetter und Geburtstag.
Vielen Dank auch dafür, hast mir schon sehr oft geholfen!
Grüße, Rob
-
Hallo,
Ich wollte dieses Script nutzen um mein Wandtablet bei Bewegung des Innenbewegungsmelders für bestimmte Zeit einzuschalten. Bisher mache ich das per Tasker.
Geht dieses Script dafür?
Ich weiß nämlich nicht woher ich die 2 variable nehmen muss. (Für das Tablet)
Wie löst ihr das?
Gruß Sven
Gesendet von iPhone mit Tapatalk
-
Hallo,
ich würde auch gerne wissen, woher ihr
var display_on = ("hm-rpc.1.MEQ0201171.1.STATE"/iPad-Starter:1.STATE/,false);
var display_off = ("hm-rpc.1.MEQ0201171.1.STATE"/iPad-Starter:1.STATE/,true);
nehmt?
Geht das auch mit einem anderen Tablett?
Gruss Superdad
-
Der Inhalt der variablen "Display_on" und "Display_off" hängen von den verwendeten Systemen ab. Darin enthalten ist der Aufruf der das Display ein bzw. aus schaltet.
In meinem Fall habe ich seinerzeit unter Linux auf dem Raspi einen Webserver genutzt und über den Aufruf eines CGI-Scripts per Kommandozeile den HDMI-Ausgang geschaltet.
Unter Windows 10 nutze ich aktuell EventGhost um ebenfalls über den Aufruf einer URL das Display in den sleep Modus zu bringen.
In meinem Script wird die URL zum Schalten per request() aufgerufen.
Im letztendlichen Script von pix für RobS ist es anders gelöst, weil das Display ein Ipad ist. Wie das ein- und ausschalten da funktioniert kann ich aufgrund meiner "Obstallergie" aber nicht sagen.
MfG, André
Gesendet mit Tapatalk.
-
Übrigens, falls Android-tablet verwendet, es gibt bei Fully browser ein "Motion" Funktion (funktioniert auch im Hintergrund )
-
Vielen Dank für die Antworten.
Werde Fully Browser mal testen.
Gruss Superdad
-
Ich würde auch gerne das script nutzen um mein Wandtablet (android) ein zuschalten.
Ich bin Anfänger :mrgreen:
Bewegungsmelder ist am Start und mir klar.
Auf dem Tablet hab ich "Woli Android" http://woli.asp1.at/ installiert, damit bräuchte ich nur einen UDP Befehl ans Tablet schicken (KNX würde auch gehen.
Wie krieg ich den den entsprechenden UDP von iobroker an das Tablet geschickt? Mag mir einer helfen?
-
Klar gibt es die Möglichkeit mit tasker, motion….
Aber warum so kompliziert.
Einfach Strom an/aus und das Bild ist da.
Funktioniert 100%.
Also:
HM BWM erkennt Bewegung.
Script schaltet Aktor beim Tablet an/aus oder umgedreht und das Tablet geht an.
Habe ich bei mehreren Tablets so.
Und das Tablet dann so einstellen, dass es z.B. nach 15 MIn automatisch aus geht.
Fertig.
mfg
-
Würde gerne diese Frage noch einmal aufrufen.
Woli funktioniert bei mir nicht mehr richtig. Nachdem es Jahre funktionierte, scheint hier nun irgendwo der Wurm drinnen zu sein. Ein Update auf die neueste Version zeigt zwar im Logging die UDP Pakete und Werte an, aber es gibt keine daraus resultierende Funktion. Die Doku ist dazu auch unzureichend.
Sei es drum.
Die FullyBrowser Motion Funktion geh bei mir im Dunkeln nicht. Also auch sinnfrei hier extra die Prolizenz zu kaufen.
Das einfache an und ausschalten gefällt mir - hab es mal ausprobiert und das geht.
So, jetzt aber zu meiner Frage: Eigentlich muss das doch jeder als "Problem" haben. Wie steuert ihr denn so per CCU/iobroker euer Android Tabelet?
Ich denke hier auch an Lautstärkesteuerung bei Bedarf (Alarme sollen immer laut sein - in der Nacht der Rest aber leise oder aus, usw.), Display-Helligkeiten, usw und sofort.
VIele Grüße,
Fitti
-
Das Problem liegt wohl doch an der CCU2 - warum auch immer.
Es zeigte sich, dass sich der Kiosk FullyBrowser prima entwickelt hat. Mit der REST Schnittstelle gibt es auch ein Display on.
iobroker und FullyKiosk sind somit jetzt ein unschlagbares Team geworden.
Ich benötige eine App weniger auf dem Tablet. Und die App kostet auch nur noch knapp 5€. Gekauft und gut!
-
Mit der REST Schnittstelle gibt es auch ein Display on. `
Kannst du kurz beschreiben mit welchen Befehl ich das Display ein bzw ausschalten kann? Bekomme es nicht hin….
Danke.
-
Klar, gerne.
Hier mal meine Funktion:
Die IP-Adresse 192.168.123.123 musst Du mit der IP-Adresse des Tablets natürlich anpassen, ist hier nur ein Beispiel.
Ebenso das Passwort abcde, welches ich in der App gesetzt habe.
callTablet('Off'); //schaltet mein Tablet aus callTablet('On'); //schaltet mein Tablet AN // Die beiden Befehle hintereinander ergeben natürlich keinen Sinn, nehme dass, was Du gerade benötigst. :-) function callTablet(switchTo) { request('http://192.168.123.123:2323/?cmd=screen' + switchTo + '&password=abcde&type=json', function (error, response, body) { if (error) {log("Fehler beim Zugriff auf das Flur-Tablet: " + error, 'error');} else { //console.log("Return: " + body); //hier drinnen ist die json Rückgabe. Z. B. {"statustext":"Switching the screen on","status":"OK"} my_obj = JSON && JSON.parse(body) || $.parseJSON(body); console.log("Status: " + my_obj.statustext + " => " + my_obj.status); } }); }
Du kannst es erst einmal in irgendeinem Browser testen:
Einschalten:
http://192.168.123.123:2323/?cmd=screen … &type=json
AUSschalten:
http://192.168.123.123:2323/?cmd=screen … &type=json
Versuchs mal.
PS: Fürs Tablet empfehle ich per FritzBox oder ähnlich immer eine Feste IP -Adresse zu Vergeben!
-
Danke für den super Tipp.
Die App ist fast perfekt.
Nur ein Problem:
Wenn die Haustür klingelt, geht das Display an und der view im vis wechselt auf die Kamera-Ansicht. Nach 60 Sekunden wechselt vis wieder auf das Start-View.
Hier kommt es dann zu einem weissen Bildschirm.
Was könnte man das Problem lösen?
und noch eine Frage:
MotionDetection funktioniert nicht. Wie kann ich prüfen, ob es an der fehlenden Kamera-Freigabe liegt? Ich kann in den Einstellungen auch eine ID eintragen. Welche ist das (habe nur die Standard-Kamera des Lenovo Tablet)?
-
Nur ein Problem:
Wenn die Haustür klingelt, geht das Display an und der view im vis wechselt auf die Kamera-Ansicht. Nach 60 Sekunden wechselt vis wieder auf das Start-View.
Hier kommt es dann zu einem weissen Bildschirm.
Was könnte man das Problem lösen? `
Hier würde mich sehr interessieren, wie du das gemacht hast - das möchte ich auch noch machen.<u>Aber ich habe zwei Ideen:</u>
1.) Lasse doch einfach mal von Fully Kiosk den Cache löschen, wenn eine neue Seite aufgerufen wird. FullyKiosk hat ja eine Web-Adminseite, die du nur mit ip-adresse:2323 erreichst. Dann oben links mit dem Pallettenmenu in die Admin-Settings
Oder du schickst auch per API einen Clearbefehl:http://192.168.123.123:2323/?cmd=clearCache&password=[pass]
2.) Wenn das ein Skript macht, dann mache doch einfach ein Reload der Startpage durch FullyKiosk.
http://192.168.123.123:2323/?cmd=loadStartURL&password=[pass]
Oder rufst die Webseite direkt auf```
.../?cmd=loadURL&url=[url]&password=[pass]
[quote]
und noch eine Frage:MotionDetection funktioniert nicht. Wie kann ich prüfen, ob es an der fehlenden Kamera-Freigabe liegt? Ich kann in den Einstellungen auch eine ID eintragen. Welche ist das (habe nur die Standard-Kamera des Lenovo Tablet)?
Meines Verständnis nach ist die ID Dein vergebenes Passwort (welches Du unbedingt vergeben musst!) und Du benötigst die Voll_Version - oder die Standardversion in der Test-Vollversion.
Jedoch: Bei mir ging die Kamera im Dunkeln nicht. Also als es dann doch schon ziemlich dämmrig im Flur war, hatte er nichts mehr gesehen und somit auch nicht freigeschaltet.[/url]
-
vielen Dank für Deine Hilfe.
Bewegungsmelder funktioniert nun. Es lag noch am tasker. Den hatte ich vorher mit dem motiondetector. Der Fully Kiosk macht das aber besser.
Der weisse Bildschirm ist zur Zeit weg. Falls es noch Probleme gibt, werde ich Deine Ratschläge umsetzen.
Vielen Dank noch mal für die Hilfe und den tollen Tipp mit dem genialen Fully Kiosk Browser!
-
Hier noch mal meine Vorgehensweise mit der Klingel:
Ich habe ein Objekt (Zeichenfolge) angelegt:
createState('States.DoorPi',false);
//Türklingel
on({id:"javascript.0.States.DoorPi"/States.DoorPi/,val: true}, function (obj) {
if (obj.newState.val === true) {
log("Es klingelt an der Haustür");
// Nach 10 Sekunden den Zustand wieder zurücksetzen
setStateDelayed("javascript.0.States.DoorPi"/States.DoorPi/,false,10000);
}
});
Ein Script prüft, ob dieses Objekt geändert wird und macht den Wechsel.
function view_wechsel () {
setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "03_kamera"}');
// oder
//setState("vis.0.control.instance", 'FFFFFFFF');
//setState("vis.0.control.data", 'DemoView');
//setState("vis.0.control.command", 'changeView'); // muss immer letzte sein
// Nach 50 Sekunden, zeige wieder Start View
setTimeout(function () {
setState("vis.0.control.command", '{"instance": "FFFFFFFF", "command": "changeView", "data": "01_Main"}');
}, 50000);
}
// Gerät überwachen
on({id: 'javascript.0.States.DoorPi', change: "any"}, function (obj) {
if (obj.newState.val === true || obj.newState.val === "true") view_wechsel();
});
Einse sh Datei beim Doorpi wird beim klingeln aufgerufen.
Inhalt:
curl -s -k "http://192.168.167.122:2323/?cmd=screen … &type=json"
curl -s -k "http://192.168.167.2:8087/set/javascrip ... ubscribe=1"
Diese führt den view Wechsel aus. Das script oben wechselt nach 50 Sekunden wieder zum Start-View.
Zusätzlich gibt es ein blockly Script und ruft (wenn javascript.0.States.DoorPi = true) die URL http://192.168.167.122:2323/?cmd=textToSpeech&text=es klingelt an der Haustür&password=xxx&type=json
Dann sagt das Tablet auch noch, dass es geklingelt hat.
MIt Deinen Anmerkungen oben, hätte man es auch einfacher machen können...
-
Ahh, danke. Immer gut zu sehen, wie andere eine Situation lösen.
Ja, Fully Kiosk ist einfach nur genial. Die Sprachausgabe, Screendumps, Sound, WebcamShots, Programmierschnittstelle, Emailbenachrichtigung,… alles was man will. Damit wird iobroker nochmal aufgewertet!
So long,
Fitti
-
Bevor ich jetzt das Geld für die Vollversion von Fully investiere hätte ich noch eine Frage: Schaltet Fully die Beleuchtung des Bildschirmes komplett aus oder wird nur voll gedimmt so das im Dunkeln noch die laufende Hintergrundbeleuchtung zu sehen ist?
Danke, mayer
-
Du kannst das Display ein/ausschalten über
http://IP_Tablet:2323/?cmd=screenOn&password=xxxx http://IP_Tablet:2323/?cmd=screenOff&password=xxxx
Kennt jemand den dazugehörigen Befehl um die Brightness auf einen bestimmten Wert zu setzen?