Hallo Schnuggi,
ist die Firmware ne Eigenentwicklung und wenn ja würdest du mich / uns daran Teilhaben lassen ?
Hallo Schnuggi,
ist die Firmware ne Eigenentwicklung und wenn ja würdest du mich / uns daran Teilhaben lassen ?
Klar kann ich.
Da ich da immer recht einfach halte mit den Programmen sind in dem Programm fest meine Acesspoints eingetragen.
Eine bin-Datei nutzt also in diesem Fall nichts.
Ich kann aber gerne den Source-Code hier veröffentlichen.
Um den dann nutzen zu können muss man das Arduino-Entwicklungssystem und die Zusätze für den ESP instelleiren.
Zusätzlich braucht man einen USB-RS232 (3.3V) Umsetzer. (Gibts für ein paar Euro bei ebay).
Gruß
Schuggi
PS: Um ein Gefühl für die Sache zu bekommen, such ich mal den Sourcecode raus und poste ihn dann hier.
Hier mein Arduino-Code
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266WiFiMulti.h>
#include <ESP8266HTTPUpdateServer.h>
//****************************************
// Generic Esp8266
// CPU 80MHz
// Flash 1M(64k SPIFFS)
//****************************************
String Hostname = "Sonoff-";
const String Version ="SonoffSchalter OTA V1.1
(C) Schuggi 2017";
int altMilli;
#define ZEin 1
#define ZAus 0
int Zustand = ZAus;
#define PIN_Relais 12
#define PIN_LED 13
#define Relaus_Ein HIGH
#define Relaus_Aus LOW
#define LED_Ein analogWrite(PIN_LED,200)
#define LED_Aus analogWrite(PIN_LED,1023)
ESP8266WiFiMulti wifiMulti;
ESP8266WebServer server(80);
ESP8266HTTPUpdateServer httpUpdater;
float temp;
byte addr[8];
int i;
int t1;
int j=0;
uint8_t MAC_array[6];
int schritt=0;
void setup(void) {
int Timeout;
pinMode(PIN_Relais,OUTPUT);
digitalWrite(PIN_Relais, Relaus_Aus);
pinMode(PIN_LED,OUTPUT);
LED_Ein;
WiFi.macAddress(MAC_array);
Hostname = Hostname + String(MAC_array[4], HEX);
Hostname = Hostname + String(MAC_array[5], HEX);
Serial.begin(115200);
Serial.println(Version);
Serial.println("Initialized");
WiFi.mode(WIFI_STA);
wifiMulti.addAP("SSID1", "PW1"); // hier müssen natürlich die richtigen Angaben rein
wifiMulti.addAP("SSID2", "PW2");
wifiMulti.addAP("SSID3", "PW3");
WiFi.hostname(Hostname);
LED_Ein;
while (wifiMulti.run() != WL_CONNECTED)// Warten auf Verbindung
{
delay(500);
Timeout++;
if ((Timeout & 1)>0) LED_Aus;
else LED_Ein;
if (Timeout>100) break;
Serial.print(".");
}
LED_Aus;
Serial.println(WiFi.SSID());
Serial.println(WiFi.localIP());
Serial.println(Hostname);
Serial.println();
delay(1000);
httpUpdater.setup(&server);
server.on("/", Ereignis_Info);
server.on("/Ein", Ereignis_Ein);
server.on("/Aus", Ereignis_Aus);
server.onNotFound(Ereignis_Info);
server.begin(); // Starte den Server
altMilli = millis();
}
void Ereignis_Ein()
{
digitalWrite(PIN_Relais, HIGH);
//LED_Ein;
schritt = 10;
Zustand = ZEin;
server.send(200, "text/plain", "Ein");
Serial.println("Ein ");
}
void Ereignis_Aus()
{
digitalWrite(PIN_Relais, LOW);
//LED_Aus;
schritt = 0;
Zustand = ZAus;
server.send(200, "text/plain", "Aus");
Serial.println("Aus ");
}
void Ereignis_Info()
{
String T = "";
T = Version + "
";
T = T+ "SSID: "+WiFi.SSID()+"
";
T = T+ "RSSI: "+String(WiFi.RSSI())+"
";
T = T+ "Hostname: "+WiFi.hostname()+"
";
T = T+ "Zustand : ";
if (Zustand == ZAus)
{
T = T+" Aus
";
}
else
{
T = T+" Ein
" ;
}
T = T+ "/Ein oder /Aus
";
server.send(200, "text/plain", T);
}
void loop()
{
int mi = millis();
String T = " ";
if((mi-altMilli)>=500)
{
altMilli=mi;
Serial.print(".");
switch (schritt)
{
case 0: // Aus
LED_Ein;
Serial.print('E');
break;
case 1:
LED_Aus;
Serial.print('A');
case 2:
case 3:
case 4:
break;
case 5: schritt=-1;
break;
case 10: // Ein
LED_Aus;
break;
case 11:
LED_Ein;
case 12:
case 13:
case 14:
break;
case 15: schritt=9;
break;
default:
schritt = 0;
break;
}
Serial.println(schritt);
schritt++;
}
server.handleClient();
}
Bei Fragen fragen!
Gruß
Schuggi
PS: Der Code ist nicht zu 100% bereinigt, da sind eventuell noch ein paar unbenutzte Variablen drin.
http://esp8266.github.io/Arduino/versions/2.3.0/doc/libraries.html
https://github.com/esp8266/Arduino
Hier noch ein paar Bilder zu den verschiedenen Webseiten des Programms!
Hey , vielen Dank , wie man flasht ist mir bewusst , hab schon einen Sonoff Wifi am Start , aber die Firmware war mir zu mächtig , für IPSymcon reicht deins vollkommen
Hast du zufällig auch was für nen Sonoff Touch im Angebot?
Ich hab bisher nur die normalen Sonoff Basic.
PS: Einmal mit meinem Image geflasht, kann man andere Images (Updates) über den Browser einspielen.
Gruß
Schuggi