NEWS
Unwillige Rolläden
-
@stefan341
Man kann in einem Script ja prüfen, ob die Auslösung durch einen physischen Schalter (also den passenden Adapter) oder durch ein Script getriggert wurde. -
Ich hätte jetzt überlegt dafür den Positionswert zu nutzen der per Mqtt ankommt und von Tasmota geschickt wird.
Durch einen Vergleich der Zeitstempel (Abweichung größer 10 Sekunden) korrigiert man dann den Slider DP
-
@dieter_p
Da könnte man auch weniger Zeit nehmen oder? Weil meine kleinste Jalousie läuft gerade mal 14 Sek.Muss ich das Script extra machen oder in das vorhandene einbauen?
-
@stefan341 said in Unwillig Rolläden:
@dieter_p
Da könnte man auch weniger Zeit nehmen oder?Ja, ich bin bei der Schätzung davon ausgegangen dass der MQTT Wert nicht so schnell aktualisiert wird und 10 Sekunden sehr konservativ gewählt. Wenn der aber flotter von Tasmota kommt klar.
Muss ich das Script extra machen oder in das vorhandene einbauen?
Nein, wäre ein Neues
-
@dieter_p
Das läuft nicht ganz. Bzw es läuft nur bis zum ersten Stop.
Ich habe es wie folgt getestet: das Rollo war geöffnet. Ich habe es mit dem manuellen Schalter runter fahren lassen und bei ca. 50% gestoppt. Der Slider in der Vis springt richtig auf ca. 50%. Dann habe ich es mit dem Schalter ganz runter fahren lassen. Der Slider in der Vis verändert sich nicht. Dann habe ich es komplett hochfahren lassen, der Slider in der Vis verändert sich nicht. -
@stefan341
Mmh, hast Du Dir Mal den Mqtt Positionswert angesehen auf 100% bzw. 0% wo die VIS Darstellung nicht funktioniert hat.Wenn der MQTT Wert noch auf 50% steht, wäre das eine Erklärung.
Ergänzung:
Um Deine Namensgebung herauszufinden, hab ich mir gerade hier oben Deine Screenshots angesehen. Ich mag falsch liegen, aber Leerzeichen wie bei "Jalousie Wohnzimmer" könnten vielleicht irgendwo ein Problem erzeugen. Mit "Jalousie_Wohnzimmer" hätte ich ein besseres Gefühl, aber lerne da auch gerne dazu.
Ergänzung 2 und zurück zum jetzigen Thema:
Falls der MQTT Wert wirklich nicht alle Updates erhält, könnte man versuchen mit einer Regel in Tasmota nachzuhelfen, dass tasmota so jede Änderung auch wirklich verschickt:
Rule4 ON Shutter1#Position DO Publish Jalousie_Wohnzimmer/ShutterPosition1 %value% ENDON
P.S.: Habe Rule Nummer 4 gewählt zum neuen Anlegen über die Konsole, da für Deine Tuya-Rolladenschalter schon bereits regeln angelegt sind. Die sollte man nicht überschreiben. Daher die "Hoffnung" Regel 4 existiert noch nicht.
-
@dieter_p said in Unwillig Rolläden:
@stefan341
Mmh, hast Du Dir Mal den Mqtt Positionswert angesehen auf 100% bzw. 0% wo die VIS Darstellung nicht funktioniert hat.Wenn der MQTT Wert noch auf 50% steht, wäre das eine Erklärung.
Der Mqtt vom Schalter geht brav mit und steht immer auf der aktuellen Position (spätestens wenn das Roll angehalten wird, entweder durch einen Endpunkt oder manuell)
Ergänzung:
Um Deine Namensgebung herauszufinden, hab ich mir gerade hier oben Deine Screenshots angesehen. Ich mag falsch liegen, aber Leerzeichen wie bei "Jalousie Wohnzimmer" könnten vielleicht irgendwo ein Problem erzeugen. Mit "Jalousie_Wohnzimmer" hätte ich ein besseres Gefühl, aber lerne da auch gerne dazu.
Ich habe gerade versucht das zu ändern, aber der Sonoff-Adapter lässt mich leider keine Änderungen machen. Dann müsste ich das wahrscheinlich bei Tasmota machen.
Jetzt war es so, dass der Slider in der Vis gar nicht reagiert hat. Also konnte ich das Verhalten das ich oben beschrieben habe, auch nicht rekonstruieren. Über Mqtt wird die richtige Position zuverlässig angegeben, aber nicht auf den Datenpunkt für die Vis übertragen.
-
Über Mqtt wird die richtige Position zuverlässig angegeben, aber nicht auf den Datenpunkt für die Vis übertragen.
Ok, dann funktioniert das Ding nicht so wie gewünscht.
Da ich aktuell nicht weiß warum, vielleicht einfacher eine Alternative zur Auswertung/Nutzung des Zeitstempels zu benutzen.
Gemäß dem Vorschlag von @Codierknecht folgende Anpassung:
-
@dieter_p
Ich probiere das heute Abend mal aus. Danke -
@dieter_p said in Unwillig Rolläden:
Das scheint soweit zu laufen. Ich habe jetzt noch ein Script laufen, dass die Rollos morgens hoch und abends runter macht. Ich steuere damit direkt die Datenpunkte der Schalter an. Das sollte aber auch funktionieren oder? bzw. schöner uns sauberer wäre es die selbst erstellten Datenpunkte mit 0 oder 100% anzusteuern oder?
Noch eine Frage:
Eines meiner nächsten Projekte soll sein die Rollos ab einer bestimmten Außentemperatur zb. auf 80% runter zu fahren (Sonnenschutz). Ich würde dann einfach den "steuere"-Block benutzen. Womit gebe ich die 80% an? Text-Block? -
@stefan341 sagte in Unwillig Rolläden:
Womit gebe ich die 80% an? Text-Block?
Das sind nur Zahlenwerte.
Im Bereich "Mathematik" findest Du den passenden Block.
Da kommt 'ne 80 rein und gut ist. -
@stefan341 said in Unwillig Rolläden:
@dieter_p said in Unwillig Rolläden:
Das scheint soweit zu laufen. Ich habe jetzt noch ein Script laufen, dass die Rollos morgens hoch und abends runter macht. Ich steuere damit direkt die Datenpunkte der Schalter an. Das sollte aber auch funktionieren oder? bzw. schöner uns sauberer wäre es die selbst erstellten Datenpunkte mit 0 oder 100% anzusteuern oder?
Mmh, klingt für mich sehr ähnlich und sehe da keine großen Unterschiede. Eine dritte Möglichkeit wäre auch direkt mit Deiner Zeitschaltung den HTTP-Befehl loszuschicken. Hier sind es ja dann feste Werte 0% oder 100% und man kann das so realisieren:
Aber viele Wege führen nach Rom.
Direkt auf die Datenpunkte zu verlinken von Geräten, kann aber recht ~ätzend sein. Wenn Dir mal ein Gerät zB kaputt geht sucht man ewig in seinen Skripten/Blocklies wo diese dann überall verknüpft waren. Das dann in Skripten die man vlt. vor Jahren gebaut hat und nicht in ~ "5 Minuten" neu gebaut oder wieder verstanden hat.
Daher kann ich dir das Thema Alias sehr ans Herz legen.Noch eine Frage:
Eines meiner nächsten Projekte soll sein die Rollos ab einer bestimmten Außentemperatur zb. auf 80% runter zu fahren (Sonnenschutz). Ich würde dann einfach den "steuere"-Block benutzen. Womit gebe ich die 80% an? Text-Block?Die 80% oder besser 80 als Zahl findest Du in der Mathematik-Kategorie:
Text ginge auch aber müßte man zusätzlich konvertieren von String nach Zahl und sowas muß ja nicht sein um nicht unnötig Rechenleistung zu verjubeln:
-
@codierknecht
Ich daddel eindeutig zu lange mit den Screenshots rum und übersehe so Deine Antworten -
-
@codierknecht said in Unwillig Rolläden:
Das sind nur Zahlenwerte.
Im Bereich "Mathematik" findest Du den passenden Block.
Da kommt 'ne 80 rein und gut ist.Danke. Hatte ich mir schon gedacht. Ich hatte die Auswahl zwischen Mathematik und Text. War ne 50/50 Chance. Aber wenn ich drüber nachdenke, ist Mathematik eigentlich auch logischer.
@dieter_p said in Unwillig Rolläden:
Eine dritte Möglichkeit wäre auch direkt mit Deiner Zeitschaltung den HTTP-Befehl loszuschicken. Hier sind es ja dann feste Werte 0% oder 100% und man kann das so realisieren:
Ja, das könnte ich auch in Betracht ziehen.
Direkt auf die Datenpunkte zu verlinken von Geräten, kann aber recht ~ätzend sein. Wenn Dir mal ein Gerät zB kaputt geht sucht man ewig in seinen Skripten/Blocklies wo diese dann überall verknüpft waren. Das dann in Skripten die man vlt. vor Jahren gebaut hat und nicht in ~ "5 Minuten" neu gebaut oder wieder verstanden hat.
Daher kann ich dir das Thema Alias sehr ans Herz legen.Ich habe leider meine kompletten Lichtschalter damals ohne alias eingerichtet. Aber ich habe mir schon länger vorgenommen Alle mit alias einzurichten und die Scripte entsprechend anzupassen. Das ist nur leider echt viel Arbeit und ich schiebe das immer vor mir her. Die Scripte werden nur immer mehr und nicht weniger. Ich muss mich da echt mal zu zwingen.
-
-
@dieter_p said in Unwillig Rolläden:
Die 80% oder besser 80 als Zahl findest Du in der Mathematik-Kategorie:
Text ginge auch aber müßte man zusätzlich konvertieren von String nach Zahl und sowas muß ja nicht sein um nicht unnötig Rechenleistung zu verjubeln:
Wie so oft bin ich mit meinem Latein mal wieder am Ende. Ich habe mich mal an mein Sonnenschutz-Projekt gemacht und verstehe folgendes nicht:
(Zum testen habe ich als Trigger eine Uhrzeit genommen)
Weder mit
noch mit
funktioniert es. Ich schreibe die 85 quasi in den Datenpunkt der auch vom Slider der Vis angesprochen wird. Auf der Vis wird der Slider auch auch 85% geändert. Die Jalousie bewegt sich nur nicht.
-
Mit Deinem Zeitplan veränderst Du den DP des VIS Sliders, was ja auch funktioniert.
Der Trigger um wirklich den Befehl zu versenden, prüft aber den Ursprung Deiner Änderung.
Diese Änderung kommt vom blockly (system.adapter.javascript) und löst damit nicht aus.
Entsprechend findest Du auch keinen Protokolleintrag im Log über den HTTP Befehl
Einfache Lösung:
Schalte den Tasmota schalter direkt mit der Zeitschaltung. Die restliche Logik funktioniert ja bereits und aktualisiert dann den Slider über die Info per MQTT:
-
Kann ich das so machen?
-
@stefan341
Denke das wird nicht funktionieren aber wegen einer Kleinigkeit.Bei der Prüfung ob die Temperatur größer 25°C ist 2 Möglichkeiten:
Du nimmst den Wert des Objektes "Temperature":
Oder direkt über den Trigger den Wert der Temperature beziehen: