Seite 2 von 3

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 20. Nov 2023 18:29
von nw378
Danke Udo für die Ergänzung.

Dann hatte ich das "<" nicht ganz richtig abgespeichert.
Deine Ausführung hat mich noch dazu animiert, eine paar Unsauberheiten in der ETS zu beseitigen - bei einigen Temperatursensor-GAs war das L-Flag nicht gesetzt.
Das führt dazu, dass nach den 3 readRetriesLimit Versuchen die Info-Meldung "Giving up reading 1/0/x ...." kam.
Tat nicht weh (keine Funktionseinschränkung), störte aber und war mir nicht erklärlich.
Flag gesetzt, Meldung weg. :D

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 20. Nov 2023 23:31
von udo1toni
Ja, es muss halt (exakt) ein Gerät auf den Read Request antworten :) und schon funktioniert es wie gedacht.

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 21. Nov 2023 09:23
von manes
eine Frage habe ich jetzt wieder dazu. Ich bekomme die Prozentzahl für den Stellwert durch 100 geteilt angezeigt. Also statt 10 bekomme ich 0.xx angezeigt. wie bekomme ich das in den Griff, das ich auch 10% angezeigt bekomme. Bzw. das es wirkluch 10% sind, die ich nicht multiplizieren muß, weil ich den Wert noch woanders verwursten möchte.

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 21. Nov 2023 12:42
von udo1toni
Wenn Du einen Number Channel mit (z.B.) DPT 5.001 definierst, dann erkennt das aktuelle knx Binding, dass es sich um den Datentyp PercentType handelt.
Wenn Du einen solchen Channel mit einem Number Item verknüpfst (kein PercentType...), dann landet der Wert geteilt durch 100 im Item.
Du musst stattdessen das Item als Number:Dimensionless definieren (das ist wiederum PercentType), aber das reicht noch nicht, Du musst zusätzlich für dieses Item in den Metadaten noch die unit auf % setzen und ebenso in den Metadaten für die State Description das Pattern auf (z.B.) %.1f %% setzen (das wäre Prozent mit einer Nachkommastelle).
Die State Description und deren Pattern kannst Du jederzeit anpassen, die unit darf aber nur einmalig angepasst werden (im Sinne von: bis es korrekt funktioniert), denn die unit wird auch von der Persistence verwendet. Eine Änderung der unit führt also im Zweifel zu Sprüngen in Charts und falschen Ergebnissen bei der Berechnung von historischen Werten Durchschnitts- oder Summenwerten.

Achtung! In der Folge handelt es sich bei dem Status des Items gewöhnlich um den Datentyp QuantityType, das heißt, die Einheit (in diesem Fall %) ist Bestandteil des Status. Das musst Du z.B. innerhalb Rules berücksichtigen 10 % ist etwas anderes als 10 und entsprechend muss man z.B. bei Vergleichen entweder die Einheit hinzufügen oder alternativ die Einheit entfernen.

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 21. Nov 2023 12:54
von manes
einen Teil hatte ich schon versucht, aber nicht das gesamt Paket. Nur was und wie ist Unit und wie komme ich da ran?

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 21. Nov 2023 14:30
von udo1toni
Die Unit befindet sich in den Metadaten. Wenn Du das Item über die UI anlegst, wählst Du das Number:Dimensionless Item aus und wählst dort Add Metadata aus. In der sich öffnenden Liste musst Du dann Unit auswählen und die Unit ergänzen, genauso kannst Du an dieser Stelle auch die State Description auswählen.

Wenn Du das Item über eine Textdatei anlegst, sieht es so aus:

Code: Alles auswählen

Number:Dimensionless RaumVentLevel "Raum Ventilstellung" <heating> (gHeatVent,sRaum) ["OpenLevel"] {channel="knx:devive:bridge:heatActuator:ch1Level", unit="%", stateDescription=""[pattern="%.1f %%"]}
Die Definition ist in diesem Falle vollständig:

Code: Alles auswählen

Number:Dimensionless  => Der exakte Itemtyp
RaumVentLevel         => der Itemname
"Raum Ventilstellung" => Das Label des Items
<heating>             => das (dynamische) Icon
(gHeatVent,sRaum)     => die Gruppen (eine Gruppe für alle Heizungsventile, die andere Gruppe als Teil des Semantic Model für den Raum
["OpenLevel"]         => das korrekte Semantic Tag
{channel="knx..."     => der verlinkte Channel
unit="%"              => die Einheit, in der der Wert als Status abgebildet wird (auch in der Persistence)
stateDescription=""   => es wird keine spezielle State Description verwendet
[pattern="%.1f %%"]   => aber das Pattern der State Description wird auf "Fließkommazahl mit einer Nachkommastelle, gefolgt vom Prozentzeichen" gesetzt.
Die Unit gibt es erst seit openHAB4, sie ist aber nicht optional.
Dass sie dennoch über die Metadaten abgebildet wird, ist mit Rückwärtskompatibilität begründet.

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 21. Nov 2023 14:42
von manes
ok, ich habe hier noch OH3, deshalb finde ich das nicht.

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 21. Nov 2023 15:00
von manes
ok, jetzt klappt es, wenn ich es in OH4 mache Danke.

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 21. Nov 2023 15:06
von udo1toni
Ja, in openHAB3 fehlt das Ganze Gedöns noch, dort ist der einzig sinnvolle Weg, das über einen Dimmer Channel und ein Dimmer Item abzubilden. Immer dran denken: Es geht um einen Stellwert von 0% bis 100%, dass der Begriff "Dimmer" immer mit "Licht" gleichgesetzt wird, ist ein Denkfehler schon zu Beginn.

Und weiterhin: Man kann ein Dimmer Item ganz locker auch mit einem Text Widget koppeln, so dass nur der Status ausgegeben wird, es aber keine Möglichkeit gibt, diesen Status zu beeinflussen.

Alle Parameter eines Channels sind gewöhnlich optional, das heißt, man muss bei einem Dimmer Channel lediglich eine GA für den Parameter position angeben, um diesen Channel als Quelle für eine passende Anzeige zu verwenden.

Re: MDT AKH -0400.03 Abfrage Stellwert

Verfasst: 22. Nov 2023 07:37
von manes
jetzt stellt sich mir aber noch die Frage, warum wird in der Items Übersicht der Prozentwert mit 10 Nachkommastellen angezeigt? Ich dachte das wäre in State Discription geregelt? Das scheint nicht für alle Anzeigen zu gelten!?