NEWS
iobroker start event
- 
					
					
					
					
 Hallo, 
 ich möchte gerne nachdem ich den io-Broker gestartet habe, ein JS-Script einmalig ausführen. Gibt es dazu ein Ereignis, oder einen DP den man hierzu abfragen kann?
- 
					
					
					
					
 @ra65ma sagte: nachdem ich den io-Broker gestartet habe, ein JS-Script einmalig ausführen. Das macht jedes Skript ohne Trigger. 
- 
					
					
					
					
 Erstmal danke für die schnelle Antwort. Das bedeutet aber, dass jedesmal wenn ich das Script stoppe und wieder starte, dieses ausgeführt wird und nicht nur beim starten des io-Brokers. 
- 
					
					
					
					
 @ra65ma sagte in iobroker start event: wenn ich das Script stoppe und wieder starte, dieses ausgeführt wird und nicht nur beim starten des io-Brokers. Ja, aber auch bei Start ioBroker. Wozu sollte das Skript wieder gestoppt und gestartet werden ? 
- 
					
					
					
					
 wenn man z.B. das Script editiert. 
- 
					
					
					
					
 @ra65ma Du könntest einen Datenpunkt erstellen mit dem letzten Ausführungsdatum des Skripts. 
 Wenn dieses vor dem Startpunkt von ioBroker liegt (müsste über die Uptime vom JS-Controller zu berechnen sein), wird der Rest ausgeführt und der Datenpunkt aktualisiert. Sonst nicht.
- 
					
					
					
					
 @ra65ma sagte in iobroker start event: wenn man z.B. das Script editiert. Wie willst du den wissen das das Script sauber arbeitet wenn du es editiert hast ohne das du es laufen lässt ? Ich denke jegliche "Verriegelung" dagegen das das Script manuell mehrfach gestartet werden kann macht nur ganz wenig sinn - zum Testen musst du sie ggf. sowieso deaktivieren, und ausser das Du daran "herum spielst" sollte nur ein Neustart des ioBroker / des JS Adapters einen erneuten Start des Skriptes auslösen. A. A. 
- 
					
					
					
					
 Habe nun eine Lösung, weis aber nicht ob es nicht vielleicht eine elegantere gibt. Danke @AlCalzone, das Stichwort war "uptime" createState('custom.iobroker.start', 0, {type: 'number'}); var startzeit = new Date(); var jetzt = new Date(); startzeit.setTime(startzeit.getTime() - getState('system.adapter.admin.0.uptime').val * 1000) if (startzeit.valueOf() > getState('custom.iobroker.start').val) { setState('custom.iobroker.start', jetzt.valueOf(), true); /* Make what ever you need */ log("IO-Broker ist gestartet") }
 
		
	 
		
	 
			
		 
			
			