node-red-contrib-huemagic 4.2.2 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +89 -5
- package/README.md +506 -123
- package/examples/Deutsch/Hue Automation.json +176 -0
- package/examples/Deutsch/Hue Bridge.json +256 -0
- package/examples/Deutsch/Hue Brightness.json +150 -0
- package/examples/Deutsch/Hue Buttons.json +88 -0
- package/examples/Deutsch/Hue Contact.json +150 -0
- package/examples/Deutsch/Hue Group.json +658 -0
- package/examples/Deutsch/Hue Light.json +893 -0
- package/examples/Deutsch/Hue Magic.json +148 -0
- package/examples/Deutsch/Hue Motion.json +150 -0
- package/examples/Deutsch/Hue Rules.json +150 -0
- package/examples/Deutsch/Hue Scene.json +178 -0
- package/examples/Deutsch/Hue Speaker.json +274 -0
- package/examples/Deutsch/Hue Sync Box.json +378 -0
- package/examples/Deutsch/Hue Temperature.json +150 -0
- package/examples/English/Hue Automation.json +176 -0
- package/examples/{Hue Bridge.json → English/Hue Bridge.json } +1 -1
- package/examples/{Hue Brightness.json → English/Hue Brightness.json } +1 -1
- package/examples/{Hue Buttons.json → English/Hue Buttons.json } +1 -1
- package/examples/English/Hue Contact.json +150 -0
- package/examples/{Hue Group.json → English/Hue Group.json } +1 -1
- package/examples/{Hue Light.json → English/Hue Light.json } +1 -1
- package/examples/{Hue Magic.json → English/Hue Magic.json } +1 -1
- package/examples/{Hue Motion.json → English/Hue Motion.json } +1 -1
- package/examples/{Hue Rules.json → English/Hue Rules.json } +1 -1
- package/examples/{Hue Scene.json → English/Hue Scene.json } +1 -1
- package/examples/English/Hue Speaker.json +274 -0
- package/examples/English/Hue Sync Box.json +378 -0
- package/examples/{Hue Temperature.json → English/Hue Temperature.json } +1 -1
- package/examples/Espa/303/261ol/Hue Automation.json" +176 -0
- package/examples/Espa/303/261ol/Hue Bridge.json" +256 -0
- package/examples/Espa/303/261ol/Hue Brightness.json" +150 -0
- package/examples/Espa/303/261ol/Hue Buttons.json" +88 -0
- package/examples/Espa/303/261ol/Hue Contact.json" +150 -0
- package/examples/Espa/303/261ol/Hue Group.json" +658 -0
- package/examples/Espa/303/261ol/Hue Light.json" +893 -0
- package/examples/Espa/303/261ol/Hue Magic.json" +148 -0
- package/examples/Espa/303/261ol/Hue Motion.json" +150 -0
- package/examples/Espa/303/261ol/Hue Rules.json" +150 -0
- package/examples/Espa/303/261ol/Hue Scene.json" +178 -0
- package/examples/Espa/303/261ol/Hue Speaker.json" +274 -0
- package/examples/Espa/303/261ol/Hue Sync Box.json" +378 -0
- package/examples/Espa/303/261ol/Hue Temperature.json" +150 -0
- package/examples/Fran/303/247ais/Hue Automation.json" +176 -0
- package/examples/Fran/303/247ais/Hue Bridge.json" +256 -0
- package/examples/Fran/303/247ais/Hue Brightness.json" +150 -0
- package/examples/Fran/303/247ais/Hue Buttons.json" +88 -0
- package/examples/Fran/303/247ais/Hue Contact.json" +150 -0
- package/examples/Fran/303/247ais/Hue Group.json" +658 -0
- package/examples/Fran/303/247ais/Hue Light.json" +893 -0
- package/examples/Fran/303/247ais/Hue Magic.json" +148 -0
- package/examples/Fran/303/247ais/Hue Motion.json" +150 -0
- package/examples/Fran/303/247ais/Hue Rules.json" +150 -0
- package/examples/Fran/303/247ais/Hue Scene.json" +178 -0
- package/examples/Fran/303/247ais/Hue Speaker.json" +274 -0
- package/examples/Fran/303/247ais/Hue Sync Box.json" +378 -0
- package/examples/Fran/303/247ais/Hue Temperature.json" +150 -0
- package/examples/Italiano/Hue Automation.json +176 -0
- package/examples/Italiano/Hue Bridge.json +256 -0
- package/examples/Italiano/Hue Brightness.json +150 -0
- package/examples/Italiano/Hue Buttons.json +88 -0
- package/examples/Italiano/Hue Contact.json +150 -0
- package/examples/Italiano/Hue Group.json +658 -0
- package/examples/Italiano/Hue Light.json +893 -0
- package/examples/Italiano/Hue Magic.json +148 -0
- package/examples/Italiano/Hue Motion.json +150 -0
- package/examples/Italiano/Hue Rules.json +150 -0
- package/examples/Italiano/Hue Scene.json +178 -0
- package/examples/Italiano/Hue Speaker.json +274 -0
- package/examples/Italiano/Hue Sync Box.json +378 -0
- package/examples/Italiano/Hue Temperature.json +150 -0
- package/examples/Nederlands/Hue Automation.json +176 -0
- package/examples/Nederlands/Hue Bridge.json +256 -0
- package/examples/Nederlands/Hue Brightness.json +150 -0
- package/examples/Nederlands/Hue Buttons.json +88 -0
- package/examples/Nederlands/Hue Contact.json +150 -0
- package/examples/Nederlands/Hue Group.json +658 -0
- package/examples/Nederlands/Hue Light.json +893 -0
- package/examples/Nederlands/Hue Magic.json +148 -0
- package/examples/Nederlands/Hue Motion.json +150 -0
- package/examples/Nederlands/Hue Rules.json +150 -0
- package/examples/Nederlands/Hue Scene.json +178 -0
- package/examples/Nederlands/Hue Speaker.json +274 -0
- package/examples/Nederlands/Hue Sync Box.json +378 -0
- package/examples/Nederlands/Hue Temperature.json +150 -0
- package/examples/Polski/Hue Automation.json +176 -0
- package/examples/Polski/Hue Bridge.json +256 -0
- package/examples/Polski/Hue Brightness.json +150 -0
- package/examples/Polski/Hue Buttons.json +88 -0
- package/examples/Polski/Hue Contact.json +150 -0
- package/examples/Polski/Hue Group.json +658 -0
- package/examples/Polski/Hue Light.json +893 -0
- package/examples/Polski/Hue Magic.json +148 -0
- package/examples/Polski/Hue Motion.json +150 -0
- package/examples/Polski/Hue Rules.json +150 -0
- package/examples/Polski/Hue Scene.json +178 -0
- package/examples/Polski/Hue Speaker.json +274 -0
- package/examples/Polski/Hue Sync Box.json +378 -0
- package/examples/Polski/Hue Temperature.json +150 -0
- package/examples/Portugu/303/252s/Hue Automation.json" +176 -0
- package/examples/Portugu/303/252s/Hue Bridge.json" +256 -0
- package/examples/Portugu/303/252s/Hue Brightness.json" +150 -0
- package/examples/Portugu/303/252s/Hue Buttons.json" +88 -0
- package/examples/Portugu/303/252s/Hue Contact.json" +150 -0
- package/examples/Portugu/303/252s/Hue Group.json" +658 -0
- package/examples/Portugu/303/252s/Hue Light.json" +893 -0
- package/examples/Portugu/303/252s/Hue Magic.json" +148 -0
- package/examples/Portugu/303/252s/Hue Motion.json" +150 -0
- package/examples/Portugu/303/252s/Hue Rules.json" +150 -0
- package/examples/Portugu/303/252s/Hue Scene.json" +178 -0
- package/examples/Portugu/303/252s/Hue Speaker.json" +274 -0
- package/examples/Portugu/303/252s/Hue Sync Box.json" +378 -0
- package/examples/Portugu/303/252s/Hue Temperature.json" +150 -0
- package/examples/T/303/274rk/303/247e/Hue Automation.json" +176 -0
- package/examples/T/303/274rk/303/247e/Hue Bridge.json" +256 -0
- package/examples/T/303/274rk/303/247e/Hue Brightness.json" +150 -0
- package/examples/T/303/274rk/303/247e/Hue Buttons.json" +88 -0
- package/examples/T/303/274rk/303/247e/Hue Contact.json" +150 -0
- package/examples/T/303/274rk/303/247e/Hue Group.json" +658 -0
- package/examples/T/303/274rk/303/247e/Hue Light.json" +893 -0
- package/examples/T/303/274rk/303/247e/Hue Magic.json" +148 -0
- package/examples/T/303/274rk/303/247e/Hue Motion.json" +150 -0
- package/examples/T/303/274rk/303/247e/Hue Rules.json" +150 -0
- package/examples/T/303/274rk/303/247e/Hue Scene.json" +178 -0
- package/examples/T/303/274rk/303/247e/Hue Speaker.json" +274 -0
- package/examples/T/303/274rk/303/247e/Hue Sync Box.json" +378 -0
- package/examples/T/303/274rk/303/247e/Hue Temperature.json" +150 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Automation.json" +176 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Bridge.json" +256 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Brightness.json" +150 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Buttons.json" +88 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Contact.json" +150 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Group.json" +658 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Light.json" +893 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Magic.json" +148 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Motion.json" +150 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Rules.json" +150 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Scene.json" +178 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Speaker.json" +274 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Sync Box.json" +378 -0
- package/examples//316/225/316/273/316/273/316/267/316/275/316/271/316/272/316/254/Hue Temperature.json" +150 -0
- package/huemagic/assets/huemagic-examples.gif +0 -0
- package/huemagic/hue-automation.html +218 -0
- package/huemagic/hue-automation.js +173 -0
- package/huemagic/hue-bridge-config.html +39 -32
- package/huemagic/hue-bridge-config.js +290 -99
- package/huemagic/hue-bridge.html +8 -8
- package/huemagic/hue-bridge.js +29 -4
- package/huemagic/hue-brightness.html +21 -9
- package/huemagic/hue-brightness.js +20 -10
- package/huemagic/hue-buttons.html +16 -9
- package/huemagic/hue-buttons.js +90 -27
- package/huemagic/hue-contact.html +218 -0
- package/huemagic/hue-contact.js +209 -0
- package/huemagic/hue-group.html +16 -9
- package/huemagic/hue-group.js +141 -179
- package/huemagic/hue-light.html +19 -12
- package/huemagic/hue-light.js +222 -167
- package/huemagic/hue-magic.html +3 -5
- package/huemagic/hue-motion.html +16 -9
- package/huemagic/hue-motion.js +37 -8
- package/huemagic/hue-rules.html +16 -9
- package/huemagic/hue-rules.js +16 -8
- package/huemagic/hue-scene.html +9 -5
- package/huemagic/hue-scene.js +52 -16
- package/huemagic/hue-speaker.html +218 -0
- package/huemagic/hue-speaker.js +257 -0
- package/huemagic/hue-syncbox-config.html +123 -0
- package/huemagic/hue-syncbox-config.js +179 -0
- package/huemagic/hue-syncbox.html +82 -0
- package/huemagic/hue-syncbox.js +274 -0
- package/huemagic/hue-temperature.html +21 -9
- package/huemagic/hue-temperature.js +18 -10
- package/huemagic/icons/hue-automation.png +0 -0
- package/huemagic/icons/hue-automation.svg +3 -0
- package/huemagic/icons/hue-contact.png +0 -0
- package/huemagic/icons/hue-contact.svg +4 -0
- package/huemagic/icons/hue-speaker.png +0 -0
- package/huemagic/icons/hue-speaker.svg +6 -0
- package/huemagic/icons/hue-syncbox.png +0 -0
- package/huemagic/icons/hue-syncbox.svg +7 -0
- package/huemagic/locales/de/hue-automation.html +59 -0
- package/huemagic/locales/de/hue-automation.json +33 -0
- package/huemagic/locales/de/hue-bridge-config.json +23 -12
- package/huemagic/locales/de/hue-bridge.html +7 -4
- package/huemagic/locales/de/hue-bridge.json +9 -10
- package/huemagic/locales/de/hue-brightness.html +9 -6
- package/huemagic/locales/de/hue-brightness.json +13 -9
- package/huemagic/locales/de/hue-buttons.html +5 -4
- package/huemagic/locales/de/hue-buttons.json +22 -8
- package/huemagic/locales/de/hue-contact.html +67 -0
- package/huemagic/locales/de/hue-contact.json +35 -0
- package/huemagic/locales/de/hue-group.html +17 -6
- package/huemagic/locales/de/hue-group.json +16 -9
- package/huemagic/locales/de/hue-light.html +6 -6
- package/huemagic/locales/de/hue-light.json +17 -9
- package/huemagic/locales/de/hue-magic.html +1 -1
- package/huemagic/locales/de/hue-magic.json +6 -8
- package/huemagic/locales/de/hue-motion.html +4 -4
- package/huemagic/locales/de/hue-motion.json +14 -9
- package/huemagic/locales/de/hue-rules.html +2 -2
- package/huemagic/locales/de/hue-rules.json +10 -9
- package/huemagic/locales/de/hue-scene.html +11 -3
- package/huemagic/locales/de/hue-scene.json +9 -9
- package/huemagic/locales/de/hue-speaker.html +80 -0
- package/huemagic/locales/de/hue-speaker.json +38 -0
- package/huemagic/locales/de/hue-syncbox-config.html +19 -0
- package/huemagic/locales/de/hue-syncbox-config.json +25 -0
- package/huemagic/locales/de/hue-syncbox.html +86 -0
- package/huemagic/locales/de/hue-syncbox.json +30 -0
- package/huemagic/locales/de/hue-temperature.html +7 -5
- package/huemagic/locales/de/hue-temperature.json +13 -9
- package/huemagic/locales/el/hue-automation.html +59 -0
- package/huemagic/locales/el/hue-automation.json +33 -0
- package/huemagic/locales/el/hue-bridge-config.html +31 -0
- package/huemagic/locales/el/hue-bridge-config.json +40 -0
- package/huemagic/locales/el/hue-bridge.html +96 -0
- package/huemagic/locales/el/hue-bridge.json +26 -0
- package/huemagic/locales/el/hue-brightness.html +70 -0
- package/huemagic/locales/el/hue-brightness.json +37 -0
- package/huemagic/locales/el/hue-buttons.html +59 -0
- package/huemagic/locales/el/hue-buttons.json +42 -0
- package/huemagic/locales/el/hue-contact.html +67 -0
- package/huemagic/locales/el/hue-contact.json +35 -0
- package/huemagic/locales/el/hue-group.html +87 -0
- package/huemagic/locales/el/hue-group.json +46 -0
- package/huemagic/locales/el/hue-light.html +97 -0
- package/huemagic/locales/el/hue-light.json +44 -0
- package/huemagic/locales/el/hue-magic.html +68 -0
- package/huemagic/locales/el/hue-magic.json +26 -0
- package/huemagic/locales/el/hue-motion.html +64 -0
- package/huemagic/locales/el/hue-motion.json +36 -0
- package/huemagic/locales/el/hue-rules.html +69 -0
- package/huemagic/locales/el/hue-rules.json +30 -0
- package/huemagic/locales/el/hue-scene.html +43 -0
- package/huemagic/locales/el/hue-scene.json +32 -0
- package/huemagic/locales/el/hue-speaker.html +80 -0
- package/huemagic/locales/el/hue-speaker.json +38 -0
- package/huemagic/locales/el/hue-syncbox-config.html +19 -0
- package/huemagic/locales/el/hue-syncbox-config.json +25 -0
- package/huemagic/locales/el/hue-syncbox.html +86 -0
- package/huemagic/locales/el/hue-syncbox.json +30 -0
- package/huemagic/locales/el/hue-temperature.html +69 -0
- package/huemagic/locales/el/hue-temperature.json +33 -0
- package/huemagic/locales/en/hue-automation.html +59 -0
- package/huemagic/locales/en/hue-automation.json +33 -0
- package/huemagic/locales/en/hue-bridge-config.json +40 -0
- package/huemagic/locales/{en-US → en}/hue-bridge.html +5 -2
- package/huemagic/locales/{en-US → en}/hue-bridge.json +8 -9
- package/huemagic/locales/{en-US → en}/hue-brightness.html +6 -3
- package/huemagic/locales/{en-US → en}/hue-brightness.json +11 -9
- package/huemagic/locales/{en-US → en}/hue-buttons.html +4 -3
- package/huemagic/locales/en/hue-buttons.json +42 -0
- package/huemagic/locales/en/hue-contact.html +67 -0
- package/huemagic/locales/en/hue-contact.json +35 -0
- package/huemagic/locales/{en-US → en}/hue-group.html +16 -5
- package/huemagic/locales/{en-US → en}/hue-group.json +15 -10
- package/huemagic/locales/{en-US → en}/hue-light.html +3 -3
- package/huemagic/locales/en/hue-light.json +44 -0
- package/huemagic/locales/{en-US → en}/hue-magic.html +1 -1
- package/huemagic/locales/{en-US → en}/hue-motion.html +2 -2
- package/huemagic/locales/{en-US → en}/hue-motion.json +12 -9
- package/huemagic/locales/{en-US → en}/hue-rules.html +2 -2
- package/huemagic/locales/{en-US → en}/hue-rules.json +10 -9
- package/huemagic/locales/{en-US → en}/hue-scene.html +11 -3
- package/huemagic/locales/{en-US → en}/hue-scene.json +9 -9
- package/huemagic/locales/en/hue-speaker.html +80 -0
- package/huemagic/locales/en/hue-speaker.json +38 -0
- package/huemagic/locales/en/hue-syncbox-config.html +19 -0
- package/huemagic/locales/en/hue-syncbox-config.json +25 -0
- package/huemagic/locales/en/hue-syncbox.html +86 -0
- package/huemagic/locales/en/hue-syncbox.json +30 -0
- package/huemagic/locales/{en-US → en}/hue-temperature.html +4 -2
- package/huemagic/locales/{en-US → en}/hue-temperature.json +11 -9
- package/huemagic/locales/es/hue-automation.html +59 -0
- package/huemagic/locales/es/hue-automation.json +33 -0
- package/huemagic/locales/es/hue-bridge-config.html +31 -0
- package/huemagic/locales/es/hue-bridge-config.json +40 -0
- package/huemagic/locales/es/hue-bridge.html +96 -0
- package/huemagic/locales/es/hue-bridge.json +26 -0
- package/huemagic/locales/es/hue-brightness.html +70 -0
- package/huemagic/locales/es/hue-brightness.json +37 -0
- package/huemagic/locales/es/hue-buttons.html +59 -0
- package/huemagic/locales/es/hue-buttons.json +42 -0
- package/huemagic/locales/es/hue-contact.html +67 -0
- package/huemagic/locales/es/hue-contact.json +35 -0
- package/huemagic/locales/es/hue-group.html +87 -0
- package/huemagic/locales/es/hue-group.json +46 -0
- package/huemagic/locales/es/hue-light.html +97 -0
- package/huemagic/locales/es/hue-light.json +44 -0
- package/huemagic/locales/es/hue-magic.html +68 -0
- package/huemagic/locales/es/hue-magic.json +26 -0
- package/huemagic/locales/es/hue-motion.html +64 -0
- package/huemagic/locales/es/hue-motion.json +36 -0
- package/huemagic/locales/es/hue-rules.html +69 -0
- package/huemagic/locales/es/hue-rules.json +30 -0
- package/huemagic/locales/es/hue-scene.html +43 -0
- package/huemagic/locales/es/hue-scene.json +32 -0
- package/huemagic/locales/es/hue-speaker.html +80 -0
- package/huemagic/locales/es/hue-speaker.json +38 -0
- package/huemagic/locales/es/hue-syncbox-config.html +19 -0
- package/huemagic/locales/es/hue-syncbox-config.json +25 -0
- package/huemagic/locales/es/hue-syncbox.html +86 -0
- package/huemagic/locales/es/hue-syncbox.json +30 -0
- package/huemagic/locales/es/hue-temperature.html +69 -0
- package/huemagic/locales/es/hue-temperature.json +33 -0
- package/huemagic/locales/fr/hue-automation.html +59 -0
- package/huemagic/locales/fr/hue-automation.json +33 -0
- package/huemagic/locales/fr/hue-bridge-config.html +31 -0
- package/huemagic/locales/fr/hue-bridge-config.json +40 -0
- package/huemagic/locales/fr/hue-bridge.html +96 -0
- package/huemagic/locales/fr/hue-bridge.json +26 -0
- package/huemagic/locales/fr/hue-brightness.html +70 -0
- package/huemagic/locales/fr/hue-brightness.json +37 -0
- package/huemagic/locales/fr/hue-buttons.html +59 -0
- package/huemagic/locales/fr/hue-buttons.json +42 -0
- package/huemagic/locales/fr/hue-contact.html +67 -0
- package/huemagic/locales/fr/hue-contact.json +35 -0
- package/huemagic/locales/fr/hue-group.html +87 -0
- package/huemagic/locales/fr/hue-group.json +46 -0
- package/huemagic/locales/fr/hue-light.html +97 -0
- package/huemagic/locales/fr/hue-light.json +44 -0
- package/huemagic/locales/fr/hue-magic.html +68 -0
- package/huemagic/locales/fr/hue-magic.json +26 -0
- package/huemagic/locales/fr/hue-motion.html +64 -0
- package/huemagic/locales/fr/hue-motion.json +36 -0
- package/huemagic/locales/fr/hue-rules.html +69 -0
- package/huemagic/locales/fr/hue-rules.json +30 -0
- package/huemagic/locales/fr/hue-scene.html +43 -0
- package/huemagic/locales/fr/hue-scene.json +32 -0
- package/huemagic/locales/fr/hue-speaker.html +80 -0
- package/huemagic/locales/fr/hue-speaker.json +38 -0
- package/huemagic/locales/fr/hue-syncbox-config.html +19 -0
- package/huemagic/locales/fr/hue-syncbox-config.json +25 -0
- package/huemagic/locales/fr/hue-syncbox.html +86 -0
- package/huemagic/locales/fr/hue-syncbox.json +30 -0
- package/huemagic/locales/fr/hue-temperature.html +69 -0
- package/huemagic/locales/fr/hue-temperature.json +33 -0
- package/huemagic/locales/it/hue-automation.html +59 -0
- package/huemagic/locales/it/hue-automation.json +33 -0
- package/huemagic/locales/it/hue-bridge-config.html +31 -0
- package/huemagic/locales/it/hue-bridge-config.json +40 -0
- package/huemagic/locales/it/hue-bridge.html +96 -0
- package/huemagic/locales/it/hue-bridge.json +26 -0
- package/huemagic/locales/it/hue-brightness.html +70 -0
- package/huemagic/locales/it/hue-brightness.json +37 -0
- package/huemagic/locales/it/hue-buttons.html +59 -0
- package/huemagic/locales/it/hue-buttons.json +42 -0
- package/huemagic/locales/it/hue-contact.html +67 -0
- package/huemagic/locales/it/hue-contact.json +35 -0
- package/huemagic/locales/it/hue-group.html +87 -0
- package/huemagic/locales/it/hue-group.json +46 -0
- package/huemagic/locales/it/hue-light.html +97 -0
- package/huemagic/locales/it/hue-light.json +44 -0
- package/huemagic/locales/it/hue-magic.html +68 -0
- package/huemagic/locales/it/hue-magic.json +26 -0
- package/huemagic/locales/it/hue-motion.html +64 -0
- package/huemagic/locales/it/hue-motion.json +36 -0
- package/huemagic/locales/it/hue-rules.html +69 -0
- package/huemagic/locales/it/hue-rules.json +30 -0
- package/huemagic/locales/it/hue-scene.html +43 -0
- package/huemagic/locales/it/hue-scene.json +32 -0
- package/huemagic/locales/it/hue-speaker.html +80 -0
- package/huemagic/locales/it/hue-speaker.json +38 -0
- package/huemagic/locales/it/hue-syncbox-config.html +19 -0
- package/huemagic/locales/it/hue-syncbox-config.json +25 -0
- package/huemagic/locales/it/hue-syncbox.html +86 -0
- package/huemagic/locales/it/hue-syncbox.json +30 -0
- package/huemagic/locales/it/hue-temperature.html +69 -0
- package/huemagic/locales/it/hue-temperature.json +33 -0
- package/huemagic/locales/nl/hue-automation.html +59 -0
- package/huemagic/locales/nl/hue-automation.json +33 -0
- package/huemagic/locales/nl/hue-bridge-config.html +31 -0
- package/huemagic/locales/nl/hue-bridge-config.json +40 -0
- package/huemagic/locales/nl/hue-bridge.html +96 -0
- package/huemagic/locales/nl/hue-bridge.json +26 -0
- package/huemagic/locales/nl/hue-brightness.html +70 -0
- package/huemagic/locales/nl/hue-brightness.json +37 -0
- package/huemagic/locales/nl/hue-buttons.html +59 -0
- package/huemagic/locales/nl/hue-buttons.json +42 -0
- package/huemagic/locales/nl/hue-contact.html +67 -0
- package/huemagic/locales/nl/hue-contact.json +35 -0
- package/huemagic/locales/nl/hue-group.html +87 -0
- package/huemagic/locales/nl/hue-group.json +46 -0
- package/huemagic/locales/nl/hue-light.html +97 -0
- package/huemagic/locales/nl/hue-light.json +44 -0
- package/huemagic/locales/nl/hue-magic.html +68 -0
- package/huemagic/locales/nl/hue-magic.json +26 -0
- package/huemagic/locales/nl/hue-motion.html +64 -0
- package/huemagic/locales/nl/hue-motion.json +36 -0
- package/huemagic/locales/nl/hue-rules.html +69 -0
- package/huemagic/locales/nl/hue-rules.json +30 -0
- package/huemagic/locales/nl/hue-scene.html +43 -0
- package/huemagic/locales/nl/hue-scene.json +32 -0
- package/huemagic/locales/nl/hue-speaker.html +80 -0
- package/huemagic/locales/nl/hue-speaker.json +38 -0
- package/huemagic/locales/nl/hue-syncbox-config.html +19 -0
- package/huemagic/locales/nl/hue-syncbox-config.json +25 -0
- package/huemagic/locales/nl/hue-syncbox.html +86 -0
- package/huemagic/locales/nl/hue-syncbox.json +30 -0
- package/huemagic/locales/nl/hue-temperature.html +69 -0
- package/huemagic/locales/nl/hue-temperature.json +33 -0
- package/huemagic/locales/pl/hue-automation.html +59 -0
- package/huemagic/locales/pl/hue-automation.json +33 -0
- package/huemagic/locales/pl/hue-bridge-config.html +31 -0
- package/huemagic/locales/pl/hue-bridge-config.json +40 -0
- package/huemagic/locales/pl/hue-bridge.html +96 -0
- package/huemagic/locales/pl/hue-bridge.json +26 -0
- package/huemagic/locales/pl/hue-brightness.html +70 -0
- package/huemagic/locales/pl/hue-brightness.json +37 -0
- package/huemagic/locales/pl/hue-buttons.html +59 -0
- package/huemagic/locales/pl/hue-buttons.json +42 -0
- package/huemagic/locales/pl/hue-contact.html +67 -0
- package/huemagic/locales/pl/hue-contact.json +35 -0
- package/huemagic/locales/pl/hue-group.html +87 -0
- package/huemagic/locales/pl/hue-group.json +46 -0
- package/huemagic/locales/pl/hue-light.html +97 -0
- package/huemagic/locales/pl/hue-light.json +44 -0
- package/huemagic/locales/pl/hue-magic.html +68 -0
- package/huemagic/locales/pl/hue-magic.json +26 -0
- package/huemagic/locales/pl/hue-motion.html +64 -0
- package/huemagic/locales/pl/hue-motion.json +36 -0
- package/huemagic/locales/pl/hue-rules.html +69 -0
- package/huemagic/locales/pl/hue-rules.json +30 -0
- package/huemagic/locales/pl/hue-scene.html +43 -0
- package/huemagic/locales/pl/hue-scene.json +32 -0
- package/huemagic/locales/pl/hue-speaker.html +80 -0
- package/huemagic/locales/pl/hue-speaker.json +38 -0
- package/huemagic/locales/pl/hue-syncbox-config.html +19 -0
- package/huemagic/locales/pl/hue-syncbox-config.json +25 -0
- package/huemagic/locales/pl/hue-syncbox.html +86 -0
- package/huemagic/locales/pl/hue-syncbox.json +30 -0
- package/huemagic/locales/pl/hue-temperature.html +69 -0
- package/huemagic/locales/pl/hue-temperature.json +33 -0
- package/huemagic/locales/pt/hue-automation.html +59 -0
- package/huemagic/locales/pt/hue-automation.json +33 -0
- package/huemagic/locales/pt/hue-bridge-config.html +31 -0
- package/huemagic/locales/pt/hue-bridge-config.json +40 -0
- package/huemagic/locales/pt/hue-bridge.html +96 -0
- package/huemagic/locales/pt/hue-bridge.json +26 -0
- package/huemagic/locales/pt/hue-brightness.html +70 -0
- package/huemagic/locales/pt/hue-brightness.json +37 -0
- package/huemagic/locales/pt/hue-buttons.html +59 -0
- package/huemagic/locales/pt/hue-buttons.json +42 -0
- package/huemagic/locales/pt/hue-contact.html +67 -0
- package/huemagic/locales/pt/hue-contact.json +35 -0
- package/huemagic/locales/pt/hue-group.html +87 -0
- package/huemagic/locales/pt/hue-group.json +46 -0
- package/huemagic/locales/pt/hue-light.html +97 -0
- package/huemagic/locales/pt/hue-light.json +44 -0
- package/huemagic/locales/pt/hue-magic.html +68 -0
- package/huemagic/locales/pt/hue-magic.json +26 -0
- package/huemagic/locales/pt/hue-motion.html +64 -0
- package/huemagic/locales/pt/hue-motion.json +36 -0
- package/huemagic/locales/pt/hue-rules.html +69 -0
- package/huemagic/locales/pt/hue-rules.json +30 -0
- package/huemagic/locales/pt/hue-scene.html +43 -0
- package/huemagic/locales/pt/hue-scene.json +32 -0
- package/huemagic/locales/pt/hue-speaker.html +80 -0
- package/huemagic/locales/pt/hue-speaker.json +38 -0
- package/huemagic/locales/pt/hue-syncbox-config.html +19 -0
- package/huemagic/locales/pt/hue-syncbox-config.json +25 -0
- package/huemagic/locales/pt/hue-syncbox.html +86 -0
- package/huemagic/locales/pt/hue-syncbox.json +30 -0
- package/huemagic/locales/pt/hue-temperature.html +69 -0
- package/huemagic/locales/pt/hue-temperature.json +33 -0
- package/huemagic/locales/tr/hue-automation.html +59 -0
- package/huemagic/locales/tr/hue-automation.json +33 -0
- package/huemagic/locales/tr/hue-bridge-config.html +31 -0
- package/huemagic/locales/tr/hue-bridge-config.json +40 -0
- package/huemagic/locales/tr/hue-bridge.html +96 -0
- package/huemagic/locales/tr/hue-bridge.json +26 -0
- package/huemagic/locales/tr/hue-brightness.html +70 -0
- package/huemagic/locales/tr/hue-brightness.json +37 -0
- package/huemagic/locales/tr/hue-buttons.html +59 -0
- package/huemagic/locales/tr/hue-buttons.json +42 -0
- package/huemagic/locales/tr/hue-contact.html +67 -0
- package/huemagic/locales/tr/hue-contact.json +35 -0
- package/huemagic/locales/tr/hue-group.html +87 -0
- package/huemagic/locales/tr/hue-group.json +46 -0
- package/huemagic/locales/tr/hue-light.html +97 -0
- package/huemagic/locales/tr/hue-light.json +44 -0
- package/huemagic/locales/tr/hue-magic.html +68 -0
- package/huemagic/locales/tr/hue-magic.json +26 -0
- package/huemagic/locales/tr/hue-motion.html +64 -0
- package/huemagic/locales/tr/hue-motion.json +36 -0
- package/huemagic/locales/tr/hue-rules.html +69 -0
- package/huemagic/locales/tr/hue-rules.json +30 -0
- package/huemagic/locales/tr/hue-scene.html +43 -0
- package/huemagic/locales/tr/hue-scene.json +32 -0
- package/huemagic/locales/tr/hue-speaker.html +80 -0
- package/huemagic/locales/tr/hue-speaker.json +38 -0
- package/huemagic/locales/tr/hue-syncbox-config.html +19 -0
- package/huemagic/locales/tr/hue-syncbox-config.json +25 -0
- package/huemagic/locales/tr/hue-syncbox.html +86 -0
- package/huemagic/locales/tr/hue-syncbox.json +30 -0
- package/huemagic/locales/tr/hue-temperature.html +69 -0
- package/huemagic/locales/tr/hue-temperature.json +33 -0
- package/huemagic/utils/api.js +158 -54
- package/huemagic/utils/color.js +20 -2
- package/huemagic/utils/merge.js +3 -2
- package/huemagic/utils/messages.js +506 -120
- package/huemagic/utils/sse.js +51 -0
- package/huemagic/utils/syncbox.js +84 -0
- package/package.json +19 -11
- package/.github/FUNDING.yml +0 -2
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/workflows/npm.yml +0 -18
- package/huemagic/locales/en-US/hue-bridge-config.json +0 -29
- package/huemagic/locales/en-US/hue-buttons.json +0 -34
- package/huemagic/locales/en-US/hue-light.json +0 -38
- /package/huemagic/locales/{en-US → en}/hue-bridge-config.html +0 -0
- /package/huemagic/locales/{en-US → en}/hue-magic.json +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-brightness": {
|
|
3
|
+
"config": {
|
|
4
|
+
"name": "Nome",
|
|
5
|
+
"skipevents-node": "Ignorar as mensagens do nó",
|
|
6
|
+
"sendinitevents-node": "Não suprimir o evento de inicialização",
|
|
7
|
+
"onlycommands-node": "Comunicar apenas após um comando",
|
|
8
|
+
"unknown-error": "Algo correu mal. Tente novamente.",
|
|
9
|
+
"bridge": "Bridge",
|
|
10
|
+
"universalevents": "Eventos universais",
|
|
11
|
+
"universalevents-node": "Recebe todas as mensagens de outros nós do mesmo tipo (apenas no modo universal)",
|
|
12
|
+
"input-name": "Nome do sensor de luminosidade",
|
|
13
|
+
"searching": "A procurar sensores…",
|
|
14
|
+
"none-found": "Nenhum sensor de luminosidade encontrado!",
|
|
15
|
+
"sensor": "Sensor",
|
|
16
|
+
"all": "Todos os grupos / luzes",
|
|
17
|
+
"darkthreshold": "Escuro abaixo de"
|
|
18
|
+
},
|
|
19
|
+
"node": {
|
|
20
|
+
"not-configured": "não configurado",
|
|
21
|
+
"deactivated": "desativado",
|
|
22
|
+
"init": "a inicializar…",
|
|
23
|
+
"not-reachable": "inacessível",
|
|
24
|
+
"universal": "modo universal",
|
|
25
|
+
"command": "a executar comando…",
|
|
26
|
+
"statusmsg": "Estado consultado com sucesso…",
|
|
27
|
+
"title": "Hue Luminosidade",
|
|
28
|
+
"lux": "__lux__ lux",
|
|
29
|
+
"lux-dark": "__lux__ lux (escuro)",
|
|
30
|
+
"lux-daylight": "__lux__ lux (luz do dia)",
|
|
31
|
+
"input": "consulta de estado",
|
|
32
|
+
"output": "luminosidade (alterada)",
|
|
33
|
+
"error-no-id": "Indique um ID de sensor válido.",
|
|
34
|
+
"error-not-available": "O sensor ainda não está disponível. Aguarde até que o HueMagic tenha estabelecido a ligação com o bridge ou verifique se o ID do recurso indicado na configuração é válido."
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="hue-buttons">
|
|
2
|
+
O nó «Hue Botões» recebe os eventos de comutação dos dispositivos de entrada ligados ao bridge.
|
|
3
|
+
|
|
4
|
+
### Configuração
|
|
5
|
+
|
|
6
|
+
Selecione o Hue Bridge pré-configurado e clique no botão de pesquisa para encontrar todos os interruptores e botões disponíveis. Se já souber o ID do interruptor ou botão, também o pode introduzir aqui manualmente. Pode atribuir internamente um novo nome ao dispositivo ou manter o nome predefinido. Opcionalmente, pode desativar todas as mensagens de estado automáticas deste nó através da definição «Ignorar as mensagens do nó». O nó deixará de emitir eventos de comutação. Em alternativa, pode escolher que a mensagem de inicialização do nó não seja suprimida no arranque do Node-RED. Se ativar esta definição, receberá uma mensagem de estado do interruptor ou botão selecionado após cada implementação. Se preferir que o nó permaneça em silêncio até lhe enviar algo, ative «Comunicar apenas após um comando». Nesse caso, ignora as alterações feitas na aplicação ou num interruptor e responde apenas aos seus próprios comandos.
|
|
7
|
+
|
|
8
|
+
Se não selecionar nenhum interruptor ou botão e utilizar assim a configuração do nó, o nó funciona no chamado «modo universal». Neste modo, o nó recebe e emite todas as mensagens de estado do mesmo tipo.
|
|
9
|
+
|
|
10
|
+
### Consultar o estado
|
|
11
|
+
|
|
12
|
+
Emite o estado atual do interruptor ou botão assim que for transmitido ao nó um objeto `msg.payload` com o seguinte conteúdo. Em alternativa, também pode premir o botão na interface do Node-RED sem ter de enviar previamente uma mensagem ao nó.
|
|
13
|
+
|
|
14
|
+
: status (boolean): Devolve o estado atual do interruptor ou botão
|
|
15
|
+
|
|
16
|
+
### Mensagens de estado do nó
|
|
17
|
+
|
|
18
|
+
Assim que uma tecla é premida, o nó devolve a seguinte mensagem de estado:
|
|
19
|
+
|
|
20
|
+
#### Objeto de estado em `msg.payload`
|
|
21
|
+
|
|
22
|
+
: reachable (boolean | string): `true` se o interruptor ou botão estiver ligado ao bridge, `unknown` se o estado da ligação divergir
|
|
23
|
+
: connectionStatus (string): O estado atual da ligação com o bridge sob a forma de uma cadeia de carateres. Pode conter `connected`, `disconnected`, `connectivity_issue` ou `unidirectional_incoming` como valor
|
|
24
|
+
: button (int | boolean): ID numérico da última tecla premida ou `false` se nenhuma tecla foi premida
|
|
25
|
+
: action (string | boolean): `false` se nenhuma tecla foi premida, ou `initial_press`, `repeat`, `short_release`, `long_press`, `long_release` ou `double_short_release` sob a forma de cadeia de carateres
|
|
26
|
+
: rotation (object | boolean): `false` se o dispositivo não tiver roda ou não tiver sido rodado; caso contrário, um objeto com `action` (`start` ou `repeat`), `direction` (`clock_wise` ou `counter_clock_wise`), `clockwise` (booleano), `steps` (1000 passos correspondem a uma volta completa), `degrees` e `duration` em milissegundos
|
|
27
|
+
: updated (string): Momento da última atualização do recurso pelo HueMagic (ISO 8601)
|
|
28
|
+
|
|
29
|
+
#### Informações sobre o interruptor ou botão em `msg.info`
|
|
30
|
+
|
|
31
|
+
: id (string): Indica o novo ID do interruptor ou botão
|
|
32
|
+
: idV1 (string | boolean): Indica o ID antigo do interruptor ou botão
|
|
33
|
+
: uniqueId (string): O ID único do interruptor ou botão
|
|
34
|
+
: deviceId (string): O ID único do dispositivo
|
|
35
|
+
: name (string): O nome atualmente atribuído ao interruptor ou botão
|
|
36
|
+
: type (string): O tipo do interruptor ou botão (sempre `button`)
|
|
37
|
+
: softwareVersion (string): O firmware atual do interruptor ou botão
|
|
38
|
+
: battery (float | boolean): O nível atual da bateria do interruptor ou botão, `false` quando não existe bateria
|
|
39
|
+
: batteryState (string | boolean): O estado atual do nível da bateria. Pode conter `normal`, `low` ou `critical` como valor, ou `false` quando não existe bateria
|
|
40
|
+
: model (object): Contém as informações de modelo do interruptor ou botão em `id`, `manufacturer`, `name`, `type` e `certified`
|
|
41
|
+
|
|
42
|
+
#### Alterações de estado em `msg.updated`
|
|
43
|
+
|
|
44
|
+
Enumera sob a forma de um objeto os parâmetros que foram alterados em relação ao último estado do interruptor ou botão. Se não tiverem sido registadas alterações, este objeto está vazio.
|
|
45
|
+
|
|
46
|
+
#### Último estado do interruptor ou botão em `msg.lastState`
|
|
47
|
+
|
|
48
|
+
Contém o objeto de estado completo (ver os valores de saída acima) do último estado antes da última alteração registada. Se o HueMagic ainda não tiver registado o último estado, é emitido `false`.
|
|
49
|
+
|
|
50
|
+
#### Último comando em `msg.command` (opcional)
|
|
51
|
+
|
|
52
|
+
Se o estado do nó tiver sido alterado através de um determinado comando, é também emitido o comando completo que foi executado. Caso contrário, o nó não emite este objeto.
|
|
53
|
+
|
|
54
|
+
### Exemplos do HueMagic
|
|
55
|
+
|
|
56
|
+
O HueMagic disponibiliza algumas configurações de exemplo para este nó. Para importar um exemplo completo na sua interface Node-RED, clique no ícone de menu do Node-RED, selecione «Importar» e navegue até «Exemplos» na barra lateral da janela. Em seguida, selecione a pasta HueMagic e o nó pretendido para importar um fluxo de exemplo.
|
|
57
|
+
|
|
58
|
+

|
|
59
|
+
</script>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-buttons": {
|
|
3
|
+
"config": {
|
|
4
|
+
"name": "Nome",
|
|
5
|
+
"skipevents-node": "Ignorar as mensagens do nó",
|
|
6
|
+
"sendinitevents-node": "Não suprimir o evento de inicialização",
|
|
7
|
+
"onlycommands-node": "Comunicar apenas após um comando",
|
|
8
|
+
"unknown-error": "Algo correu mal. Tente novamente.",
|
|
9
|
+
"bridge": "Bridge",
|
|
10
|
+
"universalevents": "Eventos universais",
|
|
11
|
+
"universalevents-node": "Recebe todas as mensagens de outros nós do mesmo tipo (apenas no modo universal)",
|
|
12
|
+
"input-name": "Nome do botão",
|
|
13
|
+
"searching": "A procurar Hue Buttons…",
|
|
14
|
+
"none-found": "Nenhum Hue Button encontrado!",
|
|
15
|
+
"button": "Botão"
|
|
16
|
+
},
|
|
17
|
+
"node": {
|
|
18
|
+
"not-configured": "não configurado",
|
|
19
|
+
"universal": "modo universal",
|
|
20
|
+
"command": "a executar comando…",
|
|
21
|
+
"statusmsg": "Estado consultado com sucesso…",
|
|
22
|
+
"title": "Hue Botões",
|
|
23
|
+
"waiting": "a aguardar…",
|
|
24
|
+
"button-on": "On",
|
|
25
|
+
"action-pressed": "premido",
|
|
26
|
+
"action-holded": "mantido premido",
|
|
27
|
+
"action-shortreleased": "solto brevemente",
|
|
28
|
+
"action-longreleased": "solto após ser mantido",
|
|
29
|
+
"action-repeated": "repetido",
|
|
30
|
+
"action-doublepressed": "premido duas vezes",
|
|
31
|
+
"dial-clockwise": "Roda ↻ __degrees__°",
|
|
32
|
+
"dial-counterclockwise": "Roda ↺ __degrees__°",
|
|
33
|
+
"button-status": "Botão n.º __button__ (__action__)",
|
|
34
|
+
"input": "consulta de estado",
|
|
35
|
+
"output": "botão premido",
|
|
36
|
+
"error-no-id": "Indique um ID de interruptor válido.",
|
|
37
|
+
"error-not-available": "O interruptor ainda não está disponível. Aguarde até que o HueMagic tenha estabelecido a ligação com o bridge ou verifique se o ID do recurso indicado na configuração é válido.",
|
|
38
|
+
"error-no-switchmode": "Este dispositivo não tem um modo de interruptor configurável.",
|
|
39
|
+
"error-invalid-switchmode": "Modo de interruptor inválido. Este dispositivo suporta: __modes__"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="hue-contact">
|
|
2
|
+
O nó «Hue Contacto» indica se um sensor de contacto (p. ex. Hue Secure) está atualmente aberto ou fechado.
|
|
3
|
+
|
|
4
|
+
### Configuração
|
|
5
|
+
|
|
6
|
+
Selecione o Hue Bridge pré-configurado e clique no botão de pesquisa para encontrar todos os sensores disponíveis. Se já souber o ID do sensor, também o pode introduzir aqui manualmente. Pode atribuir internamente um novo nome ao sensor ou manter o nome predefinido. Opcionalmente, pode desativar todas as mensagens de estado automáticas deste nó através da definição «Ignorar as mensagens do nó». O nó deixará de emitir atualizações do dispositivo. Em alternativa, pode escolher que a mensagem de inicialização do nó não seja suprimida no arranque do Node-RED. Se ativar esta definição, receberá uma mensagem de estado do sensor selecionado após cada implementação. Se preferir que o nó permaneça em silêncio até lhe enviar algo, ative «Comunicar apenas após um comando». Nesse caso, ignora as alterações feitas na aplicação ou num interruptor e responde apenas aos seus próprios comandos.
|
|
7
|
+
|
|
8
|
+
Se não selecionar nenhum sensor e utilizar assim a configuração do nó, o nó funciona no chamado «modo universal». Neste modo, o nó recebe e emite todas as mensagens de estado do mesmo tipo. Também pode aplicar definições no modo universal a um sensor específico, transmitindo o respetivo ID do sensor como cadeia de carateres em `msg.topic` juntamente com as suas definições.
|
|
9
|
+
|
|
10
|
+
### Consultar o estado
|
|
11
|
+
|
|
12
|
+
Emite o estado atual do sensor assim que for transmitido ao nó um objeto `msg.payload` com o seguinte conteúdo. Em alternativa, também pode premir o botão na interface do Node-RED sem ter de enviar previamente uma mensagem ao nó.
|
|
13
|
+
|
|
14
|
+
: status (boolean): Devolve o estado atual do sensor
|
|
15
|
+
|
|
16
|
+
### Ligar / desligar o sensor
|
|
17
|
+
|
|
18
|
+
Se necessário, o sensor pode ser ligado e desligado remotamente. Se o sensor estiver desligado, deixa de registar alterações de contacto e, por conseguinte, deixa de as emitir. Para tal, transmita um objeto com o seguinte conteúdo:
|
|
19
|
+
|
|
20
|
+
: payload (boolean): `true` liga o sensor, `false` desliga-o
|
|
21
|
+
|
|
22
|
+
### Mensagens de estado do nó
|
|
23
|
+
|
|
24
|
+
Assim que o contacto muda, o nó devolve a seguinte mensagem de estado:
|
|
25
|
+
|
|
26
|
+
#### Objeto de estado em `msg.payload`
|
|
27
|
+
|
|
28
|
+
: active (boolean): Indica se o sensor está ligado ou desligado
|
|
29
|
+
: reachable (boolean | string): `true` se o sensor estiver ligado ao bridge, `unknown` se o estado da ligação divergir
|
|
30
|
+
: connectionStatus (string): O estado atual da ligação com o bridge sob a forma de uma cadeia de carateres. Pode conter `connected`, `disconnected`, `connectivity_issue` ou `unidirectional_incoming` como valor
|
|
31
|
+
: contact (string | boolean): `contact` se o contacto estiver fechado, `no_contact` se estiver aberto ou `false` se o sensor ainda não tiver comunicado
|
|
32
|
+
: changed (string | boolean): Momento da última alteração de contacto (ISO 8601) ou `false` se o sensor ainda não tiver comunicado
|
|
33
|
+
: tampered (boolean): Apenas disponível em sensores com deteção de manipulação; `true` se o sensor tiver sido manipulado
|
|
34
|
+
: updated (string): Momento da última atualização do recurso pelo HueMagic (ISO 8601)
|
|
35
|
+
|
|
36
|
+
#### Informações sobre o sensor em `msg.info`
|
|
37
|
+
|
|
38
|
+
: id (string): Indica o novo ID do sensor
|
|
39
|
+
: idV1 (string | boolean): Indica o ID antigo do sensor
|
|
40
|
+
: uniqueId (string): O ID único do sensor
|
|
41
|
+
: deviceId (string): O ID único do dispositivo
|
|
42
|
+
: name (string): O nome atualmente atribuído ao sensor
|
|
43
|
+
: type (string): O tipo do sensor (sempre `contact`)
|
|
44
|
+
: softwareVersion (string): O firmware atual do sensor
|
|
45
|
+
: battery (float | boolean): O nível atual da bateria do sensor, `false` quando não existe bateria
|
|
46
|
+
: batteryState (string | boolean): O estado atual do nível da bateria. Pode conter `normal`, `low` ou `critical` como valor, ou `false` quando não existe bateria
|
|
47
|
+
: model (object): Contém as informações de modelo do sensor em `id`, `manufacturer`, `name`, `type` e `certified`
|
|
48
|
+
|
|
49
|
+
#### Alterações de estado em `msg.updated`
|
|
50
|
+
|
|
51
|
+
Enumera sob a forma de um objeto os parâmetros que foram alterados em relação ao último estado do sensor. Se não tiverem sido registadas alterações, este objeto está vazio.
|
|
52
|
+
|
|
53
|
+
#### Último estado do sensor em `msg.lastState`
|
|
54
|
+
|
|
55
|
+
Contém o objeto de estado completo (ver os valores de saída acima) do último estado antes da última alteração registada. Se o HueMagic ainda não tiver registado o último estado, é emitido `false`.
|
|
56
|
+
|
|
57
|
+
#### Último comando em `msg.command` (opcional)
|
|
58
|
+
|
|
59
|
+
Se o estado do nó tiver sido alterado através de um determinado comando, é também emitido o comando completo que foi executado. Caso contrário, o nó não emite este objeto.
|
|
60
|
+
|
|
61
|
+
### Exemplos do HueMagic
|
|
62
|
+
|
|
63
|
+
O HueMagic disponibiliza algumas configurações de exemplo para este nó. Para importar um exemplo completo na sua interface Node-RED, clique no ícone de menu do Node-RED, selecione «Importar» e navegue até «Exemplos» na barra lateral da janela. Em seguida, selecione a pasta HueMagic e o nó pretendido para importar um fluxo de exemplo.
|
|
64
|
+
|
|
65
|
+

|
|
66
|
+
|
|
67
|
+
</script>
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-contact": {
|
|
3
|
+
"config": {
|
|
4
|
+
"name": "Nome",
|
|
5
|
+
"skipevents-node": "Ignorar as mensagens do nó",
|
|
6
|
+
"sendinitevents-node": "Não suprimir o evento de inicialização",
|
|
7
|
+
"onlycommands-node": "Comunicar apenas após um comando",
|
|
8
|
+
"unknown-error": "Algo correu mal. Tente novamente.",
|
|
9
|
+
"bridge": "Bridge",
|
|
10
|
+
"universalevents": "Eventos universais",
|
|
11
|
+
"universalevents-node": "Recebe todas as mensagens de outros nós do mesmo tipo (apenas no modo universal)",
|
|
12
|
+
"input-name": "Nome do sensor",
|
|
13
|
+
"searching": "A procurar sensores de contacto…",
|
|
14
|
+
"none-found": "Nenhum sensor de contacto encontrado!",
|
|
15
|
+
"sensor": "Sensor"
|
|
16
|
+
},
|
|
17
|
+
"node": {
|
|
18
|
+
"not-configured": "não configurado",
|
|
19
|
+
"not-reachable": "inacessível",
|
|
20
|
+
"activated": "ativado",
|
|
21
|
+
"deactivated": "desativado",
|
|
22
|
+
"universal": "modo universal",
|
|
23
|
+
"command": "a executar comando…",
|
|
24
|
+
"statusmsg": "Estado consultado com sucesso…",
|
|
25
|
+
"title": "Hue Contacto",
|
|
26
|
+
"contact": "contacto",
|
|
27
|
+
"no-contact": "sem contacto",
|
|
28
|
+
"input": "ativar / desativar / estado",
|
|
29
|
+
"output": "contacto",
|
|
30
|
+
"tampered": "manipulado",
|
|
31
|
+
"error-no-id": "Indique um ID de sensor válido.",
|
|
32
|
+
"error-not-available": "O sensor ainda não está disponível. Aguarde até que o HueMagic tenha estabelecido a ligação com o bridge ou verifique se o ID do recurso indicado na configuração é válido."
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="hue-group">
|
|
2
|
+
O nó «Hue Grupo» pode controlar em simultâneo várias luzes agrupadas no bridge.
|
|
3
|
+
|
|
4
|
+
### Configuração
|
|
5
|
+
|
|
6
|
+
Selecione o Hue Bridge pré-configurado e clique no botão de pesquisa para encontrar todos os grupos disponíveis. Se já souber o ID de um grupo, também o pode introduzir aqui manualmente. Pode atribuir internamente um novo nome ao grupo ou manter o nome predefinido. Opcionalmente, pode desativar todas as mensagens de estado automáticas deste nó através da definição «Ignorar as mensagens do nó». O nó deixará de emitir atualizações. Em alternativa, pode escolher que a mensagem de inicialização do nó não seja suprimida no arranque do Node-RED. Se ativar esta definição, receberá uma mensagem de estado do grupo selecionado após cada implementação. Se preferir que o nó permaneça em silêncio até lhe enviar algo, ative «Comunicar apenas após um comando». Nesse caso, ignora as alterações feitas na aplicação ou num interruptor e responde apenas aos seus próprios comandos.
|
|
7
|
+
|
|
8
|
+
Se não selecionar nenhum grupo e utilizar assim a configuração do nó, o nó funciona no chamado «modo universal». Neste modo, o nó recebe e emite todas as mensagens de estado do mesmo tipo. Também pode aplicar definições no modo universal a um grupo específico, transmitindo o respetivo ID como cadeia de carateres em `msg.topic` juntamente com as suas definições.
|
|
9
|
+
|
|
10
|
+
### Consultar o estado
|
|
11
|
+
|
|
12
|
+
Emite o estado atual do grupo assim que for transmitido ao nó um objeto `msg.payload` com o seguinte conteúdo. Em alternativa, também pode premir o botão na interface do Node-RED sem ter de enviar previamente uma mensagem ao nó.
|
|
13
|
+
|
|
14
|
+
: status (boolean): Devolve o estado atual do grupo
|
|
15
|
+
|
|
16
|
+
### Ligar / desligar (modo simples)
|
|
17
|
+
|
|
18
|
+
Para ligar ou desligar rapidamente um grupo inteiro no modo simples, transmita ao nó um objeto com o seguinte conteúdo.
|
|
19
|
+
|
|
20
|
+
: payload (boolean): `true` liga todo o grupo, `false` desliga-o
|
|
21
|
+
|
|
22
|
+
### Comandos de grupo (avançado)
|
|
23
|
+
|
|
24
|
+
Para além de simplesmente ligar e desligar, existem muitas outras opções para controlar o grupo. Todos os nós do HueMagic podem ser controlados com comandos aditivos. Isto significa que pode transmitir primeiro uma definição e depois outra num comando posterior sem descartar a definição anterior. Transmita os seguintes parâmetros num objeto `msg.payload` para efetuar definições mais amplas no grupo:
|
|
25
|
+
|
|
26
|
+
: on (boolean): `true` liga todo o grupo, `false` desliga-o
|
|
27
|
+
: toggle (boolean | any): Alterna entre ligar e desligar, consoante o estado anterior do grupo
|
|
28
|
+
: brightness (int | string): Valor percentual do brilho da luz (0-100) ou uma cadeia de carateres com o valor `auto` para definir automaticamente o brilho com base na hora atual
|
|
29
|
+
: brightnessLevel (int): Valor numérico do brilho da luz (0-254)
|
|
30
|
+
: incrementBrightness (int): Valor percentual de uma alteração relativa do brilho. O intervalo válido vai de -100 % a +100 %. Os valores positivos aumentam o brilho. O valor predefinido é +10 %
|
|
31
|
+
: decrementBrightness (int): Valor percentual de uma alteração relativa do brilho. O intervalo válido vai de -100 % a +100 %. Os valores positivos diminuem o brilho. O valor predefinido é +10 %
|
|
32
|
+
: color (string): `random` para definir uma cor aleatória ou um nome de cor em inglês (p. ex. `red`)
|
|
33
|
+
: hex (string): Valor de cor em hexadecimal sob a forma de cadeia de carateres
|
|
34
|
+
: rgb (array [0,0,0]): Valor de cor em formato RGB sob a forma de matriz
|
|
35
|
+
: xyColor (object {x [float], y [float]}): Valor de cor no formato de cor XY sob a forma de objeto
|
|
36
|
+
: image (string): Caminho de uma imagem (local ou na web) para definir a cor atual do grupo como a cor média da imagem
|
|
37
|
+
: colorTemp (int | string): Valor entre 153 e 500 para definir a temperatura de cor do grupo, ou os valores `cold`, `normal`, `warm`, `hot` e `auto`, sendo que `auto` define a temperatura de cor com base na hora atual
|
|
38
|
+
: transitionTime (float): Tempo de transição da definição atual em segundos. Se for transmitido `0`, o grupo muda de imediato para a definição pretendida. Se transmitir `3`, o grupo muda para a definição pretendida com uma ligeira transição nos 3 segundos seguintes
|
|
39
|
+
: colorloop (float): Reproduz uma animação «colorloop» durante os segundos indicados e volta depois ao estado original do grupo
|
|
40
|
+
: alert (float): Reproduz uma animação «alert» durante os segundos indicados e volta depois ao estado original do grupo
|
|
41
|
+
|
|
42
|
+
### Mensagens de estado do nó
|
|
43
|
+
|
|
44
|
+
Quando é detetada uma alteração no grupo, o nó devolve a seguinte mensagem de estado.
|
|
45
|
+
|
|
46
|
+
> [!NOTE]
|
|
47
|
+
> O grupo só emite mensagens de estado quando a última luz é desligada ou quando a primeira é ligada (se todas estivessem apagadas antes).
|
|
48
|
+
|
|
49
|
+
Ao contrário do nó «Hue Luz», dispõe aqui de muito menos informação de estado, uma vez que um grupo pode conter muitos tipos de dispositivo diferentes com valores que não podem ser combinados.
|
|
50
|
+
|
|
51
|
+
#### Objeto de estado em `msg.payload`
|
|
52
|
+
|
|
53
|
+
: on (boolean): Estado do grupo, em que `true` significa ligado e `false` desligado
|
|
54
|
+
: brightness (float | boolean): Brilho do grupo em percentagem ou `false` se o grupo não puder ser regulado
|
|
55
|
+
: brightnessLevel (int | boolean): Brilho do grupo como valor numérico (0-254) ou `false` se o grupo não puder ser regulado
|
|
56
|
+
: rgb (array [0,0,0]): Cor atual do grupo em formato RGB (apenas se disponível)
|
|
57
|
+
: hex (string): Cor atual do grupo em formato hexadecimal (apenas se disponível)
|
|
58
|
+
: xyColor (object {x [float], y [float]}): Cor atual do grupo no formato de cor XY (apenas se disponível)
|
|
59
|
+
: colorTemp (int): Temperatura de cor atualmente definida para o grupo (apenas se disponível)
|
|
60
|
+
: updated (string): Momento da última atualização do recurso pelo HueMagic (ISO 8601)
|
|
61
|
+
|
|
62
|
+
#### Informações sobre o grupo em `msg.info`
|
|
63
|
+
|
|
64
|
+
: id (string): Indica o novo ID do grupo
|
|
65
|
+
: idV1 (string | boolean): Indica o ID antigo do grupo
|
|
66
|
+
: name (string): O nome atualmente atribuído ao grupo
|
|
67
|
+
: resources (object) : Contém todos os dispositivos e recursos associados ao grupo
|
|
68
|
+
: type (string): O tipo do grupo (sempre `group`)
|
|
69
|
+
|
|
70
|
+
#### Alterações de estado em `msg.updated`
|
|
71
|
+
|
|
72
|
+
Enumera sob a forma de um objeto os parâmetros que foram alterados em relação ao último estado do grupo. Se não tiverem sido registadas alterações, este objeto está vazio.
|
|
73
|
+
|
|
74
|
+
#### Último estado da luz em `msg.lastState`
|
|
75
|
+
|
|
76
|
+
Contém o objeto de estado completo (ver os valores de saída acima) do último estado antes da última alteração. Se o HueMagic ainda não tiver registado o último estado, é emitido `false`.
|
|
77
|
+
|
|
78
|
+
#### Último comando em `msg.command` (opcional)
|
|
79
|
+
|
|
80
|
+
Se o estado do nó tiver sido alterado através de um determinado comando, é também emitido o comando completo que foi executado. Caso contrário, o nó não emite este objeto.
|
|
81
|
+
|
|
82
|
+
### Exemplos do HueMagic
|
|
83
|
+
|
|
84
|
+
O HueMagic disponibiliza algumas configurações de exemplo para este nó. Para importar um exemplo completo na sua interface Node-RED, clique no ícone de menu do Node-RED, selecione «Importar» e navegue até «Exemplos» na barra lateral da janela. Em seguida, selecione a pasta HueMagic e o nó pretendido para importar um fluxo de exemplo.
|
|
85
|
+
|
|
86
|
+

|
|
87
|
+
</script>
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-group": {
|
|
3
|
+
"config": {
|
|
4
|
+
"name": "Nome",
|
|
5
|
+
"skipevents-node": "Ignorar as mensagens do nó",
|
|
6
|
+
"sendinitevents-node": "Não suprimir o evento de inicialização",
|
|
7
|
+
"onlycommands-node": "Comunicar apenas após um comando",
|
|
8
|
+
"unknown-error": "Algo correu mal. Tente novamente.",
|
|
9
|
+
"bridge": "Bridge",
|
|
10
|
+
"universalevents": "Eventos universais",
|
|
11
|
+
"universalevents-node": "Recebe todas as mensagens de outros nós do mesmo tipo (apenas no modo universal)",
|
|
12
|
+
"colornamer": "Colornamer",
|
|
13
|
+
"colornamer-info": "Ativar a denominação das cores",
|
|
14
|
+
"input-name": "Nome do grupo",
|
|
15
|
+
"searching": "A procurar grupos…",
|
|
16
|
+
"none-found": "Nenhum grupo encontrado!",
|
|
17
|
+
"group": "Grupo",
|
|
18
|
+
"all": "Todos os grupos / luzes"
|
|
19
|
+
},
|
|
20
|
+
"node": {
|
|
21
|
+
"not-configured": "não configurado",
|
|
22
|
+
"init": "a inicializar…",
|
|
23
|
+
"universal": "modo universal",
|
|
24
|
+
"command": "a executar comando…",
|
|
25
|
+
"statusmsg": "Estado consultado com sucesso…",
|
|
26
|
+
"title": "Hue Grupo",
|
|
27
|
+
"brightness": " (__percent__ %)",
|
|
28
|
+
"all-on": "todas as luzes acesas",
|
|
29
|
+
"all-off": "todas as luzes apagadas",
|
|
30
|
+
"some-on": "algumas luzes acesas",
|
|
31
|
+
"turned-on": "ligado",
|
|
32
|
+
"error-input": "erro de entrada",
|
|
33
|
+
"error-no-id": "Nenhum ID de grupo indicado.",
|
|
34
|
+
"error-invalid-sat": "Definição de saturação inválida. Apenas são permitidos valores de 0 a 254.",
|
|
35
|
+
"error-invalid-temp": "Temperatura de cor inválida. Apenas são permitidos valores de 153 a 500.",
|
|
36
|
+
"input": "ligar / desligar",
|
|
37
|
+
"output": "estado",
|
|
38
|
+
"error-not-available": "O grupo ainda não está disponível. Aguarde até que o HueMagic tenha estabelecido a ligação com o bridge ou verifique se o ID do recurso indicado na configuração é válido.",
|
|
39
|
+
"error-invalid-brightness": "Definição de brilho inválida. Apenas são permitidos valores de 0 a 100 por cento.",
|
|
40
|
+
"error-invalid-brightness-level": "Definição de brilho inválida. Apenas são permitidos valores de 0 a 254.",
|
|
41
|
+
"error-invalid-increment": "Definição incrementBrightness inválida. Apenas são permitidos valores de -100 % a 100 %.",
|
|
42
|
+
"error-invalid-decrement": "Definição decrementBrightness inválida. Apenas são permitidos valores de -100 % a 100 %.",
|
|
43
|
+
"error-no-colorloop": "O efeito colorloop não está disponível para este grupo."
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="hue-light">
|
|
2
|
+
O nó «Hue Luz» pode controlar as luzes ligadas ao bridge e receber as respetivas mensagens de estado.
|
|
3
|
+
|
|
4
|
+
### Configuração
|
|
5
|
+
|
|
6
|
+
Selecione o Hue Bridge pré-configurado e clique no botão de pesquisa para encontrar todas as luzes disponíveis. Se já souber o ID de uma luz, também o pode introduzir aqui manualmente. Pode atribuir internamente um novo nome à luz ou manter o nome predefinido. Opcionalmente, pode desativar todas as mensagens de estado automáticas deste nó através da definição «Ignorar as mensagens do nó». O nó deixará de emitir atualizações do dispositivo. Em alternativa, pode escolher que a mensagem de inicialização do nó não seja suprimida no arranque do Node-RED. Se ativar esta definição, receberá uma mensagem de estado da luz selecionada após cada implementação. Se preferir que o nó permaneça em silêncio até lhe enviar algo, ative «Comunicar apenas após um comando». Nesse caso, ignora as alterações feitas na aplicação ou num interruptor e responde apenas aos seus próprios comandos.
|
|
7
|
+
|
|
8
|
+
Se ativar a definição «Ativar a denominação das cores», o nó tentará descrever a cor de luz definida em cada mensagem de estado. Receberá então na saída um parâmetro adicional com a descrição em inglês da cor atual.
|
|
9
|
+
|
|
10
|
+
Se não selecionar nenhuma luz e utilizar assim a configuração do nó, o nó funciona no chamado «modo universal». Neste modo, o nó recebe e emite todas as mensagens de estado do mesmo tipo. Também pode aplicar definições no modo universal a uma luz específica, transmitindo o respetivo ID como cadeia de carateres em `msg.topic` juntamente com as suas definições.
|
|
11
|
+
|
|
12
|
+
### Consultar o estado
|
|
13
|
+
|
|
14
|
+
Emite o estado atual da luz assim que for transmitido ao nó um objeto `msg.payload` com o seguinte conteúdo. Em alternativa, também pode premir o botão na interface do Node-RED sem ter de enviar previamente uma mensagem ao nó.
|
|
15
|
+
|
|
16
|
+
: status (boolean): Devolve o estado atual da luz
|
|
17
|
+
|
|
18
|
+
### Ligar / desligar a luz (modo simples)
|
|
19
|
+
|
|
20
|
+
Para ligar ou desligar rapidamente uma luz no modo simples, transmita ao nó um objeto com o seguinte conteúdo:
|
|
21
|
+
|
|
22
|
+
: payload (boolean): `true` liga a luz, `false` desliga-a
|
|
23
|
+
|
|
24
|
+
### Comandos de luz (avançado)
|
|
25
|
+
|
|
26
|
+
Para além de simplesmente ligar e desligar, existem muitas outras opções para controlar a luz. Todos os nós do HueMagic podem ser controlados com comandos aditivos. Isto significa que pode transmitir primeiro uma definição e depois outra num comando posterior sem descartar a definição anterior. Transmita os seguintes parâmetros num objeto `msg.payload` para efetuar definições mais amplas na luz:
|
|
27
|
+
|
|
28
|
+
: on (boolean): `true` liga a luz, `false` desliga-a
|
|
29
|
+
: toggle (boolean | any): Alterna entre ligar e desligar, consoante o estado anterior da luz
|
|
30
|
+
: brightness (int | string): Valor percentual do brilho da luz (0-100) ou uma cadeia de carateres com o valor `auto` para definir automaticamente o brilho com base na hora atual
|
|
31
|
+
: brightnessLevel (int): Valor numérico do brilho da luz (0-254)
|
|
32
|
+
: incrementBrightness (int | boolean): Indica em quantos pontos percentuais a luz deve ficar mais clara, ou `true` para a aumentar em passos de 10 %
|
|
33
|
+
: decrementBrightness (int | boolean): Indica em quantos pontos percentuais a luz deve ficar mais escura, ou `true` para a diminuir em passos de 10 %
|
|
34
|
+
: color (string): `random` para definir uma cor aleatória ou um nome de cor em inglês (p. ex. `red`)
|
|
35
|
+
: hex (string): Valor de cor em hexadecimal sob a forma de cadeia de carateres
|
|
36
|
+
: rgb (array [0,0,0]): Valor de cor em formato RGB sob a forma de matriz
|
|
37
|
+
: xyColor (object {x [float], y [float]}): Valor de cor no formato de cor XY sob a forma de objeto
|
|
38
|
+
: gradient (object {hex […]}): Um objeto com um objeto de cor suportado (p. ex. `hex`, `rgb`, …) e várias cores para aplicar um gradiente às luzes compatíveis
|
|
39
|
+
: mixColor (object): Uma cor a misturar com a cor de luz atual. Aceita objetos `color`, `hex`, `rgb` ou `xyColor` e, opcionalmente, `amount` (int) para indicar a proporção de mistura em percentagem
|
|
40
|
+
: image (string): Caminho de uma imagem (local ou na web) para definir a cor atual da luz como a cor média da imagem
|
|
41
|
+
: saturation (int): Percentagem da saturação da cor atual (beta)
|
|
42
|
+
: colorTemp (int | string): Valor entre 153 e 500 para definir a temperatura de cor da luz, ou os valores `cold`, `normal`, `warm`, `hot` e `auto`, sendo que `auto` define a temperatura de cor com base na hora atual
|
|
43
|
+
: incrementColorTemp (int | boolean): Valor que indica quanto a temperatura de cor deve ficar mais quente, ou `true` para a tornar mais quente em passos de 50
|
|
44
|
+
: decrementColorTemp (int | boolean): Valor que indica quanto a temperatura de cor deve ficar mais fria, ou `true` para a tornar mais fria em passos de 50
|
|
45
|
+
: transitionTime (float): Tempo de transição da definição atual em segundos. Se for indicado `0`, a luz muda de imediato para a definição pretendida. Se for indicado `3`, a luz muda para a definição pretendida com uma ligeira transição nos 3 segundos seguintes
|
|
46
|
+
: colorloop (float): Reproduz uma animação «colorloop» durante os segundos indicados e volta depois ao estado original da luz
|
|
47
|
+
: alert (float): Reproduz uma animação «alert» durante os segundos indicados e volta depois ao estado original da luz
|
|
48
|
+
|
|
49
|
+
### Mensagens de estado do nó
|
|
50
|
+
|
|
51
|
+
Assim que é detetada uma alteração nas definições da luz (quer através do Node-RED, quer externamente), o nó devolve a seguinte mensagem de estado:
|
|
52
|
+
|
|
53
|
+
#### Objeto de estado em `msg.payload`
|
|
54
|
+
|
|
55
|
+
: on (boolean): Estado da luz, em que `true` significa acesa e `false` apagada
|
|
56
|
+
: brightness (int | boolean): Brilho atual em percentagem ou `false` se a luz não suportar definição de brilho
|
|
57
|
+
: brightnessLevel (int | boolean): Brilho atual de 0 a 254 ou `false` se a luz não suportar definição de brilho
|
|
58
|
+
: reachable (boolean | string): `true` se a luz estiver ligada ao bridge, `unknown` se o estado da ligação divergir
|
|
59
|
+
: connectionStatus (string): O estado atual da ligação com o bridge sob a forma de uma cadeia de carateres. Pode conter `connected`, `disconnected`, `connectivity_issue` ou `unidirectional_incoming` como valor
|
|
60
|
+
: rgb (array [int, int, int] | optional): Cor de luz atual sob a forma de valor RGB, se a luz conseguir apresentar cores
|
|
61
|
+
: hex (string | optional): Cor de luz atual sob a forma de valor hexadecimal, se a luz conseguir apresentar cores
|
|
62
|
+
: xyColor (object {x [float], y [float]} | optional): Cor de luz atual sob a forma de valor XY, se a luz conseguir apresentar cores
|
|
63
|
+
: color (string | optional): Nome atual da cor em inglês, se a luz conseguir apresentar cores e a definição correspondente do nó estiver ativada
|
|
64
|
+
: gradient (object | optional): Definição de gradiente atual com todas as unidades de cor disponíveis sob a forma de matriz, se a luz suportar gradientes, em que `colors` devolve as cores, `numColors` o número de cores definidas no gradiente e `totalColors` o número máximo de cores que o recurso consegue suportar no gradiente
|
|
65
|
+
: colorTemp (int | boolean | optional): Temperatura de cor atual da luz, se a luz conseguir apresentar temperaturas de cor e tiver sido definida uma
|
|
66
|
+
: colorTempName (string | optional): Temperatura de cor atual da luz sob a forma de cadeia descritiva com os valores `cold`, `normal`, `warm` ou `hot`, se a luz conseguir apresentar temperaturas de cor e tiver sido definida uma. Caso contrário, é emitido `unknown`
|
|
67
|
+
: updated (string): Momento da última atualização do recurso pelo HueMagic (ISO 8601)
|
|
68
|
+
|
|
69
|
+
#### Informações sobre a luz em `msg.info`
|
|
70
|
+
|
|
71
|
+
: id (string): Indica o novo ID da luz
|
|
72
|
+
: idV1 (string | boolean): Indica o ID antigo da luz
|
|
73
|
+
: uniqueId (string): O ID único da luz
|
|
74
|
+
: deviceId (string): O ID único do dispositivo
|
|
75
|
+
: name (string): O nome atualmente atribuído à luz
|
|
76
|
+
: type (string): O tipo da luz (sempre `light`)
|
|
77
|
+
: softwareVersion (string): O firmware atual da luz
|
|
78
|
+
: model (object): Contém as informações de modelo da luz em `id`, `manufacturer`, `name`, `type`, `certified`, `friendsOfHue`, `colorGamut` e `colorGamutType`
|
|
79
|
+
|
|
80
|
+
#### Alterações de estado em `msg.updated`
|
|
81
|
+
|
|
82
|
+
Enumera sob a forma de um objeto os parâmetros que foram alterados em relação ao último estado da luz. Se não tiverem sido registadas alterações, este objeto está vazio.
|
|
83
|
+
|
|
84
|
+
#### Último estado da luz em `msg.lastState`
|
|
85
|
+
|
|
86
|
+
Contém o objeto de estado completo (ver os valores de saída acima) do último estado antes da última alteração. Se o HueMagic ainda não tiver registado o último estado, é emitido `false`.
|
|
87
|
+
|
|
88
|
+
#### Último comando em `msg.command` (opcional)
|
|
89
|
+
|
|
90
|
+
Se o estado do nó tiver sido alterado através de um determinado comando, é também emitido o comando completo que foi executado. Caso contrário, o nó não emite este objeto.
|
|
91
|
+
|
|
92
|
+
### Exemplos do HueMagic
|
|
93
|
+
|
|
94
|
+
O HueMagic disponibiliza algumas configurações de exemplo para este nó. Para importar um exemplo completo na sua interface Node-RED, clique no ícone de menu do Node-RED, selecione «Importar» e navegue até «Exemplos» na barra lateral da janela. Em seguida, selecione a pasta HueMagic e o nó pretendido para importar um fluxo de exemplo.
|
|
95
|
+
|
|
96
|
+

|
|
97
|
+
</script>
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-light": {
|
|
3
|
+
"config": {
|
|
4
|
+
"name": "Nome",
|
|
5
|
+
"skipevents-node": "Ignorar as mensagens do nó",
|
|
6
|
+
"sendinitevents-node": "Não suprimir o evento de inicialização",
|
|
7
|
+
"onlycommands-node": "Comunicar apenas após um comando",
|
|
8
|
+
"unknown-error": "Algo correu mal. Tente novamente.",
|
|
9
|
+
"bridge": "Bridge",
|
|
10
|
+
"universalevents": "Eventos universais",
|
|
11
|
+
"universalevents-node": "Recebe todas as mensagens de outros nós do mesmo tipo (apenas no modo universal)",
|
|
12
|
+
"colornamer": "Colornamer",
|
|
13
|
+
"colornamer-info": "Ativar a denominação das cores",
|
|
14
|
+
"input-name": "Nome da luz",
|
|
15
|
+
"searching": "A procurar luzes…",
|
|
16
|
+
"none-found": "Nenhuma luz encontrada!",
|
|
17
|
+
"light": "Luz"
|
|
18
|
+
},
|
|
19
|
+
"node": {
|
|
20
|
+
"not-configured": "não configurado",
|
|
21
|
+
"init": "a inicializar…",
|
|
22
|
+
"not-reachable": "inacessível",
|
|
23
|
+
"universal": "modo universal",
|
|
24
|
+
"command": "a executar comando…",
|
|
25
|
+
"statusmsg": "Estado consultado com sucesso…",
|
|
26
|
+
"title": "Hue Luz",
|
|
27
|
+
"turned-on": "acesa",
|
|
28
|
+
"turned-on-percent": "acesa (__percent__ %)",
|
|
29
|
+
"turned-off": "apagada",
|
|
30
|
+
"error-no-id": "Nenhum ID de luz definido. Consulte a documentação.",
|
|
31
|
+
"error-input": "erro de entrada",
|
|
32
|
+
"error-invalid-temp": "Temperatura de cor inválida. Apenas são permitidos valores de 153 a 500.",
|
|
33
|
+
"input": "ligar / desligar",
|
|
34
|
+
"output": "estado",
|
|
35
|
+
"error-not-available": "A luz ainda não está disponível. Aguarde até que o HueMagic tenha estabelecido a ligação com o bridge ou verifique se o ID do recurso indicado na configuração é válido.",
|
|
36
|
+
"error-invalid-brightness": "Definição de brilho inválida. Apenas são permitidos valores de 0 a 100 por cento.",
|
|
37
|
+
"error-invalid-brightness-level": "Definição de brilho inválida. Apenas são permitidos valores de 0 a 254.",
|
|
38
|
+
"error-invalid-sat": "Definição de saturação inválida. Apenas são permitidos valores de 0 a 100.",
|
|
39
|
+
"error-no-colorloop": "O efeito colorloop não está disponível para esta luz.",
|
|
40
|
+
"error-invalid-effect": "Efeito inválido. Esta luz suporta: __effects__",
|
|
41
|
+
"error-invalid-powerup": "Definição de arranque inválida. As predefinições permitidas são: __presets__"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="hue-magic">
|
|
2
|
+
O nó «Hue Magic» pode aplicar animações complexas e personalizadas a luzes e grupos.
|
|
3
|
+
|
|
4
|
+
### Configuração
|
|
5
|
+
|
|
6
|
+
Comece por dar um nome ao nó para poder identificar claramente a sua animação na interface do Node-RED. Depois pode escolher entre as opções «Repetição» e «Restaurar». Selecione a opção de repetição se quiser que a sua animação seja executada indefinidamente numa luz ou grupo até a parar manualmente. Se quiser restaurar o estado anterior do recurso de destino (luz / grupo) após o fim da animação, assinale a opção «Restaurar». Caso contrário, o último fotograma da animação permanece no respetivo recurso.
|
|
7
|
+
|
|
8
|
+
Mais abaixo pode escolher entre as animações já preparadas do HueMagic. Clique na animação pretendida para a definir.
|
|
9
|
+
|
|
10
|
+
### Iniciar / parar a animação
|
|
11
|
+
|
|
12
|
+
Para reproduzir ou parar uma animação, transmita ao nó um objeto com o seguinte conteúdo:
|
|
13
|
+
|
|
14
|
+
: payload (boolean): `true` inicia a animação, `false` para-a
|
|
15
|
+
|
|
16
|
+
### Animações personalizadas
|
|
17
|
+
|
|
18
|
+
Se transmitir a sua própria animação ao nó, a animação predefinida selecionada (se existir) é temporariamente substituída pela sua. As animações próprias do HueMagic são uma sequência de comandos agrupados numa matriz. Cada elemento da matriz constitui um passo, sendo que um passo também pode ser composto por vários fotogramas (efeitos de transição).
|
|
19
|
+
|
|
20
|
+
Crie um `array` com os vários passos da animação sob a forma de objeto e transmita-o ao nó HueMagic em `msg.payload.steps`.
|
|
21
|
+
|
|
22
|
+
: delay (int): Número de milissegundos a aguardar até este passo ser executado
|
|
23
|
+
: animation (object): O objeto contém a ação ou ações a executar neste passo. Parâmetros idênticos aos dos nós «Hue Luz» e «Hue Grupo»
|
|
24
|
+
|
|
25
|
+
### Exemplo de uma animação personalizada
|
|
26
|
+
|
|
27
|
+
Este exemplo mostra o aspeto que uma animação simples pode ter. No primeiro passo aguarda-se o atraso de 500 milissegundos. Em seguida, a cor da luz muda lentamente para vermelho ao longo de um segundo. Assim que a luz fica completamente vermelha, é executado o segundo passo, que tem igualmente um atraso de 500 milissegundos. Por fim, a cor muda para azul.
|
|
28
|
+
|
|
29
|
+
Se tiver definido a animação em repetição, este processo repete-se indefinidamente até parar a animação manualmente ou voltar a implementar o nó.
|
|
30
|
+
|
|
31
|
+
Transmita o objeto seguinte em `msg.payload` para reproduzir a animação de exemplo.
|
|
32
|
+
|
|
33
|
+
{
|
|
34
|
+
"animate": true,
|
|
35
|
+
"steps": [
|
|
36
|
+
{
|
|
37
|
+
"delay": 500,
|
|
38
|
+
"animation": {
|
|
39
|
+
"hex": "#FF0000",
|
|
40
|
+
"transitionTime": 1
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"delay": 500,
|
|
45
|
+
"animation": {
|
|
46
|
+
"hex": "#0000FF",
|
|
47
|
+
"transitionTime": 1
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
### Comandos especiais
|
|
54
|
+
|
|
55
|
+
Por vezes faz sentido reproduzir uma animação de forma desordenada, p. ex. para imitar o fogo de maneira mais realista. Para reproduzir os vários passos aleatoriamente, pode transmitir o seguinte comando em `msg.payload.specials`:
|
|
56
|
+
|
|
57
|
+
: randomOrder (boolean | any): `true` ativa a reprodução aleatória dos vários passos da animação
|
|
58
|
+
|
|
59
|
+
### Dicas e indicações
|
|
60
|
+
|
|
61
|
+
Este nó não emite mensagens de estado. Ligue a saída do nó a um grupo em vez de a luzes individuais se quiser animar várias luzes ao mesmo tempo com a mesma animação. As pré-visualizações das animações já preparadas são simulações e podem diferir ligeiramente (tempos, cores) da animação real num recurso.
|
|
62
|
+
|
|
63
|
+
### Exemplos do HueMagic
|
|
64
|
+
|
|
65
|
+
O HueMagic disponibiliza algumas configurações de exemplo para este nó. Para importar um exemplo completo na sua interface Node-RED, clique no ícone de menu do Node-RED, selecione «Importar» e navegue até «Exemplos» na barra lateral da janela. Em seguida, selecione a pasta HueMagic e o nó pretendido para importar um fluxo de exemplo.
|
|
66
|
+
|
|
67
|
+

|
|
68
|
+
</script>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-magic": {
|
|
3
|
+
"config": {
|
|
4
|
+
"name": "Nome",
|
|
5
|
+
"input-name": "Nome da animação",
|
|
6
|
+
"loop": "Repetição",
|
|
7
|
+
"loop-endless": "Repetir indefinidamente",
|
|
8
|
+
"restore": "Restaurar",
|
|
9
|
+
"restore-state": "Restaurar o estado anterior após parar",
|
|
10
|
+
"animation": "Animação",
|
|
11
|
+
"unknown-error": "Algo correu mal. Tente novamente.",
|
|
12
|
+
"seconds": "s",
|
|
13
|
+
"minutes": "min"
|
|
14
|
+
},
|
|
15
|
+
"node": {
|
|
16
|
+
"title": "Hue Magic",
|
|
17
|
+
"no-animation": "nenhuma animação indicada",
|
|
18
|
+
"animating": "a animar…",
|
|
19
|
+
"stopped": "parada",
|
|
20
|
+
"input": "iniciar / parar a animação",
|
|
21
|
+
"output": "luz ou grupo",
|
|
22
|
+
"command": "a executar comando…",
|
|
23
|
+
"playmsg": "Animação iniciada…"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|