Beiträge von Nahasa

    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.

    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

    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

    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.

    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.

    hi im video hast du es falsch gemacht es muss ne mischung aus meinem und helfinger werden ;)

    noch ne if bedingung(falls) mit rein.

    ich kanns nicht genau planen weil mir die bridge fehlt

    aber die dp bruachst nicht extra schicken ist genau so wie in meiner gif da du ja geschrieben hast das es ne shelly hast

    Morgen,

    ich hatte gestern abend noch ne kleine gif erstellt in der ich das schließen noch mal umsetzte ,allerdings hab ichs nicht gepostet , da du geschrieben hattest,das du es hinbekommen hast.

    Ich hab in der gif channel up und channel down meiner samsung fernbedienung umfunktioniert ums rollo zufahren (shelly)und wieder zu stoppen. Nach deinem zweiten Skript bin ich mir aber nicht sicher ob du das überhaupt brauchst bzw. was ähnliches vor hast

    aber vielleicht hilft es ja fürs allgemeine Verständnis. Ist 5MB groß sonst hätte ichs direkt hier gepostet.

    Viele Grüße
    gif

    ich hab leider keine sonoff Fernbedienung um exakt auf dein Problem umzumünzen aberich hab einfach mal mein Samsung- Fernbedienung dazu vergewaltigt mein Rollo zu steuern geht problemlos das entsprechende blocky nur fürs öffnen sieht so aus:



    achte auf die ID das die alle passen hier noch mal das entsprechende skript damit du das mapping leichter siehst als im blocky:



    Code
    on({id: 'samsung.0.Power.Standby', val: true}, function (obj)
    {
    if ('open' == getState('shelly.0.SHSW-21#559B8C#1.Shutter.state').val) {
    setState("shelly.0.SHSW-21#559B8C#1.Shutter.Pause"/*Pause*/, true);
    } else {
    setState("shelly.0.SHSW-21#559B8C#1.Shutter.Open"/*Öffnen*/, true);
    }
    });

    aber nicht mit der Fernbedienung

    achso, ich kenne diese Fernbedienung nicht aber ich bin davon ausgegangen, dass sie die Buttons am Shelly triggert und dort ist die Funktion die er beschreibt ja schon Software seitig implementiert, da würde sein Script tatsächlich reichen müsste nur aufpassen dass die "fernbedienung" nicht doppelt triggert.


    rom23

    die Beschriebene Funktion findest du auf deinem Shelly unter Settings->ButtonType

    Hi,

    in der ersten Version löste die count- Funktion alle 60 (60000 ms)Sekunden aus und 60 Sekunden sind gleich 1 Minute, wenn sie 30 mal ausgelöst hat haben wir 30 Minuten.

    in der zweiten Version löst die count -Funktion jede Sekunde aus das bedeutet, wenn sie 60 mal ausgelöst hat ist eine Minute abgelaufen.

    Wenn du 10 Minuten willst löst du sie wieder 60000 ms aus und stellst auf 10.


    hier noch mal das angepasste Script auf 10 Mintuen, wenn deine Steckdose ausgeschaltet wird stoppt der countdown

    falls der countdown runtergezählt ist bevor die steckdose aus ist stoppt er auch.

    bei einer Minute würde er von 60 auf 0 zählen ansonsten ging noch von 1 auf 0 ;)


    1 was? das er nur 1 minute runterzählt ?

    dann müsstest du alle 30 auf 60 stellen und im timer die 60000 auf 1000 weil 1000ms == 1 sek.

    dann würde der countdown von 60 auf 0 zählen


    vermutlich hab ich dich nicht richtig verstanden

    weiß jetzt nicht ob du mit dem script die dose wieder ausschalten willst oder das von wo anders tiggerst

    habs trotzdem mal angepasst :


    um nicht 30 minuten warten zu müssen, um zu testen kannst du den timer ja mal auf 1000 stellen das er nur 30 sekunden runterzählt

    viele grüße

    Sind diese beiden passagen korrekt?


    da es ganzzahliger Wert ist reicht auch nen "==" sollte aber kein unterschied machen

    und das Leerzeichen beim setstate macht auch nix , schade aber auch nicht es rauszulöschen ;)


    Mein Code war nur Beispiel du kannst du Logik natürlich erweitern wenn die Steckdose ausgeht/angeht,

    ich wollte damit nur sichergehen, dass der Countdown einmal runterzählt und dann stoppt und nicht ewig weiter läuft wenn die Steckdose ausgeht.

    Müsste dann hier nicht der wert rückwärts in den objekten laufen?

    Ich weiß nicht was du meinst.

    Du müsstest ein State haben "countdown", der wird ja vom Skript angelegt und in dem zählt er runter.

    , funzt das bei dir?

    ja, im vis zählt er von 30 runter auf 0 wenn ich die Steckdose anmache

    wenn die Steckdose nach 30 mins wieder ausgeht setzt er den Zähler zurück

    und wenn die Steckdose dann wieder angeht fängt er wieder an zu zählen.


    Stimmen deine IDs der Steckdose die du in deinem Post eingetragen hast,

    mich wundert das die Shellys unter Sonoff laufen, hast du die mit Tasmota geflasht?