wie Multipliziere ich einen angezeihten Wert

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Harka
Beiträge: 487
Registriert: 30. Apr 2021 13:13
Answers: 19

Re: wie Multipliziere ich einen angezeihten Wert

Beitrag von Harka »

Ha, in der Transformation brauch es noch ein String(). Damit klappt es hier zumindest und ich bin wieder viele Minuten älter :lol: .

Code: Alles auswählen

| String(Quantity(input).multiply(Quantity('11.524 kWh/m³')));

Benutzeravatar
udo1toni
Beiträge: 15240
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: wie Multipliziere ich einen angezeihten Wert

Beitrag von udo1toni »

Jawoll! So macht das Spaß.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

rebell21
Beiträge: 125
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: wie Multipliziere ich einen angezeihten Wert

Beitrag von rebell21 »

Danke für die Erklärung. Es klappt.
Ich habe mit folgender itemsdatei

Code: Alles auswählen


Number:Energy      GasEnergie_diesesJahr      "Energie laufendes Jahr" {channel="vicare:heating:66380b8fb4:Heizung-Viessmann:heating_gas_consumption_summary_heating_currentYear"    [profil
e="transform:JS", toItemScript="|(parseFloat(input) * 11.0435) + \" kWh\""], unit="Ws", stateDescription=""[pattern="%.2f kWh"]}

Number:Energy      GasEnergie_VorJahr      "Energie Vorjahr" {channel="vicare:heating:66380b8fb4:Heizung-Viessmann:heating_gas_consumption_total_previousYear"    [profile="transform:JS", t
oItemScript="|(parseFloat(input) * 11.0435) + \" kWh\""], unit="Ws", stateDescription=""[pattern="%.2f kWh"]}

zwei weitere Items für die vorhandenen Kanäle der ViessmannHeizung "Gasverbrauch laufend" und "Gasverbruach vorjahr" definieren können und nun kann ich mir den Verbrauch auch in kWh anzeigen lassen. Ich habe besser verstanden wie die Items mit ihren Typen wirken. Diese beiden Kanäle hatten schon items zur Darstellung in m³ und haben nun zwei weitere Items zur Darstellung des Wertes in kWh. Sehr elegant.

Ich habe auch Textdatei gewählt, weil ich das über die UI nicht hinbekommen habe. Allerdings kriege ich die beiden items nicht in das semantische Model eingehängt

Benutzeravatar
udo1toni
Beiträge: 15240
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: wie Multipliziere ich einen angezeihten Wert

Beitrag von udo1toni »

Das Semantic Model ist kein Problem, das geht auch über Textdateien.
Man muss dazu nur wissen, dass die Konfiguration des Semantic Model zu 100% über die Items passiert, es sind also Eigenschaften der Items.
Es handelt sich hier ja um Points, die Teil eines übergeordneten Device oder Raums sind - dieses Equipment oder diese Location sind nichts anderes als Group Items. Die Points müssen also zunächst Member der entsprechenden Group sein.
Außerdem hat jeder Point eine Category (oder zumindest definiert man diese gewöhnlich), das geschieht über das Icon des Items, und es gibt die Semantic Class und Property, welche beide Über Tags gesetzt werden, so:

Code: Alles auswählen

Number:Energy GasEnergie_diesesJahr "Energie laufendes Jahr" <energy> (gHeizung) ["Measurement","Energy"] {channel="vicare:heating:66380b8fb4:Heizung-Viessmann:heating_gas_consumption_summary_heating_currentYear" [profile="transform:JS", toItemScript="|(parseFloat(input) * 11.0435) + \" kWh\""], unit="Ws", stateDescription=""[pattern="%.2f kWh"]}
Number:Energy GasEnergie_VorJahr    "Energie Vorjahr"        <energy> (gHeizung) ["Measurement","Energy"] {channel="vicare:heating:66380b8fb4:Heizung-Viessmann:heating_gas_consumption_total_previousYear"          [profile="transform:JS", toItemScript="|(parseFloat(input) * 11.0435) + \" kWh\""], unit="Ws", stateDescription=""[pattern="%.2f kWh"]}
Es wird die Category <energy> gesetzt, der Point gerhört zum Equipment (gHeizung) und als Semantic Class und Property sind ["Measurement","Energy"] definiert.
An dieser Stelle nur sicherheitshalber die Warnung: Die Reihenfolge der einzelnen Parameter ist exakt einzuhalten. Jeder einzelne Parameter ist optional (bis auf Itemtyp und Itemname natürlich), muss aber exakt an der Stelle stehen, also

Code: Alles auswählen

Itemtyp Itemname "Item Label" <Icon> (Group,Groups) ["Tag","Tags"] {channel="Channel:UID"[profile], unit="",... } 
Wobei alles innerhalb der jeweiligen Klammern in der Reihenfolge "beliebig" ist, es sist also egal, in welcher Reihenfolge Groups oder Tags angegeben sind, auch die Reihenfolge der Channel Links oder weitere Metadaten wie unit und stateDecription können (innerhalb der geschweiften Klammern) beliebig positioniert werden.

Und natürlich gilt auch über die Textdefinition: Ein Item darf exakt einmal im Semantic Model vorkommen, d.h. es darf nur einem Equipment oder einer Location zugeordnet sein, niemals gleichzeitig einer Location und einem Equipment oder gar mehreren Locations oder Equipments gleichzeitig. Ein Point darf aber gleichzeitig zu einer Semantic Group auch beliebig vielen non-semantic Groups zugeordnet sein, das ist kein Problem, diese sind ja nicht Teil des Semantic Model.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

rebell21
Beiträge: 125
Registriert: 23. Aug 2024 09:34
Answers: 0

Re: wie Multipliziere ich einen angezeihten Wert

Beitrag von rebell21 »

Hallo, ja so konnte ich die beiden neuen items auch im Model unterbringen
Danke

Antworten