Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - kein Vorzeichen bei Temperaturen zw. 0 und -1 Grad

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    - √ - kein Vorzeichen bei Temperaturen zw. 0 und -1 Grad

    Hallo,

    ich benutze die Cometvisu Version 0.6 und ein originales WG.
    Gestern Abend ist mir aufgefallen das bei Temperaturen zwischen 0 und -1 Grad das Vorzeichen nicht dargestellt wird. Bei Temperaturen unter -1 Grad wird das Vorzeichen wieder angezeigt. Im RRD File werden die Temperaturen allerdings richtig abgelegt. Habe dann mal versuchsweise einen anderen Datentypen zur Darstellung gewählt und hiermit hatte ich dann das Vorzeichen wieder. Ist das jemand anderen auch schon aufgefallen?

    Anbei auch mal meine "transforms/transform_knx.min.js"

    Gruß Plusch

    Code:
    addTransform('DPT',{'1.001':{name:'DPT_Switch',encode:function(phy){return(phy|0x80).toString(16);},decode:function(hex){return parseInt(hex,16);}},'1':{link:'1.001'},'1.002':{link:'1.001'},'1.003':{link:'1.001'},'1.008':{link:'1.001'},'1.009':{link:'1.001'},'2':{link:'1.001'},'3':{link:'1.001'},'4.001':{name:'DPT_Char_ASCII',encode:function(phy){var val=phy.charCodeAt(0).toString(16);return(val.length==1?'800':'80')+val;},decode:function(hex){return String.fromCharCode(parseInt(hex,16));}},'4':{link:'4.001'},'5.001':{name:'DPT_Scaling',unit:'%',range:{min:0.0,max:100.0},encode:function(phy){var val=parseInt(phy*255/100).toString(16);return(val.length==1?'800':'80')+val;},decode:function(hex){return parseInt(hex,16)*100/255.0;}},'5.003':{name:'DPT_Angle',unit:'°',range:{min:0.0,max:360.0},encode:function(phy){var val=parseInt(phy*255/360).toString(16);return(val.length==1?'800':'80')+val;},decode:function(hex){return parseInt(hex,16)*360/255.0;}},'5.004':{name:'DPT_Percent_U8',unit:'%',range:{min:0.0,max:255.0},encode:function(phy){var val=parseInt(phy).toString(16);return(val.length==1?'800':'80')+val;},decode:function(hex){return parseInt(hex,16);}},'5.010':{link:'5.004',name:'DPT_Value_1_Ucount',unit:'-'},'5':{link:'5.004',name:'8-Bit Unsigned Value'},'6.001':{name:'DPT_Percent_V8',encode:function(phy){var val=phy<0?phy+256:phy;val=val.toString(16);return(val.length==1?'800':'80')+val;},decode:function(hex){var val=parseInt(hex,16) return val>127?(val-256):val;}},'6':{link:'6.001'},'7.001':{name:'DPT_Value_2_Ucount',encode:function(phy){var val=phy.toString(16);return(val.length==1?'800':'80')+val;},decode:function(hex){return parseInt(hex,16);}},'7':{link:'7.001'},'8.001':{name:'DPT_Value_2_Count',encode:function(phy){var val=phy<0?phy+65536:phy;return'80'+val.toString(16);},decode:function(hex){var val=parseInt(hex,16);return val>32767?(val-65536):val;}},'8':{link:'8.001'},'9.001':{name:'DPT_Value_Temp',encode:function(phy){if(undefined===phy||NaN==phy)return'7fff';var sign=phy<0?0x8000:0;var mant=Math.round(phy*100.0);var exp=0;while(Math.abs(mant)>2047){mant>>=1;exp++;} var val=(sign|(exp<<11)|(mant&0x07ff)).toString(16);return'80'+(new Array(4-val.length+1).join('0')+val);},decode:function(hex){if(0x7fff==parseInt(hex,16))return NaN;var bin1=parseInt(hex.substr(0,2),16);var bin2=parseInt(hex.substr(2,2),16);var sign=parseInt(bin1&0x80);var exp=parseInt(bin1&0x78)>>3;var mant=parseInt(((bin1&0x7)<<8)|bin2);if(sign!=0) mant=-(~(mant-1)&0x7ff);return(1<<exp)*0.01*mant;}},'9.004':{link:'9.001'},'9.007':{link:'9.001'},'9.008':{link:'9.001'},'9.020':{link:'9.001'},'9.021':{link:'9.001'},'9':{link:'9.001'},'10.001':{name:'DPT_TimeOfDay',encode:function(phy){},decode:function(hex){var date=new Date();date.setHours(parseInt(hex.substr(0,2),16)&0x1F);date.setMinutes(parseInt(hex.substr(2,2),16));date.setSeconds(parseInt(hex.substr(4,2),16));var day=(parseInt(hex.substr(0,2),16)&0xE0)>>5;if(day>0) {var dayShift=(day-date.getDay())%7;date.setDate(date.getDate()+dayShift);} return date;}},'11.001':{name:'DPT_Date',encode:function(phy){},decode:function(hex){var year=parseInt(hex.substr(4,2),16)&0x7F;return new Date(year<90?year+2000:year+1900,(parseInt(hex.substr(2,2),16)&0x0F)-1,parseInt(hex.substr(0,2),16)&0x1F);}},'12.001':{name:'DPT_Value_4_Ucount',encode:function(phy){var val=phy.toString(16);return(val.length==1?'800':'80')+val;},decode:function(hex){return parseInt(hex,16);}},'12':{link:'12.001'},'13.001':{name:'DPT_Value_4_Count',encode:function(phy){var val=phy<0?phy+4294967296:phy;val=val.toString(16);return(val.length==1?'800':'80')+val;},decode:function(hex){var val=parseInt(hex,16);return val>2147483647?(val-4294967296):val;}},'13':{link:'13.001'},'14.001':{name:'DPT_Value_Acceleration_Angular',encode:function(phy){return'80'+phy;},decode:function(hex){var val=parseInt(hex,16);var sign=(val&0x80000000)?-1:1;var exp=((val&0x7F800000)>>23)-127;var mant=(val&0x007FFFFF|0x00800000);return sign*Math.pow(2,exp)*(mant/(1<<23));}},'14':{link:'14.001',name:'4 byte float',lname:{'de':'4 Byte Gleitkommazahl'},unit:'-'},'16.001':{name:'DPT_String_8859_1',lname:{'de':'14 Byte Text ISO-8859-1'},encode:function(phy){var val='80';for(var i=0;i<14;i++) {var c=phy.charCodeAt(i);val+=c?((c<16?'0':'')+c.toString(16)):'00';} return val;},decode:function(hex){var val="";var chars;for(var i=0;i<28;i=i+2){chars=parseInt(hex.substr(i,2),16);if(chars>0){val+=String.fromCharCode(chars);}} return val;}},'16.000':{link:'16.001',name:'DPT_String_ASCII',lname:{'de':'14 Byte Text ASCII'},unit:'-'},'16':{link:'16.001',name:'DPT_String_ASCII',lname:{'de':'14 Byte Text ASCII'},unit:'-'},'20.102':{name:'DPT_HVACMode',lname:{'de':'KONNEX Betriebsart'},unit:'-',range:{'enum':['auto','comfort','standby','economy','building_protection']},encode:function(phy){var val;switch(phy) {case 1:case'comfort':val=1;break;case 2:case'standby':val=2;break;case 3:case'economy':val=3;break;case 4:case'building_protection':val=4;break;default:val=0;} val=val.toString(16);return(val.length==1?'800':'80')+val;},decode:function(hex){switch(parseInt(hex,16)) {case 1:return'comfort';case 2:return'standby';case 3:return'economy';case 4:return'building_protection';default:return'auto';}},},'temp dummy':{link:'1.001'}});function TEST(DPT,Bytes) {var maxErr=5;DPT='DPT:'+DPT;for(i=0;i<Math.pow(2,8*Bytes);i++) {var v=i.toString(16);v=new Array(2*Bytes-v.length+1).join('0')+v;var test=Transform[DPT].encode(Transform[DPT].decode(v));if(v!=test) {var v2=Transform[DPT].decode(v);var test2=Transform[DPT].decode(Transform[DPT].encode(v2));if(v2!=test2) {console.log(i,v,test,Transform[DPT].decode(v),v2,test2,maxErr);if((--maxErr)<0)return maxErr;}}}}

    #2
    Welcher DPT?
    Geht bei mir in 0.6-Release als auch in SVN wunderbar mit dem designierten DPT9..
    (aber einer der Punkte für halbautomatische Demo/Testpage: wir hatten schon Fehler bei <0, -27 etc.pp )

    Makki
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar


      #3
      kein Vorzeichen bei Temperaturen zw. 0 und -1 Grad

      DPT 9.001 .
      Die GA ist auch im WG eingepflegt.


      Sent from my iPad using Tapatalk

      Kommentar


        #4
        Hat das was mit Bug SourceForge.net: Open Automation: Detail: 3465482 - Format string: wrong result for negative numbers above -1 zu tun?

        Der ist aber zur 0.6.2 gefixt worden...

        Oder anders: welche 0.6er Version hast Du?
        (Wenn's über das WireGate-Paket gemacht wurde und auch das aktuellste Paket drauf ist, sollte es passen. Wenn Du auf die Demo-Config gehst, steht die Version in der Fußzeile rechts unten)
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          kein Vorzeichen bei Temperaturen zw. 0 und -1 Grad

          Nach der Version kann ich im Moment gerade nicht schauen. Müsste allerdings noch die erste sein. Ich werde mir das aber auch erst morgen ansehen können.

          Danke schon mal !

          Gruß Plusch


          Sent from my iPad using Tapatalk

          Kommentar


            #6
            Habe nachgesehen, ich verwende noch die Version 0.6.1 .....
            Und im ChangeLog steht so gar die Änderung von Version 0.6.1 zu 0.6.2

            Danke für die schnelle Aufklärung!

            Gruß Plusch

            Kommentar

            Lädt...
            X