Grundsätzliches Problem ioBroker.

  • Jetzt passiert folgendes: Wenn Seitenlicht eingeschaltet wurde, alle anderen Aktionen funktionieren richtig. Wenn man jetzt beispielsweise Stubenlicht wieder einschaltet, wird das nach einiger Zeit wieder alleine ausgeschaltet....

    Quasi selbes Problem wie am Anfang...

    Ich werde noch verrückt mit dem Ding

  • stubenlicht wird aber nur ausgeschaltet, wenn sich der Status von Seitenlicht von false nach true ändert, bleibt das auf true, ändert sich nicht am Stubenlicht.

    Da hast irgendwo ein anderes Problem.

    Was ist den powerstate für ein DP?

  • Mach mal den raus und beobachte Seitenlicht Power ob der ungewohnt mal kurz wechselt, denn das darf er nicht und nur wenn er das macht, geht Stubenlicht mit dem Script aus.

    Einmal editiert, zuletzt von Leo888 (3. Januar 2020 um 18:56)

  • tausch mal "Objekt ID" gegen "Wert", bei Objekt ID weiß ich nicht was das überhaupt macht. Wert bezieht sich zu 100% auf den Wert und das triggert.

    Hi,

    nur mal als Anmerkung

    meines Erachtens hat der falls block keinen Sinn,

    da ihr auf nix relevantes prüft.

    Wenn Ihr ObjectID reinschreibt gibt das true, weil die ObjectID ungleich null oder undefined sein muss

    und wenn ihr auf "Wert" prüft ist das auch true weil im Wert selber vom Objekt auch ein Wert hinterlegt ist in diesem Fall schon true.

    Ihr prüft ja schon im "falls objekt" das der Wert der Seitenlampe true sein muss denn das triggert nur wenn es true ist,also ist jede nachfolgende Bedingung im code-block überflüssig in der ihr den Wert prüft.

    Es sollte also dieses Konstrukt reichen die macht auch nichts anderes:

    das löst jetzt wahrscheinlich nicht dein Problem, das die Lampe wieder ausgeht.

    in der dritten Zeile steuerst du noch eine Andere Lampe mit "Wahr", dass ist nicht zufällig die Seitenlampe?

    weil du in deinem ersten Post nix schreibst das noch irgendwas angehen soll,

    du sagst zwei Lampen aus und eine auf 40%, aber irgendwas schaltest du da noch an.

  • Der macht schon Sinn, nur nicht so wie oben, da doppelt. Wenn nur auf "wahr" geprüft werden soll, kann man das auch nur mit dem Trigger erledigen, hat dann aber eben nur die Möglichkeit auf "wahr eine Aktion zu starten. Ich halte es einfach so, der Trigger triggert und der Rest wird über eine Logik gesteuert, weil es so schnell und einfach erweitert und umgebaut werden kann.

  • es wird einfach nur sinnloser Code im Hintegrund erzeugt der keine Funktion hat und sollte in diesem Fall weggelassen werden.


    Desweiteren halte ich das weglassen auf die Prüfung eines konkreten Wertes auch für gefährlich und für fehleranfällig

    das mag bei booleschen Werten akzeptabel sein, allerdings ist dann der falls block bei allen anderen Werten eben auch true wenns nicht null oder undefined ist, da javascript da eben sehr tolerant ist.

  • Stimmt nicht, der Falls Block prüft als Grundfunktion auf "wahr" und somit wäre es unnötiger Code das noch mal zu tun. Ich habe ne Menge Scripte laufen und teils auch recht komplexe Geschichten damit gesteuert, bis jetzt keine Fehlfunktion.

    Wie geschrieben, wenn nur auf wahr geprüft werden soll und damit eine Reaktion herbeigeführt, dann kann man das im Trigger mit "ist wahr" erledigen, aber auch nur dann und nur dafür.

  • Stimmt nicht, der Falls Block prüft als Grundfunktion auf "wahr" und somit wäre es unnötiger Code das noch mal zu tun. Ich habe ne Menge Scripte laufen und teils auch recht komplexe Geschichten damit gesteuert, bis jetzt keine Fehlfunktion.

    Wie geschrieben, wenn nur auf wahr geprüft werden soll und damit eine Reaktion herbeigeführt, dann kann man das im Trigger mit "ist wahr" erledigen, aber auch nur dann und nur dafür.

    aber das ist doch genau das, was ihr oben macht ihr prüft im Code noch mal auf wahr, das ist hier im konkreten Fall einfach mal überflüssig

    ich sag ja nicht, dass es Fehlfunktionen ist oder hat

  • Ja und Wir reden wohl auch ein wenig aneinander vorbei.

    Ja Du hast recht, aber wie ich schon geschrieben habe, in dem Fall ist es unnötig, nur eben leichter zu erweitern, wenn man den Falls Block schon drin hat und in der Regel kommt es selten vor, dass man nur "falls" prüft, da meist ein "sonst" mit dabei ist und ich den Trigger eben gerne nur zum Triggern des ganzen verwende und den Rest eben über ne eigenständige Logik.

    Das bisschen mehr Code hält sich da auch in Grenzen. Wichtig ist eben das Verständnis was man da überhaupt tut, dann kann man das auch weg lassen.

  • ok dann sind wir uns ja einig ;)

    wobei ich als Erweiterung eher dann ein weiteren Trigger (falls-objekt) mit konkreten Wert rufen würde,

    dass sorgt für klarere Strukturen und man spart sich das if-else geraffel.

    zurück zum Thema

  • zusätzlicherCode != unnötigerCode

    tut es meiner Meinung nach nicht,

    wir reden aber schon wieder aneinander vorbei

    im Fall das man auf mehrere Werte prüft, ist der Falls-Block ja auch nicht mehr unnötig sondern notwendig

    bzw. man trennt es eben auf und sorgt für vernünftig und klarere Strukturen bzw. besseres Design.