Shelly 2.5 Rolladensteuerung

Begonnen von Wiedie, 29 Januar 2025, 13:16:04

Vorheriges Thema - Nächstes Thema

Wiedie

Hallo liebe Alle, ich habe aktuell meine Raffstores wunderbar über Shelly 2.5 implementiert und es funktioniert auch gut. Runter, Stoppen, Rauf...und Prozentangabe.

Ich möchte nun für meine liebe bessere Hälfte die Raffstores so fahren, das sie erst komplett schliessen und denn sich auf 2% stellen. Damit Erreiche ich das die Lamellen nach oben stehen. Hintergrund ist, wir leben im 1 OG und man kann von der Strasse nach oben reinschauen, wenn die Raffstores "beschatten". Daher müssen die Abends wenn es dunkel ist, anders stehen. Meine Frau wünscht sich "einen Knopf" dafür.

So habe ich es versucht, aber es klappt nicht, es erscheint eine Fehlermeldung von FHEM

define RL.WoZiSued1 Shelly 192.xxx.xxx.xxx
setuuid RL.WoZiSued1 xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
attr RL.WoZiSued1 alias Wohnzimmer Sued 1
attr RL.WoZiSued1 cmdIcon closed:fts_shutter_down stop:fts_shutter_manual open:fts_shutte$
attr RL.WoZiSued1 devStateIcon 100:fts_window_2w\
9\d.*:fts_shutter_90 \
8\d.*:fts_shutter_80 \
7\d.*:fts_shutter_70 \
6\d.*:fts_shutter_60 \
5\d.*:fts_shutter_50 \
4\d.*:fts_shutter_40 \
3\d.*:fts_shutter_30 \
2\d.*:fts_shutter_20 \
1\d.*:fts_shutter_10\
0:fts_shutter_100
attr RL.WoZiSued1 mode roller
attr RL.WoZiSued1 model shelly2.5
attr RL.WoZiSued1 room Rolläden
attr RL.WoZiSued1 stateFormat pct
attr RL.WoZiSued1 webCmd closed:stop:open:pct:closeAndSet2

# Notify zur Steuerung des neuen Befehls
define RL.WoZiSued1_closeAndSet2 notify RL.WoZiSued1:closeAndSet2 {
  fhem("set RL.WoZiSued1 closed;; sleep 2;; set RL.WoZiSued1 pct 2");
}
attr RL.WoZiSued1_closeAndSet2 room Rolläden

Beta-User

Versuch's mal mit der letzten Dev-Version, https://shelly-api-docs.shelly.cloud/gen2/changelog/:
ZitatCover Add slat control (venetian blinds) support

Dann sollte das zumindest über das Web-Interface gehen; ggf. mal im Shelly-Modul-dev-Thread nachsehen, ob das schon implementiert ist, ansonsten eben fragen ;).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Wiedie

Hallo Beta-User,
ich wollte das eigentlich mit Bordmitteln von FHEM läsen. Ich dachte es muss doch irgendwie möglich sein, das ich diese Befehle set RL.WoZiSued1 closed;; sleep 2;; set RL.WoZiSued1 pct 2 durch einen Knopf ausführe, der zum Gerät gehört. Ich muss ja das Runterfahren, Warten und dann auf 2% stellen nicht unbedingt durch Logik im Shelly hinbekommen. Bin nicht unbedingt der Profi der nun API Scripte schreiben kann... :-o
Gruß, Wiedie

betateilchen

Zitat von: Wiedie am 29 Januar 2025, 13:16:04So habe ich es versucht, aber es klappt nicht, es erscheint eine Fehlermeldung von FHEM

Es wäre ja schon schön, wenn Du uns die Fehlermeldung auch verraten würdest.

Zitat von: Wiedie am 29 Januar 2025, 21:06:18ich wollte das eigentlich mit Bordmitteln von FHEM läsen. Ich dachte es muss doch irgendwie möglich sein, das ich diese Befehle durch einen Knopf ausführe, der zum Gerät gehört. Ich muss ja das Runterfahren, Warten und dann auf 2% stellen nicht unbedingt durch Logik im Shelly hinbekommen.

Grundsätzlich geht das natürlich in FHEM. Dein Denkfehler ist vermutlich Deine Annahme, dass das Warten erst beginnt, wenn das Rollo geschlossen ist. Dem ist aber nicht so. Die Wartezeit beginnt direkt nach dem Abschicken des Befehls zum Schließen. Nach 2 Sekunden wird dann das "pct 2" geschickt, zu diesem Zeitpunkt ist aber das Rollo noch nicht runtergefahren.

Du kannst den sleep Befehl anstatt mit einer Zeitangabe auch mit einem event füttern. Das heißt, das sleep kann solange warten, bis vom Shelly die Meldung kommt, dass das Rollo runtergefahren ist.

Auszug aus der commandref:

Zitat
sleep <sec|timespec|regex> [<id>] [quiet]

sleep followed by another command is comparable to a nameless at or notify, it executes the following commands after waiting for the specified time or an event matching <regex>. The delay can be given
in seconds, with millisecond accuracy, as you can specify decimal places,
as a timespec (HH:MM or HH:MM:SS or {perlfunc})
or as a regex (devicename or devicename:event)

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

Zitat von: Wiedie am 29 Januar 2025, 21:06:18Bin nicht unbedingt der Profi der nun API Scripte schreiben kann... :-o
Du mußt auch nicht der Profi sein, sondern "einfach nur" die firmware aktualisieren und den Maintainer von Shelly dazu anpingen (oder das per MQTT(2) lösen).

Im Ergebnis ist es imo sehr viel einfacher, die MCU auf dem Shelly selbst die timings überwachen zu lassen wie das in FHEM abzubilden. So war jedenfalls meine eigene Erfahrung - damals mit einem Homematic-Rollladenaktor, den ich dann am Ende gegen einen ZWave getauscht habe, der direkt die Lamellensteuerung kann, weil mich das so genervt hat, dass es nur "ungefähr" funktioniert hat mit den Lamellen.

Just my2ct.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

betateilchen

Zitat von: Beta-User am 30 Januar 2025, 10:10:06So war jedenfalls meine eigene Erfahrung - damals mit einem Homematic-Rollladenaktor, den ich dann am Ende gegen einen ZWave getauscht habe, der direkt die Lamellensteuerung kann, weil mich das so genervt hat, dass es nur "ungefähr" funktioniert hat mit den Lamellen.

Lustig, ich habe hier letztlich Shelly gegen Homemamtic IP getauscht, weil bei mir weder Shelly noch zigbee am Rollladen vernünftig funktioniert hat. Seit Homematic IP läuft alles wunschgemäß :D
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Beta-User

Zitat von: betateilchen am 30 Januar 2025, 10:14:51
Zitat von: Beta-User am 30 Januar 2025, 10:10:06So war jedenfalls meine eigene Erfahrung - damals mit einem Homematic-Rollladenaktor, den ich dann am Ende gegen einen ZWave getauscht habe, der direkt die Lamellensteuerung kann, weil mich das so genervt hat, dass es nur "ungefähr" funktioniert hat mit den Lamellen.

Lustig, ich habe hier letztlich Shelly gegen Homemamtic IP getauscht, weil bei mir weder Shelly noch zigbee am Rollladen vernünftig funktioniert hat. Seit Homematic IP läuft alles wunschgemäß :D
Na ja, "mein Problem" war, dass es zu dem Zeitpunkt, als ich die Aktoren gekauft habe wohl noch kein HM-Gerät mit Lamellen-Option gegeben hat (oder ich das nicht gefunden habe, gab's eventuell nur als Bausatz).
Jedenfalls habe ich mich dann einigermaßen geärgert darüber, dass man seitens dieser Firma nicht einfach eine "vernünftige" firmware bereitstellen kann, die auch Lamellen kann. U.a, das hat wesentlich dazu beigetragen, dass diese Firma für mich "durch" ist.
Mit den ZWave's bin ich soweit zufrieden. Man muss die Befehle etwas (auch zu CUL_HM) entzerren, aber dann ist es klasse: Die können nämlich auch "Szenen", und sogar meine bessere Hälfte nutzt z.B. Doppelklicks :) (um alle Rollläden/Jalousien in dem Raum zu öffnen bzw. schließen).

Zu ZigBee bin ich in dem Zusammenhang noch nicht gekommen, läuft ja alles erst mal wunschgemäß, und die C26 (noch ein Bausteinchen!) sind zwischenzeitlich mehr oder weniger auch alle getauscht...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

Starkstrombastler

Zitat von: Wiedie am 29 Januar 2025, 13:16:04Ich möchte nun für meine liebe bessere Hälfte die Raffstores so fahren, das sie erst komplett schliessen und denn sich auf 2% stellen. Damit Erreiche ich das die Lamellen nach oben stehen.
Da die Shelly-interne Lamellensteuerung nur bei Shellies Gen2+ verfügbar ist, bietet sich hier ein Notify auf das Reading 'position' an:
defmod ClosedNotify notify RL.WoZiSued1:position:.closed set RL.WoZiSued1 pct 2
Damit das Event nicht erst nach dem Pollen auftritt, muss im Shelly unter Actions eine ROLLER STOP URL eingetragen sein:
http://<ip-von-fhem>:8083/fhem?cmd=set%20RL.WoZiSued1%20stopped
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200

betateilchen

Zitat von: Starkstrombastler am 30 Januar 2025, 20:04:15Da die Shelly-interne Lamellensteuerung nur bei Shellies Gen2+ verfügbar ist, bietet sich hier ein Notify auf das Reading 'position' an

Dazu braucht man kein zusätzliches notify. Die Angabe der regex kann man direkt im sleep vornehmen, dann wartet sleep genau so lange, bis diese Nachricht kommmt.

Das habe ich oben schon versucht, zu erklären.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Starkstrombastler

Zitat von: betateilchen am 30 Januar 2025, 20:11:18Dazu braucht man kein zusätzliches notify. Die Angabe der regex kann man direkt im sleep vornehmen, dann wartet sleep genau so lange, bis diese Nachricht kommmt.
Das ist in der Tat einfacher und funktioniert gut (...wieder was gelernt...)
IPC\Ubuntu + Fhem, 1wire, Shellies, Siemens Logo!, Z-Wave, PhilipsTV, Vu+duo2, KM200