Die meisten meiner Rollläden werden mit einem Intertechno Rollladenschalter geschaltet.
Standardmässig kennt dieser Schalter nur den Zustand on und off. Habe diese mit webcmd und eventmap in Runter und Hoch umbenannt.
Möchte bei diesem heißen Wetter die Rollladen auf halb zu schalten. Das Gerät kann das, in dem z.B der Runter Befehl erneut gesetzt wird während der
Rollladen noch läuft.
Möchte das folgendermaßen lösen. Das Gerät bekommt einen dritten Schalter (z.B. "Halb")
Wird dieser Schalter betätigt soll genau das passieren. Der Befehl Runter:on wird gesetzt und nach xSek wiederholt. Rolladen bleibt in der Hälfte stehen.
Habe bereits mit webCmd Runter:Hoch:Halb den dritten Schalter erzeugt. Allerdings kommt beim Betätigen unknown Argument
Wie kann ich das machen das beim Betätigen ein Argument;state,Reading gesetzt wird was ich nutzen kann um eine Routine zu starten
Hmmm, warum nimmst du nicht gleich ROLLO (siehe "help ROLLO") - das dürfte dann direkt auch prozentuale Fahranweisungen erlauben...
Ansonsten ist eventMap immer noch "bäh"...
Rollo kenne ich (noch) nicht, vielleicht gehe ich da mal kucken ;)
Und ja eventmap nutze ich auch nicht (sehr, sehr, sehr selten), führt meist/oft zu unerwartetem Verhalten an anderer Stelle (und ist dadurch schwer zu finden)...
Wenn du einen "Fahre-Halb-Befehl" o.ä. bei deinem Device haben willst, wie wäre dann cmdalias?
In etwa so (RawDef!):
defmod caMarkiseShading cmdalias set tasmotaMarkise shading AS set tasmotaMarkise POWER1 on;; sleep 5;; set tasmotaMarkise POWER2 on
Damit kann ich dann folgendes ausführen:
set tasmotaMarkise shading
https://fhem.de/commandref.html#cmdalias
https://wiki.fhem.de/wiki/Cmdalias
Obwohl das meine "tasmota Markise" sonst gar nicht kennt ;)
Ob das dann mittels webcmd geht: keine Ahnung, ich nutze das in deinem devStateIcon
(und mittlerweile bereits in einem erweiterten/verallgemeinerten cmdalias, führt aber hier wohl eher zu Verwirrungen ;) )
Gruß, Joachim
Habe bei ROLLO geschaut. Leider nicht verstanden wie ich dem definierten Rollo beibringe mein Intertechno Device zu schalten.
Bei cmdalias bin ich noch am studieren und hoffentlich kapieren. Dein Beispiel macht einen neuen Schalter der ein Device "on" schaltet und nach der Sleep-Time nochmal schaltet bzw stopped? So weit viel versprechend.
Aber kann das auch als dritter Schalter eines bestehenden Devices definiert werden?
ROLLO ist dazu da, im Prinzip 2 beliebige "Relays" zu einem "virtuellen Rollladendevice" zu verbinden. Aber im Prinzip geht alles, was man im weitesten Sinne als "hoch" und "runter"-Befehl in FHEM absetzen kann. Einfachste Varainte afaik: Man definiere eine ROLLO-Instanz, und setzt dann noch die Befehle für "hoch" und "runter" in die entsprechenden Attribute (rl_commandUp und rl_commandDown). Fehlt noch die Fahrzeit (je hoch/runter), fertig ist die Laube ;) . Man kann es erweitern um "stop"-Anweisungen, und dem auch beibringen, z.B. externe Funkkommandos zu verstehen (also z.B. zu erkennen, wenn jemand per FB runterfährt). Würde noch empfehlen, das im "CUL_HM"-Style zu definieren, also "100%" = offen.
cmdalias ist sicher auch eine mögliche Variante, hat aber halt den Nachteil, dass es hier beschränkt wäre auf eine bestimmte Position.
Vermeide bitte den Begriff "Schalter" - da versteht jeder was anderes drunter. Du sprichts hier von einem zusätzlichen Bedienelement in DeviceOverview? Oder einer neuen möglichen "set"-Anweisung?
Wie üblich wäre es einfacher, konkreter zu helfen, wenn du ein list zeigen würdest (von dem, was du jeweils gemacht hast, hier also das Intertechno-Device und der ROLLO-Versuch)...
EDIT - ein Pseudo-Beispiel:
attr myROLLO rl_commandUp set myITrollo on
attr myROLLO rl_type HomeKit
Weiterer Vorteil der ROLLO-Variante: Man kann das Ergebnis dann direkt in AutoShuttersControll verwenden, um damit z.B. die Beschattung dann automatisiert nach Außentemperatur und Sonnenstand zu steuern...
Zitat von: Beta-User am 04 August 2022, 15:48:15
cmdalias ist sicher auch eine mögliche Variante, hat aber halt den Nachteil, dass es hier beschränkt wäre auf eine bestimmte Position.
In der hier gezeigten (bewusst einfachen) Variante: ja... ;)
In der aktuell im Einsatz befindlichen: nein... 8)
Rollo: mal sehen :)
Gruß, Joachim
Habe mit ROLLO ein bisschen probiert
Mein Intertechno Device heißt RollKuechFt. Das list zeigt noch den Versuch mit drittem Schalter "Halb" (Sorry)
Internals:
DEF 0FF000FF0F FF F0
FUUID 6175a04e-f33f-33ad-817a-ef4fba93f6d4729f
IODev CUL_0
NAME RollKuechFt
NR 193
STATE Runter
TYPE IT
XMIT 0ff000ff0f
XMITdimdown 00
XMITdimup 00
XMIToff f0
XMITon ff
CODE:
1 0ff000ff0f
READINGS:
2022-08-01 16:08:13 IODev CUL_0
2021-10-24 20:05:11 protocol V1
2022-08-04 16:16:23 state on
Attributes:
IODev CUL_0
alexaName Rollo9
devStateIcon Hoch:fts_shutter_10 Runter:fts_shutter_100
eventMap on:Runter off:Hoch halb:Halb
group Rolladen
model itswitch
onOffDevice true
room Alexa,Favorit,Rolladen
webCmd Runter:Hoch:Halb
Den Rollo habe ich vorläufig RollTmp genannt
Internals:
CFGFN
FUUID 62ebbef9-f33f-33ad-d428-50038894feda6836
NAME RollTmp
NR 1081
STATE closed
TYPE ROLLO
stoptime 1659622528
READINGS:
2022-08-04 16:16:02 command closed
2022-08-04 16:16:02 desired_pct 100
2022-08-04 16:15:25 drive-type modul
2022-08-04 16:15:25 last_drive drive-down
2022-08-04 16:15:28 pct 0
2022-08-04 16:15:28 state closed
Attributes:
devStateIcon Hoch:fts_shutter_10 Runter:fts_shutter_100 9\d.*:fts_shutter_10 8\d.*:fts_shutter_20 7\d.*:fts_shutter_30 6\d.*:fts_shutter_40 5\d.*:fts_shutter_50 4\d.*:fts_shutter_60 3\d.*:fts_shutter_70 2\d.*:fts_shutter_80 1\d.*:fts_shutter_90 0\d.*:fts_shutter_100
group Rolladen
rl_autoStop 0
rl_commandDown set RollKuechFt on
rl_commandUp set RollKuechFt off
rl_excessBottom 2
rl_excessTop 4
rl_secondsDown 12
rl_secondsUp 12
rl_switchTime 1
rl_type HomeKit
room Rolladen
webCmd closed:open:pct
Geht noch nicht wirklich. Zwischenpositionen macht er nicht. Runter und Hoch gehen mit Auffälligkeiten. So lässt sich der Befehl nicht zuverlässig wiederholen um den Rolladen manuell zu stoppen. Vielleicht geht auch deshalb die Zwischenpos nicht
Wie wäre es endlich! mal mit der Verwendung von "code-Tags"!
EDIT: siehe bereits hier https://forum.fhem.de/index.php/topic,128563.msg1229685.html#msg1229685
EDIT: und hier auch schon (indirekt) https://forum.fhem.de/index.php/topic,128563.msg1229645.html#msg1229645
Gruß, Joachim
Habe auch mit cmdalias probiert.
Habe es RollKuechFtHalb genannt. Falls ich nun
set RollKuechFt shading
eingebe. Fährt mein Rolladen die gewünschten Sekunden. Soweit so erfolgreich. Allerdings ist die Eingabe von Befehlen im Textformat keine Option.
Das muss mit einem Bedienelement ausgelöst werden. Am Besten als Bedienelement im vorhandenen Device RollKuechFt
Internals:
ALIAS set
CFGFN
DEF set RollKuechFt shading AS set RollKuechFt on; sleep 5; set RollKuechFt on
FUUID 62ebcdab-f33f-33ad-48b2-31bc57456bb57cec
NAME RollKuechFtHalb
NEWCMD set RollKuechFt on; sleep 5; set RollKuechFt on
NR 1137
PARAM RollKuechFt shading
STATE defined
TYPE cmdalias
Attributes:
group Rolladen
room Rolladen
An sich sieht das (bis auf die Code-Tags...) doch schon nicht schlecht aus...
Vermutlich sollte rl_autoStop auf "1" gestellt werden.
Zitat von: bajogger am 04 August 2022, 16:33:35
Geht noch nicht wirklich. Zwischenpositionen macht er nicht. Runter und Hoch gehen mit Auffälligkeiten. So lässt sich der Befehl nicht zuverlässig wiederholen um den Rolladen manuell zu stoppen. Vielleicht geht auch deshalb die Zwischenpos nicht
Mach unbedingt dieses eventMap-Attribut in deinem IT-Device weg - diese Attribute bringen uU. alles durcheinander (qed)...
Falls das danach (!) noch ein Problem ist, klingt das mit den "Auffälligkeiten" nach einem Funkproblem.
Habe deine Änderungen durchgeführt. Die Zwischenpositionen funktionieren nicht. Rollladen fährt immer durch.
Könnte mir vorstellen das dies an den Besonderheiten des Intertechno Devices liegt. Dies kennt ja keinen Stop-Befehl.
Der Stop wird durch das erneute Senden des letzten Befehls on/off ausgelöst. Das wird das Rollo Modul nicht wissen
Zitat von: bajogger am 04 August 2022, 17:19:24
Der Stop wird durch das erneute Senden des letzten Befehls on/off ausgelöst. Das wird das Rollo Modul nicht wissen
Dann sag es ihm doch.....
rl_commandStopUp
rl_commandStopUp
Steht im Wiki sehr schön beschrieben...
Gruß
Tatsächlich funktioniert es jetzt. Die Prozentangaben sind wenig proportional zur reellen Öffnung, aber das ist nicht weiter schlimm.
Habe versucht das über SecondsDown und Up zu verändern. Danke für die Hilfe.
Zwei Themen/Fragen hätte ich noch
1. Bekomme keine StateIcon angezeigt, obwohl definiert. Bekomme nur Textanzeigen
2. PCT als Bedienelement wird hier als Dropdown dargestellt. Bei einem Shelly Rolladen ist es ein waagrechter Slider. Wie kann man das beeinflussen?
Internals:
CFGFN
FUUID 62ebbef9-f33f-33ad-d428-50038894feda6836
NAME RollTmp
NR 1081
STATE open
TYPE ROLLO
stoptime 1659637633
READINGS:
2022-08-04 20:27:07 command pct-0
2022-08-04 20:27:07 desired_pct 0
2022-08-04 20:27:07 drive-type modul
2022-08-04 20:27:07 last_drive drive-up
2022-08-04 20:27:13 pct 100
2022-08-04 20:27:13 state open
Attributes:
devStateIcon Hoch:fts_shutter_10 Runter:fts_shutter_100 9\d.*:fts_shutter_10 8\d.*:fts_shutter_20 7\d.*:fts_shutter_30 6\d.*:fts_shutter_40 5\d.*:fts_shutter_50 4\d.*:fts_shutter_60 3\d.*:fts_shutter_70 2\d.*:fts_shutter_80 1\d.*:fts_shutter_90 0\d.*:fts_shutter_100
group Rolladen
rl_autoStop 1
rl_commandDown set RollKuechFt on
rl_commandStopDown set RollKuechFt on
rl_commandStopUp set RollKuechFt off
rl_commandUp set RollKuechFt off
rl_excessBottom 2
rl_excessTop 4
rl_secondsDown 12
rl_secondsUp 12
rl_switchTime 1
rl_type HomeKit
room Rolladen
webCmd closed:open:pct
Zitat von: bajogger am 04 August 2022, 20:44:47
Tatsächlich funktioniert es jetzt. Die Prozentangaben sind wenig proportional zur reellen Öffnung, aber das ist nicht weiter schlimm.
Das ist ein generelles Problem bei allen "aufrollenden" Rollladen-Typen und Aktoren (es gibt afaik nur eine Aktor-Type, die dafür einen Kompensationsfaktor eingebaut hat => Tasmota). Je dicker die Achse, desto schneller bewegt sich die unterste Kante...
Zitat
1. Bekomme keine StateIcon angezeigt, obwohl definiert. Bekomme nur Textanzeigen
devStateIcon (in der einfachen Form) stellt dar, was im Internal STATE steht. "open" ist nicht erfasst, sondern deine "eingedeutschten" => devStateIcon anpassen...
Zitat
2. PCT als Bedienelement wird hier als Dropdown dargestellt. Bei einem Shelly Rolladen ist es ein waagrechter Slider. Wie kann man das beeinflussen?
Da ist das Stichwort "widgetOverride". Details dazu findest du im Wiki unter FHEMWEB/Widgets
Ein extra :) wg. der Code-Tags und dem list.
Nachdem ich devStateIcon von Runter/Hoch in closed/open geändert hatte, waren die Icon's zu sehen. Für die Zwischenstände kamen weiter nur Text.
Hier musste ich auch was tun. Vorher 9\d.*:fts_shutter_10
Nachher pct-9\d.*:fts_shutter_10
brachte hier Abhilfe.
Mit widgetOverride habe ich mich auch ein bisschen schwergetan die exakte Syntax für mein Problem aus den Wikibeiträgen etc zu finden.
War dann aber klar das man auch sagen muss was man overriden soll
attr widgetOverride pct:slider,0,5,100
Das das pct als zu überschreibendes Merkmal da rein muss, ist logisch, habe ich aber ewig nicht gesehen
Nun alles top. Viel gelernt (auch Code-Tags und list usw.. :)).
Nochmals vielen Dank an Alle, vor allem an Beta-User, für die Hilfe
:)
Schön, dass nun alles fein zu sein scheint.
Bitten noch:
- [gelöst] in den Titel aufnehmen (ersten Beitrag bearbeiten)
- Evtl. den Titel insgesamt noch ändern, z.B. in ("[gelöst] Intertechno Rolladenaktor in FHEMWEB darstellen"
Ein abschließendes (RAW-) list von deinem ROLLO wäre ggf. noch hilfreich für eventuelle Nachahmer (RAW wegen der einfacheren Übernahme, den "Knopf" dazu findest du unten auf der DetailView des Devices).
Falls du das in eine Sprachsteuerung integrieren willst, wäre ggf. noch der genericDeviceType auf shutter zu setzen, und falls Fragen zur Integration des ROLLO-Devices in AutoShuttersControl sind: Bitte dazu einen neuen Thread aufmachen und beachten, dass das wegen der homebridge-Invertierung als ASC type "2" (CUL_HM-Style), und nicht "1" (ROLLO) ist...