Amazon Echo zum Schalten von IP-Symcon Variablen per ESP8266 oder Wemos D1 mini

Hallo Helmut,
nur zum besseren Verständnis für mich.
Das mit dem Dimmwert geht gar nicht oder sendet er Dir falsche Werte?
Hast Du es auch mal über Test Dim im Webinterface der HA Bridge getestet?
Dort geht dann ein pop up auf mit einem Balken dort kann man zum testen einen Wert Wählen und senden.
Man kann auch wählen ob er prozent oder raw senden soll.

Gruß
Giuseppe

Siehe einen Beitrag (80) davor, das Bild ist beim Dim Wert senden mit der Rückmeldung entstanden

Ja, das ganze kann man in die Autostart geben. Einfach eine .bat Datei erstellen mit folgendem Inhalt:

@ECHO OFF
C:
CD C:\habridge\
java.exe -jar ha-bridge-3.5.1.jar
@ECHO ON

Pfade und Dateinamen anpassen, und diese in den Autostart Folder ablegen.

gruß garfi

Hallo Helmut,
in deiner device.db waren die Änderungen nicht richtig drin.
Bitte verwende mal die device.db aus dem Anhang.
Zuerst die HA Bridge Stoppen dann die device.db ersetzen.
Anschließend HA Bridge starten und Test Dim ausführen.

device.zip (351 Bytes)

Danke Dir, Du hattest noch die IP Adresse falsch drin, nach Änderung geht es jetzt wie erhofft !!

Vielen herzlichen Dank, ev wäre noch zu erklären was falsch war, bzw ein Beispiel in der Anleitung mit nur einer Integeränderung, denn ich meine nach Anleitung vorgegangen zu sein, komischer Satz :wink:

Schade, dass nicht Grad mit Float geht…

Gruß Helmut

Hallo Helmut,
sorry hatte ich übersehen mit der IP.
Aber Hauptsache es geht nun endlich.

Ich selbst mache die Änderungen in der device.db nur noch im Texteditor.
Das geht schneller und die device.db bleibt übersichtlicher zudem hat man dann nur das wirklich nötige in der device.db stehen.

nicolino209 wird die Doku noch mal überarbeiten damit es besser verständlich ist.
Wir werden das abtrennen in Hilfsvariable setzen und anschließend ein Beispiel was man mit der Hilfsvariable machen kann.

So wie ich es einschätzen kann, ist das Duplizieren in dem DB-File ev. leichter zu machen, als in der HA Bridge selbst die Geräte einfügen ;.) perhaps

Danke nochmal
Gruß Helmut

Edit, das Ändern bzw das Hinzufügen von Geräten in dem DB-File ist super einfach, kann ich empfehlen!

Ich bin mal jetzt einen anderen Weg mit dem ESP und Alexa ausprobiert:

Alexa kann ja mit dem Wemo Protokoll umgehen, blöd das bis jetzt nur eine switch Version dafür gibt, aber um die Grundfunktionen z.b. für einen Dimmer oder einfachen Relais Schalter ESP reicht es:

https://bitbucket.org/xoseperez/fauxmoesp

Mit dieser Lib, kann man ganz einfach aus seinem ESP-Aktor eine Alexa Aktor machen :slight_smile:

Funzt super habe meinen 4er Dimmer damit ergänzt :slight_smile:

Bei fragen stehe gerne zur Hilfe :slight_smile:

Kannst Du denn damit jetzt dimmen?
Kann die Lib nicht finden in der fauxmoESP.h drin ist…
Gruß Helmut

Nein dimmen geht leider nicht, nur an aus

Gesendet von iPhone mit Tapatalk

Versuch es mal hier mit :

https://bitbucket.org/pcapelo/fauxmoesp/get/d5ba9df9b7af.zip

Joo, damit ist das File drin, hast Du mal ein echo Beispiel, als Zip für mich? Mal sehen was anders ist. Kein Stress komme nicht gleich dazu…
Gruß Helmut

@Helmut ich mache euch mal die nächsten Tage ein Beispiel…

Hier ein abgeänderter Belkin Wemos - Ardunio Code von Seite1 um das SonOff Modul mit Alexa ganz ohne einen Server oder MQTT schalten zu lassen.

Die serielle Ausgabe kann ich bei mir nicht sehen, warum weiß ich nicht, flashen geht ja, ist auch egal, soll ja ohne eine Servergeschichte laufen.
Gruß Helmut
Nachtrag: Wo die serielle Schnittstelle ist hat Michael Dworkin gut beschrieben, überhaupt SUPERTyp !

 #include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiUdp.h>
#include <functional>
#include "switch.h"
#include "UpnpBroadcastResponder.h"
#include "CallbackFunction.h"

// prototypes
boolean connectWifi();

//on/off callbacks 

//- Stehlampe


void StehlampeLightsOn();
void StehlampeLightsOff();


// Change this before you flash
const char* ssid = "SSID";
const char* password = "password";
// Wemos blaue LED ist auf GPIO 2
// im SonOff ist LED auf GPIO13
// im SonOff ist Relais auf GPIO 12
// im SonOff ist LED auf GPIO 0
const int ledPin = 13;
const int Relais = 12;
const int Taster = 0;
boolean wifiConnected = false;
boolean val = 0;        // SchaltZustand
UpnpBroadcastResponder upnpBroadcastResponder;

Switch *Stehlampe = NULL;

void setup()
{
  Serial.begin(115200);
  // initialize the digital pin as an output.
  pinMode(ledPin, OUTPUT);   
  pinMode(Relais, OUTPUT); 
  pinMode(Taster, INPUT_PULLUP);
  // Initialise wifi connection
  wifiConnected = connectWifi();
  
  if(wifiConnected){
    upnpBroadcastResponder.beginUdpMulticast();
    
    // Define your switches here. Max 14
    // Format: Alexa invocation name, local port no, on callback, off callback

    Stehlampe = new Switch("Stehlampe", 81, StehlampeLightsOn, StehlampeLightsOff);

    Serial.println("Adding switches upnp broadcast responder");

    upnpBroadcastResponder.addDevice(*Stehlampe);
          
  }
}
 
void loop()
 // --------------------------------- Taster ---------------------------------------------------------- 
{
  if (!digitalRead(Taster)) // Wenn Taster betätigt
  {
    delay(50);              // Entprellung 
    if (!digitalRead(Taster))  //immer noch betätigt? Noch mal prüfen
    {
      val = !val;           // Umschalten
      digitalWrite(Relais, val);
      digitalWrite(ledPin, !val);     
     
      while (!digitalRead(Taster)); // Warten bis der Taster losgelassen wird
    }
  }

// ---------------------------------WLAN-------------------------------------------------------

	 if(wifiConnected){
      upnpBroadcastResponder.serverLoop();      
      Stehlampe->serverLoop();
         
	 }
}


void StehlampeLightsOn() {
   Serial.print("Stehlampe geht EIN ...");
   digitalWrite(ledPin, LOW); 
   digitalWrite(Relais, HIGH);  
}

void StehlampeLightsOff() {
  Serial.print("Stehlampe geht AUS ...");
  digitalWrite(ledPin, HIGH);
  digitalWrite(Relais, LOW);  
}


// connect to wifi – returns true if successful or false if not
boolean connectWifi(){
  boolean state = true;
  int i = 0;
  
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("");
  Serial.println("Connecting to WiFi");

  // Wait for connection
  Serial.print("Connecting ...");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    if (i > 10){
      state = false;
      break;
    }
    i++;
  }
  
  if (state){
    Serial.println("");
    Serial.print("Connected to ");
    Serial.println(ssid);
    Serial.print("IP address: ");
    Serial.println(WiFi.localIP());
  }
  else {
    Serial.println("");
    Serial.println("Connection failed.");
  }
  
  return state;
} 

Ich hab nur mal eine Frage wenn ich mir so ein Ding zulege und es lediglich ein / aus schalten will geht das entsprechend oben. Wenn ich jetzt auch eine Rückmeldung haben will wenn das Teil anderweitig geschaltet wird muss es das per MQTT einbinden richtig? Hat das einer per MQTT realisiert wie ist da momentan die beste Vorgehensweise mit IPS?

Ich sage mal voraus, wenn Du Dir so’n Wemos zulegst, dann wirst Du Gefallen dran finden. Da Du super Programme schreiben kannst, wirst Du das auch noch rausfinden.

Ich habe mir diese Zeilen von dem Mischka aus seiner Seite Steuerung per web mit ESP8266 WiFi Modul als Server zusammen gereimt.

So wie ich das erkenne, könnte diese Broadcast Geschichte ein Ansatz sein, für mich muß MQ-Dingsda nicht unbedingt sein.
So eine Geschichte beschreibt der Mischka dort auch, super Typ !
Gruß Helmut

Hallo erstmal muss ich sagen das ich hier neu bin und mich an diesem Projekt versuche.

Ich habe alles wie beschrieben gemacht und es funktioniert.

Ich habe 2 Lampen an mein Relais angeschlossen diese lassen sich wie beschrieben mit Alexa steuern.

Ich habe nur 1 Problem und komme nicht weiter. Nach ca. 5-10 min schalten sich die Lampe aus, danach kann ich den Befehl zum Einschalten wiedergeben und die Lampe geht an.

Kann mir einer vielleicht weiterhelfen das die Lampe nicht aus geht erst wenn ich den Befehl gebe.

Liegt das vielleicht am loop?

Vielen Dank schonmal für eure Mühe

Du wirst den PortPin des Tasters nicht belegt haben, schätze ich ? :wink:
Gruß Helmut

WoW vielen Dank für die schnelle Antwort.

Was meinst du mit PortPin ?

Also angeschlossen habe ich die GPios am Wemos und am Relaischild angeschlossen.
Ground und noch die Stromversorgung 5V auch an beiden.

Die Relais funktionieren auch per Sprache die Lampen leuchten wie gesagt funktioniert eigentlich wie es soll.

Nur schaltet sich das ganze nach ein paar Minuten aus.

In dieser Schleife wird ein Taster abgefragt, der an einem PortPin angeschlossen sein sollte.
Wenn der Code Der ist den Du genommen hast und der PortPin in der Luft hängt, dann könnte Das Dein Problem sein.
Gruß Helmut

 {
  if (!digitalRead(Taster)) // Wenn Taster betätigt
  {
    delay(50);              // Entprellung 
    if (!digitalRead(Taster))  //immer noch betätigt? Noch mal prüfen
    {
      val = !val;           // Umschalten
      digitalWrite(Relais, val);
      digitalWrite(ledPin, !val);     
     
      while (!digitalRead(Taster)); // Warten bis der Taster losgelassen wird
    }
  }