@haus-automatisierung ja das stimmt. wenn man das ganz nochmal probiert, kommt auch wieder anderer Code raus:
// Funktion, um Anwesenheit der User zu prüfen
function checkUserPresence() {
const users = ['user1', 'user2', 'user3']; // Liste der User
const userPresenceDataPoints = {
'user1': ['geofence.user1', 'wifi.user1'],
'user2': ['geofence.user2', 'wifi.user2'],
'user3': ['geofence.user3', 'wifi.user3']
};
users.forEach(user => {
let isPresent = false;
// Überprüfe alle Datenpunkte für jeden User
userPresenceDataPoints[user].forEach(dp => {
if (getState(dp).val) {
isPresent = true;
}
});
const userPresenceState = `userdata.0.${user}.presence`;
// Falls der Datenpunkt nicht existiert, lege ihn an
if (!existsState(userPresenceState)) {
createState(userPresenceState, { type: 'boolean', def: false });
}
// Setze den Anwesenheitsstatus
setState(userPresenceState, isPresent);
});
}
// Die Funktion alle 17 Sekunden ausführen
schedule("*/17 * * * * *", checkUserPresence);
// Initiale Ausführung beim Start des Skripts
checkUserPresence();
Eventuell muss man die Anweisungen nochmal konkreter fassen.
//edit: habe ihn nochmal konkreter angewiesen, die docs.md zu befolgen. Probiere es gerne aus: https://chatgpt.com/g/g-y65cMkHAC-iobroker-javascriptgpt