Autor Thema: [73_AutoShuttersControl.pm] Rollotron mit niedriger Geschwindigkeit ansteuern  (Gelesen 1252 mal)

Offline AutomatisierEtwas

  • New Member
  • *
  • Beiträge: 4
Hallo zusammen,

Ich bin von dem ASC Modul und seiner Vielzahl an Funktionalitäten sehr begeistert. Es ist alles dabei, was man für eine gute Rolladensteuerung benötigt.
Habe das Modul in meiner FHEM Steuerung entsprechend im Zusammenhang mit einem Rolltron 1400 konfiguriert und im Einsatz.

Allerdings habe ich noch keine Möglichkeit gefunden (außer ggf. über den Umweg unter Nutzung des 44_Rollo Moduls) die Rolläden mit einer niedrigen Geschwindigkeit fahren zu lassen (niedrige Geschwindigkeit muss im Gurtwickler selbst eingestellt sein --> wird jedoch nur im "Automatikmodus" genutzt).

Laut FHEM-Forum https://forum.fhem.de/index.php/topic,67800.msg660549.html#msg660549 kann eine Fahrt im Automatikmodus nur unter Verwendung des Befehls mit dem Endwort "timer" erzielt werden.
Beispiel: "set <aktor> position 50 timer"

Gibt es eine Möglichkeit den Rolladen-Positions-Ansteuerbefehl entsprechend direkt im ASC-Modul zu verändern / zu erweitern? Wenn ja, wo bzw. wie kann ich das ggf. machen?
(entweder per Parameter oder direkt im Source Code)

Vielen Dank.
AutomatisierEtwas

Hardware: DuofernStick + Rollotron 1400 (1423 45 11 UW)
Software: Raspi + FHEM
« Letzte Änderung: 14 April 2020, 01:43:23 von AutomatisierEtwas »

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18080
Evtl. mit einer eventMap am Aktor arbeiten und damit das"timer" ergänzen?
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 27888
Im Sourcecode wäre es natürlich prinzipiell möglich, würde aber jedesmal überschrieben werden. Du kannst es aber gerne zum testen einmal ergänzen.
Die Nebenwirkungen von Beta-Users Vorschlag kann ich aktuell nicht abschätzen.


Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18080
Vielleicht noch ein paar Anmerkungen:
- das mit der eventMap sollte (so es denn funktioniert) auf den "usr"-Zweig beschränkt werden;
- an sich wäre die Frage, ob man nicht den Modulautor bittet, ein Attribut für diesen Typ Aktor bereitzustellen, das das dann automatisch und generell ergänzt?
- Falls eine der beiden Lösungen funktioniert: Es gibt auch einen Thread mit "spezieller Hardware" iVm. ASC. Da wäre die Lösung ggf. auch gut aufgeboben bzw. ein Link hierher...
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline AutomatisierEtwas

  • New Member
  • *
  • Beiträge: 4
Hallo Beta-User und CoolTux,

danke für eure Antworten.
Inzwischen hatte ich etwas Zeit den Source Code zu begutachen. Meine Lösung ist zwar nicht "updatefähig", kann aber bis zur einer offiziellen Lösung ggf. dem einen oder anderen weiterhelfen.
In der Datei /opt/fhem/FHEM/73_AutoShuttersControl.pm folgende Ergänzung .' timer' hinzufügen.

Für Version: 0.8.5 (und andere) des ASC-Moduls. Ergänzung in Subroutine sub _SetCmdFn
CommandSet( undef,
 $shuttersDev
 . ':FILTER='
 . $shutters->getPosCmd . '!='
 . $posValue . ' '
 . $shutters->getPosSetCmd . ' '
 . $posValue . ' timer');

Aufgrund einer kleinen Source Code Änderung in Version 0.9.10 hier auch die notwendige Anpassung für diese Version in Subroutine sub _SetCmdFn

CommandSet( undef,
            $shuttersDev
          . ':FILTER='
          . $shutters->getPosCmd . '!='
          . $posValue . ' '
          . $driveCommand . ' timer');

FEATURE-Vorschlag für die ASC-Weiterentwicklung: attr ASC_Pos_AppendCmd = 'timer'

Wo genau kann ich den Thread mit "spezieller Hardware" im Forum finden?
Informativ Informativ x 1 Liste anzeigen

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18080
Der "Hardware"-Thread ist dieser hier: https://forum.fhem.de/index.php/topic,101182.0.html

@CoolTux: Das wäre wieder ein Beispiel, in dem ggf. ein "ASC_CustomCommand" helfen würden.
(Würde das allg. Aufbohren des Fahrbefehls besser finden als ein weiteres Attribut).
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Offline CoolTux

  • Developer
  • Hero Member
  • ****
  • Beiträge: 27888
Der "Hardware"-Thread ist dieser hier: https://forum.fhem.de/index.php/topic,101182.0.html

@CoolTux: Das wäre wieder ein Beispiel, in dem ggf. ein "ASC_CustomCommand" helfen würden.
(Würde das allg. Aufbohren des Fahrbefehls besser finden als ein weiteres Attribut).

Ja da stimme ich Dir zu. Allerdings wird es dann schwierig denke ich mit :FILTER zu arbeiten. Müsste man mal schauen.
Habe da noch so einen Kandidaten welcher kein "command position" haben will sondern nur einen command weil das Rollo bei Command Position nicht sauber in die Stellung fährt. Aber muß sich wirklich ASC um die Unzulänglichkeiten der jeweiligen Hardwaremodule kümmern  :-[

Ich finde auch man sollte die ganzen Rollo Hardwaremodule standardisieren.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Mein Dokuwiki:
https://www.cooltux.net

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18080
Na ja, wünschen kann man sich das mit der Standardisierung - so es denn die Hardware erlaubt... Und genau daran wird es letztlich immer bei irgendwas neuem häufig scheitern...

Das mit "FILTER" müßte man dann auch komplett in Userhand übergeben, aber m.E. ist das das kleinere Übel. Letztlich ist das eben eine Art "Notausgang" für die Fälle, die wir anders nicht in den Griff kliegen; nicht schön, aber auch kein so großes Drama (mal abgesehen davon, dass du die ganze Logik dann umbauen mußt; auch keine Kleinigkeit, schon klar).

@AutomatisierEtwas
Hier in dem konkreten Fall hätte mich noch interessiert, ob es mit eventMap nicht doch auch gehen würde? Dann wäre das Problem in der Tat (jedenfalls halbwegs) da gelöst wo es entsteht: bei der Hardware... Einen Seiteneffekt würde ich nur annehmen, wenn der "Zwangs-"Zusatz nicht immer gebraucht würde, aber genau das scheint ja hier der Fall zu sein? Oder gibt es Situationen, wo aus FHEM heraus ein set OHNE das " timer" erfolgen können soll? Doch gerade nicht, oder?
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files
Informativ Informativ x 1 Liste anzeigen

Offline AutomatisierEtwas

  • New Member
  • *
  • Beiträge: 4
- das mit der eventMap sollte (so es denn funktioniert) auf den "usr"-Zweig beschränkt werden;

Vielen Dank Beta-User für deinen wertvollen Hinweis mit dem eventMap Attribut. Es hat funktioniert:

set <RolladenDeviceName> timeAutomatic on
attr <RolladenDeviceName> eventMap {usr=>{'^position(.*)'=>'position $1 timer'}}

Hierbei muss der Platzhalter <RolladenDevice> durch den Namen des jeweiligen Rolladendevice Namen ersetzen werden.

Das eventMap Attribut ist besser als die Änderung im Source Code, da
- bleibt bei einem Update des Source Codes erhalten
- funktioniert auch, wenn die Rolladenfahrt manuel ausgelöst wird über set <RolladenDeviceName>  position XXX
- funktioniert auch, wenn die Rolladenfahrt durch einen ASC_ExternalTrigger ausgelöst wird.
« Letzte Änderung: 01 Mai 2020, 13:38:11 von AutomatisierEtwas »
Gefällt mir Gefällt mir x 2 Liste anzeigen

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 18080
Danke erst mal für die positive Rückmeldung!

(Immer wieder gut, wenn eine Bestätigung kommt, dass das "Bauchgefühl" zu manchen Sachen einigermaßen valide ist ;) .)

Setzt du den Thread dann bitte noch auf [gelöst] und stellst die Lösung insgesamt auch noch in den
"Hardware"-Thread [...] https://forum.fhem.de/index.php/topic,101182.0.html
Könnte ja sein, dass das auch was ist, was für ganz andere Device-TYPEs eine Option bietet, und in dem "Sammelthread" findet man das dann eher...
Server: HP-T620@Debian 11, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

 

decade-submarginal