Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Cloud Dienste
    4. [Frage] Wemos über CUxD mit Alexa ansteuern..

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Frage] Wemos über CUxD mit Alexa ansteuern..

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      knopers1 last edited by

      MOD-Edit by eric2905; 03.05.2017/09:57; Betreff angepasst

      Hallo,

      ich habe mit Hilfe einigen Kollegen ein Wemo mit einem Relai über CUxD an die CCU angebunden. Unter IOBroker wurde ein neuer Adapter hm-rpc.1 installiert.

      Die Daten vom Wemo tauchen unter Objekte auf… Mit einem Lampen-Widget lässt sich das Teil auch EIN/AUS schalten. Soweit alles in Ordnung!

      Ich würde gerne den Wemo noch über die Alexa steuern können? Leider wird dieses Gerät nicht gefunden.

      Habt Ihr ne Idee was man da machen kann?? Vor einiger Zeit konnte man den smartNamen ändern.... Wo war das genau???

      Ich versuche mich diser Anleitung zu richten: http://www.iobroker.net/docu/?page_id=5910&lang=de

      Unter State, wo auch ich den Wemo mit dem Lampenwidget schalte sehe ich Name "" Dort lässt sich etwas eintragen.

      Wenn ich ein smartName eintragen möchte, kommt ein Fehler beim Speichern….

      Geht es überhaupt das was ich vor habe?

      {
        "type": "state",
        "common": {
          "def": false,
          "type": "boolean",
          "read": true,
          "write": true,
          "role": "state",
          "name": ""
        },
        "native": {
          "ID": "STATE",
          "UNIT": "",
          "TAB_ORDER": 3,
          "OPERATIONS": 7,
          "FLAGS": 1,
          "CONTROL": "SWITCH.STATE",
          "TYPE": "BOOL",
          "MIN": false,
          "MAX": true,
          "DEFAULT": false
        },
        "_id": "hm-rpc.1.CUX2801001.1.STATE",
        "acl": {
          "object": 1638,
          "state": 1638
        }
      }
      

      1526_unbenann15t.png
      1526_unbenannt16.png
      1526_unbenann17t.png
      1526_unbenannt18.png

      1 Reply Last reply Reply Quote 0
      • ruhr70
        ruhr70 last edited by

        @knopers1:

        Ich würde gerne den Wemo noch über die Alexa steuern können? Leider wird dieses Gerät nicht gefunden.

        Habt Ihr ne Idee was man da machen kann?? Vor einiger Zeit konnte man den smartNamen ändern…. Wo war das genau??? `

        Du kannst den Datenpunkt, wenn er das richtige Format hat, über den Cloud-Adpter hinzufügen:

        327_cloud_neuer_dp.jpg

        1 Reply Last reply Reply Quote 0
        • K
          knopers1 last edited by

          @ruhr70

          genau das war es…. :mrgreen: Danke Dir.

          Jetzt bekomme ich die kleinen Wemos auch über die Alexa geschaltet. Wie geil ist das denn...

          Danke DIR. Damit bekommt man ganz viele Möglichkeiten sich die Aktoren selbst zu bauen. Ich bin begeistert....

          1 Reply Last reply Reply Quote 0
          • ruhr70
            ruhr70 last edited by

            Kannst Du Deinen Sketch veröffentlichen?

            1 Reply Last reply Reply Quote 0
            • K
              knopers1 last edited by

              selbstverständlich! :mrgreen:

              Vorgehensweise:

              Mit CUxD ein Geraet vom Typ (28)System/Exec/Schalter erstellen, und an der CCU im Posteingang konfigurieren.

              Den erstellten CUxD Schalter wie unten konfigurieren.

              SWITCH|CMD_SHORT: /usr/local/addons/cuxd/curl -s -m 5 'http://192.168.1.104/R1-0' // für AUS

              SWITCH|CMD_LONG: /usr/local/addons/cuxd/curl -s -m 5 'http://192.168.1.104/R1-1' // für EIN

              eigetragen. Jetzt lässt sich der Wemo schalten, und eine Statusanzeige gibt es auch!

              im Sketch Netz & CUxD anpassen!

              // ******* Einstellungen für CUxD, bitte anpassen! *******

              String transmit_state_R1 = "ja"; // ja/nein

              String CUxD_Geraet = "CUX2801001:1"; // SN:Kanal

              // ******* Netzwerkeinstellungen, bitte anpassen! *******

              const char* ssid = "o2 DSL"; // SSID des vorhandenen WLANs

              const char* password = "Rxxxxxxxxxxx"; // Passwort für das vorhandene WLAN

              const char* host = "192.168.1.70"; // IP-Adresse der CCU

              IPAddress ip(192,168,1,104); // feste IP-Adresse für den WeMos

              IPAddress dns_ip(192,168,1,001); // Adresse des DNS servers

              IPAddress gateway(192,168,1,001); // IP-Adresse des WLAN-Gateways

              IPAddress subnet(255,255,255,0); // Subnetzmaske

              und zum Schluss noch den Adapter Hm-rpc.1 im IObroker installieren und konfigurieren… Siehe Bild. Die Netzwerkeinstellungen natürlich anpassen.

               /*
                  *  WeMos-Schaltaktor (mit Status-Meldung an CUxD und Taster-Support)
                  *
                  *  Getesteter Aufbau:
                  *     WeMos D1 mini
                  *     Relay Shield mini
                  *     Pin-Belegung:
                  *        D1: Steuerleitung Relais
                  *        D2: Taster-Öffner
                  */
              
                  #include <esp8266wifi.h>
                  #include <esp8266webserver.h>
              
                  // ******* Netzwerkeinstellungen, bitte anpassen! *******
                  const char* ssid     = "o2 DSL"; // SSID des vorhandenen WLANs
                  const char* password = "Rxxxxxxxxxxx"; // Passwort für das vorhandene WLAN
                  const char* host = "192.168.1.70"; // IP-Adresse der CCU
                  IPAddress ip(192,168,1,104); // feste IP-Adresse für den WeMos
                  IPAddress dns_ip(192,168,1,001); // Adresse des DNS servers
                  IPAddress gateway(192,168,1,001); // IP-Adresse des WLAN-Gateways
                  IPAddress subnet(255,255,255,0);  // Subnetzmaske
              
                  // ******* Einstellungen für CUxD, bitte anpassen! *******
                  String transmit_state_R1 = "ja"; // ja/nein
                  String CUxD_Geraet = "CUX2801001:1"; // SN:Kanal
              
                  // Definition der Ports ....
                  const int relay_R1 = D1 ;
                  const int switch_R1 = D2 ;
              
                  // virtuelle CCU
                  String virtual_CCU = "ja"; // ja/nein
              
                  // ab hier muß eigentlich nichts mehr geändert werden.....
              
                  // ******* Einstellungen HTML *******
                  String HTML_title = "WeMos Schaltaktor";
                  String HTML_background_color = "0D4C75"; //0D4C75
                  String HTML_title_color = "C9C9C9"; //9A916C
                  String HTML_text_color = "FFFFFF";
                  String HTML_color1 = "CECECE";
                  String HTML_color2 = "9A916C";
              
                  ESP8266WebServer server(80); // Webserver initialisieren auf Port 80
                  WiFiServer server2(8181);
              
                  String Version = "1.2";
                  String Status = "0";
                  String Status_alt = "0";
                  String Status_Aenderung = "nein";
                  String Taster = "unbekannt";
                  String action = "0";
                  String transmit_state = "ja";
              
                  String HTML_head = "
              
              ## " + HTML_title + "
              
              ";
                  String HTML_end = "";
                  String HTML_style = "style='background-color: #" + HTML_background_color +"; color: #" + HTML_text_color +";' alink='#" + HTML_color2 +"' link='#" + HTML_color1 +"' vlink='#" + HTML_color1 +"'";
              
                  String zeitstempel() { // Betriebszeit als Stunde:Minute:Sekunde
                    char stempel[10];
                    int lfdStunden = millis()/3600000;
                    int lfdMinuten = millis()/60000-lfdStunden*60;
                    int lfdSekunden = millis()/1000-lfdStunden*3600-lfdMinuten*60;
                    sprintf (stempel,"%03d:%02d:%02d", lfdStunden, lfdMinuten, lfdSekunden);
                    return stempel;
                  }
              
                  void status_aktuallisieren(){
                    if (digitalRead(relay_R1) == HIGH) {Status = "1";}
                    if (digitalRead(relay_R1) == LOW) {Status = "0";}
                  }
              
                  void set_CUxD() {
                    String meldung = "";
                    WiFiClient client; // Webclient initialisieren
                    if (!client.connect(host, 8181)) { // mit dem CCU-Port 8181 verbinden
                      Serial.println(" Fehler: Verbindung zur CCU konnte nicht aufgebaut werden");
                      delay(50);
                      return;
                    }
                    meldung = meldung +"GET /WeMos.exe?state=dom.GetObject('CUxD." + CUxD_Geraet + ".SET_STATE').State('" + Status + "')";
                    client.println(meldung); // Daten an CCU melden
                  }
              
                  void root() { // bei Aufruf des Root-Verzeichnisses
                    String HTML_content = "";
                    String button_text = "null";
                    String button_color = "FFD06E";
                    String button = "" + button_text +"";
                    String HTML_start = "<title>" + HTML_title + "</title>";
                    String temp = zeitstempel();
                    String WeMos_ip = WiFi.localIP().toString();
                    HTML_content = HTML_start + HTML_head;
                    if (digitalRead(relay_R1) == HIGH) {
                    button_text = "eingeschalten";
                    button_color = "70E670";
                    button = "" + button_text +"";
                    HTML_content = HTML_content + "**Status: [" + button +"](http://" + WeMos_ip + "/cmd?R1=0)**
              
              ";
                    }
                    else {
                    button_text = "ausgeschalten";
                    button_color = "A8A8A8";
                    button = "" + button_text +"";
                    HTML_content = HTML_content + "**Status: [" + button +"](http://" + WeMos_ip + "/cmd?R1=1)**
              
              ";
                    }
                    HTML_content = HTML_content + "Betriebszeit: _" + temp + " (Std:Min:Sek)_
              ";
                    HTML_content = HTML_content + "Verbunden mit: _" + ssid + "_
              ";
                    int rssi = WiFi.RSSI();
                    HTML_content = HTML_content + "Signalstaerke: _" + String(rssi) + " dBm_
              
              ";
                    HTML_content = HTML_content + "**[Hilfe](http://" + WeMos_ip + "/help)**";
                    HTML_content = HTML_content + "<iframe name="answer_wemos" frameborder="no" height="0" width="0">Sorry, no frames.</iframe>";
                    server.send(300, "text/html", HTML_content + HTML_end);
                    delay(150);
                  }
              
                  void help() {
                  String HTML_content = "";
                  String HTML_start = "<title>" + HTML_title + "</title>";
                  String WeMos_ip = WiFi.localIP().toString();
                    HTML_content = HTML_start + HTML_head;
                    HTML_content = HTML_content + "**Schaltaktor mit Taster und Statusmeldung an CUxD (28)exec, CCU-RemotePC kompatibel";
                    HTML_content = HTML_content + "   Version: _" + Version + "_**";
                    HTML_content = HTML_content + "
              
              ### Konfiguration fuer R1:
              
              ";
                    HTML_content = HTML_content + "*   Status senden: _" + transmit_state_R1 + "_";
                    HTML_content = HTML_content + "*   CUxD-Geraet: _" + CUxD_Geraet + "_";
                    HTML_content = HTML_content + "*   Taster-Typ: _" + Taster + "_
              ";
                    HTML_content = HTML_content + "
              
              ### HTTP-Befehlsuebersicht:
              
              ";
                    HTML_content = HTML_content + "*   \"http://" + WeMos_ip + "/cmd?R1=0\" schaltet das Relais mit Statusmeldung an CUxD aus";
                    HTML_content = HTML_content + "*   \"http://" + WeMos_ip + "/cmd?R1=1\" schaltet das Relais mit Statusmeldung an CUxD ein";
                    HTML_content = HTML_content + "*   \"http://" + WeMos_ip + "/cmd?R1=0&transmit=0\" schaltet das Relais ohne Statusmeldung an CUxD aus";
                    HTML_content = HTML_content + "*   \"http://" + WeMos_ip + "/cmd?R1=1&transmit=0\" schaltet das Relais ohne Statusmeldung an CUxD ein";
                    HTML_content = HTML_content + "*   \"http://" + WeMos_ip + "/cmd?R1=state\" gibt den Schaltzustand des Relais als Logikwert (\"0\" oder \"1\") zurueck";
                    HTML_content = HTML_content + "*   \"http://" + WeMos_ip + "/cmd?CUxD=0\" Statusmeldung an CUxD bis zum reboot ausschalten";
                    HTML_content = HTML_content + "*   \"http://" + WeMos_ip + "/cmd?CUxD=1\" Statusmeldung an CUxD einschalten
              ";
                    HTML_content = HTML_content + "
              
              ### CUxD-Integration:
              
              ";   
                    HTML_content = HTML_content + "*   Mit CUxD ein Geraet vom Typ (28)System/Exec/Schalter erstellen";
                    HTML_content = HTML_content + "*   In der CCU im Posteingang konfigurieren:
                  ";
                        HTML_content = HTML_content + "   SWITCH|CMD_SHORT: /usr/local/addons/cuxd/curl -s -m 5 \'http://" + WeMos_ip + "/R1-0\'
                  ";
                        HTML_content = HTML_content + "   SWITCH|CMD_LONG: /usr/local/addons/cuxd/curl -s -m 5 \'http://" + WeMos_ip + "/R1-1\'
              
              ";
              
                    HTML_content = HTML_content + "
              
              ### [CCU-RemotePC](http://ccu-remotepc.dragonfly.at/) kompatibel:
              
              ";   
                    HTML_content = HTML_content + "*   \"virtual_CCU\" im Sketch auf \"ja\" stellen";
                    HTML_content = HTML_content + "*   via TrayControl in CCU-RemotePC folgendes Geraet erstellen:
                  ";
                        HTML_content = HTML_content + "   Plattform: CCU; Geraete Gruppe: Switch; Geraetetyp: CUxDAktor;
                  ";
                        HTML_content = HTML_content + "   CCU IP-Adresse: " + WeMos_ip + "; SN:Kanal: WeMos00000:1";
                    HTML_content = HTML_content + "*   virtuelle CCU aktiv: _" + virtual_CCU + "_
              ";
                    HTML_content = HTML_content + "
              **[zurueck](http://" + WeMos_ip + ")**
              ";
                    server.send(300, "text/html", HTML_content + HTML_end);
                  }
              
                  void turn_on() {
                    digitalWrite(relay_R1, HIGH);
                    Serial.println("on");
                  }
              
                  void turn_off() {
                    digitalWrite(relay_R1, LOW);
                    Serial.println("off");
                  }
              
                  void action_1() { //keinen status senden
                    String aktor_status = "unbekannt";
                    if (action == "1") {turn_on(); aktor_status = "eingeschalten";}
                    if (action == "0") {turn_off(); aktor_status = "ausgeschalten";}
                    Status_alt = action;
                    status_aktuallisieren();
                    server.send(200, "text/plain", "WeMos-Schaltaktor ist "+ aktor_status +", keine Meldung an CUxD");
                  }
              
                  void action_2() { //status senden
                    String aktor_status = "unbekannt";
                    if (action == "1") {turn_on(); aktor_status = "eingeschalten";}
                    if (action == "0") {turn_off(); aktor_status = "ausgeschalten";}
                    Status_alt = action;
                    status_aktuallisieren();
                    if (transmit_state == "ja") {set_CUxD();}
                    server.send(200, "text/plain", "WeMos-Schaltaktor ist "+ aktor_status +", Meldung an CUxD");
                  }
              
                  void get_state() {
                    String temp = zeitstempel();
                    status_aktuallisieren();
                    server.send(200, "text/plain", Status);
                    delay(100);
                    Serial.println(zeitstempel() + " ueber HTTP Status gemeldet");
                  }
                  void get_state_CCU() {
                    String CCU_state = "null";
                    String temp = zeitstempel();
                    status_aktuallisieren();
                    if (Status == "0") {CCU_state = "<state>false</state>";} else {CCU_state = "<state>true</state>";}
                    server.send(200, "text/plain", CCU_state);
                    delay(100);
                    Serial.println(zeitstempel() + " ueber HTTP Status gemeldet");
                  }
              
                  void server_2() {
                   // Check if a client has connected
                    WiFiClient client = server2.available();
                    if (!client) {
                      return;
                    }
              
                    // Wait until the client sends some data
                    Serial.println("new client");
                    while(!client.available()){
                      delay(1);
                    }
              
                    // Read the first line of the request
                    String request = client.readStringUntil('\r');
                    Serial.println(request);
                    client.flush();   
              
                    // Match the request
                    if (request.indexOf("=dom.GetObject('CUxD.WeMos00000:1.STATE').State(1)") != -1) {action = "1"; action_1();}
                    if (request.indexOf("=dom.GetObject%28%27CUxD.WeMos00000%3A1.STATE%27%29.State%281%29") != -1) {action = "1"; action_1();}   
              
                    if (request.indexOf("=dom.GetObject('CUxD.WeMos00000:1.STATE').State(0)") != -1){action = "0"; action_1();}
                    if (request.indexOf("=dom.GetObject%28%27CUxD.WeMos00000%3A1.STATE%27%29.State%280%29") != -1) {action = "0"; action_1();}
              
                    if (request.indexOf("=dom.GetObject('CUxD.WeMos00000:1.STATE').Value()") != -1){get_state();}
                    if (request.indexOf("=dom.GetObject%28%27CUxD.WeMos00000%3A1.STATE%27%29.Value%28%29") != -1) {get_state();}
              
                    // Return the response
                    client.println("HTTP/1.1 200 OK");
                    client.println("Content-Type: text/xml");
                    client.println(""); //  do not forget this one
                    client.print("<xml><state>");
              
                    if(Status == "1") {
                      client.print("true");
                    } else {
                      client.print("false");
                    }
                      client.print("</state></xml>");
              
                    delay(1);
                    Serial.println("Client disconnected");
                    Serial.println("");
                  }
              
                  void setup() {
                    pinMode(relay_R1, OUTPUT); // Relais-Pin als Ausgang setzen
                    pinMode(switch_R1, INPUT_PULLUP); // Taster zum schalten
              
                    // Seriellen Monitor für Kontrollausgaben öffnen
                    Serial.begin(115200);
                    Serial.println("");
                    Serial.println("WeMos-Schaltaktor");
                  //WiFi.mode(WIFI_STA);
                    // WLAN-Verbindung herstellen
                    WiFi.config(ip, dns_ip, gateway, subnet); // auskommentieren, falls eine dynamische IP bezogen werden soll
                    WiFi.begin(ssid, password);
                    Serial.print("Verbindungsaufbau");
              
                    // Verbindungsaufbau abwarten
                    byte maxwait = 30;
                    while ( (WiFi.status() != WL_CONNECTED) && (maxwait > 0) ) {
                      delay(500);
                      maxwait--;
                      Serial.print(".");
                      }
                    if (WiFi.status() != WL_CONNECTED) {Serial.println("keine Verbindung");}
                    else{
                      Serial.println(" erfolgreich!");
                      Serial.println("");
                      Serial.print("Verbunden mit: ");
                      Serial.println(ssid);
                      Serial.print("Signalstaerke: ");
                      int rssi = WiFi.RSSI();
                      Serial.print(rssi);
                      Serial.println(" dBm");
                      Serial.print("IP-Adresse: ");
                      Serial.println(WiFi.localIP());
                      Serial.println("");
                      }
                      server.on("/", root);
                    server.on("/R1-1", [](){action = "1"; action_1();});
                    server.on("/R1-0", [](){action = "0"; action_1();});
                      server.on("/cmd", cmd);
                      server.on("/help", help);
              
                    // HTTP-Server starten
                    server.begin();
                    Serial.println(zeitstempel() + " HTTP-Server gestartet");
                    if (transmit_state == "ja") {set_CUxD();}
                    int sensorVal = digitalRead(switch_R1);
                   // Serial.println(sensorVal);
                    if (sensorVal == HIGH) {Taster = "schliesser";} else {Taster = "oeffner";}
              
                    // Start server2
                    if (virtual_CCU == "ja") {server2.begin(); Serial.println(zeitstempel() + " virtuelle CCU gestarted");}
                  }
              
                  void cmd() { // bei Aufruf von "../cmd"  R1%3D0 R1%3D1
              
                    String CUxD = server.arg("CUxD");
                    String R1 = server.arg("R1");
                    String transmit = server.arg("transmit");
              
                    if (R1 == "0" && transmit == "0") {action = "0"; action_1();}
                    else if (R1 == "1" && transmit == "0") {action = "1"; action_1();}
                    else if ( (R1 == "0" && transmit == "1") || (R1 == "0") ) {action = "0"; action_2();}
                    else if ( (R1 == "1" && transmit == "1") || (R1 == "1") ) {action = "1"; action_2();}
                    else if (R1 == "state") {get_state();}
                    else if (CUxD == "1") {transmit_state_R1 = "ja"; help(); Serial.println("CUxD-Meldungen: ja");}
                    else if (CUxD == "0") {transmit_state_R1 = "nein"; help(); Serial.println("CUxD-Meldungen: nein");}
                    else {
                     help();
                          delay(100);
                          Serial.println(zeitstempel() + " Help");
                    }
                  }
              
                  void oeffner(){
                    int sensorVal = digitalRead(switch_R1);
                    if (sensorVal == HIGH && Status == "0") {turn_on(); delay(200);}
                    if (sensorVal == HIGH && Status == "1") {turn_off(); delay(200);}
                    if (sensorVal == LOW) {
                      status_aktuallisieren();
                      if (Status_alt != Status) {Status_alt = Status; Status_Aenderung = "ja";} else Status_Aenderung = "nein";
                      if (transmit_state == "ja" && Status_Aenderung == "ja") {set_CUxD();}
                    }
                  }
              
                  void schliesser(){
                    int sensorVal = digitalRead(switch_R1);
                    if (sensorVal == LOW && Status == "0") {turn_on(); delay(200);}
                    if (sensorVal == LOW && Status == "1") {turn_off(); delay(200);}
                    if (sensorVal == HIGH) {
                      status_aktuallisieren();
                      if (Status_alt != Status) {Status_alt = Status; Status_Aenderung = "ja";} else Status_Aenderung = "nein";
                      if (transmit_state == "ja" && Status_Aenderung == "ja") {set_CUxD();}
                    }
                  }
              
                  void loop() {
                    if ( (WiFi.status() != WL_CONNECTED) || (transmit_state_R1 != "ja")  ) {transmit_state = "nein";} else {transmit_state = "ja";}
                    if (Taster == "oeffner") {oeffner();}
                    else if (Taster == "schliesser") {schliesser();}
              
                    server.handleClient(); // auf HTTP-Anfragen warten
              
                     if (virtual_CCU == "ja") {server_2();}
              
                  }</esp8266webserver.h></esp8266wifi.h>
              

              1526_unbenann14t.png

              1 Reply Last reply Reply Quote 0
              • ruhr70
                ruhr70 last edited by

                Super! Danke!

                Eine Verständnisfrage:

                Gibt es einen Grund für den "Umweg" über CUxD?

                Musst Du den Schalter auch in der CCU haben?

                Ansonsten würde es doch reichen, alles in ioBroker zu machen. D.h. ioBorker steuer direkt den Wemos (ioBroker -> Wemos) und nicht ioBroker -> CUxD -> Wemos.

                1 Reply Last reply Reply Quote 0
                • Dutchman
                  Dutchman Developer Most Active Administrators last edited by

                  @ruhr70:

                  Super! Danke!

                  Eine Verständnisfrage:

                  Gibt es einen Grund für den "Umweg" über CUxD?

                  Musst Du den Schalter auch in der CCU haben?

                  Ansonsten würde es doch reichen, alles in ioBroker zu machen. D.h. ioBorker steuer direkt den Wemos (ioBroker -> Wemos) und nicht ioBroker -> CUxD -> Wemos. `

                  Genau die gleiche frage hatte ich auch, fuer mein domoticz script (welches ich in de naesten tagen hier publischen werden) machen ich es auch direkt per iObroker.

                  (und nochmal danke an @ruhr70 der mir bei ein par script sachen hierin geholfen hat ! :))

                  Vorgehensweise:

                  • Fuer die device erstellen ich einen state mit boolean wert true/false (AN/AUS)

                  • Per javascript lese ich alle states unter dieser object reihe und bei andaerung schicke ich den befehl per HTTP.

                  Hier mal die vorlage was ich benutze dafuer, die variabelen:

                  979_variable_433mhz.jpg

                  Das script (ist noch in DEV)

                  // Trigger on all state changes within Domoticz Devices
                  on({id: /^javascript\.\d\.domoticz\.Devices\.\d+\.STATE$/ , change: "ne"}, function (obj) {
                    var objArr  = obj.id.match(/(^.+)\.(.+)\.(.+)$/, ""); //Devide in + Device + CMD
                    var device  = objArr[2]; 
                    var URL = 'http://192.168.1.152';
                    var port = '8080';
                  
                  //Verify which action is required based on state value and send action by HTTP command
                      log(getState('domoticz.Devices.' + device + ".STATE").val);
                    if (getState('domoticz.Devices.' + device + ".STATE").val === true || getState('domoticz.Devices.' + device + ".STATE").val == '1') {
                      try {
                        require("request")( URL + ':' + port + '/json.htm?type=command¶m=switchlight&idx=' + device + '&switchcmd=On');
                      } catch (e) { console.error(e); }
                      console.log("request: " + URL + ':' + port + '/json.htm?type=command¶m=switchlight&idx=' + device + '&switchcmd=On');
                    } else {
                      try {
                        require("request")(URL + ':' + port + '/json.htm?type=command¶m=switchlight&idx=' + device + '&switchcmd=Off');
                      } catch (e) { console.error(e); }
                      console.log("request: " + URL + ':' + port + '/json.htm?type=command¶m=switchlight&idx=' + device + '&switchcmd=Off');
                    }
                  });
                  
                  

                  Function des scriptes:

                  • Ueberwache alle states unter devices domotics

                  • Triggere bij update

                  • lese die ID aus (mit andere worten die device) fuer welches de state geaendert ist

                  • Generiere den HTTP befehld zum schalten auf basis der variabele

                  Vorteil hieran ist das alles direkt im iObroker liegt und ich keine umwege ueber CUxD machen muss.

                  Eventueel etwas uebersehen wodurch die loesung doch angenehmer ist per CUxD ?

                  Greetz,

                  Dutch

                  1 Reply Last reply Reply Quote 0
                  • K
                    knopers1 last edited by

                    @ruhr70:

                    Super! Danke!

                    Eine Verständnisfrage:

                    Gibt es einen Grund für den "Umweg" über CUxD?

                    Musst Du den Schalter auch in der CCU haben?

                    Ansonsten würde es doch reichen, alles in ioBroker zu machen. D.h. ioBorker steuer direkt den Wemos (ioBroker -> Wemos) und nicht ioBroker -> CUxD -> Wemos. `

                    Hallo ruhr70

                    es gibt nur einen Grung für mich… Ich steuere Teilweise auch noch aus der CCU heraus... Teil läuft aber unter IOBroker mit Blokly :mrgreen:

                    Für mich ist es besser, wenn die Sachen auch unter CCU sind.

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate
                    FAQ Cloud / IOT
                    HowTo: Node.js-Update
                    HowTo: Backup/Restore
                    Downloads
                    BLOG

                    652
                    Online

                    31.9k
                    Users

                    80.3k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    1488
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo