NEWS
Test Adapter iQontrol 2.0.x Vis (Entwicklungs-Thread)
-
@s-bormann sagte in Test Adapter iQontrol 1.11.x Vis:
verwendeten regExes, dann mach ich das mit dem Drop-Down
-
@s-bormann sagte in Test Adapter iQontrol 1.11.x Vis:
@dslraser sehr gut. Schick mir doch bei Gelegenheit mal die verwendeten regExes, dann mach ich das mit dem Drop-Down.
Ich habe mir jetzt zwei getrennte Listen für die Batterien in Volt gemacht.
Einmal 1.5 Volt Batterien und einmal 3 Volt Batterien
Hier ein Beispiel für die 3 Volt Batterien- 3 Volt oder 3.1 Volt
Icon 1
./images/icons/fluent/fluent_battery_full.png
Caption
$&
String that will be replaced by icon 1
^(3.[[1])|^(3)
- 2.9 Volt
Icon 2
./images/icons/fluent/fluent_battery_75.png
Caption
$&
String that will be replaced by icon 2
^(2.[[9])
- 2.8 Volt
Icon 3
./images/icons/fluent/fluent_battery_50.png
Caption
$&
String that will be replaced by icon 3
^(2.[[8])
- 2.7 Volt
Icon 4
./images/icons/fluent/fluent_battery_25.png
Caption
$&
String that will be replaced by icon 4
^(2.[[7])
- 2.6 Volt oder 2.5 Volt
Icon 5
./images/icons/fluent/fluent_battery_10.png
Caption
$&
String that will be replaced by icon 5
^(2.[[6])|^(2.[[5])
- 0 Volt oder 1 Volt oder 2 Volt oder 0.1 bis 2.4 Volt (0 und 1 und 2 werden bei mir ohne .0 dargestellt, deshalb so)
Icon 6
./images/icons/fluent/fluent_battery_empty.png
Caption
$&
String that will be replaced by icon 6
^(0)|^(1)|^(2)|^(0.[1]2.[4])
Sieht dann bei mir so aus
-
@siko sagte in Test Adapter iQontrol 1.11.x Vis:
Sorry, bin da noch nicht so fit @dslraser
Das ist der DP mit dem Istwert
{ "common": { "name": "Fühler 1 (VL FBH)", "type": "number", "unit": "°C", "read": true, "write": true, "custom": { "history.0": { "enabled": true, "aliasId": "", "changesOnly": true, "debounce": "1000", "changesRelogInterval": "0", "changesMinDelta": "0", "maxLength": "5000", "retention": "31536000" } } }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.Grill.Fuehler_1", "type": "state", "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1641892906564 }
Hier der DP für Sollwert:
{ "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1641892906566, "common": { "name": "Fühler 1 (Soll)", "type": "number", "unit": "°C", "read": true, "write": true }, "native": {}, "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 }, "_id": "0_userdata.0.Grill.Fuehler_1_Soll", "type": "state" }
Ein bisschen was hab ich schon gemacht:
Aber z.B. der Schieberegler bei der Zieltemperatur sollte nicht nur bis 30°C gehen.Ich bin jetzt erstmal bis Montag weg und habe nur ein Handy dabei. Schaue ich mir nächste Woche mal an.
-
@dslraser Bist du sicher, dass die Regex so funktionieren?
@s-bormann Ich vermute mal, du nutzt ganz normal regEx oder parst du da noch extra was?^(3.[[1])|^(3) -> das wird ja wahrscheinlich nach /^(3.[[1])|^(3)/i gewandelt intern, oder?
^ -> am anfang bedeutet, String muss starten mit, in der Mitte ist es eigentlich ein not
. steht für jedes beliebige Zeichen, wenn es als Punkt gemeint ist, muss es maskiert werden mit
Ich würde mal vermuten, der regex müsste folgendermassen lauten (ohne "):
"^3 |3.1 ""^(2.[[6])|^(2.[[5])" würde ich zu "^2.[5-6] " wandeln
"^(0)|^(1)|^(2)|^(0.[1]2.[4])" -> "^[0-2] |[0-1].[1-9] |2.[1-4] "wichtig ist immer das leerzeichen hinter dem Ausdruck
-
@dirkhe sagte in Test Adapter iQontrol 1.11.x Vis:
Bist du sicher, dass die Regex so funktionieren?
ja, tun sie. Aber ich teste nächste Woch auch gern so wie Du es schreibst.
-
@dirkhe sagte in Test Adapter iQontrol 1.11.x Vis:
"^3 |3.1 "
funktioniert nicht
^3 |3.1
(Leerzeichen am Ende ist drinn)funktioniert
^(3.[[1])|^(3)
EDIT: ohne das Leerzeichen hinter der 3 und mit Leerzeichen hinter 3.1 funktioniert es doch
^3|3.1
-
@dslraser hinter der 3 ist auch ein Leerzeichen
-
@dirkhe sagte in Test Adapter iQontrol 1.11.x Vis:
@dslraser hinter der 3 ist auch ein Leerzeichen
siehe meinen Edit über Deinem Post
-
@dslraser Dann wäre dein Echter Wert interressant.
Wenn du zb hier https://regex101.com/
mal den regex^3 |3\.1
eingibst und unten "3 " sollte es funktionieren. Oder steht in dem geprüften Wert nur die Zahl drin und das " Volt" kommt da anders hinter?
ohne Leerzeichen würde er 3.2 finden -
@dirkhe sagte in Test Adapter iQontrol 1.11.x Vis:
Oder steht in dem geprüften Wert nur die Zahl drin und das " Volt" kommt da anders hinter?
ja, genau so
-
@dslraser dann teste doch mal
^(3|3\.1)$
-
-
@dirkhe sagte in Test Adapter iQontrol 1.11.x Vis:
@dslraser dann teste doch mal
^(3|3\.1)$
das hier funktioniert
^3|3.1$
-
@dslraser Dann weiss ich nicht, auf welchen wert er abprüft oder ob er den regex String noch verändert.
Ich muß mir dann mal den aktuellen Stand holen und selber testen, habe ich bis jetzt noch nicht -
Ich muss jetzt auch wech....
-
@dslraser Ein Ostwestfale Ich muß auch ertstmal was anderes machen, schaue mir das nachher mal an
-
@dirkhe sagte in Test Adapter iQontrol 1.11.x Vis:
@dslraser Ein Ostwestfale Ich muß auch ertstmal was anderes machen, schaue mir das nachher mal an
doch noch kurz.....
nur so
^3
(ohne Leerzeichen irgendwo) wandelt alles was mit 3 anfängt (also auch 3 oder 3.1 / 3.2 usw...)bei 2.9 funktioniert
^2.9
(sobald ich Leerzeichen am Ende, oder Dollar am Ende einfüge funktioniert es nicht)für zwei Werte funktioniert das
^2.[5-6]
(da ist kein Leerzeichen hinterm Punkt, sieht nur so aus)und für die "leeren Batterien" funktioniert auch das
^[0-2]|[0-1].[1-9]|2.[1-4]
bei mir. (alles ohne Leerzeichen) -
Der . sollte eigentlich als \. verwendet werden, sonst greift dort jedes beliebige Zeichen!
Ist zwar hier vermutlich egal, aber es ist trotzdem besser, sich gleich das richtig anzugewöhnen. -
@sabinet sagte in Test Adapter iQontrol 1.11.x Vis:
Der . sollte eigentlich als \. verwendet werden, sonst greift dort jedes beliebige Zeichen!
Ist zwar hier vermutlich egal, aber es ist trotzdem besser, sich gleich das richtig anzugewöhnen.Das hatte ich probiert und es funktionierte nicht, probiere ich aber gern nochmal.
Der Punkt gehört zur Zahl (quasi 1 Komma 5, nur das es dann mit einem Komma Text wäre. 1.5 ist z.B die Zahl)
Volt ist „nur“ die unit.
Die Daten kommen von hierAllerdings weiss ich nicht ob Sebastian alles in einen String wandelt ?
Wie wäre es denn richtig ?
-
@dslraser Ich habe jetzt mal in den code geschaut. Dasp Probelm ist, dass der zu untersuchende String sowas hier ist:
1.2&bnsp;Volt
er nutzt also keine Leerzeichen, sondern macht das mit einem sogenannten "nonbreaking space".
Das bedeutet^3&|3\.1&
sollte funktionieren