NEWS
Mehrere Fensterkontakte
-
Hallo alle zusammen.
Ich würde da mal eure Hilfe benötigen.
Und zwar habe vier Fensterkontakte die ich gerne verwenden würde.
Es ist aber so solange ich das ganze mit einem mache läuft alles wunderbar aber sobald ein zweiter in Spiel kommt schalten die beiden alle x Sekunden hin und her.
Vielleicht kann mir einer von euch sagen wie ich es schaffe das wenn nur alle auf unwahr stehen der Trigger ausgelöst wird.So läuft es
So läuft es aber mit dem Nachteil das es egal ist welche Objekt ID sich ändert .
var timeout; on({id: 'maxcube.0.devices.contact_002587.opened', val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; timeout = setTimeout(function () { setState("alexa2.0.Smart-Home-Devices.fa536ee1-d6e9-4eaf-b5e4-573f4b877bef.powerState"/*powerState*/, false); setState("mihome.0.devices.gateway_f0b4299a65ef.dimmer"/*Light*/, true); setState("mihome.0.devices.gateway_f0b4299a65ef.illumination"/*Illumination*/, 1); setState("mihome.0.devices.gateway_f0b4299a65ef.rgb"/*RGB*/, '0000FF'); console.log('Fenster offen'); }, 30000); }); on({id: 'maxcube.0.devices.contact_002587.opened', val: false}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; setState("alexa2.0.Smart-Home-Devices.fa536ee1-d6e9-4eaf-b5e4-573f4b877bef.powerState"/*powerState*/, true); setState("mihome.0.devices.gateway_f0b4299a65ef.dimmer"/*Light*/, false); console.log('Fenster geschlossen'); (function () {if (timeout) {clearTimeout(timeout); timeout = null;}})(); }); //JTNDeG1sJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4aHRtbCUyMiUzRSUzQ3ZhcmlhYmxlcyUzRSUzQ3ZhcmlhYmxlJTIwdHlwZSUzRCUyMnVuZGVmaW5lZCUyMiUyMGlkJTNEJTIydGltZW91dCUyMiUzRXRpbWVvdXQlM0MlMkZ2YXJpYWJsZSUzRSUzQyUyRnZhcmlhYmxlcyUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMm9uX2V4dCUyMiUyMGlkJTNEJTIyJTI0eWYpMVBHZTJGWC4lM0JRSl8lMkMlM0IlNUJYJTIyJTIweCUzRCUyMi02OTklMjIlMjB5JTNEJTIyLTkxMiUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0V0cnVlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJBQ0tfQ09ORElUSU9OJTIyJTNFJTNDJTJGZmllbGQlM0UlM0N2YWx1ZSUyMG5hbWUlM0QlMjJPSUQwJTIyJTNFJTNDc2hhZG93JTIwdHlwZSUzRCUyMmZpZWxkX29pZCUyMiUyMGlkJTNEJTIyU1o1SyU3QyUzQWEueV9YWWUlMjV+dWF3U2klMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJvaWQlMjIlM0VtYXhjdWJlLjAuZGV2aWNlcy5jb250YWN0XzAwMjU4Ny5vcGVuZWQlM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDc3RhdGVtZW50JTIwbmFtZSUzRCUyMlNUQVRFTUVOVCUyMiUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX3NldHRpbWVvdXQlMjIlMjBpZCUzRCUyMiUzRjRfREVhKH4lN0QzNEs3X01CTCgpdyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk5BTUUlMjIlM0V0aW1lb3V0JTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJERUxBWSUyMiUzRTMwJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJVTklUJTIyJTNFc2VjJTNDJTJGZmllbGQlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyJTVCJTVFSnFyY1A2MXIlNUV6NTclM0IlM0ElN0RtJTVFXyUyMiUzRSUzQ211dGF0aW9uJTIwZGVsYXlfaW5wdXQlM0QlMjJmYWxzZSUyMiUzRSUzQyUyRm11dGF0aW9uJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyT0lEJTIyJTNFYWxleGEyLjAuU21hcnQtSG9tZS1EZXZpY2VzLmZhNTM2ZWUxLWQ2ZTktNGVhZi1iNWU0LTU3M2Y0Yjg3N2JlZi5wb3dlclN0YXRlJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyRjA2JTdEaFMlNDBpKiUzRC1EQSU3QmdnJTdEbWFFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMko3WEhTXzVGVFglMjVfZDMoaF96RU0lMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRW1paG9tZS4wLmRldmljZXMuZ2F0ZXdheV9mMGI0Mjk5YTY1ZWYuZGltbWVyJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIyN0t4Mzg0dlFZOVclMkN0SWxydyU3RFIuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyX0NvJTYwWipTbCUyNSU1QiUzQjBxWiUzQXolNUQuaUklMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRW1paG9tZS4wLmRldmljZXMuZ2F0ZXdheV9mMGI0Mjk5YTY1ZWYuaWxsdW1pbmF0aW9uJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybWF0aF9udW1iZXIlMjIlMjBpZCUzRCUyMihTJTVEWSUyQ0xhJTJDJTdCcnc1KWkoMi1tdXQlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJOVU0lMjIlM0UxJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmNvbnRyb2wlMjIlMjBpZCUzRCUyMkElNUQlNUUpaG4tJTVCJTQwKFFnRVhKTVlia08lMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRW1paG9tZS4wLmRldmljZXMuZ2F0ZXdheV9mMGI0Mjk5YTY1ZWYucmdiJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyMiUyQm9TNnklM0ElNjBITlElMjRUYy40ViU1RCUzQWYlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFMDAwMEZGJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjJac0YlM0FOQlFYYkZiMSU2ME8qX2p0OV8lMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJTZXZlcml0eSUyMiUzRWxvZyUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVEVYVCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwaWQlM0QlMjJhbVBhJTJDbilYJTVEJTJCMyU3QlRHUFpmJTJDZzAlMjIlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJURVhUJTIyJTNFRmVuc3RlciUyMG9mZmVuJTNDJTJGZmllbGQlM0UlM0MlMkZzaGFkb3clM0UlM0MlMkZ2YWx1ZSUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZzdGF0ZW1lbnQlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyb25fZXh0JTIyJTIwaWQlM0QlMjIoMUlJfnRXVSUyM0pPcG5xTyUzRmxWVyUzRiUyMiUzRSUzQ211dGF0aW9uJTIwaXRlbXMlM0QlMjIxJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJDT05ESVRJT04lMjIlM0VmYWxzZSUzQyUyRmZpZWxkJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQUNLX0NPTkRJVElPTiUyMiUzRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyT0lEMCUyMiUzRSUzQ3NoYWRvdyUyMHR5cGUlM0QlMjJmaWVsZF9vaWQlMjIlMjBpZCUzRCUyMkh1JTJDTCUzQUwlN0IlNUI4NjdUTGV+cSU3Q25VUyUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMm9pZCUyMiUzRW1heGN1YmUuMC5kZXZpY2VzLmNvbnRhY3RfMDAyNTg3Lm9wZW5lZCUzQyUyRmZpZWxkJTNFJTNDJTJGc2hhZG93JTNFJTNDJTJGdmFsdWUlM0UlM0NzdGF0ZW1lbnQlMjBuYW1lJTNEJTIyU1RBVEVNRU5UJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIySXpzMCgzMnVScXApUiU1QnclMjVMNlBkJTIyJTNFJTNDbXV0YXRpb24lMjBkZWxheV9pbnB1dCUzRCUyMmZhbHNlJTIyJTNFJTNDJTJGbXV0YXRpb24lM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJPSUQlMjIlM0VhbGV4YTIuMC5TbWFydC1Ib21lLURldmljZXMuZmE1MzZlZTEtZDZlOS00ZWFmLWI1ZTQtNTczZjRiODc3YmVmLnBvd2VyU3RhdGUlM0MlMkZmaWVsZCUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMldJVEhfREVMQVklMjIlM0VGQUxTRSUzQyUyRmZpZWxkJTNFJTNDdmFsdWUlMjBuYW1lJTNEJTIyVkFMVUUlMjIlM0UlM0NibG9jayUyMHR5cGUlM0QlMjJsb2dpY19ib29sZWFuJTIyJTIwaWQlM0QlMjJiJTNEfjB3JTQwdGVpKnMlN0IlM0YxZWJhLUQzJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRVRSVUUlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGdmFsdWUlM0UlM0NuZXh0JTNFJTNDYmxvY2slMjB0eXBlJTNEJTIyY29udHJvbCUyMiUyMGlkJTNEJTIyJTVCaCUyQiUzREYlM0IqUE4xMUElN0NaVGZmeFolMkMlMjIlM0UlM0NtdXRhdGlvbiUyMGRlbGF5X2lucHV0JTNEJTIyZmFsc2UlMjIlM0UlM0MlMkZtdXRhdGlvbiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMk9JRCUyMiUzRW1paG9tZS4wLmRldmljZXMuZ2F0ZXdheV9mMGI0Mjk5YTY1ZWYuZGltbWVyJTNDJTJGZmllbGQlM0UlM0NmaWVsZCUyMG5hbWUlM0QlMjJXSVRIX0RFTEFZJTIyJTNFRkFMU0UlM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlZBTFVFJTIyJTNFJTNDYmxvY2slMjB0eXBlJTNEJTIybG9naWNfYm9vbGVhbiUyMiUyMGlkJTNEJTIybTMlMkN4QSUzRG8lN0RsLkglMjNOYlolM0ExSHFFJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyQk9PTCUyMiUzRUZBTFNFJTNDJTJGZmllbGQlM0UlM0MlMkZibG9jayUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMmRlYnVnJTIyJTIwaWQlM0QlMjIhYSU1RXN0SiUyRnJHV2olM0RHdm1zOCUyRnlZJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyU2V2ZXJpdHklMjIlM0Vsb2clM0MlMkZmaWVsZCUzRSUzQ3ZhbHVlJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0UlM0NzaGFkb3clMjB0eXBlJTNEJTIydGV4dCUyMiUyMGlkJTNEJTIyNUxTbFNQcGFsKlFCQnFRJTJCa3VQSiUyMiUzRSUzQ2ZpZWxkJTIwbmFtZSUzRCUyMlRFWFQlMjIlM0VGZW5zdGVyJTIwZ2VzY2hsb3NzZW4lM0MlMkZmaWVsZCUzRSUzQyUyRnNoYWRvdyUzRSUzQyUyRnZhbHVlJTNFJTNDbmV4dCUzRSUzQ2Jsb2NrJTIwdHlwZSUzRCUyMnRpbWVvdXRzX2NsZWFydGltZW91dCUyMiUyMGlkJTNEJTIydXpFRVc1REMlMkMlNjBfJTJDdjVicCU1RUMlMjNuJTIyJTNFJTNDZmllbGQlMjBuYW1lJTNEJTIyTkFNRSUyMiUzRXRpbWVvdXQlM0MlMkZmaWVsZCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGbmV4dCUzRSUzQyUyRmJsb2NrJTNFJTNDJTJGc3RhdGVtZW50JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZuZXh0JTNFJTNDJTJGYmxvY2slM0UlM0MlMkZ4bWwlM0U=
-
@xxsirosxx
Nimm mal ein Trigger und da auf "wurde geändert", in den packst dann ne Falls die die die Geräte schaltet. -
So dürfte es Funktionieren danke.
-
@xxsirosxx den ersten Trigger auch weg und in der falls noch ein sonst oder falls sonst einfügen. Ein Trigger der schon auf wahr prüft ist etwas problematisch, da er auch bei einer Aktualisierung anspringen kann, dann noch den stop Timer vor den Timer, dann können auch nicht mehrere Timer gestartet werden bevor er unten gestoppt wird
-
Ich empfehle Dir folgende Anpassungen:
- die beiden Trigger die du hast von "ist wahr" auf "ist Größer als vorher" und "ist falsch" auf "Ist kleiner als vorher" wechseln. damit bekommst du den Event nur wenn einer der Sensoren seinen Status wechselt (bei JS gilt: Wahr > Falsch)
- vor dem Timeout im oberen Trigger entweder ein "Falls Timeout <> Null" (dann triggert der erste kontakt der aufgeht das Signal) oder ein "stop Timeout" setzen. (dann triggert der letzte aufgehende Kontakt das Signal)
Ansonsten kann folgendes passieren:
- Start:
- 0 sek. nach Start: Fenster auf - 1. Timeout läuft los
- 5 sek. nach Start: Tür auf - 2. Timeout läuft los
- 10 sek nach Start: Fenster und Tür zu - 2. Timeout wird gelöscht
- 30 sek. nach Start: 1. Timeout ist zu ende - Licht und powerstate werden geschaltet.
Das hört sich jetzt nach "sowas passiert doch nicht" an, aber wenn ich mir die Namen deiner Kontakte anschaue hast du da 2 Türen überwacht. Wenn also 2 Personen fast gleichzeitig durch "Wohnzimmer Türe" und "Küchentüre" gehen, dann hast du das erreicht.
@Jan1 sagte in Mehrere Fensterkontakte:
den ersten Trigger auch weg und in der falls noch ein sonst oder falls sonst einfügen. Ein Trigger der schon auf wahr prüft ist etwas problematisch, da er auch bei einer Aktualisierung anspringen kann, dann noch den stop Timer vor den Timer, dann können auch nicht mehrere Timer gestartet werden bevor er unten gestoppt wird
Das was @Jan1 über trigger auf wahr und falsch sagt ist korrekt. Allerdings wuerde bei seinem Vorschlag der "falls" Zweig auch dann aktiviert, wenn von 2 offenen Fenstern eines geschlossen wird, weswegen ich das in der Form nicht umsetzen würde.
-
@Asgothian
Das kommt später mit ner UND Abfrage. Erst mal das Grundgerüst sauber aufbauen und verstehen und dann die Details
So versteht der TE schneller was er macht und kommt in der Regel von alleine drauf wie man weiter aufbaut oder optimiert.Wobei ich Dein Ansatz mit größer und kleiner nicht nachvollziehen kann bei der Definition der DPs mit true und false, oder hab ich da jetzt was übersehen?
-
@Jan1 sagte in Mehrere Fensterkontakte:
@Asgothian
Das kommt später mit ner UND Abfrage. Erst mal das Grundgerüst sauber aufbauen und verstehen und dann die Details
So versteht der TE schneller was er macht und kommt in der Regel von alleine drauf wie man weiter aufbaut oder optimiert.Genau deswegen der Hinweis auf den trigger "grösser als" und "kleiner als". Ich sehe so oft Konstrukte nach dem Muster "trigger auf ungleich" -> falls wert = true.
Aus meiner Sicht ist ein Konstrukt mit 2 Triggern (einmal auf >, einmal auf <) besser als ein Konstrukt mit einem Trigger und dann einem komplexen wenn / dann / sonst.Dazu kommt - wie soll in diesem Fall das "und" den aussehen, wenn es nur dann anspringen soll wenn genau einer der Sensoren von falsch auf wahr wechselt ?
-
Ursprünglich hatte er in Scrennschot auch nur einen Sensor drin, hab schlicht die weiteren im zweiten Screenshot übersehen.
Ich arbeite eben lieber mit einem Trigger und löse dann den Rest über die falls Bedingung auf, ist wie immer, es gibt mehrere Lösungen die auf das selbe Ergebnis raus laufen. Manche sind dann eben eleganter als andere