Lamellenstoren, Venetian Blinds: Lamellenwinkel einstellen, via Tastern steuern

Begonnen von tomix, 02 November 2021, 00:09:11

Vorheriges Thema - Nächstes Thema

tomix

Hallo zusammen

Ich möchte jeweils mit einem Shelly 2.5 (via MQTT) unsere Rafflamellenstoren steuern. Den Shelly 2.5 habe ich bereits in FHEM eingebunden:

defmod myShelly Shelly 192.168.178.19
attr myShelly mode roller
attr myShelly model shelly2.5

Der Shelly ist noch nicht verbaut.
Wenn ich nun die Hinweise richtig verstanden haben, sollte hoch und runter auf eine bestimmte Position (nach der Konfiguration funktionieren). Möchte man die Lamellen kippen, den Motor entsprechend kurz laufen lassen. Gibt es dafür bereits etwas fertiges?

Nun sollten die Rafflamellenstoren auch noch klassisch mit einem Taster bedient werden können. Beim «Taster» wird es sich um ein Shelly I3 oder irgend ein anderer ESP handeln. Ich kenne folgende Bedienung:
- kurz drücken: Storen läuft in die entsprechende Richtung solange gedrückt wird.
- länger drücken: Storen läuft komplett in die entsprechende Richtung (also ganz zu oder ganz auf). Drückt man den Taster für die andere Richtung stoppt der Storen.

Mir ist unklar wie ich erreichen kann, das der Storenmotor sofort beim drücken des Taster anläuft, beim loslassen direkt wieder stoppt bzw. der Motor weiter läuft falls der Taster länger als x ms gedrückt wurde. Gibt es dafür Beispiele?

Wird dies sinnvollerweise ganz anders gelöst? Falls ja wie?

Gruss
tomix


Beta-User

Nach meinen eigenen Erfahrungen mit dem Thema Lamellensteuerung (Rollladenaktoren, eingebunden via CUL_HM) würde ich empfehlen, für diese Aufgabe Aktoren einzusetzen, die nativ einen "venetian blind mode" kennen. Gibt es u.A. in ZWave oder Homematic (-IP).

Afaik gibt das weder der Shelly-default noch irgendeine andere gängige firmware für ESPxx her.

(Ganz unabhängig davon, ob man jetzt die Einbindung via Shelly-Modul oder MQTT macht; du hast entgegen deiner Annahme nicht MQTT am Start...)

M.E. ist daher die Antwort auf die Frage, ob man das also sinnvollerweise anders löst eindeutig Ja!
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

tomix

Zitat von: Beta-User am 02 November 2021, 07:05:42
(Ganz unabhängig davon, ob man jetzt die Einbindung via Shelly-Modul oder MQTT macht; du hast entgegen deiner Annahme nicht MQTT am Start...)
Stimmt, hab das ganze auch via Shelly-Modul eingebunden.

Zitat von: Beta-User am 02 November 2021, 07:05:42
M.E. ist daher die Antwort auf die Frage, ob man das also sinnvollerweise anders löst eindeutig Ja!
Okay, also so was:
https://qubino.com/products/flush-shutter/
https://www.homematic-inside.de/hardware/jalousieaktor-hmip-1-fach-unterputz

Dazu dann noch das Gateway. Wer hat Erfahrung mit Rafflamellenstoren und welcher Atraktor hat sich bewährt? Ist dann ein Befehl in der Art: Stell auf 40% und öffne die Lamellen 25 % möglich?

Da ich keinen Taster an den Atraktor anschliessen kann (beim Storen steht nur Strom zur Verfügung), bleibt noch die Frage wie ich einen Rafflamellenstoren mit einem Taster via FHEM ansteuern kann. Weiterhin erscheint mir folgende Bedienung als sinnvoll:
Zitat von: tomix am 02 November 2021, 00:09:11
- kurz drücken: Storen läuft in die entsprechende Richtung solange gedrückt wird.
- länger drücken: Storen läuft komplett in die entsprechende Richtung (also ganz zu oder ganz auf). Drückt man den Taster für die andere Richtung stoppt der Storen.
Hat jemand diesbzgl. Erfahrung?

Gruss
tomix

Beta-User

Ich habe welche von fibaro, die sind soweit ok.
Das sind  Unterputz-Aktoren, an den man auch 230V-Taster anschließen kann, die dann ziemlich genau die Funktionalität ermöglichen, die du (mit einer Fernbedienung?) haben willst (und etwas mehr, weil man z.B. bis zu dreifach-Klicks abgreifen kann): Einfacher Klick bei Stop = laufe los in die Richtung, Jalousie läuft+Klick=Stop, langes Drücken = fahre solange gedrückt wird (zum Drehen interessant). Interface ist ein USB-Stick (zwme), kostet unter 30,- Euro, allerdings muss man sich in ZWave etwas eindenken...

FB-Option (Taster) nutze ich praktisch nicht, meine Rollläden+Jalousien werden überwiegend mit AutoShuttersControl gesteuert (das kann auch Lamellendrehung), und RHASSPY-Sprachsteuerung stellt ggf. auf "Drehung = Behangtiefe".

Es gibt aber auch FB-Taster in Zwave, aber die sind in der Regel eher speziell, was die Einbindung in gängige Schalterserien angeht (mit Jung-Serien eher suboptimal), und grade bei Jalousien sind Funksysteme auch eher nicht so das gelbe vom Ei, weil uU. zu träge (es erfordert schon mit HW-Tastern etwas Übung).
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

tomix

Ich habe schon einen KLF200 (von den Velux Dachfenster), das wäre ja io-honecontrol. Somfy hätte dafür was. Gibt es Erfahrungen damit?
Gruss
tomix

Beta-User

Zitat von: tomix am 05 November 2021, 00:10:39
Ich habe schon einen KLF200 (von den Velux Dachfenster), das wäre ja io-honecontrol. Somfy hätte dafür was. Gibt es Erfahrungen damit?
Glaube kaum, dass hier jemand zufällig über die Frage stolpert...

Generell wird KFL200 von FHEM unterstützt, und wenn das Protokoll bidirektional ist: warum nicht, wenn die Aktoren allg. gute Kritiken haben (was zu recherchieren wäre...).

Vielleicht schaust du, welche Commands die KFL dafür braucht, aber z.B. AutoShuttersControl kann seit neuestem im Prinzip sehr flexible Doppelsteuerungs-Befehle absetzen 8) (einzelne Situationen (noch) ausgenommen).
(Vermutlich ist das Preis/Leistungs-Verhältnis nicht "meins", aber das ist ein anderes Thema).
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

tomix

Zitat von: Beta-User am 05 November 2021, 06:56:46
Generell wird KFL200 von FHEM unterstützt, und wenn das Protokoll bidirektional ist: warum nicht, wenn die Aktoren allg. gute Kritiken haben (was zu recherchieren wäre...).
Hab dies für die Dachfenster und die Rollladen auf den Dachfenster in Betrieb. Funktioniert tadellos (allerdings brauchen wir eigentlich nur offen oder zu).

Habe nun mal den einen Shelly 2.5 an einen Rafflamellenstoren angehängt. Wenn man den Motor nur für eine einbestimmte Zeit einfach so laufen lassen könnte, würde sogar das kippen funktionieren. Ich werde mal dies hier probieren:
https://tasmota.github.io/docs/Blinds-and-Shutters/#venetian-blind-support

Natürlich wäre es wie empfohlen viel einfacher eine fertige Lösung zu nehmen.

Zitat von: Beta-User am 02 November 2021, 07:05:42
Afaik gibt das weder der Shelly-default noch irgendeine andere gängige firmware für ESPxx her.
Das hat mich irgendwie etwas herausgefordert ;-) .

Gruss
tomix

Beta-User

 :) wieder was gelernt...

Eigentlich war klar, dass es wenn, dann mit Tasmota funktioniert. Bei Interesse können wir gerne ein attrTemplate dafür entwickeln, das dann optisch in etwa aussehen könnte wie in  https://forum.fhem.de/index.php/topic,114109.msg1084744.html#msg1084744 für ZWave abgebildet (und auch in etwa so funktionieren).
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

tomix

Als ich das ganze gepostet habe, stand noch etwas von zweiter Regler für das selbe Relaispaar hinzufügen. Nun steht folgendes:
«All time based shutters (not stepper, pwm) can be enhanced with Venetian Blind functionality.»
Kopiere ich aber folgendes in die Console von Tasmota:
shuttertiltconfig1 -90 90 24 0 -90
erhalte ich nur:
RESULT = {"Command":"Unknown"}

Program Version 10.0.0(tasmota)
Build Date & Time 2021-10-19T08:23:49
Core/SDK Version 2_7_4_9/2.2.2-dev(38a443e)
Uptime 0T00:09:17
Flash write Count 74 at 0xF4000
Boot Count 12
Restart Reason Software/System restart
Friendly Name 1 Shelly_2_5
Friendly Name 2 Tasmota2


Die Doku bezieht sich auch auf 10.0.0.

Die Diskussion hier:
https://github.com/arendst/Tasmota/issues/7618
erläutert immerhin wie ich zum zweiten Schieber komme:
shutterrelay2 1

Aber wenn ich das richtig verstanden habe, müsste nun eigentlich alles bereits in der Firmware drin sein und ich suche irgendwo am falschen Ort. Mal am Objekt testen was die eingefügte Regel bewirkt.

...und damit ich nicht suchen muss in Zukunft. Umgeflasht wie folgt:
http://shellyip/ota?url=http://dl.dasker.eu/firmware/mg2tasmota-Shelly25.zip
siehe: https://github.com/yaourdt/mgos-to-tasmota

Gruss
tomix

tomix

Noch eine Schritt für Schritt Anleitung wie Tasmota auf einem Shelly 2.5 installiert werden kann:

Shelly 2.5 OTA auf Tasmota flashen (https://github.com/yaourdt/mgos-to-tasmota):
http://[IP des Shelly 2.5]/ota?url=http://dl.dasker.eu/firmware/mg2tasmota-Shelly25.zip

Shelly 2.5 installiert Tasmota und startet neu als AP. Mit dem Shelly verbinden und SSID und Wifi Passwort
auf der Webseite des Shelly (http://192.168.4.1) erneut setzen. Die Webseite des Shellys gab mir dann noch die IP aus die der Shelly nachher im Heimnetz hat (wie ging das?). Wieder mit dem Heimnetz verbinden und die Webseite des Shellys aufrufen.
Unter "Configure Other" das Template setzen:
Unter "Configure Module" Shelly 2.5 wählen.
{"NAME":"Shelly 2.5","GPIO":[56,0,17,0,21,83,0,0,6,82,5,22,156],"FLAG":2,"BASE":18}

Unter "Console" folgende Befehle eingeben:
Interlock 1,2
Interlock ON
SetOption80 1
PowerOnState 0

Shelly neustarten

Mal ganz grob den Storen kalibriert:
ShutterOpenDuration1 56
ShutterCloseDuration1 56


Aber wie kann man die eingebaute ShutterTilt Funktion nutzen kann??? Nach der Doku wie folgt:

shuttertiltconfig1 -90 90 24 0 -90
Ergibt aber nur ein:
... RSL: RESULT = {"Command":"Unknown"}

Gruss
tomix

Beta-User

Hättest du die Firmware entsprechend deines links selbst modifiziert und compiliert?
Sonst klappt das mAn. derzeit noch nicht.
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

tomix

Zitat von: Beta-User am 10 November 2021, 06:27:56
Hättest du die Firmware entsprechend deines links selbst modifiziert und compiliert?
Sonst klappt das mAn. derzeit noch nicht.
Nach der Dokumentation für die Version 10.0.0 müsste dies klappen. Allerdings habe ich im Quellcode nichts bzgl. ShutterTilt gefunden (nur mit Bezug zu Zigbee). Also habe ich mich gefragt, wo der entsprechende Code ist und daher mal hier nachgefragt:
https://discord.com/channels/479389167382691863/479389167382691865

Die Antwort war dann die neueste Version zu nehmen (dachte also Development oder was auch immer), der angegebene Link war aber der selbe und siehe da seit dem 9.11.2021 (12:17) gibt es die Version 10.0.0.1 und in der ist ShutterTilt enthalten (der zweite Slider fehlt noch, aber bzgl. FHEM ist dies ja egal).

Update der Firmware geht wie folgt:
«Firmware Update»
OTA Url: http://ota.tasmota.com/tasmota/tasmota.bin
Firmware Link unter: http://ota.tasmota.com/tasmota/
«Start upgrade»

Da ich nicht gewusst habe was ich da alles ausprobiert habe, habe ich dann die Konfiguration zurück gesetzt und musste daher wiederum die Zugangsdaten für das Wlan einrichten und die Konfiguration nochmals vornehmen.

Gruss
tomix

Beta-User

Via update kommt jetzt ein erster Wurf eines attrTemplate für das Lamellen-feature. Falls du testen magst...

(Für Fragen würde ich bitte ein RAW-Listing von dem MQTT2_DEVICE benötigen, falls das template was kaputt macht auch vor dessen Anwendung).
Was noch fehlt, wäre ein "doppeltes" devStateIcon.
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

tomix

Muss den Storen mal am Tag (zu laut) versuchen einzustellen. Damit zumindest mal unten und oben usw. stimmt. An welchem Ausgang ist normalerweise runter? Bei Shuttertilt1 Open lief der Storen einfach von zu nach offen und wieder nach zu usw. Habe dann abgebrochen.
Inzwischen ist die Version 10.0.0.2 Online.
Gruss
tomix

tomix

Zitat von: Beta-User am 11 November 2021, 09:53:50
(Für Fragen würde ich bitte ein RAW-Listing von dem MQTT2_DEVICE benötigen, falls das template was kaputt macht auch vor dessen Anwendung).
Wie erstellt man ein RAW-Listing, ist das gemeint?

defmod MQTT2_DVES_D315B0 MQTT2_DEVICE DVES_D315B0
attr MQTT2_DVES_D315B0 IODev MQTT2_FHEM_Server
attr MQTT2_DVES_D315B0 readingList DVES_D315B0:tele/shelly25_D315B0/LWT:.* LWT\
DVES_D315B0:cmnd/shelly25_D315B0/POWER:.* POWER\
DVES_D315B0:tele/shelly25_D315B0/INFO1:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/shelly25_D315B0/INFO2:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/shelly25_D315B0/INFO3:.* { json2nameValue($EVENT) }\
DVES_D315B0:stat/shelly25_D315B0/RESULT:.* { json2nameValue($EVENT) }\
DVES_D315B0:stat/shelly25_D315B0/POWER1:.* POWER1\
DVES_D315B0:stat/shelly25_D315B0/POWER2:.* POWER2\
DVES_D315B0:tele/shelly25_D315B0/STATE:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/shelly25_D315B0/SENSOR:.* { json2nameValue($EVENT) }\
DVES_D315B0:tasmota/discovery/E8DB84D315B0/config:.* { json2nameValue($EVENT) }\
DVES_D315B0:tasmota/discovery/E8DB84D315B0/sensors:.* { json2nameValue($EVENT) }\
DVES_D315B0:stat/shelly25_D315B0/UPGRADE:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/tasmota_D315B0/LWT:.* LWT\
DVES_D315B0:cmnd/tasmota_D315B0/POWER:.* POWER\
DVES_D315B0:tele/shelly25A_D315B0/LWT:.* LWT\
DVES_D315B0:cmnd/shelly25A_D315B0/POWER:.* POWER\
DVES_D315B0:tele/shelly25A_D315B0/INFO1:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/shelly25A_D315B0/INFO2:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/shelly25A_D315B0/INFO3:.* { json2nameValue($EVENT) }\
DVES_D315B0:stat/shelly25A_D315B0/RESULT:.* { json2nameValue($EVENT) }\
DVES_D315B0:stat/shelly25A_D315B0/POWER1:.* POWER1\
DVES_D315B0:stat/shelly25A_D315B0/POWER2:.* POWER2\
DVES_D315B0:tele/shelly25A_D315B0/STATE:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/shelly25A_D315B0/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_D315B0 room MQTT2_DEVICE

setstate MQTT2_DVES_D315B0 2021-11-13 21:24:07 ANALOG_Temperature 29.4
setstate MQTT2_DVES_D315B0 2021-11-10 00:16:01 BASE 18
setstate MQTT2_DVES_D315B0 2021-11-10 00:22:55 Command Unknown
setstate MQTT2_DVES_D315B0 2021-11-13 21:24:07 ENERGY_ApparentPower_1 0
setstate MQTT2_DVES_D315B0 2021-11-13 21:24:07 ENERGY_ApparentPower_2 0
setstate MQTT2_DVES_D315B0 2021-11-13 21:24:07 ENERGY_Current_1 0.000
setstate MQTT2_DVES_D315B0 2021-11-13 21:24:07 ENERGY_Current_2 0.000
setstate MQTT2_DVES_D315B0 2021-11-13 21:24:07 ENERGY_Factor_1 0.00
setstate MQTT2_DVES_D315B0 2021-11-13 21:24:07 ENERGY_Factor_2 0.00
setstate MQTT2_DVES_D315B0 2021-11-13 21:24:07 ENERGY_Period_1 0
setstate MQTT2_DVES_D315B0 2021-11-13 21:24:07 ENERGY_Period_2 0
...


Eingestellt ist der Storen nun, für Tilt ist es etwa:
ShutterTiltConfig1 0 90 24 90 0
0° somit 12 Uhr bzw. senkrecht und 90° waagrecht.

Gruss
tomix

tomix

attr MQTT2_shellyswitch25_E8DB84D315B0 attr Template tasmota _2ch_shutter_venetian_invert_0

Da stehe ich jetzt an:
Specify the unknown parameters for MQTT2_shellyswitch25_E8DB84D315B0/tasmota_2ch_shutter_venetian_invert_0:
Command topic prefix, without trailing / EINGABEFELD   
info topic prefix, without trailing / EINGABEFELD   
ack topic prefix, without trailing / EINGABEFELD

Was muss da rein?

Wieso heisst das Ding «...invert_0»? Soll das heissen close ist close und nicht open? Sprich das Ding ist «richtig» angeschlossen.

Gruss
tomix

Beta-User

Dein RAW sieht komisch aus. Du scheinst MQTT2_SERVER zu haben, aber mehrere Anläufe genommen zu haben und dann noch Tastendrücke zu versenden...

Schau dir mal "ignoreRegexp" an, damit die cmnd- und "discovery"-Zweige direkt am IO rausgefiltert werden.

Dann bitte das Device nochmal löschen und von autocreate anlegen lassen. Dann müßte eigentlich das attrTemplate durchlaufen, der LWT-Pfad ist ja da, der zur Ermittlung der Parameter eigentlich herangezogen werden sollte.

Ansonsten ist die Namensgebung (hoffentlich) angelehnt an die übrigen Tasmota-shutter-Templates => offen ist 100%, analog zu HomeMatic. ROLLO sieht das anders...
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

tomix

Zitat von: Beta-User am 14 November 2021, 08:32:13
Dein RAW sieht komisch aus. Du scheinst MQTT2_SERVER zu haben, aber mehrere Anläufe genommen zu haben und dann noch Tastendrücke zu versenden...
Shelly25 ohne A das war noch mit der 10.0.0 Firmware oder sogar noch von der Originalfirmware. Um die Tastendrücke habe ich mich noch gar nicht gekümmert. Kann an den meisten auch keine Taster anschliessen (falls ich welche anschliessen kann, sollten diese unabhängig sein).

Sieht nun so aus:

defmod MQTT2_DVES_D315B0 MQTT2_DEVICE DVES_D315B0
attr MQTT2_DVES_D315B0 readingList DVES_D315B0:tele/shelly25A_D315B0/LWT:.* LWT\
DVES_D315B0:cmnd/shelly25A_D315B0/POWER:.* POWER\
DVES_D315B0:tele/shelly25A_D315B0/INFO1:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/shelly25A_D315B0/INFO2:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/shelly25A_D315B0/INFO3:.* { json2nameValue($EVENT) }\
DVES_D315B0:stat/shelly25A_D315B0/RESULT:.* { json2nameValue($EVENT) }\
DVES_D315B0:stat/shelly25A_D315B0/POWER1:.* POWER1\
DVES_D315B0:stat/shelly25A_D315B0/POWER2:.* POWER2\
DVES_D315B0:tele/shelly25A_D315B0/STATE:.* { json2nameValue($EVENT) }\
DVES_D315B0:tele/shelly25A_D315B0/SENSOR:.* { json2nameValue($EVENT) }\
DVES_D315B0:tasmota/discovery/E8DB84D315B0/config:.* { json2nameValue($EVENT) }\
DVES_D315B0:tasmota/discovery/E8DB84D315B0/sensors:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_D315B0 room MQTT2_DEVICE

setstate MQTT2_DVES_D315B0 2021-11-14 21:31:56 ANALOG_Temperature 16.5
setstate MQTT2_DVES_D315B0 2021-11-14 21:31:56 ENERGY_ApparentPower_1 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:31:56 ENERGY_ApparentPower_2 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:31:56 ENERGY_Current_1 0.000
setstate MQTT2_DVES_D315B0 2021-11-14 21:31:56 ENERGY_Current_2 0.000
setstate MQTT2_DVES_D315B0 2021-11-14 21:31:56 ENERGY_Factor_1 0.00
setstate MQTT2_DVES_D315B0 2021-11-14 21:31:56 ENERGY_Factor_2 0.00
...


Zitat von: Beta-User am 14 November 2021, 08:32:13
Ansonsten ist die Namensgebung (hoffentlich) angelehnt an die übrigen Tasmota-shutter-Templates => offen ist 100%, analog zu HomeMatic. ROLLO sieht das anders...
100 % ist offen.

Template nun angewendet, Hinweis bzgl. set x_configuration erhalten. Sieht nun so aus:

defmod MQTT2_DVES_D315B0 MQTT2_DEVICE DVES_D315B0
attr MQTT2_DVES_D315B0 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_DVES_D315B0 comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35"\
Shutter specific commands available: ShutterOpenDuration1, ShutterCloseDuration1, ShutterRelay1, ShutterSetHalfway1, ShutterSetClose1, ShutterInvert1, ShutterMotordelay1, ShutterCalibration1;; you may use this for general setOptions in tasmota also.\
commands may need restart to take effect.\
For calibration, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
attr MQTT2_DVES_D315B0 devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen Offline:10px-kreis-rot 100:fts_shutter_100 0:fts_shutter_10 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 \b\d\b.*:fts_shutter_10 set_.*:fts_shutter_updown
attr MQTT2_DVES_D315B0 eventMap open:opens close:closes
attr MQTT2_DVES_D315B0 icon fts_shutter_updown
attr MQTT2_DVES_D315B0 model tasmota_2ch_shutter_venetian_invert_0
attr MQTT2_DVES_D315B0 readingList tele/shelly25A_D315B0/LWT:.* LWT\
   stat/shelly25A_D315B0/RESULT:.* { json2nameValue($EVENT) }\
   stat/shelly25A_D315B0/POWER1:.* POWER1\
   stat/shelly25A_D315B0/POWER1:on {{'state' => 'opening'}}\
   stat/shelly25A_D315B0/POWER2:.* POWER2\
   stat/shelly25A_D315B0/POWER2:on {{'state' => 'closing'}}\
   stat/shelly25A_D315B0/SHUTTER1:.* state\
   stat/shelly25A_D315B0/SHUTTER1:.* pct\
   stat/shelly25A_D315B0/SHUTTER2:.* stateSlat\
   stat/shelly25A_D315B0/SHUTTER2:.* pctSlat\
   tele/shelly25A_D315B0/RESULT:.* { json2nameValue($EVENT) }\
   tele/shelly25A_D315B0/STATE:.* { json2nameValue($EVENT) }\
   tele/shelly25A_D315B0/SENSOR:.* { json2nameValue($EVENT) }\
   tele/shelly25A_D315B0/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   tele/shelly25A_D315B0/UPTIME:.* { json2nameValue($EVENT) }\
DVES_D315B0:cmnd/shelly25A_D315B0/POWER:.* POWER\
DVES_D315B0:tasmota/discovery/E8DB84D315B0/config:.* { json2nameValue($EVENT) }\
DVES_D315B0:tasmota/discovery/E8DB84D315B0/sensors:.* { json2nameValue($EVENT) }
attr MQTT2_DVES_D315B0 room MQTT2_DEVICE
attr MQTT2_DVES_D315B0 setList close:noArg cmnd/shelly25A_D315B0/ShutterClose1\
   open:noArg cmnd/shelly25A_D315B0/ShutterOpen1\
   half:noArg cmnd/shelly25A_D315B0/ShutterPosition1 50\
   pct:slider,0,1,100 cmnd/shelly25A_D315B0/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/shelly25A_D315B0/ShutterStop1\
   closeSlat:noArg cmnd/shelly25A_D315B0/ShutterClose2\
   openSlat:noArg cmnd/shelly25A_D315B0/ShutterOpen2\
   halfSlat:noArg cmnd/shelly25A_D315B0/ShutterPosition2 50\
   pctSlat:slider,0,1,100 cmnd/shelly25A_D315B0/ShutterPosition2 $EVTPART1\
   stopSlat:noArg cmnd/shelly25A_D315B0/ShutterStop2\
   resetClose:noArg cmnd/shelly25A_D315B0/ShutterSetClose1\
   resetCloseSlat:noArg cmnd/shelly25A_D315B0/ShutterSetClose2
attr MQTT2_DVES_D315B0 setStateList open close half stop pct
attr MQTT2_DVES_D315B0 stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state
attr MQTT2_DVES_D315B0 webCmd :open:close:half:stop:pct

setstate MQTT2_DVES_D315B0 <a href="http://192.168.178.19" target="_blank">\
Online\
</a>\
75
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ANALOG_Temperature 21.5
setstate MQTT2_DVES_D315B0 2021-11-14 21:38:48 Command Error
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_ApparentPower_1 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_ApparentPower_2 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Current_1 0.000
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Current_2 0.000
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Factor_1 0.00
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Factor_2 0.00
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Period_1 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Period_2 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Power_1 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Power_2 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_ReactivePower_1 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_ReactivePower_2 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Today 0.000
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Total 0.000
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_TotalStartTime 2021-11-10T00:56:05
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Voltage 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 ENERGY_Yesterday 0.000
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:17 FallbackTopic cmnd/DVES_D315B0_fb/
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:17 GroupTopic cmnd/tasmotas/
setstate MQTT2_DVES_D315B0 2021-11-14 21:34:59 Groups 1,2
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 Heap 29
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:17 Hostname shelly25A-D315B0-5552
setstate MQTT2_DVES_D315B0 2021-11-14 21:31:52 IODev MQTT2_FHEM_Server
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:17 IPAddress 192.168.178.19
setstate MQTT2_DVES_D315B0 2021-11-14 21:34:59 Interlock on
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:17 LWT Online
setstate MQTT2_DVES_D315B0 2021-11-14 21:34:59 LedState 2
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 LoadAvg 19
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:17 Module Shelly 2.5
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 MqttCount 1
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:17 POWER
setstate MQTT2_DVES_D315B0 2021-11-14 21:37:55 POWER1 off
setstate MQTT2_DVES_D315B0 2021-11-14 21:37:53 POWER2 off
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:00 PowerOnState 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:01 PulseTime1_Remaining 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:01 PulseTime1_Set 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:01 PulseTime2_Remaining 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:01 PulseTime2_Set 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:34:58 Restart Restarting
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:17 RestartReason Software/System restart
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:01 SaveData on
setstate MQTT2_DVES_D315B0 2021-11-14 21:34:58 SetOption26 on
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:00 SetOption80 on
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:00 SetOption81 on
setstate MQTT2_DVES_D315B0 2021-11-14 21:37:55 Shutter1_Direction 0
setstate MQTT2_DVES_D315B0 2021-11-14 21:37:55 Shutter1_Position 75
setstate MQTT2_DVES_D315B0 2021-11-14 21:37:55 Shutter1_Target 75
setstate MQTT2_DVES_D315B0 2021-11-14 21:37:55 Shutter1_Tilt 90
setstate MQTT2_DVES_D315B0 2021-11-14 21:37:20 ShutterOpen1 100
setstate MQTT2_DVES_D315B0 2021-11-14 21:37:46 ShutterPosition1 61
setstate MQTT2_DVES_D315B0 2021-11-14 21:37:54 ShutterStop1 75
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 Sleep 50
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 SleepMode Dynamic
setstate MQTT2_DVES_D315B0 2021-11-14 21:34:58 StateText1 off
setstate MQTT2_DVES_D315B0 2021-11-14 21:34:58 StateText2 on
setstate MQTT2_DVES_D315B0 2021-11-14 21:34:58 StateText3 toggle
setstate MQTT2_DVES_D315B0 2021-11-14 21:34:58 StateText4 hold
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 Switch1 off
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:21 Switch2 off
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:00 SwitchMode1 3
setstate MQTT2_DVES_D315B0 2021-11-14 21:35:01 SwitchMode2 3
...


Hoch runter ist kein Problem. Der Tilt war noch falsch:

attr MQTT2_DVES_D315B0 setList close:noArg cmnd/shelly25A_D315B0/ShutterClose1\
   open:noArg cmnd/shelly25A_D315B0/ShutterOpen1\
   half:noArg cmnd/shelly25A_D315B0/ShutterPosition1 50\
   pct:slider,0,1,100 cmnd/shelly25A_D315B0/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/shelly25A_D315B0/ShutterStop1\
   closeSlat:noArg cmnd/shelly25A_D315B0/ShutterTilt1 Close\
   openSlat:noArg cmnd/shelly25A_D315B0/ShutterTilt1 Open\
   halfSlat:noArg cmnd/shelly25A_D315B0/ShutterTilt1 45\
   pctSlat:slider,0,1,100 cmnd/shelly25A_D315B0/ShutterTilt1 $EVTPART1\
   stopSlat:noArg cmnd/shelly25A_D315B0/ShutterTilt1 Stop\
   resetClose:noArg cmnd/shelly25A_D315B0/ShutterSetClose1\
   resetCloseSlat:noArg cmnd/shelly25A_D315B0/ShutterSetTilt1 Close

Nun geht auf und zu beim Tilt. Winkel einstellen passt noch nicht. halfSlat für zu auf, zu, auf, zu,...
Soviel ich weiss muss der Winkel angegeben werden, in meinem Fall irgendetwas zwischen 0 und 90.

Das hier geht auf dem WebUI:

21:50:27.609 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":0,"Target":88,"Tilt":0}}
21:50:37.052 CMD: shuttertilt1 45
21:50:37.063 MQT: stat/shelly25A_D315B0/RESULT = {"POWER1":"on"}
21:50:37.067 MQT: stat/shelly25A_D315B0/POWER1 = on
21:50:37.072 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterTilt1":88}
21:50:37.098 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":1,"Target":88,"Tilt":0}}
21:50:37.518 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":1,"Target":88,"Tilt":30}}
21:50:37.717 MQT: stat/shelly25A_D315B0/RESULT = {"POWER1":"off"}
21:50:37.722 MQT: stat/shelly25A_D315B0/POWER1 = off
21:50:38.232 MQT: stat/shelly25A_D315B0/SHUTTER1 = 88
21:50:38.236 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":0,"Target":88,"Tilt":45}}
21:50:44.125 CMD: shuttertilt1 20
21:50:44.135 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"on"}
21:50:44.140 MQT: stat/shelly25A_D315B0/POWER2 = on
21:50:44.145 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterTilt1":88}
21:50:44.166 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":-1,"Target":88,"Tilt":45}}
21:50:44.479 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":-1,"Target":88,"Tilt":23}}
21:50:44.529 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"off"}
21:50:44.532 MQT: stat/shelly25A_D315B0/POWER2 = off
21:50:45.042 MQT: stat/shelly25A_D315B0/SHUTTER1 = 88
21:50:45.048 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":0,"Target":88,"Tilt":19}}
21:50:50.884 CMD: shuttertilt1 80
21:50:50.894 MQT: stat/shelly25A_D315B0/RESULT = {"POWER1":"on"}
21:50:50.897 MQT: stat/shelly25A_D315B0/POWER1 = on
21:50:50.901 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterTilt1":88}
21:50:50.928 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":1,"Target":88,"Tilt":19}}
21:50:51.492 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":1,"Target":88,"Tilt":60}}
21:50:51.791 MQT: stat/shelly25A_D315B0/RESULT = {"POWER1":"off"}
21:50:51.796 MQT: stat/shelly25A_D315B0/POWER1 = off
21:50:52.302 MQT: stat/shelly25A_D315B0/SHUTTER1 = 88
21:50:52.307 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":0,"Target":88,"Tilt":82}}
21:50:58.139 CMD: shuttertilt1 70
21:50:58.150 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"on"}
21:50:58.155 MQT: stat/shelly25A_D315B0/POWER2 = on
21:50:58.159 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterTilt1":88}
21:50:58.184 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":-1,"Target":88,"Tilt":82}}
21:50:58.395 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"off"}
21:50:58.398 MQT: stat/shelly25A_D315B0/POWER2 = off
21:50:58.907 MQT: stat/shelly25A_D315B0/SHUTTER1 = 88
21:50:58.911 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":88,"Direction":0,"Target":88,"Tilt":67}}


Gruss
tomix

Beta-User

ZitatNun geht auf und zu beim Tilt.
Danke für die Rückmeldung und die Info, welcher Topic da paßt.
Zitat
Winkel einstellen passt noch nicht. halfSlat für zu auf, zu, auf, zu,...
Soviel ich weiss muss der Winkel angegeben werden, in meinem Fall irgendetwas zwischen 0 und 90.
Bin nicht ganz sicher, was ich aus der Info ableiten soll: Meine ZWave-Geräte erlauben "dim"-Werte zwischen 0 und 99, wobei "99" eben "ganz nach oben gekippt" bedeutet. Als Winkelangabe hätte ich jetzt angenommen, dass "90" soviel bedeutet wie "die Lamellen stehen gerade", und 180 (oder etwas weniger) die Lamellen sind ganz nach oben gekippt.
Kannst du bitte klarstellen, welcher Werte-Bereich effektiv verarbeitet wird :) .

Ansonsten sieht das so aus, als sollte man eher die JSON-Payloads verarbeiten, und dafür braucht man zweckmäßigerweise jsonMap.
Ich werde bei Gelegenheit mal diesen weiteren Versuch hochladen (Kopf bis setList unverändert):
attr DEVICE setList \
   close:noArg CMNDTOPIC/ShutterClose1\
   open:noArg CMNDTOPIC/ShutterOpen1\
   half:noArg CMNDTOPIC/ShutterPosition1 50\
   pct:slider,0,1,100 CMNDTOPIC/ShutterPosition1 $EVTPART1\
   stop:noArg CMNDTOPIC/ShutterStop1\
   closeSlat:noArg CMNDTOPIC/ShutterTilt1 Close\
   openSlat:noArg CMNDTOPIC/ShutterTilt1 Open\
   halfSlat:noArg CMNDTOPIC/ShutterTilt1 50\
   pctSlat:slider,0,1,90 CMNDTOPIC/ShutterTilt1 $EVTPART1\
   stopSlat:noArg CMNDTOPIC/ShutterTilt1 Stop\
   resetClose:noArg CMNDTOPIC/ShutterSetClose1\
   x_configuration CMNDTOPIC/$EVTPART1 $EVTPART2
attr DEVICE readingList \
   TELETOPIC/LWT:.* LWT\
   TELETOPIC/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   TELETOPIC/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   TELETOPIC/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   STATTOPIC/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   STATTOPIC/POWER1:.* {{'state' => 'opening'} if $EVENT eq 'on'}\
   STATTOPIC/POWER2:.* {{'state' => 'closing'} if $EVENT eq 'on'}
attr DEVICE devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen Offline:10px-kreis-rot 100:fts_shutter_100 0:fts_shutter_10 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 \b\d\b.*:fts_shutter_10 set_.*:fts_shutter_updown
attr DEVICE cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr DEVICE webCmd :open:close:half:stop:pct
attr DEVICE eventMap open:opens close:closes
attr DEVICE jsonMap POWER1:0 POWER2:0 Shutter1_Tilt:pctSlat Shutter1_Target:pct ANALOG_Temperature:temperature
attr DEVICE stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state
deletereading -q DEVICE (?!associatedWith|IODev).*
attr DEVICE setStateList open close half stop pct
attr DEVICE comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35"\
Shutter specific commands available: ShutterOpenDuration1, ShutterCloseDuration1, ShutterRelay1, ShutterSetHalfway1, ShutterSetClose1, ShutterInvert1, ShutterMotordelay1, ShutterCalibration1; you may use this for general setOptions in tasmota also.\
commands may need restart to take effect.\
For calibration, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
farewell:template has been applied successfully. Now it's recommended to set shutter's open and close duration and shuttertiltconfig1, see short instruction in comment attribute or the <br><a href="https://tasmota.github.io/docs/Blinds-and-Shutters/">Tasmota wiki</a>.
attr DEVICE model tasmota_2ch_shutter_venetian_invert_0
setreading DEVICE attrTemplateVersion 20211115
option:{ CALLSPEECHRECOGN }
set DEVICE attrTemplate speechcontrol_type_blind


Dann sind da im Ausgangs-Listing einige Werte, die in der Form keinen Sinn machen (die ENERGY-Werte). Oder kommt da jetzt was sinniges?

Wegen dieser drei Zweige würde ich nochmal anregen, "ignoreRegexp" am Server zu setzen:
DVES_D315B0:cmnd/shelly25A_D315B0/POWER:.* POWER\
[...]
DVES_D315B0:tasmota/discovery/E8DB84D315B0/config:.* { json2nameValue($EVENT) }\
DVES_D315B0:tasmota/discovery/E8DB84D315B0/sensors:.* { json2nameValue($EVENT) }
Das kann man zwar auch via attrTemplate lösen, aber es handelt sich m.E. um ein generisches Problem, das an der richtigen Stelle gelöst gehört.
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

tomix

Zitat von: Beta-User am 15 November 2021, 10:23:16
Dann sind da im Ausgangs-Listing einige Werte, die in der Form keinen Sinn machen (die ENERGY-Werte). Oder kommt da jetzt was sinniges?
Nach dem Logfile scheint da durchaus was passendes zu kommen. Sind wohl diese Werte:
Temperature   23.5 °C
Voltage   240 V
Frequency   50 Hz
Current   0.587 / 0.000 A
Power   140 / 0 W
Apparent Power   142 / 0 VA
Reactive Power   25 / 0 VAr
Power Factor   0.98 / 0.00
Energy Today   0.001 kWh
Energy Yesterday   0.000 kWh
Energy Total   0.001 kWh

Da kam zumindest mal was passendes. Aktuell ein sekundäres Problem.

Bzgl. den Befehlen blick ich noch nicht durch. Führe ich ein ShutterPosition1 Close aus und dann während dem runterlaufen ein ShutterStop1 fährt er beim absetzen des Befehls ShutterStop1 wieder hoch -> ?
Befehle von hier:
https://tasmota.github.io/docs/Commands/#shutters

Die Endposition kann dann durchaus überfahren werden.

23:17:24.389 MQT: stat/shelly25A_D315B0/RESULT = {"POWER1":"on"}
23:17:24.392 MQT: stat/shelly25A_D315B0/POWER1 = on
23:17:24.397 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterStop1":100}
23:17:24.421 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":100,"Direction":1,"Target":100,"Tilt":3}}
23:17:24.429 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":100,"Direction":1,"Target":100,"Tilt":3}}
23:17:25.295 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":100,"Direction":1,"Target":100,"Tilt":66}}
23:17:26.298 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":101,"Direction":1,"Target":100,"Tilt":89}}
23:17:26.946 CMD: shutterstop1
23:17:26.954 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterStop":"Done"}
23:17:27.299 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":103,"Direction":1,"Target":103,"Tilt":89}}
23:17:28.301 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":105,"Direction":1,"Target":103,"Tilt":89}}
23:17:29.303 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":107,"Direction":1,"Target":103,"Tilt":89}}
23:17:30.254 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":109,"Direction":1,"Target":103,"Tilt":89}}
23:17:31.257 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":111,"Direction":1,"Target":103,"Tilt":89}}
23:17:31.959 CMD: shutterpositionstop1
23:17:31.967 MQT: stat/shelly25A_D315B0/RESULT = {"Command":"Unknown"}
23:17:32.265 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":113,"Direction":1,"Target":103,"Tilt":89}}
23:17:33.266 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":115,"Direction":1,"Target":103,"Tilt":89}}
23:17:34.268 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":117,"Direction":1,"Target":103,"Tilt":89}}
23:17:35.269 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":119,"Direction":1,"Target":103,"Tilt":89}}
23:17:36.270 CMD: shutterposition1 stop
23:17:36.278 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterPosition":"Done"}
23:17:36.304 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":121,"Direction":1,"Target":121,"Tilt":89}}
23:17:37.271 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":123,"Direction":1,"Target":121,"Tilt":89}}
23:17:38.270 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":125,"Direction":1,"Target":121,"Tilt":89}}
23:17:39.274 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":127,"Direction":1,"Target":121,"Tilt":89}}
23:17:40.276 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":129,"Direction":1,"Target":121,"Tilt":89}}
23:17:41.279 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":131,"Direction":1,"Target":121,"Tilt":89}}
23:17:42.282 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":133,"Direction":1,"Target":121,"Tilt":89}}
23:17:43.287 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":135,"Direction":1,"Target":121,"Tilt":89}}
23:17:44.288 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":137,"Direction":1,"Target":121,"Tilt":89}}
23:17:45.289 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":139,"Direction":1,"Target":121,"Tilt":89}}
23:17:46.292 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":141,"Direction":1,"Target":121,"Tilt":89}}
23:17:47.294 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":143,"Direction":1,"Target":121,"Tilt":89}}
23:17:48.293 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":145,"Direction":1,"Target":121,"Tilt":89}}
23:17:49.270 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":147,"Direction":1,"Target":121,"Tilt":89}}
23:17:50.270 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":149,"Direction":1,"Target":121,"Tilt":89}}
23:17:51.272 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":151,"Direction":1,"Target":121,"Tilt":89}}
23:17:52.338 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":153,"Direction":1,"Target":121,"Tilt":89}}
23:17:53.266 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":155,"Direction":1,"Target":121,"Tilt":89}}
23:17:54.268 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":157,"Direction":1,"Target":121,"Tilt":89}}
23:17:55.270 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":159,"Direction":1,"Target":121,"Tilt":89}}
23:17:56.272 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":161,"Direction":1,"Target":121,"Tilt":89}}
23:17:57.276 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":163,"Direction":1,"Target":121,"Tilt":89}}
23:17:58.279 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":165,"Direction":1,"Target":121,"Tilt":89}}
23:17:59.282 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":167,"Direction":1,"Target":121,"Tilt":89}}
23:18:00.286 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":169,"Direction":1,"Target":121,"Tilt":89}}
23:18:01.289 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":171,"Direction":1,"Target":121,"Tilt":89}}
23:18:02.289 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":173,"Direction":1,"Target":121,"Tilt":89}}
23:18:03.290 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":175,"Direction":1,"Target":121,"Tilt":89}}
23:18:04.291 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":177,"Direction":1,"Target":121,"Tilt":89}}
23:18:05.292 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":179,"Direction":1,"Target":121,"Tilt":89}}
23:18:06.292 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":181,"Direction":1,"Target":121,"Tilt":89}}


und dann läuft er Amok. Relais 1 bleibt auf ON, Position läuft hoch (bis 255?) und beginnt dann wieder bei 0. Ein ShutterPosition1 Close kann dann durchaus dazu führen, dass der Storen runterläuft. Da stimmt wohl noch einiges nicht in der Tasmota Firmware.

ShutterTiltConfig<x>: <min> <max> <Tiltduration> <openposition> <closeposition> (default = 0 0 0 0 0)
Configure the tilt for venetian blinds. Min/man values must be in the range of -90° to 90°. Open and Close position must be part of the defined range between min and max. Tiltduration defines the time the shutter needs to change the tilt from min to max value. This time has to been multiplied by 20. E.g. 1.2sec = 1.2 x 20 = 24. Example defines tilt on shutter 2: shuttertiltconfig2 -90 90 24 0 90

ShutterTilt<x>: Set the tilt position <value> (between min and max), OPEN, CLOSE. Definition please see shuttertiltconfig


Ich habe dies gesetzt:
TiltConfig 1, min: 0, max 90, runtime 24, close_pos: 90, open_pos: 0
stat/shelly25A_D315B0/RESULT = {"ShutterTiltConfig1":"SHT:0 0 90 24 90 0"}

Wieso die MQTT Ausgabe 6 Werte hat für den Config-Ausgabe verstehe ich nicht.

Nach einem normalen Hochlaufen gibt shutterposition1 folgendes aus:
MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":100,"Direction":0,"Target":100,"Tilt":0}}
MQT: stat/shelly25A_D315B0/RESULT = {"ShutterPosition1":100}


Lasse ich den Storen auf 90% runter:
shutterposition1 90
23:38:16.689 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"on"}
23:38:16.692 MQT: stat/shelly25A_D315B0/POWER2 = on
23:38:16.695 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterPosition1":90}
23:38:16.734 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":100,"Direction":-1,"Target":90,"Tilt":0}}
23:38:17.150 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":99,"Direction":-1,"Target":90,"Tilt":0}}
23:38:18.147 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":97,"Direction":-1,"Target":90,"Tilt":0}}
23:38:19.168 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":95,"Direction":-1,"Target":90,"Tilt":0}}
23:38:20.147 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":93,"Direction":-1,"Target":90,"Tilt":0}}
23:38:21.154 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":91,"Direction":-1,"Target":90,"Tilt":0}}
23:38:21.803 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"off"}
23:38:21.806 MQT: stat/shelly25A_D315B0/POWER2 = off
23:38:22.312 MQT: stat/shelly25A_D315B0/SHUTTER1 = 90
23:38:22.315 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":90,"Direction":0,"Target":90,"Tilt":0}}
23:38:25.992 CMD: shutterposition1
23:38:26.001 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":90,"Direction":0,"Target":90,"Tilt":0}}
23:38:26.006 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterPosition1":90}

Die Lamellen sind zu. Wieso dann Tilt 0?

Dann auf 95% hoch:
23:40:39.569 CMD: shutterposition1 95
23:40:39.578 MQT: stat/shelly25A_D315B0/RESULT = {"POWER1":"on"}
23:40:39.581 MQT: stat/shelly25A_D315B0/POWER1 = on
23:40:39.584 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterPosition1":95}
23:40:39.605 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":90,"Direction":1,"Target":95,"Tilt":0}}
23:40:40.169 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":90,"Direction":1,"Target":95,"Tilt":37}}
23:40:41.144 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":90,"Direction":1,"Target":95,"Tilt":90}}
23:40:42.141 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":92,"Direction":1,"Target":95,"Tilt":90}}
23:40:43.147 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":94,"Direction":1,"Target":95,"Tilt":90}}
23:40:43.449 MQT: stat/shelly25A_D315B0/RESULT = {"POWER1":"off"}
23:40:43.453 MQT: stat/shelly25A_D315B0/POWER1 = off
23:40:43.965 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"on"}
23:40:43.969 MQT: stat/shelly25A_D315B0/POWER2 = on
23:40:43.979 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":95,"Direction":-1,"Target":95,"Tilt":90}}
23:40:44.129 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":95,"Direction":-1,"Target":95,"Tilt":83}}
23:40:45.135 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":95,"Direction":-1,"Target":95,"Tilt":8}}
23:40:45.331 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"off"}
23:40:45.336 MQT: stat/shelly25A_D315B0/POWER2 = off
23:40:45.845 MQT: stat/shelly25A_D315B0/SHUTTER1 = 95
23:40:45.850 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":95,"Direction":0,"Target":95,"Tilt":0}}
23:41:56.547 CMD: shutterposition1
23:41:56.555 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":95,"Direction":0,"Target":95,"Tilt":0}}
23:41:56.559 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterPosition1":95}

Die Lamellen sind offen (am Ende gab es da noch ein hin und her, evtl. stimmt ist die Zeit etwas zu hoch für den Tilt von «offen» zu «zu»).

Wollte den Storen nun hochfahren und ein ander mal weiter machen. ShutterPosition1 Close führte dazu, dass er runter gefahren ist. Das kapiere ich nun gar nicht. ShutterPosition1 war ja 95% (und «open» und «close» stimmt ansonsten).

Ich brauche ein Plan B:
Ich frage mich, ob es nicht einfacher wäre die Logik in FHEM zu machen. Also Interlock der Relais und fertig. Dann könnte ich die zumindest mal mit irgendwelchen Tastern ansteuern.
Toggel -> 0.1 Sekunden an
Hold -> an für länger als die Zeit welche benötigt wird um den Storen hoch oder runter zu fahren
Andere Richtung, wenn Storen läuft -> Stopp

Gruss
tomix

Beta-User

Zitat von: tomix am 15 November 2021, 23:25:15
Ich brauche ein Plan B:
Ich frage mich, ob es nicht einfacher wäre die Logik in FHEM zu machen.
Meine _Meinung_: Ganz sicher ist es nicht einfacher, das in FHEM abzubilden. Das feature ist in Tasmota halt noch relativ neu => debuggen helfen und gut ist... Das Tasmota-Team wird das schon auf die Reihe bekommen, nur Mut!
Nicht falsch verstehen: Ich hätte keine Einwände, falls jemand ROLLO erweitern will, aber einfacher ist es allemal, die firmware machen zu lassen! (und selbst von Grund auf coden ist m.E. keine wirklich empfehlenswerte Option!)

Zurück zum Thema:
- ich hatte bisher nicht wahrgenommen, dass es dazu schon offizielle Doku gibt, sorry;
- Mir ist komplett unklar, warum du nicht erst mal die "defaults" verwendest, also den vollen Bereich von -90 bis +90 ausnutzt, und ich würde auch vermuten, dass die 'closeposition' hier irgendwie nicht angekommen ist. Die Angabe
stat/shelly25A_D315B0/RESULT = {"ShutterTiltConfig1":"SHT:0 0 90 24 90 0"}
würde ich interpretieren als "fünf Werte" für den ersten Shutter (SHT:0 in "unix-like" Zählweise mit erstem Element = 0). Danach scheinen openposition und closeposition intern vertauscht zu sein;
- das Beispiel bei Tasmota ist m.E. auch nicht wirklich glücklich gewählt. Warum "0" für open und nicht "-90"...?
- Vermutlich sind -90 für FHEM "komisch", und mir gefällt das auch nicht besonders, es macht aber keinen Sinn, gegen die in der firmware vercodete Logik zu handeln. Evtl. müssen wir halt in FHEM darauf reagieren (insbes. in ASC, falls das Probleme mit negativen Werten haben sollte);
- Dass die firmware komisch reagiert, wenn man außerhalb der spec rumspielt, finde ich jetzt nicht überraschend...
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

tomix

Zitat von: Beta-User am 16 November 2021, 11:24:12
Das feature ist in Tasmota halt noch relativ neu => debuggen helfen und gut ist... Das Tasmota-Team wird das schon auf die Reihe bekommen, nur Mut![/code]
Ich dachte ich führe mir auch mal den Code dort zu Gemüte. SO weit weg vom Ziel kann der ja nicht sein

Zitat von: Beta-User am 16 November 2021, 11:24:12
- Mir ist komplett unklar, warum du nicht erst mal die "defaults" verwendest, also den vollen Bereich von -90 bis +90 ausnutzt, und ich würde auch vermuten, dass die 'closeposition' hier irgendwie nicht angekommen ist.
Hatte ich am Anfang, funktionierte auch nicht. Aber evtl. auch weil es sonst nicht funktioniert. Bei den Indoor-Dinger drehen die doch auch in die Gegenseite, aber dann sind es mehr als 180° total. Ich ging am Anfang von 0° = Offen aus.

Zitat von: Beta-User am 16 November 2021, 11:24:12
Die Angabe
stat/shelly25A_D315B0/RESULT = {"ShutterTiltConfig1":"SHT:0 0 90 24 90 0"}
würde ich interpretieren als "fünf Werte" für den ersten Shutter (SHT:0 in "unix-like" Zählweise mit erstem Element = 0). Danach scheinen openposition und closeposition intern vertauscht zu sein;
Nach Doku wäre es wie folgt:
<min> <max> <Tiltduration> <openposition> <closeposition> (default = 0 0 0 0 0)
min = -90, max = 0 hatte ich auch mal probiert, muss ich aber nochmals probieren, dann wäre 0 offen, was mir logisch erscheinen würde. Evtl. dachte der Entwickler auch an den üblichen viertel Kreis. Gibt es Lamellen die nach innen Kippen?

Ich muss mal gucken ob ich den Entwickler irgendwie erreichen kann bzw. den entsprechenden Code Ausschnitt mir ansehen, um zu verstehen was die Idee war.

Den Code umschreiben zum testen ist dann so eine Sache. Ich könnte dies dann nur auf einem Sonoff4CH testen, da ich den Shelly2.5 nur OTA flashen kann (brachte keinen Adapter hin für den Anschluss auf der Rückseite).

Gruss
tomix

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

tomix

Gerade wieder dran. Die neue Storen wurden heute (also inzwischen gestern) montiert ;-) .

Firmware: Tasmota 10.1.0.1 by Theo Arends

Nun mal wieder Zeit stoppen und einstellen (rauf 48 Sekunden, runter 49 Sekunden, also nehme ich mal 49 Sekunden für beides):

ShutterOpenDuration1 49
ShutterCloseDuration1 49


Storen ist aktuell nun zu. Mal abfragen ob der Shelly der gleichen Meinung ist (ShutterPosition1):
00:10:43.431 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":0,"Direction":0,"Target":0,"Tilt":0}}
00:10:43.435 MQT: stat/shelly25A_D315B0/RESULT = {"ShutterPosition1":0}


Also mal auf 50% hochfahren (ShutterPosition1 50):

00:13:12.383 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":46,"Direction":1,"Target":50,"Tilt":90}}
00:13:13.384 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":48,"Direction":1,"Target":50,"Tilt":90}}
00:13:14.187 MQT: stat/shelly25A_D315B0/RESULT = {"POWER1":"off"}
00:13:14.192 MQT: stat/shelly25A_D315B0/POWER1 = off
00:13:14.695 SHT: Tilt not match 90 -> 0
00:13:14.703 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"on"}
00:13:14.706 MQT: stat/shelly25A_D315B0/POWER2 = on
00:13:14.712 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":50,"Direction":-1,"Target":50,"Tilt":90}}
00:13:14.726 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":50,"Direction":-1,"Target":50,"Tilt":90}}
00:13:15.397 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":50,"Direction":-1,"Target":50,"Tilt":42}}
00:13:15.947 MQT: stat/shelly25A_D315B0/RESULT = {"POWER2":"off"}
00:13:15.952 MQT: stat/shelly25A_D315B0/POWER2 = off
00:13:16.457 MQT: stat/shelly25A_D315B0/SHUTTER1 = 50
00:13:16.463 MQT: stat/shelly25A_D315B0/RESULT = {"Shutter1":{"Position":50,"Direction":0,"Target":50,"Tilt":0}}


Storen fährt hoch auf 50% und schliesst dann, da «Tilt not match 90 -> 0».

Nun mal auf 90° stellen mit ShutterTilt1 OPEN (Open geht nicht, muss OPEN heissen) und wieder zu mit CLOSE. Läuft jeweils noch etwas nach, also muss die Zeit noch etwas runter, klappt aber ansonsten gut. Mit ShutterTiltConfig1 die Werte abgefragt (0 0 90 24 90 0), also mal:

ShutterTiltConfig1 0 0 90 20 90 0

Führt zum hochlaufen und überlaufen der Position. Hmm, Befehl hat einen Wert zu viel, also mal Neustart und nun korrekt:

ShutterTiltConfig1 0 90 20 90 0


Das haut nun echt gut hin, mit SutterTilt CLOSE, OPEN aber auch mit 45.

Nun also noch den anderen Shelly updaten und reinbügeln.

In FHEM die beiden wieder neu eingebunden mit dem attrTemplate tasmota_2ch_shutter_venetian_invert_0. Nun auch kapiert für was die Icon zum bedienen stehen: Auf, Zu, 50%, Stop, Slider für die Position. Das Icon welches die Storenposition darstellt ist falsch rum (offen ist es zu und umgekehrt), ansonsten passt es (Storen läuft hoch bei hoch).
Als dies hier ändern:

attr MQTT2_Shelly25_2OG_SUED_D315B0 devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen Offline:10px-kreis-rot 100:fts_shutter_100 0:fts_shutter_10 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 \b\d\b.*:fts_shutter_10 set_.*:fts_shutter_updown

Nicht schön, aber so stimmt es zumindest:

attr MQTT2_Shelly25_2OG_SUED_D315B0 devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen Offline:10px-kreis-rot 0:fts_shutter_100 100:fts_shutter_10 \b\d\b.*:fts_shutter_90 1\d.*:fts_shutter_80 2\d.*:fts_shutter_70 3\d.*:fts_shutter_60 4\d.*:fts_shutter_50 5\d.*:fts_shutter_40 6\d.*:fts_shutter_30 7\d.*:fts_shutter_20 8\d.*:fts_shutter_10 9\d.*:fts_shutter_10 set_.*:fts_shutter_updown


Nun noch den Slat (heisst bei tasmota Tilt) zusammen basteln:

attr MQTT2_Shelly25_2OG_SUED_D315B0 setList close:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterClose1\
   open:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterOpen1\
   half:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterPosition1 50\
   pct:slider,0,1,100 cmnd/Shelly25_2OG_SUED_D315B0/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterStop1\
   closeSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterTilt1 CLOSE\
   openSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterTilt1 OPEN\
   halfSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterTilt1 45\
   pctSlat:slider,0,1,100 cmnd/Shelly25_2OG_SUED_D315B0/ShutterTilt1 $EVTPART1\
   stopSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterStop2\
   resetClose:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterSetClose1\
   resetCloseSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterSetClose2
attr MQTT2_Shelly25_2OG_SUED_D315B0 setStateList open close half stop pct openSlat closeSlat halfSlat
...
attr MQTT2_Shelly25_2OG_SUED_D315B0 webCmd :open:close:half:stop:pct:openSlat:closeSlat:halfSlat:pctSlat


Damit klar ist was geändert werden muss:
   closeSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterTilt1 CLOSE\
   openSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterTilt1 OPEN\
   halfSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterTilt1 45\
   pctSlat:slider,0,1,100 cmnd/Shelly25_2OG_SUED_D315B0/ShutterTilt1 $EVTPART1\
   stopSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterStop2\
   resetClose:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterSetClose1\
   resetCloseSlat:noArg cmnd/Shelly25_2OG_SUED_D315B0/ShutterSetClose2
attr MQTT2_Shelly25_2OG_SUED_D315B0 setStateList open close half stop pct openSlat closeSlat halfSlat
...
attr MQTT2_Shelly25_2OG_SUED_D315B0 webCmd :open:close:half:stop:pct:openSlat:closeSlat:halfSlat:pctSlat

Die 45 bei halfSlat sind nicht sauber gelöst, da dies die Winkelangabe ist und nicht die Prozentangabe. Der Slider wird wohl auch nicht wie gewünscht funktionieren. Aber der Rest klappt nun zumindest.

Gruss
tomix

Beta-User

 :)

Schön, dass es vorangeht. Bevor ich da ans Großreinemachen gehe, noch eine Frage:

Zitat von: tomix am 23 Dezember 2021, 01:50:12
Führt zum hochlaufen und überlaufen der Position. Hmm, Befehl hat einen Wert zu viel, also mal Neustart und nun korrekt:

ShutterTiltConfig1 0 90 20 90 0

Das haut nun echt gut hin, mit SutterTilt CLOSE, OPEN aber auch mit 45.
In der aktuellen Doku steht da als Beispiel:
shuttertiltconfig1 -90 90 24 0 -90
Ergo würde ich vermuten, dass es sinnvoll ist, diese Bandbreite (-90 bis 90) auch auszunutzen, weil man dann wenigstens erklären kann, dass es sich um eine direkte Winkelangabe (als Abweichung zu 0° = waagerecht stehend (im Sinne von "vollem Durchblick" bei von oben nach unten laufendem Behang) geht.

Oder hast du das bewußt verworfen? (Wenn ja: warum?)
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

tomix

Zitat von: Beta-User am 23 Dezember 2021, 10:01:21
Ergo würde ich vermuten, dass es sinnvoll ist, diese Bandbreite (-90 bis 90) auch auszunutzen, weil man dann wenigstens erklären kann, dass es sich um eine direkte Winkelangabe (als Abweichung zu 0° = waagerecht stehend (im Sinne von "vollem Durchblick" bei von oben nach unten laufendem Behang) geht.
Es gibt Rafflamellenstoren die kippen auf die andere Seite beim hochlaufen bzw. hochziehen, also -90° (oder 90°?). Dies ist vorallem bei so kleinen Innenlamellen der Fall. Diejenige die ich habe sind bein runterlaufen zu (stehen vertikal) und beim hochlaufen offen (stehen waagrecht). Die Lamellen können sich also maximal um 90° drehen.

Unter: https://tasmota.github.io/docs/Blinds-and-Shutters/#jarolift-shutter-support steht folgendes:
The configuration need following parameters: angle of blinds during OPEN, angle of blinds during CLOSE. This are the max and the min values of the venetian blinds (e.g. -90° to 90°). Additionally the runtime is required from min to max and reverse. This is typically 1-2sec. The resolution of the time is 0.05sec. Duration in [sec] must be multiplied by 20. e.g. 1.2sec => 1.2 x 20 = 24. Two open and close the tilt you can define the angle for OPEN and the angle for CLOSE of the tilt. shuttertiltconfig1 -90 90 24 0 -90


Unter Commands (https://tasmota.github.io/docs/Commands/#shutters) folgendes:
ShutterTiltConfig<x> <min> <max> <Tiltduration> <openposition> <closeposition> (default = 0 0 0 0 0)
Configure the tilt for venetian blinds. Min/man values must be in the range of -90° to 90°. Open and Close position must be part of the defined range between min and max. Tiltduration defines the time the shutter needs to change the tilt from min to max value. This time has to been multiplied by 20. E.g. 1.2sec = 1.2 x 20 = 24. Example defines tilt on shutter 2: shuttertiltconfig2 -90 90 24 0 90


Mein Interpretation war dann (nach ausprobieren, für mich war 0° zuerst nicht waagrecht) folgende:
Minimum ist also 0° und Maximum 90° (oder -90° und 0°, weiss nicht mehr ob ich dies ausprobiert habe). Laufen die Lamellen hoch bzw. sind sie ganz oben (openposition) ist der Winkel 0° und laufen sie runter bzw. sind sie ganz unten (closeposition)  sind die Lamellen um 90° gedreht im Bezug zur offnen Position.

Mit anderen Werten hatte ich keinen Erfolg. Bei -90 90 (für min max) vermute ich, dass die Storen bei Tilt OPEN 0° anfahren würde, und dann 45° schräg stehen würden (1/2 der möglichen Drehung würde ausgeführt). Werde dies noch ausprobieren.

Nebenfrage: Gibt es bereits ein Wechselkommand zwischen Storenmotor läuft und Stopp, aber der Tilt dürfte dann STOP nicht gesetzt werden? Ich meine damit folgendes: drückt man AUF, wird Shutter OPEN gesendet. Drückt man nochmals AUF, wird bei laufenden Storen Motor STOP gesendet. Das Tosmato Webfrontend ist so (muss mal die Konsole mitlaufen lassen), so was würde für zwei Taster an einem anderen ESP bereits reichen, um den Storen manuel gut bedienen zu können.

Mit ShutterStopClose<x> bzw. ShutterStopOpen<x> geht dies, aber dann kann der Tilt nicht eingestellt werden mit den Tastern. Andere Lösung wäre wohl, kurz drücken Tilt ändern um x°, lang drücken für hoch bzw. runter.

Gruss
tomix

Beta-User

Oh, ok. Ich habe die -90 bis 90 Grad-Variante als Außenjalousien. Für die dürften die angegebenen Default-Werte passen (ich habe ZWave dafür im Einsatz, ist auch super, "tickt" aber von 0-99).

Von daher würde ich eigentlich annehmen, dass bei dir die -90 bis 0-Variante passend sein sollte und bin mal auf dein Testergebnis gespannt.

Die Nebenfrage verstehe ich nicht ganz, falls sich das auf FHEMWEB bezieht:
devStateIcon ergänzen bei
opening:fts_shutter_up@red:stop closing:fts_shutter_down@red:stop

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

tomix

Zitat von: Beta-User am 23 Dezember 2021, 11:06:21
Die Nebenfrage verstehe ich nicht ganz, falls sich das auf FHEMWEB bezieht:
devStateIcon ergänzen bei
opening:fts_shutter_up@red:stop closing:fts_shutter_down@red:stop

Nein, zwei physische Taster an einem anderen Shelly.

Gruss
tomix

Beta-User

Ohne irgendeine Logik an welcher Stelle auch immer wird das wohl eher nicht gehen.

Ich würde das vermutlich in FHEM via notify auf die Taster-Events lösen. Ist aber nichts, was mit dem Aktor an sich was zu tun hat....
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

tomix

Zitat von: Beta-User am 24 Dezember 2021, 15:28:53
Ich würde das vermutlich in FHEM via notify auf die Taster-Events lösen. Ist aber nichts, was mit dem Aktor an sich was zu tun hat....
Genau so werde ich mal anfangen ;D.

Mit
SwitchMode 5
sollte ein Topic für Release und eines für Hold zu Verfügung stehen.
Release: Storen jeweils etwas kippen
Hold: ganz auf bzw. zu.
Dann muss ich nur noch schauen, dass bei einem Release wen der Storen läuft dieser stoppt, sollte aber auch gehen, kann ja jeweils ein Stopp senden und dann den Befehl für etwas kippen.

Gruss
tomix

tomix

Auf dem Shelly i3 Tasmota installiert, aber die Konsole meldet gar nichts bei einem Tastendruck. Die Taster sollten an den GPIO 12, 13, 14. Hab das Ding leider vorher nicht mit der Originalfirmware getestet.
Mal gucken habe zwei von den Dinger.

Ich habe nun etwas das klappt, aber wie ich dort hin kam weiss ich nicht mehr:

{"NAME":"Shelly i3","GPIO":[0,0,0,0,0,56,0,0,83,84,82,0,0],"FLAG":2,"BASE":18}

Ergibt dann:
GPIO12: Switch_n: 2
GPIO13: Switch_n: 3
GPIO14: Switch_n: 1
Ich kapiere nicht wieso Switch, hängt ja ein Taster (Button) dran.

Hatte noch ein Backup und dieses wiederhergestellt, ergab dann folgende Regel:

{"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":188,"Free":323,"Rules":"on Switch1#state do Publish stat/%topic%/SWITCH1 %value% endon on Switch2#state do Publish stat/%topic%/SWITCH2 %value% endon on Switch3#state do Publish stat/%topic%/SWITCH3 %value% endon"}}


Zudem ist/habe ich mal folgendes gesetzt:

SwitchTopic 0
SwitchMode1 6 # Beim loslassen eine Meldung senden
SwitchMode2 6
SwitchMode3 6
SetOption32 15 # Für Hold 1.5 Sekunden drücken
SetOption1 1 # kein Reset möglich


Muss das mal auf dem anderen durchspielen ohne Backup.

Nun aber zu FHEM. Der Shelly i3 wird automatisch angelegt. RAW-Listing:

defmod MQTT2_DVES_24F672 MQTT2_DEVICE DVES_24F672
attr MQTT2_DVES_24F672 alias shellyi3_A
attr MQTT2_DVES_24F672 readingList DVES_24F672:stat/shellyi3_A_24F672/SWITCH3:.* SWITCH3\
DVES_24F672:stat/shellyi3_A_24F672/SWITCH1:.* SWITCH1\
DVES_24F672:tele/shellyi3_A_24F672/STATE:.* { json2nameValue($EVENT) }\
DVES_24F672:tele/shellyi3_A_24F672/SENSOR:.* { json2nameValue($EVENT) }\
DVES_24F672:stat/shellyi3_A_24F672/SWITCH2:.* SWITCH2
attr MQTT2_DVES_24F672 room MQTT2_DEVICE


Dazu mal zwei notify zum testen:

defmod n_Shellyi3_A_Down notify MQTT2_DVES_24F672:SWITCH1:.2 set mySwitch1 on
defmod n_Shellyi3_A_DownHold notify MQTT2_DVES_24F672:SWITCH1:.3 set mySwitch1 off

Könnte man dies auch in einen backen, irgendwann blickt man da ja nicht mehr durch.

Nach den Ferien geht es dann wohl weiter am Objekt.

Gruss
tomix

Beta-User

Zitat von: tomix am 27 Dezember 2021, 01:32:23
Ich habe nun etwas das klappt, aber wie ich dort hin kam weiss ich nicht mehr:
Siehe https://templates.blakadder.com/shelly_i3.html

Da steht auch näheres zur Konfiguration der rules und weiterer Aktivierungscodes.

Da du die "Zieladresse" kennst, könntest du auch direkt einen passenden publish an den Jalousie-Aktor da reinknödeln und den dann so einstellen, dass er gleich reagiert wie auf einen internen Taster...
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

tomix

Zitat von: Beta-User am 28 Dezember 2021, 10:15:47
Siehe https://templates.blakadder.com/shelly_i3.html

Da steht auch näheres zur Konfiguration der rules und weiterer Aktivierungscodes.
So gemacht ging aber irgendwie doch nicht.

Zitat von: Beta-User am 28 Dezember 2021, 10:15:47
Da du die "Zieladresse" kennst, könntest du auch direkt einen passenden publish an den Jalousie-Aktor da reinknödeln und den dann so einstellen, dass er gleich reagiert wie auf einen internen Taster...
Ja, aber ich wollte ja wissen was ich via FHEM senden muss. Wäre aber letztendlich eleganter. RAW-Listing sind unten angehängt.

Einmal auf Up oder Down Storen stoppen und anschliessen wird Tilt um +/- 20 verstellt (das ist ein Schönheitsfehler, Tilt sollte nicht geändert werden, wenn Storen lief also ShutterPosition != Done). Lange auf Up/Down drücken, Storen wird geöffnet/geschlossen.


defmod MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 MQTT2_DEVICE Shelly25_1OG_Zimmer_OST_D30D75
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35"\
Shutter specific commands available: ShutterOpenDuration1, ShutterCloseDuration1, ShutterRelay1, ShutterSetHalfway1, ShutterSetClose1, ShutterInvert1, ShutterMotordelay1, ShutterCalibration1;; you may use this for general setOptions in tasmota also.\
commands may need restart to take effect.\
For calibration, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen Offline:10px-kreis-rot 0:fts_shutter_100 100:fts_shutter_10 \b\d\b.*:fts_shutter_90 1\d.*:fts_shutter_80 2\d.*:fts_shutter_70 3\d.*:fts_shutter_60 4\d.*:fts_shutter_50 5\d.*:fts_shutter_40 6\d.*:fts_shutter_30 7\d.*:fts_shutter_20 8\d.*:fts_shutter_10 9\d.*:fts_shutter_10 set_.*:fts_shutter_updown
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 eventMap open:opens close:closes
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 icon fts_shutter_updown
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 model tasmota_2ch_shutter_venetian_invert_0
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 readingList tele/Shelly25_1OG_Zimmer_OST_D30D75/LWT:.* LWT\
   stat/Shelly25_1OG_Zimmer_OST_D30D75/RESULT:.* { json2nameValue($EVENT) }\
   stat/Shelly25_1OG_Zimmer_OST_D30D75/POWER1:.* POWER1\
   stat/Shelly25_1OG_Zimmer_OST_D30D75/POWER1:on {{'state' => 'opening'}}\
   stat/Shelly25_1OG_Zimmer_OST_D30D75/POWER2:.* POWER2\
   stat/Shelly25_1OG_Zimmer_OST_D30D75/POWER2:on {{'state' => 'closing'}}\
   stat/Shelly25_1OG_Zimmer_OST_D30D75/SHUTTER1:.* state\
   stat/Shelly25_1OG_Zimmer_OST_D30D75/SHUTTER1:.* pct\
   stat/Shelly25_1OG_Zimmer_OST_D30D75/SHUTTER2:.* stateSlat\
   stat/Shelly25_1OG_Zimmer_OST_D30D75/SHUTTER2:.* pctSlat\
   tele/Shelly25_1OG_Zimmer_OST_D30D75/RESULT:.* { json2nameValue($EVENT) }\
   tele/Shelly25_1OG_Zimmer_OST_D30D75/STATE:.* { json2nameValue($EVENT) }\
   tele/Shelly25_1OG_Zimmer_OST_D30D75/SENSOR:.* { json2nameValue($EVENT) }\
   tele/Shelly25_1OG_Zimmer_OST_D30D75/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   tele/Shelly25_1OG_Zimmer_OST_D30D75/UPTIME:.* { json2nameValue($EVENT) }\
Shelly25_1OG_Zimmer_OST_D30D75:cmnd/Shelly25_1OG_Zimmer_OST_D30D75/POWER:.* POWER\
Shelly25_1OG_Zimmer_OST_D30D75:tasmota/discovery/E8DB84D30D75/config:.* { json2nameValue($EVENT) }\
Shelly25_1OG_Zimmer_OST_D30D75:tasmota/discovery/E8DB84D30D75/sensors:.* { json2nameValue($EVENT) }
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 room Haus,Haus->Zimmer,MQTT2_DEVICE
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 setList close:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterClose1\
   open:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterOpen1\
   half:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterPosition1 50\
   pct:slider,0,1,100 cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterStop1\
   closeSlat:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterTilt1 CLOSE\
   openSlat:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterTilt1 OPEN\
   halfSlat:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterTilt1 45\
   pctSlat:slider,0,1,90 cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterTilt1 $EVTPART1\
   stopSlat:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterStop1\
   resetClose:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterSetClose1\
   closestop:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterStopClose1\
   openstop:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterStopOpen1\
   closeDiffSlat:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterTiltChange1 20\
   openDiffSlat:noArg cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterTiltChange1 -20
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 setStateList open close half stop pct openDiffSlat closeDiffSlat
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state
attr MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 webCmd :open:close:half:stop:pct

setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 <a href="http://192.168.178.14" target="_blank">\
Online\
</a>\
opening
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ANALOG_Temperature 36.7
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_ApparentPower_1 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_ApparentPower_2 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Current_1 0.000
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Current_2 0.000
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Factor_1 0.00
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Factor_2 0.00
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Frequency 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Period_1 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Period_2 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Power_1 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Power_2 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_ReactivePower_1 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_ReactivePower_2 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Today 0.004
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Total 0.021
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_TotalStartTime 2021-11-12T22:04:35
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Voltage 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 ENERGY_Yesterday 0.002
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:17:42 FallbackTopic cmnd/Shelly25_1OG_Zimmer_OST_D30D75_fb/
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:17:42 GroupTopic cmnd/tasmotas/
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:22 Groups 1,2
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Heap 25
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:17:42 Hostname Shelly25-1OG-Zimmer-OST-D30D75-
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:21 IODev MQTT2_FHEM_Server
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:17:42 IPAddress 192.168.178.14
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:22 Interlock on
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:47 LWT Online
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:22 LedState 2
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 LoadAvg 19
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:17:42 Module Shelly 2.5
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 MqttCount 20
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:47 POWER
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:25 POWER1 on
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:23 POWER2 off
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:23 PowerOnState 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:24 PulseTime1_Remaining 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:24 PulseTime1_Set 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:24 PulseTime2_Remaining 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:24 PulseTime2_Set 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:21 Restart Restarting
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:17:42 RestartReason Software/System restart
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:24 SaveData on
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:21 SetOption26 on
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:23 SetOption80 on
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:23 SetOption81 on
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:41 Shutter1_Direction 1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:41 Shutter1_Position 88
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:41 Shutter1_Target 100
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:41 Shutter1_Tilt 90
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:20 ShutterClose1 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-25 12:14:32 ShutterEnableEndStopTime1 1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:25 ShutterOpen1 100
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:17:30 ShutterPosition Done
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-25 12:14:36 ShutterPosition1 100
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:17 ShutterStop Done
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:23 ShutterStop1 56
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 19:44:49 ShutterStopClose1 76
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:40:10 ShutterTilt1 60
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:23 ShutterTiltChange 70
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Sleep 50
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 SleepMode Dynamic
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:20 StateText1 off
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:20 StateText2 on
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:21 StateText3 toggle
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:21 StateText4 hold
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Switch1 off
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Switch2 off
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:23 SwitchMode1 3
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:24 SwitchMode2 3
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 TempUnit C
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Time 2021-12-28T22:43:04
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Uptime 5T21:25:28
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 UptimeSec 509128
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:17:42 Version 10.1.0.1(tasmota)
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:17:42 WebServerMode Admin
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Wifi_AP 1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Wifi_BSSId XXXXXXXXXXXX
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Wifi_Channel 1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Wifi_Downtime 0T00:00:33
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Wifi_LinkCount 16
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Wifi_Mode 11n
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Wifi_RSSI 62
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Wifi_SSId XXXXXX
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:04 Wifi_Signal -69
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-23 01:00:20 attrTemplateVersion 20211110
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 btn_1 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 btn_2 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 btn_3 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 btn_4 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 btn_5 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 btn_6 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 btn_7 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 btn_8 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:37:02 closeDiffSlat set
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:40:09 closeSlat set
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 19:44:48 closestop set
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 dn Shelly25_1OG_Zimmer_OST
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 fn_1 Shelly25B
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 fn_2
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 ft %prefix%/%topic%/
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 hn Shelly25-1OG-Zimmer-OST-D30D75-
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 if 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 ip 192.168.178.14
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 lk 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 lt_st 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 mac XXXXXXXXXX
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 md Shelly 2.5
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 ofln Offline
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 onln Online
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:34:16 openDiffSlat set
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:24 pct 56
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 rl_1 3
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 rl_2 3
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 rl_3 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 rl_4 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 rl_5 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 rl_6 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 rl_7 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 rl_8 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sho_1 4
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sho_2 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sho_3 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sho_4 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ANALOG_Temperature 33.0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_ApparentPower_1 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_ApparentPower_2 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Current_1 0.000
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Current_2 0.000
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Factor_1 0.00
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Factor_2 0.00
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Frequency 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Power_1 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Power_2 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_ReactivePower_1 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_ReactivePower_2 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Today 0.002
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Total 0.019
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_TotalStartTime 2021-11-12T22:04:35
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Voltage 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_ENERGY_Yesterday 0.002
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_Shutter1_Direction 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_Shutter1_Position 76
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_Shutter1_Target 76
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_Shutter1_Tilt 22
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_Switch1 off
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_Switch2 off
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_TempUnit C
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sn_Time 2021-12-28T20:43:47
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_11 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_114 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_117 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_13 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_17 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_20 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_30 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_4 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_68 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_73 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 so_82 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:44:25 state opening
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 state_1 off
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 state_2 on
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 state_3 toggle
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 state_4 hold
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 22:43:20 subscriptions cmnd/Shelly25_1OG_Zimmer_OST_D30D75/# cmnd/Shelly25_1OG_Zimmer_OST_D30D75_fb/# cmnd/tasmotas/#
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 sw 10.1.0.1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 swc_1 -1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 swc_2 -1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 swc_3 -1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 swc_4 -1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 swc_5 -1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 swc_6 -1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 swc_7 -1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 swc_8 -1
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 t Shelly25_1OG_Zimmer_OST_D30D75
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 tp_1 cmnd
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 tp_2 stat
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 tp_3 tele
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 ty 0
setstate MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 2021-12-28 20:43:48 ver 1


Und die Notify dazu:

defmod n_Shellyi3_B_Down notify MQTT2_DVES_24EFCA:SWITCH1:.2 set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 stop;; set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 closeDiffSlat

defmod n_Shellyi3_B_DownHold notify MQTT2_DVES_24EFCA:SWITCH1:.3 set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 close

defmod n_Shellyi3_B_Up notify MQTT2_DVES_24EFCA:SWITCH2:.2 set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 stop;; set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 openDiffSlat

defmod n_Shellyi3_B_UpHold notify MQTT2_DVES_24EFCA:SWITCH2:.3 set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 open


Nun ist die Frage wie ich n_Shellyi3_B_Down umschreiben kann in diese Form:
Falls Storen läuft (set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 stop) sonst (set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 closeDiffSlat)

Gruss
tomix

Beta-User

Also:

Vorab muss erst noch das MQTT2_DEVICE verbessert werden, da paßt manches noch nicht...

a) Die unteren drei Zeilen der readingList sind überflüssig, siehe zu ignoreRegexp ab hier:
Zitat von: Beta-User am 28 Dezember 2021, 12:59:20
Diese drei Zeilen gehören (endgültig per ignoreRegexp am IO) nach dev/0:
cmnd/tasmota_9D430F/POWER:.* POWER\
tasmota/discovery/E8DB849D430F/config:.* { json2nameValue($EVENT) }\
tasmota/discovery/E8DB849D430F/sensors:.* { json2nameValue($EVENT) }


b) Mit dem "tiltSlat"-Topic und jsonMap mußt du dich nochmal auseinandersetzen! Und bitte lass den Namen auf "tiltSlat", es handelt sich eben gerade nicht um einen Prozentwert, und auch die Doppelung auf "POWERx" macht es vermutlich nicht übersichtlicher!
Ich würde daher vorschlagen, dass du dich nochmal mit der aktuellen Fassung des attrTemplate befaßt und alles wegläßt, was da nicht steht.
Bitte lass auch das eventMap weg, im Moment weiß ich grade nicht, für was das gut gewesen sein soll.

Stattdessen sollte jsonMap geändert werden:
attr DEVICE jsonMap POWER1:0 POWER2:0 Shutter1_Tilt:tiltSlat Shutter1_Position:pct Shutter1_Target:set_pct Shutter1_Direction:moving ANALOG_Temperature:temperature

Zitat von: tomix am 28 Dezember 2021, 23:05:39
Und die Notify dazu:

defmod n_Shellyi3_B_Down notify MQTT2_DVES_24EFCA:SWITCH1:.2 set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 stop;; set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 closeDiffSlat
[...]


Nun ist die Frage wie ich n_Shellyi3_B_Down umschreiben kann in diese Form:
Falls Storen läuft (set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 stop) sonst (set MQTT2_Shelly25_1OG_Zimmer_OST_D30D75 closeDiffSlat)
Grundsätzlich würde ich _ein_ notify dafür empfehlen, und dann Perl-if-else-Abfragen für die verschiedenen Zustände/Events machen. Du willst ja z.B. immer anhalten, egal, ob jetzt ein kurzer Tastendruck während des Fahrens erfolgt, oder ein "long-release"...
Kurze Beispiele findest du z.B. in https://wiki.fhem.de/wiki/Notify#Einfache_UND_Funktion, etwas komplexere Beispiele von mir wären in https://forum.fhem.de/index.php/topic,123886.msg1191574.html#msg1191574 und https://forum.fhem.de/index.php/topic,123886.msg1184606.html#msg1184606 zu finden.

Darum können wir uns gerne kümmern, aber erst, wenn "Direction" (bzw. "moving") geklärt ist...
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

tomix

Zitat von: Beta-User am 29 Dezember 2021, 10:01:51
a) Die unteren drei Zeilen der readingList sind überflüssig, siehe zu ignoreRegexp ab hier:
In der Raw defintion gelöscht und ist nun weg. Kommt das von einem Update des Shelly?

Zitat von: Beta-User am 29 Dezember 2021, 10:01:51
b) Mit dem "tiltSlat"-Topic und jsonMap mußt du dich nochmal auseinandersetzen!
Was heisst da nochmals, überhaupt einmal!

Zitat von: Beta-User am 29 Dezember 2021, 10:01:51
Und bitte lass den Namen auf "tiltSlat", es handelt sich eben gerade nicht um einen Prozentwert, und auch die Doppelung auf "POWERx" macht es vermutlich nicht übersichtlicher!

Der eine Storen der mit Tastern gesteuert werden sollte, kann nun mit den Tastern gesteuert werden (via Shelly i3). Somit kann ich bei den nächsten Storen nochmals neu beginnen. Dann kann ich nachsehen was tiltSlat für ein Kommando sendet (der Shelly erwartet aber als Kommando ein «ShutterTiltNummer Parameter»). Was du mit der Doppelung auf POWERx meinst verstehe ich gerade nicht. Aber ich werde die Raw definition nochmals posten, sobald ich dazu komme den nächsten Storen einzurichten. Vorher sich dies anzusehen, gibt keinen Sinn.

Gruss
tomix

Beta-User

Zitat von: tomix am 09 Januar 2022, 21:25:59
In der Raw defintion gelöscht und ist nun weg. Kommt das von einem Update des Shelly?
Zeilen 2+3 werden nach einem Neustart des ESP wiederkommen, das sind einmalige Konfigurationsinfos, mit denen FHEM nichts anfängt, und die

Zeile 1 ist der Topic, unter dem der ESP auf Anweisungen wartet. "Blöderweise" sendet Tasmota auch Tastendrücke unter diesem, wenn man es nicht anders konfiguriert. Jedenfalls besteht die Gefahr, dass man "Soll" und "Ist" verwechselt, wenn man den Topic nicht aussortiert.

Beide Teile sollte man via ignoreRegexp am IO-Device (MQTT2_(CLIENT|SERVER)) lösen!

Und: Es ist mAn. verwirrend, von einem "Shelly" zu sprechen. Es ist ein Tasmota-geflashtes Gerät. Was für eine Hardware tatsächlich dahintersteckt, ist (fast) egal...

Zitat
Was heisst da nochmals, überhaupt einmal!
...wollte nur nett sein :P ...

Zitat
Der eine Storen der mit Tastern gesteuert werden sollte, kann nun mit den Tastern gesteuert werden (via Shelly i3). Somit kann ich bei den nächsten Storen nochmals neu beginnen. Dann kann ich nachsehen was tiltSlat für ein Kommando sendet (der Shelly erwartet aber als Kommando ein «ShutterTiltNummer Parameter»).
Achtung: Du musst klar unterscheiden zwischen Kommando (Topic/Payload) und der "Verpackung" (setter-Namen und jsonMap). Kommando ist "hart" und unveränderlich, bei der Verpackung sollte man darauf achten, dass die möglichst generisch ist...
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

tomix

Zitat von: Beta-User am 10 Januar 2022, 10:15:23
Zeilen 2+3 werden nach einem Neustart des ESP wiederkommen, das sind einmalige Konfigurationsinfos, mit denen FHEM nichts anfängt, und die

Zeile 1 ist der Topic, unter dem der ESP auf Anweisungen wartet. "Blöderweise" sendet Tasmota auch Tastendrücke unter diesem, wenn man es nicht anders konfiguriert. Jedenfalls besteht die Gefahr, dass man "Soll" und "Ist" verwechselt, wenn man den Topic nicht aussortiert.

Beide Teile sollte man via ignoreRegexp am IO-Device (MQTT2_(CLIENT|SERVER)) lösen!

Und: Es ist mAn. verwirrend, von einem "Shelly" zu sprechen. Es ist ein Tasmota-geflashtes Gerät. Was für eine Hardware tatsächlich dahintersteckt, ist (fast) egal...
Muss mich mal drum kümmern die Zeilen 1, 2, 3 rauszufiltern.

attr MQTT2_FHEM_Server ignoreRegexp shellies/[^/]+/command|cmnd/[^/]+/|homeassistant/.*/config|tasmota/discovery

Mal gucken ob das reicht (verstehe den Regexp nicht komplett).

Von einem ESP zu sprechen gibt sicher mehr sind als von einem Shelly.

Ein neues RAW-Listing sieht nun so aus (geändert habe ich nur die Darstellung der Position des Storen (Icon), die ist sonst falsch rum):

defmod MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 MQTT2_DEVICE Shelly25_EG_ESSTISCH_SUED_6B00C0
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 alias RL_Esstisch
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35"\
Shutter specific commands available: ShutterOpenDuration1, ShutterCloseDuration1, ShutterRelay1, ShutterSetHalfway1, ShutterSetClose1, ShutterInvert1, ShutterMotordelay1, ShutterCalibration1;; you may use this for general setOptions in tasmota also.\
commands may need restart to take effect.\
For calibration, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen Offline:10px-kreis-rot 0:fts_shutter_100 100:fts_shutter_10 \b\d\b.*:fts_shutter_90 1\d.*:fts_shutter_80 2\d.*:fts_shutter_70 3\d.*:fts_shutter_60 4\d.*:fts_shutter_50 5\d.*:fts_shutter_40 6\d.*:fts_shutter_30 7\d.*:fts_shutter_20 8\d.*:fts_shutter_10 9\d.*:fts_shutter_10 set_.*:fts_shutter_updown
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 eventMap open:opens close:closes
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 icon fts_shutter_updown
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 model tasmota_2ch_shutter_venetian_invert_0
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 readingList tele/Shelly25_EG_ESSTISCH_SUED_6B00C0/LWT:.* LWT\
   stat/Shelly25_EG_ESSTISCH_SUED_6B00C0/RESULT:.* { json2nameValue($EVENT) }\
   stat/Shelly25_EG_ESSTISCH_SUED_6B00C0/POWER1:.* POWER1\
   stat/Shelly25_EG_ESSTISCH_SUED_6B00C0/POWER1:on {{'state' => 'opening'}}\
   stat/Shelly25_EG_ESSTISCH_SUED_6B00C0/POWER2:.* POWER2\
   stat/Shelly25_EG_ESSTISCH_SUED_6B00C0/POWER2:on {{'state' => 'closing'}}\
   stat/Shelly25_EG_ESSTISCH_SUED_6B00C0/SHUTTER1:.* state\
   stat/Shelly25_EG_ESSTISCH_SUED_6B00C0/SHUTTER1:.* pct\
   stat/Shelly25_EG_ESSTISCH_SUED_6B00C0/SHUTTER2:.* stateSlat\
   stat/Shelly25_EG_ESSTISCH_SUED_6B00C0/SHUTTER2:.* pctSlat\
   tele/Shelly25_EG_ESSTISCH_SUED_6B00C0/RESULT:.* { json2nameValue($EVENT) }\
   tele/Shelly25_EG_ESSTISCH_SUED_6B00C0/STATE:.* { json2nameValue($EVENT) }\
   tele/Shelly25_EG_ESSTISCH_SUED_6B00C0/SENSOR:.* { json2nameValue($EVENT) }\
   tele/Shelly25_EG_ESSTISCH_SUED_6B00C0/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   tele/Shelly25_EG_ESSTISCH_SUED_6B00C0/UPTIME:.* { json2nameValue($EVENT) }\
Shelly25_EG_ESSTISCH_SUED_6B00C0:cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/POWER:.* POWER\
Shelly25_EG_ESSTISCH_SUED_6B00C0:tasmota/discovery/C45BBE6B00C0/config:.* { json2nameValue($EVENT) }\
Shelly25_EG_ESSTISCH_SUED_6B00C0:tasmota/discovery/C45BBE6B00C0/sensors:.* { json2nameValue($EVENT) }
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 room Haus,MQTT2_DEVICE,Haus->EG
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 setList close:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterClose1\
   open:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterOpen1\
   half:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterPosition1 50\
   pct:slider,0,1,100 cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterStop1\
   closeSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterClose2\
   openSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterOpen2\
   halfSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterPosition2 50\
   pctSlat:slider,0,1,100 cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterPosition2 $EVTPART1\
   stopSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterStop2\
   resetClose:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterSetClose1\
   resetCloseSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterSetClose2
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 setStateList open close half stop pct
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state
attr MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 webCmd :open:close:half:stop:pct

setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 <a href="http://192.168.178.21" target="_blank">\
Online\
</a>\
set_open
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ANALOG_Temperature 32.8
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_ApparentPower_1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_ApparentPower_2 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Current_1 0.000
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Current_2 0.000
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Factor_1 0.00
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Factor_2 0.00
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Frequency 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Period_1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Period_2 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Power_1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Power_2 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_ReactivePower_1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_ReactivePower_2 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Today 0.000
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Total 0.003
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_TotalStartTime 2021-11-12T22:04:35
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Voltage 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 ENERGY_Yesterday 0.003
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:55 FallbackTopic cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0_fb/
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:55 GroupTopic cmnd/tasmotas/
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:47 Groups 1,2
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Heap 23
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:55 Hostname Shelly25-EG-ESSTISCH-SUED-6B00C
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 19:32:26 IODev MQTT2_FHEM_Server
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:55 IPAddress XXXX
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:47 Interlock on
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 LWT Online
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:47 LedState 2
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 LoadAvg 22
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:55 Module Shelly 2.5
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 MqttCount 2
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 POWER
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 POWER1 off
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 POWER2 off
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:48 PowerOnState 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:49 PulseTime1_Remaining 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:49 PulseTime1_Set 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:49 PulseTime2_Remaining 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:49 PulseTime2_Set 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:46 Restart Restarting
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:55 RestartReason Software/System restart
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:50 SaveData on
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:46 SetOption26 on
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:48 SetOption80 on
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:48 SetOption81 on
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Shutter1_Direction 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Shutter1_Position 100
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Shutter1_Target 100
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Shutter1_Tilt 5
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:39:56 ShutterClose1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 19:33:29 ShutterOpen1 100
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:22:42 ShutterStop Done
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Sleep 50
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 SleepMode Dynamic
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:46 StateText1 off
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:46 StateText2 on
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:46 StateText3 toggle
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:46 StateText4 hold
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Switch1 off
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Switch2 off
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:48 SwitchMode1 3
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:49 SwitchMode2 3
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 TempUnit C
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Time 2022-01-20T12:17:01
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Uptime 0T21:55:11
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 UptimeSec 78911
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:55 Version 2022.01.2(tasmota)
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:55 WebServerMode Admin
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Wifi_AP 1
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Wifi_BSSId XXXXX
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Wifi_Channel 6
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Wifi_Downtime 0T00:00:07
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Wifi_LinkCount 2
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Wifi_Mode 11n
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Wifi_RSSI 58
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Wifi_SSId XXXX
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 12:17:01 Wifi_Signal -71
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 14:21:45 attrTemplateVersion 20211110
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 btn_1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 btn_2 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 btn_3 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 btn_4 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 btn_5 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 btn_6 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 btn_7 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 btn_8 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 dn Shelly25_EG_ESSTISCH_SUED
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 fn_1 Shelly25D
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 fn_2
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 ft %prefix%/%topic%/
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 hn Shelly25-EG-ESSTISCH-SUED-6B00C
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 if 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 ip 192.168.178.21
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 lk 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 lt_st 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 mac XXXXXXXX
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 md Shelly 2.5
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 ofln Offline
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 onln Online
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 16:10:11 pct 100
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 rl_1 3
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 rl_2 3
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 rl_3 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 rl_4 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 rl_5 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 rl_6 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 rl_7 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 rl_8 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sho_1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sho_2 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sho_3 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sho_4 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ANALOG_Temperature 31.5
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_ApparentPower_1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_ApparentPower_2 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Current_1 0.000
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Current_2 0.000
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Factor_1 0.00
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Factor_2 0.00
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Frequency 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Power_1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Power_2 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_ReactivePower_1 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_ReactivePower_2 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Today 0.000
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Total 0.003
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_TotalStartTime 2021-11-12T22:04:35
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Voltage 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_ENERGY_Yesterday 0.003
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_Shutter1_Direction 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_Shutter1_Position 100
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_Shutter1_Target 100
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_Shutter1_Tilt 5
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_Switch1 off
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_Switch2 off
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_TempUnit C
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sn_Time 2022-01-20T02:47:28
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_11 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_114 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_117 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_13 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_17 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_20 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_30 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_4 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_68 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_73 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 so_82 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 19:33:29 state set_open
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 state_1 off
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 state_2 on
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 state_3 toggle
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 state_4 hold
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-19 19:32:49 subscriptions cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/# cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0_fb/# cmnd/tasmotas/#
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 sw 2022.01.2
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 swc_1 -1
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 swc_2 -1
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 swc_3 -1
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 swc_4 -1
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 swc_5 -1
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 swc_6 -1
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 swc_7 -1
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 swc_8 -1
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 t Shelly25_EG_ESSTISCH_SUED_6B00C0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 tp_1 cmnd
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 tp_2 stat
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 tp_3 tele
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 ty 0
setstate MQTT2_Shelly25_EG_ESSTISCH_SUED_6B00C0 2022-01-20 02:47:28 ver 1


Beta-User

Hmm, da sind noch "SHUTTER2"-Zweige in der readingList, die so nicht zu funktionieren scheinen, und jsonMap ist auch nicht gesetzt/$JSONMAP nicht als Argument übergeben.

Das wäre neben der ignoreRegexp-Sache der nächste Punkt, den es anzugehen gäbe. Fyi: in https://wiki.fhem.de/wiki/MQTT2_DEVICE_-_Schritt_f%C3%BCr_Schritt habe ich mal angefangen, die Schritte etwas mehr in der m.E. richtigen Abfolge darzustellen. Vielleicht hilft das, vielleicht gibt es Verbesserungsvorschläge, ...?
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

tomix

Zitat von: Beta-User am 20 Januar 2022, 12:36:14
Hmm, da sind noch "SHUTTER2"-Zweige in der readingList, die so nicht zu funktionieren scheinen, und jsonMap ist auch nicht gesetzt/$JSONMAP nicht als Argument übergeben.
Ganz am Anfang wurde mal ein zweiter Shutter für das gleich Relaispaar gesetzt für die das Kippen. Dann würde Shutter2 auch einen entsprechend Wert melden. Die Rückmeldung erfolgt aber wie folgt:
stat/Shelly25_2OG_SUED_D315B0/SHUTTER1 = 85
stat/Shelly25_2OG_SUED_D315B0/RESULT = {"Shutter1":{"Position":85,"Direction":0,"Target":85,"Tilt":9}}

Also in einen verschachtelten Array(?). Somit muss ich mich nun mal in json usw. einlesen um dies hier zu verstehen:
{ json2nameValue($EVENT) }

Da drin müsste der Wert sein.

Gruss
tomix

Beta-User

...einfach den JSON (Hier übersetzt nach Perl: eher sowas wie ein Hash mit einem Hash drin) durch FHEM auspacken lassen und die Readings umbenennen... Davon rede ich doch die ganze Zeit ::) .
also nochmal: readingList (auszugsweise) in etwa so:
stat/Shelly25_2OG_SUED_D315B0/RESULT:.* { json2nameValue($EVENT, '' $JSONMAP) }
Dazu ein jsonMap, wie es im attrTemplate "tasmota_2ch_shutter_venetian_invert_0" bereits (hoffentlich passend) hinterlegt ist ;) ... (und hier auch schon gepostet...)
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

tomix

Mit folgendem Filter:
attr MQTT2_FHEM_Server ignoreRegexp shellies/[^/]+/command|cmnd/[^/]+/|homeassistant/.*/config|tasmota/discovery
legt autocreate nun folgendes an:

defmod MQTT2_Shelly25_F_6A6D99 MQTT2_DEVICE Shelly25_F_6A6D99
attr MQTT2_Shelly25_F_6A6D99 readingList Shelly25_F_6A6D99:tele/Shelly25_F_6A6D99/LWT:.* LWT\
Shelly25_F_6A6D99:tele/Shelly25_F_6A6D99/INFO2:.* { json2nameValue($EVENT) }\
Shelly25_F_6A6D99:tele/Shelly25_F_6A6D99/INFO3:.* { json2nameValue($EVENT) }\
Shelly25_F_6A6D99:stat/Shelly25_F_6A6D99/RESULT:.* { json2nameValue($EVENT) }\
Shelly25_F_6A6D99:stat/Shelly25_F_6A6D99/POWER1:.* POWER1\
Shelly25_F_6A6D99:stat/Shelly25_F_6A6D99/POWER2:.* POWER2\
Shelly25_F_6A6D99:tele/Shelly25_F_6A6D99/STATE:.* { json2nameValue($EVENT) }\
Shelly25_F_6A6D99:tele/Shelly25_F_6A6D99/SENSOR:.* { json2nameValue($EVENT) }
attr MQTT2_Shelly25_F_6A6D99 room MQTT2_DEVICE

setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ANALOG_Temperature 20.7
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_ApparentPower_1 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_ApparentPower_2 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Current_1 0.000
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Current_2 0.000
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Factor_1 0.00
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Factor_2 0.00
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Period_1 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Period_2 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Power_1 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Power_2 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_ReactivePower_1 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_ReactivePower_2 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Today 0.000
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Total 0.020
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_TotalStartTime 2021-11-12T22:04:35
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Voltage 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 ENERGY_Yesterday 0.003
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Heap 29
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:50 IODev MQTT2_FHEM_Server
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:50 Info2_Hostname Shelly25-F-6A6D99-3481
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:50 Info2_IPAddress 192.168.178.25
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:50 Info2_WebServerMode Admin
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:50 Info3_RestartReason Power On
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:50 LWT Online
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 LoadAvg 19
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 MqttCount 1
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 POWER1 off
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 POWER2 off
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Shutter1_Direction 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Shutter1_Position 100
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Shutter1_Target 100
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Shutter1_Tilt 90
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Sleep 50
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 SleepMode Dynamic
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Switch1 off
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Switch2 off
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 TempUnit C
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Time 2022-01-26T14:56:55
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Uptime 0T00:00:11
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 UptimeSec 11
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Wifi_AP 1
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Wifi_BSSId xxxxx
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Wifi_Channel 11
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Wifi_Downtime 0T00:00:05
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Wifi_LinkCount 1
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Wifi_Mode 11n
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Wifi_RSSI 32
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Wifi_SSId xxxxx
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:55 Wifi_Signal -84


Nach anwenden des templates sieht es wie folgt aus:

defmod MQTT2_Shelly25_F_6A6D99 MQTT2_DEVICE Shelly25_F_6A6D99
attr MQTT2_Shelly25_F_6A6D99 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_Shelly25_F_6A6D99 comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35"\
Shutter specific commands available: ShutterOpenDuration1, ShutterCloseDuration1, ShutterRelay1, ShutterSetHalfway1, ShutterSetClose1, ShutterInvert1, ShutterMotordelay1, ShutterCalibration1;; you may use this for general setOptions in tasmota also.\
commands may need restart to take effect.\
For calibration, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
attr MQTT2_Shelly25_F_6A6D99 devStateIcon opening:fts_shutter_up@red closing:fts_shutter_down@red Online:10px-kreis-gruen Offline:10px-kreis-rot 100:fts_shutter_100 0:fts_shutter_10 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 \b\d\b.*:fts_shutter_10 set_.*:fts_shutter_updown
attr MQTT2_Shelly25_F_6A6D99 eventMap open:opens close:closes
attr MQTT2_Shelly25_F_6A6D99 icon fts_shutter_updown
attr MQTT2_Shelly25_F_6A6D99 model tasmota_2ch_shutter_venetian_invert_0
attr MQTT2_Shelly25_F_6A6D99 readingList tele/Shelly25_F_6A6D99/LWT:.* LWT\
   stat/Shelly25_F_6A6D99/RESULT:.* { json2nameValue($EVENT) }\
   stat/Shelly25_F_6A6D99/POWER1:.* POWER1\
   stat/Shelly25_F_6A6D99/POWER1:on {{'state' => 'opening'}}\
   stat/Shelly25_F_6A6D99/POWER2:.* POWER2\
   stat/Shelly25_F_6A6D99/POWER2:on {{'state' => 'closing'}}\
   stat/Shelly25_F_6A6D99/SHUTTER1:.* state\
   stat/Shelly25_F_6A6D99/SHUTTER1:.* pct\
   stat/Shelly25_F_6A6D99/SHUTTER2:.* stateSlat\
   stat/Shelly25_F_6A6D99/SHUTTER2:.* pctSlat\
   tele/Shelly25_F_6A6D99/RESULT:.* { json2nameValue($EVENT) }\
   tele/Shelly25_F_6A6D99/STATE:.* { json2nameValue($EVENT) }\
   tele/Shelly25_F_6A6D99/SENSOR:.* { json2nameValue($EVENT) }\
   tele/Shelly25_F_6A6D99/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   tele/Shelly25_F_6A6D99/UPTIME:.* { json2nameValue($EVENT) }
attr MQTT2_Shelly25_F_6A6D99 room MQTT2_DEVICE
attr MQTT2_Shelly25_F_6A6D99 setList close:noArg cmnd/Shelly25_F_6A6D99/ShutterClose1\
   open:noArg cmnd/Shelly25_F_6A6D99/ShutterOpen1\
   half:noArg cmnd/Shelly25_F_6A6D99/ShutterPosition1 50\
   pct:slider,0,1,100 cmnd/Shelly25_F_6A6D99/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/Shelly25_F_6A6D99/ShutterStop1\
   closeSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterClose2\
   openSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterOpen2\
   halfSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterPosition2 50\
   pctSlat:slider,0,1,100 cmnd/Shelly25_F_6A6D99/ShutterPosition2 $EVTPART1\
   stopSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterStop2\
   resetClose:noArg cmnd/Shelly25_F_6A6D99/ShutterSetClose1\
   resetCloseSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterSetClose2
attr MQTT2_Shelly25_F_6A6D99 setStateList open close half stop pct
attr MQTT2_Shelly25_F_6A6D99 stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state
attr MQTT2_Shelly25_F_6A6D99 webCmd :open:close:half:stop:pct

setstate MQTT2_Shelly25_F_6A6D99 <a href="http://192.168.178.25" target="_blank">\
Online\
</a>\
state
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:00 Groups 1,2
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:09 Hostname Shelly25-F-6A6D99-3481
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 14:56:50 IODev MQTT2_FHEM_Server
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:09 IPAddress 192.168.178.25
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:00 Interlock on
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:09 LWT Online
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:14:59 LedState 2
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:09 POWER1 off
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:09 POWER2 off
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:01 PowerOnState 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:01 PulseTime1_Remaining 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:01 PulseTime1_Set 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:01 PulseTime2_Remaining 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:01 PulseTime2_Set 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:14:58 Restart Restarting
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:09 RestartReason Software/System restart
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:02 SaveData on
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:14:59 SetOption26 on
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:00 SetOption80 on
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:00 SetOption81 on
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:14:58 StateText1 off
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:14:58 StateText2 on
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:14:58 StateText3 toggle
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:14:58 StateText4 hold
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:01 SwitchMode1 3
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:01 SwitchMode2 3
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:15:09 WebServerMode Admin
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 15:14:58 attrTemplateVersion 20211110


Der aktuelle Stand des templates (/opt/fhem/FHEM/lib/AttrTemplate/mqtt2.template)

name:tasmota_2ch_shutter_venetian_invert_0
filter:TYPE=MQTT2_DEVICE:FILTER=readingList=.*(tele|cmnd|stat).*
desc:Configures a dual chanel tasmota device as venetian shutter; needs Tasmota version 10.0.0.1 or higher, see <a href="https://github.com/arendst/Tasmota/wiki/blinds-and-roller-shades">Tasmota wiki</a><br> and <a href="https://forum.fhem.de/index.php/topic,123842.0.html">Forum Thread</a><br>NOTE: This template will configure the shutter in Homematic-style device pct 100% = open, and for a tilt range from -90 to 90 degrees.
order:A_02b3
par:CMNDTOPIC;Command topic prefix, without trailing /;{ AttrVal('DEVICE','readingList','') =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}cmnd$3" : undef }
par:TELETOPIC;info topic prefix, without trailing /;{ AttrVal('DEVICE','readingList','') =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}tele$3" : undef }
par:STATTOPIC;ack topic prefix, without trailing /;{ AttrVal('DEVICE','readingList','') =~ m,([^:]*)\b(tele|cmnd|stat)(/.*)?/LWT:, ? "${1}stat$3" : undef }
par:IO_DEV;Currently used IO;{ AttrVal('DEVICE','IODev',InternalVal('DEVICE','IODev',undef)->{NAME}) }
par:CALLSPEECHRECOGN;Set this to 0 to not set any speech recogn. related attributes;{ 1 }
par:BCKLGCMND;Send out configuration command via backlog?;{ 1 }
par:ICON;ICON as set, defaults to fts_shutter_updown;{ AttrVal('DEVICE','icon','fts_shutter_updown') }
set DEVICE attrTemplate tasmota_set_lowercase_texts_and_state1
attr DEVICE icon ICON
--
   halfSlat:noArg CMNDTOPIC/ShutterTilt1 0\
   tiltSlat:slider,-90,5,90 CMNDTOPIC/ShutterTilt1 $EVTPART1\
   resetClose:noArg CMNDTOPIC/ShutterSetClose1\
   x_configuration CMNDTOPIC/$EVTPART1 $EVTPART2
attr DEVICE readingList \
   TELETOPIC/LWT:.* LWT\
   TELETOPIC/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   TELETOPIC/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   TELETOPIC/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   STATTOPIC/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   STATTOPIC/POWER1:.* {{'state' => 'opening'} if $EVENT eq 'on'}\
   STATTOPIC/POWER2:.* {{'state' => 'closing'} if $EVENT eq 'on'}
attr DEVICE devStateIcon opening:fts_shutter_up@red:stop closing:fts_shutter_down@red:stop Online:10px-kreis-gruen Offline:10px-kreis-rot 0:fts_shutter_100 100:fts_shutter_10 \b\d\b.*:fts_shutter_90 1\d.*:fts_shutter_80 2\d.*:fts_shutter_70 3\d.*:fts_shutter_60 4\d.*:fts_shutter_50 5\d.*:fts_shutter_40 6\d.*:fts_shutter_30 7\d.*:fts_shutter_20 8\d.*:fts_shutter_10 9\d.*:fts_shutter_10 set_.*:fts_shutter_updown
attr DEVICE cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr DEVICE webCmd :open:close:half:stop:pctopenSlat:closeSlat:halfSlat:tiltSlat
attr DEVICE eventMap open:opens close:closes
attr DEVICE jsonMap POWER1:0 POWER2:0 Shutter1_Tilt:tiltSlat Shutter1_Target:pct  ANALOG_Temperature:temperature
attr DEVICE userReadings state:pct:.* {ReadingsNum($name,'pct',0)}
attr DEVICE stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state\
tiltSlat
deletereading -q DEVICE (?!associatedWith|IODev).*
attr DEVICE setStateList open close half stop pct openSlat closeSlat halfSlat
attr DEVICE comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35".\
This is for a tilt range from -90 to 90 degrees, if you have different tilt options, adopt range manually\
For calibration, tilt range settings, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
farewell:template has been applied successfully. Now it's recommended to set shutter's open and close duration and shuttertiltconfig1, see short instruction in comment attribute or the <br><a href="https://tasmota.github.io/docs/Blinds-and-Shutters/">Tasmota wiki</a>.
attr DEVICE model tasmota_2ch_shutter_venetian_invert_0
setreading DEVICE attrTemplateVersion 20211224
option:{ CALLSPEECHRECOGN }
set DEVICE attrTemplate speechcontrol_type_blind


# based on a proposal by twdotnet, https://forum.fhem.de/index.php/topic,94495.msg1137400.html#msg1137400
# shelly i3 3 channel input switches
# shelly i3 3 channel input switches with device configuration


Ich werde mich dann mal dahinter machen dies hier zu verstehen:

halfSlat:noArg CMNDTOPIC/ShutterTilt1 0\
tiltSlat:slider,-90,5,90 CMNDTOPIC/ShutterTilt1 $EVTPART1\

attr DEVICE jsonMap POWER1:0 POWER2:0 Shutter1_Tilt:tiltSlat Shutter1_Target:pct  ANALOG_Temperature:temperature

und realisiere nun, dass ich das mit dem template gar nicht verstehe. Ich dachte das RAW-Listing enthält nachher alle relevanten Angabe. Verstehe ich es richtig, dass auf Grund der Template Wahl. tlitSlat nach CMDTOPIC/ShutterTil1 «Sliderwert» übersetzt wird. Das wäre ja mal korrekt nur der mögliche Wertebereich falsch.

Ich muss nun mal einen Storen anhängen um weiter zu probieren und den Beitrag mal posten damit ich das untereinandern lesen kann.

Die Kommando da sind falsch:

   closeSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterClose2\
   openSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterOpen2\
   halfSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterPosition2 50\
   pctSlat:slider,0,1,100 cmnd/Shelly25_F_6A6D99/ShutterPosition2 $EVTPART1\
   stopSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterStop2\

Was generiert diese Einträge? Ich finde nirgends ein ShutterClose2 im Template.

Gruss
tomix

Beta-User

Zitat von: tomix am 26 Januar 2022, 15:39:17
Mit folgendem Filter:
[...]
legt autocreate nun folgendes an:
Der Teil sieht gut aus.

ZitatNun anwenden des tamplates sieht es wie folgt aus:[...]
Der aktuelle Stand des templates (/opt/fhem/FHEM/lib/AttrTemplate/mqtt2.template)
Da paßt was nicht. Das obere list nach dem attrTemplate ist was anderes wie das, was sich aus dem gezeigten neuen attrTemplate ergeben müßte.

Zitat
Ich werde mich dann mal dahinter machen dies hier da da zu verstehen:

halfSlat:noArg CMNDTOPIC/ShutterTilt1 0\
tiltSlat:slider,-90,5,90 CMNDTOPIC/ShutterTilt1 $EVTPART1\

Das geht von -90 bis 90 als Drehwinkel aus. Da du 0-90 hast, müßte das bei dir dann so aussehen (wobei das dann eigentlich nur "quaterslat" ist):

halfSlat:noArg CMNDTOPIC/ShutterTilt1 45\
tiltSlat:slider,0,5,90 CMNDTOPIC/ShutterTilt1 $EVTPART1\

Das hier sind einfach nur Umbenennungen bzw. "Erdungen" von (unnötigen) Readings:
attr DEVICE jsonMap POWER1:0 POWER2:0 Shutter1_Tilt:tiltSlat Shutter1_Target:pct  ANALOG_Temperature:temperature

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

Beta-User

Zitat von: tomix am 26 Januar 2022, 15:39:17
Was generiert diese Einträge? Ich finde nirgends ein ShutterClose2 im Template.
...ich auch nicht...

Kann es sein, dass du irgendwo noch einen "Eigenbau" mit gleichen Namen im System hast? Wenn ja: Löschen und {AttrTemplate_Initialize()} ausführen.
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

tomix

Zitat von: Beta-User am 26 Januar 2022, 15:55:16
Da paßt was nicht. Das obere list nach dem attrTemplate ist was anderes wie das, was sich aus dem gezeigten neuen attrTemplate ergeben müßte.
Hab ich dann irgendwo noch ein anderes Template oder woher kommt das dann?
Das ist genau das, was ich nicht kapiere.

Gruss
tomix

Beta-User

Alle attrTemplate werden aus einem bestimmten (Unter-) Verzeichnis gelesen: ./FHEM/lib/AttrTemplate/. Was da bei dir so alles drin ist, kannst nur du sehen. Ggf. vergleichen mit dem, was unter https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/lib/AttrTemplate/ zu finden ist (von den Dateinamen her).

Was "geladen" ist, kannst du übrigens (zumindest in Teilen) auch in FHEMWEB sehen - das wird angezeigt, wenn du das aus der dropdown-Liste einfach anwählst.

Ansonsten wäre "grep" noch ein Stichwort; damit sollte auch rauszufinden sein, in welchen files dieser Name drinsteht.
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

tomix

Ein grep -r venetian führte mich mal dahin (damit habe die Datei gesucht):
FHEM/lib/AttrTemplate/mqtt2.template:name:tasmota_2ch_shutter_venetian_invert_0

Selbst habe ich da nie was gemacht, aussert damals ein update damit das template überhaupt da war und kürzlich nochmals ein update.
lsof meint auch, dass fhem unter /opt/fhem ist.

/opt/fhem$ grep -r ShutterClose2
FHEM/lib/AttrTemplate/mqtt2.template:   close:noArg CMNDTOPIC/ShutterClose2\
restoreDir/save/2022-01-25/fhem.cfg:   closeSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterClose2\
restoreDir/save/2022-01-25/fhem.cfg:   closeSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterClose2\
restoreDir/save/2022-01-26/fhem.cfg:   closeSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterClose2\
restoreDir/save/2022-01-26/fhem.cfg:   closeSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterClose2\
restoreDir/save/2022-01-19/fhem.cfg:   closeSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterClose2\
restoreDir/update/2022-01-25/FHEM/lib/AttrTemplate/mqtt2.template:   close:noArg CMNDTOPIC/ShutterClose2\
restoreDir/update/2022-01-25/FHEM/lib/AttrTemplate/mqtt2.template:   closeSlat:noArg CMNDTOPIC/ShutterClose2\
restoreDir/update/2022-01-25/fhem.cfg:   closeSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterClose2\
restoreDir/update/2022-01-25/fhem.cfg:   closeSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterClose2\
fhem.cfg:   closeSlat:noArg cmnd/Shelly25_EG_ESSTISCH_SUED_6B00C0/ShutterClose2\
fhem.cfg:   closeSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterClose2\
fhem.cfg:   closeSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterClose2\

Gibt kein Sinn. Wird bei einem update auch ein restart von FHEM ausgeführt? Nein:
«update finished, "shutdown restart" is needed to activate the changes.». Wer lesen könnte hätte einen Vorteil (autsch, ich vermeide restarts/Stromunterbrücke. Gibt es beim KLF200 mal einen Stromunterbruch, habe ich danach immer Ärger mit der Queue des KLF200).


2022.01.26 20:54:18 1 : update finished, "shutdown restart" is needed to activate the changes.
2022.01.26 20:54:18 1 :
2022.01.26 20:54:18 1 : Please consider using the global attribute sendStatistics
2022-01-26 20:54:18 Global global UPDATE
2022.01.26 20:55:44 3 : 192.168.178.15:502 disconnected, waiting to reappear (ds3484)
2022.01.26 20:55:44 3 : 192.168.178.15:502 reappeared (ds3484)
2022.01.26 20:55:44 3 : 192.168.178.15:502 disconnected, waiting to reappear (ds3484)
2022.01.26 20:55:50 3 : 192.168.178.15:502 reappeared (ds3484)
2022.01.26 20:55:57 0 : Server shutdown
2022-01-26 20:55:57 Global global SHUTDOWN
2022.01.26 20:56:11 1 : KLF200 (Velux) - connectionBroken -> reboot started, reconnect in 30 seconds
2022.01.26 20:56:11 2 : AttrTemplates: got 245 entries
2022.01.26 20:56:45 1 : 192.168.178.18:51200 reappeared (Velux)


Ein «set MQTT2_Shelly25_F_6A6D99 attrTemplate tasmota_2ch_shutter_venetian_invert_0» führt zur Meldung «jsonMap: Odd number of elements» und folgendem RAW-Listing:

defmod MQTT2_Shelly25_F_6A6D99 MQTT2_DEVICE Shelly25_F_6A6D99
attr MQTT2_Shelly25_F_6A6D99 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_Shelly25_F_6A6D99 comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35".\
This is for a tilt range from -90 to 90 degrees, if you have different tilt options, adopt range manually\
For calibration, tilt range settings, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
attr MQTT2_Shelly25_F_6A6D99 devStateIcon opening:fts_shutter_up@red:stop closing:fts_shutter_down@red:stop Online:10px-kreis-gruen Offline:10px-kreis-rot 0:fts_shutter_100 100:fts_shutter_10 \b\d\b.*:fts_shutter_90 1\d.*:fts_shutter_80 2\d.*:fts_shutter_70 3\d.*:fts_shutter_60 4\d.*:fts_shutter_50 5\d.*:fts_shutter_40 6\d.*:fts_shutter_30 7\d.*:fts_shutter_20 8\d.*:fts_shutter_10 9\d.*:fts_shutter_10 set_.*:fts_shutter_updown
attr MQTT2_Shelly25_F_6A6D99 eventMap open:opens close:closes
attr MQTT2_Shelly25_F_6A6D99 icon fts_shutter_updown
attr MQTT2_Shelly25_F_6A6D99 model tasmota_2ch_shutter_venetian_invert_0
attr MQTT2_Shelly25_F_6A6D99 readingList tele/Shelly25_F_6A6D99/LWT:.* LWT\
   tele/Shelly25_F_6A6D99/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/Shelly25_F_6A6D99/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/Shelly25_F_6A6D99/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   stat/Shelly25_F_6A6D99/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   stat/Shelly25_F_6A6D99/POWER1:.* {{'state' => 'opening'} if $EVENT eq 'on'}\
   stat/Shelly25_F_6A6D99/POWER2:.* {{'state' => 'closing'} if $EVENT eq 'on'}
attr MQTT2_Shelly25_F_6A6D99 room MQTT2_DEVICE
attr MQTT2_Shelly25_F_6A6D99 setList close:noArg cmnd/Shelly25_F_6A6D99/ShutterClose1\
   open:noArg cmnd/Shelly25_F_6A6D99/ShutterOpen1\
   half:noArg cmnd/Shelly25_F_6A6D99/ShutterPosition1 50\
   pct:slider,0,1,100 cmnd/Shelly25_F_6A6D99/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/Shelly25_F_6A6D99/ShutterStop1\
   closeSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterTilt1 CLOSE\
   openSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterTilt1 OPEN\
   halfSlat:noArg cmnd/Shelly25_F_6A6D99/ShutterTilt1 0\
   tiltSlat:slider,-90,5,90 cmnd/Shelly25_F_6A6D99/ShutterTilt1 $EVTPART1\
   resetClose:noArg cmnd/Shelly25_F_6A6D99/ShutterSetClose1\
   x_configuration cmnd/Shelly25_F_6A6D99/$EVTPART1 $EVTPART2
attr MQTT2_Shelly25_F_6A6D99 setStateList open close half stop pct openSlat closeSlat halfSlat
attr MQTT2_Shelly25_F_6A6D99 stateFormat <a href="http://IPAddress" target="_blank">\
LWT\
</a>\
state\
tiltSlat
attr MQTT2_Shelly25_F_6A6D99 userReadings state:pct:.* {ReadingsNum($name,'pct',0)}
attr MQTT2_Shelly25_F_6A6D99 webCmd :open:close:half:stop:pctopenSlat:closeSlat:halfSlat:tiltSlat

setstate MQTT2_Shelly25_F_6A6D99 <a href="http://192.168.178.25" target="_blank">\
Online\
</a>\
state\
tiltSlat
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ANALOG_Temperature 16.5
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_ApparentPower_1 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_ApparentPower_2 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Current_1 0.000
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Current_2 0.000
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Factor_1 0.00
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Factor_2 0.00
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Period_1 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Period_2 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Power_1 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Power_2 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_ReactivePower_1 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_ReactivePower_2 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Today 0.000
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Total 0.020
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_TotalStartTime 2021-11-12T22:04:35
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Voltage 0
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 ENERGY_Yesterday 0.003
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:22 Groups 1,2
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:34 Heap 29
setstate MQTT2_Shelly25_F_6A6D99 2022-01-26 21:00:29 Hostname Shelly25-F-6A6D99-3481
...


Sieht nun gut aus.

Beim tilt stimmt noch etwas nicht, nun mal so korrigiert:

attr MQTT2_Shelly25_F_6A6D99 setStateList open close half stop pct openSlat closeSlat halfSlat til
attr MQTT2_Shelly25_F_6A6D99 webCmd :open:close:half:stop:openSlat:closeSlat:halfSlat:tiltSlat

sowie

tiltSlat:slider,0,5,90 cmnd/Shelly25_F_6A6D99/ShutterTilt1 $EVTPART1\


Kann das aber nun nicht testen, da ich nicht mehr mit dem Storen rumspielen kann. Die Alten sind echt laut. Scheint aber nun mal bzgl. Slider usw. zu passen.

Nun wären noch die Frage wie man den Slat darstellen kann. Ich würde jetzt drei Icon zeichnen, je Eines für offen und zu und ein Drittes für einen Wert dazwischen. Evtl. anstelle einer Ansicht ein Schnitt durch den Storen, welcher zwei bis drei Lamellen darstellt in der jeweiligen Position. Können die Icons auch gedreht werden entsprechend einem Wert bzw. gibt es Zeiger?

Gruss
tomix

Beta-User

Werde mal mit dem nächsten update einen Vorschlag machen - es gibt für die Lamellenwinkel ja bereits Icons, und Code hatte ich eigentlich auch schon (indirekt) verlinkt...

Falls du vorab testen magst (die Werte müssten für deinen Fall wieder angepaßt werden):
attr DEVICE devStateIcon {my $onl = ReadingsVal($name,'LWT','Offline') eq 'Offline' ? 'rot' : 'gruen'; $onl = FW_makeImage("10px-kreis-$onl"); my $ip = ReadingsVal($name,'IPAddress','none'); my $pct = int((109 - ReadingsNum($name,'pct',0))/10)*10; my $open = ReadingsVal($name,'state',''); my $lvicon = $open eq 'opening' ? 'fts_shutter_up@red' : $open eq 'closing' ? 'fts_shutter_down@red' : "fts_shutter_$pct"; $lvicon = FW_makeImage($lvicon); my $lvcmd = ($open eq 'opening' || $open eq 'closing') ? 'stop' : $pct > 50 ? 'close' : 'open'; my $slt = ReadingsNum($name,'tiltSlat',90); my $slticon = 'fts_blade_arc_close_'; $slticon .= $slt > 0 ? '00' : $slt > -45 ? '50' : '100'; $slticon = FW_makeImage($slticon); my $sltcmd = $slt > 0 ? 'closeSlat' : $slt > -45 ? 'openSlat' : 'halfSlat'; qq(<a href="http://$ip" target="_blank">$onl</a> <div><a href="/fhem?cmd.dummy=set $name $lvcmd&XHR=1">$lvicon</a></div> <div><a href="/fhem?cmd.dummy=set $name $sltcmd&XHR=1">$slticon $slt</a>) }
deleteattr DEVICE eventMap
attr DEVICE stateFormat LWT level: state slat: tiltSlat
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

tomix


attr  MQTT2_Shelly25_F_6A6D99 devStateIcon {my $onl = ReadingsVal($name,'LWT','Offline') eq 'Offline' ? 'rot' : 'gruen'; $onl = FW_makeImage("10px-kreis-$onl"); my $ip = ReadingsVal($name,'IPAddress','none'); my $pct = int((109 - ReadingsNum($name,'pct',0))/10)*10; my $open = ReadingsVal($name,'state',''); my $lvicon = $open eq 'opening' ? 'fts_shutter_up@red' : $open eq 'closing' ? 'fts_shutter_down@red' : "fts_shutter_$pct"; $lvicon = FW_makeImage($lvicon); my $lvcmd = ($open eq 'opening' || $open eq 'closing') ? 'stop' : $pct > 50 ? 'close' : 'open'; my $slt = ReadingsNum($name,'tiltSlat',90); my $slticon = 'fts_blade_arc_close_'; $slticon .= $slt > 0 ? '00' : $slt > -45 ? '50' : '100'; $slticon = FW_makeImage($slticon); my $sltcmd = $slt > 0 ? 'closeSlat' : $slt > -45 ? 'openSlat' : 'halfSlat'; qq(<a href="http://$ip" target="_blank">$onl</a> <div><a href="/fhem?cmd.dummy=set $name $lvcmd&XHR=1">$lvicon</a></div> <div><a href="/fhem?cmd.dummy=set $name $sltcmd&XHR=1">$slticon $slt</a>) }
deleteattr MQTT2_Shelly25_F_6A6D99 eventMap

Wie muss ich das umschreiben? Wieso wird $onl nicht einfach gesetzt durch das Reading? Ich erhalte:
Unknown command $onl, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command $lvicon, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command my, try help.
Unknown command $slticon, try help.
Unknown command $slticon, try help.
Unknown command my, try help.
Unknown command qq(<a, try help.

Gruss
tomix

Beta-User

Ups, da hatte ich übersehen, dass man das im Kommandofeld mit gedoppelten ";" eingeben muss. Update ist im svn, am einfachsten (braucht auch keinen Neustart) zu bekommen via:
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
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

tomix

Das mit dem Semikol fiel mir erst heute morgen ein. War aber gestern auch noch mit dem KLF 200 beschäftigt. Immerhin weiss ich nun wie ich den wieder zum laufen bring, wenn ich nun noch wüsste was den jeweils aufhängt.

Gruss
tomix

tomix

Zitat von: Beta-User am 28 Januar 2022, 06:58:13
Ups, da hatte ich übersehen, dass man das im Kommandofeld mit gedoppelten ";" eingeben muss. Update ist im svn, am einfachsten (braucht auch keinen Neustart) zu bekommen via:
{ Svn_GetFile("FHEM/lib/AttrTemplate/mqtt2.template", "FHEM/lib/AttrTemplate/mqtt2.template", sub(){ AttrTemplate_Initialize() }) }
Sehr schön. Tut was es soll. Muss es dann noch richtig testen.

Das musste noch sein:
attr MQTT2_Shelly25_F_6A6D99 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50 openSlat:fts_blade_arc_close_00 closeSlat:fts_blade_arc_close_100 halfSlat:fts_blade_arc_close_50
Die drei Icons (oder zumindest die zwei davon) noch neu zeichnen mit einem «Bedienpfeil» und dann gefällt mir das schon sehr gut.
Wobei dann wohl auch das Half Icon noch dazu kommt. Muss mal ausprobieren wie es aussieht das gleich wie close und open zu zeichnen aber einfach mit einem Pfeil hoch runter nebeneinander.

Könnte man die Parameter für den Tilt noch aus lesen aus dem ESP/Tasmota oder zumindest dafür drei Variablen festlegen?
Entweder zuerst den ESP/Tasmota konfigurieren oder den via FHEM konfigurieren. Das scheint mir noch nicht ganz praktisch, aber interessiert mich aktuell nicht so;-).

Gruss
tomix

Beta-User

Das mit den vielen settern im DeviceOverview finde ich an sich nicht gut. Eigentlich sollte das m.A.n so sein, dass man nur ein "doppeltes devStateIcon" hat und Schieberegler für die Level (oder einen knob für die Lamellen, was aber schwierig ist wg. der Farbgebung).

devStateIcon sollte

a) Klick bei fahrendem Behang: Stop

für den Behang
b) klick bei eher offenem Behang: zu
c) klick bei eher geschlossenem Behang: auf

für die Lamellen
d) klick bei eher offenen Lamellen: zu
e) klick bei ca. halb offenen Lamellen: auf
f) klick bei geschlossenen  Lamellen: halb auf
Reicht erfahrungsgemäß für die meisten Anwendungsfälle, wer mehr will, kann den/die Schieber nehmen...

Sobald das also klappt, würde ich webCmd kürzen! Falls du Interesse an dem "knob" hast, hier mal ein Beispiel, wie man das bei einem Thermostaten machen kann (als widgetOverride, damit es bei Nichtgefallen leichter zu löschen ist):
attr DEVICE widgetOverride desired-temp:knob,min:5,max:30,angleArc:180,width:40,height:40,fgColor:#FF9900,bgColor:#CCCCCC,step:0.5,lineCap:round,angleOffset:225

Beschreibung ist über "FHEMWEB/widgets" im Wiki zu finden/erreichen.

Automatische Parametrierung für die Lamellen halte ich für schwierig bzw. zu aufwändig. In den meisten Fällen ist -90/90 ja passend, du hast halt die "Niete" gezogen :P .
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

tomix

Zitat von: Beta-User am 29 Januar 2022, 06:54:15
Das mit den vielen settern im DeviceOverview finde ich an sich nicht gut. Eigentlich sollte das m.A.n so sein, dass man nur ein "doppeltes devStateIcon" hat und Schieberegler für die Level (oder einen knob für die Lamellen, was aber schwierig ist wg. der Farbgebung).
Hast du mal ein Screenshot von einem Knopf?

Zwei Silder würden eigentlich reichen. Ich frag mich aber wie anordnen.

Zitat von: Beta-User am 29 Januar 2022, 06:54:15
Automatische Parametrierung für die Lamellen halte ich für schwierig bzw. zu aufwändig. In den meisten Fällen ist -90/90 ja passend, du hast halt die "Niete" gezogen :P .
Das ist ein Detail. Ich kenne nur 0, 90 Aussenrafflamellenstoren (Schweiz) und bei dem Gebäude bei welchem ich kürzlich zum ersten mal einen -90, 90 Aussenrafflamellenstoren entdeckt habe, sind diese uralt. Griesser, Schenker usw. bieten soviel ich weiss auch gar keine solche Storen an. Die neuen sind von Griesser.

Gruss
tomix

Beta-User

Zitat von: tomix am 29 Januar 2022, 22:48:51
Hast du mal ein Screenshot von einem Knopf?

Zwei Silder würden eigentlich reichen. Ich frag mich aber wie anordnen.
Im Anhang mal ein "Multi-Perl-devStateIcon" für einen (CUL_HM-) Thermostaten mit "knob" (das kann man drehen), aber wie man an dem unteren (ZWave-) Beispiel sieht, braucht man das eigentlich gar nicht, wenn das devStateIcon so funktioniert wie oben bereits beschrieben...
Man beachte die Veränderung im 2. screenshot.

Zitat
Das ist ein Detail. Ich kenne nur 0, 90 Aussenrafflamellenstoren (Schweiz) und bei dem Gebäude bei welchem ich kürzlich zum ersten mal einen -90, 90 Aussenrafflamellenstoren entdeckt habe, sind diese uralt. Griesser, Schenker usw. bieten soviel ich weiss auch gar keine solche Storen an. Die neuen sind von Griesser.
In der Schweiz scheint man halt Wert auf sinnvolle Lösungen zu legen - ich habe -90/90-Varianten (vom örtlichen Jalousie-Bauer), und das scheint weltweit auch häufiger vorzukommen (jedenfalls ist es der "Tasmota-Beispiel-Standard"...

Na ja, einer muss es halt entscheiden (und dann auch anderen ggf. erklären, warum das so ist) => mein Job ::) ...
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

tomix

Zitat von: Beta-User am 30 Januar 2022, 08:55:07
Im Anhang mal ein "Multi-Perl-devStateIcon" für einen (CUL_HM-) Thermostaten mit "knob" (das kann man drehen)
Sieht gut aus. Praktisch wenn man das Ding trotzdem mal drehen kann. Falls der Storen mal nicht mehr weiss wo er ist, dann hilft runter fahren, damit er anschliessend wieder ganz rauf geht (kam bis jetzt einmal vor).

Dann fehlen nur noch zwei Dinge damit das ganze perfekt wäre.
- Ein Limit setzten zu können (beim einem Fenster steht ein Blumentopf drunter)
- Ein Stop befehlt, welcher nur wirkt falls, der Storen hoch oder runter läuft, aber nicht wenn er am kippen ist

Sinnvollerweise würde beides in der Firmware realisiert.

Gruss
tomix

Beta-User

Also, in der nächsten Iteration gibt es dann:
attr DEVICE webCmd pct:tiltSlat
attr DEVICE widgetOverride pct:knob,min:-90,max:90,angleArc:180,width:40,height:40,fgColor:#CCCCCC,bgColor:#FF9900,step:5,lineCap:round,rotation:anticlockwise,displayPrevious:1

Zusammen mit dem (Perl-) devStateIcon sollte das dann ausreichen, um eine vernünftige Steuerung per FHEMWEB zu haben.

Deine weiteren Wünsche sehe ich auch eher in der firmware, wobei es sich mir nicht erschließt, warum jemand "stop" rufen will, wenn nur noch die Lamellen am drehen sind und die sich auch weiter drehen sollen...
Für das erste könnte man ggf. noch einen Eventhandler in FHEM bauen, der aber nur wirkt, wenn eben auch aus FHEM heraus gesteuert wird (bzw. FHEM den Zielwert rechtzeitig erfährt).
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

tomix

Zitat von: Beta-User am 01 Februar 2022, 14:16:54
Deine weiteren Wünsche sehe ich auch eher in der firmware, wobei es sich mir nicht erschließt, warum jemand "stop" rufen will, wenn nur noch die Lamellen am drehen sind und die sich auch weiter drehen sollen...
Für das erste könnte man ggf. noch einen Eventhandler in FHEM bauen, der aber nur wirkt, wenn eben auch aus FHEM heraus gesteuert wird (bzw. FHEM den Zielwert rechtzeitig erfährt).
Ich will eben nicht stopp rufen, wenn die Lamellen nur drehen/kippen, sondern eben nur wenn die hoch oder runter laufen und dann auch nur das stoppen und nicht das Kippen. Kurz drücken, sendet im Moment Stopp und dann etwas kippen. Drückt man nun ein paar mal kurz, um zu kippen, wird auch das Kippen gestoppt. Wenn man es weiss, kann man natürlich auch entsprechend warten zwischen dem Drücken.
Sauber wäre wenn die Firmware, daher ein Stopp falls Storen hoch- oder runterfährt zur Verfügung stellt würde und dies auch nur für das hoch-/runterfahren. Denn Sinn eines  Stopp falls kippt, sehe ich aktuell auch nicht.

Gruss
tomix

Beta-User

Hmm, nachvollziehbar...

FHEM-seitig könnte man das lösen, indem man einen "stop+previous-slat"-Befehl bastelt. Würde bedeuten, dass man (via backlog?) den Stop-Befehl mal testweise verbindet mit dem Auslesen des aktuellen slat-Werts (? der ändert sich ja erst, wenn die eigentliche Zielposition erreicht ist?) und dem erneuten Setzen desselben Werts.
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

tomix

Die Idee funktioniert eben auch nicht beim Kippen und das ist ja das Problem. Wird der Storen beim hoch-/runterfahren gestoppt und kippt dann noch etwas ist dies ja nicht so relevant. In der Praxis wird dann ja eh meisten noch richtig gekippt.
Korrekt wäre abzufragen ob der Storen hoch- oder runterläuft (aber eben nicht am kippen ist), dann stopp senden sonst kippen senden. Vermutlich müsste die Abfrage lauten ob die Zielposition erreicht ist? Ich wüsste nicht wie man sonst rausfinden kann ob der Storen am kippen oder am hoch-/runterfahren ist.

Gruss
tomix 

Beta-User

Falls ich da unterstützen soll, müßtest du eine _genaue_ Darstellung von dem liefern, was an Kommunikation läuft, und wie die Readings ggf. zu jedem Zeitpunkt aussehen.

Ein Ansatzpunkt könnte je ein msec-Log sein für das Hoch- und Runterfahren, je bis zu einem (abgeschlossenen) "Zwischenstop" beim "normalen" Fahren (am besten mit zugehörigem MQTT-Verkehr (Topics+Payloads!)). Dann könnte man ggf. das devStateIcon entsprechend erweitern...
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

tomix

Zitat von: Beta-User am 02 Februar 2022, 12:12:09
Falls ich da unterstützen soll, müßtest du eine _genaue_ Darstellung von dem liefern, was an Kommunikation läuft, und wie die Readings ggf. zu jedem Zeitpunkt aussehen.
Die Zeit investiere ich lieber in das anpassen der Firmware, das ist nachhaltiger und bringt mehr. Dann würde es auch klappen einen Befehl direkt von einem anderen Tasmota zu senden.

Um mehr FHEM zu lernen gibt es da noch anderes;-). Ich will noch Doublepress für einen Taster in FHEM realisieren. Tasmota liefert aber loslassen und länger drücken (ist bewusst so eingestellt damit kein Reset möglich ist bei 40x oder was so lange wie Hold drücken). Für den Storen ist das auch optimal, aber der Shellyi3 hat ja noch einen dritten Eingang.

Gruss
tomix

tomix

Zitat von: Beta-User am 01 Februar 2022, 14:16:54
Also, in der nächsten Iteration gibt es dann:
attr DEVICE webCmd pct:tiltSlat
attr DEVICE widgetOverride pct:knob,min:-90,max:90,angleArc:180,width:40,height:40,fgColor:#CCCCCC,bgColor:#FF9900,step:5,lineCap:round,rotation:anticlockwise,displayPrevious:1

Zusammen mit dem (Perl-) devStateIcon sollte das dann ausreichen, um eine vernünftige Steuerung per FHEMWEB zu haben.
Wenn der Slider wechselt wäre das wohl einfacher zu bedienen auf einem Smartphone. Ich habe deinen Screenshot zumindest so verstanden. Logischer ist aber der knob schon. Zudem hat dann alles ganz gut Platz (Icon knob Slider).
Dann warte ich mal auf dein Update. Brachte das auf die schnelle nicht sinnvoll zusammen.

Gruss
tomix

tomix

Zitat von: tomix am 20 Januar 2022, 12:27:08

attr MQTT2_FHEM_Server ignoreRegexp shellies/[^/]+/command|cmnd/[^/]+/|homeassistant/.*/config|tasmota/discovery

Mal gucken ob das reicht (verstehe den Regexp nicht komplett).

Man sollte sich dabei nur noch bewusst sein, dass man sich ganz am Anfang, mit null Ahnung, drei notify auf ein cmd/... eingrichtet hat. Damit wurde ein zusätzlicher Taster an einem SonoffTH16 ausgewertet (single, double, hold). Habe das nnun wieder zurecht gebogen.

Gruss
tomix

Beta-User

Zitat von: tomix am 05 Februar 2022, 01:00:50
Habe das nnun wieder zurecht gebogen.
...hoffentlich, indem du im ESP einen anderen (oder zusätzlichen) Pfad für das Melden des Tastendrucks angegeben hast...

Zitat von: tomix am 04 Februar 2022, 20:49:15
Dann warte ich mal auf dein Update. Brachte das auf die schnelle nicht sinnvoll zusammen.
Ist seit ein paar Tagen via update zu bekommen  :) .
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

tomix

Zitat von: Beta-User am 05 Februar 2022, 06:12:30
...hoffentlich, indem du im ESP einen anderen (oder zusätzlichen) Pfad für das Melden des Tastendrucks angegeben hast...
Genau, dafür gesorgt, dass ein tele gesendet wird. Wird nachher dann sowieso durch den dritten Eingang am shellyi3 abhelöst.

Werde das Update nach ein paar Tagen im Schnee testen.

Gruss und Dank
tomix

Beta-User

 :) Viel Spaß. Schnee in Mengen mit hinreichendem Gefälle wäre auch mal wieder was...
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

tomix

Zitat von: Beta-User am 05 Februar 2022, 06:35:48
Schnee in Mengen mit hinreichendem Gefälle wäre auch mal wieder was...

Genau und mit einem oder zwei Brettern unter den Füssen. 8)

tomix


defmod MQTT2_Shelly25_EG_Kueche_6B0284 MQTT2_DEVICE Shelly25_EG_Kueche_6B0284
attr MQTT2_Shelly25_EG_Kueche_6B0284 alias RL_Kueche
attr MQTT2_Shelly25_EG_Kueche_6B0284 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_Shelly25_EG_Kueche_6B0284 comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35".\
This is for a tilt range from -90 to 90 degrees, if you have different tilt options, adopt range manually\
For calibration, tilt range settings, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
attr MQTT2_Shelly25_EG_Kueche_6B0284 devStateIcon {my $onl = ReadingsVal($name,'LWT','Offline') eq 'Offline' ? 'rot' : 'gruen';; $onl = FW_makeImage("10px-kreis-$onl");; my $ip = ReadingsVal($name,'IPAddress','none');; my $pct = int((109 - ReadingsNum($name,'pct',0))/10)*10;; my $open = ReadingsVal($name,'state','');; my $lvicon = $open eq 'opening' ? 'fts_shutter_up@red' : $open eq 'closing' ? 'fts_shutter_down@red' : "fts_shutter_$pct";; $lvicon = FW_makeImage($lvicon);; my $lvcmd = ($open eq 'opening' || $open eq 'closing') ? 'stop' : $pct > 50 ? 'close' : 'open';; my $slt = ReadingsNum($name,'tiltSlat',90);; my $slticon = 'fts_blade_arc_close_';; $slticon .= $slt > 0 ? '00' : $slt > -45 ? '50' : '100';; $slticon = FW_makeImage($slticon);; my $sltcmd = $slt > 0 ? 'closeSlat' : $slt > -45 ? 'openSlat' : 'halfSlat';; qq(<a href="http://$ip" target="_blank">$onl</a> <div><a href="/fhem?cmd.dummy=set $name $lvcmd&XHR=1">$lvicon</a></div> <div><a href="/fhem?cmd.dummy=set $name $sltcmd&XHR=1">$slticon $slt</a>) }
attr MQTT2_Shelly25_EG_Kueche_6B0284 icon fts_shutter_updown
attr MQTT2_Shelly25_EG_Kueche_6B0284 jsonMap POWER1:0 POWER2:0 Shutter1_Tilt:tiltSlat Shutter1_Target:pct ANALOG_Temperature:temperature
attr MQTT2_Shelly25_EG_Kueche_6B0284 model tasmota_2ch_shutter_venetian_invert_0
attr MQTT2_Shelly25_EG_Kueche_6B0284 readingList tele/shelly25_EG_KUECHE_6B0284/LWT:.* LWT\
   tele/shelly25_EG_KUECHE_6B0284/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/shelly25_EG_KUECHE_6B0284/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/shelly25_EG_KUECHE_6B0284/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   stat/shelly25_EG_KUECHE_6B0284/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   stat/shelly25_EG_KUECHE_6B0284/POWER1:.* {{'state' => 'opening'} if $EVENT eq 'on'}\
   stat/shelly25_EG_KUECHE_6B0284/POWER2:.* {{'state' => 'closing'} if $EVENT eq 'on'}\
Shelly25_EG_Kueche_6B0284:stat/shelly25_EG_KUECHE_6B0284/SHUTTER1:.* SHUTTER1
attr MQTT2_Shelly25_EG_Kueche_6B0284 room Haus,Haus->EG,MQTT2_DEVICE
attr MQTT2_Shelly25_EG_Kueche_6B0284 setList close:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterClose1\
   open:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterOpen1\
   half:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 50\
   pct:slider,0,1,100 cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterStop1\
   closeSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 CLOSE\
   openSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 OPEN\
   halfSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 0\
   tiltSlat:slider,0,5,90 cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 $EVTPART1\
   resetClose:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterSetClose1\
   x_configuration cmnd/shelly25_EG_KUECHE_6B0284/$EVTPART1 $EVTPART2
attr MQTT2_Shelly25_EG_Kueche_6B0284 setStateList open close half stop pct openSlat closeSlat halfSlat
attr MQTT2_Shelly25_EG_Kueche_6B0284 stateFormat LWT level: state slat: tiltSlat
attr MQTT2_Shelly25_EG_Kueche_6B0284 userReadings state:pct:.* {ReadingsNum($name,'pct',0)}
attr MQTT2_Shelly25_EG_Kueche_6B0284 webCmd open:close:stop:tiltSlat:pct
attr MQTT2_Shelly25_EG_Kueche_6B0284 widgetOverride tiltSlat:knob,min:0,max:90,angleArc:180,width:40,height:40,fgColor:#CCCCCC,bgColor:#FF9900,step:5,lineCap:round,rotation:anticlockwise,displayPrevious:1


Damit wäre der Knopf für den Tilt und der Silder für auf/zu.

Deine Lösung mit dem Silder der wechselt wäre aber cooler. Also ein Icon Auf/Zu und eines für den Tilt/Slat (Auf/Zu). Klickt man Auf/Zu wird der Storen entsprechend der Position geöffnet oder geschlossen und der Slider ist für Auf/Zu. Klickt man auf den Tilt/Slat wird der Storen entsprechend gekippt und der Slider dahinter wechselt für den Tilt/Slat.

Ich habe nun mal versucht beim Slider einen Hintergrundverlauf einzufügen wie folgt (pct:slider,0,1,100,color1:gradient_000000_FFFFFF):

attr MQTT2_Shelly25_EG_Kueche_6B0284 setList close:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterClose1\
   open:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterOpen1\
   half:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 50\
   pct:slider,0,1,100,color1:gradient_000000_FFFFFF cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterStop1\
   closeSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 CLOSE\
   openSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 OPEN\
   halfSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 0\
   tiltSlat:slider,0,5,90 cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 $EVTPART1\
   resetClose:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterSetClose1\
   x_configuration cmnd/shelly25_EG_KUECHE_6B0284/$EVTPART1 $EVTPART2

Allerdings ändert das gar nichts am aussehen.

Der Sliderhintergrund soll bei bei 0 (zu) Schwarz sein und bei 100 (offen) weiss.

Würden auch zwei Slider untereinander gehen? Den Online/Offline-Punkt habe ich mal wie folgt in die Mitte gesetzt:

attr MQTT2_Shelly25_EG_Kueche_6B0284 devStateIcon {my $onl = ReadingsVal($name,'LWT','Offline') eq 'Offline' ? 'rot' : 'gruen';; $onl = FW_makeImage("10px-kreis-$onl");; my $ip = ReadingsVal($name,'IPAddress','none');; my $pct = int((109 - ReadingsNum($name,'pct',0))/10)*10;; my $open = ReadingsVal($name,'state','');; my $lvicon = $open eq 'opening' ? 'fts_shutter_up@red' : $open eq 'closing' ? 'fts_shutter_down@red' : "fts_shutter_$pct";; $lvicon = FW_makeImage($lvicon);; my $lvcmd = ($open eq 'opening' || $open eq 'closing') ? 'stop' : $pct > 50 ? 'close' : 'open';; my $slt = ReadingsNum($name,'tiltSlat',90);; my $slticon = 'fts_blade_arc_close_';; $slticon .= $slt > 0 ? '00' : $slt > -45 ? '50' : '100';; $slticon = FW_makeImage($slticon);; my $sltcmd = $slt > 0 ? 'closeSlat' : $slt > -45 ? 'openSlat' : 'halfSlat';; qq(<a href="/fhem?cmd.dummy=set $name $lvcmd&XHR=1">$lvicon</a> <div><a href="http://$ip" target="_blank">$onl</a></div> <div><a href="/fhem?cmd.dummy=set $name $sltcmd&XHR=1">$slticon $slt</a>) }


Damit sollte es einfach sein das Icon für Auf/Zu bzw. Tilt/Slat zu treffen (wobei je nach was drüber oder drunter ist, das ganze auch nicht sinnvoll ist). Auf/Zu funktioniert noch nicht, dachte zuerst das ist noch gar nichts dafür gemacht. Sehe nun aber, dass es eigentlich funktionieren sollte, kapier aber nicht wieso nicht (kapier den entsprechenden Code noch nicht). Beim Tilt/Slat-Icon wäre evtl. 0°/45°/90° sinnvoll.

Gruss
tomix

Beta-User

Zitat von: tomix am 13 Februar 2022, 20:04:13
Deine Lösung mit dem Silder der wechselt wäre aber cooler. Also ein Icon Auf/Zu und eines für den Tilt/Slat (Auf/Zu). Klickt man Auf/Zu wird der Storen entsprechend der Position geöffnet oder geschlossen und der Slider ist für Auf/Zu. Klickt man auf den Tilt/Slat wird der Storen entsprechend gekippt und der Slider dahinter wechselt für den Tilt/Slat.
Hmm, bin nicht ganz sicher, ob wir nicht aneinander vorbei reden: Der Slider (für den Behang) bzw. der knob für die Lamellendrehung sollte immer da sein, für den Rest gibt es das "doppelte" devStateIcon. Da das wohl nicht funktioniert: Was wird als Link angezeigt, wenn du jeweils über die Icons gehst mit der Maus?

Für was ist dieser Topic dazugekommen:
Shelly25_EG_Kueche_6B0284:stat/shelly25_EG_KUECHE_6B0284/SHUTTER1:.* SHUTTER1

Der Slider in "hell-dunkel" sollte mit eine widget gehen (auch in der readingList, hier per owidgetOverride):
attr MQTT2_Shelly25_EG_Kueche_6B0284 widgetOverride tiltSlat:knob,min:0,max:90,angleArc:180,width:40,height:40,fgColor:#CCCCCC,bgColor:#FF9900,step:5,lineCap:round,rotation:anticlockwise,displayPrevious:1
pct:colorpicker,BRI,0,1,100


Zitat
Würden auch zwei Slider untereinander gehen?
Klar. Müßte mit webCmdLabel realisierbar sein.

ZitatDen Online/Offline-Punkt habe ich mal wie folgt in die Mitte gesetzt:
Da der "grüne Punkt" bei allen Tasmota-Varianten bisher links steht, will ich das nicht ändern.
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

tomix

Zitat von: Beta-User am 14 Februar 2022, 10:23:42
Für was ist dieser Topic dazugekommen:
Shelly25_EG_Kueche_6B0284:stat/shelly25_EG_KUECHE_6B0284/SHUTTER1:.* SHUTTER1

Keine Ahnung, hab das Device gelöscht, mit dem Downloadbefehl FHEM aktualisiert und das Device neu angelegt und dann nur die Darstellung geändert.

Knob ist auf dem Smartphone schlecht bedienbar, daher lieber zwei Slider.

Aktuell steht unter dem grünen Punkt wieder nur "fts_shutter_0", aber das wechselt zum passenden Icon. Allerdings weiss ich nicht wann genau, dachte gestern dies sei nur ein Initialisierungsproblem, aber nun ist das Icon wieder weg.

Punkt links ist auch okay, aktuell ist der über den beiden Icons.

Gruss
tomix

Beta-User

Zitat von: tomix am 14 Februar 2022, 12:54:44
Keine Ahnung, hab das Device gelöscht, mit dem Downloadbefehl FHEM aktualisiert und das Device neu angelegt und dann nur die Darstellung geändert.
Das ist eine Info, die vom Device her gesendet wurde, von daher: wenn es wiederkommt, bitte auch die Info, was in dem Reading steht...

Zitat
Knob ist auf dem Smartphone schlecht bedienbar, daher lieber zwei Slider.
Das kannst du gerne so hinfrickeln, in das attrTemplate übernehmen will ich es nicht (daher das widgetOverride, dann kann man zumindest die slider nebeneinander sichtbar machen, indem man das löscht).

Zitat
Aktuell steht unter dem grünen Punkt wieder nur "fts_shutter_0", aber das wechselt zum passenden Icon. Allerdings weiss ich nicht wann genau, dachte gestern dies sei nur ein Initialisierungsproblem, aber nun ist das Icon wieder weg.
Es gibt zwei Wege: Entweder du schaust selbst, wo das Problem liegt, oder du lieferst mir auch die kompletten Readings (per raw-list, je für mit und ohne Fehlerbild), dann kann ich uU. etwas rumsimulieren... So ist es für mich zu mühsam.

Zitat
Punkt links ist auch okay, aktuell ist der über den beiden Icons.
evtl. mal das "<div>" löschen? (s.o.).
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

tomix

Zitat von: Beta-User am 14 Februar 2022, 13:09:34
Das ist eine Info, die vom Device her gesendet wurde, von daher: wenn es wiederkommt, bitte auch die Info, was in dem Reading steht...

Shelly25_EG_Kueche_6B0284:stat/shelly25_EG_KUECHE_6B0284/SHUTTER1:.* SHUTTER1

Es wird die Storenposition ausgegeben (nicht verschachtel sonder direkt), also bei 62 Prozent:
setstate MQTT2_Shelly25_EG_Kueche_6B0284 2022-02-14 19:29:05 SHUTTER1 62

Ausgabe der Konsole (Tasmota):

19:30:53.113 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"ShutterClose1":0}
19:30:53.120 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":81,"Direction":-1,"Target":0,"Tilt":90}}
19:30:53.418 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":81,"Direction":-1,"Target":0,"Tilt":72}}
19:30:54.384 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":81,"Direction":-1,"Target":0,"Tilt":0}}
19:30:55.388 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":77,"Direction":-1,"Target":0,"Tilt":0}}
19:30:56.391 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":73,"Direction":-1,"Target":0,"Tilt":0}}
19:30:57.393 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":69,"Direction":-1,"Target":0,"Tilt":0}}
19:30:58.393 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":64,"Direction":-1,"Target":0,"Tilt":0}}
19:30:59.395 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":60,"Direction":-1,"Target":0,"Tilt":0}}
19:31:00.397 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":56,"Direction":-1,"Target":0,"Tilt":0}}
19:31:01.412 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":51,"Direction":-1,"Target":0,"Tilt":0}}
19:31:02.414 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":47,"Direction":-1,"Target":0,"Tilt":0}}
19:31:03.415 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":43,"Direction":-1,"Target":0,"Tilt":0}}
19:31:04.367 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":39,"Direction":-1,"Target":0,"Tilt":0}}
19:31:05.368 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":34,"Direction":-1,"Target":0,"Tilt":0}}
19:31:06.369 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":30,"Direction":-1,"Target":0,"Tilt":0}}
19:31:07.368 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":26,"Direction":-1,"Target":0,"Tilt":0}}
19:31:08.371 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":22,"Direction":-1,"Target":0,"Tilt":0}}
19:31:09.376 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":17,"Direction":-1,"Target":0,"Tilt":0}}
19:31:10.414 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":13,"Direction":-1,"Target":0,"Tilt":0}}
19:31:11.382 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":9,"Direction":-1,"Target":0,"Tilt":0}}
19:31:12.383 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":5,"Direction":-1,"Target":0,"Tilt":0}}
19:31:13.387 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":4,"Direction":-1,"Target":0,"Tilt":0}}
19:31:14.392 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":2,"Direction":-1,"Target":0,"Tilt":0}}
19:31:15.394 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":1,"Direction":-1,"Target":0,"Tilt":0}}
19:31:16.043 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"POWER2":"off"}
19:31:16.048 MQT: stat/shelly25_EG_KUECHE_6B0284/POWER2 = off
19:31:16.554 MQT: stat/shelly25_EG_KUECHE_6B0284/SHUTTER1 = 0
19:31:16.558 MQT: stat/shelly25_EG_KUECHE_6B0284/RESULT = {"Shutter1":{"Position":0,"Direction":0,"Target":0,"Tilt":0}}

Wird jeweils beim erreichen der Zielposition gesendet (somit solange SHUTTER1 != Shutter1->Position läuft der Storen).

Zitat von: Beta-User am 14 Februar 2022, 13:09:34
Das kannst du gerne so hinfrickeln, in das attrTemplate übernehmen will ich es nicht (daher das widgetOverride, dann kann man zumindest die slider nebeneinander sichtbar machen, indem man das löscht).
Zuerst muss es mal korrekt funktionieren, nachher kann man ja paar widgetOverride Varianten hier posten und wie die aussehen.

Zitat von: Beta-User am 14 Februar 2022, 13:09:34
Es gibt zwei Wege: Entweder du schaust selbst, wo das Problem liegt, oder du lieferst mir auch die kompletten Readings (per raw-list, je für mit und ohne Fehlerbild), dann kann ich uU. etwas rumsimulieren... So ist es für mich zu mühsam.
evtl. mal das "<div>" löschen? (s.o.).

Werde das mal debuggen. Wenn der Storen unten ist, ist das Icon korrekt (also mit Storen unten), der Link aber:

<a href="/fhem?cmd.dummy=set MQTT2_Shelly25_EG_Kueche_6B0284 close&XHR=1"><svg class=


Ist der Storen oben:

<a href="/fhem?cmd.dummy=set MQTT2_Shelly25_EG_Kueche_6B0284 open&XHR=1">fts_shutter_0</a>

wird der SVG-Teil nicht eingesetzt (was da das SVG-Bild einsetzt check ich noch nicht).

Ansonsten wohl nur 0 und 100 vertauscht und das Icon mit 0 gibt es nicht oder es heisst 00 oder was auch immer.

Gruss
tomix

tomix

"fts_shutter_0" gibt es nicht, ein:

/opt/fhem/www/images/openautomation# ln -s fts_window_2w.svg fts_shutter_0.svg

führt dazu, dass mal ein Icon da ist (nach einem shutdown restart).


my $lvcmd = ($open eq 'opening' || $open eq 'closing') ? 'stop' : $pct > 50 ? 'open' : 'close';;

So funktioniert es (open und close) wurde am Schluss getauscht.

Muss das dann nochmals in Ruhe alles testen.

Gruss
tomix

tomix

Zitat von: Beta-User am 14 Februar 2022, 10:23:42
attr MQTT2_Shelly25_EG_Kueche_6B0284 widgetOverride tiltSlat:knob,min:0,max:90,angleArc:180,width:40,height:40,fgColor:#CCCCCC,bgColor:#FF9900,step:5,lineCap:round,rotation:anticlockwise,displayPrevious:1
pct:colorpicker,BRI,0,1,100


«Leerzeichen separierte Liste von Name/Modifier Paaren» ;-).

Die Darstellung lässt noch zu wünschen übrig, aber so funktioniert es mal:

defmod MQTT2_Shelly25_EG_Kueche_6B0284 MQTT2_DEVICE Shelly25_EG_Kueche_6B0284
attr MQTT2_Shelly25_EG_Kueche_6B0284 alias RL_Kueche
attr MQTT2_Shelly25_EG_Kueche_6B0284 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_Shelly25_EG_Kueche_6B0284 comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35".\
This is for a tilt range from -90 to 90 degrees, if you have different tilt options, adopt range manually\
For calibration, tilt range settings, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
attr MQTT2_Shelly25_EG_Kueche_6B0284 devStateIcon {my $onl = ReadingsVal($name,'LWT','Offline') eq 'Offline' ? 'rot' : 'gruen';; $onl = FW_makeImage("10px-kreis-$onl");; my $ip = ReadingsVal($name,'IPAddress','none');; my $pct = int((109 - ReadingsNum($name,'pct',0))/10)*10;; my $open = ReadingsVal($name,'state','');; my $lvicon = $open eq 'opening' ? 'fts_shutter_up@red' : $open eq 'closing' ? 'fts_shutter_down@red' : "fts_shutter_$pct";; $lvicon = FW_makeImage($lvicon);; my $lvcmd = ($open eq 'opening' || $open eq 'closing') ? 'stop' : $pct > 50 ? 'close' : 'open';; my $slt = ReadingsNum($name,'tiltSlat',90);; my $slticon = 'fts_blade_arc_close_';; $slticon .= $slt > 0 ? '00' : $slt > -45 ? '50' : '100';; $slticon = FW_makeImage($slticon);; my $sltcmd = $slt > 0 ? 'closeSlat' : $slt > -45 ? 'openSlat' : 'halfSlat';; qq(<a href="http://$ip" target="_blank">$onl</a> <a href="/fhem?cmd.dummy=set $name $lvcmd&XHR=1">$lvicon</a> <a href="/fhem?cmd.dummy=set $name $sltcmd&XHR=1">$slticon $slt</a>)}
attr MQTT2_Shelly25_EG_Kueche_6B0284 icon fts_shutter_updown
attr MQTT2_Shelly25_EG_Kueche_6B0284 jsonMap POWER1:0 POWER2:0 Shutter1_Tilt:tiltSlat Shutter1_Target:pct ANALOG_Temperature:temperature
attr MQTT2_Shelly25_EG_Kueche_6B0284 model tasmota_2ch_shutter_venetian_invert_0
attr MQTT2_Shelly25_EG_Kueche_6B0284 readingList tele/shelly25_EG_KUECHE_6B0284/LWT:.* LWT\
   tele/shelly25_EG_KUECHE_6B0284/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/shelly25_EG_KUECHE_6B0284/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/shelly25_EG_KUECHE_6B0284/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   stat/shelly25_EG_KUECHE_6B0284/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   stat/shelly25_EG_KUECHE_6B0284/POWER1:.* {{'state' => 'opening'} if $EVENT eq 'on'}\
   stat/shelly25_EG_KUECHE_6B0284/POWER2:.* {{'state' => 'closing'} if $EVENT eq 'on'}\
Shelly25_EG_Kueche_6B0284:stat/shelly25_EG_KUECHE_6B0284/SHUTTER1:.* SHUTTER1
attr MQTT2_Shelly25_EG_Kueche_6B0284 room Haus,Haus->EG,MQTT2_DEVICE
attr MQTT2_Shelly25_EG_Kueche_6B0284 setList close:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterClose1\
   open:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterOpen1\
   half:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 50\
   pct:slider,0,1,100,color1:gradient_000000_FFFFFF cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterStop1\
   closeSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 CLOSE\
   openSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 OPEN\
   halfSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 0\
   tiltSlat:slider,0,5,90 cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 $EVTPART1\
   resetClose:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterSetClose1\
   x_configuration cmnd/shelly25_EG_KUECHE_6B0284/$EVTPART1 $EVTPART2
attr MQTT2_Shelly25_EG_Kueche_6B0284 setStateList open close half stop pct openSlat closeSlat halfSlat
attr MQTT2_Shelly25_EG_Kueche_6B0284 stateFormat LWT level: state slat: tiltSlat
attr MQTT2_Shelly25_EG_Kueche_6B0284 userReadings state:pct:.* {ReadingsNum($name,'pct',0)}
attr MQTT2_Shelly25_EG_Kueche_6B0284 webCmd open:close:stop:tiltSlat:pct
attr MQTT2_Shelly25_EG_Kueche_6B0284 widgetOverride tiltSlat:knob,min:0,max:90,angleArc:180,width:40,height:40,fgColor:#CCCCCC,bgColor:#FF9900,step:5,lineCap:round,rotation:anticlockwise,displayPrevious:1 pct:colorpicker,BRI,0,1,100


Icon für runter, rauf und stop muss dann noch weg, sobald der Rest genügend WAF hat. Ebenfalls wäre für den Tilt/Slat folgende Icon-Funktion cool 0° → 45° → 90° → 45° → 0° → 45° → ...

Gruss
tomix

Beta-User

Folgende Anmerkungen:
Das "kaputte" Icon kommt daher, dass das mal gedacht war für einen Wertebereich 0-99 (ZWave). Für die 0 braucht man hier eine Sonderbehandlung, die m.E. so aussehen könnte (Änderung im Perl-devStateIcon):
my $pct = maxNum(int((109 - ReadingsNum($name,'pct',0))/10)*10, 1)

Auf das userReadings kann man verzichten, wenn man die Zeile in der readingList anpaßt:
stat/shelly25_EG_KUECHE_6B0284/SHUTTER1:.* state
Das sollte dann auch zur Folge haben, dass "state" auf opening etc. bleibt, so dass man auch beim Lamellendrehen die "stop"-Anweisung absetzen kann.

Das mit dem gegenläufigen Durchgehen der slat-Werte kann damit m.E. entfallen, das ist eher schwierig umzusetzen und dann auch nicht so einfach zu erklären (wie erkennt man als User die Richtung, wenn länger nichts passiert war...?).
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

tomix

Zitat von: Beta-User am 14 Februar 2022, 21:47:28
Folgende Anmerkungen:
Das "kaputte" Icon kommt daher, dass das mal gedacht war für einen Wertebereich 0-99 (ZWave). Für die 0 braucht man hier eine Sonderbehandlung, die m.E. so aussehen könnte (Änderung im Perl-devStateIcon):
my $pct = maxNum(int((109 - ReadingsNum($name,'pct',0))/10)*10, 1)
Führt zur Minimalausgabe von 10 oder? Also einfach das Icon für 10 Prozent, nicht so elegant ;-).

Zitat von: Beta-User am 14 Februar 2022, 21:47:28
Auf das userReadings kann man verzichten, wenn man die Zeile in der readingList anpaßt:
stat/shelly25_EG_KUECHE_6B0284/SHUTTER1:.* state
Das sollte dann auch zur Folge haben, dass "state" auf opening etc. bleibt, so dass man auch beim Lamellendrehen die "stop"-Anweisung absetzen kann.
Verstehe ich aktuell noch nicht, werde mal ausprobieren was damit ändert.

Zitat von: Beta-User am 14 Februar 2022, 21:47:28
Das mit dem gegenläufigen Durchgehen der slat-Werte kann damit m.E. entfallen, das ist eher schwierig umzusetzen und dann auch nicht so einfach zu erklären (wie erkennt man als User die Richtung, wenn länger nichts passiert war...?).
Das Problem besteht immer, sobald der Storen irgendwo um 45° steht. Man sieht ja nicht ob der nun bei 44° oder 46° steht und somit auch wenn man einfach auf das Icon für das Kippen klickt.
Suche noch eine schlaue Lösung um irgendwas um 45° schnell anfahren zu können. Muss mal gucken. Ich werde evtl. folgendes ausprobieren (weiss allerdings noch nicht wie realisieren):
0° -> 30° -> 90° -> 60° -> 0° -> 30°
Zuerst aber mal einfach zwei Slider. Ich weiss aber noch nicht wie sofort klar wird, welcher für was ist. Aktuell sind die beiden Icons vorne und dann kommen der Knob und der Slider. Das einfachste wäre wohl diese verschieden einzufärben. Ansonsten je eine Zeile (aktuell keine Anhnung wie realisieren) oder Icon Slider, Icon, Slider.

Gruss
tomix

Beta-User

Zitat von: tomix am 15 Februar 2022, 13:21:26
Führt zur Minimalausgabe von 10 oder? Also einfach das Icon für 10 Prozent, nicht so elegant ;-).
Wie du schon bemerkt hattest, gibt es keines aus dieser "Linie" für 0%, und jedenfalls für meine ZWaves ist das Ergebnis ok...

Zitat
Verstehe ich aktuell noch nicht, werde mal ausprobieren was damit ändert.
Kerngedanke: der Prozentwert steht im state, wenn das Ding steht, sonst auf einer Text-Richtungsangabe. Da scheinbar (entgegen meiner Erwartung) Zwischenwerte gesendet worden waren auf das, was wir bisher auf state umgebogen hatten, muss das eben noch gelöscht werden.

Zitat
Das Problem besteht immer, sobald der Storen irgendwo um 45° steht. Man sieht ja nicht ob der nun bei 44° oder 46° steht und somit auch wenn man einfach auf das Icon für das Kippen klickt.
Wenn man es _nur_ per Klick auf devStateIcon steuert, sollte einigermaßen klar sein, ob es auf -90, -45 oder 0 steht, und dann ist auch der Sprung auf das jeweils nächste naheliegend (zumal es auch halbwegs zu den Symbolen passen sollte).

Zitat
Suche noch eine schlaue Lösung um irgendwas um 45° schnell anfahren zu können. Muss mal gucken. Ich werde evtl. folgendes ausprobieren (weiss allerdings noch nicht wie realisieren):
0° -> 30° -> 90° -> 60° -> 0° -> 30°
Viel Spaß.

Zitat
Zuerst aber mal einfach zwei Slider. Ich weiss aber noch nicht wie sofort klar wird, welcher für was ist. Aktuell sind die beiden Icons vorne und dann kommen der Knob und der Slider. Das einfachste wäre wohl diese verschieden einzufärben. Ansonsten je eine Zeile (aktuell keine Anhnung wie realisieren) oder Icon Slider, Icon, Slider.
widgetOverride anpassen, damit beides zum BRI-slider wird, und dann webCmdLabel für die Formatierung und Benennung (einschl. Zeilenumbruch).
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

tomix

Zitat von: Beta-User am 15 Februar 2022, 13:41:23
Wie du schon bemerkt hattest, gibt es keines aus dieser "Linie" für 0%
Das Fenster (fts_window_2w.svg) passt perfekt und denn Symlink kann ich bzgl. Speicherplatzverschwendung verschmerzen ;-) .

Zitat von: Beta-User am 15 Februar 2022, 13:41:23
Kerngedanke: der Prozentwert steht im state, wenn das Ding steht, sonst auf einer Text-Richtungsangabe. Da scheinbar (entgegen meiner Erwartung) Zwischenwerte gesendet worden waren auf das, was wir bisher auf state umgebogen hatten, muss das eben noch gelöscht werden.

Zuerst nicht kapiert, dass die state-Werte «direkt» erscheinen, also kein «state: Wert» und dann doch noch gefunden wie man das userReading löscht:

deleteattr MQTT2_Shelly25_EG_Kueche_6B0284 userReadings


Bei den Slider stehe ich nun etwas an. Der für hoch/runter sollte einen weissen oder hellblauen Hintergrund haben und der Bereich von pct bis 100 dann grau sein (stellt dann den Storen dar). Gibt es dafür was?

Rest sollte nun passen:

defmod MQTT2_Shelly25_EG_Kueche_6B0284 MQTT2_DEVICE Shelly25_EG_Kueche_6B0284
attr MQTT2_Shelly25_EG_Kueche_6B0284 alias RL_Kueche
attr MQTT2_Shelly25_EG_Kueche_6B0284 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_Shelly25_EG_Kueche_6B0284 comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35".\
This is for a tilt range from -90 to 90 degrees, if you have different tilt options, adopt range manually\
For calibration, tilt range settings, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
attr MQTT2_Shelly25_EG_Kueche_6B0284 devStateIcon {my $onl = ReadingsVal($name,'LWT','Offline') eq 'Offline' ? 'rot' : 'gruen';; $onl = FW_makeImage("10px-kreis-$onl");; my $ip = ReadingsVal($name,'IPAddress','none');; my $pct = int((109 - ReadingsNum($name,'pct',0))/10)*10;; my $open = ReadingsVal($name,'state','');; my $lvicon = $open eq 'opening' ? 'fts_shutter_up@red' : $open eq 'closing' ? 'fts_shutter_down@red' : "fts_shutter_$pct";; $lvicon = FW_makeImage($lvicon);; my $lvcmd = ($open eq 'opening' || $open eq 'closing') ? 'stop' : $pct > 50 ? 'close' : 'open';; my $slt = ReadingsNum($name,'tiltSlat',90);; my $slticon = 'fts_blade_arc_close_';; $slticon .= $slt > 0 ? '00' : $slt > -45 ? '50' : '100';; $slticon = FW_makeImage($slticon);; my $sltcmd = $slt > 0 ? 'closeSlat' : $slt > -45 ? 'openSlat' : 'halfSlat';; qq(<a href="http://$ip" target="_blank">$onl</a> <a href="/fhem?cmd.dummy=set $name $lvcmd&XHR=1">$lvicon</a> <a href="/fhem?cmd.dummy=set $name $sltcmd&XHR=1">$slticon $slt</a>)}
attr MQTT2_Shelly25_EG_Kueche_6B0284 icon fts_shutter_updown
attr MQTT2_Shelly25_EG_Kueche_6B0284 jsonMap POWER1:0 POWER2:0 Shutter1_Tilt:tiltSlat Shutter1_Target:pct ANALOG_Temperature:temperature
attr MQTT2_Shelly25_EG_Kueche_6B0284 model tasmota_2ch_shutter_venetian_invert_0
attr MQTT2_Shelly25_EG_Kueche_6B0284 readingList tele/shelly25_EG_KUECHE_6B0284/LWT:.* LWT\
   tele/shelly25_EG_KUECHE_6B0284/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/shelly25_EG_KUECHE_6B0284/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/shelly25_EG_KUECHE_6B0284/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   stat/shelly25_EG_KUECHE_6B0284/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   stat/shelly25_EG_KUECHE_6B0284/POWER1:.* {{'state' => 'opening'} if $EVENT eq 'on'}\
   stat/shelly25_EG_KUECHE_6B0284/POWER2:.* {{'state' => 'closing'} if $EVENT eq 'on'}\
Shelly25_EG_Kueche_6B0284:stat/shelly25_EG_KUECHE_6B0284/SHUTTER1:.* state
attr MQTT2_Shelly25_EG_Kueche_6B0284 room Haus,Haus->EG,MQTT2_DEVICE
attr MQTT2_Shelly25_EG_Kueche_6B0284 setList close:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterClose1\
   open:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterOpen1\
   half:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 50\
   pct:slider,0,1,100,color1:gradient_000000_FFFFFF cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterStop1\
   closeSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 CLOSE\
   openSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 OPEN\
   halfSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 0\
   tiltSlat:slider,0,5,90 cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 $EVTPART1\
   resetClose:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterSetClose1\
   x_configuration cmnd/shelly25_EG_KUECHE_6B0284/$EVTPART1 $EVTPART2
attr MQTT2_Shelly25_EG_Kueche_6B0284 setStateList open close half stop pct openSlat closeSlat halfSlat
attr MQTT2_Shelly25_EG_Kueche_6B0284 stateFormat LWT level: state slat: tiltSlat
attr MQTT2_Shelly25_EG_Kueche_6B0284 webCmd open:close:stop:tiltSlat:pct
attr MQTT2_Shelly25_EG_Kueche_6B0284 widgetOverride tiltSlat:colorpicker,BRI,0,1,90 pct:colorpicker,BRI,0,1,100


Hier dann noch open:close:stop entfernen:

attr MQTT2_Shelly25_EG_Kueche_6B0284 webCmd open:close:stop:tiltSlat:pct


Gruss
tomix

Beta-User

Hmm, ist immer mühsam, das zum aktuellen attrTemplate zu brücken, aber das scheint mir jetzt zu passen.

Was den slider-Wunsch angeht: Verfügbar ist, was im Wiki unter "FHEMWEB/widgets" zu finden ist. Wenn es unterschiedlich sein soll, ginge ggf. noch der CT-Slider, aber "bläulich" gibt es halt nicht (bzw. müßtest du selbst erstellen ;D ).

Denke, wir sind damit jetzt erst mal soweit "durch", oder?
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

tomix

Zitat von: Beta-User am 16 Februar 2022, 08:12:46
Denke, wir sind damit jetzt erst mal soweit "durch", oder?
Beim devStateIcon muss open und close wieder zurück gedreht werden.

Dies hier habe ich erst jetzt gesehen:

$slticon .= $slt > 0 ? '00' : $slt > -45 ? '50' : '100';;
my $sltcmd = $slt > 0 ? 'closeSlat' : $slt > -45 ? 'openSlat' : 'halfSlat';;

Wir haben bzgl. der Funktion des Icons aneinander vorbei geschrieben (funktionierte bei mir gar nicht richtig).

Für die Anzeige:

$slticon .= $slt == 0 ? '100' : $slt < 90 ? '50' : '00';;

Also Icon auf halboffen falls zwischen 0° und 90°.

... und die Funktion wie ich die jetzt gerade mal will (keine Ahnung ob die Idee schlau ist):

my $sltcmd = $slt == 90 ? 'closeSlat' : $slt > 40 ? 'openSlat' : 'halfSlat';;

Funktion des Icons:
geschlossen (0°) bzw. unter 40° offen → halboffen (45°)
halboffen bzw. über 40° offen → offen (90°)
offen (90°) → geschlossen (0°)

Ganzes RAW

defmod MQTT2_Shelly25_EG_Kueche_6B0284 MQTT2_DEVICE Shelly25_EG_Kueche_6B0284
attr MQTT2_Shelly25_EG_Kueche_6B0284 alias RL_Kueche
attr MQTT2_Shelly25_EG_Kueche_6B0284 cmdIcon open:fts_shutter_up close:fts_shutter_down stop:fts_shutter_manual half:fts_shutter_50
attr MQTT2_Shelly25_EG_Kueche_6B0284 comment After applying the template set "ShutterOpenDuration1", "ShutterCloseDuration1" and "shuttertiltconfig1" first.\
Use the "set x_configuration" Option. Example: "set x_configuration ShutterOpenDuration1 35".\
This is for a tilt range from -90 to 90 degrees, if you have different tilt options, adopt range manually\
For calibration, tilt range settings, use of more than one shutter device and further information on the available commands see <a href="https://tasmota.github.io/docs/Blinds-and-Shutters/</a>.
attr MQTT2_Shelly25_EG_Kueche_6B0284 devStateIcon {my $onl = ReadingsVal($name,'LWT','Offline') eq 'Offline' ? 'rot' : 'gruen';; $onl = FW_makeImage("10px-kreis-$onl");; my $ip = ReadingsVal($name,'IPAddress','none');; my $pct = int((109 - ReadingsNum($name,'pct',0))/10)*10;; my $open = ReadingsVal($name,'state','');; my $lvicon = $open eq 'opening' ? 'fts_shutter_up@red' : $open eq 'closing' ? 'fts_shutter_down@red' : "fts_shutter_$pct";; $lvicon = FW_makeImage($lvicon);; my $lvcmd = ($open eq 'opening' || $open eq 'closing') ? 'stop' : $pct > 50 ? 'open' : 'close';; my $slt = ReadingsNum($name,'tiltSlat',90);; my $slticon = 'fts_blade_arc_close_';; $slticon .= $slt == 0 ? '100' : $slt < 90 ? '50' : '00';; $slticon = FW_makeImage($slticon);; my $sltcmd = $slt == 90 ? 'closeSlat' : $slt > 40 ? 'openSlat' : 'halfSlat';; qq(<a href="http://$ip" target="_blank">$onl</a> <a href="/fhem?cmd.dummy=set $name $lvcmd&XHR=1">$lvicon</a> <a href="/fhem?cmd.dummy=set $name $sltcmd&XHR=1">$slticon $slt</a>)}
attr MQTT2_Shelly25_EG_Kueche_6B0284 icon fts_shutter_updown
attr MQTT2_Shelly25_EG_Kueche_6B0284 jsonMap POWER1:0 POWER2:0 Shutter1_Tilt:tiltSlat Shutter1_Target:pct ANALOG_Temperature:temperature
attr MQTT2_Shelly25_EG_Kueche_6B0284 model tasmota_2ch_shutter_venetian_invert_0
attr MQTT2_Shelly25_EG_Kueche_6B0284 readingList tele/shelly25_EG_KUECHE_6B0284/LWT:.* LWT\
   tele/shelly25_EG_KUECHE_6B0284/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/shelly25_EG_KUECHE_6B0284/SENSOR:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   tele/shelly25_EG_KUECHE_6B0284/INFO.:.* { $EVENT =~ m,^..Info[1-3]..(.+).$, ?  json2nameValue($1,'',$JSONMAP) : json2nameValue($EVENT,'',$JSONMAP) }\
   stat/shelly25_EG_KUECHE_6B0284/RESULT:.* { json2nameValue($EVENT,'',$JSONMAP) }\
   stat/shelly25_EG_KUECHE_6B0284/POWER1:.* {{'state' => 'opening'} if $EVENT eq 'on'}\
   stat/shelly25_EG_KUECHE_6B0284/POWER2:.* {{'state' => 'closing'} if $EVENT eq 'on'}\
Shelly25_EG_Kueche_6B0284:stat/shelly25_EG_KUECHE_6B0284/SHUTTER1:.* state
attr MQTT2_Shelly25_EG_Kueche_6B0284 room Haus,Haus->EG,MQTT2_DEVICE
attr MQTT2_Shelly25_EG_Kueche_6B0284 setList close:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterClose1\
   open:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterOpen1\
   half:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 50\
   pct:slider,0,1,100,color1:gradient_000000_FFFFFF cmnd/shelly25_EG_KUECHE_6B0284/ShutterPosition1 $EVTPART1\
   stop:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterStop1\
   closeSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 CLOSE\
   openSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 OPEN\
   halfSlat:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 45\
   tiltSlat:slider,0,1,90 cmnd/shelly25_EG_KUECHE_6B0284/ShutterTilt1 $EVTPART1\
   resetClose:noArg cmnd/shelly25_EG_KUECHE_6B0284/ShutterSetClose1\
   x_configuration cmnd/shelly25_EG_KUECHE_6B0284/$EVTPART1 $EVTPART2
attr MQTT2_Shelly25_EG_Kueche_6B0284 setStateList open close half stop pct openSlat closeSlat halfSlat
attr MQTT2_Shelly25_EG_Kueche_6B0284 stateFormat LWT level: state slat: tiltSlat
attr MQTT2_Shelly25_EG_Kueche_6B0284 webCmd tiltSlat:pct
attr MQTT2_Shelly25_EG_Kueche_6B0284 widgetOverride tiltSlat:colorpicker,BRI,0,1,90 pct:colorpicker,BRI,0,1,100


Dann sollte es nun passen. Ob es für -90° bis 90° auch passt weiss ich nicht.

Vielen Dank und Gruss
tomix

Beta-User

Zitat von: tomix am 16 Februar 2022, 10:07:30
Beim devStateIcon muss open und close wieder zurück gedreht werden.
OK, wird erledigt.

ZitatDies hier habe ich erst jetzt gesehen:
Dann müßte das aus dem attrTemplate für "norm-konforme Tasmota-Nutzer" auch passen. Prinzipiell wäre es für unsere Kommunikation einfacher gewesen, wenn du die Tasmota-Konvention übernommen und den Bereich von -90 bis 0 verwendet hättest (-90 ist imo gleichbedeutend mit komplett nach unten gekippt, also "geschlossen").
Dass der Code leider nicht besonders übersichtlich ist, ist halt angesichts der Funktionalität kaum zu ändern, aber jetzt dürfte es jedenfalls für potentiellen Nachahmer klarer sein, wie das zusammenzupuzzeln ist :) .
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

tomix

Zitat von: Beta-User am 16 Februar 2022, 10:26:23
Dass der Code leider nicht besonders übersichtlich ist, ist halt angesichts der Funktionalität kaum zu ändern, aber jetzt dürfte es jedenfalls für potentiellen Nachahmer klarer sein, wie das zusammenzupuzzeln ist :) .
Bei keinen Zeilenumbruchen wird es noch schwieriger. Aber immer mehr blickt man durch ;-) .

Da der Forumbeitrag hier inzwischen alles andere als übersichtlich ist, könnte ich dazu ja noch einen Wikieintrag erstellen (ESP mit Tasmota Firmware für Rafflamellenstoren). Aber wohin damit? Unter:
https://wiki.fhem.de/wiki/Kategorie:Code_Snippets

Gruss
tomix

Beta-User

Hmmm, ja, warum nicht. Es besteht zwar "Veraltungsgefahr", aber das ist schon ein sehr spezielles Thema...

Was noch klasse wäre: Vielleicht liest du mit deinen jüngsten Erfahrungen mal über den "Schritt für Schritt" drüber? Das ist im Moment vermutlich auch noch mit zu wenigen (Einsteiger-verständlichen) Beispielen usw..
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

tomix

Zitat von: Beta-User am 16 Februar 2022, 10:26:23
Prinzipiell wäre es für unsere Kommunikation einfacher gewesen, wenn du die Tasmota-Konvention übernommen und den Bereich von -90 bis 0 verwendet hättest (-90 ist imo gleichbedeutend mit komplett nach unten gekippt, also "geschlossen").

Tasmota nimmt aber 90° für geschlossen:
ShutterTiltConfig<x>:
<min> <max> <Tiltduration> <openposition> <closeposition> (default = 0 0 0 0 0)
Configure the tilt for venetian blinds. Min/man values must be in the range of -90° to 90°. Open and Close position must be part of the defined range between min and max. Tiltduration defines the time the shutter needs to change the tilt from min to max value. This time has to been multiplied by 20. E.g. 1.2sec = 1.2 x 20 = 24. Example defines tilt on shutter 2: shuttertiltconfig2 -90 90 24 0 90
(https://tasmota.github.io/docs/Commands/#shutters)

closeposition wird im Beispiel auf 90° gesetzt. Ich habe dies daher so verstanden, dass es das -90° nur gibt, weil es tatsächlich Storen gibt die auf beide Seiten drehen können ;-) . Genutzt wird dann aber nur der Bereich von 0° bis 90°. Da im Bereich 0° bis -90° die Storen nach innen gekippt sind (was vermieden werden sollten).

Dazu kommt dann noch die Position in der, der Storen beim runter- oder rauffahren ist.

Gruss
tomix

Beta-User

 :) Danke für die Klarstellung, klingt logisch...

Werde das demnchst mal mit deinen Werten vom 16.02. in Umlauf bringen, wird sich schon jemand melden, wenn es für ihn nicht paßt ::) .
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

tomix

Zitat von: Beta-User am 18 Februar 2022, 10:10:53
:) Danke für die Klarstellung, klingt logisch...

Werde das demnchst mal mit deinen Werten vom 16.02. in Umlauf bringen, wird sich schon jemand melden, wenn es für ihn nicht paßt ::) .
Evtl. wäre es sinnvoll die noch fehlenden Commands (also nicht die zum konfigurieren) als «Direktbefehl» zu ergänzen, also z.B.:
DiffSlat cmnd/Shelly25_1OG_Zimmer_OST_D30D75/ShutterTiltChange1 $EVTPART1
ShutterLock1 (für solche die Taster anschliessen)
ShutterChange1
ShutterToggle1

Sollte natürlich auch via x_configuration funktionieren, wenn ich den Code korrekt verstanden habe ;-) .

Gruss
tomix

Beta-User

Bin unschlüssig, habe aber auch nicht nachgeschaut, für was die im Einzelnen wären.

Falls es sowas wie "dimup" ist, könnte man es aufnehmen, allerdings würde ich dann eher zu "harten" setter-Namen und -Werten tendieren (=>ggf. Widget mitgeben, uU. über widgetOverride). "Freitext-setter" mit "technischen Namen" sorgen erfahrungsgemäß eher für Rückfragen, und beim Benennen sollte es eher an die FHEM-Terminologie angelehnt sein.
Bin aber für konkrete Vorschläge offen :) .
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

tomix

Zitat von: Beta-User am 19 Februar 2022, 11:53:28
Bin unschlüssig, habe aber auch nicht nachgeschaut, für was die im Einzelnen wären.
Vorerst mal nicht übernehmen ist auch eine Lösung ;-) . Sobald du das Template aktualisiert hast, werde ich alles an den einem Storen nochmals durchgehen und gleich dabei gleich die Schritt für Schrittanleitung für das Wiki schreiben. Da ich dort einen fehlenden Befehl brauche kann ich dies gleich als Beispiel aufnehmen, wie das ganze angepasst werden kann.

Dann noch um die ergänzen der Firmware kümmern, damit das mit dem Kippen auch sauber mit Taster funktioniert.

Das umflashen muss ich auch nochmals durchgehen. Da halt nochmals zwei Shelly bestellen, um die zwei fehlenden Storen noch umrüsten zu können ;-) .

Gruss
tomix

Beta-User

 ;D dann warte ich mal...

Freut mich jedenfalls sehr zu hören, dass du jetzt den "Durchblick" hast, wie man das ganze zusammenpuzzelt.

Für die fehlenden Storen würde ich trotzdem ZWave empfehlen.... ;D ;D ;D
Die können das mit den Tastern von Haus aus 8) .
(Shelly umflashen würde ich ansonsten eher nicht empfehlen; bei aller Kritik an der Gesprächigkeit ist die Firmware an sich mAn. ok - kann aber halt keine Lamellen....)
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

tomix

ZWave kostet das doppelte und dazu kommt dann noch der Empfänger/Sender am Server. Eine KLF 200 Box (IO Homecontrol) hätte ich zumindest schon. Ich weiss noch nicht, muss mal gucken wie stabil es läuft. Bis jetzt hatte ich mit den ESP und Tasmota keinerlei Probleme (egal ob Sonoff, Shelly oder nur einen ESP).

Somfy (IO Homecontrol?) noch viel mehr:
https://www.galaxus.ch/de/s4/product/somfy-funkempfaenger-antriebstechnik-14595467?supplier=4867603

Aber offenbar gibt es Rafflamellenstoren welche eine Empfänger direkt beim Motor verbaut haben. Das wäre eigentlich am elegantesten.

Gruss
tomix

Beta-User

 ;D war nicht ganz so ernst gemeint...

Aber da wir schon OT sind: Die ZWaves hatte ich teilweise gebraucht für günstig Geld geschossen, und so ein Dongle kostet unter 30 Euro, das ist also "vertretbar". Die anderen Lösungen kenne ich nicht aus eigener Anschauung, würde aber niemals ohne Not eine Variante wählen, bei der die Logik am Motor sitzt, 4 "dumme" Strippen an den "Schalter-Ort" sind allemal besser, weil man dann - im Prinzip - ziemlich frei entscheiden kann, was man verbaut und auch keine Probleme bekommt, wenn man doch tauschen muss (oder löten, was mich - neben anderem - von HomeMatic-classic vertrieben hat, und - by the way - auch bei nicht-vernetzten Somfy-Aktoren habe ich schon Kondensatoren nachgelötet).

Just my2ct... ::)
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

tomix

Zitat von: Beta-User am 20 Februar 2022, 09:17:05
würde aber niemals ohne Not eine Variante wählen, bei der die Logik am Motor sitzt, 4 "dumme" Strippen an den "Schalter-Ort" sind allemal besser, weil man dann - im Prinzip - ziemlich frei entscheiden kann, was man verbaut und auch keine Probleme bekommt, wenn man doch tauschen muss
Muss alles beim Storen Platz haben. Das Problem sind meistens nicht die zusätzlichen Drähte, sondern dass am Anschlusspunkt kein Platz für einen ESP ist. Zum Beispiel hinter einer Dreifachsteckdose (3 mal T13 in einem Feld). Daher wanderten die Shellys jeweils in eine kleine Verteilerbox und der Dritte Abgang wurde zugeklebt. Einige Bilder sind im Anhang. Die Kleine Box hat gut Platz neben Profil für die Motorhalterung des Storen. An einem anderen Ort sind drei Storen nebeneinander, soviele Drähte oder Kabel würde ich schon gar nicht durch das eine Rohr bringen. Im Storenkasten ist mehr als genügend Platz. Platz für ein ESP mit 230V-Anschluss und 6 Relais und noch 4 Eingängen (Überwachung der Fensterstellung) wäre da. Aber so was gibt es nicht ab Stange.

Zitat von: Beta-User am 20 Februar 2022, 09:17:05
und - by the way - auch bei nicht-vernetzten Somfy-Aktoren habe ich schon Kondensatoren nachgelötet.
Somfy und Lamellenstoren funktioniert offenbar nicht via PC-Gateway, also auch keine Lösung.

Ich habe heute den ersten Storen, den ich konfiguriert habe auf den Stand der anderen Storen gebracht. Dabei vorallem festgestellt wie wenig ich verstanden habe und diverse Ungereimheiten entdeckt. Dokumentiert habe ich dies mal hier:
https://wiki.fhem.de/wiki/Lamellenstoren_(Rafflamellenstoren),_Venetian_Blinds

Gruss
tomix

Beta-User

Zitat von: tomix am 19 März 2022, 21:29:37
Dokumentiert habe ich dies mal hier:
https://wiki.fhem.de/wiki/Lamellenstoren_(Rafflamellenstoren),_Venetian_Blinds
Vorab mal Danke dafür.
Bin jetzt an zwei Punkten unschüssig:
- braucht es noch Änderungen am attrTemplate (ich hab's nicht aktuell geprüft)
- Es gibt neben Tasmota noch einige weitere Optionen, "venetian blinds" passabel anzusteuern (u.A. mind.: ZWave, HM/HM-IP). Der Wiki-Eintrag ist aber "allgemein" benannt. Soll dein Beitrag jetzt lieber "eine Ebene tiefer" (gliederungstechnisch unter einem Punkt "Tasmota") geschoben werden, oder soll der Beitrag lieber so umbenannt werden, dass in der Überschrift "Tasmota" als Variante kenntlich gemacht wird?

(Sollte ggf. im Wiki-Bereich geklärt werden, ich habe eigentlich im Moment wenig Neigung, was zu den ZWave's zu schreiben und die anderen beiden kenne ich (konkret, CUL_HM allgemein schon) gar nicht aus eigener Anschauung...).
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

tomix

Entweder präzisiere ich, dass nur Tasmota Ansteuerungen behandelt werden oder es wird zumindest mal erwähnt, dass es noch andere Möglichkeiten gibt. Wollte den ersten Teil allgemein halten. Das würde für Letzteres sprechen. Irgendwer kann dann irgendwann immer noch etwas schreiben, einen Links setzen,...

Die aktuelle Lösung ist noch nicht wirklich Praxis tauglich. Der Storen kann zum Beispiel nicht runtergefahren werden und halb aufgekippt werrden. Sondern nur runtegefahren werden und dann aufgekippt werden.

Logischerweise ist der Storen ganz oben aufgekippt (Lamellen horizontal), kippt dann beim schliessen nach zu (vertikal). Dies wird auch korrekt zurück gemeldet. Das Runterfahren des Storen in dieser "Variable" auch, jedoch nicht in derjenigen welche nun im Template genutzt wird (diese wird erst beim erreichen der Position gesendet).

Aktuell ist mir nicht klar, wie man ein fahrrunter und kipp auf 45° überhaupt absenden kann. Ganz runterfahren resetet irgendwie den Kippwinkel. Ich muss das zuerst mal auf der Konsole von Tasmota ausprobieren.

Gruss
tomix

Beta-User

Zitat von: tomix am 30 März 2022, 23:43:49
Entweder präzisiere ich, dass nur Tasmota Ansteuerungen behandelt werden oder es wird zumindest mal erwähnt, dass es noch andere Möglichkeiten gibt. Wollte den ersten Teil allgemein halten. Das würde für Letzteres sprechen. Irgendwer kann dann irgendwann immer noch etwas schreiben, einen Links setzen,...
Fände auch Variante 2 besser, kannst du das bitte in Angriff nehmen?

Zitat
Die aktuelle Lösung ist noch nicht wirklich Praxis tauglich. Der Storen kann zum Beispiel nicht runtergefahren werden und halb aufgekippt werrden. Sondern nur runtegefahren werden und dann aufgekippt werden.
Das kommt mir nicht dramatisch vor, allerdings sind die "echten" Jalousie-Aktoren (zumindest die Fibaro-ZWave-Modelle) in diesem Punkt deutlich besser (und afaik auch die Homematic-(IP-) Varianten). Da kann man gleichzeitig/während des Fahrens auch einen Ziellevel für die Lamellen nach der Fahrt mit angeben.

Zitat
Aktuell ist mir nicht klar, wie man ein fahrrunter und kipp auf 45° überhaupt absenden kann. Ganz runterfahren resetet irgendwie den Kippwinkel. Ich muss das zuerst mal auf der Konsole von Tasmota ausprobieren.
Das wäre mAn. mit den Tasmota-Entwicklern direkt zu klären. Ich finde das nicht dramatisch, wer sowas mit FHEM umsetzen will, kann z.B. ein sleep (in der "warte auf einen Event"-Variante) auf den "stop-Event" ansetzen und dann die Lamellenposition zu diesem Zeitpunkt nachführen.
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

tomix

Das ganze läuft nun seit 2022. Bei der zweiten Etappe des Fensterersatzes kamen dann zur Ansteuerung noch zwei ESP mit jeweils 8 Relais zum Einsatz. Der Empfang von diesen beiden Modulen ist aber grenzwertig. Ich hätte eine Antenne verbauen sollen.

Die Tasmota Firmware 14.2.0 hat einen Bug, ShutterStopOpen<x> entspricht ShutterStopClose<x>, ob die aktuelle Firmware diesen auch noch hat weiss ich nicht.

Nun aber mal die Frage in die Runde. Nutzt irgendwer auch ESPs zur Ansteuerung von Lamellenstoren?

Ich werde demnächst die Hardware des FHEM-Server wechseln. Dabei wollte ich dies nochmals angehen, so dass es richtig funktioniert (also z.B. die Position nachgeführt wird während dem Verfahren).

Gruss
tomix