Lamellenstoren, Venetian Blinds: Lamellenwinkel einstellen, via Tastern steuern

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

Vorheriges Thema - Nächstes Thema

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