mqtt2.speech.template:TINT GU-10 white

Begonnen von TomLee, 03 Februar 2020, 18:34:44

Vorheriges Thema - Nächstes Thema

TomLee

Natürlich ist es kurios, darum gibts ja den andern Thread und bei mir ein userreadings.

Ohne homebridgemapping und mit genericeDeviceType light ist nur ein/ausschalten möglich, es wird ein Schalter angezeigt, auf Prozent stellen (per Sprache) geht nicht -> Anton unterstützt das nicht.

Mit
On=state,valueOn=ON,valueOff=OFF
ist kein Unterschied zu ohne homebridgemapping

Um 100% sicher zu sein lösche ich das Gerät noch vor/nach (das ist egal) dem Neustart von alexa-fhem und dann wird die Gerätesuche angestossen. Bei der Home App kann man nix löschen, dort wird nur ein restart von homebridge gemacht.

Beta-User

Fasse also zusammen:

Bisher beste Variante ohne userReadings war
Brightness=brightness::brightness,minValue=0,maxValue=100,max=255Die nächste Preisfrage ist, ob das nur für alexa gilt oder allgemein?

Dein Vorschlag wäre, das zu ergänzen um das userReadings, dann gibt es auch "Knöpfe" in der app, richtig?

Wäre dann (vereinfacht) so:
attr DEVICE homebridgeMapping Brightness=sr_brightness,cmd=brightness,max=255,minValue=0,maxValue=100
attr DEVICE userReadings sr_brightness:brightness.* {sprintf("%1$d", ReadingsNum("$name","brightness",0)/255*100)}


Vereinfacht deswegen, weil das userReadings neu setzt und nicht erst prüft, ob schon was (anderes) da steht... Für die attrTemplate-Variante bedeutet das, dass wir Perl/regex brauchen, um den aktuellen Inhalt des Attributs zu lesen und erforderlichenfalls zu ergänzen; völlig fehlerfrei wird das vermutlich nie gehen, weil sich komische Überschneidungen schlecht voraussagen lassen...

Dann wäre wieder die Frage, ob das nur für alexa relevant ist, oder ob alle diesen Umweg brauchen und was wir machen, wenn alexa das anders will als homebridge (oder wie auch immer das jeweils heiß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

TomLee

Jetzt wird aus kurios mysteriös  8)

Das sprintf ist nicht korrekt, in sr_brightness steht ein Fehler, kein Wert:

Error evaluating MQTT2_zigbee_gu10_Test userReading sr_brightness: Global symbol "$d" requires explicit package name (did you forget to declare "my $d"?) at (eval 70855) line 1.

In der Alexa-App wird der Schalter und der Slider aber angezeigt das Gerät zeigt "Gerät reagiert nicht" an, ein aus schalten (über den Schalter) ist nicht möglich, wenn man mit dem Slider auf 100 Prozentwert stellt wird trotz das das Gerät nicht reagieren soll brightness (hä :o ) auf 255 gestellt, der Slider springt aber immer zurück auf 0 egal auf welchen Wert man gestellt hatte.


Mglw. liegts ja einfach nur an Amazon, schliesslich wurde der Slider vorhin ja auch ohne userreadings kurzzeitig angezeigt.

Beta-User

Das ist vermutlich dann weniger mysteriös, sondern tatsächlich ein Fehler, hatte Infos von hier wohl fasch verstanden: https://perldoc.perl.org/functions/sprintf.html...

Schlicht das $ raus sollte bei sprintf weiterhelfen:
attr DEVICE userReadings sr_brightness:brightness.* {sprintf("%1d", ReadingsNum("$name","brightness",0)/255*100)}

Dass Hin- und Rückweg unterschiedlich sind (sr_brightness und brightness) ist völlig klar, nur klappt das eben nicht, wenn der Reading-Wert bullshit enthält...
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

TomLee

#19
attr DEVICE userReadings sr_brightness:brightness.* {sprintf("%1d", ReadingsNum("$name","brightness",0)/255*100)}

Hätte den Nachteil das wenn der Wert 254 von z2m zurückkommt sr_brightness dann auf 99 springt (es also keine Status 100 gibt), also doch mit 254 rechnen.

Beta-User

"%.0f" scheint die bessere Variante zu sein...

(Ich hätte den Code gerne so, dass er auch mit Devices funktioniert, die 255 "können").

Eben habe ich ein update ins svn geschubst, da ist das sowie als experimentelles feature die Erweiterung eines vorhandenen userReadings-Attributs drin, allerdings beides erst mal auskommentiert. Testen wäre mal wieder gut...

(Ich sollte mich wohl auch nochmal einlesen, was diese mappings betrifft, irgendwie werde ich den Verdacht nicht los, dass es ohne den Umweg userReadings gehen müßte).
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

TomLee

Hab die 3 # rausgenommen und das normale homebridgemapping auskommentiert, das Template angewendet und alles klappt wie vorgesehen :)

Beta-User

Thx.
Hat man also nichts an vorhandenen userReadings, geht erst mal alles gut. Um die weiteren Varianten auszutesten:

Kannst du auch nochmal nachsehen, ob mehrfaches Anwenden des attrTemplate mit folgenden Varianten jeweils klappt, wobei Zeile 84 auskommentiert bleiben darf:

- wenn nur der "neue" userReadings-Eintrag gesetzt ist; (=> keine Änderung)
- ein anderes userReading angelegt ist; (=> ergänzt mit neu, Komma-getrennt)
- ein anderes + der "neue" userReadings-Eintrag da sind? (=> keine Änderung)

Danke vorab!
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

TomLee

Wenn man Zeile 84 wieder auskommentiert ist alles wie du erwartest.

Wen bei Punkt 2 das userReadings ergänzt wird wäre es optisch ansprechender wenn das mit Zeilenumbruch passiert :P

TomLee

Mit

Brightness=brightness::brightness,minValue=0,maxValue=100,max=255,factor=0.39216

passt alles.

TomLee

Stop.

Bei homekit/siri stimmt was nicht, testen kann ich aber erst später.

Beta-User

Egal wie: Erst mal Danke für's austesten bis dahin!

Eventuell müssen wir das auch (teilweise) unterschiedlich machen für unterschiedliche sr-Varianten (oder besser: die Maintainer jeweils auf Probleme hinweisen, damit das für alle möglichst unproblematisch und einheitlich funktioniert).

Wenn wir damit dann hoffentlich bald soweit durch sind: Was wäre das nächste Thema? Farbtemperatur?
Ich habe dazu im Hinterkopf, dass man (für manche sr-Varianten?) einen normierten Wertebereich braucht. Wenn dem so wäre, müßte man ein attrTemplate bauen, das das parametrisiert ergänzt... (aber vorher sollten "wir" die Logik dazu verstehen...)

("blind" wäre auch noch ein Thema, da brauchen wir ein weiteres für "inverted"; das sollte eigentlich schnell gehen).
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: TomLee am 06 Februar 2020, 09:42:10
Stop.

Bei homekit/siri stimmt was nicht, testen kann ich aber erst später.
Verdacht: Wir brauchen da zusätzlich das "On=state,valueOn=ON,valueOff=OFF"
(Wäre zwar schade, weil wir dann sehr viel mehr Logik brauchen zur unterschiedlichen Handhabung von groß- und kleingeschriebenen states, aber dann ist das halt so...)
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

TomLee

ZitatWenn wir damit dann hoffentlich bald soweit durch sind

Ich glaub nicht dran und bei den Lampen gibts keine Farbtemperatur hab nur brightness.


Nochmal zurück, gestern mit userreadings hat mit Alexa (per Sprache und Schalter/Slider) und in der Home-App per Schalter/Slider alles geklappt. Dazu muss ich sagen das ich Siri nie nutze per Sprache hatte ich gar nicht getestet, kam mir gar nicht in den Sinn.

Heute habe ich ein update von homebridge-fhem version 0.5.3 auf 0.5.10 gemacht, jetzt (mit dem userreadings) geht kein ein/ausschalten mehr per Schalter und mit dem Slider auf einen Wert stellen klappt auch nicht mehr, der Slider schaltet die Lampe an auf den gewünschten Wert springt dann aber in x-Schritten zurück auf 0% und schaltet die Lampe aus.
Per Sprache kann man ein/auschalten und einen Prozentwert stellen, kein Problem.
Nehm ich hier ( zum userreadings) das On=state,valueOn=ON,valueOff=OFF rein. Ist alles wie oben beschrieben nur das mit dem Schalter ein/ausschalten möglich ist.

Jetzt zum factor=0.39216
 Brightness=sr_brightness,cmd=brightness,max=255,minValue=0,maxValue=100,factor=0.39216

In der Alexa App ist es Glückssache den Schalter/Slider angezeigt zu bekommen, wenn sie angezeigt werden sind 39% (auch per Sprache) brightness 254.
 
In der Home App springt der Schalter immer zurück zum Ein-Zustand, tippt man mal schneller bekommt man es irgendwie hin doch einzuschalten.
Mit dem Slider sind 39% (und Sprache) auch brightness 254.


Mit

Brightness=brightness,cmd=brightness,max=255,minValue=0,maxValue=255,factor=0.39216
On=state,valueOn=ON,valueOff=OFF


In der Alexa-App ist es weiterhin Glückssache das der Slider/Schalter angezeigt und wenn, ist er nach kurzer Zeit verschwunden und wird gesucht. Aber sliden konnte ich einmal und 100 % sind brightness 254, auch per Sprache  :)

In der Home-App ist ein/ausschalten problemlos möglich, beim sliden sind 39% weiterhin brightness 254. :-\


Beta-User

Ähm, das muß ich erst mal versuchen zu verstehen....

MAn. müßte es (ohne irgendwelche userReadings! 100%*factor 0.39=39%...) so sein:
Brightness=brightness::brightness,minValue=0,maxValue=100,max=255,factor=0.39216 On=state,valueOn=ON,valueOff=OFF
Diesen Code sehe ich hier aber nicht?!? Tippsfehlerchen ::) ?

Schade mit der Farbtemperatur, aber vielleicht meldet sich dazu ja jemand?
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