Hauptmenü

DOIF attr Wait

Begonnen von hanswerner1, 15 Oktober 2017, 13:26:25

Vorheriges Thema - Nächstes Thema

hanswerner1

Hallo,

ich steuere über DOIF eine Leinwand, zum runterfahren schalte ich dem Motor über ein DOIF ein und nach 54sec durch das attr Wait wieder aus.
Allerdings müsste zur genaueren Positionierung die Leinwand 54,5 sec runterfahren. das bekomm ich allerdings nicht hin. Gibt es eine Möglichkeit kleinere Einheiten als Sekunden für Wait zu bekommen ?

VG HW1

igami

Schon mit​ 54.5 versucht?
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

hanswerner1

ja, aber das scheint nicht zu klappen, die LW fährt nicht weiter runter.

viegener

Soweit ich mich erinnere arbeitet DOIF, wie eigentlich das gesamte FHEM-System intern mit Sekundengenauigkeit, da FHEM intern aus einem einzigen Thread für den grundsätzlichen Ablauf besteht wäre alles andere wohl auch wenig erfolgversprechend. Also die Wartezeiten und anderen Zeitangaben sind immer mit einer gewissen Ungenauigkeit behaftet, da würde eine Wartezeit von plus einer halben Sekunde nicht sehr sicher getroffen.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Ellert

Zitat54,5 sec
Im wait gibst Du sicherlich einen Punkt an, statt einem Komma.

amenomade

#5
Wenn DOIF nicht kann, ist es vielleicht mit sequence und triggerpartial möglich?

EDIT: aber laut CommandREF sollte DOIF können:
<quote>attr <DOIF-module> wait 1,2:3,0.5</quote>
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

viegener

Ja hab auch mal im Code nachgeschaut, generell werden vermutlich auch Sekundenbruchteile unterstützt, allerdings gilt nachwievor, dass in FHEM durch die zentrale Abarbeitung in einem einzelnen Thread die Genauigkeit nicht gewährleistet, deshalb wird das immer fehlerbehaftet bleiben.

Und richtig: Es müsste mit . (Punkt) angegeben werden, weil es auf perl-Ebene ausgewertet wird.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hanswerner1

Zitat von: viegener am 19 Oktober 2017, 08:36:30
Ja hab auch mal im Code nachgeschaut, generell werden vermutlich auch Sekundenbruchteile unterstützt, allerdings gilt nachwievor, dass in FHEM durch die zentrale Abarbeitung in einem einzelnen Thread die Genauigkeit nicht gewährleistet, deshalb wird das immer fehlerbehaftet bleiben.

Ich hab jetzt einiges versucht, immer mit "." Ich denke das Problem ist wirklich die Genauigkeit. Der Motor läuft nicht wirklich jedes mal auf die Zehntelsekunde gleich lange. Bei der Leinwand macht sich das dann im 0,5 cm Bereich bemerkbar.



Per

Jenachdem, wie die Command-Struktur ist: ruf ein Phyton Sript auf und gib dort die Zeit ein. Dann hast du einen zweiten Thread, der unabhängig ist.

Beta-User

Was ist das für eine Art der Ansteuerung?

On-for-timer direkt auf dem Aktor geht nicht?

Ansonsten: ggf. einen Rolladenaktor nehmen. Z.B. bei Homematic kann man die Laufzeiten sehr genau einstellen.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, 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

hanswerner1

Zitat von: Per am 19 Oktober 2017, 14:13:23
Jenachdem, wie die Command-Struktur ist: ruf ein Phyton Sript auf und gib dort die Zeit ein. Dann hast du einen zweiten Thread, der unabhängig ist.

Das bekomme ich leider mit meinen Kenntnissen nicht hin. :-(

Zitat von: Beta-User am 19 Oktober 2017, 14:19:44
Was ist das für eine Art der Ansteuerung?

On-for-timer direkt auf dem Aktor geht nicht?

Ansonsten: ggf. einen Rolladenaktor nehmen. Z.B. bei Homematic kann man die Laufzeiten sehr genau einstellen.

Gruß, Beta-User

Ansteuerung ist ein Sonoff 4Ch, 2 Kanäle für LW rauf/runter und 2 Kanäle für Maskierung rauf/runter.
Das mit dem Rolladenaktor wäre natürlich noch eine Idee, wobei dort 2 Zeiten eingestellt werden müssten, einmal die gesamte Zeit die die LW rauf/runter fährt und dann die Zeit die sie nur kurz rauf/runter fährt um von 16:9 auf 21:9 umzustellen.

Kann ich einen Homematic Aktor die Zeit On-for-timer mitgeben und die Zeit wird direkt im Aktor gesetzt ?

Beta-User

#11
Ein normaler HM-Aktor kann ein on-for-timer, der Rolladenaktor aber keine 2 unterschiedliche Zeiten. Dafür kannst du aber natürlich mit einem Rolladenaktor auch eine definierte Zwischenposition anfahren, im Prinzip auch aus jeder Zwischenlage heraus. Wenn 0% bzw. 100% als Startwert passen, müßte das hinreichend genau sein (das Problem mit häufigeren Wechseln bei Zwischenpositionen ist der schwindende Durchmesser der Achse, will heißen: oben wird schneller abgerollt).

Achtung: Bei einem normalen Aktor muß man sicherstellen, dass immer nur ein Kanal an ist! Sonst droht evtl. Motorschaden...

Idee für den Sonoff: Flashen auf Espeasy, und dann rules drauf machen (weiß aber nicht, ob damit mehrere Bedingungen gesetzt werden können). Ist aber nicht meine Spezialität, das kenne ich nur vom Hörensagen ::) .
Server: HP-elitedesk@Debian 12, 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

amenomade

Zitat von: hanswerner1 am 19 Oktober 2017, 11:34:05
Bei der Leinwand macht sich das dann im 0,5 cm Bereich bemerkbar.

Naja... 5 Millimeter? Ich glaub, ich könnte damit leben...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus