NEWS
Anfrage AirConWithMe (IntesisHome) Klimasteuerung Adapter
-
Hallo zusammen,
ich habe gestern meine Mitsubishi Klimaanlage bekommen. Dazu gabs ein Wi-Fi-Modul mit Cloud App. Das Modul und die App sind von AirConWithMe.com die wiederum von IntesisHome.com sind.
Leider hat der AirconWithMe scheinbar keine API. Ich würde die Anlage aber gerne in den ioBroker einbinden.
Ein Webinterface ist da und ich habe auch schon ein tolles Funktionierendes Script gefunden!!! Nun könnte ich wie blöd mit Blockly arbeiten aber ein Adapter wär schon grandios.
Kann man daraus einen Adapter machen???
Danke schonmal für eure Hilfe.
./airco.sh ip set|get option [value]
#!/usr/bin/env bash #Airconwithme script (airconwithme.com) #Written by KingOfDois. BSD 3-clause license. USAGE="usage: ${0} ip set|get option [value]" #pseudo: login credentials. #security note: wget leaks user/password in process list if [ -z "${AIRCO_PASSWORD}" ]; then AIRCO_PASSWORD=operator fi if [ -z "${AIRCO_USER}" ]; then AIRCO_USER=operator fi #pseudo: 1st argument is IP if [ -z "${1}" ]; then echo ${USAGE} exit 1 else AIRCO_IP="${1}" fi #pseudo: 2nd argument is set|get if [ "${2}" != "set" ] && [ "${2}" != "get" ]; then echo ${USAGE} exit 1 fi DIRECTION=${2} #pseudo: more variables ACTION=${3} DO=${4} VALUE=0 EXIT=0 #------------------------------------- #pseudo: functions function stderr () { cat - 1>&2 } #------------------------------------- #pseudo: action table ACTIONS=(power mode speed vane setpoint return alarm) UIDS=(1 2 4 5 9 10 14) #pseudo: select uid from action FOUND=0 for i in "${!ACTIONS[@]}" do if [ "${ACTIONS[${i}]}" == "${ACTION}" ]; then FOUND=1 WORK_UID=${UIDS[${i}]} fi done if [ ${FOUND} -eq 0 ]; then echo "available actions: ${ACTIONS[@]}" exit 1 fi #------------------------------------- #pseudo: work the $ACTION / $VALUE with $uid available if [[ "${DIRECTION}" == "set" ]]; then if [[ "${ACTION}" == "power" ]]; then OPTIONS=(on off); VALUES=(1 0); fi if [[ "${ACTION}" == "mode" ]]; then OPTIONS=(auto heat dry fan cool); VALUES=(0 1 2 3 4); fi if [[ "${ACTION}" == "speed" ]]; then OPTIONS=(1 2 3 4); VALUES=(1 2 3 4); fi if [[ "${ACTION}" == "vane" ]]; then OPTIONS=(1 2 3 4 swing); VALUES=(1 2 3 4 10); fi if [[ "${ACTION}" == "setpoint" ]]; then if [ "${DO}" == "" ]; then echo "value: 180 till 300 (18.0 till 30.0 degree C)" exit 1 else VALUE=$DO; fi fi fi #pseudo: now select the proper value based on the action if [ "${OPTIONS}" != "" ]; then FOUND=0 for i in "${!OPTIONS[@]}" do if [ "${OPTIONS[${i}]}" == "${DO}" ]; then FOUND=1 VALUE=${VALUES[${i}]} fi done if [ ${FOUND} -eq 0 ]; then echo "available [${ACTION}] options: ${OPTIONS[@]}" exit 1 fi fi #------------------------------------- COOKIE=$(mktemp) #pseudo: login LOGIN_RESPONSE=$(mktemp) LOGIN_ERROR=$(mktemp) wget --save-cookies=${COOKIE} \ --keep-session-cookies \ --post-data="{\"command\":\"login\",\"data\":{\"username\":\"${AIRCO_USER}\",\"password\":\"${AIRCO_PASSWORD}\"}}" \ --output-document=${LOGIN_RESPONSE} \ --header="Content-Type: application/json" \ --header="Accept: application/json" \ --tries=3 \ --timeout=30 \ http://${AIRCO_IP}/api.cgi 2> ${LOGIN_ERROR} LOGIN_RC=$? if [ "${LOGIN_RC}" -ne 0 ]; then cat ${LOGIN_ERROR}|stderr EXIT=1 fi if [ "$(grep -c '"success":true' ${LOGIN_RESPONSE})" -ne 1 ]; then echo "something went wrong while logging in"|stderr echo "response: $(cat ${LOGIN_RESPONSE})"|stderr EXIT=1 fi #pseudo: get sessionID from login SESSION_ID=$(awk -F '"sessionID":"' '{print $2}' ${LOGIN_RESPONSE}|awk -F '"' '{print $1}') #--------------------------------- if [ "${SESSION_ID}" != "" ]; then ACTION_RESPONSE=$(mktemp) ACTION_ERROR=$(mktemp) if [ "${DIRECTION}" == "set" ]; then POST_DATA="{\"command\":\"setdatapointvalue\",\"data\":{\"sessionID\":\"${SESSION_ID}\",\"uid\":${WORK_UID},\"value\":${VALUE}}}" else POST_DATA="{\"command\":\"getdatapointvalue\",\"data\":{\"sessionID\":\"${SESSION_ID}\",\"uid\":${WORK_UID}}}" fi wget --load-cookies=${COOKIE} \ --post-data="${POST_DATA}" \ --output-document=${ACTION_RESPONSE} \ --header="Content-Type: application/json" \ --header="Accept: application/json" \ --tries=3 \ --timeout=30 \ http://${AIRCO_IP}/api.cgi 2> ${ACTION_ERROR} ACTION_RC=$? if [ "${ACTION_RC}" -ne 0 ]; then cat ${ACTION_ERROR}|stderr EXIT=1 fi if [ "$(grep -c '"success":true' ${ACTION_RESPONSE})" -eq 1 ]; then if [ "${DIRECTION}" == "set" ]; then echo "saved"; else RESPONSE_VALUE=$(awk -F ',"value":' '{print $2}' ${ACTION_RESPONSE}|awk -F ',"status"' '{print $1}') #sed 's/\"//g' echo "${RESPONSE_VALUE}" fi else echo "${DIRECTION} failed"|stderr echo "response: $(cat ${ACTION_RESPONSE})"|stderr EXIT=1 fi #end if SESSION_ID fi #--------------------------------------------- #cleanup if [ -f "${COOKIE}" ]; then rm ${COOKIE}; fi if [ -f "${LOGIN_RESPONSE}" ]; then rm ${LOGIN_RESPONSE}; fi if [ -f "${LOGIN_ERROR}" ]; then rm ${LOGIN_ERROR}; fi if [ -f "${ACTION_RESPONSE}" ]; then rm ${ACTION_RESPONSE}; fi if [ -f "${ACTION_ERROR}" ]; then rm ${ACTION_ERROR}; fi exit ${EXIT}
-
Hallo bin noch etwas am forschen.
Hab hier mal die json Daten sowie die Zuordnungen - nun muss ich noch die möglichen Values durchspielen und mitloggen.
{"success":true,"data":{"dpval": [{"uid":1,"value":0,"status":1}, {"uid":2,"value":0,"status":1}, {"uid":4,"value":1,"status":1}, {"uid":5,"value":1,"status":1}, {"uid":9,"value":32768,"status":1}, {"uid":10,"value":32768,"status":1}, {"uid":12,"value":0,"status":0}, {"uid":13,"value":0,"status":0}, {"uid":14,"value":1,"status":0}, {"uid":15,"value":-1,"status":0}, {"uid":35,"value":180,"status":0}, {"uid":36,"value":300,"status":0}, {"uid":37,"value":32768,"status":1}, {"uid":181,"value":0,"status":1}, {"uid":182,"value":0,"status":1}, {"uid":183,"value":0,"status":1}, {"uid":184,"value":0,"status":1}]}} Zuordnung uid zu Wert {"success":true,"data":{"dpval": On/Off [{"uid":1,"value":0,"status":1}, User Mode {"uid":2,"value":0,"status":1}, FanSPeed {"uid":4,"value":1,"status":1}, Vane up/down Position {"uid":5,"value":1,"status":1}, User Setpoint Temp {"uid":9,"value":32768,"status":1}, Aktuelle Temp {"uid":10,"value":32768,"status":1}, Fernbedienung an aus {"uid":12,"value":0,"status":0}, Laufzeit(onTime) {"uid":13,"value":0,"status":0}, Alarm Status {"uid":14,"value":1,"status":0}, Error Code {"uid":15,"value":-1,"status":0}, Min Temp Setpoint {"uid":35,"value":180,"status":0}, MAx Temp setpint {"uid":36,"value":300,"status":0}, AußenTemp {"uid":37,"value":32768,"status":1}, Maintenance time {"uid":181,"value":0,"status":1}, Maintenance config {"uid":182,"value":0,"status":1}, Maintenance Filter time {"uid":183,"value":0,"status":1}, Maintenance Filter config {"uid":184,"value":0,"status":1}]}}
Vielleicht kann ja jemand helfen - über Blockly läuft auslesen und Objekte schreiben schon mal.
Danke!
-
Wofür genau könntest du Hilfe gebrauchen?
Sent from my iPhone using Tapatalk
-
Am besten wäre natürlich jemand der nen Adapter basteln kann.
Oder das Script soweit erweitern das die Daten direkt in Objekte geschrieben werden.
Der weg über Blockly ist hier meinen Kenntnissen entsprechend - aber leider nicht schön.
Vielen Dank!
-
Adapter-Requests am besten hier einbringen: https://github.com/ioBroker/AdapterRequests/issues … gern mit Link hierher und allen Infosdie Du finden kannst.
-
Erledigt.
Ich schau das ich nächste Woche mal die Werte für die Values per Web-Interface mitschneide und dokumentiere.
-
@painkillerde ich würde deinem Ansatz gerne folgen. Habe das gleiche Setup seit 2 Wochen im Haus und ärgere mich damit den AirConWithMe Adapter mitgekauft zu haben ohne API. Ich würde eigentlich ungern einen ioBroker kompatiblen IR-Sender kaufen müssen. Werde mir das Script auch mal anschauen. Danke für diese Topic!
-
Hallo zusammen,
ich bin hier über die Suche rein gekommen, da meine Eltern jetzt auch ihre Mitsubishi-Klimaanlage über das WiFi-Modul steuern wollen.
Wie genau muss ich denn das Script wo einbinden? Und kann mir jemand das Blockly-Script zum nachbauen mal zeigen?
Danke schon mal!
-
Hallo,
bin noch neu in ioBroker aber habe auch 3 Innengeräte mit dem Wifi Modul. Einen Adapter traue ich mir noch nicht zu aber evtl. kann ich das ein oder andere in Blockly abbilden. Mal schauen.
Aktuell scheitert es bei mir gerade daran, dass ich mich nicht in dem Webinterface des WLAN Modules einloggen kann. Da gab es für den Admin ein Standardpasswort aber das finde ich nicht mehr. In der spärlichen Doku habe ich auch nichts mehr gefunden. Hat das noch jemand?
-
Hallo,
habe auch den AirConwithme Adapter und die Steuerung der AC funktioniert gut über die AirConwithme App. Gibt es mittlerweile eine Möglichkeit den Controller in den IOBroker einzubinden damit man über Alexa steuern kann? Mit dem oben aufgeführten Script kann ich nichts anfangen, fehlt mit der IT-Skill, bzw. bräuchte etwas Hilfe... -
Hallöchen,
Ich habe mir auch gerade eine Mitsubishi Anlage gegönnt und werde diese demnächst ins WLAN bringen.
Daher hätte ich ebenfalls Interesse an einem Adapter -
Hey, ja ich habe mir auch eine zugelegt. Mir ist aufgefallen, dass das Webinterface direkt von Intesis ist. Hierfür gibt es ja bereits einen Adapter. Leider kann ich die Anlage nicht anmelden, da die anscheinend die Modelle voneinander getrennt haben.
Wäre super, wenn es hierfür auch einen Adapter geben würde +1! -
Hallo, ich habe bereits meine pv anlage mittels esp8266 und mqtt eingebunden... Eine Mitsubishi Klima habe ich mir auch zugelegt... Ebenfalls auf der Suche nach einer Anbindung... Cloud nein danke..Mag ich halt nicht. Bin auf diesen Ansatz gestoßen. Also auch mqtt..
-
https://chrdavis.github.io/hacking-a-mitsubishi-heat-pump-Part-1/
also das ist der einfachste Weg... einfacher gehts nicht...
Alles was man braucht ist ein wemo d1 mini, und ein JST PH Buchsenstecker mit Kabel.
-
https://github.com/gysmo38/mitsubishi2MQTT
noch besser...
-
@smartboart Würde das dann mit dem Wi-Fi-Modul von AirConWithMe.com / IntesisHome.com funktionieren?
-
Wenn du, mit dem Beitrag 1 weiter oben über mqtt, die Anlage verbinden möchtest dann benötigst du von dem WiFi Modul nur den Stecker der auf die Platine des Innengerätes geht...
Ich habe die selbe Anlage wie du, über das WiFi Modul am laufen. Frage über ein Skript die Daten ab (da ist auch ein Beitrag weiter oben glaub ich) und aktualisiere dann die Datenpunkte im iobroker.
In dem Skript setzte ich auch Werte wie:-Keiner zu Hause
-Tag Nacht Bewertung nach Uhrzeit (Nachtabsenkung)
-Sommer Winter Bewertung (Heizen Kühlen) nach Mittelwert der nächsten 3 Tage
-Aus bei Fensteröffnung länger als x MinutenWenn du magst, kann ich das Skript morgen Abend mal hier reinstellen. Bin aber kein Developer. Soll heißen dass man es bestimmt noch eleganter hin bekommt.
-
@Rababersaft Vielen Dank für dein Angebot. Dein Skript wäre sicherlich interessant. Da ich bisher noch keine Geräte über MQTT eingebunden habe, bräuchte ich erstmal Unterstützung um überhaupt an die Datenpunkte meiner Mitsubishi Klimaanlage heranzukommen.
Von den beiden MQTT Adaptern habe ich "MQTT Broker/Client" installiert.
Welche Einstellungen muß ich dort auf den Reitern "Verbindung" und "MQTT Einstellungen" vornehmen, damit eine Verbindung mit meinem AirConWithMe Wi-Fi-Modul aufgebaut wird? Oder passiert das im Skript? -
@ThatsIT sagte in Anfrage AirConWithMe (IntesisHome) Klimasteuerung Adapter:
@smartboart Würde das dann mit dem Wi-Fi-Modul von AirConWithMe.com / IntesisHome.com funktionieren?
nein
matrialeinsatz 5 € im Vegleich zum wlan melcloud Adapter 120€
Weiterer Vorteil keine Cloudanbindung. Betrieb im sicheren Wlan.
- Wemo D1 mini und jstp stecker kaufen
- Wemo flashen und konfigurieren infos dazu siehe mein link oben...
- RX TX 5V und Ground anschließen wie im link oben erklärt.
- MQTT Adapter installieren
- Vis erstellen und skript Steuerung wenn gewünscht
ich Überwache alle Fenster mit Ausblendung und Zeitverzögerung sowie Steuerung heizen kühlen bei Überschußeinspesiung. Ebenfalls lese ich den Status der Anlage zurück ..
fertig.
-
@smartboart Danke für die Rückmeldung. Da ich aber nun mal schon die Investition getätigt habe, suche ich erstmal weiter nach einer Lösung für mein AirConWithMe Modul...