Variabelen organiseren?

Hoe organiseer ik mijn variabelen in Homey Pro 2023?

Ik heb variabelen die ik alleen binnen één flow gebruik, waar andere variabelen binnen meerdere flows gebruikt mogen worden. Zie mijn voorbeeld: Homey Pro (2023) - Logica / BLL - Exponentiele berekeningen? - #5 by hoogv001

Ik zou graag per variabele kunnen selecteren of het een ‘local’ variabele is (gekoppeld aan een specifieke flow) of een ‘global’ variabele (te gebruiken in alle flows).

Is zoiets mogelijk of zit ik hier ter plekke een Homey feature request te verzinnen? :grin: :innocent:

Variabelen zijn in principe global, en Tags kunnen local zijn

Je zou “local” variabelen kunnen markeren met bijv. een L voor de variabelenaam;

Met adv. flow Homeyscript kaartjes kun je local tags fabriceren;

Of met een app:
Temporary Variables

Of deze app:
Flow Utilities.
Kan op dit moment enkel JaNee en numerieke local tags creëren.

Het nadeel van local tags vind ik, dat ze niet te zien / te vinden zijn in een lijst, ze zijn enkel binnen een flow te ‘zien’.

Dank je Peter.
In je antwoord zit weer zoveel om van te leren. Hier ben ik wel weer even zoet mee :grin:

1 Like

Heel graag gedaan!
Mán, voordat ik eindelijk doorhad wat nu het precieze verschil tussen variabelen en tags is…

3 Likes

Dat geloof ik graag Peter.
Ik weet het nog steeds niet exact dat verschil :grin:

Wat ik wel weet is dat ik met jouw antwoorden zit te spelen.
Heb nu de optie “Temporary Variables” in gebruik.

Maar ik heb iets hinderlijks ontdekt.
Zie daarom eerst het stukje flow wat ik gemaakt heb:

Je ziet regelmatig ogenschijnlijk dezelfde tijdelijke variabele “Result float”, maar schijn bedriegt.
Want:

  • Result float in blok D is het resultaat van blok C
  • Result float in blok B is het resultaat van blok A
  • De 5x Result float in blok C is 2x het resultaat van blok A en 3x het resultaat van blok B

Is er een mogelijkheid om met meerdere tijdelijke variabelen in één flow, al die tijdelijke variabelen een verschillende naam te geven?

En nog een andere vraag m.b.t. variabelen.
Ik wil 3 flows maken.

Twee keer min of meer dezelfde flow, maar ieder met z’n eigen sensor als bron en de output van deze flow is een variabele met een waarde die bepaald is door de sensor data van die flow. Dus flow 1 genereert variabele A en flow 2 genereert variabele B.

Vanuit beide flows wil ik één en dezelfde derde flow aanroepen om een berekening uit te voeren. Maar afhankelijk van welke van die twee andere flows de aanroep doet (flow 1 of 2), is het dus of variabele A of variabele B die gebruikt moet worden in de berekening van de derde flow…

Is dat mogelijk? En zo ja hoe?

Met Advanced Triggers kun je meerdere waardes (data / variabelen) meegeven aan een DAN kaart, en deze waardes in een ALS flow trigger laten terugkomen.
DAN en ALS kaartjes kunnen ook op verschillende canvassen bestaan (uit mijn hoofd)
Kun je hier iets mee?

_

Volgens mij zijn variabelen global, en door jezelf gecreëerd.
Tags zijn globale variabelen die via apps, of apparaten van apps beschikbaar zijn.
Met Homeyscript kun je ook globale tags creëren, waarschijnlijk om ze in verschillende scripts te kunnen gebruiken (maar dat wordt door Athom weer variabele genoemd in het voorbeeldscript):

global.set('myHomeyScriptVariable', 'Some Value');

Maar deze tags komen in al je flows beschikbaar, lijkt mij ook redelijk global :laughing:

log('Creating My String...');
await tag('My String', 'abcdef');

log('Creating My Number...');
await tag('My Number', 123);

log('Creating My Boolean...');
await tag('My Boolean', true);

En je kunt in flows dus local tags aanmaken, zoals eerder beschreven.

Dus nee, ik weet het eigenlijk ook nog steeds niet helemaal zeker hahaha.
(Medelezers: verbeter me ajb als ik er naast zit met dit verhaal :partying_face:)

_

Voorzover mij bekend niet. Dan kom ik weer uit bij globale variabelen, om deze te ‘misbruiken’ met een indicator in de naam dat ze enkel voor lokaal gebruik zijn bedoeld.

1 Like


Start de derde flow vanuit de eerste met kaart ‘start flow met ‘tekst’.

Test in de derde flow of variabele A gebruikt moet worden.

1 Like

Was er al bang voor Peter.
Maar heb nu van de hele berekening een eigen ‘calculatie’ flow gemaakt met z’n eigen variabelen en afhankelijk van welke flow deze ‘calculatie’ flow aanroept, heb ik met hulp van de antwoorden van jou (advanced triggers) en Wim (flow) verder gewerkt aan een oplossing.

1 Like

Eureka Wim, hier kan ik wel wat mee! Thnx

Ok, tijdelijke variabelen brengt me niet waar ik heen wil. Andere beperkingen waardoor de leesbaarheid van mijn formules alleen maar slechter wordt.

Maar een andere flow aanroepen door een tag mee te geven, kan ik dus wel verder mee.

Wat is het geworden?

Ik heb een flow gemaakt om de absolute luchtvochtigheid te berekenen op basis van temperatuur, relatieve luchtvochtigheid en luchtdruk (jawel de draak van een formule) :face_with_thermometer:

Maar ik heb drie vertrekken (wc, badkamer en buiten boven de deur van de schuur) met een sensor die alle drie die waarden meet. Zodra een van de waarden veranderd, moet de absolute luchtvochtigheid dus opnieuw berekend worden. Maar ik heb geen zin om drie flows te maken met elk diezelfde formule. Want dat kan dus slimmer:

De flow van een van de sensoren:

De flow die de berekening doet:

Vragen, opmerkingen, verbetervoorstellen?
Ik hou me aanbevolen :wink:

1 Like