Skip to content
This repository has been archived by the owner on Feb 24, 2021. It is now read-only.

feat: parse value functions #739 #741

Merged
merged 6 commits into from
Sep 25, 2020
Merged

feat: parse value functions #739 #741

merged 6 commits into from
Sep 25, 2020

Conversation

robertsLando
Copy link
Member

@robertsLando robertsLando commented Sep 24, 2020

This will allow users to specify a custom parse/recieve js function in gateway values table :)

Schermata da 2020-09-24 10-08-30

debug('Error eval function of value ', valueId.value_id, error.message)
}

return result
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is returning null on failure better than returning the original value?
can you return a promise? does it work?

Copy link
Member Author

@robertsLando robertsLando Sep 24, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works in this way (I have tested this with a real device). I would not return a promise as the conversion function should be fast.

I could return the original value when it fails but I think this makes the code more readable, I mean If I return the original value, by reading the code seems that the function has return that value. What do you think it's better?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

promises can be fast, the question is to whether it has to be sync or can it be async.
either is probably fine, but i'd make that clear in the gui that it must be a syncronis response.
theres technically no reason not to do async/promises, but i'm sure it could introduce all sorts of peculiar race conditions

src/components/dialogs/DialogGatewayValue.vue Outdated Show resolved Hide resolved
debug('Error eval function of value ', valueId.value_id, error.message)
}

return result
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

promises can be fast, the question is to whether it has to be sync or can it be async.
either is probably fine, but i'd make that clear in the gui that it must be a syncronis response.
theres technically no reason not to do async/promises, but i'm sure it could introduce all sorts of peculiar race conditions

lib/Gateway.js Outdated Show resolved Hide resolved
@robertsLando robertsLando merged commit c356a5b into master Sep 25, 2020
@robertsLando robertsLando deleted the parseFunction branch September 25, 2020 09:24
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[question] How to handle unusual device values with home assistant discovery.
2 participants