IV-koneen ohjaus etänä, JavaScript-ongelma

Viestiketju alueella 'Ohjelmointi' , aloittaja sneefy, 24.03.2017.

NOSTOJA MUROPAKETIN SISÄLLÖSTÄ
  1. sneefy

    Rekisteröitynyt:
    03.02.2009
    Viestejä:
    13
    Ongelma on seuraava:

    Talon ilmanvaihtokone on malliltaan Vallox 110 MV ja siinä on nettipohjainen käyttöliittymä. Käyttöliittymästä voi vaihtaa eri käyttötiloja kuten Kotona, Poissa, Tehostus jne. UI toimii JavaScriptillä.

    Konetta pitäisi päästä ohjaamaan kotiautomaatiolaitteella mutta miten? Osaisiko joku keksiä miten pääsen ulkoisen skriptin avulla ohjaamaan toimintoja?

    Täältä pääsee testaamaan vastaavanlaista käyttöliittymää: https://cloud.vallox.com:8080/
    Käyttäjätunnus: [email protected]
    Salasana: demo

    Homma saattaisi onnistua jollain Curl-komennolla jossa autentikointi mukana. Tai sitten jollain ulkoisella JavaScriptin pätkällä. Mm. Curl, Wget, Python, Bash script on tuttuja mutta JavaScript ei.

    Suuri kiitos sille joka keksii miten päästä ohjaamaan IV-konetta etänä :)
     
  2. matso-

    Rekisteröitynyt:
    16.03.2016
    Viestejä:
    117
    Kattele noita requesteja developer konsolista ja toista samat sitten haluamallas tavalla.

    [​IMG]
     
  3. matso-

    Rekisteröitynyt:
    16.03.2016
    Viestejä:
    117
    Tosin ei kyl mitään käryä mistä toi tollasia koodeja tohon device state requestiin keksii, mut siinääpä on pähkinää. Myös sen javascript sourcen ihmettely ja debuggaaminen auttaa selvittämään toimintatapaa.

    Edit: Eiku tois koodi tos tulee suoraan urlista /index.html?deviceid=8853824E-C597-4ECC-BDC0-9C23DCC6344F#dashboard-settings-page
     
    Viimeksi muokattu: 10.04.2017
  4. sneefy

    Rekisteröitynyt:
    03.02.2009
    Viestejä:
    13
    Tuo Post-request lataa jotain dataa laitteesta, sillä ei ohjata laitetta. Käskyt menee WebSocketilla ja se tässä on se ongelma. JS:t saa kyllä ladattua tuolta koneelta mutta niiden analysointi menee yli hilseen :)
     
  5. matso-

    Rekisteröitynyt:
    16.03.2016
    Viestejä:
    117
    Chrome ei kyllä näytä yhtään WebSocket yhteyttä servulle. Ne pitäis näkyä devtoolssien WS välilehdellä. Huomaathan, että toi pollaa GET requesteja about samaan osotteeseen kun mihin lähtee POST requesti vain sillon kun painaa nappia.

    Tossa demo ympäristössä toi POST requesti ei selkeesti tee mitään. Sehän palauttaa
    "400 Bad Request, Not allowed"
     
    Viimeksi muokattu: 10.04.2017
  6. sneefy

    Rekisteröitynyt:
    03.02.2009
    Viestejä:
    13
    Minulla on ko. laite verkossa ja se ei näytä ollenkaan POST-requesteja, pelkästään GET:jä.

    [​IMG]
     
  7. matso-

    Rekisteröitynyt:
    16.03.2016
    Viestejä:
    117
    Sillon kun vaihat tota modia ja painat "ota käyttöön"
     
  8. sneefy

    Rekisteröitynyt:
    03.02.2009
    Viestejä:
    13
    Päivitin selaimen sivun F5:llä ja tyhjensin developer consolen login. Valitsin Kotona ja painoin Ota käyttöön.

    Allan kaikki mitä console näytti:

    [​IMG]

    Yksi kuva ja kaksi GET-requestia WebSocketilla. Ei muuta.
     
  9. sneefy

    Rekisteröitynyt:
    03.02.2009
    Viestejä:
    13
    Itse asiassa tuo Demo-saitti näyttää yhden POST:n mutta sekin feilaa. Oikea kone ei näytä POST:eja. Tätä on nyt hieman hankala debugata jos ei pääse käsiksi oikeaan koneeseen. Voin kuitenkin laittaa JS-filejä jakoon jos joku osaa lukea niistä jotain mielenkiintoista.
     
  10. sneefy

    Rekisteröitynyt:
    03.02.2009
    Viestejä:
    13
    Tässä koneen pääsivu hötömölönä:

    Koodi:
    <!doctype html><html><head><title>Remote Control</title><meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1"><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><link rel="stylesheet" href="css/minimzd.css"><link rel="stylesheet" media="print" href="css/print.css"><script src="lib/jquery.js"></script><script src="js/config.js"></script><script src="lib/library.js"></script><script src="js/bundle.js"></script><script>$(document).ready(function(){document.title=window.location.hostname,configurationAfterReady(),IoGlobal.init()});</script></head><body><div data-role="page" data-theme="a" id="main"><div id="index-page-placeholder"></div></div><div data-role="page" data-theme="a" id="wizard-start-page" class="wizard-page"></div><div data-role="page" data-theme="a" id="wizard-access-page" class="wizard-page"></div><div data-role="page" data-theme="a" id="wizard-expert-page" class="wizard-page"></div><div data-role="page" data-theme="a" id="wizard-summary-page" class="wizard-page"></div><div data-role="page" data-theme="a" id="dashboard-dashboard-page" class="dashboard-page"></div><div data-role="page" data-theme="a" id="dashboard-info-page" class="dashboard-page"></div><div data-role="page" data-theme="a" id="dashboard-service-page" class="dashboard-page"></div><div data-role="page" data-theme="a" id="dashboard-expert-page" class="dashboard-page"></div><div data-role="page" data-theme="a" id="dashboard-settings-page" class="dashboard-page"></div><div data-role="page" data-theme="a" id="dashboard-configuration-page" class="configuration-page"></div><div class="block-overlay"></div><div class="block-modal"><div class="block-title">!!!</div><div class="block-content"></div></div><div class="dlg-stack-overlay"></div><div id="dlg-window"></div></body></html>
     
  11. sneefy

    Rekisteröitynyt:
    03.02.2009
    Viestejä:
    13
  12. bluesunday

    Rekisteröitynyt:
    04.05.2014
    Viestejä:
    101
    Viimeksi muokattu: 13.04.2017
  13. Dalle

    Rekisteröitynyt:
    03.11.2015
    Viestejä:
    141
    Kokeile vaihtuuko koneen tila tällä koodilla

    Koodi:
    var websocket = new WebSocket("ws://192.168.1.107");
    websocket.send(JSON.stringify({
      "65550": {
            "value":3,
            "modbus":65550
        }
    }));
    Demo-sivustolla Koti, Poissa, Tehostus ja Ohitus ovat arvoilla 0,1,2,3 eli vaihda koodissa value arvoksi joku näistä

    Edit: Pitäisi toimia, jos on toimiakseen, Chromen consolilla kun olet kirjatunut hallinta sivulle
     
    Viimeksi muokattu: 13.04.2017

Jaa tämä sivu

Alibi
Anna
Deko
Dome
Erä
Hymy
Kaksplus
Kippari
Kotilääkäri
Kotiliesi
Koululainen
Ruoka.fi
Parnasso
Seura
Suomen Kuvalehti
TM Rakennusmaailma
Tekniikan Maailma
Vauhdin Maailma
Golfpiste
Vene
Nettiauto
Ampparit
Plaza
Muropaketti