Skip to content

refringerator/python-synology

 
 

Repository files navigation

Python API for Synology DSM

https://travis-ci.org/ProtoThis/python-synology.svg?branch=master Library version Supported versions Downloads Formated with Black

Installation

[sudo] pip install python-synology

Usage

Constructor:

SynologyDSM(
    dsm_ip,
    dsm_port,
    username,
    password,
    use_https=False,
    debugmode=False,
    dsm_version=6,
)

dsm_version = 5 will use old DSM API to gather volumes and disks informations (from DSM 5.x versions)

Module

You can import the module as synology_dsm.

from synology_dsm import SynologyDSM

print("Creating Valid API")
api = SynologyDSM("<SynologyIp>", "<SynologyPort>", "<Username>", "<Password>")

print("=== Information ===")
print("Model:           " + str(api.information.model))
print("RAM:             " + str(api.information.ram) + " MB")
print("Serial number:   " + str(api.information.serial))
print("Temperature:     " + str(api.information.temperature) + " °C")
print("Temp. warning:   " + str(api.information.temperature_warn))
print("Uptime:          " + str(api.information.uptime))
print("Full DSM version:" + str(api.information.version_string))

print("=== Utilisation ===")
print("CPU Load:        " + str(api.utilisation.cpu_total_load) + " %")
print("Memory Use:      " + str(api.utilisation.memory_real_usage) + " %")
print("Net Up:          " + str(api.utilisation.network_up()))
print("Net Down:        " + str(api.utilisation.network_down()))

print("=== Storage ===")
for volume_id in api.storage.volumes_ids:
    print("ID:          " + str(volume_id))
    print("Status:      " + str(api.storage.volume_status(volume_id)))
    print("% Used:      " + str(api.storage.volume_percentage_used(volume_id)) + " %")

for disk_id in api.storage.disks_ids:
    print("ID:          " + str(disk_id))
    print("Name:        " + str(api.storage.disk_name(disk_id)))
    print("S-Status:    " + str(api.storage.disk_smart_status(disk_id)))
    print("Status:      " + str(api.storage.disk_status(disk_id)))
    print("Temp:        " + str(api.storage.disk_temp(disk_id)))

Credits / Special Thanks

Found Synology API "documentation" on this repo : https://github.com/kwent/syno/tree/master/definitions

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 99.1%
  • Shell 0.9%