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

  1. ioBroker Community Home
  2. Русский
  3. ioBroker
  4. Скрипты
  5. ioBroker скрипты
  6. Скрипт энергомонитор 3 фазы

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

Скрипт энергомонитор 3 фазы

Geplant Angeheftet Gesperrt Verschoben ioBroker скрипты
scriptpzemenergy
1 Beiträge 1 Kommentatoren 382 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.
  • V MV Offline
    V MV Offline
    V M
    schrieb am zuletzt editiert von
    #1

    скрипт для подсчета использованной энергии и стоимости, отправка в телеграмм в конце дня.
    собрал с миру по нитке )..
    все работает вроде неплохо, пользуйтесь во благо...


    //v1.0.0 23.12.2022г
    //Скрипт подсчета электроэнергии 3 фазы
    //Подсчет стоимости потребленной энергии
    //отправка данных в телеграм в конце дня
    //Тариф 3.83

    createState('javascript.0.Energy.tarif', 3.83, {name: 'Стоимость Квт', type: 'mixed', read: true, write: true, unit:'руб'});
    const T = getState('javascript.0.Energy.tarif').val;

    //счетчик общей энергии ф1+ф2+ф3 kWh
    createState('javascript.0.Energy.faseAll', 0, {name: 'Счетчик общ. энергии', type: 'mixed', read: true, write: true, unit:'kWh'});
    let pwr1,pwr2,pwr3,pwr
    on({id: "mqtt.0.pzem_1.mb0203", change: 'ne'}, function (data) {
    pwr1 = getState('javascript.0.F1energy_count.Day').val / 1000;
    pwr2 = getState('javascript.0.F2energy_count.Day').val / 1000;
    pwr3 = getState('javascript.0.F3energy_count.Day').val / 1000;
    pwr = Math.round(pwr1+pwr2+pwr3) ; // суммируем ф1+ф2+ф3
    setState('javascript.0.Energy.faseAll', pwr);
    log('pwr='+ pwr+' kWh');
    });

    //Стоимость общ.энергии за день руб
    createState('javascript.0.Energy.costAll', 0, {name: 'Стоимость общ.энергии за день', type: 'mixed', read: true, write: true, unit:'руб'});
    on({id: 'javascript.0.Energy.faseAll', change: 'ne'}, function (data) {
    var costall = getState('javascript.0.Energy.faseAll').val;//constall=общ.энергия ф1+ф2+ф3
    var cost = (costall*T).toFixed(2);//округляем до 2 разряда
    log('Стоимость за день = '+ cost + ' руб');
    setState('javascript.0.Energy.costAll', cost );
    });
    //Каждый день в 00:00:00 обнуляем дневные показания

    schedule('0 0 0 * * *', reset_count);
    function reset_count() {
    sendTo("telegram.1", "send", {text: 'Расход эл.сегодня '+getState('javascript.0.Energy.faseAll').val+' кВтч'});
    sendTo("telegram.1", "send", {text: 'Стоимость '+getState('javascript.0.Energy.costAll').val+' руб'});
    setState('javascript.0.Energy.costAll',0);
    setState('javascript.0.Energy.faseAll',0);
    setState('javascript.0.F1energy_count.Day', 0, true);
    setState('javascript.0.F1energy_count.DayCost', 0, true);
    setState('javascript.0.F2energy_count.Day', 0, true);
    setState('javascript.0.F2energy_count.DayCost', 0, true);
    setState('javascript.0.F3energy_count.Day', 0, true);
    setState('javascript.0.F3energy_count.DayCost', 0, true);
    log('обнулились данные энергомонитора')
    }
    ;

    //Энергомонитор Фаза-1

    var difference = 0; //Разница между старым и новым значением
    createState('F1energy_count.Day', 0, {name: 'Счетчик дневной энергии', type: 'number', read: true, write: true, unit:'kWh'});
    createState('F1energy_count.DayCost', 0, {name: 'Дневная стоимость энергии', type: 'number', read: true, write: true, unit:'руб'});
    createState('F1energy_count.costT1', T, {name: 'Стоимость T за кВтч', read: true, write: true, unit: 'руб/kWh'});

    ! on({id: 'mqtt.0.pzem_1.mb0104'/мощность общ1/, change: "gt"}, function (obj) {
    log('obj.newState.val = '+ obj.newState.val);
    log('obj.oldState.val = '+ obj.oldState.val);
    if (obj.newState.val > obj.oldState.val && obj.oldState.val > 0) {
    difference = ((parseFloat(obj.newState.val) - parseFloat(obj.oldState.val))/1000);
    log('разница = '+ difference);
    var mD = Math.round ((parseFloat (getState("javascript.0.F1energy_count.Day").val) + difference)*1000)/1000;
    var mDC = Math.round ((parseFloat (getState("javascript.0.F1energy_count.DayCost").val) + (difference * T))*1000)/1000;
    log('Ф1 pwr = '+ mD + ' Kwt');
    log('Ф1 = '+ mDC +' руб');
    setState('javascript.0.F1energy_count.Day', mD, true);
    setState('javascript.0.F1energy_count.DayCost', mDC, true);

    }
    });

    //Энергомонитор Фаза-2

    var difference = 0; //Разница между старым и новым значением
    createState('F2energy_count.Day', 0, {name: 'Счетчик дневной энергии', type: 'number', read: true, write: true, unit:'kWh'});
    createState('F2energy_count.DayCost', 0, {name: 'Дневная стоимость энергии', type: 'number', read: true, write: true, unit:'руб'});
    createState('F2energy_count.costT2', T, {name: 'Стоимость T за кВтч', read: true, write: true, unit: 'руб/kWh'});

    ! on({id: 'mqtt.0.pzem_1.mb0204'/мощность общ2/, change: "gt"}, function (obj) {
    log('obj.newState.val = '+ obj.newState.val);
    log('obj.oldState.val = '+ obj.oldState.val);
    if (obj.newState.val > obj.oldState.val && obj.oldState.val > 0) {
    difference = ((parseFloat(obj.newState.val) - parseFloat(obj.oldState.val))/1000);
    log('разница = '+ difference);
    var mD = Math.round ((parseFloat (getState("javascript.0.F2energy_count.Day").val) + difference)*1000)/1000;
    var mDC = Math.round ((parseFloat (getState("javascript.0.F2energy_count.DayCost").val) + (difference * T))*1000)/1000;
    log('Ф2 pwr = '+ mD + ' Kwt');
    log('Ф2 = '+ mDC +' руб');
    setState('javascript.0.F2energy_count.Day', mD, true);
    setState('javascript.0.F2energy_count.DayCost', mDC, true);

    }
    });

    //Энергомонитор Фаза-3

    var difference = 0; //Разница между старым и новым значением
    createState('F3energy_count.Day', 0, {name: 'Счетчик дневной энергии', type: 'number', read: true, write: true, unit:'kWh'});
    createState('F3energy_count.DayCost', 0, {name: 'Дневная стоимость энергии', type: 'number', read: true, write: true, unit:'руб'});
    createState('F3energy_count.costT3', T, {name: 'Стоимость T за кВтч', read: true, write: true, unit: 'руб/kWh'});

    ! on({id: 'mqtt.0.pzem_1.mb0304'/мощность общ3/, change: "gt"}, function (obj) {
    log('obj.newState.val = '+ obj.newState.val);
    log('obj.oldState.val = '+ obj.oldState.val);
    if (obj.newState.val > obj.oldState.val && obj.oldState.val > 0) {
    difference = ((parseFloat(obj.newState.val) - parseFloat(obj.oldState.val))/1000);
    log('разница = '+ difference);
    var mD = Math.round ((parseFloat (getState("javascript.0.F3energy_count.Day").val) + difference)*1000)/1000;
    var mDC = Math.round ((parseFloat (getState("javascript.0.F3energy_count.DayCost").val) + (difference * T))*1000)/1000;
    log('Ф3 pwr = '+ mD + ' Kwt');
    log('Ф3 = '+ mDC +' руб');
    setState('javascript.0.F3energy_count.Day', mD, true);
    setState('javascript.0.F3energy_count.DayCost', mDC, true);

    }
    });

    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

    752

    Online

    32.4k

    Benutzer

    81.4k

    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