NEWS
Test vis-fancyswitch 1.1.0
-
Hey All,
da ich die Fancyswitch-Widgets mit Boolean Datenpunkten verwenden wollte und auch noch andere kleinere Problemchen hatte habe ich die mal unter die Lupe genommen.
Von daher wäre super wenn andere nutzer auch die 1.1.0 vom Github testen könnten.
Danke
-
Installation ging problemlos.
Ich setzte die nicht produktiv ein.
Hast Du etwas spezielles zum Testen?
Grüße
-
Mit den Buttons kann man treu/false bzw 0/1 Datenpunkte Schalten mit korrekter Anzeige.
-
Hallo apollon77
Habe mal einwenig gespielt.
Getestet "ctrl - Bool Switsch light Off/On" und "ctrl - Bool - Wippe dunkel Aus/Ein".
(Die Namensgebung könnte man auch mal überarbeiten )
Bei beiden Widgets sind die Ergebnisse gleich.
Test mit HM-Taster:
Im Widget
"Falsch-Wert" -> false
"Wahr-Wert" -> true
Schalten klappt.
Im Widget
"Falsch-Wert" -> 0
"Wahr-Wert" -> 1
Fehler: Widget schaltet den Aktor ein und geht sofort wieder auf "aus" OHNE den Aktor wieder auszuschalten!
Test mit boolsche Variable:
Tests wie oben. Beide Varianten schalten die Variable richtig.
Jetzt wird es etwas kompliziert
Aufbau:
Beide Widgets auf gleicher View.
Beide Widgets mit identischer boolscher Variable verbunden.
Ein Widget mit den Werten 0/1
Das andere mit false/true
Wird die Var von einem anderen Punkt geändert, zeigen beide fancyswitch den jeweils richtigen Zustand.
Wird Widget (0/1) betätigt ändert sich auch Widget (false/true)
Wird Widget (false/true) betätigt reagiert Widget (0/1) NICHT.
Variable wird immer richtig gesetzt.
–-------------------------------------------------
Auto aus (ms)
Var=false -> Widget auf ON -> Var=true -> Zeit -> Var=false
Var=true -> Widget auf OFF -> Var=false -> Zeit -> Var=true
"Auto aus" heist also nicht automatisch auf aus (false)
Entweder Funktion oder Bezeichnung falsch.
Ich hoffe ich habe mich etwas verständlich ausgedrückt
Grüße
-
Hi,
Danke für diese Ausführlichen tests. Das ein Aktor der true/false als State-Werte versteht mit 0/1 nichts anfangen kann ist glaube ich das Thema hier.
Das mit 0/1 macht nur Sinn wenn der Aktor auch die Werte 0/1 versteht. Also man muu im Widget die Werte eintragen die im State-Wert auch landen sollen.
Von daher ist das glaube schon korrekt so, weil das Widget die Werte vergleicht und wenn der Wert nicht zu an oder aus passt nimmt er "aus" VOn daher scheint das in dem Szenario für mich korrekt zu sein.
Ingo F
-
Hi,
Danke für diese Ausführlichen tests. Das ein Aktor der true/false als State-Werte versteht mit 0/1 nichts anfangen kann ist glaube ich das Thema hier.
Das mit 0/1 macht nur Sinn wenn der Aktor auch die Werte 0/1 versteht. Also man muu im Widget die Werte eintragen die im State-Wert auch landen sollen.
Von daher ist das glaube schon korrekt so, weil das Widget die Werte vergleicht und wenn der Wert nicht zu an oder aus passt nimmt er "aus" VOn daher scheint das in dem Szenario für mich korrekt zu sein. `
Na ja, AnsichtssacheAlle anderen Widgets die ich kenne, regeln das von alleine.
Denen ist egal ob im Datenpunkt true/false oder 0/1 erwartet wird.
Neueinsteigern ist ist so etwas schwer zu vermitteln.
Und wenn man schon dabei ist, sollte man doch die Widgets vereinheitlichen. Oder?
Grüße
-
Regeln die das "screibend" wirklich selbst?
Die Widgets an die ich mich erinnere die behandeln das "lesend" pot. korrekt … aber schreibend? Ich denke nicht das Widgets den Datentyp des Datenpunktes prüfen und danach entscheiden was Sie reinschreiben, oder wirklich? hast Du ein Beispiel? Dann schaue ich da mal rein
Auto aus (ms)
Var=false -> Widget auf ON -> Var=true -> Zeit -> Var=false
Var=true -> Widget auf OFF -> Var=false -> Zeit -> Var=true
"Auto aus" heist also nicht automatisch auf aus (false)
Entweder Funktion oder Bezeichnung falsch. `
Sollte eher "Auto-Switch-zurück" heissen
PS: Wenn du in den STATE von nem HM-Akttor (was an sich Boolean ist) eine "1" reinschreibst was pssiert denn dann? Schaltet er? Was steht denn danach im Datenpunkt wenn der "Ack"-Wert zurückommt? Immer noch die 1 oder dann ein TRUE?
-
hast Du ein Beispiel? Dann schaue ich da mal rein `
Eigentlich alle anderen bool Widgets.Da hat man gar keine Möglichkeit Werte für wahr/falsch einzugeben.
Wenn du in den STATE von nem HM-Akttor (was an sich Boolean ist) eine "1" reinschreibst was pssiert denn dann? Schaltet er? `
Kann ich über ioBroker/Objekte nicht machen. Bei Logikwert kann man nur Häkchen setzen.ioBroker scheint da wohl auch noch einiges zu korrigieren.
Variablen als "Logikwert" deklariert kann man, über Objekte, nur über Häkchen true/false setzen.
Variablen als "gemischt" deklariert nehmen 0/1 und false/true (verknüpfte Widgets, bei mir "metro - tile Toggle", reagieren richtig)
Dem metro Widget ist es völlig egal welchen Datenpunkt ich ändere Logik, gemischt, Aktor:State.
@apollon77:Was steht denn danach im Datenpunkt wenn der "Ack"-Wert zurückommt? Immer noch die 1 oder dann ein TRUE? `
Den "Ack"-Wert habe ich noch nicht begriffen. Immer mal wieder gelesen aber noch nie einen "Aha"-Effekt gehabt :oops:Die Felder in den "fancyswitch" machen wohl Sinn.
In der CCU kann man Werte für boolsche Variablen angeben. Wahr="Lampe an", Falsch="Lampe aus".
Warum auch immer die das tun, aber für diese User sind die Felder wohl Gold wert.
Schön wäre wenn man in Falsch/Richtig-Wert nichts einträgt funktioniert es wie bei allen anderen Widgets.
Ansonsten Wertevergleich.
Genial wäre natürlich
"xyz" = Wertevergleich
wahr/true/0 immer "an"
falsch/false/1 immer "aus" :shock:
duck und wech
-
hast Du ein Beispiel? Dann schaue ich da mal rein `
Eigentlich alle anderen bool Widgets.Da hat man gar keine Möglichkeit Werte für wahr/falsch einzugeben. `
Ich denke weil die halt von booloean States ausgehen und damit immer true/false schreiben.
Das Widget hier kann halt quasi beliebige Werte (du könntest auch "blubb" und "fasel" als Werte für true/false angeben und es sollte gehen. Damit kann der mehr als die anderen Widgets.
Den "Ack"-Wert habe ich noch nicht begriffen. Immer mal wieder gelesen aber noch nie einen "Aha"-Effekt gehabt :oops: `
Eigentlich ganz einfach.
Ack=true bedeutet das dieser Wert vom Adapter kommt und damit "echt" ist weil er die "echte "aktuelle Einstellung/Daten des Aktors wiederspiegelt.
Bei Ack=false ist es so das ein Skript oder wer auch immer gern hätte das der Aktor diesen angegeben Wert setzt. Er ist also nicht vom Aktor bestätigt und kommt auch nicht vom Aktor, sondern der Aktor soll den Wert setzen.
Üblicherweise wird der Aktor (oder das Skript) diesen Wert nehmen und versuchen zu setzen und am Ende einen neuen Wert mit Ack=true als neuen "bestätigten Wert" wieder zurücksenden. Das kann der gleiche Wert sein wie angefragt oder aber nicht (kann ja sein das der Aktor sagen "ne den Wert kann ich gerade nicht setzen, aber ich setzte was anderes" (nein, 40 Grad Celsius kann ich nicht, mein Wertebereich geht nur bis 35 Grad)
Schön wäre wenn man in Falsch/Richtig-Wert nichts einträgt funktioniert es wie bei allen anderen Widgets.
Ansonsten Wertevergleich. `
Naja in dem Fall sind die Standardwerte 0 und 1 und das war vor meiner Änderung so. Also werden leere Felder auch weiterhin mit 0/1 behandelt und nicht true/false. Hier inkompatibel zu anderen Widgets, aber rückwärtskompatibel zu sich selbst
Genial wäre natürlich
"xyz" = Wertevergleich
wahr/true/0 immer "an"
falsch/false/1 immer "aus" :shock: `
Dann müsste ich aber wissen was am Ende geschrieben werden soll. Also müsste den Datentyp des States raussuchen … hm ...