NEWS
UNSOLVED Script Xiaomi Battery leer ?
- 
					
					
					
					
 hast du ihn erst angelernt? wenn ja dauert das bis zu ein paar stunden! 
- 
					
					
					
					
 Ja habe ich. 
 Die Anderen, welche ich gleichzeitig angelernt habe, liefern aber direkt die Daten
- 
					
					
					
					
 die Temp und Feuchtigkeit liefert er ja, hauch ihn an , dann siehst ja eh ob er reagiert, Status der Batterie kann dennoch ewig dauern! 
- 
					
					
					
					
 Ok! Danke erstmal. Werde ich beobachten. 
- 
					
					
					
					
 Wollte jetzt den Raumnamen entfernen aber irgendwie habe ich das skript zerschossen: const idVis = 'Batterie.HomematicBatterietausch'; const batt = $('hm-rpc.0.*.LOWBAT'); createState(idVis, '', {type: 'string'}); function lowBatt() { console.log('lowbat Homematic wird ausgeführt'); var low = []; batt.each(function (id, i) { if(getState(id).val == true) { id = id.split('.'); id = 'hm-rpc.0.' + id[2]; low.push(getObject(id).common.name); // Kanal-Name: Raum } }); setState(idVis, low.join(','), true); } schedule('*/5 * * * * *', lowBatt); // jeden Tag //schedule('{"time":{"exactTime":true,"start":"18:00"},"period":{"days":1}}', lowBatt)Folgendes Warn im Log: javascript.0 2019-08-04 21:53:45.008 warn at Timer.processTimers (timers.js:223:10) 
 javascript.0 2019-08-04 21:53:45.008 warn at listOnTimeout (timers.js:263:5)
 javascript.0 2019-08-04 21:53:45.008 warn at tryOnTimeout (timers.js:300:5)
 javascript.0 2019-08-04 21:53:45.007 warn at ontimeout (timers.js:436:11)
 javascript.0 2019-08-04 21:53:45.007 warn at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:501:7)
 javascript.0 2019-08-04 21:53:45.007 warn at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:543:11
 javascript.0 2019-08-04 21:53:45.007 warn at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/schedule.js:173:10)
 javascript.0 2019-08-04 21:53:45.007 warn at Job.nodeSchedule.scheduleJob [as job] (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1191:34)
 javascript.0 2019-08-04 21:53:45.007 warn at Object.lowBatt (script.js.common.Batteriestatus.Batteriestatus_Homematic:9:10)
 javascript.0 2019-08-04 21:53:45.007 warn at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:778:29)
 javascript.0 2019-08-04 21:53:45.006 warn at script.js.common.Batteriestatus.Batteriestatus_Homematic:10:5
 javascript.0 2019-08-04 21:53:45.004 warn getState "hm-rpc.0.PEQ0508233.0.LOWBAT" not found (3) states[id]=null
 javascript.0 2019-08-04 21:53:45.001 info script.js.common.Batteriestatus.Batteriestatus_Homematic: lowbat Homematic wird ausgeführt
- 
					
					
					
					
 @passuff sagte in Script Xiaomi Battery leer ?: …………………….> javascript.0 2019-08-04 21:53:45.004 warn getState "hm-rpc.0.PEQ0508233.0.LOWBAT" not found (3) states[id]=null 
 ………………….Dein Skript macht kein Fehler . Da ist ein Fehler im Datenpunkt hm-rpc.0.PEQ0508233.0.LOWBAT not found (3) states[id]=null Schau mal nach ob da ein Wert vorhanden ist !? 
- 
					
					
					
					
 @Glasfaser 
 Der Datenpunkt ist ein Homematic Schaltaktor. Der hat, wie andere Geräte auch, keinen Batteriestatus. Warum stört sich das Skript daran?
 Darüber hinaus funktioniert die Bedingung ( == true) nicht. Es werden schlussendlich alle Homematicgeräte mit LOWBAT gelistet, auch die die false sind...
- 
					
					
					
					
 
- 
					
					
					
					
 Nein, wie gesagt das Gerät ist eine Steckdose. Diese hat keine Batterie und daher auch keinen Batteriestatus... 
- 
					
					
					
					
 Sorry ...mit der Angabe " Homematic Schaltaktor " konnte ich leider nicht erlesen , das es sich um eine Steckdose handelt . 
- 
					
					
					
					
 
- 
					
					
					
					
 @Glasfaser 
 Muss mich entschuldigen. Ich habe mich im Gerät geirrt. Du hattest völlig recht: Scheint als hat de Fernbedienung keinen Empfang und sendet daher weder true noch false. 
- 
					
					
					
					
 
- 
					
					
					
					
 @passuff sagte in Script Xiaomi Battery leer ?: Darüber hinaus funktioniert die Bedingung ( == true) nicht. Es werden schlussendlich alle Homematicgeräte mit LOWBAT gelistet, auch die die false sind... Das erschließt sich mir allerdings immer noch nicht... 
- 
					
					
					
					
 Kann leider nicht testen , da ich gerade keine leere Batterie habe , aber dein Script läuft ohne Fehler bei mir im LOG . 
- 
					
					
					
					
 Ich habe auch keine leere Batterie. Dennoch habe ich im erzeugten Datenpunkt alle HM Geräte gelistet.. 
- 
					
					
					
					
 Habe mal den Wert Lowbat händisch auf true gesetzt . 
 Und die gleiche Fehlermeldungen wie bei Dir !!!
- 
					
					
					
					
 @passuff sagte: warn getState "hm-rpc.0.PEQ0508233.0.LOWBAT" not found (3) states[id]=null Anscheinend hat das Objekt noch keinen Zustand ? Dann gib mal manuell den Wert false ein. 
- 
					
					
					
					
 Das führt lediglich dazu, dass die Fehlermeldungen verschwinden. Die Bedingung wird immer noch falsch ausgewertet bzw alle Sensoren werden als lowbat = true erkannt. 
- 
					
					
					
					
 @passuff sagte: alle Sensoren werden als lowbat = true erkannt. Wie sieht das Log aus, wenn in Zeile 10 ein zusätzliches Log eingefügt wird ? batt.each(function (id, i) { log(id + ': ' + getState(id).val);
 
		
	 
		
	 
			
		 
			
		 
			
			 
			
		

