Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Wemos Schaltaktor/Relai wie aus dem IOBroker heraus betätigen?

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Wemos Schaltaktor/Relai wie aus dem IOBroker heraus betätigen?

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

      Puuh Paul…. :shock: danke, Du bist echt Spitze....

      Ich warte momentan auf nen Wemo und melde mich sobald die Hardware da und mit dem Sketch betankt ist....

      Den Script was Du geschrieben hast, bekomme ich auch auf die IOBroker Kiste. Bin echt gespannt ob es funktioniert!

      Gruß und Respekt für deine Programmier-Fähigkeiten.

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

        hi,

        ich habe ein Sketch auf dem Wemo installiert.

        Mit CUxD ein Geraet vom Typ (28)System/Exec/Schalter erstellt, und an der CCU im Posteingang konfiguriert:

        Danach unter dem erstelltem Gerät / CUX2801001:1)

        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!

        Das sind die Befehle, die ich nutzen kann … Erstelltes CUxD Gerät unter CCU taucht auch unter IObroker (Objekte/hm-rpc) auf. Leider steht dort nichts, was man verwerten könnte. Wieso? (Kein Datenpunkt)... Ich habe gehofft, dass ich dadurch die komplizierten Skripte vom Paul mir ersparen kann... war wohl nichts... :?

        HTTP-Befehlsuebersicht:

        "http://192.168.1.104/cmd?R1=0" schaltet das Relais mit Statusmeldung an CUxD aus

        "http://192.168.1.104/cmd?R1=1" schaltet das Relais mit Statusmeldung an CUxD ein

        "http://192.168.1.104/cmd?R1=0&transmit=0" schaltet das Relais ohne Statusmeldung an CUxD aus

        "http://192.168.1.104/cmd?R1=1&transmit=0" schaltet das Relais ohne Statusmeldung an CUxD ein

        "http://192.168.1.104/cmd?R1=state" gibt den Schaltzustand des Relais als Logikwert ("0" oder "1") zurueck

        "http://192.168.1.104/cmd?CUxD=0" Statusmeldung an CUxD bis zum reboot ausschalten

        "http://192.168.1.104/cmd?CUxD=1" Statusmeldung an CUxD einschalten

            /*
            *  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_iklei.jpg
        1526_unbenannt2.png
        1526_unbenannt5.png
        1526_unbenannt6.png

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

          @Paul Hilfeeeeee :mrgreen:

          "http://192.168.1.104/cmd?R1=0" schaltet das Relais mit Statusmeldung an CUxD aus

          "http://192.168.1.104/cmd?R1=1" schaltet das Relais mit Statusmeldung an CUxD ein

          "http://192.168.1.104/cmd?R1=state" gibt den Schaltzustand des Relais als Logikwert ("0" oder "1") zurueck

          Das sind die Befehle um den Wemo über Http zu schalten. Mit State kann ich den Zustand 0 oder 1 erfragen…

          Wie bekomme ich nen Datenpunkt jetzt unter IOBroker? Kannst Du mir ein Beispiel posten? Mit welchem Widget kann ich den Wemo schalten... Evtl. kann kir jemand dazu was sagen. Der Paul nutzt kein VIS ! 😢

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by

            Wenn du das hier meinst:

            http://forum.iobroker.net/viewtopic.php … gen#p63973

            Gruß

            Rainer

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

              schwer zu sagen..Hormoran :mrgreen:

              Ich suche nen Weg ein Gerät was über die Http Befehle sich schalten lässt, unter Vis einzubinden.

              Ich dachte an ein Widget was ich im Vis einbauen könnte…Die Wemos geben sogar den Schaltzustand ab. Nur wie oder womit am einfachsten???

              Die Scripte vom Paul vesrtehe ich nicht. Ich muß erstmal ein Anfang finden. Nur wo und womit soll ich anfangen?

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

                Du kannst ein Datenpunkt als Trigger verwenden, den Du dann über VIS "schaltest".

                Ein kleines Skript reagiert dann auf diese Schaltvorgänge und schickt Deine http-Befehle an den Wemos.

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

                  hmm, meinst Du so etwas? siehe Bild. Ein Datenpunkt, was bereits schon vorhanden ist, nutze ich als Trigger um den Befehl für Wemo abzusetzen….

                  Das geht... Brauche zwei Blokly Scripte um es EIN und AUS zu schalten...
                  1526_unbenann9.png

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

                    probier mal bitte dieses Javascript:

                    var http = require('http'); 
                    
                    var cmd = "/R1-0"; // Kommandos in der URL nach der Host-Adresse
                    var data = 'Hier können Werte im Body übergeben werden';
                    
                    var options = {
                        host: '192.168.1.104',
                        port: 80,
                        path: cmd,
                        method: 'GET',
                        headers: {
                            'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36',
                            'Content-Type': 'text/plain',
                            'Content-Length': data.length
                        }
                    };
                    
                    function httpReq(cmd,data) { // schickt an ein Alexa-Gerät (device) ein Kommando (data) per https-Request / Daten im Body
                        cmd = cmd;
                        var req = http.request(options, function(res) {
                        log("http Status: " + res.statusCode);
                        log('HEADERS: ' + JSON.stringify(res.headers), (res.statusCode != 200 ? "warn" : "info")); // Header (Rückmeldung vom Webserver)
                    
                        var bodyChunks  = [];
                        var chunkLine   = 0;
                        res.on('data', function(chunk) {
                            chunkLine = chunkLine + 1;
                            // Hier können die einzelnen Zeilen verarbeitet werden...
                            bodyChunks.push(chunk);
                    
                        }).on('end', function() {
                            //if(logOn) log("ARRAY mit den einzelnen Zeilen: " + bodyChunks);
                            //if(logOn) log("ARRAY Länge: " + bodyChunks.length);
                            var body = Buffer.concat(bodyChunks);
                            // ...und/oder das Gesamtergebnis (body).
                            log("body: " + body);
                            });
                        });
                    
                        req.on('error', function(e) { // Fehler abfangen
                            log('ERROR: ' + e.message,"warn");
                        });
                    
                        log("Data to request body: " + data);
                        // write data to request body
                        (data ? req.write(data) : log("Daten: keine Daten im Body angegeben angegeben"));
                        req.end();
                    
                    }
                    
                    // ********
                    
                    httpReq("/R1-0",data);
                    setTimeout(function(){ httpReq("/R1-1",data); }, 3000);
                    setTimeout(function(){ httpReq("/R1-0",data); }, 6000);
                    setTimeout(function(){ httpReq("/R1-1",data); }, 9000);
                    
                    

                    wenn es klappt, könnender weitermachen.

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

                      Danke Dir,

                      ich habe ein Datenpukt erstellt. (ganz oben Garagenlicht)

                      mit dem Blockly setze ich auch den Zustand false oder true… Das funktioniert schon mal. Allerdings weiß ich noch nicht was ich damit anfangen soll...

                      Du hast den Skripz in java geschrieben. Demnach muß ich nach Java umstellen. Kannst Du dir mal die Meldung dort ansehen?

                      Dort steht etaws, dass ich nicht mehr auf Blockly zurück schalten dürfte. Dies wäre echt eine Katastrophal für meine Alarmanlage 😮
                      1526_unbenan10.png
                      1526_unbenannt11.png
                      1526_unbenannt12.png

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

                        @knopers1:

                        Du hast den Skripz in java geschrieben. Demnach muß ich nach Java umstellen. Kannst Du dir mal die Meldung dort ansehen?

                        Dort steht etaws, dass ich nicht mehr auf Blockly zurück schalten dürfte. Dies wäre echt eine Katastrophal für meine Alarmanlage 😮 `

                        Nur das Skript ist in Javascript.

                        Du musst ein neues Skript anlegen und nur dieses von Blockly auf Javascript umstellen.

                        Dort kopierst Du dann das Skript rein und startest es.

                        Wenn alles funktioniert, sollte das Skript dann Deinen Demos aus, 3 Sek. später ein, 3 Sek. später aus und dann weitere drei Sekunden wieder einschalten.

                        Wenn das ohne Fehler klappt, können wir weitermachen.

                        Ich denke, die Meldung aus Deinem Screenshot kommt, weil Di ein Blockly-Skript umschalten wolltest. Es wird dann als Javascript angezeigt. Der umgekehrte Weg (zurück zu Blockly / und zwar nur für dieses Skript) ist wohl nicht möglich.

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

                          Danke für Deine Bemühungen….

                          Ich konnte es mittels eines Adapters Hm-rpc.1 mit Hilfe von Hormoran und dem Kollegen Klassisch den Wemo in den IOBroker einzubinden. Jetzt wo es unter IOBroker unter Objekte aufgetaucht ist, lässt sich das Teil mit einem Widget ansteuern und sogar mit der Zustandsanzeige... Jetzt versuche ich es im Cloud vom Alexa einzubinden. Das ist aber eine andere Baustelle... danke Dir und dem Paul für die Hilfe!
                          1526_unbenannt16.png

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          510
                          Online

                          31.7k
                          Users

                          79.8k
                          Topics

                          1.3m
                          Posts

                          4
                          17
                          3273
                          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