NEWS
Unerklärliches Verhalten mit Shelly Markise
-
Hallo,
ich habe einen Shelly2 als Markisensteuerung im Einsatz.
In Blockly habe ich mir eine Logik erstellt die Tastendrücke eines Tradfri Tasters zählt und die Markise auf drei verschiedene Stellungen fährt. Dies funktioniert direkt nach dem Speichern einwandfrei, aber spätestens nach einem Tag macht die Markise nur noch undefinierten Murks.
Habe nun rausgefunden dass es nicht an der Scriptlogik liegt sondern irgendwo anders. Selbst ein Miniscript funktioniert nicht mehr.
Das verursacht bei einem Tastendruck dass die Markise kurz in die Eine dann in die andere Richtung fährt und stoppt. Nicht auf Position 50. Ein Verbose im Script gibt nur aus dass Position mit 50 angesteuert wurde.
Ein manuelles Eintragen von 50 in den Objekten funktioniert einwandfrei.
Und sobald IOBroker neu gestartet wird geht es auch einwandfrei.
Aber eben nur bis zum nächsten Tag.Was kann das sein??
Vielen Dank,
Daniel -
@da_ba_bw sagte in Unerklärliches Verhalten mit Shelly Markise:
Hallo,
ich habe einen Shelly2 als Markisensteuerung im Einsatz.
In Blockly habe ich mir eine Logik erstellt die Tastendrücke eines Tradfri Tasters zählt und die Markise auf drei verschiedene Stellungen fährt. Dies funktioniert direkt nach dem Speichern einwandfrei, aber spätestens nach einem Tag macht die Markise nur noch undefinierten Murks.
Habe nun rausgefunden dass es nicht an der Scriptlogik liegt sondern irgendwo anders. Selbst ein Miniscript funktioniert nicht mehr.
Das verursacht bei einem Tastendruck dass die Markise kurz in die Eine dann in die andere Richtung fährt und stoppt. Nicht auf Position 50. Ein Verbose im Script gibt nur aus dass Position mit 50 angesteuert wurde.
Ein manuelles Eintragen von 50 in den Objekten funktioniert einwandfrei.
Und sobald IOBroker neu gestartet wird geht es auch einwandfrei.
Aber eben nur bis zum nächsten Tag.Was kann das sein??
Vielen Dank,
DanielIrgendwelche anderen Skripte die auch die Markise steuern?
-
Ich habe das Gleiche zwar noch auf einem Tuya Taster, aber auch wenn ich dieses Script deaktiviere ändert sich daran nichts.
-
@da_ba_bw said in Unerklärliches Verhalten mit Shelly Markise:
Und sobald IOBroker neu gestartet wird geht es auch einwandfrei.
Aber eben nur bis zum nächsten Tag.
Was kann das sein??Das dürfte sehr wahrscheinlich daran liegen, dass die Zeiten zum Anfahren der einzelnen Positionen zum einen nicht exakt, zum zweiten von der Richtung und von zum dritten von der jeweiligen Teilstrecke abhängig sind.
Was passiert dann?
Ich fahre von 0->50: Es wird ungefähr "Mittelstellung" angefahren
Ich fahre zurück 50->0: Wenn die Widerstände nicht exakt gleich sind, verpasse ich die Nullstellung. Ab jetzt laufen dann alle weiteren Fahrten mit falschem NullpunktIch fahre von 0->50 und dann von 50->100: Es wird ungefähr vollständig ausgefahren. Es ist zweimal der Anfahrwiderstand zu überwinden
Ich fahre 0->100: Es muss nur einmal der Anfahrwiderstand überwunden werden. Damit ist sehr wahrscheinlich der Widerstand insgesamt gering. Ich werde wohl etwas weiter ausfahren.Was hier noch gemacht werden solte, ist eine regelmäßige Kalibrierung der Stellung (z.B. über Endlagenschalter in definierter Stellung). Damit kannst Du das System immer wieder einmal "neu" aufsetzen.
Es empfiehlt sich wahrscheinlich eine Kalibrierung der Nullstellung. -
Es liegt nicht an den 50% ansich. Der Shelly macht das hervorragend mit der Position. Von FHEM aus über MQTT, manuell in den Objekten oder auch direkt über das Webinterface vom Shelly funktioniert auch alles einwandfrei.
Das Problem ist dass es irgendwo zwischen den Objekten und dem Script nicht harmoniert. Dachte schon an das Shelly Plugin, aber heute gab es schon vorher Probleme. Da wurde jeder Tastendruck des Tradfri Tasters im Script mehrfach gezählt obwohl er in den Objekten nur einen Zeitstempel bekommt.
-
@da_ba_bw sagte: obwohl er in den Objekten nur einen Zeitstempel bekommt.
Woher weißt Du das? Man sieht immer nur den letzten Zeitstempel. Hast Du den Datenpunkt historisiert?
-
Der Tradfri Taster macht bei jedem Tastendruck auf "I" ein true, und nur bei Druck auf "0" geht er wieder auf false.
Also hab ich eine Zeit für "letzte Änderung" und eine für "Zeitstempel". Bei mehrfachem Druck ändert sich nur der Zeitstempel.
Wenn ich aber nur einmal drücke, es vom Script aber mehrfach interpretiert wird stehen zwei gleiche Zeiten drin (wenn vorher false war). Also müsste ja nur einmal true angekommen sein. -
@da_ba_bw sagte: es vom Script aber mehrfach interpretiert wird
Dass ein Skript öfter triggert, als dass der Zeitstempel aktualisiert wird, halte ich für ausgeschlossen. Trigger mal auf "wurde aktualisiert" und logge den Wert. Vielleicht prellt die Taste?
-
Das ist echt komisch. Heute war das Problem definitiv der Shelly Adapter. Das Verhalten bestand gerade auch wenn ich in den Objekten eine Stellung vorgegeben habe. Kurz hin und her und stop.
Gestern war aber definitiv die Steuerung des Scrips das Problem. Das geht gerade einwandfrei.Hab jetzt erstmal den Shelly Adapter deaktiviert und steuere über den FHEM-Adapter. Das geht (zumindest gerade) problemlos.