FS20Di Dimmer mit Dimmer-Template?

Begonnen von ulli_r, 06 Dezember 2024, 17:49:22

Vorheriges Thema - Nächstes Thema

ulli_r

Hallo FHEMapp-Interessierte.

Ich hatte versucht mit Hilfe des Dimmer-Templates einen FS20Di anzusprechen.

Habe ich nicht hinbekommen.
Das Device reagierte nicht auf die Veränderungen des sliders.

Irgendwann hatte ich verstanden warum:

Der vom slider mittels %v gelieferte Wert muss mal so haargenau auf
eine der 16 Dimmer-Prozent-Stufen passen, außerdem muss der string "dim" davor und
der string "%" da hinter stehen. Sonst tut sich nichts.

Die Abstände der dim-Stufen sind über den Einstellbereich nicht identisch,
mal 7%, mal 6%, somit klappt eine pauschale Skalierung via min-max-steps nicht.

Ersatzweise wollte ich ein Menü nehmen, etwa wie bei FHEMWEB bei diesen Dimmern.

Wenn genügend Eintäge vorhanden sind, dass die Höhe des Bildschirms überschritten wird,
gibt es einen scroll-Balken zusätzlich, der allerdings die Einträge im dropdown größtenteils
überdeckt (siehe Anhang). Ist allerdings von der Auflösung, bzw. Zoomstufe abhängig.

Falls jemand Ideen hat....
Gruß vom Ulli

binford6000

Moin Ulli,
ich stand bei meinen Rollläden vor einem ähnlichen Problem. Ich habe das dann so gelöst,
dass ich mir für die am häufigsten benutzen Positionen eine Auswahlliste gebaut habe:

Du darfst diesen Dateianhang nicht ansehen.

Das passt dann auch auf mobilen Devices auf den Screen. Ist nicht die Lösung für dein Problem aber evtl. ein möglicher Workaround.

VG Sebastian

sd

Hallo Ulli
es gibt beim Slider eine Einstellung der Schrittgröße (step). Bei mir sieht das so aus:
dimmer-brightness::set dimmer brightness %v:%n():success:1:254:1:false::falseKönnte bei Dir so aussehen:
dimmer-brightness::set dimmer brightness %v%:%n():success:1:100:16:false::false
Gruß
Steffen

jemu75

Hallo Ulli,

kannst du mir bitte nochmal kurz Bescheid geben, ob der Slider mit der Konfiguration, so wie von sd vorgeschlagen, funktioniert.
Falls Du noch Hilfe benötigst, melde dich gern.

Beste Grüße
Jens  :)

ulli_r

Hallo zusammen.

Etwas verspätet meine Antwort(en).
Habe mich erst mal intensiv um die Umstellung der Heizung von FHT, FHZ, Homeputer Studio nach FHEM mit MAX! bemüht.
Sieht ganz gut aus.

@binford6000
Hallo Sebastian.

Vielen Dank für den Input.

Habe ich bereits zuvor probiert, auch mit Kürzung der einzelnen Texte. 16 Stufen sind eh schon "holperig", weniger gefällt mir nicht so gut.

@sd, @jemu75
Hallo sd,
Hallo Jens

Danke für den Input bzw. die Nachfrage.

Nein, nicht funktionell.

Sobald du FS20DI als Modell gewählt hast stehen exakt diese states zum dimmen zur Verfügung:

ZitatSet (aus Help for FS20)

    set <name> <value> [<time>]

    where value is one of:
        dim06% dim12% dim18% dim25% dim31% dim37% dim43% dim50%
        dim56% dim62% dim68% dim75% dim81% dim87% dim93% dim100%

Dieses hier
Zitat von: sd am 07 Dezember 2024, 20:55:42dimmer-brightness::set dimmer brightness %v%:%n():success:1:100:16:false::false
erzeugt folgende Werte: 1,17,33,49,65,81,97.

Somit kann, mit entspechendem Prefx und Suffix, genau nur dim81% angesteuert werden.
Bei den anderen Outputwerten passiert nix.

Die Abstände innerhalb der 16 Stufen sind nicht linear, mal 6%, mal 7%.

Nun könnte man auf die Idee kommen, Schrittweite=1 wäre gut, aber nein, da hast du zwischen den zulässigen states ordentlich "Leerlauf" und musst genau "zielen". Nicht prktikabel.



jemu75

#5
Hmm,

das ist in der Tat etwas kniffelig, da nur die festen Werte zulässig sind. Man könnte statt mit einem Slider mit zwei Buttons (- / +) arbeiten und dann mit entsprechend vielen Bedingungen arbeiten.

Bei dem "+" Button könnte das wie folgt aussehen:
["dimmer-value:dim06%:set dimmer dim12%", "dimmer-value:dim12%:set dimmer dim18%", ...]
Bei dem "-" Button könnte das wie folgt aussehen:
["dimmer-value:dim100%:set dimmer dim93%", "dimmer-value:dim93%:set dimmer dim87%", ...]
Optisch könnte man das analog zu den Standardvorlagen für "thermostat" oder "blind" gestalten.
Standardvorlagen

Wie Buttons konfiguriert werden habe ich hier dokumentiert
Level Element Button click

Grüße
Jens :)

Nobbynews

Meine beiden FS20-Dimmer steuere ich über einen Slider per MQTT über folgendes notify:
MQTT2_Mobil:.* {
my $device = substr($EVTPART0,0,-1);
my $payload = substr($EVENT,length($device)+2,length($EVENT));
if (($device eq "Esstisch" || $device eq "Sterne") &&
    ($payload ne "on" && $payload ne "off")){
  my $dimWert = int($payload/6.25);
  $payload = int($dimWert * 6.25);
  my $temp = "off";
  if ($payload != 0) {
   $temp = "dim".$payload."%";
   }
  $payload = $temp;
}

fhem ('set '.$device.' '.$payload);
fhem ('setreading MQTT2_Mobil state '.$device.' '.$payload);
}
Payload geht von 0 bis 100.
Vielleicht hilft es ja weiter.

sd

Zitat von: ulli_r am 12 Dezember 2024, 16:21:12Hallo zusammen.

...
@sd, @jemu75
Hallo sd,
Hallo Jens

Danke für den Input bzw. die Nachfrage.

Nein, nicht funktionell.

Sobald du FS20DI als Modell gewählt hast stehen exakt diese states zum dimmen zur Verfügung:

ZitatSet (aus Help for FS20)

    set <name> <value> [<time>]

    where value is one of:
        dim06% dim12% dim18% dim25% dim31% dim37% dim43% dim50%
        dim56% dim62% dim68% dim75% dim81% dim87% dim93% dim100%

Dieses hier
Zitat von: sd am 07 Dezember 2024, 20:55:42dimmer-brightness::set dimmer brightness %v%:%n():success:1:100:16:false::false
erzeugt folgende Werte: 1,17,33,49,65,81,97.

Somit kann, mit entspechendem Prefx und Suffix, genau nur dim81% angesteuert werden.
Bei den anderen Outputwerten passiert nix.

Die Abstände innerhalb der 16 Stufen sind nicht linear, mal 6%, mal 7%.

Nun könnte man auf die Idee kommen, Schrittweite=1 wäre gut, aber nein, da hast du zwischen den zulässigen states ordentlich "Leerlauf" und musst genau "zielen". Nicht prktikabel.




probiere es doch mal mit dem Befehl
{fhem "set dimmer dim".int(%v)."%"}
sollte mit allen gehen ausser dem 1. Wert. Ich wollte noch eine Konvertierung mit sprintf("%02d,%v) einbauen, aber da habe ich immer Syntaxfehler bekommen. Vielleicht ist ein anderer schlauer.
Gruß
Steffen

ulli_r

@sd, @Nobbynews
Hallo Steffen.
Hallo Norbert.

In der Tat ist Integer von %v bei Schrittweite 6,25 die Lösung.
Ausser bei %v=0.
Das funktioniert ohne notify in der slider-Definition.
Vielleicht müsste man eine 2. Definition mit Value=0 und Ausgabe "aus" erstellen.

Soweit danke für die "Starthilfe", auf PERL-Code in der slider-Definion bin ich allein nicht drauf gekommen.

[/quote]

probiere es doch mal mit dem Befehl
{fhem "set dimmer dim".int(%v)."%"}
sollte mit allen gehen ausser dem 1. Wert. Ich wollte noch eine Konvertierung mit sprintf("%02d,%v) einbauen, aber da habe ich immer Syntaxfehler bekommen. Vielleicht ist ein anderer schlauer.
[/quote]

sd

Es gibt auch noch eine Lösung mit
sprintf("%02d,%v)Die klappt auch mit "0". Allerdings habe ich da immer einen Syntaxfehler bekommen. Ich vermute wegen der Zeichenkette? Aber da bin ich nicht weiter gekommen.
Aber Du kannst auch eine if-Anweisung nehmen.
Gruß
Steffen