Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Скрипт мониторинга основных параметров платы Cubietruck OS Armbian

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • E
      electric last edited by

      Всем привет.

      Делал нечто похожее для 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 Reply Last reply Reply Quote 0
      • A
        andrey1509 last edited by andrey1509

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

        1 Reply Last reply Reply Quote 0
        • First post
          Last post

        Support us

        ioBroker
        Community Adapters
        Donate

        477
        Online

        31.7k
        Users

        79.8k
        Topics

        1.3m
        Posts

        2
        2
        1209
        Loading More Posts
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes
        Reply
        • Reply as topic
        Log in to reply
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
        The ioBroker Community 2014-2023
        logo