Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Скрипт мониторинга основных параметров платы Cubietruck OS Armbian

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Скрипт мониторинга основных параметров платы Cubietruck OS Armbian

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
2 Beiträge 2 Kommentatoren 1.3k Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • E Offline
    E Offline
    electric
    schrieb am zuletzt editiert von
    #1

    Всем привет.

    Делал нечто похожее для ccu.io (там был http://forum.iobroker.net/viewtopic.php?f=10&t=313), вот дошли руки до ioBroker.

    Плата http://cubieboard.org/model/cb3/

    OS https://www.armbian.com/cubietruck/

    Система перенесена на жесткий диск 80Гб

    Подключена АКБ Li-Pol на 5000мАч

    Весь бутерброд поставил на DIN-рейку.

    Собственно скрипт под спойлером:

    ! ````
    //Скрипт мониторинга основных параметров платы Cubietruck
    //Температуры:
    // - monitoring_CT.temp.CPU /sys/devices/virtual/thermal/thermal_zone0/temp
    // - monitoring_CT.temp.PMU /sys/power/axp_pmu/pmu/temp
    // - monitoring_CT.temp.HDD hddtemp /dev/sda
    //Данные rootfs:
    // - monitoring_CT.disk.size df -m
    // - monitoring_CT.disk.used
    // - monitoring_CT.disk.free
    // - monitoring_CT.disk.usage
    //Данные memory:
    // - monitoring_CT.memory.used fre -m
    // - monitoring_CT.memory.free
    // - monitoring_CT.memory.usage
    //Данные swap: -отключено!
    // - monitoring_CT.swap.size -отключено!
    // - monitoring_CT.swap.used -отключено!
    // - monitoring_CT.swap.free -отключено!
    // - monitoring_CT.swap.usage -отключено!
    //Данные system:
    // - monitoring_CT.loadavg.CPU cut -f1 -d" " = 1){
    clearInterval(poll_mon);
    poll_mon = setInterval(poolMonitor, parseInt(obj.newState.val)1000);
    }
    });
    ! function poolMonitor () {
    //Чтение файлов температур CPU and PMU
    var temp = fs.readFileSync("/sys/devices/virtual/thermal/thermal_zone0/temp").toString();
    setState('monitoring_CT.temp.CPU', parseFloat(temp)/1000, true);
    temp = fs.readFileSync("/sys/power/axp_pmu/pmu/temp").toString();
    setState('monitoring_CT.temp.PMU', parseFloat(temp)/1000, true);
    //Результат команды hddtemp - температура жесткого диска
    //cp.exec("hddtemp /dev/sda /dev/sdb /dev/sdc /dev/sdd | grep -o '[0-9].°C' | grep -o '[0-9].'", function(err, resp) {
    cp.exec("hddtemp /dev/sda | grep -o '[0-9].°C' | grep -o '[0-9].'", function(err, resp) {
    if (!err && resp) {
    //var temp = resp.split("\n");
    setState('monitoring_CT.temp.HDD', parseFloat(resp), true);
    }
    });
    //Результат команды df - использование HDD
    cp.exec("df -m | grep '/dev/sda2' | awk '{print $2,$3,$4,$5}' | grep -o '[0-9]
    '", function(err, resp) {
    if (!err && resp) {
    var temp = resp.split("\n");
    setState('monitoring_CT.disk.size', parseFloat(temp[0]), true);
    setState('monitoring_CT.disk.used', parseFloat(temp[1]), true);
    setState('monitoring_CT.disk.free', parseFloat(temp[2]), true);
    setState('monitoring_CT.disk.usage', parseFloat(temp[3]), true);
    }
    });
    //Результат команды free - исользование ОЗУ и swap
    //cp.exec("free -m | grep -E 'Mem|Swap' | awk '{print $3,$4}' | grep -Eo '[0-9]+'", function(err, resp) { .toFixed(1)
    cp.exec("free -m | grep -E 'Mem' | awk '{print $2,$3,$4}' | grep -Eo '[0-9]+'", function(err, resp) {
    if (!err && resp) {
    var temp = resp.split("\n");
    setState('monitoring_CT.memory.size', parseFloat(temp[0]), true);
    setState('monitoring_CT.memory.used', parseFloat(temp[1]), true);
    setState('monitoring_CT.memory.free', parseFloat(temp[2]), true);
    setState('monitoring_CT.memory.usage', (temp[1]/temp[0]).toFixed(3)*100, true);
    }
    });
    //Использование центрального процессора loadavg
    temp = fs.readFileSync("/proc/loadavg").toString().split(" ");
    setState('monitoring_CT.loadavg.CPU', parseFloat(temp[0]), true);

    //Опрос состояния системы питания - данные чипа AXP209
    setState('monitoring_CT.power.AC.status', Boolean(parseFloat(fs.readFileSync("/sys/power/axp_pmu/ac/connected"))), true);
    setState('monitoring_CT.power.AC.voltage', parseFloat((fs.readFileSync("/sys/power/axp_pmu/ac/voltage")/1000000).toFixed(2)), true);
    setState('monitoring_CT.power.AC.current', parseFloat((fs.readFileSync("/sys/power/axp_pmu/ac/amperage")/1000).toFixed(0)), true);
    setState('monitoring_CT.power.battery.connected', Boolean(parseFloat(fs.readFileSync("/sys/power/axp_pmu/battery/connected"))), true);
    setState('monitoring_CT.power.battery.charging', Boolean(parseFloat(fs.readFileSync("/sys/power/axp_pmu/battery/charging"))), true);
    setState('monitoring_CT.power.battery.current_charging', parseFloat((fs.readFileSync("/sys/power/axp_pmu/charger/amperage")/1000).toFixed(0)), true);
    setState('monitoring_CT.power.battery.current_discharging', parseFloat((fs.readFileSync("/sys/power/axp_pmu/battery/amperage")/1000).toFixed(0)), true);
    setState('monitoring_CT.power.battery.voltage', parseFloat((fs.readFileSync("/sys/power/axp_pmu/battery/voltage")/1000000).toFixed(2)), true);
    setState('monitoring_CT.power.battery.capacity', parseFloat(fs.readFileSync("/sys/power/axp_pmu/battery/capacity")), true);
    

    }
    poll_mon = setInterval(poolMonitor, getState('javascript.0.monitoring_CT.poolinterval').val*1000);

    ! ````
    1238_img_20171106_005535.jpg
    1238_img_20171106_005541.jpg
    1238_img_20171210_122106.jpg

    1 Antwort Letzte Antwort
    0
    • A Offline
      A Offline
      andrey1509
      schrieb am zuletzt editiert von andrey1509
      #2

      Здравствуйте.
      Воспользовался вашим скриптом , у меня сыпятся ошибки:
      javascript.0 Error in callback: Error: ETIMEDOUT: connection timed out, read.
      Подскажите куда копать.
      Система на кубике3+ SSD.

      1 Antwort Letzte Antwort
      0
      Antworten
      • In einem neuen Thema antworten
      Anmelden zum Antworten
      • Älteste zuerst
      • Neuste zuerst
      • Meiste Stimmen


      Support us

      ioBroker
      Community Adapters
      Donate

      762

      Online

      32.5k

      Benutzer

      81.7k

      Themen

      1.3m

      Beiträge
      Community
      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
      ioBroker Community 2014-2025
      logo
      • Anmelden

      • Du hast noch kein Konto? Registrieren

      • Anmelden oder registrieren, um zu suchen
      • Erster Beitrag
        Letzter Beitrag
      0
      • Home
      • Aktuell
      • Tags
      • Ungelesen 0
      • Kategorien
      • Unreplied
      • Beliebt
      • GitHub
      • Docu
      • Hilfe