Werte umrechnen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Werte umrechnen

Beitrag von violine21 »

peter-pan hat geschrieben: 8. Nov 2021 20:48 ...kommt(kam) da immer nur ein String zurück. Das werd ich dann auch mal ausprobieren.
Hallo Peter,
ich denke durch die Verknüpfung mit + " km" kann da nur ein String entstehen. Es soll ja auch nur zu Anzeigezwecken dienen.
Darum in der Sitemap-Datei:

Code: Alles auswählen

Text item=SeppiDatStTotalDistance label="gefahrene Distanz"
Ich hab' zurzeit ein OH3-System auf meinem "alten" RPI3b+ laufen. Die SD-Karte hab' ich durch ein altes 3 1/2" USB-Laufwerk getauscht (1 TB).
Zum Glück :shock: steht die kalte und dunkle Jahreszeit bevor. Da ist deutlich mehr Zeit, sich wieder dem Thema zu nähern.
Ich bin mit meinem OH2.5 noch immer sehr zufrieden. Es läuft stabil und darum hatte ich noch nicht den Drang und die Zeit, auf OH3 zu wechseln.
Einzig eine USV habe ich meiner Hausautomatisierung im Laufe des Jahres gegönnt.

VG André

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Werte umrechnen

Beitrag von peter-pan »

violine21 hat geschrieben: 9. Nov 2021 20:46 Ich bin mit meinem OH2.5 noch immer sehr zufrieden
Das bin ich auch. Als Produktions-System ist bei mir immer noch OH2.5.12 am laufen.
violine21 hat geschrieben: 9. Nov 2021 20:46 ich denke durch die Verknüpfung mit + " km" kann da nur ein String entstehen.
Das war auch meine Vermutung. Deshalb bin ich auch über deine Item-Definition "gestolpert":
violine21 hat geschrieben: 8. Nov 2021 18:26 das Item ist von meinem Mähroboter.

Number SeppiDatStTotalDistance "TotalDistance [JS(convert_m_km.js):%s]"
Das werd ich mal ausprobieren.
violine21 hat geschrieben: 9. Nov 2021 20:46 eine USV habe ich meiner Hausautomatisierung
Was hast du dir denn für eine USV angeschafft und was hängt da alles dran ? Ich bin neugierig :lol: :lol: ;) !!!

VG Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Werte umrechnen

Beitrag von violine21 »

peter-pan hat geschrieben: 9. Nov 2021 23:54 Was hast du dir denn für eine USV angeschafft und was hängt da alles dran ? Ich bin neugierig :lol: :lol: ;) !!!

VG Peter
Eigentlich ist die nicht wirklich angeschafft. Bei uns ist in einer Maschine eine APC-USV "Smart UPS 1000" mit 1000 W ausgefallen.
Die habe ich mir repariert und sie sorgt jetzt für eine unterbrechungsfreie Stromversorgung von:
- Homematic CCU3 incl. dazugehöriges LAN-Gateway
- BROETJE-Heiztherme incl. diverse Pumpen
- Solarthermieanlage incl. Pumpe
- OH-Raspi
- Nextcloud-Raspi
- 8-fach Netzwerk-Switch

Vielleicht kommt noch die FRITZ-Box dazu...
Man gönnt sich ja sonst nichts :D
Hätte ich im Normalfall natürlich nicht gemacht.

TurboMOD
Beiträge: 20
Registriert: 10. Okt 2021 08:55
Answers: 0

Re: Werte umrechnen

Beitrag von TurboMOD »

peter-pan hat geschrieben: 7. Nov 2021 16:54
TurboMOD hat geschrieben: 7. Nov 2021 15:58 =(Number.parseFloat(items.ModbusDataVictronBatteryVoltage_ValueasNumber)/10).toFixed(2) + " A"
...zuerst mal dieses Problem: du hast da nur etwas vergessen ".state"

es sollte eigentlich so lauten:

Code: Alles auswählen

(Number.parseFloat(items.ModbusDataVictronBatteryVoltage_ValueasNumber.state)/10).toFixed(2) + " A"
Wenn du nur eine Nachkommstelle haben willst, dann natürlich .toFixed(1)

Das sollte dann auch funktionieren.

Das mit dem Javascript geht natürlich auch, find' ich aber eher suboptimal,genau so wie mit einer Rule.

als Pattern müsstest du da evtl. JS(divide10.js):%s Ampere angeben.

Gruss Peter
Hallo Peter,
Danke. ".state" hatte ich tatsächlich übersehen. Hatte dann aber das Problem, dass die Werte in der Sitemap nicht umgerechnet wurden, Auch die Einheit fehlte dort. Also habe ich nochmal zurück gewechselt und die divide10V.js genutzt.

Code: Alles auswählen

(function(i) {
  return parseFloat(i) / 10
})(input)
und im Thing bei read transform: JS(divide10V.js) eingetragen. Das hatte zumindest für mich den Vorteil, dass der umgerechnete Wert dann auch im Chart richtig angezeigt wird und ich, falls ich damit mal Rules erstellen will, auch die bereits umgerechneten Werte nutzen kann.
Gruß
Ronny

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Werte umrechnen

Beitrag von peter-pan »

TurboMOD hat geschrieben: 13. Nov 2021 09:26 Hatte dann aber das Problem, dass die Werte in der Sitemap nicht umgerechnet wurden
Das ist klar. Der JS-Schnipsel läuft "nur" im Widget ab, also nicht in einer "OH2-Sitmap". Wenn du eine richtige Umrechnung des Wertes haben wilst, musst du natürlich so vorgehen wie du es jetzt gemacht hast.

Ich bin mir aber nicht sicher, ob der "berechnete" Wert abgespeichert wird oder der "ursprüngliche". Ich meine aber der "ursprüngliche". So sieht es jedenfalls in meinen Tests aus.

Wenn ,man mit dem exec-Thing arbeitet funktioniert nur die Umwandlung über das Thing, und auch nur als String-Item. Mit anderen Things, z.B.: MQTT oder das Thing/channel von @violine21 "worxlandroid" geht auch eine Umwandlung über das Item-Pattern, allerdings, wie bereits gesagt, in der Ausgabe/Ansicht. Gespeichert wird aber der Originalwert. Ohne Rule und zweitem Item geht da wahrscheinlich sonst nichts.

Wäre nett, wenn ihr meine Behauptungen prüfen und ggf. auch bestätigen könnten, oder auch nicht. :lol: :lol: ;) ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Werte umrechnen

Beitrag von violine21 »

peter-pan hat geschrieben: 13. Nov 2021 11:41 Ich bin mir aber nicht sicher, ob der "berechnete" Wert abgespeichert wird oder der "ursprüngliche". Ich meine aber der "ursprüngliche". So sieht es jedenfalls in meinen Tests aus.
Zum Abspeichern in einer Persistence kann ich nichts beitragen, da keines meiner manipulierten Items persistiert wird.
Ich vermute, Du liegst nicht falsch.
Bei der Kommunikation via REST-API wird der Basiswert des Items übertragen. Da muss ich auf der Gegenstelle die Manipulation
erneut durchführen.

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Werte umrechnen

Beitrag von peter-pan »

violine21 hat geschrieben: 13. Nov 2021 13:00 Ich vermute, Du liegst nicht falsch
Hallo André,

das müsstest du auch feststellen können, wenn du in VSC einfach auf den Item-Namen fährst. Da sollte trotz Pattern auch der Originalwert angezeigt werden.
Das ganze müsste auch in der Karaf-Konsole sichtbar sein. Mein Item "CPU_Temp2":

Karaf-Konsole (openhab-cli console):

Code: Alles auswählen

openhab> items list | grep -i CPU_Temp2
CPU_Temp2 (Type=NumberItem, State=214, Label=OH2_CPU Temp-Number, Category=temperature, Groups=[gSystem])
openhab>
.items:

Code: Alles auswählen

Number CPU_Temp2              "OH2_CPU Temp-Number [JS(milli.js):%s ]"      <temperature> (gSystem)  { channel="mqtt:topic:vera:sp11101:voltage" }
Ausgabe im Widget:
cpu-temp.jpg
Das mit REST-Api verstehe ich nicht. Da hab ich glaube Ich noch nichts damit gemacht(oder zumindest nicht bewusst :oops: :oops: ). Kannst ja mal ein Beispiel posten gern auch über PM.

Gruss - Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: Werte umrechnen

Beitrag von violine21 »

peter-pan hat geschrieben: 13. Nov 2021 15:51 das müsstest du auch feststellen können, wenn du in VSC einfach auf den Item-Namen fährst. Da sollte trotz Pattern auch der Originalwert angezeigt werden.
Das kann ich bestätigen, dem ist so.
peter-pan hat geschrieben: 13. Nov 2021 15:51 Das mit REST-Api verstehe ich nicht. Da hab ich glaube Ich noch nichts damit gemacht(oder zumindest nicht bewusst :oops: :oops: ). Kannst ja mal ein Beispiel posten gern auch über PM.
Die REST-API ist eine Möglichkeit, mit OH von anderen Systemen zu kommunizieren. Quasi ein OpenHAB für OpenHAB ;)
Gib mal folgendes in Deinem Browser ein:

Code: Alles auswählen

http://OH-IP:8080/rest/items/CPU_Temp2/state
Da sollte dann eine Rückantwort kommen. Das ist nur ein kleines Beispiel, es gibt noch viele andere Möglichkeiten.
peter-pan hat geschrieben: 13. Nov 2021 15:51 gern auch über PM.
Machen wir

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Werte umrechnen

Beitrag von peter-pan »

violine21 hat geschrieben: 13. Nov 2021 16:30 Gib mal folgendes in Deinem Browser ein:
Aaah. :idea: Super. Das ist so was wie (oder ist) das HTTP-Protokoll. Hab's im Grundsatz verstanden. Aber mit der analytischen Umsetzung hapert's halt. Ich brauch' da immer einen Praxisbezug, damit ich mir das besser vorstellen kann.

Gruss - Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

klaus1
Beiträge: 99
Registriert: 11. Jan 2022 13:48
Answers: 0

Re: Werte umrechnen

Beitrag von klaus1 »

wie könnte ich noch bei der Javascript funktion (in meinem Fall kwH in km beim E-Auto laden) auf 2 Kommastellen max. anzeigen:

Code: Alles auswählen

(function(i) {
    return (i/17*100) + " km";
})(input)
in sitemap so in Verwendung:

Code: Alles auswählen

Text item=mqtt_wattpilot_wh_since_plugedin_kwh label="akt. geladene Strecke: [JS(convert_kwh_km.js):%s]" icon="none"
danke

Antworten