Update 1.0.1
Nur wer die Seriennummern seiner Akkus vor dem minimalen Volt Wert sehen will, KANN diesen Update machen.
Der Output auf der Console sollte so aehnlich aussehen, nachdem du das neue Script AkkuVolt102 gestartet hast. Vorher Script AkkuVolt stoppen :
OPEN 31% xxx:999-999V 0° 11:30:36
LOAD 31% COWKLMOMA004711:332-333V 17.1° 11:33:08
UNLD 31% COWKLMOMA004711:328-328V 17.1° 11:36:11
Die Werte COWKLMOMA004711:332 wurden zusammen vom MQTT gemeldet.
Der zweite Wert 333 fuer maxV ist zufaellig von einem der Akkus!
Hier kommt der Code.
Create AkkuVolt102:
// ========== Anfang AkkuVolt=======
print("VORSICHT! DIESES SCRIPT SCHAUT NUR ZU, WENN DU DEINEN AKKU KAPUTT MACHST!");
// AkkuVolt102
// INITIALS
let Zen=0; //akku unknown
let OldZen=Zen; // zen increasing?
let bat=9; //akku workmode unknown
let modus="OPEN "; //akku workmode unknown
let Sn="xxx"; // Serialnumber for minV
let maxV="999"; // max volt unknown
let minV="999"; // min volt unknown
let OldMinV=minV; // MinV increasing?
let data=0; // raw mqtt data
let maxT=0; // temperature unknown
function Druck()
{
print(modus+Zen+"% "+Sn+":"+minV+"-"+maxV+"V "+maxT+"°");
}
// ================MQTT Start================
MQTT.subscribe("myAPPKEY/#",
function (topic,msg)
{
data = JSON.parse(msg);
if (data.packData!=undefined)
{
if (data.packData[0].minVol!=undefined)
{
if (data.packData[0].maxVol!=undefined)
{
maxV=data.packData[0].maxVol;
}
if (minV!=data.packData[0].minVol)
{
OldMinV=minV;
minV=data.packData[0].minVol;
Sn=data.packData[0].sn;
Druck();
}
}
if (data.packData[0].maxTemp!=undefined)
{
maxT=data.packData[0].maxTemp-273;
}
}
// =================================
if (data.packState!=undefined)
{
if (bat!=data.packState)
{
// =============================
bat=data.packState;
switch (bat)
{
case 0: modus = "STBY "; break;
case 1: modus = "LOAD "; break;
case 2: modus = "UNLD "; break;
}
Druck();
// =============================
} //end if bat
} // end if data.packState
// =================================
if (data.electricLevel!=undefined)
{
if (Zen!=data.electricLevel)
{
OldZen=Zen;
Zen=data.electricLevel;
Druck();
} // end if Zen
} // end if data electricLevel
} // end function
); // end MQTT
// ================MQTT End===============
// ======= Ende AkkuVolt=====