Hallo zurück...
Vorab:
Deinen Scriptausschnitt zu sehen ist zwar hilfreich, aber trotzdem relativ nutzlos da nicht ersichtlich ist in welches "Gesamtscript" er gehört.
Muss man als "Hilfswilliger" erstmal den gesamten Thread durchstöbern um das (hoffentlich) richtige Originalscript zu finden ist das nicht gerade motivationsfördernd. Für die Zukunft also bitte wenigstens auf das "Originalscript" verlinken.
Zum Problem:
Ich gehe jetzt von folgendem Alchy - Script aus...
Code: Alles auswählen
! alle Fenstersensoren / HMW-Sen-SC-12-DR / Winmatic / Keymatic / Funk-Neigungssensor in einem bestimmten Gewerk/ Favoriten u.a. durchsuchen
! und Ausgabe in Variable oder per pushover, telegram oder per Mail oder Ansage Home24 Mediaplayer
! v1.42 (c) by Alchy
! https://homematic-forum.de/forum/viewtopic.php?f=26&t=25517&p=301186#p301186
Das hast du doch in deinem Scriptabschnitt so zugewiesen.Avatar2102 hat geschrieben: ↑21.04.2021, 15:49Ich verstehe hier nicht, warum der Status vom DLD (1 = zu) korrekt erfasst wird,
So wie ich das sehe zählt das Script alle abgefragten Geräte die ungleich "0" zurückliefern als "OFFEN".Avatar2102 hat geschrieben: ↑21.04.2021, 15:49der DLD aber trotzdem mitgezählt und aufgelistet wird?
Das ist bei deinem HmIP-DLD ein Problem denn der sendet ja (so deine Deklarationen stimmen) die "1" wenn der Status GESCHLOSSEN ist.
(1 ist ungleich 0 und somit wird der HmIP-DLD auch im GESCHLOSSENEN Zustand als OFFEN gezählt.)
Workaround:
Ich würde den zurückgegebenen Status des HmIP-DLD im Script manipulieren.
(ungetestet da kein HmIP-DLD verfügbar)
Code: Alles auswählen
if ( ( devType == "HmIP-DLD") && ( chType == "DOOR_LOCK_STATE_TRANSMITTER") ) { choice = true; var status = ch.DPByHssDP("LOCK_STATE").Value() -1;
if (status == -1 ) { status_new = " unbekannt "; }
if (status == 0 ) { status_new = " zu "; }
if (status == 1 ) { status_new = " offen "; }
}