[PROJEKT] Använda Mitsubishi Outlander PHEV Remote Control via 3G

Diskussion i 'Applikationsutveckling' startad av jobe, 2 jun 2014.

  1. jobe

    jobe Infant Droid Medlem

    Blev medlem:
    5 jul 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Hejsan,

    Jag har skaffat ny bil, som nämd i rubriken. Själva bilen i sig är inte så viktig i sammanhanget förutom att det är en laddhybrid, vilket betyder att den går på el ca 4 mil och sen slår över till bensin.

    Liksom en Tesla Model S har min bil möjlighet till fjärrstyrning av vissa funktioner, så som AC, värmare, laddningsstatus och diverse annant lull lull.

    En Tesla Model S använder mobil kommunikation mellan bilen och smartphone ( iPhone/Android, här är jag inte så insatt, men har förstått att det är så det fungerar).

    En Mitsubishi Outlander PHEV använder WiFi som då har en enorm nackdel, räckvidden är usel, vilket innebär att man inte kan kommunicera med bilen om du inte har fri sikt och står inom 50 meters radie.

    Bilen har sin egen wifi-router som en telefon måste ansluta _till_. (Alltså bilen ansluter inte till något hemmanätverk eller mobil-hotspot).


    Nu till mina planer.
    Korta versionen: Jag skulle vilja kunna komma åt bilens funktioner via 3G.

    Långa versionen:
    Jag kom på en snilleblixt, trodde jag, förra veckan.
    Jag har en rootad Nexus S som jag inte använder men med ett nyinköpt kontantkort för ändamålet.
    Den är ansluten till bilens nätverk och tanken är att den ska ligga i bilen som en brygga mellan mobila datanätet och wifienheten i bilen.

    Jag har installerat en VNC-server på den, så jag kan ansluta till Nexus S via VNC Viewer. Detta fungerar tillfredsställande.

    När jag sen skulle prova min "genialiska lösning" upptäckte jag att jag glömt en viktig del.
    Min Nexus S, eller Android generellt, kan inte ha WiFi och mobilt data aktiverat samtidigt. WiFi blir prioriterat över 3G/Mobildata.

    Detta sätter mig i ett dödläge - Jag behöver Wifi från bilen till telefonen, och mobilt data för att kunna fjärrstyra telefonen.

    Jag behöver på något sätt få till så att:
    1. Mobil data och WiFi är aktiverat samtidigt.
    2. Se till att Mitsubishi Remote använder WiFi och att VNC Server använder 3G.

    Någon som kommer på en lösning på detta? Gamla telefoner har jag gott om och kan tänka mig lägga ut en del slantar på att få det att fungera. Behövs någon annan enhet i mellan eller som hjälper till så får jag se över det också.

    Låt idéera komma!
     
  2. Zooklubba

    Zooklubba Android Medlem

    Blev medlem:
    10 jul 2010
    Inlägg:
    6 393
    Mottagna gillanden:
    2 133

    MINA ENHETER

    Bare en snabb tanke, jag har inte tasker själv. Men går det att lösa med t.ex Tasker? Tänker då att t.ex smsa telefonen i bilen som sedan gör sin sak, ansluter och skickar korrekt kommando till bilen? Är inte alls insatt i den världen.
     
  3. jobe

    jobe Infant Droid Medlem

    Blev medlem:
    5 jul 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Intressant, och så enkelt. Kan vara så att man får nöja sig med den lösningen.
    Jag behöver göra något slags "touch macro" som "klickar" på olika delar av skärmen för att kunna utföra det jag vill. Jag ska googla lite.
     
  4. Zooklubba

    Zooklubba Android Medlem

    Blev medlem:
    10 jul 2010
    Inlägg:
    6 393
    Mottagna gillanden:
    2 133

    MINA ENHETER

    Tasker verkar ha enormt mycket man kan göra. Att lyssna på textmeddelanden verkar gå och den kan ju styra wifi också. Borde nog gå att den skickar http post/gets (som jag antar är så bilen styrs? annars berätta gärna) beroende på vad input är (sms).
    Kan telefonen ta emot sms när wifi är igång?
     
    jobe gillar detta.
  5. jobe

    jobe Infant Droid Medlem

    Blev medlem:
    5 jul 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Sms funkar när wifi är igång. Det är ju gammal "tråkteknik" för meddelanden. :P

    Har ingen aning om hur Mitsubishis Mobilapp skickar kommandon till bilen.
    Den ligger på ett wifi med WEP2 kryptering, som jag iofs kan lösenordet till.
    Men det ligger bortom mina kunskaper att sniffa den trafiken. Skulle gärna göra det, för då skulle det vara smutt, att kunna skicka HTTP requests till bilen direkt.
     
  6. Zooklubba

    Zooklubba Android Medlem

    Blev medlem:
    10 jul 2010
    Inlägg:
    6 393
    Mottagna gillanden:
    2 133

    MINA ENHETER

    Finns appen på Play? Kanske är någon som reverse engineerat den redan. Ganska simpelt att sniffa trafiken, testat det på fordonsregister appen med min Mac. Trots att det var https.
    Så det är bara med appen man kan styra bilen? Finns det något program till datorn om man mot förmodan har en dator i bilen.

    Edit: om du har appen på en rootad telefon får du gärna slänga upp den om än temporärt. Intressant att kolla på appen för egen del :-P

    Sent from my C6903 using Tapatalk
     
    Last edited: 2 jun 2014
  7. jobe

    jobe Infant Droid Medlem

    Blev medlem:
    5 jul 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Appen finns på Play, sök på "Mitsubishi phev Remote"
    Och man kan bara styra via appen med wifi. Om du ska göra det remote. Annars får man ju gå till bilen och knappa.

    Får lägga lite energi på att lära mig sniffa det här då. Borde vara enklare när man vet wep lösenordet kan jag tycka, men vet inte mycket om det som sagt.

    Hur menar du "slänga upp den"? :P
     
  8. Zooklubba

    Zooklubba Android Medlem

    Blev medlem:
    10 jul 2010
    Inlägg:
    6 393
    Mottagna gillanden:
    2 133

    MINA ENHETER

    Lägg upp den på någon fildelningsite. Typ din publika Dropbox eller liknande.

    Sent from my C6903 using Tapatalk
     
  9. jobe

    jobe Infant Droid Medlem

    Blev medlem:
    5 jul 2010
    Inlägg:
    5
    Mottagna gillanden:
    0

    MINA ENHETER

    Fixar det ikväll! :)
     
  10. sandos

    sandos Adult Droid Medlem

    Blev medlem:
    27 maj 2009
    Inlägg:
    715
    Mottagna gillanden:
    8

    MINA ENHETER

    Man kan ju tekniskt sett använda wifi och 3G samtidigt, finns ju tether-funktionalitet som fungerar!
     
  11. Simon1573

    Simon1573 Youth Droid Medlem

    Blev medlem:
    2 maj 2011
    Inlägg:
    111
    Mottagna gillanden:
    2

    MINA ENHETER

    Med Lollipop slår Android över data-kommunikationen om det inte skulle funka över Wifi. Kan vara en lösning på ditt problem med att du förlorar 3G-uppkoppling när du ansluter till bilen :-)
     
  12. pacman42

    pacman42 Baby Droid Medlem

    Blev medlem:
    13 sept 2018
    Inlägg:
    20
    Mottagna gillanden:
    9
    Jag bumpar denna tråden, jag har nämligen samma problem med min nya Mitsubishi Outlander PHEV.

    Jag har grävt en hel del i frågan och detta är vad jag kommit fram till :
    1) protokollet är ett proprietär binärt protokoll över IP. Måste roota en telefon för att kunna läsa ut det dock, men det kommer...
    2) för att hålla igång 4G och WiFi samtidigt så kan man köra en app som heter speedify, den drar dock massor av batteri
    3) så länge batteriet räcker så kan man köra teamviewer host på Android och få fjärråtkomst till telefonen. Det fungerar rätt bra. Tyvärr hinner jag inte ladda telefonen lika snabbt som batteriet töms med denna lösningen.
    4) Alla bra idéer för att bygga sina egna Tasker-script faller om man inte har root på telefonen i bilen. Dvs, alla idéer som inte bygger på att man gjort reverse engineering på Mitsubishis protokoll.
    5) En norrman säljer en app (byggd från Tasker som jag förstår det, det är väl den ni refererar till ovan) som skickar SMS till telefonen i bilen och därifrån kan styra bilen. Den första versionen av appen finns på nätet som Tasker-script, men den bygger på att Tasker klickar på skärmen i Mitsubishis app. Min tolkning är att den app som säljs på play-butiken använder Mitsubishis protokoll istället. Denna lösningen skall ge ca två veckors batteri på telefonen då den stänger av wifi när inga kommandon skickas. Det är dock inte jag intresserad av då jag vill ha koll på laddstatusen också, vilket gör att jag planerar att kolla denna en gång i kvarten istället.

    Mina planer framöver är att göra ett eget script för Tasker till telefonen i bilen och kompilera upp det som en app, men då måste jag först roota telefonen och fånga upp meddelanden för alla saker som jag vill kunna göra, samt att jag måste lyckas med att avkoda dem. Jag vill kunna slå på/av värmen och läsa laddstatusen i första hand.

    Sedan har jag byggt en egen laddbox till bilen, jag tänker därför bygga en applikation till min vanliga telefon som skall styra denna samt även skicka kommandon till bilen. Jag kanske borde separera dessa två saker, men man vill gärna styra allt runt bilen från en app. Av denna orsak så blir det nog så att jag bygger en del av appen runt Tasker, dvs den delen som kommunicerar med bilen via SMS och att jag bygger själva GUIt med något annat ramverk.

    Man skall dock bara hinna göra detta också. Just reverse engineering brukar ta en hel del tid...
     
    bernard och mr_mille gillar detta.
  13. mr_mille

    mr_mille Baby Droid Medlem

    Blev medlem:
    29 sept 2018
    Inlägg:
    15
    Mottagna gillanden:
    12
    Hur har det gått?
     
  14. pacman42

    pacman42 Baby Droid Medlem

    Blev medlem:
    13 sept 2018
    Inlägg:
    20
    Mottagna gillanden:
    9
    Jag gav upp. Kom rätt långt, men insåg att jag inte skulle komma i mål med att knäcka protokollet. Kör nu Teamviewer och tasker, där tasker läser sms och aktiverar Teamviewer när jag vill slå på värmen. Buggar dock en del, fungerar kanske 5/6 ggr. Men det får duga. Har samma telefon till Android auto också. Har försökt köra odb2 på den, men det strular en del. Finns ju en bra gratisapp för att analysera sin PHEV-körning nämligen ochden fungerar bra på min andra telefon så det får duga.

    Har också förökt köra script för att styravärmen via appen från Tasker direkt, detta buggar ännu mer. Jag fattar inte hur många olika OK-rutor och varningar i olika kombinationer man kan hitta på. Så länge skärmen är aktiv så får jag det att fungera, men inte om skärmen är låst -då fu gerar det ibland...
     
    mr_mille och bernard gillar detta.
  15. mr_mille

    mr_mille Baby Droid Medlem

    Blev medlem:
    29 sept 2018
    Inlägg:
    15
    Mottagna gillanden:
    12
    Attans då! :(

    Allt detta är för tok krångligt!

    Haft min bil i några dagar, - 19 års modell. Nöjd för övrigt. Känner inte att jag personligen vill ge upp. Hojtar till om jag hittar en lösning.

    Norrbaggens app, Varför va det ingen bra lösning?
     
  16. N6290

    N6290 Professional Droid Medlem

    Blev medlem:
    12 sept 2012
    Inlägg:
    3 355
    Mottagna gillanden:
    1 716

    MINA ENHETER

    Vill någon förklara hur Mitsubishi kan ligga så mycket efter, borde de inte ha byggt en acceptabel lösning vid det här laget så ni slipper alla omvägar?

    Tråden startades 2014.
     
  17. pacman42

    pacman42 Baby Droid Medlem

    Blev medlem:
    13 sept 2018
    Inlägg:
    20
    Mottagna gillanden:
    9
    Iom defaultinställningarna i Android 9 så kräver appen numera att man stänger av mobildata om appen skall fungera. Inte alla telefoner har dessa inställningar per default, men iom att det är Androids defaultinställning så har många detta.

    Inställningarna det handlar om är två st och de finns under utvecklarinställningar:
    - mobildata alltid aktivt
    - smart WiFi switch (byt till 4G/3G/2G) om WiFi Inte har kontakt med Internet.

    Mitsubishis app fungerar inte om någon av (eller bägge) dessa två är aktiv. Jag har inte hunnit testa med bägge avstängda (en testrunda tar en stund med omboot och verifiering av funktionaliteten efter ytterligare en omboot osv), men det verkar inte längre som Speedify fungerar med appen heller (den skapar ju ett VPN-interface).

    Detta gör att det inte längre fungerar med TeamViewer för mig, skall undersöka om jag kan hitta en väg runt detta. På en rootad telefon, eller om man gett Tasker utökade rättigheter via ADB (och om telefonen då tillåter, ca 25% av telefonerna gör det) så kan man avaktivera mobildata från Tasker. Om mobildata är avaktiverat när Mitsubishis app startar så fungerar det att aktivera mobildata efteråt och (en stund i alla fall) styra bilen via appen. Dock hade den slutat att fungera efter ett par timmar idag, så man måste göra proceduren med att trigga aktivering av appen via SMS: 1) stäng av mobildata (om det är på) och slå på WiFi, sedan ge appen en stund att starta. 2) Aktivera sedan mobildata och dra igång TeamViewer host. 3) logga in från den andra telefonen och styr appen. 4) Efter ca 10 minuters timeout, stäng av WiFi och mobildata, samt stäng ned appen (görs genom att trycka "tillbaka-knappen" och sedan acceptera "OK".

    Någon som har idéer på hur man kan hjälpa Mitsubishi att lösa problemet? Med mobildata aktiverat så finnss både WiFi och mobildata i routingtabellen (två olika virtuella tabeller), det är dock mobildata som är default. Uppenbarligen så kan man ju kommunicera på bägge dessa interface samtidigt. Problemet är istället att Mitsubishis app inte binder sig till WiFi-interfacet så att den kan fortsätta att kommunicera via detta. Detta antyder att man i Linux-stacken kan kommunicera på ett interface som inte är det aktiva (precis som man i vilken annan routingstack som helst kan kommunicera över en länk som inte har en route på sig genom att binda appen till dess interface).

    Hur gör man i Android för att binda en app till WiFi-interfacet även om defaultrouten ligger på Mobildata?
    - Om någon kan svara på detta så kan man nog också få Mitsubishi att lösa problemet. Jag har en dialog med deras utvecklare, men de vet inte hur man gör och jag utvecklar inte själv för Android. Har försökt Googla fram en lösning utan att hitta någon.
     
  18. pacman42

    pacman42 Baby Droid Medlem

    Blev medlem:
    13 sept 2018
    Inlägg:
    20
    Mottagna gillanden:
    9
    Jag betalar inte över 200kr för en app som kan sluta att fungera när som helst pga en uppdatering från Mitsubishi. Jag lyckades göra samma beteende via Tasker & AutoInput där jag styrde skärmtryckningar i appen. Kändes dock inte stabilt då det fanns alltför många alternativa vägar trycken kunde gå (ibland kom det olika pop-uper som man var tvungen att svara på). Totalt sett blev det för krångligt att underhålla den lösningen också för mig.