Files
nspanel-lovelace-ui/docs/notifications.md
2022-10-30 16:12:38 +01:00

125 lines
3.5 KiB
Markdown

# Sending Notifications to the Panel
There are two notification types, that can be triggered by sending a command over mqtt to the panel here are examples for homeassistant scripts:
## Seperate Page
This is the notification used by the backend for updates, opening it requires to the following commands to the CustomSend Topic:
`pageType popupNotify`
`entityUpdateDetail~internalName~heading~headingColor~button1text~button1color~button2text~tB2Color~notificationText~textColor~sleepTimeout~fontIdText`
Alternative Layout with Icon:
`entityUpdateDetail~internalName~heading~headingColor~button1text~button1color~button2text~tB2Color~notificationText~textColor~sleepTimeout~fontIdText~icon~iconColor`
`fontIdText` is the font used by the notification text
Possible values are 0-5:
```
Font 0 - Default - Size 24 (No Icons, Support for various special chars from different langs)
Font 1 - Size 32 (Icons and limited chars)
Font 2 - Size 32 (No Icons, Support for various special chars from different langs)
Font 3 - Size 48 (Icons and limited chars)
Font 4 - Size 80 (Icons and limited chars)
Font 5 - Size 128 (ascii only)
```
It is possible to exit from the page by sending `exitPopup`
If you want to add newlines to your message add this string for the newline `{{'\r\n'}}`
Send Message to the Panel combined with a buzzer sound:
```
nspanel_popup_notification:
alias: Popup Notification
sequence:
- service: mqtt.publish
data:
topic: cmnd/tasmota_NsPanelTerrasse/Backlog
payload: CustomSend pageType~popupNotify; CustomSend entityUpdateDetail~id~{{
title }}~65535~~~~~{{ message }}~65535~{{ timeout }}; Buzzer 2,2,2
mode: single
icon: mdi:message-badge
```
Send Message to the Panel:
```
nspanel_popup_notification:
alias: Popup Notification
sequence:
- service: mqtt.publish
data:
topic: cmnd/tasmota_NsPanelTerrasse/Backlog
payload: CustomSend pageType~popupNotify; CustomSend entityUpdateDetail~id~{{
title }}~65535~~~~~{{ message }}~65535~{{ timeout }}
mode: single
icon: mdi:message-badge
```
## Notification on screensaver
The screensaver can display Notifications by sending this command to the CustomSend topic: `notify~heading~text`
Send Message to the Screensaver combined with a buzzer sound:
```
nspanel_screensaver_notification:
alias: Screensaver Notification
sequence:
- service: mqtt.publish
data:
topic: cmnd/tasmota_NsPanelTerrasse/Backlog
payload: CustomSend notify~{{ heading }}~{{ message }}; Buzzer 2,2,2
mode: single
icon: mdi:message-badge
```
Send Message to the Screensaver:
```
nspanel_screensaver_notification:
alias: Screensaver Notification
sequence:
- service: mqtt.publish
data:
topic: cmnd/tasmota_NsPanelTerrasse/Backlog
payload: CustomSend notify~{{ heading }}~{{ message }}
mode: single
icon: mdi:message-badge
```
## Color Picker
<input type="color" id="colorpicker" onchange="conv565()" value="#000000">
<p id="out">Decimal RGB565: 0</p>
<script>
function hexToRgb(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
red: parseInt(result[1], 16),
green: parseInt(result[2], 16),
blue: parseInt(result[3], 16)
} : null;
}
function rgb_dec565(rgb) {
return ((Math.floor(rgb.red / 255 * 31) << 11) | (Math.floor(rgb.green / 255 * 63) << 5) | (Math.floor(rgb.blue / 255 * 31)));
}
function conv565() {
var x = document.getElementById("colorpicker").value;
document.getElementById("out").innerHTML = "Decimal RGB565: " + rgb_dec565(hexToRgb(x));
}
</script>