<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
    <version>5.0</version>
    <date>2022-09-10T21:02:45Z</date>
    <groups>
        <group>
            <name>Templates</name>
        </group>
    </groups>
    <templates>
        <template>
            <template>Template_NUT</template>
            <name>Template_NUT</name>
            <groups>
                <group>
                    <name>Templates</name>
                </group>
            </groups>
            <applications>
                <application>
                    <name>NUT</name>
                </application>
                <application>
                    <name>NUT Raw</name>
                </application>
            </applications>
            <items>
                <item>
                    <name>NUT JSON</name>
                    <key>nut[&quot;{$NUT_HOST}&quot;, &quot;{$NUT_PORT}&quot;, &quot;{$NUT_USERNAME}&quot;, &quot;{$NUT_PASSWORD}&quot;]</key>
                    <history>0</history>
                    <trends>0</trends>
                    <value_type>TEXT</value_type>
                    <applications>
                        <application>
                            <name>NUT Raw</name>
                        </application>
                    </applications>
                </item>
            </items>
            <discovery_rules>
                <discovery_rule>
                    <name>Discover UPS</name>
                    <type>DEPENDENT</type>
                    <key>nut.discovery</key>
                    <delay>0</delay>
                    <item_prototypes>
                        <item_prototype>
                            <name>{#UPS_NAME} - Battery Charge</name>
                            <type>DEPENDENT</type>
                            <key>nut.battery.charge[&quot;{#UPS_NAME}&quot;]</key>
                            <delay>0</delay>
                            <value_type>FLOAT</value_type>
                            <units>%</units>
                            <applications>
                                <application>
                                    <name>NUT</name>
                                </application>
                            </applications>
                            <preprocessing>
                                <step>
                                    <type>JSONPATH</type>
                                    <parameters>
                                        <parameter>$.vars['{#UPS_NAME}']['battery.charge']</parameter>
                                    </parameters>
                                </step>
                            </preprocessing>
                            <master_item>
                                <key>nut[&quot;{$NUT_HOST}&quot;, &quot;{$NUT_PORT}&quot;, &quot;{$NUT_USERNAME}&quot;, &quot;{$NUT_PASSWORD}&quot;]</key>
                            </master_item>
                            <trigger_prototypes>
                                <trigger_prototype>
                                    <expression>{last()}&lt;{$NUT_CHARGE_CRIT}</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; charge is critical: {ITEM.LASTVALUE}</name>
                                    <priority>HIGH</priority>
                                </trigger_prototype>
                                <trigger_prototype>
                                    <expression>{last()}&lt;{$NUT_CHARGE_LOW}</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; charge is low: {ITEM.LASTVALUE}</name>
                                    <priority>HIGH</priority>
                                </trigger_prototype>
                            </trigger_prototypes>
                        </item_prototype>
                        <item_prototype>
                            <name>{#UPS_NAME} - Battery Voltage</name>
                            <type>DEPENDENT</type>
                            <key>nut.battery.voltage[&quot;{#UPS_NAME}&quot;]</key>
                            <delay>0</delay>
                            <value_type>FLOAT</value_type>
                            <units>V</units>
                            <applications>
                                <application>
                                    <name>NUT</name>
                                </application>
                            </applications>
                            <preprocessing>
                                <step>
                                    <type>JSONPATH</type>
                                    <parameters>
                                        <parameter>$.vars['{#UPS_NAME}']['battery.voltage']</parameter>
                                    </parameters>
                                </step>
                            </preprocessing>
                            <master_item>
                                <key>nut[&quot;{$NUT_HOST}&quot;, &quot;{$NUT_PORT}&quot;, &quot;{$NUT_USERNAME}&quot;, &quot;{$NUT_PASSWORD}&quot;]</key>
                            </master_item>
                        </item_prototype>
                        <item_prototype>
                            <name>{#UPS_NAME} - Input Frequency</name>
                            <type>DEPENDENT</type>
                            <key>nut.input.freq[&quot;{#UPS_NAME}&quot;]</key>
                            <delay>0</delay>
                            <value_type>FLOAT</value_type>
                            <units>Hz</units>
                            <applications>
                                <application>
                                    <name>NUT</name>
                                </application>
                            </applications>
                            <preprocessing>
                                <step>
                                    <type>JSONPATH</type>
                                    <parameters>
                                        <parameter>$.vars['{#UPS_NAME}']['input.frequency']</parameter>
                                    </parameters>
                                </step>
                            </preprocessing>
                            <master_item>
                                <key>nut[&quot;{$NUT_HOST}&quot;, &quot;{$NUT_PORT}&quot;, &quot;{$NUT_USERNAME}&quot;, &quot;{$NUT_PASSWORD}&quot;]</key>
                            </master_item>
                        </item_prototype>
                        <item_prototype>
                            <name>{#UPS_NAME} - Input Voltage</name>
                            <type>DEPENDENT</type>
                            <key>nut.input.voltage[&quot;{#UPS_NAME}&quot;]</key>
                            <delay>0</delay>
                            <value_type>FLOAT</value_type>
                            <units>V</units>
                            <applications>
                                <application>
                                    <name>NUT</name>
                                </application>
                            </applications>
                            <preprocessing>
                                <step>
                                    <type>JSONPATH</type>
                                    <parameters>
                                        <parameter>$.vars['{#UPS_NAME}']['input.voltage']</parameter>
                                    </parameters>
                                </step>
                            </preprocessing>
                            <master_item>
                                <key>nut[&quot;{$NUT_HOST}&quot;, &quot;{$NUT_PORT}&quot;, &quot;{$NUT_USERNAME}&quot;, &quot;{$NUT_PASSWORD}&quot;]</key>
                            </master_item>
                            <trigger_prototypes>
                                <trigger_prototype>
                                    <expression>{min(120)}&gt;={$NUT_VOLTAGE_HIGH} or {max(120)}&lt;={$NUT_VOLTAGE_LOW}</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; voltage is out of bounds: {ITEM.LASTVALUE}</name>
                                    <priority>AVERAGE</priority>
                                </trigger_prototype>
                            </trigger_prototypes>
                        </item_prototype>
                        <item_prototype>
                            <name>{#UPS_NAME} - Load</name>
                            <type>DEPENDENT</type>
                            <key>nut.load[&quot;{#UPS_NAME}&quot;]</key>
                            <delay>0</delay>
                            <value_type>FLOAT</value_type>
                            <units>%</units>
                            <applications>
                                <application>
                                    <name>NUT</name>
                                </application>
                            </applications>
                            <preprocessing>
                                <step>
                                    <type>JSONPATH</type>
                                    <parameters>
                                        <parameter>$.vars['{#UPS_NAME}']['ups.load']</parameter>
                                    </parameters>
                                </step>
                            </preprocessing>
                            <master_item>
                                <key>nut[&quot;{$NUT_HOST}&quot;, &quot;{$NUT_PORT}&quot;, &quot;{$NUT_USERNAME}&quot;, &quot;{$NUT_PASSWORD}&quot;]</key>
                            </master_item>
                            <trigger_prototypes>
                                <trigger_prototype>
                                    <expression>{last()}&gt;{$NUT_LOAD_CRIT}</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; load is critical: {ITEM.LASTVALUE}</name>
                                    <priority>HIGH</priority>
                                </trigger_prototype>
                                <trigger_prototype>
                                    <expression>{last()}&gt;{$NUT_LOAD_HIGH}</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; load is high: {ITEM.LASTVALUE}</name>
                                    <priority>HIGH</priority>
                                </trigger_prototype>
                            </trigger_prototypes>
                        </item_prototype>
                        <item_prototype>
                            <name>{#UPS_NAME} - Output Voltage</name>
                            <type>DEPENDENT</type>
                            <key>nut.output.voltage[&quot;{#UPS_NAME}&quot;]</key>
                            <delay>0</delay>
                            <value_type>FLOAT</value_type>
                            <units>V</units>
                            <applications>
                                <application>
                                    <name>NUT</name>
                                </application>
                            </applications>
                            <preprocessing>
                                <step>
                                    <type>JSONPATH</type>
                                    <parameters>
                                        <parameter>$.vars['{#UPS_NAME}']['output.voltage']</parameter>
                                    </parameters>
                                </step>
                            </preprocessing>
                            <master_item>
                                <key>nut[&quot;{$NUT_HOST}&quot;, &quot;{$NUT_PORT}&quot;, &quot;{$NUT_USERNAME}&quot;, &quot;{$NUT_PASSWORD}&quot;]</key>
                            </master_item>
                        </item_prototype>
                        <item_prototype>
                            <name>{#UPS_NAME} - Status</name>
                            <type>DEPENDENT</type>
                            <key>nut.status[&quot;{#UPS_NAME}&quot;]</key>
                            <delay>0</delay>
                            <history>7d</history>
                            <trends>0</trends>
                            <value_type>CHAR</value_type>
                            <applications>
                                <application>
                                    <name>NUT</name>
                                </application>
                            </applications>
                            <valuemap>
                                <name>NUT UPS Status</name>
                            </valuemap>
                            <preprocessing>
                                <step>
                                    <type>JSONPATH</type>
                                    <parameters>
                                        <parameter>$.vars['{#UPS_NAME}']['ups.status']</parameter>
                                    </parameters>
                                </step>
                            </preprocessing>
                            <master_item>
                                <key>nut[&quot;{$NUT_HOST}&quot;, &quot;{$NUT_PORT}&quot;, &quot;{$NUT_USERNAME}&quot;, &quot;{$NUT_PASSWORD}&quot;]</key>
                            </master_item>
                            <trigger_prototypes>
                                <trigger_prototype>
                                    <expression>{last()}=&quot;CAL&quot;</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; status is calibrating</name>
                                    <priority>INFO</priority>
                                </trigger_prototype>
                                <trigger_prototype>
                                    <expression>{last()}=&quot;CHRG&quot;</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; status is charging</name>
                                    <priority>INFO</priority>
                                </trigger_prototype>
                                <trigger_prototype>
                                    <expression>{last()}=&quot;BYPASS&quot;</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; status is in bypass</name>
                                    <priority>WARNING</priority>
                                </trigger_prototype>
                                <trigger_prototype>
                                    <expression>{regexp({$NUT_STATUS_OK})}=0</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; status is not healthy: {ITEM.LASTVALUE}</name>
                                    <priority>HIGH</priority>
                                </trigger_prototype>
                                <trigger_prototype>
                                    <expression>{last()}=&quot;OB&quot;</expression>
                                    <name>UPS &quot;{#UPS_NAME}&quot; status is on battery</name>
                                    <priority>AVERAGE</priority>
                                </trigger_prototype>
                            </trigger_prototypes>
                        </item_prototype>
                    </item_prototypes>
                    <master_item>
                        <key>nut[&quot;{$NUT_HOST}&quot;, &quot;{$NUT_PORT}&quot;, &quot;{$NUT_USERNAME}&quot;, &quot;{$NUT_PASSWORD}&quot;]</key>
                    </master_item>
                    <lld_macro_paths>
                        <lld_macro_path>
                            <lld_macro>{#UPS_NAME}</lld_macro>
                            <path>$.name</path>
                        </lld_macro_path>
                    </lld_macro_paths>
                    <preprocessing>
                        <step>
                            <type>JSONPATH</type>
                            <parameters>
                                <parameter>$.list.*</parameter>
                            </parameters>
                        </step>
                    </preprocessing>
                </discovery_rule>
            </discovery_rules>
            <macros>
                <macro>
                    <macro>{$NUT_CHARGE_CRIT}</macro>
                    <value>10</value>
                    <description>Battery charge crit low threshold</description>
                </macro>
                <macro>
                    <macro>{$NUT_CHARGE_LOW}</macro>
                    <value>30</value>
                    <description>Battery charge low threshold</description>
                </macro>
                <macro>
                    <macro>{$NUT_HOST}</macro>
                    <value>127.0.0.1</value>
                    <description>Host to query</description>
                </macro>
                <macro>
                    <macro>{$NUT_LOAD_CRIT}</macro>
                    <value>90</value>
                    <description>UPS load crit threshold</description>
                </macro>
                <macro>
                    <macro>{$NUT_LOAD_HIGH}</macro>
                    <value>70</value>
                    <description>UPS load high threshold</description>
                </macro>
                <macro>
                    <macro>{$NUT_PASSWORD}</macro>
                    <description>Password to use</description>
                </macro>
                <macro>
                    <macro>{$NUT_PORT}</macro>
                    <value>3493</value>
                    <description>Port to query</description>
                </macro>
                <macro>
                    <macro>{$NUT_STATUS_OK}</macro>
                    <value>^OL|OB|CHRG|TRIM|BOOST|CAL$</value>
                    <description>Regex of statuses which are considered healthy</description>
                </macro>
                <macro>
                    <macro>{$NUT_TEMP_CRIT}</macro>
                    <value>50</value>
                    <description>Temperature crit threshold</description>
                </macro>
                <macro>
                    <macro>{$NUT_TEMP_HIGH}</macro>
                    <value>40</value>
                    <description>Temperature high threshold</description>
                </macro>
                <macro>
                    <macro>{$NUT_USERNAME}</macro>
                    <description>Username to use (leave empty to disable auth)</description>
                </macro>
                <macro>
                    <macro>{$NUT_VOLTAGE_HIGH}</macro>
                    <value>250</value>
                    <description>High voltage bound</description>
                </macro>
                <macro>
                    <macro>{$NUT_VOLTAGE_LOW}</macro>
                    <value>50</value>
                    <description>Low voltage bound</description>
                </macro>
            </macros>
        </template>
    </templates>
    <value_maps>
        <value_map>
            <name>NUT UPS Status</name>
            <mappings>
                <mapping>
                    <value>BOOST</value>
                    <newvalue>Boosting Voltage</newvalue>
                </mapping>
                <mapping>
                    <value>BYPASS</value>
                    <newvalue>Bypass</newvalue>
                </mapping>
                <mapping>
                    <value>CAL</value>
                    <newvalue>Calibrating</newvalue>
                </mapping>
                <mapping>
                    <value>CHRG</value>
                    <newvalue>Charging</newvalue>
                </mapping>
                <mapping>
                    <value>CP</value>
                    <newvalue>Cable Power</newvalue>
                </mapping>
                <mapping>
                    <value>DISCHRG</value>
                    <newvalue>Discharging</newvalue>
                </mapping>
                <mapping>
                    <value>FSD</value>
                    <newvalue>Forced Shutdown</newvalue>
                </mapping>
                <mapping>
                    <value>LB</value>
                    <newvalue>Low Battery</newvalue>
                </mapping>
                <mapping>
                    <value>none</value>
                    <newvalue>Unknown</newvalue>
                </mapping>
                <mapping>
                    <value>OB</value>
                    <newvalue>On Battery</newvalue>
                </mapping>
                <mapping>
                    <value>OFF</value>
                    <newvalue>Load Off</newvalue>
                </mapping>
                <mapping>
                    <value>OL</value>
                    <newvalue>Online</newvalue>
                </mapping>
                <mapping>
                    <value>OVER</value>
                    <newvalue>Overloaded</newvalue>
                </mapping>
                <mapping>
                    <value>RB</value>
                    <newvalue>Replace Battery</newvalue>
                </mapping>
                <mapping>
                    <value>SD</value>
                    <newvalue>Shutdown Load</newvalue>
                </mapping>
                <mapping>
                    <value>TRIM</value>
                    <newvalue>Trimming Voltage</newvalue>
                </mapping>
            </mappings>
        </value_map>
    </value_maps>
</zabbix_export>
