NEWS
Fehler im Script
-
Hallo ich habe ein Script zusammen geklaut, es soll das Ereignis eines Präsenzsensors protokollieren und in eine List schreiben. Macht er auch, nur die Einträge sind dreifach. Ich finde den Fehler nicht.
/*****Alarmmeldung Chalet ************************************* ** OKT 2023 ** TUYA ** ** erstellt: 16.10.23, ** geändert: *****************************************************************/ const idalarm = "tuya.0.bf19ec26673b2eba74b2ae.1" const id_Ereignis = "0_userdata.0.Haus.Alarm.Ereignis" const id_Ereignisliste = "0_userdata.0.Haus.Alarm.Ereignisliste" const id_Zähler = "0_userdata.0.Haus.Alarm.Zähler" const idFenster ="0_userdata.0.Haus.Fenster.textFensterauf" const idOffen="0_userdata.0.Haus.Fenster.anzahlFensterauf" var text, logging = true //Tigger bei Presence on(idalarm, function (obj) { // triggert bei Wertänderung log(obj.state.val) if (obj.state.val == 1) { setState(id_Zähler, getState(id_Zähler).val + 1); var ereignis_text = zeit_umwandeln(obj.newState.ts); setState(id_Ereignis, ereignis_text.toString()); log('Alarm Auslöser: ' + zeit_umwandeln(obj.newState.ts)); text = '\ud83d\udea8 Bewegung im Chalet ' createEventlog("NL", text) if (logging) sendTo('whatsapp-cmb.0', 'send', { text, phone: '+49152xxxxx49' }); //Ereignisliste erstellen___________________________________________________________________________________________________ function ereignis(text) { text = text.toString(); var ereignisStr = getState(id_Ereignisliste).val; var ereignisArr; if (ereignisStr) { if (ereignisStr == "<ul><li></li></ul>") { ereignisArr = []; } else { ereignisArr = ereignisStr.replace(/<ul><li>/, "").replace(/<\/li><\/ul>/, "").split("</li><li>"); } } else { ereignisArr = []; } ereignisArr = ereignisArr.reverse(); ereignisArr.push(text); ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken var str = ereignisArr.join("</li><li>"); setState(id_Ereignisliste, "<ul><li>" + str + "</li></ul>"); } on(id_Ereignis, function (data) { log('Ereignis ' + data.newState.val + ' übergeben'); ereignis(data.newState.val); }); function zeit_umwandeln(unix_zeit) { var nz = new Date(unix_zeit); var date=formatDate(new Date(unix_zeit), "TT.MM.JJJJ") var stunden = nz.getHours() < 10 ? '0' + nz.getHours() : nz.getHours(); var minuten = nz.getMinutes() < 10 ? '0' + nz.getMinutes() : nz.getMinutes(); var sekunden = nz.getSeconds() < 10 ? '0' + nz.getSeconds() : nz.getSeconds(); var Fenster = getState(idFenster).val neue_zeit = stunden + ':' + minuten + ':' + sekunden + ' Uhr, ' +formatDate(new Date(unix_zeit), "TT.MM.JJJJ")+" "+Fenster; return (neue_zeit); } } });
Michael -
Hallo ich habe ein Script zusammen geklaut, es soll das Ereignis eines Präsenzsensors protokollieren und in eine List schreiben. Macht er auch, nur die Einträge sind dreifach. Ich finde den Fehler nicht.
/*****Alarmmeldung Chalet ************************************* ** OKT 2023 ** TUYA ** ** erstellt: 16.10.23, ** geändert: *****************************************************************/ const idalarm = "tuya.0.bf19ec26673b2eba74b2ae.1" const id_Ereignis = "0_userdata.0.Haus.Alarm.Ereignis" const id_Ereignisliste = "0_userdata.0.Haus.Alarm.Ereignisliste" const id_Zähler = "0_userdata.0.Haus.Alarm.Zähler" const idFenster ="0_userdata.0.Haus.Fenster.textFensterauf" const idOffen="0_userdata.0.Haus.Fenster.anzahlFensterauf" var text, logging = true //Tigger bei Presence on(idalarm, function (obj) { // triggert bei Wertänderung log(obj.state.val) if (obj.state.val == 1) { setState(id_Zähler, getState(id_Zähler).val + 1); var ereignis_text = zeit_umwandeln(obj.newState.ts); setState(id_Ereignis, ereignis_text.toString()); log('Alarm Auslöser: ' + zeit_umwandeln(obj.newState.ts)); text = '\ud83d\udea8 Bewegung im Chalet ' createEventlog("NL", text) if (logging) sendTo('whatsapp-cmb.0', 'send', { text, phone: '+49152xxxxx49' }); //Ereignisliste erstellen___________________________________________________________________________________________________ function ereignis(text) { text = text.toString(); var ereignisStr = getState(id_Ereignisliste).val; var ereignisArr; if (ereignisStr) { if (ereignisStr == "<ul><li></li></ul>") { ereignisArr = []; } else { ereignisArr = ereignisStr.replace(/<ul><li>/, "").replace(/<\/li><\/ul>/, "").split("</li><li>"); } } else { ereignisArr = []; } ereignisArr = ereignisArr.reverse(); ereignisArr.push(text); ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken var str = ereignisArr.join("</li><li>"); setState(id_Ereignisliste, "<ul><li>" + str + "</li></ul>"); } on(id_Ereignis, function (data) { log('Ereignis ' + data.newState.val + ' übergeben'); ereignis(data.newState.val); }); function zeit_umwandeln(unix_zeit) { var nz = new Date(unix_zeit); var date=formatDate(new Date(unix_zeit), "TT.MM.JJJJ") var stunden = nz.getHours() < 10 ? '0' + nz.getHours() : nz.getHours(); var minuten = nz.getMinutes() < 10 ? '0' + nz.getMinutes() : nz.getMinutes(); var sekunden = nz.getSeconds() < 10 ? '0' + nz.getSeconds() : nz.getSeconds(); var Fenster = getState(idFenster).val neue_zeit = stunden + ':' + minuten + ':' + sekunden + ' Uhr, ' +formatDate(new Date(unix_zeit), "TT.MM.JJJJ")+" "+Fenster; return (neue_zeit); } } });
Michael/*****Alarmmeldung Chalet ************************************* ** OKT 2023 ** TUYA ** ** erstellt: 16.10.23, ** geändert: *****************************************************************/ const idalarm="tuya.0.bf19ec26673b2eba74b2ae.1" const id_Ereignis="0_userdata.0.Haus.Alarm.Ereignis" const id_Ereignisliste="0_userdata.0.Haus.Alarm.Ereignisliste" const id_Zähler="0_userdata.0.Haus.Alarm.Zähler" const idFenster="0_userdata.0.Haus.Fenster.textFensterauf" const idOffen="0_userdata.0.Haus.Fenster.anzahlFensterauf" var text,logging=true //Tigger bei Presence on(idalarm,function (obj) { // triggert bei Wertänderung log(obj.state.val) if (obj.state.val==1) { setState(id_Zähler,getState(id_Zähler).val+1); var ereignis_text=zeit_umwandeln(obj.newState.ts); setState(id_Ereignis,ereignis_text.toString()); log('Alarm Auslöser: '+zeit_umwandeln(obj.newState.ts)); text='\ud83d\udea8 Bewegung im Chalet ' createEventlog("NL",text) if (logging) sendTo('whatsapp-cmb.0','send',{ text,phone: '+4915253938149' }); //Ereignisliste erstellen___________________________________________________________________________________________________ function ereignis(text) { text=text.toString(); var ereignisStr=getState(id_Ereignisliste).val; var ereignisArr; if (ereignisStr) { if (ereignisStr=="<ul><li></li></ul>") { ereignisArr=[]; } else { ereignisArr=ereignisStr.replace(/<ul><li>/,"").replace(/<\/li><\/ul>/,"").split("</li><li>"); } } else { ereignisArr=[]; } ereignisArr=ereignisArr.reverse(); ereignisArr.push(text); ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken var str=ereignisArr.join("</li><li>"); setState(id_Ereignisliste,"<ul><li>"+str+"</li></ul>"); } } }); on(id_Ereignis,function (data) { log('Ereignis '+data.newState.val+' übergeben'); ereignis(data.newState.val); }); function zeit_umwandeln(unix_zeit) { var nz=new Date(unix_zeit); var date=formatDate(new Date(unix_zeit),"TT.MM.JJJJ") var stunden=nz.getHours()<10? '0'+nz.getHours():nz.getHours(); var minuten=nz.getMinutes()<10? '0'+nz.getMinutes():nz.getMinutes(); var sekunden=nz.getSeconds()<10? '0'+nz.getSeconds():nz.getSeconds(); var Fenster=getState(idFenster).val neue_zeit=stunden+':'+minuten+':'+sekunden+' Uhr, '+formatDate(new Date(unix_zeit),"TT.MM.JJJJ")+" "+Fenster; return (neue_zeit); }Wobei ich nicht weiß was newState.val ist, ist das ein Alias für state.val?
-
/*****Alarmmeldung Chalet ************************************* ** OKT 2023 ** TUYA ** ** erstellt: 16.10.23, ** geändert: *****************************************************************/ const idalarm="tuya.0.bf19ec26673b2eba74b2ae.1" const id_Ereignis="0_userdata.0.Haus.Alarm.Ereignis" const id_Ereignisliste="0_userdata.0.Haus.Alarm.Ereignisliste" const id_Zähler="0_userdata.0.Haus.Alarm.Zähler" const idFenster="0_userdata.0.Haus.Fenster.textFensterauf" const idOffen="0_userdata.0.Haus.Fenster.anzahlFensterauf" var text,logging=true //Tigger bei Presence on(idalarm,function (obj) { // triggert bei Wertänderung log(obj.state.val) if (obj.state.val==1) { setState(id_Zähler,getState(id_Zähler).val+1); var ereignis_text=zeit_umwandeln(obj.newState.ts); setState(id_Ereignis,ereignis_text.toString()); log('Alarm Auslöser: '+zeit_umwandeln(obj.newState.ts)); text='\ud83d\udea8 Bewegung im Chalet ' createEventlog("NL",text) if (logging) sendTo('whatsapp-cmb.0','send',{ text,phone: '+4915253938149' }); //Ereignisliste erstellen___________________________________________________________________________________________________ function ereignis(text) { text=text.toString(); var ereignisStr=getState(id_Ereignisliste).val; var ereignisArr; if (ereignisStr) { if (ereignisStr=="<ul><li></li></ul>") { ereignisArr=[]; } else { ereignisArr=ereignisStr.replace(/<ul><li>/,"").replace(/<\/li><\/ul>/,"").split("</li><li>"); } } else { ereignisArr=[]; } ereignisArr=ereignisArr.reverse(); ereignisArr.push(text); ereignisArr.reverse().splice(20); // Liste auf 20 Einträge beschränken var str=ereignisArr.join("</li><li>"); setState(id_Ereignisliste,"<ul><li>"+str+"</li></ul>"); } } }); on(id_Ereignis,function (data) { log('Ereignis '+data.newState.val+' übergeben'); ereignis(data.newState.val); }); function zeit_umwandeln(unix_zeit) { var nz=new Date(unix_zeit); var date=formatDate(new Date(unix_zeit),"TT.MM.JJJJ") var stunden=nz.getHours()<10? '0'+nz.getHours():nz.getHours(); var minuten=nz.getMinutes()<10? '0'+nz.getMinutes():nz.getMinutes(); var sekunden=nz.getSeconds()<10? '0'+nz.getSeconds():nz.getSeconds(); var Fenster=getState(idFenster).val neue_zeit=stunden+':'+minuten+':'+sekunden+' Uhr, '+formatDate(new Date(unix_zeit),"TT.MM.JJJJ")+" "+Fenster; return (neue_zeit); }Wobei ich nicht weiß was newState.val ist, ist das ein Alias für state.val?
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden