Sitemap Setpoint mit abweichender "Unit Of Measurement"

GUI Relevanten, PaperUI, BasicUI, HabPanel ...

Moderatoren: seppy, udo1toni

TNT_Larsn
Beiträge: 5
Registriert: 16. Mär 2020 08:44
Answers: 0

Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von TNT_Larsn »

Guten Tag,
meinen ersten Post in diesem Forum möchte ich gleich mit einer Frage beginnen.

Ich habe ein "Dummy Item" erstellt mit dem ich einen Wert in Sekunden hinterlege.
Sekunden wird zwingend benötigt, für die Übergabe des Items an Homebridge-Openhab-Plugin (Bewässerung (durationItem))

Code: Alles auswählen

Number:Time	vLaufzeitPumpe  "Laufzeit Gartenpumpe [%.0f s]"  <time_clock>	(gSettings) 
In der zugehörigen rule kann ich dann mit diesem Wert (in Sekunden) arbeiten. Wenn über HomeKit Steuerung der Wert geändert wird funktioniert alles einwandfrei.

Problem:

Ich möchte den Wert auch über das Basic Ui mittels Setpoint einstellen.
Hier allerdings die Anzeige in Minuten darstellen.
Folgerndes habe ich versucht:

1. Anzeige ist in Sekunden - Wert des Item ist in Sekunden

Code: Alles auswählen

Setpoint item=vLaufzeitPumpe label="[%.0f %unit%]" minValue=1 maxValue=3600 step=60
2. Anzeige ist in Minuten - Wert des Item ist in Minuten

Code: Alles auswählen

Setpoint item=vLaufzeitPumpe label="[%.0f min]" minValue=1 maxValue=60 step=1
Kann mir jemand zeigen wie ich in der Sitemap
Anzeige in Minuten - Wert des Item in Sekunden

einstelle?

Vielen Dank

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

Re: Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von udo1toni »

Eigentlich sollte es kein Problem sein, den Wert in Minuten einzugeben und in Sekunden auszulesen, dafür ist ja UoM da.
Intern sollte das Item den Wert dann immer in Sekunden verarbeiten, es sähe also so aus:

Code: Alles auswählen

Setpoint item=vLaufzeitPumpe label="[%.0f min]" minValue=0 maxValue=3600 step=60
Aber falls das alles nichts hilft, wäre die pragmatische Lösung, ein ungebundenes Item dafür anzulegen.

Code: Alles auswählen

Number:Time	vLaufzeitPumpe  "Laufzeit Gartenpumpe [%.0f s]"  <time_clock>	(gSettings) 
Number vLaufzeitPumpeMin  "Laufzeit Gartenpumpe [%.0f min]"  <time_clock>	(gSettings) 
In der Sitemap:

Code: Alles auswählen

Setpoint item=vLaufzeitPumpeMin minValue=0 maxValue=60 step=1
Eine Rule:

Code: Alles auswählen

rule "Zeit setzen"
when
    Item vLaufzeitPumpeMin changed
then
    if(!(vLaufzeitPumpeMin.state instanceof Number)) return;
    vLaufzeitPumpe.sendCommand(((vLaufzeitPumpeMin.state as Number) * 60)|s)
end
Bei der letzten Zeile bin ich mit nicht zu 100% sicher, aber so ähnlich sollte es gehen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

TNT_Larsn
Beiträge: 5
Registriert: 16. Mär 2020 08:44
Answers: 0

Re: Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von TNT_Larsn »

Vielen Dank für die überaus schnelle Antwort.
Eigentlich sollte es kein Problem sein, den Wert in Minuten einzugeben und in Sekunden auszulesen, dafür ist ja UoM da.
m.E. funktioniert das nur, wenn ein entsprechendes Binding angebunden ist, was bei meinem "Dummy Item" nicht der Fall ist.

Die Lösung mit dem 2. eingebundenen Item hab ich auch schon versucht. Jedoch war es dann nötig die beiden Werte "synchron" zu halten.
Das heist ich brauchte 2 rules (je nachdem welches Item geändert wird)

Code: Alles auswählen


rule "Zeit setzen"
when
    Item vLaufzeitPumpeMin changed
then
    if(!(vLaufzeitPumpeMin.state instanceof Number)) return;
    vLaufzeitPumpe.sendCommand(((vLaufzeitPumpeMin.state as Number) * 60)|s)
end

rule "Zeit setzen 2"
when
    Item vLaufzeitPumpe changed
then
    if(!(vLaufzeitPumpe.state instanceof Number)) return;
    vLaufzeitPumpeMin.sendCommand(((vLaufzeitPumpe.state as Number) / 60)|min)
end

Dies führte jedoch dazu, dass sich die Werte nach Änderung gegenseitig "hochschaukelten".
Gibt es keine Möglichkeit die Anzeige des label in der Sitemap mit einer entsprechenden Syntax zu manipulieren?

Code: Alles auswählen

Setpoint item=vLaufzeitPumpe label="[%.0f s] / 60 " minValue=0 maxValue=3600 step=60
^ Das funktioniert leider nicht

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

Re: Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von udo1toni »

Ah. Ich sehe Dein Problem.

Ist aber kein Problem :)

Code: Alles auswählen

rule "Zeit in UI gesetzt"
when
    Item vLaufzeitPumpeMin received command
then
    if(!(vLaufzeitPumpeMin.state instanceof Number)) return;
    vLaufzeitPumpe.sendCommand(((vLaufzeitPumpeMin.state as Number) * 60)|s)
end

rule "Zeit am Gerät gesetzt"
when
    Item vLaufzeitPumpe changed
then
    if(!(vLaufzeitPumpe.state instanceof Number)) return;
    vLaufzeitPumpeMin.postUpdate(((vLaufzeitPumpe.state as Number) / 60)|min)
end
Wenn Du über die UI den Wert anpasst, wird automatisch ein sendCommand ausgelöst. Entsprechende wird die erste Rule getriggert. Wenn die Zeit an der Pumpe geändert wird, triggert die zweite Rule. Da in der zweiten Rule aber nur ein postUpdate verwendet wird, löst die erste Rule nicht aus.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

TNT_Larsn
Beiträge: 5
Registriert: 16. Mär 2020 08:44
Answers: 0

Re: Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von TNT_Larsn »

keine Ahnung wieso, aber "nur" so funktioniert es, wie gewollt. Man beachte, dass bei einer Änderung aus dem UI eine Multiplikation mit 60 nicht erforderlich ist

Zeit im UI geändert:

Code: Alles auswählen

rule "Zeit in UI gesetzt"
when
    Item vLaufzeitPumpeMin received command
then
    if(!(vLaufzeitPumpeMin.state instanceof Number)) return;
    vLaufzeitPumpe.postUpdate(vLaufzeitPumpeMin.state as Number * 1)
end
LogFile:

Code: Alles auswählen

2020-03-16 22:14:31.038 [ome.event.ItemCommandEvent] - Item 'vLaufzeitPumpeMin' received command 28 min
2020-03-16 22:14:31.045 [vent.ItemStateChangedEvent] - vLaufzeitPumpeMin changed from 27.0 min to 28 min
2020-03-16 22:14:31.410 [vent.ItemStateChangedEvent] - vLaufzeitPumpe changed from 1620.0 s to 1680.0 s
Zeit in EVE-App geändert -> Homebridge -> Openhab

Code: Alles auswählen

rule "Zeit am Gerät gesetzt"
when
    Item vLaufzeitPumpe received command
then
    if(!(vLaufzeitPumpe.state instanceof Number)) return;
    vLaufzeitPumpeMin.postUpdate((vLaufzeitPumpe.state as Number) / 60)
end
LogFile:

Code: Alles auswählen

2020-03-16 22:23:41.266 [ome.event.ItemCommandEvent] - Item 'vLaufzeitPumpe' received command 600
2020-03-16 22:23:41.283 [vent.ItemStateChangedEvent] - vLaufzeitPumpe changed from 30.0 s to 600.0 s
2020-03-16 22:23:41.297 [vent.ItemStateChangedEvent] - vLaufzeitPumpeMin changed from 28 min to 10.0 min
Meine Items:

Code: Alles auswählen

Number:Time  vLaufzeitPumpe       "Laufzeit Gartenpumpe [%.0f s]"       <time_clock>	        (gSettings)
Number:Time  vLaufzeitPumpeMin  "Laufzeit Gartenpumpe [%.0f min]"   <time_clock>	(gSettings)
Sitemap:

Code: Alles auswählen

Setpoint item=vLaufzeitPumpeMin minValue=1 maxValue=60 step=1
Nochmals vielen Dank für die schnelle Hilfe

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

Re: Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von udo1toni »

Das mit dem Multiplikator hängt sicher mit dem UoM zusammen. Die Logik dahinter erschließt sich mir jetzt auch nicht, aber sei's drum, Hauptsache ist ja, dass es für Dich funktioniert.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von peter-pan »

Udo hat schon Recht mit UoM. Eigentlich bräuchtest du gar keine Umrechnung per Regel. Das sollte OH-UoM allein machen. Hier ein Beispiel:

.items

Code: Alles auswählen

Number:Time           SonnenDatenCivilDawnDuration      "CivilDawnDuration    Dauer [%s s]"                                                                                   (gAstrotest) {channel="astro:sun:local:civilDawn#duration"}
Ich habe beim Item absichtlich "s" als Einheit gewählt, da im Astrobinding standartmässig "min" als %unit% hinterlegt ist. Aber das Ergebnis in der Sitemap sollte das gleiche sein unabhängig von der vorgegebenen Einheit im Item.
.sitemap

Code: Alles auswählen

    Setpoint item=SonnenDatenCivilDawnDuration label="Zeit Min [%s min]"
    Setpoint item=SonnenDatenCivilDawnDuration label="Zeit Sekunden [%s]"
    Default  item=SonnenDatenCivilDawnDuration label="Zeit - Default"
und das Ergebnis in der Sitemap:
zeit.jpg
Du kannst dir auch hier ein paar Tipps holen
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

TNT_Larsn
Beiträge: 5
Registriert: 16. Mär 2020 08:44
Answers: 0

Re: Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von TNT_Larsn »

Es scheint das Problem zu sein, dass Werte aus OpenHab-Ui gesetzt, korrekt in Bezug auf UoM verarbeitet werden können, da sie die entsprechende Einheit mitliefern siehe log: (Wert in BasicUi geändert)

Code: Alles auswählen

Item 'vLaufzeitPumpeMin' received command 28 min
Sobald der Wert aber aus anderen Quellen geändert wird, fehlt die Einheit.

Code: Alles auswählen

Item 'vLaufzeitPumpe' received command 600
Folglich sind die Werte dann im Openhab-Plugin-Ui fehlerhaft, da z.B. aus "600" auf einmal 600min werden







Standarte vs. Standard

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

Re: Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von peter-pan »

Sorry, :oops: hab dein Problem nicht genau gelesen, bzw. erkannt. Ich habe nur mal auf die Schnelle mit ein paar Einstellungen in der Sitemap getestet. Da bleibt dann doch nur der Weg über eine Regel übrig.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

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

Re: Sitemap Setpoint mit abweichender "Unit Of Measurement"

Beitrag von udo1toni »

Eine andere Frage:

Wie kommen denn die Werte von openHAB nach homebridge? gewöhnlich würde ich erwarten, dass auch Fremdsoftware zumindest die Regeln einhält, wie openHAB2 anzubinden ist (das wäre, pro Gerät ein Thing zur Verfügung zu stellen und deren Channel mit passenden Items zu verlinken).

Einen Link zum homebridge kann ich aber nirgends sehen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten