Meross Wlan Steckdosen - PHP-Modul?

Hallo Zusammen,

ist evtl. jemand etwas am bauen für diese WLAN Steckdosen von Meross?
Das Thema wäre echt interessant.

https://github.com/albertogeniola/MerossIot

Danke im Voraus.

Besitzt Du diese denn? Die lassen sich zumindest über Meross IFTTT steuern.
Wenn es eilt kannst Du also z.B. von IP-Symcon die Steckdosen über IPSymconIFTTT schalten. Wenn das Ding so toll ist und das dies dann auf einmal alle möglichen IP-Symcon Nutzer benutzten sollten, findet sich ja vielleicht auch jemand der ein PHP Modul baut.

Oder Du probierst Dich eventuell selber dran und fragst wenn Du bei was nicht weiter kommst.

Meross protocol details
Connect to MQTT server

Wenn die Dinger von Haus aus MQTT können und der Server eintragbar ist, ist es kein Ding.
Hast du mehr Daten von Meross ? Ich suche da jetzt nicht.

Wenn die von Haus aus MQTT können, würde ich dafür ein Modul schreiben, wenn du mir Daten zukommen lässt.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Die Teile von Meross können MQTT.

Da ist mehr zu dem MQTT Server von Meross

https://github.com/albertogeniola/MerossIot/blob/master/meross_cloud.py

Ansonsten sind weitere Informationen in der Readme

https://github.com/albertogeniola/MerossIot/blob/master/README.md

Wäre echt klasse.

Gruß
Olli

Moin zusammen,

hab jetzt auch so ein Teil zu Hause rumfliegen :0)
Konntest du schon mal drüber schauen Kai ?!

VG

Andreas

Wie wird die konfiguriert, kannst du mal ein paar Infos posten?

Grüße,
Kai

Moin Kai,

also das ganze wird mit der Meross App eingerichtet. (Hab ich nur kopiert :0D)

> Die Meross App aus dem AppStore von Apple oder Playstore von Google herunterladen
> Meross App starten
> Mitteilungen erlauben
> Registrieren auswählen und einen Account anlegen
> Den passenden Smart Surge Protector auswählen (Anzahl der Anschlüsse sind auf dem Bild erkennbar)
> Die Steckdosenleiste einstecken und auf Weiter drücken
> Zu den WLAN-Einstellungen auswählen um eine Verbindung mit der Meross Steckdosenleiste aufzubauen
> Meross_SW_XXXX auswählen
> Dein WLAN-Netzwerk auswählen
> Das Kennwort von deinem WLAN-Netzwerk eingeben.
> Gerätename bestimmen
> Passendes Symbol aussuchen
> Kurz warten und Fertig.

Bei meiner Mehrfachsteckdose mss425e gibt es dann fünf Varibalen bzw. Schalter

  1. Alles an / aus
  2. USB an / aus
  3. Gerät 1 an / aus
  4. Gerät 2 an / aus
  5. Gerät 3 an / aus

Weitere Infos die in der App zum Gerät geliefert werden sind :
> WLAN-Signal
> Modellnummer
> Firmware-Version
> Hardware-Version
> MAC-Adresse

VG

Andreas

Hallo,

also erstmal keine Möglichkeit MQTT direkt einzustellen?

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Leider nein … rein theoretisch kann man wohl mit größerem Aufwand und direktem löten auf dem Chip Tasmota aufspielen. Das würde ich aber aktuell nicht machen.

Dann ist es genauso wie mit der Steckdosenleiste, die ich hier habe.

Lohnen tut sich das aber. :wink:

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Hab noch was im iO Froum gefunden

GitHub - Apollon77/ioBroker.meross

und noch was

Kann man da was mit anfangen ?!

Schau mal hier: Device pairing · albertogeniola/MerossIot Wiki · GitHub
Ich habe es mir jetzt noch nicht genau angeschaut, aber da steht etwas zu MQTT.

Wir können uns das sonst auch gemeinsam anschauen, ich würde das gerne mal sehen, ohne das Gerät vor mir zu haben finde ich das immer ziemlich schwer.

Wenn ich das richtig verstanden habe, verbindet sich die Steckdose mit einem MQTT Broker von Meross, aber man kann wohl den Broker ändern.

Grüße,
Kai

Ich hab gerade erst mal versucht den Token und Co. auszulesen

<?

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://iot.meross.com/v1/Auth/Login");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "email:pasword");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);

print_r($output);

?>

In der Beschreibung steht ja

The login operation aims at exchanging the user’s credentials for some tokens that can be later used for both HTTP API and for the MQTT broker authentication.

Request:

POST /v1/Auth/Login HTTP/1.1
Host: iot.meross.com
Content-Type: application/json
vender: Meross
AppVersion: 1.3.0
AppLanguage: EN
User-Agent: okhttp/3.6.0

{„email“: „YOUR_EMAIL“, „password“: „YOUR_PASSWORD“}

Successful Response:

{„userid“: „XXXX“, „email“: „YYYYYYYYY@XXXX.ZZZ“, „token“: "XXXXXXXXXXXXXXXXXXXXXXXXXXXX

Versuch mal den Broker zu ändern.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Selbe Fehlermeldung

Geht das evlt. nicht über Curl weil die API

{„email“: „YOUR_EMAIL“, „password“: „YOUR_PASSWORD“}

erwartet?!

Lokal im eigenen Netzwerk kann ich erst am WE testen.

Das kann ich dir nicht sagen, ich kenne die Steckdosenleiste nicht. Ich habe auch keine zum testen.
Ich kann dir nur anbieten, dass wir uns das mal zusammen anschauen.

Grüße,
Kai

Gesendet von iPhone mit Tapatalk

Das ist super :0) So machen wir das.

Ich hab das Script mal umgeschrieben

<?

        $data = array(
                "email" => "email", "password" => "kennwort");
        
        $data_string = json_encode($data);
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://iot.meross.com/v1/Auth/Login");
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
            'Content-Type:application/json',
            'Content-Length: ' . strlen($data_string))
        );
        $result = curl_exec($ch);
        $data = json_decode($result);
    
    print_r($result);

?>

So kriege ich schonmal

{„apiStatus“:1023,„sysStatus“:0,„data“:null,„info“:„Sign check failed“,„timeStamp“:„2018-12-21 21:13:14“}

zurück. Also liegts doch erst mal am Script.

Moin zusammen,

damit könnt ihr den Token / Key / User ID sowie die zugeordneten Geräte auslesen.
Ledigliche {„email“: „YOUR_EMAIL“, „password“: „YOUR_PASSWORD“} müsst ihr nach Befüllung noch in Base64 decoden und dann im Script ersetzen.

Als Beispiel

{"email": "me@google.com", "password": "root"}

durch

eyJlbWFpbCI6ICJtZUBnb29nbGUuY29tIiwgInBhc3N3b3JkIjogInJvb3QifQ==
<?

$params = 'eyJlbWFpbCI6ICJtZUBnb29nbGUuY29tIiwgInBhc3N3b3JkIjogInJvb3QifQ==';
$timestamp = time();
$nonce = '0123456789ABCDEF';
$secret = '23x17ahWarFH6w29';
$sign = md5($secret.$timestamp.$nonce.$params);

$url = "https://iot.meross.com/v1";
$data = array('params' => $params, 'sign' => $sign, 'timestamp' => $timestamp, 'nonce' => $nonce);

 $payload = json_encode($data);

 // Prepare new cURL resource
 $ch = curl_init($url . "/Auth/Login");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLINFO_HEADER_OUT, true);
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

 // Set HTTP Header for POST request 
 curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 'Content-Type: application/json',
 'Content-Length: ' . strlen($payload))
 );

 $result = curl_exec($ch);
 $json_string = $result;
 $json = json_decode($json_string);
 $sessionToken = $json->data->token;
 print_r($json); 


 # An HTTP GET request example

$url = "https://iot.meross.com/v1";
$data = array('params' => $params, 'sign' => $sign, 'timestamp' => $timestamp, 'nonce' => $nonce);

 $ch = curl_init($url . "/Device/devList");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($ch, CURLINFO_HEADER_OUT, true);
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);

 // Set HTTP Header for POST request 
 curl_setopt($ch, CURLOPT_HTTPHEADER, array(
 'Content-Type: application/json',
 'Content-Length: ' . strlen($payload),
 'Authorization: OAuth '.$sessionToken)
 );

 $data = curl_exec($ch);
 curl_close($ch);
 //echo $data;
 $json = json_decode($data);
 print_r($json);

 ?>

Moin Kai,

hab endlich die erste Hürde genommen.
Für MQTT hab ich jetzt folgende Daten

    "host": "iot.meross.com"
    "port": 2001
    "userid": "123456"
    "key": "0dd1234567b864aad86a1234567bb5c5"

Das ist wohl alles was man dafür brauch. Ich kenne mich mit MQTT leider noch gar nicht aus.
Hast du ne Idee was ich jetzt machen muss :0)

Vg

Andreas