5.02021-11-21T22:07:14ZTemplates/IOTShelly-1PMShelly 1PM## Overview
Monitoring of almost all values the Shelly 1PM reports, except external sensors since I don't own one of those.
It has a fixed update time of 60s for all values, which might not be enough for some usecases - feel free to adjust it.
## Author
Leonard Winck
Templates/IOTCloudGathererInputMetersMQTTRelaysSystemTemperatureUpdateWiFi- Status gathererHTTP_AGENTshelly1pm.status30d0TEXTBASICadmin{$SHELLYPWD}This gatherer gathers all the data for the different items from the Rest-API Interface of the Shelly device.GathererJSONPATH$.bodyhttp://{HOST.IP}/statusNOJSON{nodata(180)}=1No data received for >3m
- Actions Skipped CountDEPENDENTshelly1pm.status.actions_stats.skipped0SystemJSONPATH$..actions_stats.skippedTRIM[]shelly1pm.status{change()}>0NONEAt least one action has been skippedWARNINGMULTIPLEYES
- Configuration Changed CountDEPENDENTshelly1pm.status.cfg_changed_cnt0SystemJSONPATH$..cfg_changed_cntTRIM[]shelly1pm.status{change()}>0NONESystem configuration has been changedINFOMULTIPLEYES
- Cloud Connection StateDEPENDENTshelly1pm.status.cloud.connected0CloudShelly Connection StateJSONPATH$..cloud.connectedTRIM[]JAVASCRIPTif (value == "false") {
return 0 ;
} else if (value == "true") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status{change()}<>0NONECloud connection state has changedWARNINGMULTIPLEYES
- Cloud Configured StateDEPENDENTshelly1pm.status.cloud.enabled0CloudShelly Enabled StateJSONPATH$..cloud.enabledTRIM[]JAVASCRIPTif (value == "false") {
return 0 ;
} else if (value == "true") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status{change()}<>0NONECloud configuration has changedINFOMULTIPLEYES
- Filesystem FreeDEPENDENTshelly1pm.status.fs_free0bSystemJSONPATH$..fs_freeTRIM[]shelly1pm.status
- Filesystem TotalDEPENDENTshelly1pm.status.fs_size0bSystemJSONPATH$..fs_sizeTRIM[]shelly1pm.status
- Input EventDEPENDENTshelly1pm.status.inputs0.event0InputShelly Input EventJSONPATH$..inputs[0].eventTRIM[]"JAVASCRIPTif (value == "S") {
return 0 ;
} else if (value == "L") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status
- Input Event CountDEPENDENTshelly1pm.status.inputs0.event_cnt0InputJSONPATH$..inputs[0].event_cntTRIM[]shelly1pm.status
- Input StateDEPENDENTshelly1pm.status.inputs0.input0InputShelly On/Off StateJSONPATH$..inputs[0].inputTRIM[]shelly1pm.status{change()}<>0NONEInput state has changedINFOMULTIPLEYES
- MAC AddressDEPENDENTshelly1pm.status.mac00TEXTMACADDRESS_ASystemJSONPATH$..macTRIM[]"shelly1pm.status
- Power Consumption (1m)DEPENDENTshelly1pm.status.meters0.counters00FLOATWhMetersJSONPATH$..meters[0].counters[0]TRIM[]JAVASCRIPTreturn value/60;shelly1pm.status
- Meters Self-Check StateDEPENDENTshelly1pm.status.meters0.is_valid0MetersShelly StatusJSONPATH$..meters[0].is_validTRIM[]JAVASCRIPTif (value == "true") {
return 0 ;
} else if (value == "false") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status{last()}<>0Meters self-check is not ok
- Overpower ValueDEPENDENTshelly1pm.status.meters0.overpower0FLOATWMetersJSONPATH$..meters[0].overpowerTRIM[]shelly1pm.status
- Current Power ConsumptionDEPENDENTshelly1pm.status.meters0.power0FLOATWMetersJSONPATH$..meters[0].powerTRIM[]shelly1pm.status
- Current Power Consumption TimeDEPENDENTshelly1pm.status.meters0.timestamp0FLOATMetersJSONPATH$..meters[0].timestampTRIM[]shelly1pm.status
- Total Power ConsumptionDEPENDENTshelly1pm.status.meters0.total0FLOATWMetersJSONPATH$..meters[0].totalTRIM[]shelly1pm.status
- MQTT Connection StateDEPENDENTshelly1pm.status.mqtt.connected0MQTTShelly Connection StateJSONPATH$..mqtt.connectedTRIM[]JAVASCRIPTif (value == "false") {
return 0 ;
} else if (value == "true") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status{change()}<>0NONEMQTT connection state has changedWARNINGMULTIPLEYES
- Overheating StateDEPENDENTshelly1pm.status.overtemperature0TemperatureShelly StatusJSONPATH$..overtemperatureTRIM[]JAVASCRIPTif (value == "false") {
return 0 ;
} else if (value == "true") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status{last()}=1Overheating event has been detectedDISASTER
- Memory FreeDEPENDENTshelly1pm.status.ram_free0bSystemJSONPATH$..ram_freeTRIM[]shelly1pm.status
- Memory TotalDEPENDENTshelly1pm.status.ram_total0bSystemJSONPATH$..ram_totalTRIM[]shelly1pm.status
- Relay Timer StateDEPENDENTshelly1pm.status.relays0.has_timer0RelaysShelly Enabled StateJSONPATH$..relays[0].has_timerTRIM[]JAVASCRIPTif (value == "false") {
return 0 ;
} else if (value == "true") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status
- Relay StateDEPENDENTshelly1pm.status.relays0.ison0RelaysShelly On/Off StateJSONPATH$..relays[0].isonTRIM[]JAVASCRIPTif (value == "false") {
return 0 ;
} else if (value == "true") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status{change()}<>0NONEInput state has changedWARNINGMULTIPLEYES
- Relay Overpower StateDEPENDENTshelly1pm.status.relays0.overpower0RelaysShelly StatusJSONPATH$..relays[0].overpowerTRIM[]JAVASCRIPTif (value == "false") {
return 0 ;
} else if (value == "true") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status{last()}=1Overpower event has been detectedDISASTER
- Relay Last Command SourceDEPENDENTshelly1pm.status.relays0.source00TEXTRelaysJSONPATH$..relays[0].sourceTRIM[]"shelly1pm.status
- Relay Timer DurationDEPENDENTshelly1pm.status.relays0.timer_duration0sRelaysJSONPATH$..relays[0].timer_durationTRIM[]shelly1pm.status
- Relay Timer RemainingDEPENDENTshelly1pm.status.relays0.timer_remaining0sRelaysJSONPATH$..relays[0].timer_remainingTRIM[]shelly1pm.status
- Relay Timer StartedDEPENDENTshelly1pm.status.relays0.timer_started0RelaysJSONPATH$..relays[0].timer_startedTRIM[]shelly1pm.status
- Cloud Serial NumberDEPENDENTshelly1pm.status.serial0CloudJSONPATH$..serialTRIM[]shelly1pm.status
- Temperature StatusDEPENDENTshelly1pm.status.temperature_status0TemperatureShelly Temperature StatusJSONPATH$..temperature_statusTRIM[]"JAVASCRIPTif (value == "Normal") {
return 0 ;
} else if (value == "High") {
return 1 ;
} else if (value == "Very High") {
return 2 ;
} else {
return 3 ;
}shelly1pm.status{last()}=1Device temperature is highAVERAGE{last()}=2Device temperature is very highHIGH{last()}=3Device temperature status is unknown
- Current TimeDEPENDENTshelly1pm.status.time00DISABLEDTEXTSystemJSONPATH$..timeTRIM[]shelly1pm.status
- Temperature Self-Check StateDEPENDENTshelly1pm.status.tmp.is_valid0TemperatureShelly StatusJSONPATH$..tmp.is_validTRIM[]JAVASCRIPTif (value == "true") {
return 0 ;
} else if (value == "false") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status{last()}<>0Temperature self-check is not ok
- Current TemperatureDEPENDENTshelly1pm.status.tmp.tC0FLOAT°CTemperatureJSONPATH$..tmp.tCTRIM[]shelly1pm.status
- Current UnixtimeDEPENDENTshelly1pm.status.unixtime0SystemJSONPATH$..unixtimeTRIM[]shelly1pm.status{fuzzytime(60)}=0Time is out of syncWARNING
- Update AvailabilityDEPENDENTshelly1pm.status.update.has_update0UpdateShelly Update AvailabilityJSONPATH$..update.has_updateTRIM[]JAVASCRIPTif (value == "false") {
return 0 ;
} else if (value == "true") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status{last()}=1Update availableINFO
- New Version AvailableDEPENDENTshelly1pm.status.update.new_version00TEXTUpdateJSONPATH$..update.new_versionTRIM[]"shelly1pm.status
- Current VersionDEPENDENTshelly1pm.status.update.old_version00TEXTUpdateJSONPATH$..update.old_versionTRIM[]"shelly1pm.status{change()}<>0NONEVersion has changedWARNINGMULTIPLEYES
- Update StatusDEPENDENTshelly1pm.status.update.status0UpdateShelly Update StatusJSONPATH$..update.statusTRIM[]"JAVASCRIPTif (value == "idle") {
return 0 ;
} else if (value == "pending") {
return 1 ;
} else if (value == "updating") {
return 2 ;
} else {
return 3 ;
}shelly1pm.status
- UptimeDEPENDENTshelly1pm.status.uptime0sSystemJSONPATH$..uptimeTRIM[]shelly1pm.status{last()}<600Device has been restarted (Uptime <10m)WARNING
- WiFi Connection StateDEPENDENTshelly1pm.status.wifi_sta.connected0WiFiShelly Connection StateJSONPATH$..wifi_sta.connectedTRIM[]JAVASCRIPTif (value == "false") {
return 0 ;
} else if (value == "true") {
return 1 ;
} else {
return 2 ;
}shelly1pm.status
- WiFi IPDEPENDENTshelly1pm.status.wifi_sta.ip00TEXTWiFiJSONPATH$..wifi_sta.ipTRIM[]"shelly1pm.status
- WiFi RSSIDEPENDENTshelly1pm.status.wifi_sta.rssi0FLOATWiFiShelly Connection StateJSONPATH$..wifi_sta.rssiTRIM[]shelly1pm.status
- WiFi SSIDDEPENDENTshelly1pm.status.wifi_sta.ssid00TEXTWiFiJSONPATH$..wifi_sta.ssidTRIM[]"shelly1pm.status
{$SHELLYPWD}SECRET_TEXTPassword for admin user, if present{Shelly-1PM:shelly1pm.status.fs_free.last()}>={Shelly-1PM:shelly1pm.status.fs_size.last()}*0.8 and {Shelly-1PM:shelly1pm.status.fs_free.last()}<{Shelly-1PM:shelly1pm.status.fs_size.last()}*0.9Filesystem usage >=80%WARNING{Shelly-1PM:shelly1pm.status.fs_free.last()}>={Shelly-1PM:shelly1pm.status.fs_size.last()}*0.9Filesystem usage >=90%AVERAGE{Shelly-1PM:shelly1pm.status.ram_free.last()}>={Shelly-1PM:shelly1pm.status.ram_total.last()}*0.8 and {Shelly-1PM:shelly1pm.status.ram_free.last()}<{Shelly-1PM:shelly1pm.status.ram_total.last()}*0.9Memory usage >=80%WARNING{Shelly-1PM:shelly1pm.status.ram_free.last()}>={Shelly-1PM:shelly1pm.status.ram_total.last()}*0.9Memory usage >=90%AVERAGEShelly Connection State0Disconnected1Connected2UnknownShelly Enabled State0Disabled1Enabled2UnknownShelly Input Event0Shortpush1Longpush2none/invalidShelly On/Off State0Off1On2UnknownShelly Status0Ok1Critical2UnknownShelly Temperature Status0Normal1High2Very High3UnknownShelly Update Availability0No Update Available1Update Available2UnknownShelly Update Status0Idle1Pending2Updating3Unknown