diff --git a/contrib/csv/vaillant/vwx.csv b/contrib/csv/vaillant/vwx.csv index 892fe375..7565caa6 100644 --- a/contrib/csv/vaillant/vwx.csv +++ b/contrib/csv/vaillant/vwx.csv @@ -51,6 +51,7 @@ get;vwx;RunTimeHeating;Kompressor Laufzeit Heizung;MS;08;B509;3;0D9B00;1;-;sd;4, get;vwx;RunTimeHotWater;Kompressor Laufzeit Warmwasser;MS;08;B509;3;0D9C00;1;-;sd;4,3,2,1;ulg;-;h;-;-;;;;;;;;;;;;;;;;;;;;;;;; get;vwx;ServiceMode;Servicezeit;MS;08;B509;3;0D6600;1;-;sd;1;uch;-;-;-;-;;;;;;;;;;;;;;;;;;;;;;;; get;vwx;SoftwareState;Software Status;MS;08;B509;3;0DCF00;1;-;sd;4,3,2,1;ulg;-;-;-;-;;;;;;;;;;;;;;;;;;;;;;;; +get;vwx;HeatPumpState;Heizungspumpe Status;MS;08;B509;3;0DD000;1;-;sd;1;uch;-;-;-;-;;;;;;;;;;;;;;;;;;;;;;;; get;vwx;SwitchValve;Umschaltventil Heizen = 0 / Warmwasser = 1;MS;08;B509;3;0D1000;1;-;sd;1;uch;-;-;-;-;;;;;;;;;;;;;;;;;;;;;;;; get;vwx;TempOutside;Aussentemperatur;MS;08;B509;3;0D0600;2;temp;sd;1,2;d2c;1.0;°C;-;Temperatur;sensor;sd;3;uch;-;-;-;Fühler;;;;;;;;;;;;;;;; get;vwx;TempSpreadMax;Zulässige Temperaturspreizung T6 zu T7;MS;08;B509;3;0D6E00;1;-;sd;1,2;d2c;1.0;°C;-;-;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/contrib/csv/vaillant/vwx.ods b/contrib/csv/vaillant/vwx.ods index 35e92f21..026afc81 100644 Binary files a/contrib/csv/vaillant/vwx.ods and b/contrib/csv/vaillant/vwx.ods differ diff --git a/src/baseloop.cpp b/src/baseloop.cpp index 02a62241..8827df60 100644 --- a/src/baseloop.cpp +++ b/src/baseloop.cpp @@ -98,13 +98,19 @@ std::string BaseLoop::decodeMessage(const std::string& data) m_ebusloop->addBusCommand(new BusCommand(type, ebusCommand)); busCommand = m_ebusloop->getBusCommand(); - // decode data - Command* command = new Command(index, (*m_commands)[index], busCommand->getResult().c_str()); + if (busCommand->getResult().c_str()[0] != '-') { + // decode data + Command* command = new Command(index, (*m_commands)[index], busCommand->getResult().c_str()); + + // return result + result << command->calcResult(cmd); + + delete command; + } else { + result << busCommand->getResult().c_str(); + } - // return result - result << command->calcResult(cmd); - delete command; delete busCommand; } else {