Ich habe neuerdings eine v-Zug Geschirrwaschmaschine. Ich kann sehr gut die Zustände herauslesen. Das Gerät hat eine web-gui. Im Source Code findet man die Abfragen. Ebenso findet man die Abfragen im WireShark unverschlüsselt. In der App kann man noch das Gerätfernsteuern. Diese Befehle habe ich noch nicht entziffert. Ohne root access kann man wahrscheinlich kaum mit einem android Handy die Kommunikation mithören.
Habe einfach einmal mein Skript gepostet. vielleicht hilfs. Falls jemand die Befehle zum Einschalten der Programme „Vorspülen“, „Economy“, „Automatic“, „Intensive“ kennt, gerne melden. Fand nur Code zum Stoppen!
> $ip = "192.168.1.111";
>
> //Status abrufen
>
> $antwort1 = file_get_contents("http://".$ip."/ai?command=getDeviceStatus");
> $antwort2 = file_get_contents("http://".$ip."/ai?command=getModelDescription");
> $antwort3 = file_get_contents("http://".$ip."/hh?command=getZHMode");
> $antwort4 = file_get_contents("http://".$ip."/ai?command=getLastPUSHNotifications");
> $antwort5 = file_get_contents("http://".$ip."/hh?command=getProgram");
> $antwort6 = file_get_contents("http://".$ip."/hh?command=getCommand");
> $antwort6a = file_get_contents("http://".$ip."/hh?command=getCommands");
> $antwort7 = file_get_contents("http://".$ip."/hh?command=getCategories");
>
>
> $antwort80 = file_get_contents("http://".$ip."/hh?command=getCategory&value=CATEGORY_0");
> $antwort900 = file_get_contents("http://".$ip."/hh?command=getCommands&value=CATEGORY_2");
>
>
> $befehl1 = file_get_contents("http://".$ip."/hh?command=doTurnOff");
>
>
>
> SetValue(31713,$antwort1['Inactive']);
> SetValue(23709,$antwort1['Program']);
> SetValue(35441,$antwort1['Status']);
> SetValue(58040,$antwort1['ProgramEnd']['End']);
> SetValue(15522,$antwort4['0']['date']);
> SetValue(27221,$antwort4['0']['message']);
> SetValue(37156,$antwort5[0]['status']);
>
> if (GetValue(37156)<>"idle"){
> SetValue(33038,$antwort5[0]['name']);
> SetValue(22521,filter_var($antwort5[0]['energySaving']['set'], FILTER_VALIDATE_BOOLEAN)); > SetValue(39818,filter_var($antwort5[0]['optiStart']['set'], FILTER_VALIDATE_BOOLEAN));
> SetValue(17389,filter_var($antwort5[0]['partialload']['set'], FILTER_VALIDATE_BOOLEAN));
> SetValue(33799,filter_var($antwort5[0]['rinsePlus']['set'], FILTER_VALIDATE_BOOLEAN));
> SetValue(53781,filter_var($antwort5[0]['dryPlus']['set'], FILTER_VALIDATE_BOOLEAN));
>
> if ($antwort5[0]['duration']['act']>0){
> date_default_timezone_set("Europe/Berlin");
> SetValue(47620, date('H:i:s', time() + $antwort5[0]['duration']['act']) );
> }
>
> SetValue(58077,$antwort5[0]['activeStepIndex']);
> SetValue(30427,implode(",", $antwort5[0]['stepIds']));
>
> }
>
> else {
>
> $antwort=json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=PIN_ECO"),true);
>
> SetValue(22521,$antwort['value']);
>
> $antwort=json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=PIN_PARTIALLOAD"),true);
> SetValue(17389,$antwort['value']);
>
> $antwort=json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=PIN_OPTISTART"),true);
> SetValue(39818,$antwort['value']);
>
> $antwort=json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=PIN_STARTTIME"),true);
> SetValue(24596,$antwort['value']);
>
> $antwort=json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=PIN_RINSE_PLUS"),true);
> SetValue(33799,$antwort['value']);
>
> $antwort=json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=PIN_DRY_PLUS"),true);
> SetValue(53781,$antwort['value']);
>
> }
>
> $antwort=json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=PIN_STARTTIME"),true);
> SetValue(24596,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=ECO_MGMT_INFO"),true);
> SetValue(53781,filter_var($antwort['value'], FILTER_VALIDATE_BOOLEAN));
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=ECO_MGMT_ENERGY_PROGRAM"),true);
> SetValue(58089,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=ECO_MGMT_WATER_PROGRAM"),true);
> SetValue(20214,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=ECO_MGMT_ENERGY_AVG"),true);
> SetValue(51702,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=ECO_MGMT_WATER_AVG"),true);
> SetValue(31301,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=ECO_MGMT_ENERGY_TOTAL"),true);
> SetValue(36961,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=ECO_MGMT_WATER_TOTAL"),true);
>
> SetValue(27219,$antwort['value']);
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=CHILD_PROOF_LOCK"),true);
>
> SetValue(57330,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=ALL_IN_ONE"),true);
> SetValue(19242,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=DSP_ILLUMINATION"),true);
> SetValue(25096,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=DSP_BUTTON_SOUND"),true);
> SetValue(22187,intval(NamesValues($antwort['value'])));
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=DSP_SIGNAL_SOUND"),true);
> SetValue(42456,intval(NamesValues($antwort['value'])));
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=BRIGHTENER"),true);
> SetValue(11975,intval(NamesValues($antwort['value'])));
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=WATER_HARDNESS_UNIT"),true);
> SetValue(57165,intval(NamesValues($antwort['value'])));
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=WATER_HARDNESS"),true);
> SetValue(30098,intval(NamesValues($antwort['value'])));
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=TEMPERATURE_UNIT"),true);
> SetValue(14618,intval(NamesValues($antwort['value'])));
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=INTERIOR_LIGHTING"),true);
> SetValue(19413,intval(NamesValues($antwort['value'])));
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=FUNCTION_LIGHT"),true);
> SetValue(47149,intval(NamesValues($antwort['value'])));
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=AUTO_DOOR_OPENER"),true);
> SetValue(41875,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=DSP_CTRL_DOOR_ANGLE"),true);
> SetValue(45054,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=STANDBY_AUTOMATIC"),true);
> SetValue(55854,$antwort['value']);
>
> $antwort = json_decode(file_get_contents("http://".$ip."/hh?command=getCommand&value=HOT_WATER"),true);
> SetValue(55797,intval(NamesValues($antwort['value'])));
>
>
> function NamesValues($value) {
>
> $result = $value;
> $result = str_replace('Vorspülen', '1', $result);
> $result = str_replace('Reinigen', '2', $result);
> $result = str_replace('Glanzspülen', '3', $result);
> $result = str_replace('Trocknen', '4', $result);
>
> $result = str_replace('false', '0', $result);
> $result = str_replace('true', '1', $result);
> $result = str_replace('AUS', '0', $result);
> $result = str_replace('LEISE', '1', $result);
> $result = str_replace('1', '1', $result);
> $result = str_replace('2', '2', $result);
> $result = str_replace('3', '3', $result);
> $result = str_replace('4', '4', $result);
> $result = str_replace('5', '5', $result);
> $result = str_replace('6', '6', $result);
> $result = str_replace('7', '7', $result);
> $result = str_replace('8', '8', $result);
> $result = str_replace('9', '9', $result);
> $result = str_replace('10', '10', $result);
> $result = str_replace('11', '11', $result);
> $result = str_replace('12', '12', $result);
> $result = str_replace('AUTOMATISCH', '13', $result);
> $result = str_replace('°fH', '0', $result);
> $result = str_replace('°dH', '1', $result);
> $result = str_replace('0-5', '0', $result);
> $result = str_replace('6-10', '1', $result);
> $result = str_replace('11-15', '2', $result);
> $result = str_replace('16-20', '3', $result);
> $result = str_replace('21-25', '4', $result);
> $result = str_replace('26-30', '5', $result);
> $result = str_replace('31-35', '6', $result);
> $result = str_replace('36-40', '7', $result);
> $result = str_replace('41-50', '8', $result);
> $result = str_replace('51-60', '9', $result);
> $result = str_replace('61-70', '10', $result);
> $result = str_replace('71-80', '11', $result);
> $result = str_replace('81-120', '12', $result);
> $result = str_replace('0-3', '13', $result);
> $result = str_replace('4-6', '14', $result);
> $result = str_replace('7-9', '15', $result);
> $result = str_replace('10-12', '16', $result);
> $result = str_replace('13-14', '17', $result);
> $result = str_replace('15-16', '18', $result);
> $result = str_replace('17-19', '19', $result);
> $result = str_replace('20-22', '20', $result);
> $result = str_replace('23-27', '21', $result);
> $result = str_replace('28-32', '22', $result);
> $result = str_replace('33-38', '23', $result);
> $result = str_replace('39-45', '24', $result);
> $result = str_replace('46-65', '25', $result);
> $result = str_replace('°C', '0', $result);
> $result = str_replace('°F', '1', $result);
>
> $result = str_replace('EIN', '1', $result);
> $result = str_replace('OHNE HEIZEN', '2', $result);
> return $result;}