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.
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.
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
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.
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:
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
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.
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.
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
}
}