[gelöst] sequence mit Homematic-Dimmer

Begonnen von ronzo, 09 Dezember 2020, 22:59:09

Vorheriges Thema - Nächstes Thema

Gisbert

Zitat von: Otto123 am 09 Dezember 2020, 23:03:33
normale Homematic Aktoren sind keine Fernbedienungen. Die Tasten geben keine Events nach außen, die funktionieren nur intern.
Mit der HM-RC-2-PBU-FM wird es gehen, mit dem HM-LC-SW1PBU-FM nicht.

Hallo Otto,
hallo ronzo,

ich hab einen Rollladenschalter HM-LC-BL1PBU-FM (es hängt eine Senkrechtmarmise dran), an der hab ich 2 sequence-Devices dranhängen:
defmod Treppenhaus.Markise.manhoch sequence Treppenhaus.Markise:off 6 :off 6 :off 6 :off
defmod Treppenhaus.Markise.manrunter sequence Treppenhaus.Markise:on 6 :on 6 :on 6 :on

Damit kann ich die eigentliche vollautomatische Steuerung auf Handbetrieb nehmen; es hängen notifys und ein DOIF dahinter, die das regeln. Mit diesem Aktor funktionieren die sequence-Devices in Fhem bei der Vorort-Bedienung

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

ronzo

Hallo Gisbert,

das wären gute Neuigkeiten. Meine Frau beschwert sich nämlich darüber, dass die Funktion derzeit nämlich am falschen von vier Tastern läge.

Werde es asap testen.

Pfriemler

Danke an Otto für die Erklärung von "short.*" . Ich hatte gestern auch was geschrieben, aber vermutlich nicht final abgeschickt ...

Zur Frage ob man auch mit Aktoren Sequenzen bedienen kann: Gisbert hat ein Timeout von 6 Sekunden. Natürlich erzeugt auch ein Aktor ein passendes Event, nämlich wenn er das Ergebnis der letzten Aktion an die Zentrale meldet. Wenn ich einen Aktor, der schon aus ist, nochmal von Hand ausschalte, wird er also ein "off" an die Zentrale melden. Hat man aber gemäß einer üblichen Empfehlung das Atrribut "event-on-change-reading .*" gesetzt, wird es kein Event geben - der Aktor ist ja schon "off". Dann muss man also dafür sorgen, dass ein bestimmtes Reading dennoch Events erzeugt, um sie in einer Sequence nutzen zu können...
Diese Statusmeldung kommt zudem mit einer gewissen Verzögerung. Das erfordert ein entsprechend langes Timeout und eine entsprechende verzögerte Betätigung. Es setzt zudem voraus, dass der Aktor sich in der fraglichen Stellung befindet (ein Schalter wird natürlich sofort ausschalten, ein Rolladen muss sich aber schon in der richtigen Position befinden).

Trotz allem: Gute Idee und auf jeden Fall einen Versuch wert.

"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Gisbert

Hallo Pfriemler,

ZitatDiese Statusmeldung kommt zudem mit einer gewissen Verzögerung. Das erfordert ein entsprechend langes Timeout und eine entsprechende verzögerte Betätigung. Es setzt zudem voraus, dass der Aktor sich in der fraglichen Stellung befindet (ein Schalter wird natürlich sofort ausschalten, ein Rolladen muss sich aber schon in der richtigen Position befinden).

du hast alles richtig vermutet.

Mehrfach ein on/off zu senden, geht natürlich nur, wenn der Schalter schon in der entsprechenden Position ist. Es setzt auch außerdem eine Schulung des Bedienpersonals ;D voraus, was nur unter deutlichem Protest möglich war. Immerhin habe ich mit der Sequenz und verschiedenen notifys und einem DOIF es geschafft, die eigentliche (Voll)Automatik auf Hand zu nehmen (je nach Definition ein oder 2 Stunden) und so die Automatik zwischenzeitlich zu übersteuern.

Ich hänge hier nur zu Dokumentationszwecken alle Definitionen (aus der .cfg) an, aber Vorsicht, wer es nachvollziehen möchte, hat nachher ein paar Knoten mehr in seinem Frontallappen, Benutzung auf eigene Gefahr ;D:


define Treppenhaus.Markise CUL_HM 30F323
setuuid Treppenhaus.Markise 5c430dca-f33f-b139-7ef4-c7812fafecad6886
attr Treppenhaus.Markise .mId 006A
attr Treppenhaus.Markise IODev myHmUARTLGW1
attr Treppenhaus.Markise IOgrp VCCU:myHmUARTLGW1,myHmUARTLGW2
attr Treppenhaus.Markise autoReadReg 5_readMissing
attr Treppenhaus.Markise comment Dieses userReadings wird anscheinend nicht mehr benötigt: \
Level {sprintf '%.0f', ReadingsVal($name,'level','') != 50 ? ReadingsVal($name,'level','') : "100"}\
Das Attribut webCmd wurde eingekürzt:\
statusRequest:toggleDir:on:off:up:down:stop
attr Treppenhaus.Markise devStateIcon on:fts_shutter_10 off:fts_shutter_90@red up:fts_shutter_10@red down:fts_shutter_90@red
attr Treppenhaus.Markise expert defReg,rawReg
attr Treppenhaus.Markise firmware 2.11
attr Treppenhaus.Markise group Switch
attr Treppenhaus.Markise icon fts_sunblind
attr Treppenhaus.Markise model HM-LC-BL1PBU-FM
attr Treppenhaus.Markise peerIDs 00000000,
attr Treppenhaus.Markise room CUL_HM,Rollladen
attr Treppenhaus.Markise serialNr LEQ1023775
attr Treppenhaus.Markise subType blindActuator
attr Treppenhaus.Markise webCmd on:off:up:down:stop

define FileLog_Treppenhaus.Markise FileLog ./log/Treppenhaus.Markise-%Y-%m.log Treppenhaus.Markise.(level|state):.*
setuuid FileLog_Treppenhaus.Markise 5c430dca-f33f-b139-1713-c848382de8e8e399
attr FileLog_Treppenhaus.Markise archivedir /media/USBBackup/Fhemlogbackup/logbackup/
attr FileLog_Treppenhaus.Markise createGluedFile 1
attr FileLog_Treppenhaus.Markise logtype text
attr FileLog_Treppenhaus.Markise nrarchive 0

define TreppenhausMarkisenBefehl DOIF ([?Treppenhaus.Markise.hoch.dum] eq "off" and ($md ge "04-01" and $md le "10-15") \
and [?Treppenhaus.Markise:level] != 0 and [TH.Kuhlmannweg8:temperature] >= 20 and [?Temp.OG:OG.Flur] >= 21 \
and [?Lichtstaerke.West:MAX44009_Illuminance] > 15000 and [Lichtstaerke.West:quot] > 2 \
and [?Lichtstaerke.West:MAX44009_Illuminance:sec] < 600 and [?Lichtstaerke:BH1750_Illuminance:sec] < 600 \
and [?Buienradar:maxrain] <= 1 and [?myTwilight:azimuth] >= 185 and sunset_abs(-9000) gt $hms) \
(set Treppenhaus.Markise off) \
(set Treppenhaus.Markise.runter.dum on-for-timer 1800) \
(IF ([RollladenWohnzimmerWest:cmd] =~ "Up|Stop") (set RollladenWohnzimmerWest DriveSlit)) \
DOELSEIF ([?Treppenhaus.Markise.runter.dum] =~ "on" and [?Treppenhaus.Markise:level] < 10 \
and ([Wetter.Proplanta:wind] > 30 or [Buienradar:maxrain] > 1 \
or ([Lichtstaerke.West:MAX44009_Illuminance] < 5000 and [Lichtstaerke.West:quot] < 0.6) \
or [Lichtstaerke.West:MAX44009_Illuminance:sec] >= 600 or [Lichtstaerke:BH1750_Illuminance:sec] >= 600)) \
(set Treppenhaus.Markise on) \
(set Treppenhaus.Markise.hoch.dum on-for-timer 1800) \
(set RollladenWohnzimmerWest DriveUp) \
DOELSEIF ([?Treppenhaus.Markise.runter.dum] eq "off" and [?Treppenhaus.Markise:level] < 10 \
and ([Wetter.Proplanta:wind] > 30 or [Buienradar:maxrain] > 1 or [TH.Kuhlmannweg8:temperature] <= 19 \
or ([Lichtstaerke.West:MAX44009_Illuminance] < 8000 and [Lichtstaerke.West:quot] < 1) \
or [Lichtstaerke.West:MAX44009_Illuminance:sec] >= 600 or [Lichtstaerke:BH1750_Illuminance:sec] >= 600 \
or [myTwilight:azimuth] < 185 or sunset_abs(-6600) le $hms)) \
(set Treppenhaus.Markise on) \
(set Treppenhaus.Markise.hoch.dum on-for-timer 1800) \
(set RollladenWohnzimmerWest DriveUp) \
DOELSEIF ([Treppenhaus.Markise:level] == 100 and [+600]) (setreading Treppenhaus.Markise level 100) \
DOELSEIF ([Treppenhaus.Markise:level] == 0 and [+600]) (setreading Treppenhaus.Markise level 0)
setuuid TreppenhausMarkisenBefehl 5c430dca-f33f-b139-5d56-f01028b2c34286f2
attr TreppenhausMarkisenBefehl alias Markise im Treppenhaus
attr TreppenhausMarkisenBefehl comment Wegen Umstellung auf eigene Helligkeitsmessung werden die folgenden Definitionen nicht mehr benötigt. \
Umlaut in bewölkt durch einen Punkt (.) ersetzt. \
Der Punkt kann alles mögliche sein, ein normales Zeichen, ein Umlaut oder auch ein Leerzeichen. \
Das scheint aber bei "stark bewölkt" nicht gut zu funktionieren. \
Deshalb wurde eine weiteres Reading bei Wetter.Proplanta (weather2) erzeugt, welches "starkbewoelkt" zurückliefert. \
Das Reading maxrain des Devices Buienradar/Proplanta ist der Maximalwert der Regenmenge aus folgenden Devices: \
- Buienradar \
- Leverkusen.DarkSky - wegen fehlerhaften Daten (Werte ~ 0.01 mm/qm) rausgenommen  \
- verschiedene Netatmo-Geräte in der Umgebung\
Nicht mehr genutzte Wetterabfragen:\
[?Wetter.Proplanta:weather] =~ /^(sonnig|klar|heiter|wolkig)$/\
[?Wetter.Proplanta:weather2] =~ /^(starkbewoelkt)$/\
Abfragen mit mehreren Werte:\
[Device:Reading] =~ "Input1|Input2"\
siehe: https://forum.fhem.de/index.php/topic,111552.msg1057864.html#msg1057864
attr TreppenhausMarkisenBefehl devStateIcon (cmd_1|cmd_5):fts_shutter_down@red (cmd_2|cmd_3|cmd_4):fts_sunblind_0@gray
attr TreppenhausMarkisenBefehl icon fts_sunblind
attr TreppenhausMarkisenBefehl repeatsame 1:1:1:35000:60
attr TreppenhausMarkisenBefehl room CUL_HM,Rollladen
attr TreppenhausMarkisenBefehl sortby 8
attr TreppenhausMarkisenBefehl wait 15,5:5,5,5:5,5,5:1:1

define Treppenhaus.Markise.hoch.dum dummy
setuuid Treppenhaus.Markise.hoch.dum 5c430dca-f33f-b139-b8b2-c8873cb1b0a752e2
attr Treppenhaus.Markise.hoch.dum devStateIcon on-for-timer.*:fts_shutter_up@red off:fts_shutter_automatic@gray
attr Treppenhaus.Markise.hoch.dum icon fts_sunblind
attr Treppenhaus.Markise.hoch.dum room CUL_HM
attr Treppenhaus.Markise.hoch.dum setExtensionsEvent 1
attr Treppenhaus.Markise.hoch.dum setList on off
attr Treppenhaus.Markise.hoch.dum useSetExtensions 1

define Treppenhaus.Markise.runter.dum dummy
setuuid Treppenhaus.Markise.runter.dum 5c430dca-f33f-b139-f7cb-5a29d08a5cc9b5cd
attr Treppenhaus.Markise.runter.dum devStateIcon on-for-timer.*:fts_shutter_down@red off:fts_shutter_automatic@gray
attr Treppenhaus.Markise.runter.dum icon fts_sunblind
attr Treppenhaus.Markise.runter.dum room CUL_HM
attr Treppenhaus.Markise.runter.dum setExtensionsEvent 1
attr Treppenhaus.Markise.runter.dum setList on off
attr Treppenhaus.Markise.runter.dum useSetExtensions 1

define Treppenhaus.Markise.manhoch sequence Treppenhaus.Markise:off 6 :off 6 :off 6 :off
setuuid Treppenhaus.Markise.manhoch 5c430dca-f33f-b139-7629-03e9de553c426e38
attr Treppenhaus.Markise.manhoch room CUL_HM

define Treppenhaus.Markise.hoch.notify notify Treppenhaus.Markise.manhoch:trigger \
{fhem ("set Treppenhaus.Markise.hoch.dum on-for-timer 7200;; \
set Treppenhaus.Markise on;; \
set RollladenWohnzimmerWest DriveUp")}
setuuid Treppenhaus.Markise.hoch.notify 5c430dca-f33f-b139-823e-6cf56a00d0f49018
attr Treppenhaus.Markise.hoch.notify alias Treppenhaus.hoch
attr Treppenhaus.Markise.hoch.notify room CUL_HM,Rollladen

define Treppenhaus.Markise.manrunter sequence Treppenhaus.Markise:on 6 :on 6 :on 6 :on
setuuid Treppenhaus.Markise.manrunter 5c430dca-f33f-b139-f04d-702fd7a22f735666
attr Treppenhaus.Markise.manrunter room CUL_HM

define Treppenhaus.Markise.runter.notify notify Treppenhaus.Markise.manrunter:trigger \
{fhem ("set Treppenhaus.Markise.runter.dum on-for-timer 3600;; set Treppenhaus.Markise off;;")} \
{if (ReadingsVal('RollladenWohnzimmerWest','Event','') eq "Up") {fhem ("set RollladenWohnzimmerWest DriveSlit;;")}}
setuuid Treppenhaus.Markise.runter.notify 5c430dca-f33f-b139-f106-a4def274e9b5d12a
attr Treppenhaus.Markise.runter.notify alias Treppenhaus.runter
attr Treppenhaus.Markise.runter.notify room CUL_HM,Rollladen


Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome