NEWS
Rollosteuerung funktioniert nicht
-
Hallo liebe Gemeinde,
mich macht ein Thema grade wahnsinnig, weil ich nicht verstehe....
Ich hab eine Rollosteuerung mit mehreren Shellys als Trigger gebaut.
In eine richtung funktioniert das Ganze auch ganz toll, aber inb die andere Richtung stoppt das Rollo nicht.Das funktioniert.

Aber das nicht.

Hier wird einfach ein weiteres "Auf" geschickt. Aber warum? -
Oben links im Editor gibt es einen button mit dem du zwischen JS und Blockly ansicht wechseln kannst.
Mach mal und poste das entstandene JS. nochmal drauf clicken und du hast das Blockly zurĂŒck :)
A.
@Asgothian sagte in Rollosteuerung funktioniert nicht:
Oben links im Editor
Wohl eher oben rechts ;-)

-
HIer noch das Skript:
on({ id: 'alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Taster_Ab_bei_Bett' /* Taster Ab bei Bett */, change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Ab' /* Rollo Ab */, true); } else if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != 'stopped')) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Stop' /* Rollo Stop */, true); } }); on({ id: 'alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Taster_Auf_bei_Bett' /* Taster Auf bei Bett */, change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Auf' /* Rollo Auf */, true); } else if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != 'stopped')) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Stop' /* Rollo Stop */, true); } }); on({ id: 'alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Taster_Ab' /* Taster Ab */, change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Ab' /* Rollo Ab */, true); } else if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val == ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Stop' /* Rollo Stop */, true); } }); on({ id: 'alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Taster_Auf' /* Taster Auf */, change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Auf' /* Rollo Auf */, true); } else if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val == ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Stop' /* Rollo Stop */, true); } }); -
Das siehrt hier aber nicht so aus wie ich das wollte đđ
-
Das siehrt hier aber nicht so aus wie ich das wollte đđ
@Valerian-Kriwaczek sagte in Rollosteuerung funktioniert nicht:
Das siehrt hier aber nicht so aus wie ich das wollte đđ
und jetzt?
-
so, jetzt...
Das hier Funktioniert praktisch:
on({ id: 'alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Taster_Ab_bei_Bett' /* Taster Ab bei Bett */, change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Ab' /* Rollo Ab */, true); } else if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != 'stopped')) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Stop' /* Rollo Stop */, true); } }); on({ id: 'alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Taster_Auf_bei_Bett' /* Taster Auf bei Bett */, change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Auf' /* Rollo Auf */, true); } else if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != 'stopped')) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Stop' /* Rollo Stop */, true); } });Und dert Teil macht immer wieder nur Auf und stoppt nicht
on({ id: 'alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Taster_Ab' /* Taster Ab */, change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Ab' /* Rollo Ab */, true); } else if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val == ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Stop' /* Rollo Stop */, true); } }); on({ id: 'alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Taster_Auf' /* Taster Auf */, change: 'any' }, async (obj) => { let value = obj.state.val; let oldValue = obj.oldState.val; if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val != ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Auf' /* Rollo Auf */, true); } else if (((obj.state ? obj.state.val : '') == 'single_push') && (getState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Status').val == ('closing' || 'opening'))) { setState('alias.0.Haus.Rollo.Rollo_Roland_Schlafen.Rollo_Stop' /* Rollo Stop */, true); } });MOD-EDIT: Code in code-tags gesetzt!
Erkennt Ihr da ein Muster?`
-
Noch nicht, aber da gibt es etwas was so nicht geht:

Das das so funktioniert wie du das willst ist eher zufall. der
oderBaustein erwartet einen Wahr / Falsch Wert an beiden EingĂ€ngen. Du gibst ihm einen Text. ich wĂŒrde folgendes machen:
Wobei du natĂŒrlich an stelle der von mir eingesetzten Textblöcke in den blauen Rahmen die korrekten Objekt-Selektions Blöcke nehmen musst. Und im Roten Rahmen ist derw 'stop' dp gemeint, wĂ€hrend im grĂŒnen der 'start' dp gemeint ist.
-
Habs jetzt mal so gemacht, aber jetzt funktioniert der stop garnicht mehr...đ«€

-
Na ja, bei
closingsollte es gehen. Beiopeningnicht.Nur - warum hast du nicht das nachgebaut was ich gebaut habe. Und poste doch mal welche ZustÀnde der Rollo Status denn haben kann. ich gehe von
closing closed opening openaus.
-
habs jetzt grade noch geÀndert, hab das "ing" im ersten Moment ned gecheckt.. :-)


Ich kann jetzt direkt zwischen auf und ab umschalten, aber stoppen geht nicht.
Die ZustÀnde sind open, closed, opening, closing, stopped, calibrating
-
Nochmal - warum baust du nicht genau das nach was ich gemacht hab. Dein vergleich mit
enthĂ€lt nicht den Wert openingsort dafĂŒr das du fast immerRollo Aufansteuerst.ich hatte durchaus schon mit absicht auf genau einen vergleich mit else gesetzt.
A.
-
Ok, jetzt hab ich dich. Vielen Dank!
das heiĂt also auch ein "nicht" funktioniert in Verbindung mit Text nicht zuverlĂ€ssig. -
Ok, jetzt hab ich dich. Vielen Dank!
das heiĂt also auch ein "nicht" funktioniert in Verbindung mit Text nicht zuverlĂ€ssig.@Valerian-Kriwaczek sagte in Rollosteuerung funktioniert nicht:
das heiĂt also auch ein "nicht" funktioniert in Verbindung mit Text nicht zuverlĂ€ssig.
Das "nicht" funktioniert mit bool'schen AusdrĂŒcken. Nicht mit Texten.
Dein "sonst falls" ist ĂŒbrigens völliger Mumpitz - denn dieser Block wird NIEMALS erreicht.
Du reagierts ja auf ein "Falls Wert == 'single_push'". Dann wird bei einem single_push auch genau dieser Block ausgefĂŒhrt. Der "sonst falls" Block wird dann nicht mehr ausgewertet. Warum auch? Ein "sonst" ist ja nicht mehr nötig, wenn der Ausdruck im "Falls" bereits wahr war. -
@Valerian-Kriwaczek sagte in Rollosteuerung funktioniert nicht:
das heiĂt also auch ein "nicht" funktioniert in Verbindung mit Text nicht zuverlĂ€ssig.
Das "nicht" funktioniert mit bool'schen AusdrĂŒcken. Nicht mit Texten.
Dein "sonst falls" ist ĂŒbrigens völliger Mumpitz - denn dieser Block wird NIEMALS erreicht.
Du reagierts ja auf ein "Falls Wert == 'single_push'". Dann wird bei einem single_push auch genau dieser Block ausgefĂŒhrt. Der "sonst falls" Block wird dann nicht mehr ausgewertet. Warum auch? Ein "sonst" ist ja nicht mehr nötig, wenn der Ausdruck im "Falls" bereits wahr war.@Valerian-Kriwaczek sagte: stoppen geht nicht.
Versuche es mal so:

Es entspricht etwa dem Vorschlag von @asgothian
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen BeitrĂ€ge zu scrollen? Wenn du dich fĂŒr ein Konto anmeldest, kommst du immer genau dorthin zurĂŒck, wo du zuvor warst, und kannst dich ĂŒber neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und BeitrĂ€ge positiv bewerten, um anderen Community-Mitgliedern deine WertschĂ€tzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden đ
Registrieren Anmelden