Seite 1 von 1

Time cron in Rule durch Setpoint Variable beeinflussen - die Zweite

Verfasst: 16. Nov 2024 11:39
von nw378
Das Thema hatten wir hier bereits, es ist aber inhaltlich in eine andere Richtung abgedriftet. Deshalb hier als neues Thema.

Ich bin Anhänger der Sitemaps, m. E. die schlankeste und übersichtlichste Darstellung auf dem Handy.

Zwar gibt es für die Eingabe inzwischen Input Items, dies aber (immer noch) nicht für iOS.
Und ich sträube mich, jeweils Stunden und Minuten separat anzugeben.

Die folgende Lösung nimmt ein Number-Item. Dieses stellt die Minuten ab Mitternacht dar und lässt sich per Setpoint im Viertelstundentakt anapssen.
Zur Darstellung in der Sitemap wird ein Skript eingesetzt.

Anschließend wird daraus ein DateTime-Item gefüttert (mit aktellem Datum, aber das interessiert nicht, weil die Uhrzeit mittels timeOnly freigeschnitten wird).



.items

Code: Alles auswählen

Group giLightClock
Group gLightClock

Number   iLightClock_1 (giLightClock)
Number   iLightClock_2 (giLightClock)
Number   iLightClock_3 (giLightClock)
...
DateTime LightClock_1  (gLightClock)
DateTime LightClock_2  (gLightClock)
DateTime LightClock_3  (gLightClock)
...
numberToClock.js

Code: Alles auswählen

(function(i) {
    var hours = Math.floor(i / 60);
    var minutes = i % 60;

    hours = (hours < 10) ? "0" + hours : hours;
    minutes = (minutes < 10) ? "0" + minutes : minutes;

    return hours + ":" + minutes;
})(input)
.sitemap

Code: Alles auswählen

            Setpoint item=iLightClock_1 label="Außenleuchten an [JS(numberToClock.js):%s]" icon="clock_dark" minValue=0 maxValue=1425 step=15
.rules

Code: Alles auswählen

rule "Beleuchtung: Uhrzeit geändert"
when
    Member of giLightClock changed
then
    val i = triggeringItemName.split("_").get(1)
    val minutes = (triggeringItem.state as DecimalType).intValue
    val clock = new DateTimeType(ZonedDateTime.now().with(LocalTime.MIDNIGHT).plusMinutes(minutes))
    gLightClock.members.filter[x|x.name.endsWith(i)].head.postUpdate(clock)
end

rule "Beleuchtung: Außenleuchten morgens an"
when 
    Time is LightClock_1 timeOnly
then  
    ...
end    
Ergebnis:
OH-iOS_Licht.jpg
PS: Persistieren nicht vergessen.

Re: Time cron in Rule durch Setpoint Variable beeinflussen - die Zweite

Verfasst: 16. Nov 2024 23:52
von udo1toni
nw378 hat geschrieben: 16. Nov 2024 11:39 Zwar gibt es für die Eingabe inzwischen Input Items, dies aber (immer noch) nicht für iOS.
Hast Du auch die aktuelle Version der openHAB App installiert? Die App nutzt zur Darstellung der Websites den Browser des iOS Geräts und das Input Widget wird bei mir korrekt gerendert (iOS18 auf iPad pro, openHAB V2 App aus dem Appstore).

Re: Time cron in Rule durch Setpoint Variable beeinflussen - die Zweite

Verfasst: 17. Nov 2024 08:32
von nw378
Ok.... Hatte ich zuvor probiert, ohne Erfolg.
iOS 18.0.1, openHAB V2 (APP-Version 3.0.5).

.sitemap

Code: Alles auswählen

Input item=Clock_08 inputHint="time"
Ergebnis:
input.jpg
Was machst Du anders als ich?

Re: Time cron in Rule durch Setpoint Variable beeinflussen - die Zweite

Verfasst: 17. Nov 2024 12:31
von udo1toni
Keine Ahnung. Ich habe als Item ein String Item und ein Number Item ausprobiert.

Re: Time cron in Rule durch Setpoint Variable beeinflussen - die Zweite

Verfasst: 17. Nov 2024 12:46
von nw378
Hatte ich auch probiert.

Da steht dann einfach ein - als state; nicht anwählbar. :?

Auf Github gibts auch einen PR dazu: https://github.com/openhab/openhab-ios/issues/726
Ich weiß aber nicht, wie ich den "reviewen" könnte....

Re: Time cron in Rule durch Setpoint Variable beeinflussen - die Zweite

Verfasst: 17. Nov 2024 13:14
von nw378
Nachtrag: wenn ich die Sitemap über iOS Safari öffne, funktioniert der Input. Aber nicht über die App direkt.

Re: Time cron in Rule durch Setpoint Variable beeinflussen - die Zweite

Verfasst: 17. Nov 2024 13:22
von nw378
Nachtrag 2 🤓: ich hab‘s. Du wirst in der App wahrscheinlich unter Einstellungen / Tiles die Basic UI gewählt haben (dann geht’s), ich hatte immer die Sitemap-Datei angewählt.

Re: Time cron in Rule durch Setpoint Variable beeinflussen - die Zweite

Verfasst: 17. Nov 2024 13:37
von udo1toni
Ah. Ja, das kann gut sein :) Dann musst Du damit leider warten, bis der PR gemerged und die neue Version released ist...

Re: Time cron in Rule durch Setpoint Variable beeinflussen - die Zweite

Verfasst: 18. Nov 2024 17:29
von nw378
War überschaubar, die Wartezeit. Eine neue TestFlight version (3.0.8) mit dem Input Feature ist justamente verfügbar. :D

input_new.jpg