Brauche Programmierhilfe Wlan

  • Hallo zusammen,

    hab das jetzt tatsächlich zusammengeklaut:

    Das funktioniert auch.

    Es ist das Programm für einen ESP8266, der sich mit dem Shelly3EM verbindet, einen "Status" abruft, den durchsucht nach dem Wort "Power" ("Power" gibts 3x, je 1x für jede Phase), dann den nachfolgenden Wert seriell ausgibt und gleich zum Summenwert dazuzählt und am Ende auch die Summe liefert. Soweit läuft alles, aber für mich ist vieles "Blindflug".

    Mein Ziel nun:

    Aus diesem Programm heraus möchte ich jetzt einen Shelly1 ein/ausschalten.

    IP 192.168.33.1

    ID shelly1-yyyyyyyy2E10

    Kann ich gleichzeitig zum 3EM eine Verbindung zu Shelly1 aufbauen, und wie kann ich

    den dann ansteuern?

  • Wenn ich das richtig verstanden habe, gehen 2 verschiedene Verbindungen gleichzeitig wohl nicht.

    Also sollte das wohl etwa so aussehen:"

    Erst Verb_3EM schließen: Stop_client ??

    Dann Verb_sh1 öffnen : WiFiMulti.addAP("shelly1-yyyyyyyy2E10", "") ??
    Wenn Verb. steht, Befehl absetzen : http://192.168.33.1/relay/0?/turn=on ??

    Verb-sh1 wieder schließen : stop_client ??

    Verb_3EM wiederherstellen: WiFiMulti.addAP("shellyem3-xxxxxxxx8D61", "") ??

    und zurück oder weiter

    3 Mal editiert, zuletzt von hheck (15. Juni 2023 um 11:14)

  • Ich täte es zunächst mit einer zweiten HTTPClient Instanz (zweites Objekt der Klasse HTTPClient) versuchen.

    Da es sich hier um C++ handelt, sollte es gelingen, mehrere solcher Verbindungen aufzubauen.

    Allerdings kenne ich die zugrunde liegende Bibliothek nicht.

    Einen Versuch ist es aber allemal wert.

    Btw. in deinem Code oben sind die Operatoren-Zeichen (=, <=, >=, ...) schlecht lesbar, weil grau hinterlegt.

    Edit: Die HTTP-Kommunikation hat Allterco dokumentiert. Dort solltest du hinreichend fündig werden. Der Rest ist experimentieren.

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

  • Hallo eiche,

    Danke, aber du überforderst mich. Was ist eine 2. Instanz?

    Wo finde ich die Dokumentation von Allterco?

    Meinst du hier das Lexikon?

  • Die Allterco-Dokumentation zu den Shellies der 1. sowie der 2. Generation findest du unter https://shelly-api-docs.shelly.cloud/.

    C++ ist eine Programmiersprache, die Objektorientierung unterstützt.

    Wenn du absolut keine Ahnung vom programmieren hast, wird es schwierig.

    Andernfalls könnte ich dir vielleicht helfen, ich nutze allerdings schon länger die Arduino Entwicklungsumgebung (IDE=Integreted Development Envirinment) nicht mehr.

    Die zweite bzw. neue/andere Instanz ist eine Variable bzw. Referenz auf ein Objekt, zu welchem eine sog. Klasse die Vorlage (eine Art Schablone) ist.

    Eine solche wurde in der Zeile 35 "deines" Codes bereits angelegt, um mit einem Shelly zu kommunizieren.

    Ein weiteres Objekt für einen ebensolchen Zweck kannst du anlegen mit

    Code
    HTTPClient http2; // http2 ist der Instanzname, der auch anders lauten darf, bspw. shelly2.

    Ok, wir werden sehen ...

    Ansonsten ... halte die Ohren steif! ;)

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.

  • Dieses Thema enthält 27 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.