node-red-contrib-huemagic 4.2.2 → 5.0.1
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 +94 -5
- package/README.md +525 -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 +227 -11
- package/huemagic/hue-buttons.js +183 -28
- 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 +7 -4
- package/huemagic/locales/de/hue-buttons.json +42 -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 +61 -0
- package/huemagic/locales/el/hue-buttons.json +62 -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 +6 -3
- package/huemagic/locales/en/hue-buttons.json +62 -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 +61 -0
- package/huemagic/locales/es/hue-buttons.json +62 -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 +61 -0
- package/huemagic/locales/fr/hue-buttons.json +62 -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 +61 -0
- package/huemagic/locales/it/hue-buttons.json +62 -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 +61 -0
- package/huemagic/locales/nl/hue-buttons.json +62 -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 +61 -0
- package/huemagic/locales/pl/hue-buttons.json +62 -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 +61 -0
- package/huemagic/locales/pt/hue-buttons.json +62 -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 +61 -0
- package/huemagic/locales/tr/hue-buttons.json +62 -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,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
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="hue-motion">
|
|
2
|
+
O nó «Hue Movimento» pode registar e comunicar os movimentos detetados por um sensor adequado ligado 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 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 movimentos e, por conseguinte, deixa de os 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 sensor regista um movimento, 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
|
+
: motion (boolean): Indica se foi registado movimento
|
|
32
|
+
: updated (string): Momento da última atualização do recurso pelo HueMagic (ISO 8601)
|
|
33
|
+
|
|
34
|
+
#### Informações sobre o sensor em `msg.info`
|
|
35
|
+
|
|
36
|
+
: id (string): Indica o novo ID do sensor
|
|
37
|
+
: idV1 (string | boolean): Indica o ID antigo do sensor
|
|
38
|
+
: uniqueId (string): O ID único do sensor
|
|
39
|
+
: deviceId (string): O ID único do dispositivo
|
|
40
|
+
: name (string): O nome atualmente atribuído ao sensor
|
|
41
|
+
: type (string): O tipo do sensor (sempre `motion`)
|
|
42
|
+
: softwareVersion (string): O firmware atual do sensor
|
|
43
|
+
: battery (float): O nível atual da bateria do sensor
|
|
44
|
+
: batteryState (string): O estado atual do nível da bateria. Pode conter `normal`, `low` ou `critical` como valor
|
|
45
|
+
: model (object): Contém as informações de modelo do sensor em `id`, `manufacturer`, `name`, `type` e `certified`
|
|
46
|
+
|
|
47
|
+
#### Alterações de estado em `msg.updated`
|
|
48
|
+
|
|
49
|
+
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.
|
|
50
|
+
|
|
51
|
+
#### Último estado do sensor em `msg.lastState`
|
|
52
|
+
|
|
53
|
+
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`.
|
|
54
|
+
|
|
55
|
+
#### Último comando em `msg.command` (opcional)
|
|
56
|
+
|
|
57
|
+
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.
|
|
58
|
+
|
|
59
|
+
### Exemplos do HueMagic
|
|
60
|
+
|
|
61
|
+
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.
|
|
62
|
+
|
|
63
|
+

|
|
64
|
+
</script>
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-motion": {
|
|
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 movimento…",
|
|
14
|
+
"none-found": "Nenhum sensor de movimento 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 Movimento",
|
|
26
|
+
"motion": "movimento detetado",
|
|
27
|
+
"no-motion": "sem movimento",
|
|
28
|
+
"input": "ativar / desativar / estado",
|
|
29
|
+
"output": "movimento detetado",
|
|
30
|
+
"error-no-id": "Indique um ID de sensor válido.",
|
|
31
|
+
"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.",
|
|
32
|
+
"error-no-sensitivity": "Esta fonte de movimento não tem sensibilidade ajustável.",
|
|
33
|
+
"error-invalid-sensitivity": "Sensibilidade inválida. Apenas são permitidos valores de 0 a __max__."
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="hue-rules">
|
|
2
|
+
O nó «Hue Regra» pode ativar ou desativar as regras guardadas no bridge e consultar as respetivas definições.
|
|
3
|
+
|
|
4
|
+
### Configuração
|
|
5
|
+
|
|
6
|
+
Selecione o Hue Bridge pré-configurado e clique no botão de pesquisa para encontrar todas as regras disponíveis. Se já souber o ID da regra, também o pode introduzir aqui manualmente. Em alternativa, pode atribuir um novo nome ou manter o nome predefinido da regra. 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 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 nenhuma regra 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 regra específica, transmitindo o respetivo ID como cadeia de carateres em `msg.topic` juntamente com as suas definições.
|
|
9
|
+
|
|
10
|
+
### Consultar propriedades e definições
|
|
11
|
+
|
|
12
|
+
Emite as propriedades atuais da regra 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 da regra
|
|
15
|
+
|
|
16
|
+
### Ativar / desativar a regra
|
|
17
|
+
|
|
18
|
+
A regra pode ser ativada e desativada sempre que necessário. Se a regra estiver desativada, deixa de ser executada no bridge até a reativar. Para tal, transmita um objeto com o seguinte conteúdo:
|
|
19
|
+
|
|
20
|
+
: payload (boolean): `true` ativa a regra, `false` desativa-a
|
|
21
|
+
|
|
22
|
+
### Mensagens de estado do nó
|
|
23
|
+
|
|
24
|
+
Assim que o estado (ativada / desativada) de uma regra muda, o nó devolve a seguinte mensagem de estado:
|
|
25
|
+
|
|
26
|
+
#### Objeto de estado em `msg.payload`
|
|
27
|
+
|
|
28
|
+
: enabled (boolean): Indica se a regra está ativada ou desativada
|
|
29
|
+
: triggered (string): Momento da última execução (ISO 8601)
|
|
30
|
+
|
|
31
|
+
#### Informações sobre a regra em `msg.info`
|
|
32
|
+
|
|
33
|
+
: id (string): O ID único da regra
|
|
34
|
+
: created (string): Data de criação da regra (ISO 8601)
|
|
35
|
+
: name (string): Nome da regra no bridge
|
|
36
|
+
: timesTriggered (int): Número de vezes que a regra foi executada no bridge
|
|
37
|
+
: owner (string): ID do proprietário desta regra
|
|
38
|
+
: status (string): Estado da regra sob a forma de cadeia de carateres
|
|
39
|
+
|
|
40
|
+
#### Condições da regra em `msg.conditions` (matriz)
|
|
41
|
+
|
|
42
|
+
: address (string): Caminho para um atributo de um sensor
|
|
43
|
+
: operator (string): Operador
|
|
44
|
+
: value (string): O valor a verificar
|
|
45
|
+
|
|
46
|
+
#### Ações da regra em `msg.actions` (matriz)
|
|
47
|
+
|
|
48
|
+
: address (string): O endereço de destino do recurso
|
|
49
|
+
: method (string): O método do pedido
|
|
50
|
+
: body (object): A ação a executar
|
|
51
|
+
|
|
52
|
+
#### Alterações de estado em `msg.updated`
|
|
53
|
+
|
|
54
|
+
Enumera sob a forma de um objeto os parâmetros que foram alterados em relação ao último estado da regra. Se não tiverem sido registadas alterações, este objeto está vazio.
|
|
55
|
+
|
|
56
|
+
#### Último estado da regra em `msg.lastState`
|
|
57
|
+
|
|
58
|
+
Contém o objeto completo (ver os valores de saída acima) do último estado antes da última alteração registada da regra. Se o HueMagic ainda não tiver registado o último estado, é emitido `false`.
|
|
59
|
+
|
|
60
|
+
#### Último comando em `msg.command` (opcional)
|
|
61
|
+
|
|
62
|
+
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.
|
|
63
|
+
|
|
64
|
+
### Exemplos do HueMagic
|
|
65
|
+
|
|
66
|
+
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.
|
|
67
|
+
|
|
68
|
+

|
|
69
|
+
</script>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-rules": {
|
|
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
|
+
"input-name": "Nome da regra",
|
|
11
|
+
"searching": "A procurar regras…",
|
|
12
|
+
"none-found": "Nenhuma regra encontrada!",
|
|
13
|
+
"rule": "Regra"
|
|
14
|
+
},
|
|
15
|
+
"node": {
|
|
16
|
+
"init": "a inicializar…",
|
|
17
|
+
"universal": "modo universal",
|
|
18
|
+
"command": "a executar comando…",
|
|
19
|
+
"statusmsg": "Estado consultado com sucesso…",
|
|
20
|
+
"title": "Hue Regra",
|
|
21
|
+
"no-rule": "nenhuma regra selecionada",
|
|
22
|
+
"enabled": "ativada",
|
|
23
|
+
"disabled": "desativada",
|
|
24
|
+
"output": "regra (executada)",
|
|
25
|
+
"input": "ativar / desativar",
|
|
26
|
+
"error-no-id": "Indique um ID de regra válido.",
|
|
27
|
+
"error-not-available": "A regra 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."
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="hue-scene">
|
|
2
|
+
O nó «Hue Cena» pode retomar cenas guardadas no bridge e aplicá-las a determinados grupos.
|
|
3
|
+
|
|
4
|
+
### Configuração
|
|
5
|
+
|
|
6
|
+
Selecione o Hue Bridge pré-configurado e clique no botão de pesquisa para encontrar todas as cenas disponíveis. As cenas são ordenadas primeiro por divisão ou zona e depois pelo nome, para que as cenas da mesma divisão fiquem sempre juntas na lista. Se já souber o ID da cena, também o pode introduzir aqui manualmente. Em alternativa, pode atribuir internamente um nome à cena ou manter o nome predefinido.
|
|
7
|
+
|
|
8
|
+
### Ativar uma cena
|
|
9
|
+
|
|
10
|
+
Pode ativar uma cena predefinida transmitindo um objeto com o seguinte conteúdo:
|
|
11
|
+
|
|
12
|
+
: payload (boolean): Ativa uma cena pré-configurada
|
|
13
|
+
: transitionTime (float): Tempo de transição da cena em segundos. Se for transmitido `0`, a cena é aplicada de imediato. Se transmitir `3`, as luzes fazem a transição para a cena nos 3 segundos seguintes. O bridge aceita até 6000 segundos
|
|
14
|
+
: brightness (float): Brilho de toda a cena em percentagem (`0` – `100`), para poder ativar a mesma cena mais clara ou mais suave consoante a hora do dia
|
|
15
|
+
|
|
16
|
+
> [!NOTE]
|
|
17
|
+
> Ambas as definições só estão disponíveis para cenas normais. Uma cena inteligente segue os horários que definiu para ela na aplicação Philips Hue.
|
|
18
|
+
|
|
19
|
+
### Ativar uma cena no modo universal
|
|
20
|
+
|
|
21
|
+
Se utilizar este nó no chamado «modo universal» e não tiver definido nenhuma cena na configuração do nó, também pode transmitir ao nó a cena pretendida como comando. Para tal, transmita um objeto `msg.payload` com o seguinte conteúdo:
|
|
22
|
+
|
|
23
|
+
: scene (string): ID da cena a ativar no bridge
|
|
24
|
+
|
|
25
|
+
### Ativar uma cena em determinados grupos
|
|
26
|
+
|
|
27
|
+
Ligue a saída deste nó a um ou mais grupos para aplicar uma cena a grupos específicos. Em alternativa, pode fazê-lo «dinamicamente», transmitindo ao nó um objeto `msg.payload` com o seguinte conteúdo:
|
|
28
|
+
|
|
29
|
+
: group (string | array [string,…]): ID do grupo ou uma matriz com os ID de vários grupos para limitar a cena a esses grupos
|
|
30
|
+
|
|
31
|
+
### Mais informações sobre o nó
|
|
32
|
+
|
|
33
|
+
Este nó não emite mensagens de estado.
|
|
34
|
+
|
|
35
|
+
> [!IMPORTANT]
|
|
36
|
+
> Só pode aplicar cenas a grupos se estes já estiverem associados à respetiva cena no bridge. Caso contrário, não será aplicado nada.
|
|
37
|
+
|
|
38
|
+
### Exemplos do HueMagic
|
|
39
|
+
|
|
40
|
+
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.
|
|
41
|
+
|
|
42
|
+

|
|
43
|
+
</script>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-scene": {
|
|
3
|
+
"config": {
|
|
4
|
+
"name": "Nome",
|
|
5
|
+
"input-name": "Nome da cena",
|
|
6
|
+
"skipevents-node": "Ignorar as mensagens do nó",
|
|
7
|
+
"sendinitevents-node": "Não suprimir o evento de inicialização",
|
|
8
|
+
"searching": "A procurar cenas…",
|
|
9
|
+
"none-found": "Nenhuma cena encontrada!",
|
|
10
|
+
"unknown-error": "Algo correu mal. Tente novamente.",
|
|
11
|
+
"scene": "Cena",
|
|
12
|
+
"group": "Grupo",
|
|
13
|
+
"group-none-found": "Nenhum grupo encontrado!",
|
|
14
|
+
"group-searching": "A procurar grupos…",
|
|
15
|
+
"groups-all": "Todos os grupos / luzes",
|
|
16
|
+
"bridge": "Bridge"
|
|
17
|
+
},
|
|
18
|
+
"node": {
|
|
19
|
+
"title": "Hue Cena",
|
|
20
|
+
"not-configured": "não configurado",
|
|
21
|
+
"recalled": "cena ativada",
|
|
22
|
+
"recalled-on-group": "cena ativada no grupo",
|
|
23
|
+
"no-id": "Sem ID de cena.",
|
|
24
|
+
"input": "ativar cena",
|
|
25
|
+
"output": "grupo(s) de destino",
|
|
26
|
+
"command": "a executar comando…",
|
|
27
|
+
"statusmsg": "A ativar a cena…",
|
|
28
|
+
"error-not-available": "A cena 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.",
|
|
29
|
+
"error-invalid-brightness": "Definição de brilho inválida. Apenas são permitidos valores de 0 a 100 por cento."
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<script type="text/markdown" data-help-name="hue-speaker">
|
|
2
|
+
O nó «Hue Altifalante» pode reproduzir os sons de uma campainha Hue Secure e utilizá-la como sirene de interior.
|
|
3
|
+
|
|
4
|
+
### Configuração
|
|
5
|
+
|
|
6
|
+
Selecione o Hue Bridge pré-configurado e clique no botão de pesquisa para encontrar todos os altifalantes disponíveis. Se já souber o ID do altifalante, também o pode introduzir aqui manualmente. Pode atribuir internamente um novo nome ao altifalante 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 altifalante 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 altifalante 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 altifalante 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 altifalante 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 altifalante
|
|
15
|
+
|
|
16
|
+
### Reproduzir um som
|
|
17
|
+
|
|
18
|
+
Um altifalante conhece três canais distintos. `chime` é o som da campainha, `alarm` é a sirene e `alert` é uma notificação curta. Os sons que um aparelho conhece efetivamente são listados em `msg.info.sounds`. Transmita os seguintes parâmetros num objeto `msg.payload`:
|
|
19
|
+
|
|
20
|
+
: chime (string | object | boolean): Nome do som da campainha; `false` para-o novamente
|
|
21
|
+
: alarm (string | object | boolean): Nome do som da sirene; `false` para-o novamente
|
|
22
|
+
: alert (string | object | boolean): Nome do som de notificação; `false` para-o novamente
|
|
23
|
+
: mute (boolean): `true` silencia o altifalante, `false` volta a ativar o som
|
|
24
|
+
|
|
25
|
+
Em vez de um simples nome de som, também pode transmitir um objeto para controlar o volume e a duração:
|
|
26
|
+
|
|
27
|
+
: sound (string): Nome do som, p. ex. `ding_dong_classic` ou `siren`
|
|
28
|
+
: volume (int): Volume em percentagem (0-100)
|
|
29
|
+
: duration (float): Tempo de reprodução em segundos
|
|
30
|
+
|
|
31
|
+
### Mensagens de estado do nó
|
|
32
|
+
|
|
33
|
+
Assim que o altifalante começa ou deixa de reproduzir, o nó devolve a seguinte mensagem de estado.
|
|
34
|
+
|
|
35
|
+
> [!NOTE]
|
|
36
|
+
> O bridge comunica o último som reproduzido e só o repõe bastante depois de terminada a reprodução, pelo que estes valores ficam ligeiramente atrasados em relação ao áudio.
|
|
37
|
+
|
|
38
|
+
#### Objeto de estado em `msg.payload`
|
|
39
|
+
|
|
40
|
+
: reachable (boolean | string): `true` se o altifalante estiver ligado ao bridge, `unknown` se o estado da ligação divergir
|
|
41
|
+
: 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
|
|
42
|
+
: playing (boolean): `true` enquanto o altifalante estiver a reproduzir algum som
|
|
43
|
+
: chime (string | boolean): Nome do som de campainha em reprodução ou `false`
|
|
44
|
+
: alarm (string | boolean): Nome do som de sirene em reprodução ou `false`
|
|
45
|
+
: alert (string | boolean): Nome do som de notificação em reprodução ou `false`
|
|
46
|
+
: muted (boolean): Indica se o altifalante está silenciado
|
|
47
|
+
: updated (string): Momento da última atualização do recurso pelo HueMagic (ISO 8601)
|
|
48
|
+
|
|
49
|
+
#### Informações sobre o altifalante em `msg.info`
|
|
50
|
+
|
|
51
|
+
: id (string): Indica o novo ID do altifalante
|
|
52
|
+
: idV1 (string | boolean): Indica o ID antigo do altifalante
|
|
53
|
+
: uniqueId (string): O ID único do altifalante
|
|
54
|
+
: deviceId (string): O ID único do dispositivo
|
|
55
|
+
: name (string): O nome atualmente atribuído ao altifalante
|
|
56
|
+
: type (string): O tipo do dispositivo (sempre `speaker`)
|
|
57
|
+
: softwareVersion (string): O firmware atual do altifalante
|
|
58
|
+
: battery (float | boolean): O nível atual da bateria do altifalante, `false` quando não existe bateria
|
|
59
|
+
: 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
|
|
60
|
+
: sounds (object): Contém os sons que este aparelho conhece em `chime`, `alarm` e `alert`
|
|
61
|
+
: model (object): Contém as informações de modelo do altifalante em `id`, `manufacturer`, `name`, `type` e `certified`
|
|
62
|
+
|
|
63
|
+
#### Alterações de estado em `msg.updated`
|
|
64
|
+
|
|
65
|
+
Enumera sob a forma de um objeto os parâmetros que foram alterados em relação ao último estado do altifalante. Se não tiverem sido registadas alterações, este objeto está vazio.
|
|
66
|
+
|
|
67
|
+
#### Último estado do altifalante em `msg.lastState`
|
|
68
|
+
|
|
69
|
+
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`.
|
|
70
|
+
|
|
71
|
+
#### Último comando em `msg.command` (opcional)
|
|
72
|
+
|
|
73
|
+
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.
|
|
74
|
+
|
|
75
|
+
### Exemplos do HueMagic
|
|
76
|
+
|
|
77
|
+
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.
|
|
78
|
+
|
|
79
|
+

|
|
80
|
+
</script>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hue-speaker": {
|
|
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 altifalante",
|
|
13
|
+
"searching": "A procurar altifalantes…",
|
|
14
|
+
"none-found": "Nenhum altifalante encontrado!",
|
|
15
|
+
"speaker": "Altifalante"
|
|
16
|
+
},
|
|
17
|
+
"node": {
|
|
18
|
+
"not-configured": "não configurado",
|
|
19
|
+
"not-reachable": "inacessível",
|
|
20
|
+
"universal": "modo universal",
|
|
21
|
+
"command": "a executar comando…",
|
|
22
|
+
"statusmsg": "Estado consultado com sucesso…",
|
|
23
|
+
"title": "Hue Altifalante",
|
|
24
|
+
"silent": "silencioso",
|
|
25
|
+
"muted": "sem som",
|
|
26
|
+
"playing-alarm": "alarme (__sound__)",
|
|
27
|
+
"playing-chime": "campainha (__sound__)",
|
|
28
|
+
"playing-alert": "aviso (__sound__)",
|
|
29
|
+
"input": "reproduzir som / estado",
|
|
30
|
+
"output": "altifalante",
|
|
31
|
+
"error-no-id": "Indique um ID de altifalante válido.",
|
|
32
|
+
"error-not-available": "O altifalante 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
|
+
"error-no-channel": "Este altifalante não tem qualquer som do tipo __channel__.",
|
|
34
|
+
"error-invalid-sound": "Som de __channel__ inválido. São permitidos: __sounds__",
|
|
35
|
+
"error-invalid-volume": "Definição de volume inválida. Apenas são permitidos valores de 0 a 100."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|