Formula-fälten.

Moderators: hekj, Telldus

Post Reply
Klas
Posts: 12
Joined: Fri Mar 17, 2023 9:45 am

Formula-fälten.

Post by Klas »

Enligt dokumentationen kan man använda formeln
< -20 # 02:00, < -15 # 01:30, < -10 # 01:20, < -5 # 01:10, < 0 # 01:00, < 5 # 00:45, < 10 # 00:20, >= 10 # 00:00

Den syntaxen är inte så svår att förstå, men kan man göra mer? Göra beräkningar? Anropa beanshell?
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Formula-fälten.

Post by hekj »

Klas wrote:Enligt dokumentationen kan man använda formeln
< -20 # 02:00, < -15 # 01:30, < -10 # 01:20, < -5 # 01:10, < 0 # 01:00, < 5 # 00:45, < 10 # 00:20, >= 10 # 00:00

Den syntaxen är inte så svår att förstå, men kan man göra mer? Göra beräkningar? Anropa beanshell?
Vad vill du kunna göra?
Klas
Posts: 12
Joined: Fri Mar 17, 2023 9:45 am

Re: Formula-fälten.

Post by Klas »

hekj wrote:Vad vill du kunna göra?
Beräkna en tidsfördröjning baserad på värdet från en sensor. Det problemet jag hade löste jag förvisso, behövde inte så stor upplösning på fördröjningen.

Men ett lagom meningslöst exempel för att visa vad jag menar.

En givare ger ett värde mellan 0 och 255. Utifrån detta vill jag variera starttiden inom en timme, med en nogranhet på en minut. Formula on skulle då kunna innehålla x/255*60, där x är givarvärdet och resultatet är justering i minuter.

Eftersom värdet kommer från ett script skulle det räcka om man kan skicka en tid från scriptet och detta används rakt av, men det kanske redan fungerar?
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Formula-fälten.

Post by hekj »

Klas wrote:
hekj wrote:Vad vill du kunna göra?
Beräkna en tidsfördröjning baserad på värdet från en sensor. Det problemet jag hade löste jag förvisso, behövde inte så stor upplösning på fördröjningen.

Men ett lagom meningslöst exempel för att visa vad jag menar.

En givare ger ett värde mellan 0 och 255. Utifrån detta vill jag variera starttiden inom en timme, med en nogranhet på en minut. Formula on skulle då kunna innehålla x/255*60, där x är givarvärdet och resultatet är justering i minuter.

Eftersom värdet kommer från ett script skulle det räcka om man kan skicka en tid från scriptet och detta används rakt av, men det kanske redan fungerar?
Du kan testa följande version:
http://nexahome.se/NexaHome_2.8.0.jar

Jag har utökat den ursprungliga syntaxen, ersätt ett eller flera av dom fasta värdena med en matematisk formel (frågetecken ersätts av programmet med aktuellt sensorvärde):

Code: Select all

< 0 # ?, >= 0 # ?/255*60
Resultatet av beräkningen översätts till timmar:minuter.

Edit: Kom på att du antagligen måste lägga in två dummy värden som talar om för NexaHome vad formlerna ger för min/max tider.

Code: Select all

< 0 # ?, >= 0 # ?/255*60, > 888888 # 00:00, > 999999 # 01:00
Klas
Posts: 12
Joined: Fri Mar 17, 2023 9:45 am

Re: Formula-fälten.

Post by Klas »

hekj wrote:Jag har utökat den ursprungliga syntaxen, ersätt ett eller flera av dom fasta värdena med en matematisk formel (frågetecken ersätts av programmet med aktuellt sensorvärde):
Härligt!
Edit: Kom på att du antagligen måste lägga in två dummy värden som talar om för NexaHome vad formlerna ger för min/max tider.

Code: Select all

< 0 # ?, >= 0 # ?/255*60, > 888888 # 00:00, > 999999 # 01:00
Är det för att programmet ska veta inom vilka tider som eventet behöver kollas?

Får dock säga att jag finner hela formula/motorvärmar-funktionen lite svår. När uppdateras ON Sensor Result? Vad hamnar egentligen i kön?
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Formula-fälten.

Post by hekj »

Klas wrote:
Edit: Kom på att du antagligen måste lägga in två dummy värden som talar om för NexaHome vad formlerna ger för min/max tider.

Code: Select all

< 0 # ?, >= 0 # ?/255*60, > 888888 # 00:00, > 999999 # 01:00
Är det för att programmet ska veta inom vilka tider som eventet behöver kollas?

Får dock säga att jag finner hela formula/motorvärmar-funktionen lite svår. När uppdateras ON Sensor Result? Vad hamnar egentligen i kön?
Följande gäller sensor- funktionen, maxtiden (det största värdet som hittas i fältet) talar om för NexaHome hur lång tid före programerat klockslag som sensorvärdet måste hämtas och det faktiska inkopplingsklockslaget ska beräknas.

Beräknad relativ tidpunkt HH:MM borde dyka upp i 'ON Sensor Result' fältet efter att punkt 2 utförts.
Det som hamnar i kön är först:
1) programerat klockslag - max inkopplingstid

Samt lite senare... efter att ovanstående tidpunkt inträffat:
2) programerat klockslag - beräknad inkopplingstid (klockslaget justeras framåt i tiden)
PS. En annan funktion som bara heter sensor (utan ett minus eller plustecken) används däremot då man vill vänta med ett 'On' eller 'Off' kommando tills en sensor uppnått ett visst värde DS.

Kan du avslöja vad du ska styra, är det någon slags bevattningsautomatik?
Klas
Posts: 12
Joined: Fri Mar 17, 2023 9:45 am

Re: Formula-fälten.

Post by Klas »

hekj wrote:Det som hamnar i kön är först:
1) programerat klockslag - max inkopplingstid

Samt lite senare... efter att ovanstående tidpunkt inträffat:
2) programerat klockslag - beräknad inkopplingstid (klockslaget justeras framåt i tiden)
Det innebär att endast sensorvärdet som gäller vid punkt 1 kommer användas? Om sensorn ändras efter detta kommer det inte påverka tillslaget?
PS. En annan funktion som bara heter sensor (utan ett minus eller plustecken) används däremot då man vill vänta med ett 'On' eller 'Off' kommando tills en sensor uppnått ett visst värde DS.
Bra att veta.
Kan du avslöja vad du ska styra, är det någon slags bevattningsautomatik?
Det började med att använda väderdata för att justera sunset-tillslag. En slags fattigmans skymningssensor. Sedan tog nyfikenheten vid, alltid kul att vet vad man har för möjligheter.
hekj
Posts: 992
Joined: Fri Mar 17, 2023 9:45 am
Location: Stockholm
Contact:

Re: Formula-fälten.

Post by hekj »

Klas wrote:
hekj wrote:Det som hamnar i kön är först:
1) programerat klockslag - max inkopplingstid

Samt lite senare... efter att ovanstående tidpunkt inträffat:
2) programerat klockslag - beräknad inkopplingstid (klockslaget justeras framåt i tiden)
Det innebär att endast sensorvärdet som gäller vid punkt 1 kommer användas? Om sensorn ändras efter detta kommer det inte påverka tillslaget?
Ja, sensorvärdet hämtas efter att klockslaget vid punkt 1 har inträffat.
Post Reply