Opvangen (WiFi) signalen airco units

Pagina: 1 2 Laatste
Acties:
  • 14.998 views

Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 19:09
Ja dat is een beetje de oude airco standaard.

Onze carrier airco's hebben ook alleen maar een IR afstandsbediening en geen enkele terugkoppeling om de status te kunnen opvragen.

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 08-09 17:52
Dat heeft die van mij ook hoor, maar met deze Intesis WiFi-modules heb je wel 2-weg verkeer. Een investering, dat dan weer wel, maar dan kun je er wel weer leuk mee 'spelen'. Helemaal nu jullie er mbv scripting oplossingen voor kunnen maken :)

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 19:09
Klopt maar voor een carrier maakt Intesis alleen wif naar IR module.

Je hebt dan geen enkele terugkoppeling of een setting wel gelukt is of wat de status is.
Een enkel command dat niet aankomt en alles is uit sync.

Dat gezegd hebbende is het ook voor jouw script verstandig een control/retry in te bouwen.
Dus als je terugkrijgt dat een setting mislukt is het een keer opnieuw proberen.

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 08-09 17:52
Ah, dat wist ik niet.....

Zo'n retry klinkt me als muziek in de oren, maar ik ben nogal afhankelijk van wat jij en @Verwijderd kunnen maken.

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 19:09
Komt wel goed.

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • +1 Henk 'm!

Verwijderd

`wget` doet vanzelf een retry als die faalt. Gezien de zelfde JSON wordt gePOST, voegt het niets toe om nogmaals `wget` uit te voeren. Het is een kwestie van kijken naar de exit code die het script genereert.

Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 19:09
Dan moet die retry wel aan het wget commando meegeven met een --tries=<number>, dat doet hij niet uit zichzelf en een --timeout=<seconds> is misschien ook wel slim anders heeft hij een timeout van 900 seconden

Maar je zou afhankelijk van de status informatie die je terug kunt vragen een retry kunnen uitvoeren met een wait loop.
Kijken werkt namelijk niet zo goed bij een geautomatiseerd systeem en wifi is niet het meest betrouwbare medium.

Maar ik geef toe dat het misschien iets te luxe is gedacht voor een script.

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 08-09 17:52
Hehehe, maar als we dan toch bezig zijn.... :-D

¯\_(ツ)_/¯


Acties:
  • +1 Henk 'm!

Verwijderd

Ben(V) schreef op vrijdag 13 juli 2018 @ 14:19:
Dan moet die retry wel aan het wget commando meegeven met een --tries=<number>, dat doet hij niet uit zichzelf en ....
De --tries is default 30. Ik heb ze beide lager gezet (3x, 30s).

Ik heb het scriptje aangepast, incl klein beetje refactoring. Zou een function kunnen schrijven als wget wrapper, maar dit scheelt al de helft.

Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 08-09 17:52
Iets gaat niet goed.....
pi@pidomoticz:~ $ ./airco.sh 192.168.0.56 set power on
set failed
response:
pi@pidomoticz:~ $

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • Ben(V)
  • Registratie: December 2013
  • Laatst online: 19:09
Er worden nog steeds integers in plaats van strings gestuurd.

All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.


Acties:
  • +2 Henk 'm!

Verwijderd

Ben(V) schreef op vrijdag 13 juli 2018 @ 20:07:
Er worden nog steeds integers in plaats van strings gestuurd.
Nee, het was een string en nu een integer: "value":1 (nu) vs "value":"1" (eerst)

Het probleem was dat ik single-quotes (') lekte naar de http-request (invalid JSON). Scriptje is geupdate. ;)

Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 08-09 17:52
On/Off : OK
Setpoint : OK (opletten dat ik er een extra '0' achter plak.....)
mode: OK

In de app zie ik alles netjes meteen veranderen. Nog even kijken of 'vane' er ook bij zit.

Ik ga nog verder testen (even serie kijken met m'n vrouw), maar dit ziet er fantastisch uit !

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 08-09 17:52
Een vraag:

Het schakelen mbv 'set' gaat goed. Volgens mij met alles. Alleen, als de airco wordt geschakeld met de IR afstandsbediening of met de app, dan is er geen terugkoppeling naar Domoticz. Ik wilde dat proberen op te vangen dmv de 'get' functie. Maar als de airco aan staat, en je gebruikt :
./airco.sh 192.168.0.56 get power
dan krijg ik '0' terwijl ik '1' verwacht. Of hij nu aan of uit staat, het is altijd '0'. Klopt dat wel? Of doe ik iets verkeerd @Verwijderd ?

Dit is wat ik tot nu heb in Domoticz:

Afbeeldingslocatie: http://i64.tinypic.com/5v3vc3.jpg

De Setpoint moet ik nog iets op verzinnen, zodat ik stapsgewijs de temperatuur hoger en lager kan instellen (tot een bepaalde ondergrens en een bovengrens). Dit is dus nog allemaal zonder terugkoppeling.

[ Voor 26% gewijzigd door M.v.Veelen op 15-07-2018 17:07 ]

¯\_(ツ)_/¯


Acties:
  • +1 Henk 'm!

Verwijderd

M.v.Veelen schreef op zondag 15 juli 2018 @ 12:27:
dan krijg ik '0' terwijl ik '1' verwacht. Of hij nu aan of uit staat, het is altijd '0'. Klopt dat wel? Of doe ik iets verkeerd @Verwijderd ?
Als het ding 0 returned geeft hij waarschijnlijk ook een RC=1.
$ ./airco .....
$ echo $?

Er stonden nog quotes om de getdatapointvalue's UID.

Als je users kan aanmaken op dat ding, dan zou ik dat zeker aanraden! Gebruikersnaam en wachtwoord zijn nu dynamisch via:
$ AIRCO_USER=foo AIRCO_PASSWORD=bar ./airco 192.168.1.254 get power
Dit is wat ik tot nu heb in Domoticz:
Nice :)

Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 08-09 17:52
Ah, mooie aanvulling! Ik zie inderdaad nu resultaat bij het opvragen van de status. Dankjewel !

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • rikhartman
  • Registratie: Augustus 2007
  • Laatst online: 10-08 10:07
Ik volg dit topic al een tijdje, mooi om te zien hoe het uiteindelijk bij jou is gelukt.

Zelf heb ik sinds kort ook een wifi powered apparaat, een Qlima SC 5032. De Wifi kit wordt ook gebruikt in Midea/Inventor en nog een paar andere merken AC's.
Helaas beschikt deze controller niet over een interne webserver.
Zie ook https://www.domoticz.com/forum/viewtopic.php?t=12049

De app/controller maken verbinding met de Amazon cloud servers. Uiteraard is mijn doel om het apparaat uit te kunnen lezen en te kunnen bedienen via Domoticz, of enig ander home automation system.

Is hier toevallig iemand die hier iets meer over weet? Behalve eerder genoemde URL kan ik weinig vinden.
Denk persoonlijk dat het nog een lastig geval gaan zijn, door de encryptie en signed certificates.. maar wie weet/

Acties:
  • 0 Henk 'm!

  • lvmeijer
  • Registratie: November 2001
  • Laatst online: 19-08 20:01

lvmeijer

www.leonmeijer.nl

Ik heb een Mitsubishi split A/C met de Airconwithme WiFi module. Ik bedien de A/C d.m.v. PowerShell. PowerShell is makkelijk om snel te experimenteren op een Windows OS.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ipAddress = "192.168.3.217"

#Login
$response = Invoke-Restmethod -Uri "http://$ipAddress/api.cgi" -Method "POST" -Headers @{"Cookie"="Intesis-Webserver={%22sessionID%22:null}"; "Origin"="http://$ipAddress"; "Accept-Encoding"="gzip, deflate"; "Accept-Language"="en-US,en;q=0.9,nl;q=0.8"; "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"; "Accept"="application/json, text/javascript, */*; q=0.01"; "Referer"="http://$ipAddress/"; "X-Requested-With"="XMLHttpRequest"; "DNT"="1"} -ContentType "application/json; charset=UTF-8" -Body "{`"command`":`"login`",`"data`":{`"username`":`"admin`",`"password`":`"admin`"}}";
$sessionId = $response.data.id.sessionID

# Set mode to Heat
Invoke-Restmethod -Uri "http://$ipAddress/api.cgi" -Method "POST" -Headers @{"Cookie"="Intesis-Webserver={%22sessionID%22:%22$sessionId%22}"; "Origin"="http://$ipAddress"; "Accept-Encoding"="gzip, deflate"; "Accept"="application/json, text/javascript, */*; q=0.01"; "Referer"="http://$ipAddress/"; "X-Requested-With"="XMLHttpRequest"; "DNT"="1"} -ContentType "application/json; charset=UTF-8" -Body "{`"command`":`"setdatapointvalue`",`"data`":{`"sessionID`":`"$sessionId`",`"uid`":2,`"value`":1}}"
# Set fan speed to speed 3
Invoke-WebRequest -Uri "http://$ipAddress/api.cgi" -Method "POST" -Headers @{"Cookie"="Intesis-Webserver={%22sessionID%22:%22$sessionId%22}"; "Origin"="http://$ipAddress"; "Accept-Encoding"="gzip, deflate"; "Accept"="application/json, text/javascript, */*; q=0.01"; "Referer"="http://$ipAddress/"; "X-Requested-With"="XMLHttpRequest"; "DNT"="1"} -ContentType "application/json; charset=UTF-8" -Body "{`"command`":`"setdatapointvalue`",`"data`":{`"sessionID`":`"$sessionId`",`"uid`":4,`"value`":3}}"
# Set temperature to 23C
Invoke-WebRequest -Uri "http://$ipAddress/api.cgi" -Method "POST" -Headers @{"Cookie"="Intesis-Webserver={%22sessionID%22:%22$sessionId%22}"; "Origin"="http://$ipAddress"; "Accept-Encoding"="gzip, deflate"; "Accept"="application/json, text/javascript, */*; q=0.01"; "Referer"="http://$ipAddress/"; "X-Requested-With"="XMLHttpRequest"; "DNT"="1"} -ContentType "application/json; charset=UTF-8" -Body "{`"command`":`"setdatapointvalue`",`"data`":{`"sessionID`":`"$sessionId`",`"uid`":9,`"value`":230}}"
# Set position to Swing
Invoke-WebRequest -Uri "http://$ipAddress/api.cgi" -Method "POST" -Headers @{"Cookie"="Intesis-Webserver={%22sessionID%22:%22$sessionId%22}"; "Origin"="http://$ipAddress"; "Accept-Encoding"="gzip, deflate"; "Accept"="application/json, text/javascript, */*; q=0.01"; "Referer"="http://$ipAddress/"; "X-Requested-With"="XMLHttpRequest"; "DNT"="1"} -ContentType "application/json; charset=UTF-8" -Body "{`"command`":`"setdatapointvalue`",`"data`":{`"sessionID`":`"$sessionId`",`"uid`":5,`"value`":10}}"
# Turn on A/C
Invoke-WebRequest -Uri "http://$ipAddress/api.cgi" -Method "POST" -Headers @{"Cookie"="Intesis-Webserver={%22sessionID%22:%22$sessionId%22}"; "Origin"="http://$ipAddress"; "Accept-Encoding"="gzip, deflate"; "Accept"="application/json, text/javascript, */*; q=0.01"; "Referer"="http://$ipAddress/"; "X-Requested-With"="XMLHttpRequest"; "DNT"="1"} -ContentType "application/json; charset=UTF-8" -Body "{`"command`":`"setdatapointvalue`",`"data`":{`"sessionID`":`"$sessionId`",`"uid`":1,`"value`":1}}"


In een paar minuten gemaakt d.m.v. de Chrome Debugger. Even het IP v/d AirConWithMe openen in de browser, inloggen met admin/admin 8)7, dan naar tab Signals, wat waardes veranderen terwijl de Network capture aanstaat en deze tool PowerShell laten genereren _/-\o_

Met https://ironmansoftware.com/universal-dashboard kun je je eigen script hosten en beschikbaar stellen als REST api. Makkelijk om meerdere opdrachten te combineren tot 1.

Acties:
  • 0 Henk 'm!

  • nike
  • Registratie: November 2000
  • Niet online
M.v.Veelen hoe heb je dat in domoticz geregeld met de terugkoppeling?
Ik heb dezelfde airco en wifi module.

De wifi module en app maken beiden gebuik van de intesis cloud.
Als ik die block in de firewall kan ik de app niet meer gebruiken.

Wel het script.... dus ik wil alles lokaal kunnen bouwen.
Het script werkt goed,nu in domoticz...

-edit-


Acties:
  • 0 Henk 'm!

  • M.v.Veelen
  • Registratie: Januari 2001
  • Laatst online: 08-09 17:52
De terugkoppeling van de status had ik dmv een LUA script die elke minuut werd afgetrapt. Nadeel was / is dat de logging nogal wat te verduren kreeg en daarom heb ik het LUA script gedeactiveerd. Een oplossing helaas nog niet gevonden en heb het op een gegeven moment maar zo gelaten. Kan het dus wel vanuit Domoticz aansturen, maar de terugkoppeling is er nu niet.

¯\_(ツ)_/¯


Acties:
  • 0 Henk 'm!

  • JCreations
  • Registratie: Oktober 2009
  • Laatst online: 23-08 19:35
Is het ook mogelijk om dit te toepassen in Home Assistant? Heb zelf 0 verstand van programmeren :|

Acties:
  • 0 Henk 'm!

  • middelsluis
  • Registratie: November 2007
  • Laatst online: 25-05 18:05
*knip* Kicken en kapen van topics is niet gewenst, daarnaast wordt er ook wat eigen inzet verwacht, zie ook: Het algemeen beleid #quickstart.

Wil je dus even een nieuw topic aanmaken?

[ Voor 92% gewijzigd door rens-br op 20-06-2019 11:18 ]


Acties:
  • 0 Henk 'm!

  • guardi1337
  • Registratie: December 2015
  • Laatst online: 02-07 11:08
rikhartman schreef op woensdag 1 augustus 2018 @ 15:42:
Ik volg dit topic al een tijdje, mooi om te zien hoe het uiteindelijk bij jou is gelukt.

Zelf heb ik sinds kort ook een wifi powered apparaat, een Qlima SC 5032. De Wifi kit wordt ook gebruikt in Midea/Inventor en nog een paar andere merken AC's.
Helaas beschikt deze controller niet over een interne webserver.
Zie ook https://www.domoticz.com/forum/viewtopic.php?t=12049

De app/controller maken verbinding met de Amazon cloud servers. Uiteraard is mijn doel om het apparaat uit te kunnen lezen en te kunnen bedienen via Domoticz, of enig ander home automation system.

Is hier toevallig iemand die hier iets meer over weet? Behalve eerder genoemde URL kan ik weinig vinden.
Denk persoonlijk dat het nog een lastig geval gaan zijn, door de encryptie en signed certificates.. maar wie weet/
Inmiddels is in die thread wat meer info, hier staat wat code:
https://github.com/NeoAcheron/midea-ac-py/wiki
https://github.com/yitsushi/midea-air-condition
Pagina: 1 2 Laatste

Dit topic is gesloten.