All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.
¯\_(ツ)_/¯
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.
Zo'n retry klinkt me als muziek in de oren, maar ik ben nogal afhankelijk van wat jij en @Verwijderd kunnen maken.
¯\_(ツ)_/¯
All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.
Verwijderd
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.
¯\_(ツ)_/¯
Verwijderd
De --tries is default 30. Ik heb ze beide lager gezet (3x, 30s).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 ....
Ik heb het scriptje aangepast, incl klein beetje refactoring. Zou een function kunnen schrijven als wget wrapper, maar dit scheelt al de helft.
pi@pidomoticz:~ $ ./airco.sh 192.168.0.56 set power on
set failed
response:
pi@pidomoticz:~ $
¯\_(ツ)_/¯
All truth passes through three stages: First it is ridiculed, second it is violently opposed and third it is accepted as being self-evident.
Verwijderd
Nee, het was een string en nu een integer: "value":1 (nu) vs "value":"1" (eerst)Ben(V) schreef op vrijdag 13 juli 2018 @ 20:07:
Er worden nog steeds integers in plaats van strings gestuurd.
Het probleem was dat ik single-quotes (') lekte naar de http-request (invalid JSON). Scriptje is geupdate.
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 !
¯\_(ツ)_/¯
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 :
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 ?./airco.sh 192.168.0.56 get power
Dit is wat ik tot nu heb in Domoticz:

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 ]
¯\_(ツ)_/¯
Verwijderd
Als het ding 0 returned geeft hij waarschijnlijk ook een RC=1.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 ?
$ ./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
NiceDit is wat ik tot nu heb in Domoticz:
¯\_(ツ)_/¯
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/
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

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.
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-
¯\_(ツ)_/¯
Wil je dus even een nieuw topic aanmaken?
[ Voor 92% gewijzigd door rens-br op 20-06-2019 11:18 ]
Inmiddels is in die thread wat meer info, hier staat wat code: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/
https://github.com/NeoAcheron/midea-ac-py/wiki
https://github.com/yitsushi/midea-air-condition
Dit topic is gesloten.