Hallo zusammen,
Für einen Dummy habe ich
attr setList pct:on,off
gesetzt, damit ich auch numerische Werte über Alexa diktieren kann (so wie an verschiedenen Stellen hier vorgeschlagen).
Allerdings erscheint dann in readings state "pct 35".
Alle meine darauf aufbauenden Routinen erwarten aber nur die Zahl 35.
Wie bekomme ich es hin, dass im state nur die Zahl erscheint?
Viele Grüße,
Heiko
Hallo,
ich habe dies über ein userReadings "pct" gelöst.
pct {ReadingsNum($name,"state","0")}
Viele Grüße
Jürgen
@heikoh081: "damit ich auch numerische Werte über Alexa diktieren kann" ist auf dem ersten Blick verwirrend. pct:on,off sagt FHEM, dass die Argumente zu pct on oder off sein sollten. Das wird nicht strikt geprueft, per Kommandozeile (und damit Alexa) werden auch andere Werte zugelassen, aber in FHEMWEB kann man nur on und off auswaehlen. Ich wuerde eher pct:slider,1,1,100 setzen, allerdings habe ich das mit Alexa nicht getestet.
@juemuc: wenn ich dieses Attribut setze, dann kriege ich einen zusaetzlichen Reading pct mit dem Wert 38. Um den Wert in state zu haben, wuerde ich
attr Dummy state {ReadingsNum($name,"state","0")}
setzen
Ja, das zusätzliche Reading war gewollt ;D
Viele Grüße
Jürgen
Danke für eure schnellen Antworten.
Zitatattr Dummy stateFormat {ReadingsNum($name,"state","0")}
ist genau das, was ich benötige.
pct:slider,1,1,100
habe ich übernommen; im state erscheint eine reine Zahl aber nur in Verbindung mit oben genanntem stateFormat.
Viele Grüße,
und bleibt alle gesund,
Heiko
Ich muss den Beitrag nochmal eröffnen.
Ich möchte, dass mein Dummy über Alexa folgende Werte annehmen kann:
Standby On Off 10 20 30
Diese Werte sollen in den state geschrieben werden.
Standby ist eine Zwischenstufe und wird nie über Alexa diktiert, nur "an", "aus", "10 Prozent", "20 Prozent", "30 Prozent".
Problem bei
attr Dummy stateFormat {ReadingsNum($name,"state","0")}
ist, dass zwar die Zahlen tatsächlich nur als Zahlen erscheinen, dafür aber bei
Standby On Off
immer eine 0 erscheint.
Dadurch funktionieren bereits bestehende, nachgelagerte DOIFs nicht mehr.
Da ich gerade 136 Dummies von HA Bridge auf FHEMConnecotr umstelle, ist die Änderung der DOIFs keine Option, vielmehr müssen die Dummies die Werte so darstellen, wie ich das bisher hatte.
Viele Grüße,
Heiko
Wenn ich das DOIF so umbaue:
[Dummy:"10"]
statt
[Dummy] eq "10"
wird das pct in "pct 10" ignoriert, so dass es wie gewünscht funktioniert.
Nun würde mich aber, falls möglich, schon interessieren, ob man das pct im state nicht auch direkt im Dummy wegfiltern kann.
Wenn ich FHEM Connector richtig verstehe, brauche ich in der setList das pct:, damit Alexa überhaupt Zahlen annimmt.
Gebe ich stattdessen "on off 10 20 30" an, akzeptiert Alexa die Zahlen als Befehl nicht.
Viele Grüße,
Heiko
Falls es reicht, das Internal STATE zu setzen, dann sollte Folgendes funktionieren:
attr Dummy stateFormat { my $s=ReadingsVal($name,"state","0");; $s =~ s/pct //;; $s}
Falls auch das Reading state umgebaut werden soll, dann:
attr Dummy userReadings state { my $s=ReadingsVal($name,"state","0");; $s =~ s/pct //;; $s}
Vielen Dank.
Mit diesen beiden attr funktioniert es wie gewünscht.
Viele Grüße,
Heiko
Hallo zusammen,
nun, 1 Jahr später (wow, Tempus fugit), möchte ich im state nicht nur den String "pct" entfernen, sondern auch den String "RGB".
Wie müsste ich diese Ausgangsbasis ergänzen?
attr Dummy stateFormat { my $s=ReadingsVal($name,"state","0");; $s =~ s/pct //;; $s}
Viele Grüße,
Heiko
So ?
{ my $s=ReadingsVal($name,"state","0");$s =~ s/pct //;$s =~ s/RGB //;$s}
Aus Interesse kannst du mal ein List von dem Dummy zeigen ?
Gruß
Thomas
Zitat von: TomLee am 15 März 2021, 22:21:08
Aus Interesse kannst du mal ein List von dem Dummy zeigen ?
Internals:
FUUID 5e07713f-f33f-2a61-8ac4-660474e5586fc0d6
NAME AlexaLichtSchlafzimmerBett
NR 3883
STATE off
TYPE dummy
READINGS:
2021-03-16 18:06:28 state off
Attributes:
alexaName Licht Schlafzimmer Bett
comment ohne Farbsteuerung:
setList pct:slider,1,1,100
mit Farbsteuerung:
pct:slider,1,1,100 RGB:colorpicker,RGB
aus stateFormat den String pct entfernen:
{ my $s=ReadingsVal($name,"state","0"); $s =~ s/pct //; $s}
group Alexa
room Homematic
setList pct:slider,1,1,100 RGB:colorpicker,RGB
sortby 2101
webCmd RGB:RGB ff0000:RGB 00ff00:RGB 0000ff:toggle:on:off
Ist ein Dummy für den Alexa Fhem Connector.
Ich versuche, eine RGBW-Lightify-Lampe via zigbee2mqtt anzusteuern.
Wenn die setList nur pct:slider,1,1,100 enthält, dann ist der state des Dummys z.B. "pct 50".
Allerdings habe ich bei meinen heutigen Tests festgestellt, dass "pct 50" gar nicht mehr erscheint, sobald ich die setList um RGB:colorpicker,RGB ergänze.
Wenn ich "Alex, stelle Licht Schlafzimmer Bett auf 50% sage", wird im Dummy auch der RGB-Wert verändert, und nicht mehr der pct-Wert gesetzt.
In der Lampe wird das gar nicht umgesetzt.
Ich habe auch noch die Probleme, dass brightness bis 255 geht, bei Alexa = 100% folglich nicht mal 50% der Leuchtkraft erreicht werden.
Bin momentan etwas ratlos, wie ich das umsetze, dass ich sowohl dimmen als auch die Farbe per Sprache setzen kann.
Viele Grüße,
Heiko
Ich habe für mein Problem im letzten Beitrag ein neues Thema gestartet, da es off topic zu dieser Problemstellung ist.
https://forum.fhem.de/index.php/topic,119632.0.html
Das Umschreiben des state ist gelöst.
man kann sich das leben deutlich einfacher machen wenn man nicht versucht alles mögliche in state zu quetschen sonder eigene readings verwendet. dasfür gibt es im dummy readlingList. eigene und richtig benannte readings machen auch die alexa konfiguration einfacher oder sogar überflüssig.