NEWS
Script für Klingel
-
Hi,
Ich habe von hier : http://forum.iobroker.net/viewtopic.php … 130#p60021
folgendes Skript im Einsatz
! ````
createState('Kamerabild', false, false, {
name: 'Kamerabild',
desc: 'Flag um Kamerabild beim Klingeln anzuzeigen',
type: 'boolean',
def: false
});
! var idKamerabild = 'javascript.' + instance + '.Kamerabild'; // auf die Punkte achten
var idKlingelsensor = 'hm-rpc.0.MEQ0656994.1.PRESS_SHORT'; // hier Klingelsensor Datenpunkt eintragen
! on({id: idKlingelsensor, val: true}, function (obj) {
// wenn geklingelt und Sensordatenpunkt geht auf true
clearStateDelayed(idKamerabild); // alle Verzögerungen werden erstmal gelöscht
setState(idKamerabild, true); // Kamerabild wird eingeblendet
log('Kamerabild wird eingeblendet');
setStateDelayed(idKamerabild, false, 30*1000, function () { // Kamerabild wird nach 30.000ms/30s ausgeblendet
log('Kamerabild wird ausgeblendet');
});
});Jetzt meine Frage, kann ich ein 2\. Skript anlegen hier aus dem Thread oder ist dies nicht optimal, da ich ja schon die ID bzw. den Klingelsensor Datenpunkt verwende, bzw. erzeugt habe. So wie hier ~~http://forum.iobroker.net/download/file.php?id=5458" /> sollte es dann in etwa ausgeben werden, finde ich zumindest sehr cool. Also ein Wert ( wie oft es geklingelt hat im Laufe des Tages ) und die passenden Uhrzeiten, am Liebsten noch mit den passenden Kamerabilder und um 23:00 Uhr soll alles wieder auf "Null" gesetzt werden und die Bilder welche erzeugt wurden automatisch gelöscht. ;-) Dies wäre die Deluxe Variante :-) Also ein Wert ( wie oft es geklingelt hat im Laufe des Tages ) und die passenden Uhrzeiten wäre mir am Wichtigsten, der Rest wäre nice to have… CU Sigi~~ ` ~~Jetzt habe ich ein wenig weitergespielt :Dieses Skript habe ich KlingelZ genannt :
! ````
createState('Klingel', false, {name: 'Klingel'}); // Variable für die Klingel, wird nach dem Klingeln nach 30s wieder zurückgesetzt
! createState('Klingel.Zaehler', {name: 'Zahl der Klingelaktionen', type: 'number'});
! var idKlingel = "hm-rpc.0.MEQ0656994.1.PRESS_SHORT", // Je nachdem, welchen Sensor du hier angeschlossen hast, kann der Datenpunkt zB auch PRESS_LONG oder PRESS_SHORT heissen
idStatusKlingel = "javascript.0.Klingel";! // Klingelsensor abfragen und Statusvariable verzögert zurücksetzen
on( {
id: idKlingel,
val: true // es hat geklingelt
}, function (obj) {
setState(idStatusKlingel, true); // Statusvariable auf true
// Verzögerung 30s - dann wieder auf false
log('Klingel Haustür <geklingelt> - 30s Timer läuft','info');
setTimeout(function () {
setState(idStatusKlingel, false);
log('Klingel Haustür wieder <false> - Timer abgelaufen', 'info');
}, 30000);
});
! // Hier Variable beobachten und reagieren
on( {
id: idStatusKlingel,
change: 'ne'
}, function (obj) {
if (obj.newState.val === true || obj.newState.val =="true" ) { // geklingeltlog('Es hat geklingelt', 'info'); // hier Dinge eintragen, die passieren, wenns geklingelt hat
setState ('sayit.0.tts.text', "Jemand steht an der Tür");
setState('Klingel.Zaehler', getState('Klingel.Zaehler').val+1;
}
});! // Variable täglich um 23Uhr zurücksetzen
schedule("0 23 * * *", function () {
setState('javascript.0.Klingel.Zaehler', 0); // <---- hier ist die Änderung
log('Klingelzaehler gelöscht', 'info');
});</false></geklingelt>Hier der Fehler im LOG :  Das hier was falsch läuft sehe ich aber was ist es ? TTS habe ich nicht installiert, deshalb ist es klar, aber der andere Fehler ?~~