TOISWITCH - IoT I/O-Server für ESP8266

Gast #6805321
Lesenswert?

Hallo,

anbei ein kleiner Webserver für den ESP8266, mit dem sich eine 
Schaltsteckdose realisieren lässt.
Das Projekt dient mir als Lernprojekt und nutzt bewusst KEIN Arduino 
sondern das SDK von Espressif
(Sorry, aber mit dem Arduino-C-Dialekt kann ich mich nicht anfreunden).

Die Hardware ist recht simpel, der ESP Schaltet über einen GPIO-PIN via 
Transistor ein Relais (Freilaufdiode / Snubber nicht vergessen!).

Zusätzlich kann ein Taster (Schliesser) angebunden werden, um 
Schaltvorgänge lokal auszulösen und bei Bedarf mit einer 
Default-Konfiguration zu starten.

Features:

-Portschaltungen können via Webinterface oder GET-Request vorgenommen 
werden.

-Die GPIO-Ports für das Relais und den Taster können frei gewählt 
werden.

-Die Konfiguration und die Schaltvorgänge können per Passwort gesichert 
werden.

-Die Konfiguration kann via Webinterface geändert werden und wird im 
Flash gespeichert.

-Folgende Optionen können zur Zeit konfiguriert werden:
Stationsname, Passwort, Wlan SSID, Wlan Passwort, IP-Daten 
(DHCP/IP/Gateway/Subnet Mask)

-Das Gerät arbeitet ausschließlich im Wlan-Client-Mode und kann bei 
Bedarf via Taster mit einer Defaultkonfig gestartet werden, welche per 
Headerfile geändert werden kann.

Todo:

-Timer/Zeitpläne
-Code optimieren

Bilder der Hardware reiche ich noch nach.

Auf einen Schaltplan habe ich verzichtet, da die Hardware in meinen 
Augen recht simpel ist.
Auf Wunsch kann ich aber noch einen Schaltplan erstellen.
Als Netzteil nutze ich ein USB-Netzteil, das ich seines Gehäuses beraubt 
habe.

Dieses sitzt zusammen mit dem NodeMCU-Board und dem 
Schalttransistor/Freilaufdiode etc. auf einer Lochrasterplatte.
Das Relais sitzt zusammen mit dem Snubber auf einer eigenen Platine.
Beide Platinen sind in ein Zwischenstecker-Gehäuse verbaut.

Parallel zur Relaisspule liegt noch eine LED mit Vorwiderstand zur 
Statusanzeige am Gerät.
Als Relais nutze ich ein Finder-Relais 6V 1*UM 7A

Wer das nachbaut muss sich über die Gefahren in Zusammenhang mit 
Netzspannung bewusst sein und die Vorschriften kennen.
Auch sollte sich der/diejenige darüber im Klaren sein, das hier etliche 
Ampere Strom geschaltet werden und was hierfür zu beachten ist.

Bedienung:

-Gerät initial mit Defaultkonfiguration starten.
Passiert beim ersten Start automatisch.
Kann auch ausgelöst werden, indem der Taster beim Starten des Geräts für 
etwa 10 sek gedrückt wird während das Gerät eingesteckt wird.

Mein Default sieht folgende Daten vor:

Wlan SSID: default
Wlan PASS: default123
IP: DHCP
Device Password: test_123
Device Name: Schaltsteckdose

-Eigene Konfig vornehmen (Device über http://<IP-Adresse>; ansprechen und 
dann auf "configure me" klicken.

-Device startet einmal neu und connected sich mit den eingegebenen 
Wlan-Daten.

-Ab sofort ist das Device unter http://<neue IP Adresse> ansprechbar.

Alternativ kann der Ausgang im Betrieb auch per kurzem Tastendruck 
geschaltet werden.

gruß

tobi

[Mod: Threadtitel angepasst]
Angehängte Dateien:
Moderator Persönliche Seite #6805972
Lesenswert?

hacker-tobi schrieb:
> Das ZIP ist 21.2 MB gross, da dort alle für den build notwendigen files
> includiert sind.

Die Objekt- (.o bzw. .d) und Archiv-Dateien (.a) im Ordner "build" 
bilden den weitaus größten Umfang der ZIP-Datei.

Wenn ich das richtig verstehe, hätte dieser Ordner gar nicht (oder 
zumindest leer) ins ZIP gehört, da die Dateien darin beim Build doch neu 
generiert werden, oder?
Gast #6806113
Lesenswert?

Das gibts alles fertig beim freundlichen Chinesen für 5-6€. Nennt sich 
sonoff oder ähnlich, die ESP Firmware nennt sich tasmota und kann alles. 
Lohnt es sich sowas nochmal selbst zu erfinden?
#6806147
Lesenswert?

Ich suche in diesem Forum die Funktion wie man Postings schreibt und 
dann mit 5-10 Jahren Verzögerung veröffentlichen kann. Sowas muss hier 
passiert sein.

Deine Programmierung in allen Ehren, die ganze Choose gibt es wie schon 
beschrieben für ein paar Euro in Fernost, für ein wenig mehr auch bei 
Amazon. Und das in einem schicken Gehäuse.
Gast #6806549
Lesenswert?

Für mich ist hier der Weg das Ziel.
Tasmota ist eine spannende Firmware mit vielen Funktionen aber das 
einzige was ich dabei lernen würde ist tasmota auf den ESP zu 
installieren. Daher schreib ich das selbst.
Dito auch für die Hardware. Gut dabei hab ich jetzt nicht wirklich viel 
gelernt aber ich hab die Teile ohnehin da und daher bau ich lieber 
selbst.

@100 ohm:
Für mich selbst besteht derzeit kein Bedarf an MQTT, aber wenn du oder 
jemand anderes da was entwickeln mag, nehm ich es gern mit auf.

Was ich noch einbauen werde ist ein timer modus und eine Zeitschaltuhr.
Evtl auch https und OTA.
Gast #6809444
Lesenswert?

Die Tage gibts ne neue Version.

Aufgenommen wurden:

-Planbare Schaltereignisse
-OTA (Firmware update)

Bin grad noch am Testen ob alles so tut wie es soll.

Und -ja- ich weiss das es Tasmota gibt aber selber schreiben macht mehr 
Spass :)
Gast #6812120
Lesenswert?

Hi,

update:

-Configpage erweitert

-Schaltaktionen planbar in beliebigen Intervallen inkl. Serien

-UI überarbeitet

-Möglichkeit, alle Requests über HTTP GET Kommandos zu steuern

-Over-the-air-update über http/https integriert (funktioniert noch nicht 
perfekt, evtl. mache ich dazu noch einen separaten Thread auf)

Todo:

-Authentication via HTTP Basic Auth
-HTTPS
-MQTT (hat da jemand eine gute Beschreibung oder Beispiele für mich?)
Angehängte Dateien:
Gast #6817565
Lesenswert?

Hi,

da ich gerade eine zweite Steckdose gebaut habe, anbei mal ein kleiner 
Baubericht mit Bildern.

Die angehängten Bilder zeigen das Controllerboard (vor und Rückseite).
Darauf finden die NodeMCU und das Schaltrelais inkl. Ansteuerung und 
Snubber Platz.

Die NodeMCU steuert das Relais über D8 an. Dieser ist über 150 Ohm mit 
der Basis eines BC337 verbunden, der das Relais gegen Masse schaltet.
Über der Relaisspule hängt eine 1N4007 als Freilaufdiode antiparallel.

Das Relais ist ein Finder Relais 6V 1*UM 250V/7(10)A liegend.
Leider offline gekauft, daher hab ich aktuell keine Partnr.
Ähnlich ist dieses hier:

https://www.reichelt.de/steckrelais-1x-um-250v-10a-6v-rm-5-0mm-fin-40-51-9-6v-p26574.html?CCOUNTRY=445&LANGUAGE=de&trstct=pos_13&nbc=1&&r=1

Der Snubber besteht aus einem X2 Kondensator 0.1yF/275V und 300Ohm 2W 
Metallwiderstand und liegt bei mir über den Schaltkontakten.
Der Kondensator muss zwingend X2 sein!

Den Aufbau habe ich simpel auf Lochraster gemacht, wobei ich um die 
Netzspannungs-führenden Lötungen alle Lötpads großräumig entfernt habe.
Die Kriechstrecke muss hier mind 5mm betragen, mehr sind besser!

Die "Hoch"-stromführenden Leiterbahnen sind mit Draht und Lötzinn 
verstärkt.

Passend habe ich dann noch Löcher zur Verschraubung im Gehäuse gebohrt, 
insgesamt 3.
Angehängte Dateien:
Gast #6817571
Lesenswert?

Das Netzteil ist ein modifiziertes 5V USB Netzteil.

Ich habe die Ausgangsspannung auf 6V erhöht und die Kondensatoren auf 
der Sekundärseite durch 16V/470yF 105grad low ESR ersetzt, da die 
originalen mit 6.3V doch etwas arg knapp bemessen waren.
Die USB-Buchse habe ich entfernt und Litzen für Ein- und Ausgang 
angelötet.

Netzteil ist dieses hier:

https://www.saturn.de/de/product/_ok-ozb-521-2335281.html

Warum dieses?
Die Platine ist sehr kompakt, die Kondensatoren sind alle 105 Grad,
es hat einen "richtigen" Schaltregler mit Feedback und ist nicht bloss 
ein Sperrschwinger und es hat wenigstens die wichtigsten Sicherungs- und 
Entstörmaßnahmen (Fuse, Y-Kondensator prim/sek) an Board.

Beim Gehäuse habe ich die Rückseite samt USB-Buchse und den Stecker 
entfernt und verwende es innerhalb meines Gehäuses weiter, um das 
Netzteil zu halten.
Angehängte Dateien:
Gast #6817579
Lesenswert?

Die Infos zum Gehäuse liefere ich noch nach, aber natürlich geht jedes 
Zwischenstecker-Gehäuse, das genügend Platz bietet.

Anbei ein paar Bilder vom Aufbau.

Die Verkabelung ist 1.5mm2 für den Leistungsteil, der Rest ist 0.2mm 
Litze. Bei meinem Gehäuse werden die Kabel an der Eingangseite verlötet 
und ausgangsseitig geschraubt.Die Lötungen im Leistungspart habe ich 
zusätzlich verschrumpft.

Beim Verkabeln den Schutzleiter nicht vergessen und LED und Taster 
Platzieren.
Die LED kommt dabei parallel an die Relaisspule, der Taster an D6 und 
GND.

Den Controller habe ich mit dem Gehäuse verschraubt. Alle nicht 
benötigten Schraubgewinde habe ich entfernt.

Das bearbeitete Gehäuse des Netzteil habe ich evenfalls mit dem Gehäuse 
verschraubt. Hier darauf aufpassen, das die Schraube nicht zu lang ist, 
und einige Milimeter Abstand zur Netzteilplatine verbleiben.
Gast #6817584
Lesenswert?

Die Tests des Geräts habe ich komplett an einem Regel/Trenntrafo 
durchgeführt.
Dabei ist mir aufgefallen, das das Netzteil bereits ab etwa 30V AC 
anläuft und sich da schon mit 6V/500mA belasten lässt.
Auch an einem Labornetzteil mit 30V DC läuft die Schaltung komplett an 
und lässt sich somit testen.

Ich habe Tests mit Schaltströmen bis 7A (Ein/Auschaltmoment) und 
10A(eingeschalteter Zustand) bis 60 min durchgeführt und dabei die 
Wärmeentwicklung über FLIR beobachtet.
Das Reläis hat sich während dieser Zeit um etwa 10 Grad erwärmt, der 
Rest blieb unkritisch.
Da im ausgeschalteten Zustand je nach Verbraucher ein geringer Strom 
(gemessen etwa 2mA) fließen, erwärmen sich der Widerstand und 
Kondensator des Snubbers um etwa 5 Grad.
Achtung, manche Verbraucher mögen es nicht, wenn dieser minimale Strom 
durch sie fließt. In dem Fall hilft es, den Snubber parallel zum 
Verbraucher zu schalten oder den Kondensator etwas zu verkleinern.

Thats it (for today).
Gast #6817613
Lesenswert?

@Frank: Nein C++ meine ich nicht. Das nutze ich ebenso gern.
Aber Arduino ist mir "zu weit entfremdet von der Hardware" (trifft es 
nicht ganz, aber ich weiß es nicht besser zu beschreiben).
Hat auch seine Vorteile, klar...macht dein Einstieg leicht und Software 
wird durch die Abstraktion besser portierbar. Aber ich programmiere 
lieber mit weniger Abstraktion und als "IDE" nutze ich oft nur 
kwrite/notepad++ und Makefiles.
Gast #6823724
Lesenswert?

Da ich mittlerweile einige der wlan-steckdosen brauchen kann,
habe ich einige hama wlan-steckdosen gekauft und modifiziert.

Diese hier 
https://www.bauhaus.info/smart-home-steckdosen/hama-smart-steckdose-mini/p/28194552

Original ist da ein tywe2s drin, das mit einem ESP8285 bestückt ist.
Ich könnte da problemlos meine Software flashen, müsste nur die Ports 
für das Relais und den Taster in der Software anpassen.

Da der Flash des tywe2s aber für OTA zu klein ist, habe ich diese Module 
ausgelötet, und statt dessen esp8266 wroom Module verwendet .
Am Wroom müssen Rst, en mit vcc verbunden werden, gpio15 (Relais out) 
über 4k7 gegen gnd.
Da das Modul nicht auf die Platine passt habe ich es eingeschrumpft, und 
vcc,gnd,Relais und Taster über Drähte angebunden.

Das Gehäuse lässt sich leicht öffnen , es ist am Steckerteil geklebt.
Um das ESP Modul zu tauschen muss die Platine ausgelötet werden. Dazu 
erst die beiden Ausgangsverbinder auslöten, dann sind die Kontakte für 
die Eingangsverbinder zugänglich.

Die Bilder zeigen den Test am Trenntrafo mit neuem Modul und den 
zusammengebauten Zustand.

Trotz Angabe 16A würde ich eher dazu tendieren, den Geräten max 4A 
zuzumuten, da die Relais Kontakte doch recht klein sind. Und vom 
Schalten induktiver Lasten mit mehr als ein paar Watt rate ich ab, da 
ein Snubber fehlt.
Angehängte Dateien:
Gast #6824761
Lesenswert?

Hi,

Version 0.82 ist online.

Jetzt "sollte" auch MQTT / MQTTS (mit PSK) mit an board sein.

Context ist der jeweilige Gerätename.

Ein Event mit Data "on" sollte einschalten, eines mit "off" ausschalten.

Ich kann es aber aktuell nicht testen, da ich keinen Broker habe. Kann 
ja jemand gern testen ;) !

gruß

tobi
Gast #6824821
Lesenswert?

Johannes, danke für diese geistreichen Worte :)

Wenn ich Zeit habe, werde ich auch einen broker aufsetzen.
Vor Ende der Woche wird das aber nix.
Daher kann vielleicht aktuell jemand schon mal testen.
Gast #6824845
Lesenswert?

nunja, das dauert ca. 2 Minuten. Unter Windows 10 'winget install 
mosquitto', unter Linux mit dem Paketmanager seiner Wahl ähnlich.
In der aktuellen mosquitto Version ist die Sicherheit angezogen worden, 
für freien Zugriff wie früher muss in die Konfiguration dieses rein:
1
listener 1883
2
allow_anonymous true

um etwas zu sehen gibt es bequeme Clients wie mqtt-spy oder 
mqtt-explorer oder auch Smartphone Apps.
Gast #6824953
Lesenswert?

hi Johannes,

danke für die info.

Da ich nen kleinen Linux Server hab werd ich mosquitto für Linux 
aufsetzen.

Kannst du mir evtl einen Client empfehlen für Smartphone und hast du 
evtl. die Möglichkeit den mqtt Part zu reviewen? Auch für infos zu mqtt 
die über Wikipedia hinaus gehen bin ich dankbar. Insbesondere für ein 
Beispiel wie z.b. konkret das Auslösen einer Schaltaktion oder das 
Abfragen eines Sensor in mqtt aussieht.

Andere mitlesende sind auch gern angesprochen!
Gast #6825008
Lesenswert?

also mosquitto auf einem Linux zu installieren ist ja genauso einfach 
bis einfacher, da nutzt man eben '[sudo] apt-get install mosquitto' , 
Anleitungen gibt es da ja auch reichlich.
Die Konfiguration ist identisch, liegt dann in /etc/mosquitto.

als Client auf dem iPhone nutze ich schon lange MQTTool, ist simpel, 
aber reicht mir zum Testen. https://github.com/bjpetit/MQTTool, gibt 
aber sicher mehr.

Für MQTT gibt es ja reichlich Support, ich nutze es mit ioBroker und 
NodeRed. In ioBroker muss man nur einen MQTT Adapter mit einem Klick 
installieren, der bringt auch den mosquitto mit.  Aber low level mit 
JavaScript oder Python sind es auch nur ein paar Zeilen um Messages zu 
Abonnieren/Veröffentlichen.

Zum Testen habe ich erstmal keine Lust, ein paar Tests sollte man als 
Entwickler auch selber machen. Dazu bin ich zufriedener Anwender von 
Tasmota und ESPEasy.

Dein Projekt verfolge ich trotzdem ein bisschen, man muss sich ja 
erstmal durch den Dschungel der verschiedenen Tools und Umgebungen 
kämpfen bis man das für sich passende gefunden hat. Auf einem ESP32 habe 
ich ein Blinky hinbekommen, mit ESP IDF im VSCode. Ich möchte aber C++ 
haben, da scheinen die Arduino Libs schon das verbreiteste zu sein. Im 
IDF ist ein CXX, das ist aber noch frisch und experimental. Andere 
ESP-C++ Projekte auf github veröden schon angesichts der Espressif und 
Arduino Konkurrenz.
Wünsche weiterhin maximale Erfolge.
(Firma: Frickelhauptquartier) #6830595
Lesenswert?

Mal blöde gefragt, ist es eine Riesenaktion, einen IR-Empfänger mit 
einzubauen? Z.B. um den TV mit angeschlossenem Krempel auch über die 
IR-Fernbedienung zu steuern. Beispielsweise die Farbtasten für ON/OFF 
und ein bis zwei Sleeptimer. Ein Handy o.ä. habe ich nicht zwangsläufig 
immer dabei, die FB aber zwangsweise.
#6830745
Lesenswert?

Hallo,

Thomas G. schrieb:
> Mal blöde gefragt, ist es eine Riesenaktion, einen IR-Empfänger mit
> einzubauen? Z.B. um den TV mit angeschlossenem Krempel auch über die
> IR-Fernbedienung zu steuern. Beispielsweise die Farbtasten für ON/OFF
> und ein bis zwei Sleeptimer. Ein Handy o.ä. habe ich nicht zwangsläufig
> immer dabei, die FB aber zwangsweise.

sowas erledigt bei mir MQTT. Ein IR-Empfänger mit ESP8266 schickt alle 
empfangenen Codes weiter und das Zielgerät hat die gewünschten 
abboniert.
Was soll ich z.B. mit einem IR-Empfänger in der Steckdose irgendwo 
hinter einem Schrank?
Unter Windows ist MQTT.fx bei mir zum Testen, auf dem Handy habe ich mal 
MQTT Dashboard installiert, reicht mir dort.
Ansonsten hier aber Tasmota oder eigene (Arduino-)Software auf den 
ESP8266.
Broker läuft auf einem RasPi zusammen mit FHEM und noch ein paar 
Kleinigkeiten.

Gruß aus Berlin
Michael
Gast #6830766
Lesenswert?

Hi,

technisch möglich wäre es - die Inputs können Interrupts auslösen, und 
in der ISR könnte dann die Dekodierung von RC5/6 erfolgen.

Ist aber nicht auf meiner Agenda, denn wie mein Vorredner schon schrieb 
lässt sich das bei Bedarf über MQTT oder eine externe Bridge (RC5/6 zu 
HTTP-GET-Kommandos) realisieren und bei mir sind die meisten Steckdosen 
hinter irgendwelchen Möbeln.

Ich habe das Projekt ja gerade gestartet, um die Fernbedienung 
loszuwerden.

gruß

tobi
Gast #6831385
Lesenswert?

V0.84 ist online.

-Updates und Restarts funktionieren jetzt seamless, also ohne 
Unterbrechung.
Jeder Port behält seinen Status, auch Timer werden übernommen.
Angeschlossene Geräte bleiben an/ausgeschaltet.

Dito auch bei Stromausfall/Ausstecken.

Genauer gesagt gibt es einen ganz kurzen Glitch von wenigen ms, aber der 
ist so kurz das bei keinem meiner Geräte die Relais auch nur zucken, 
auch nicht bei nur 200V und 10A Last.
Sollte das bei irgendeiner Hardware doch passieren, hilft ein kleiner 
Kondensator 1yF/10V vom jeweiligen Ausgang gegen Masse.

Gruss tobi
Gast #6836857
Lesenswert?

Hi,

V1.0 ist draußen.

Update zu V0.85

-Support für MQTT Authentication/Password und das Setzen eigener Topics 
hinzugefügt.
-Support für MQTTs nochmal überarbeitet. Wegen begrenztem Platz im RAM 
müsen die Zertifikate derzeit noch in der Webserver.h gespeichert 
werden.
Ich schaue noch, ob ich das anpassen kann.
-Bugfixes für OTA

Zum Stromverbrauch: Die ESP8266 Module habe ich wie folgt gemessen:
Vss: 3,3V
Iidle: 40-100mA, je nach Entfernung zum Wlan-Router.
Iload (z.B. beim Aufbau von Webseiten): 60-200mA für einige Sekunden.

Meine Eigenau-Steckdosenschalter verbrauchen gemessen mit der 
Messeinheit am Trenntrafo etwa 0.3W-0.5W im Idle (je nach Entfernung zum 
Wlan-Router) wenn das Relais aus ist und etwa 0.9-1.2W mit aktivem 
Relais.
Bei Last kommen etwa 0.3W für einige Sekunden dazu.
Wobei ich sagen muss, das die Genauigkeit der Messeinrichtung bei 
derartig kleinen Leistungen nicht spezifiziert ist.
Zusätzlich hängt der Verbrauch auch von der verwendeten Hardware ab.
Die umgebauten HAMA WIFI Plugs z.B. verbrauchen nur etwa 0.6W-1W mit 
aktivem Relais.
Gast #6844519
Lesenswert?

Update:

Neuer Control mode MQTT(publish), damit stehen folgende Modi zur 
Verfügung:

-local: Schaltkommandos via Web oder Button wirken nur am jeweiligen 
Gerät.

-MQTT(publisher): Schaltkommandos via Web oder Button wirken lokal und 
werden zusätzlich an alle Subscriber gesendet.
Dies gilt auch für Timer und geplante Schaltaktionen.
Damit kann ein Schaltserver(Publisher) via MQTT eine beliebige Anzahl 
von Subscribern steuern.
MQTT Messages werden mit QoS 1 und ohne retain flag gesendet.

-MQTT: Lokale Schaltkommandos via Web sind gesperrt. Der Button wirkt 
nur lokal.Schaltkommandos werden via MQTT entgegen genommen 
(Subscriber).
Moderator Persönliche Seite #6844697
Lesenswert?

hacker-tobi schrieb:
> @moderator: könnt ihr den threadtitel anpassen, z.b. auf "TOISWITCH -
> IoT I/O-Server für ESP8266"?

Habe ich angepasst.

hacker-tobi schrieb:
> Btw das Projekt ist umgezogen:
> Neue URL:
> https://toiswitch.sourceforge.io

Page not found.

EDIT:

Ich finde das Projekt TOISWITCH jedoch unter 
https://sourceforge.net/projects/wlan-controlled-switch/
Gast #6846541
Lesenswert?

Hi,

mal ein update zum Projekt selbst.

Erstmal kurz zum Namen:
TOISWITCH = Tobi's IoT Switcher ;)

Angefangen hatte es für mich als einfacher I/O-Server für eine 
Schaltsteckdose, um den ESP8266 kennen zu lernen.

Aber es hat sich weiter entwickelt.

Der aktuelle Stand ist:

-Toiswitch kann bis zu 17 digitale I/Os (Maximum des ESP8266) bedienen.
-Jeder Input (z.B. Taster) kann beliebige Ausgänge schalten.
-Es können für jeden Ausgang individuelle Timer und Zeitpläne erstellt 
werden.
-Die Geräte können via MQTT sowohl Kommandos entgegen nehmen 
(Subscriber) als auch versenden (Publisher), die MQTT-Parameter (Broker, 
Topic etc.) sind dabei konfigurierbar. Auch Authentication und MQTTs 
werden unterstützt.

-Für folgende Devicetypen ist TOISWITCH aktuell geeignet:
 -WLAN Steckdosen (getestet)
 -WLAN (Licht-)schalter/Schaltmodule (getestet)
 -WLAN Bewegungsmelder (getestet)
 -WLAN Rolladen/Markisenmodule (ungetestet)
-weitere Features wie OTA, mDNS etc sind ebenfalls integriert.

Nachdem es hier ja auch schon einige Kritik gab und auch die Sinnfrage 
gestellt wurde, da es bereits andere Projekte dieser Art gibt, habe ich
mich jetzt auch gefragt, was damit werden soll.
In diesem Zuge habe ich TOISWITCH auch mit TASMOTA verglichen.
Das System hat sich zu einem flexiblem I/O-Server entwickelt, und ich 
werde es weiter entwickeln.

Ich plane folgendes:

-Sämtliche Features sollen wie bisher immer auch Standalone genutzt 
werden können, im Rahmen der Fähigkeiten des jeweiligen Devices.

-Die Konfiguration wird ausschließlich über Web-Interface erfolgen, eine 
Konsole (wie z.B. bei Tasmota) plane ich derzeit nicht zu integrieren.
Die Tasmota-Konsole ist zwar sehr leistungsstark aber für mein Empfinden 
nicht intuitiv zu bedienen.

-Die Bedienung wird weiterhin über Web und MQTT sowie -sofern vorhanden- 
lokale Tasten erfolgen.

-Als nächstes plane ich eine Integration von 
One-Channel/RGB/RGBW-Dimmern und Leuchten.
Danach evtl. eine Integration von Sensoren (z.B. Temperatur) und einen 
Port auf ESP32.

-Die Entwicklung wird weiterhin auf Basis des SDK von Espressif 
erfolgen.

Ich würde mich über jede Form der Beteiligung an dem Projekt freuen, 
allen voran über Tests auf Geräten.
Aber auch über Kritik, Lob, Erweiterungen etc.

gruß

tobi
Gast #6850469
Lesenswert?

Die letzte Version beinhaltet jetzt auch eine Steuerung für digitales 
Glühobst ("Glühbirnen") über HTTP/MQTT.
Die PWM läuft mit 200Hz und bietet 5000 Schritte (also etwa 10,5 Bit).

Es können alle PWM-Kanäle des ESP8266 genutzt werden.
PWM-Kanäle / Schaltaus- und Eingänge können beliebig miteinander 
kombiniert werden.
Alle Features der Software, wie z.B. auch die Erstellung von Gruppen 
über MQTT sind auch für die PWM-Ausgänge verfügbar.
Gast #6857772
Lesenswert?

Die neue Projekt-Site ist online. Dort sind ab sofort Updates zu finden:

https://sourceforge.net/projects/toiswitch/files/Software/

Ich hab auch mal eine ganze Reihe vom Screenshots und aktuellen Bildern 
angehängt.

Neu ist auch der Support für Profile.
Mit diesen können beliebige Ausgangsstati auf Knopfdruck / mit einem 
Klick gesetzt werden.
Zudem wird das Setzen eines Profiles auch via MQTT übermittelt, sofern 
dies aktiviert ist. Alle Subscriber führen dann das Profil ebenfalls 
aus, sofern es dort konfiguriert ist. Damit lassen sich dann komplette 
Scenen auf Knopfdruck oder mit einem Klick herstellen.
Profile können durch Tastendruck oder via Web/MQTT aktiviert werden.

Ich arbeite aktuell noch an der Unterstützung für analoge Inputs. Diese 
folgt in der nächsten Zeit.

gruß

tobi
Gast #6861003
Lesenswert?

Hi,

ich habe wie gewünscht ein ZIP-File aller Dateien erstellt und 
hochgeladen.

Zusätzlich habe ich noch ein paar Bugs gefixed:

-OTA hat nicht funktioniert, wenn mDNS enabled ist. Fixed.

-Bei der Erstinbetriebnahme oder nach Rücksetzen der Konfiguration wird 
der Station Type per default mit "ORIGINAL" besetzt, was zu 
Fehlkonfigurationen führen kann. Fixed.

-Ebenfalls bei Erstinbetriebnahme oder nach Rücksetzen der Konfiguration 
war der Betriebsmodus auf "MQTT" gesetzt und das System erwartete die 
Angabe von MQTT-Parametern. Der Betriebsmodus wird jetzt auf "LOCAL" 
gesetzt und es müssen keine MQTT-Parameter angegeben werden.
Gast #6862689
Lesenswert?

Noch ein paar Fixes:

-Autorefresh auf der Hauptseite stört wenn dort Einstellungen 
vorgenommen werden. Auto refresh von 10 Sek auf 30 Sek erhöht.

-Anzahl Profile von 10 auf 20 erhöht. Im Gegenzug Anzahl der geplanten 
Aktionen von 40 auf 30 reduziert.

-OTA wurde auch bei zu kleiner Flashsize angeboten.
OTA deaktiviert, wenn Flash <=2 Mbyte groß ist.
Gast #6868343
Lesenswert?

Hi,

neues Release online.

-Profilverwaltung überarbeitet.
Profile werden jetzt korrekt sortiert angezeigt.

-Die Aktivierung/Deaktivierung erfolgt jetzt deutlich schneller.

-BUGFIX: Beim Löschen eines Profil werden automatisch auch alle mit 
diesem Profil verknüpften geplanten Aktionen entfernt.
Gast #6887625
Lesenswert?

Hi,

v1.02 ist online.

-Support für Ansteuerung von Stromstossrelais hinzugefügt.

-Neuer Profileditor

-Bugfixes:
 -wenn ein digitaler Port geschaltet wird wartet die Software einige ms 
bis die Konfig gespeichert wird. Sollte es z.b. bei schlecht designter 
Hardware zu einem Reset beim Umschalten kommen, wird so eine 
Beschädigung des Configfiles vermieden.
Gast #6892576
Lesenswert?

V1.03 ist online.

Wesentliche Neuerung ist die Möglichkeit, das Verhalten nach dem 
Einschalten steuern zu können. Es kann entweder der letzte Status wieder 
hergestellt oder ein beliebiges Profil aufgerufen werden.

gruß

tobi
Gast #6896587
Lesenswert?

Hi,

im Ordner build findest du die webserver.bin

Dies ist die originale software.
Dieses file ist für 4 MB Flash ausgelegt. Die Software läuft auch mit 2 
MB flash ohne Einschränkungen (z.B. TYWE3S Modul) oder auf 1MB Modulen 
(TYWE 2S).
Bei 1 MB fällt aber die Möglichkeit des Over-The-Air Update (OTA) weg.

Auf welchem Gerät willst die Software denn verwenden?
Was ist dort für ein Modul verbaut?
Weist du, wo welche Signale anliegen?

gruß

tobi
Gast #6896592
Lesenswert?

Noch zur Frage nach dem Flash Tool

Ich verwende unter Linux das Tool esptool.py
Es lässt sich auch jeder andere Flasher verwenden, z.B. der in Arduino 
IDE integrierte.
Bei den TYWE (TUYA)-Modulen mit älterer Firmware kann auch das Tool 
tuya-convert verwendet werden, um die Software over-the-air 
einzuspielen.
Gast #6897015
Lesenswert?

V1.05 ist online

-Support für BL0937 power measurement IC hinzugefügt
-"Standby Killer" = Automatische Abschaltung wenn angeschlossene 
Verbraucher in Standby gehen hinzugefügt
-Gemessene Werte für Leistungsaufnahme wird im Web-Interface angezeigt 
und via MQTT alle 5 Sekunden published wenn aktiviert.

-MQTT commands und publishments auf JSON-Strings umgestellt, um 
Kompatibilität mit gängigen Apps und Brokern (z.B. MQTT Dashboard App 
für Android) zu verbessern.

-Einige Bereinigungen und Performance-Verbesserungen.
Gast #6897020
Lesenswert?

@Helmut: Danke für die Info.

Da es sich beim Wemos D1 Mini um ein Entwicklungsboard und nicht um ein 
bekanntes Device handelt, musst du die I/O-Definitionen in init.c 
(Funktion init_device() ) selbst erstellen. Du kannst eines der in 
init_device() verwendeten Geräte als Blaupause nehmen oder anpasssen.
Ich kann hier auch gern helfen, wenn gewünscht. Dann benötige ich aber 
von dir die Info, was du genau an welchen Port anschließen willst.
Gast #6897238
Lesenswert?

Hi Helmut,

die geräte-spezifischen Konfigs basieren ausschließlich auf Geräten, auf 
denen die Software zum Einsatz kommt.
Dies sind mit einer Ausnahme kommerziell verfügbare Geräte,welche zum 
größten Teil auf esp8266-Modulen des Herstellers Tuya basieren (z.B. 
tywe3s).
Dabei hat jeder Gerätetyp seine eigene Konfig, da andere Module und 
Ports verwendet werden.

Es besteht die Möglichkeit,  eine neue Konfig zu erstellen.
Die Konfigs beschreiben, über welche gpio Pins was angebunden ist und 
sind in init.c hinterlegt.
Gast #6897471
Lesenswert?

In der Website kannst du nur bekannte Devices auswählen.
Wenn du die Konfig neu erstellen willst, dann musst du neu kompilieren.

alternativ schreib mir kurz, was du an welchen Port anbinden willst, 
dann erstelle ich sie dir und binde sie in den regulären build ein.
Gast #6897901
Lesenswert?

Hi,

das sollte machbar sein.

Wenn ich das richtig sehe benötigst du 8 digitale outputs, und high ist 
active korrekt?

Wenn du mir das kurz bestätigst dann stell ich die devicekonfig 
zusammen.

Kommen noch inputs, z.b. für Taster dazu?
Einen Taster solltest du vorsehen, um bei bedarf die wlankonfig auf 
default setzen zu können.
#6897953
Lesenswert?

8 mal Output, aktiv mit GND, meistens kann dann mehr Strom abfließen.

Wie hoch darf der Pin-Strom überhaupt sein bei dem ESP, könnte der ESP32 
mehr?

Optos detektieren im Moment einen oder mehrere 230V~ Eingang/e und 
ziehen dann den Kollektor auf GND.
Die Config muß nur für alle 8 Out- und 8 Inputs gleich sein.
Schonmal vielen Dank für Dein Gehirnschmalz und Deine Zeit.
Gast #6897963
Lesenswert?

Wenn das SSR sind sollte der Strom den der ESP schalten muss doch recht 
gering sein?

Nur damit ich das richtig verstehe:

Du hast 8 Eingänge.
Low=240v liegen an, high=nix liegt an

Und 8 Ausgänge
Low=SSR schaltet ein. High=SSR schaltet ab.

Korrekt?
#6897969
Lesenswert?

Gast #6897973
Lesenswert?

Na bei 3v ist der schaltstrom 6mA pro port, d.h. max 48mA gesamt. Kein 
Problem für den esp8266.

Bei den Eingängen kann es sein, das du das signal noch filtern musst um 
fehltriggerung zu vermeiden. Ich bin mir nicht sicher, ob die Schaltung 
die 50/100Hz gut genug glättet.
Aber im Zweifel kommt es auf einen Versuch an.
Gast #6898050
Lesenswert?

Hi,

ich hab die Software angepasst und hochgeladen.

Das zugehörige Device heißt "GEN_8CH_IO_BOARD"
GPIO0 = Reset Switch
GPIO1-8 = Digital Input
GPIO9-16 = Digital Output

Ich merke an: Damit sind ALLE 17 GPIOs des ESP8266 belegt.
Ich weiß nicht, ob dein Breakout Board dir alle GPIOs zur Verfügung 
stellt.
Bedenke bitte auch, das es GPIOs gibt, welche während des Boot bestimmte 
Pegel annehmen bzw. annehmen müssen.
vgl https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/

Du kannst es testen, aber ggf. muss die Anzahl der I/O reduziert werden.
Gast #6898603
Lesenswert?

Hallo Helmut,

ok. Wenn du mit den Ports nicht hinkommst, melde dich, ggf. können wir 
dann eine Lösung finden.

Was die Software jetzt schon kann, wäre z.B.

-einzelne Ports als Umschalter zu nutzen, und über eine kleine Schaltung 
mit einem Port 2 Relais abwechselnd zu schalten oder
-Ein/Ausgänge zusammen zu legen.
Gast #6901027
Lesenswert?

Hi,

die Software vergibt keine feste IP, aber sie weiß doch am Anfang noch 
gar nicht, wohin sie sich connecten soll.
Daher versucht sie es mit einem Wlan "default", password "default123". 
Leg das mal am Wlan-Router oder als Hotspot am Handy an, da wird es sich 
connecten.
Dann im Web-Interface auf "configure me", user admin und password 
test_123 und dann dort das korrekte Wlan/password hinterlegen.
Gast #6901052
Lesenswert?

Hi,

ein kleines update:

-OUTPUTs können jetzt auch kurze Tastendrücke simulieren
(high oder low-active)

-Dies habe ich benötigt, um eine Ansteuerung eines Roto-Handsenders
zu bauen, um so über TOISWITCH Markisen steuern zu können
(DEVICE: ROTO_WINDOW_CTRL)
Das sollte analog aber auch mit Handsendern für andere Geräte 
funktionieren.
#6901162
Lesenswert?

Hotspot eingerichtet: 0 Nutzer meldet er....und unter welcher Adresse 
finde ich ihn...
Ich könnte mir vorstellen, dass eine serielle Ausgabe der 
Verbindungsdaten hilfreich wäre, eine Einrichtung über einen eigenen 
WLAN Zugangspunkt wie ESPEASY es macht wäre gut.
Bin ich der Einzige, der Deinen Webserver ausprobiert?
Gast #6901677
Lesenswert?

Hi,

die webserver.bin ist die selbe, die du auch im Sourceforge findest.

Anbei eine Version mit eingeschaltetem debug log.

Damit solltest du eine ganze Menge sehen.

Anbei das esptool Commando zum initialen flashen. Du benötigst dafür 
noch die restlichen files aus dem build folder.
Die Verzeichnisse musst du sicherlich anpassen.

esptool.py --chip esp8266 --port /dev/ttyUSB0 --baud 115200 --before 
default_reset --after hard_reset write_flash -z --flash_mode dio 
--flash_freq 40m --flash_size 4MB 0xd000 
Software/build/ota_data_initial.bin 0x0 
Software/build/bootloader/bootloader.bin 0x10000 
Software/build/webserver.bin 0x8000 
Software/build/partitions_example.bin
Angehängte Dateien:
Gast #6901680
Lesenswert?

Anmerkung noch: Nach dem initialen flashen brauchst du nur noch die 
webserver.bin zu flashen.
Die Software kann auch OTA, allerdings ist derzeit dort der Link und die 
Zertifikate hart codiert. Das will ich aber in nächster Zeit ändern.
Gast #6901958
Lesenswert?

Die Daten stehen alle in dem Kommando :

Flash 40mhz
Xtal 26mhz
Flashsize 4MB = 32Mbit
Flashmode DIO (QIO sollte auch gehen je nach Board)

0xd000 ota_data_initial.bin
0x0 bootloader.bin
0x10000 Webserver.bin
0x8000 partitions_example.bin

Habe mir das Nodemcu v3 mal angesehen.
Das basiert auf dem esp12f mit 4MB.
Das muss gehen, denn das Board (esp12f) habe ich selbst in einigen 
Devices in Verwendung.
Gast #6901961
Lesenswert?

Ich weiss nicht wie es bei nodemcu ist aber evtl musst du noch 
irgendwelche Pins auf bestimmte level legen oder jumper setzen damit das 
board startet.

Beim nackten esp12f müssen RST und EN mit VCC verbunden werden und IO15 
über 2k2 mit GND.
Gast #6902852
Lesenswert?

Und die Adresse für partitions example bin ist 0x8000 nicht 0x80000

Dito für ota data initial.

Mit deinen Einstellungen vermute ich das der flash Vorgang fehlschlägt. 
Was sagt das tool denn beim flashen?

Ansonsten kannst du noch eine niedrigere baudrate testen. 78800 z.b.
Gast #6910146
Lesenswert?

Kleines bugfix-update:

-Wenn im Web-Interface "edit profile" ausgwählt wurde, aber kein Profil 
angegeben wurde, wurde der Profileditor mit dem ersten Profil geöffnet.
Fixed. Jetzt wird der Profileditor in diesem Fall nicht mehr 
angesprungen.

-Eintrag für virtuellen Port "ALL" bei Steckdosenleisten entfernt, da 
dieser zu Verwirrung beim Ablesen führen kann, wenn "ALL" z.B. auf ON 
steht, ein einzelner Port aber auf "OFF".

@Helmut: Any news?
Gast #6910584
Lesenswert?

V1.6 ist online.

-MQTT user/pass von 32 auf 128 Zeichen max. Länge erhöht.

-Cert check für MQTTs abgeschaltet, Dies war notwendig, da das 
Zertifikat nur fest hinterlegt werden konnte, und ein Wechsel des 
Brokers daher mit neu Kompilieren einher ging.

-Im Gegenzug sind nur noch sichere Ciphers in Verbindung mit TLSV1.2 
erlaubt.

So ist z.b. die Nutzung von flespi in Verbindung mit MQTTs und 
tokenbasierter Authentifizierung möglich.
Gast #6921016
Lesenswert?

V1.07 ist online

-OTA überarbeitet:
 -eigene OTA Routine geschrieben, die Updates von beliebigen URLs 
akzeptiert, unter der Voraussetzung das die URL mit SSL (https) 
gesichert ist und TLSV1.2 unterstützt wird.
 -OTA kann jetzt per MQTT angestoßen werden.
 -OTA Ergebnis wird detailierter angezeigt.
Gast #6929441
Lesenswert?

v1.08 ist online.

Im wesentlichen hab ich das Speichermanagement überarbeitet, um die 
RAM-Nutzung zu optimieren. Auch werden RAM- und SPIFFS-Nutzung jetzt in 
der Fußzeile angezeigt.

Es gibt auch eine neue URL für OTA: https://toiswitch.de/webserver.bin
die Domain toiswitch.de wird noch mit mehr "Leben", z.B. einem Handbuch 
gefüllt werden.

Frohes neues noch!

Tobi
Gast #6934909
Lesenswert?

V1.09 released

Überarbeitung der Funktion für neueinrichtung und factory reset:

-factory reset ist jetzt auf 2 wegen möglich:
 -Bei devices mit reset-taster wie gehabt (reset-taster beim Einschalten 
10 sek. drücken)
 -für devices ohne reset-taster, in dem sie in kurzer Abfolge (max 1 
min. Abstand) 10 mal hintereinander aus- und eingeschaltet werden.

Nach factory-reset macht das Gerät einen eigenen hotspot auf:
Name: toiswitch
Pass: toiswitch123
IP oder Hostname der Configpage: 192.168.4.1 / toiswitch.local
Initial login: admin/test_123
Gast #6984947
Lesenswert?

Hi,

V1.12 ist online.

Die MQTT Kommandostruktur hat sich verändert.

Die einzelnen MQTT Kommandos sind jetzt in Untergruppen (Pfade) 
aufgeteilt, z,B.

SYS für System Kommandos
OUT zum Schalten für Ausgänge
usw.

Damit existiert eine Hierarchie, und die Kommandos und ihre 
Rückgabewerte lassen sich in MQTT Clients besser unterscheiden.

Ich werde in der nächsten Zeit auch das Web-Interface angleichen, damit
hier die selbe Struktur verwendet wird. Auch will ich einige Kommandos 
im MQTT hinzufügen, die bis jetzt nur über Web verfügbar sind, z.B. die 
Anlage von Profilen.
Gast #6997226
Lesenswert?

V1.13 ist draußen

-Die MQTT Kommandos wurden stark erweitert. Es können jetzt z.B. Profile 
und Planned actions via MQTT hinzugefügt, geändert und gelöscht werden.

-Die Kommandostruktur von MQTT und Web-Interface wurde angeglichen.

-Planned Actions wurden überarbeitet. So erhält jede planned action eine 
eindeutige ID, um sie auch über mehrere devices hinweg eindeutig 
erkennen zu können.

Bisherige MQTT Kommandos funktionieren mit dieser Version nicht mehr und 
müssen angepasst werden.
Auch Planned Actions müssen neu erstellt werden.
Gast #7046351
Lesenswert?

Es sind jetzt separate Versionen für Devices mit 2 MB flash (z.B. 
tywe3s-basiert) und 4 MB flash (z.B. ESP12S-basiert) verfügbar.

Um die Pflege des Online-Repos nicht zu aufwändig zu machen, werde ich 
den Sourcecode und die Builds für diese und weitere Versionen nur noch 
als Binary auf toiswitch.de und als ZIP und via GIT auf sourceforge.net 
zur Verfügung stellen.

Ich werde demnächst noch die Liste der unterstützten Devices erweitern.

gruß

tobi
Gast #7055934
Lesenswert?

Release der 1MB-Version für ESP8266-1M oder ESP8285-basierte devices.

derzeit kann die 1MB-Version noch kein OTA, ansonsten ist sie mit den 
größeren Versionen identisch. An OTA für die 1MB-Version arbeite ich 
noch.

Alle Versionen: Bugfix: Für den Monat Mai konnten keine planned actions 
angelegt werden. Fixed.

gruß

tobi
Gast #7066488
Lesenswert?

Hi,

die 1MB Version beherrscht jetzt auch OTA über einen minimal updater.
Dafür musste ich bei dieser Version allerdings auf SSL für OTA und MQTT 
verzichten und den Speicher für Profile/Planned Actions reduzieren.

Derzeit kann ich noch keinen eigenen minimal-updater zur Verfügung 
stellen (kommt noch), daher verweise ich auf diesen hier, falls es 
jemand testen will:

https://github.com/Aircoookie/ESP8266MinimalHTTPUpdater
Dieser muss aktuell noch selbst kompiliert und via http bereitgestellt 
werden.
Der Downloadlink in der Konfiguration ist dazu anzupassen.

Die Partition Table ist wie folgt.
Da der IDF downloader mit asymetrischen Partitionen seine Probleme hat, 
wird das OTA binary nach erfolgreichem Download direkt auf OTA_0 
kopiert.

# Name,   Type, SubType, Offset,  Size, Flags
# Note: if you change the phy_init or app partition offset, make sure to 
change the offset in Kconfig.projbuild
nvs,      data, nvs,     0x9000,  0x4000
otadata,  data, ota,     0xD000,  0x2000
phy_init, data, phy,     0xf000,  0x1000
ota_0,    0,    ota_0,   0x10000, 640k,
ota_1,    0,    ota_1,   0xB0000, 304k,
storage,  data, spiffs,  0xFC000, 16k,

Das OTA für die 1M-Version ist derzeit noch experimentell und sollte nur 
zum Testen verwendet werden!
Gast #7067091
Lesenswert?

Korrektur, war nicht korrekt erklärt:

Die 1MB Version beherrscht jetzt auch OTA über einen minimal updater.
Dafür musste ich bei dieser Version allerdings auf SSL für OTA und MQTT
verzichten und den Speicher für Profile/Planned Actions reduzieren.

Derzeit kann ich noch keinen eigenen minimal-updater zur Verfügung
stellen (kommt noch), daher verweise ich auf diesen hier, falls es
jemand testen will:

https://github.com/Aircoookie/ESP8266MinimalHTTPUpdater
Dieser muss aktuell noch selbst kompiliert und via http bereitgestellt
werden.
Der Downloadlink in der Konfiguration ist dazu anzupassen.

Die Partition Table ist wie folgt:

# Name,   Type, SubType, Offset,  Size, Flags
# Note: if you change the phy_init or app partition offset, make sure to
change the offset in Kconfig.projbuild
nvs,      data, nvs,     0x9000,  0x4000
otadata,  data, ota,     0xD000,  0x2000
phy_init, data, phy,     0xf000,  0x1000
ota_0,    0,    ota_0,   0x10000, 640k,
ota_1,    0,    ota_1,   0xB0000, 256k,
storage,  data, spiffs,  0xFC000, 16k,

Für die OTA_1 wären eigentlich 304k verfügbar, aber der Bootloader 
benötigt nach Doku Partitionen, welche n*64k groß sind.

Die üblichen Schutzmaßnahmen (Prüfung des Binary nach Download, 
Zwei-Partitionen-Schema) sind auch in dieser Version aktiv.

Trotzdem:
Das OTA für die 1M-Version ist derzeit noch experimentell und sollte nur
zum Testen verwendet werden!

Der Bootloader sollte aus dem aktuellen ESP8266 IDF-Style SDK stammen, 
da ältere Versionen ein Problem mit dem Partitionsschema haben.

Sobald ich einen eigenen minimal-updater gebaut habe, stelle ich diesen 
zur Verfügung.
Gast #7075159
Lesenswert?

Hallo,

ich habe hier eine ältere OBI-WLAN-Schaltsteckdose (Gen. 1, runde 
Ausführung, z.B. hier beschrieben:
https://github.com/martin-ger/ESP8266-WiFi-Socket/blob/master/README.md
oder auch hier mit Schaltplan:
https://forum.fhem.de/index.php/topic,89803.0.html
).
Der verwendete OW8266-02Q ist nur ein ESP8266.
Für Tasmota gibt es hier z.B. ein sonoff_template:
https://github.com/arendst/Tasmota/issues/1988

Ich würde die OBI-WLAN-Schaltsteckdose jedoch gerne mit
Deiner Software befüllen.
Lt. meiner bescheidenen Kenntnis wären das die Flash-Einstellungen:
OW 8266 ( = wohl nur 1MB (64k SPIFF) )
Board : Generic ESP8266 Module
Flash Mode : DIO
Flash Size : 1M (64k SPIFFS)
Debug Port : disabled
Debug Level : none
Reset Method : ck
Crystal frequency : 26 MHz
Flash frequency : 40 MHz
CPU frequency : 80 MHz
Upload Speed : 115200

Hardware-Ansteuerung:
Push Button 1: GPIO 14
Wifi LED (blue): GPIO 4
Relais = Ein: GPIO 12 kurzzeitig auf GND (!)
Relais = Aus: GPIO 5 kurzzeitig auf GND (!)

Die/meine gesamte Ansteuerung wird sich ja sicherlich per
timeplans und short-time-timers-Regel festlegen lassen (?):

Das Relais wird durch kurze Masse-Impulse (Besonderheit (!) dieses eines
OBI-Gerätes wegen der internen Tyristor-Ansteuerung des Relais, 
"Tastbetrieb") durch den OW8266-02Q angesteuert.
Der Button 1 soll dann zusätzlich das Relais per Hand umschalten, also
wenn Relais = Ein: dann kurzer Tasterdruck für Relais = Aus
bzw.
wenn Relais = Aus: dann kurzer Tasterdruck für Relais = Ein.
Zusätzlich soll es 7/8 tägliche Zeitschaltpunkte geben, zu denen
das Relais für ca. 5 min Ein- und danach wieder Aus-schaltet.

Mehr von Deiner universellen Software brauche ich ja nicht, z.B. kein 
MQTT,
kein dimmen, kein SSL, kein Multicolor usw., das könnte/müßte man ja aus
Platzgründen (1MB) sowieso weg lassen/kürzen.
OTA wäre später ein Pluspunkt, aber zumindest einmal muß ich ja 'eh 
"real"
flashen (mir würde für das zuküftige OTA aber sowieso eine 
interne/private
IP besser gefallen...).

Die timeplans und short-time-timers zu den Schaltregeln bekomme ich
sicherlich selbst hin, ggf. kann man ja noch nachfragen, aber mit der
originalen SDK von Espressif stehe ich irgendwie auf Kriegsfuß, auch
finde/sehe ich die Stellen im Quelltext nicht, wo genau ich die Belegung
des Obi-Teiles eintragen muß und/oder mehrfach eintragen muß.

So,
jetzt die Fragen, wenn Du da noch ggf. etwas Zeit über hast:
1.)
Könntest Du mir eine flashfertige binär-Datei nach o.g. Anforderungen
erstellen?
2.)
Könntest Du den dafür geänderten Quellcode mitliefern, damit ich mir die
Änderungen dann ansehen und ggf. selber weiter testen/kompilieren kann?
3.)
Die vorgenannte Bootloader-Software zu OTA verstehe ich so auch nicht,
brauche ich die zusätzlich zu 1.) dann auch noch (wenn Dein OTA 
integriert/fertig ist)?

Danke schon einmal
:-)
Gast #7075173
Lesenswert?

Hi,

ich kann die Steckdose gern als device mit aufnehmen, da die Software 
alle Voraussetzungen dafür mitbringt.
Das bin file kannst dir dann einfach via toiswitch.de herunterladen.

Die Zeitpläne und kurzzeit timer kannst du dann via web interface 
erstellen.

Irgend etwas zu entfernen ist nicht notwendig, nur ein passendes 
template muss ich erstellen.

Ich schreibe hier wenn ich es aufgenommen habe.

Gruss tobi
Gast #7075257
Lesenswert?

Hi,

ich hab es mal mit aufgenommen.

Die wesentliche Änderung ist die Aufnahme des devices "OBI_WIFI_PLUG" in 
init.c.

Ich empfehle dir für den initialen flash die Datei toiswitch.zip aus dem 
sourceforge-repo herunterzuladen:

https://sourceforge.net/projects/toiswitch/files/

In der Zip-Datei findest du den Ordner 1M, der alle benötigten Files 
enthält.

Flashen dann (hier via esptool) mit:

-Zip entpacken
-In das Verzeichnis esp8266/1M/Toiswitch/build wechseln
-Flashen mit:

python 
/opt/esp8266/ESP8266_RTOS_SDK/components/esptool_py/esptool/esptool.py 
--chip esp8266 --port /dev/ttyUSB0 --baud 115200 --before default_reset 
--after hard_reset write_flash -z --flash_mode dout --flash_freq 40m 
--flash_size 1MB 0xd000 
/home/tobias/Documents/Projekte/Elektronik/TOISWITCH/Software/esp8266/1M 
/Toiswitch/build/ota_data_initial.bin  0x0 
/home/tobias/Documents/Projekte/Elektronik/TOISWITCH/Software/esp8266/1M 
/Toiswitch/build/bootloader/bootloader.bin  0x10000 
/home/tobias/Documents/Projekte/Elektronik/TOISWITCH/Software/esp8266/1M 
/Toiswitch/build/toiswitch_1m.bin  0x8000 
/home/tobias/Documents/Projekte/Elektronik/TOISWITCH/Software/esp8266/1M 
/Toiswitch/build/partitions_1m.bin

(Oder halt mit dem Flashtool deiner Wahl).

Anpassung in init.c
1
    else if (strcmp(config.type, "OBI_WIFI_PLUG") == 0)
2
        {
3
        is_configured = 1;
4
        //Port for reset switch
5
        device_reset_switch = 14;
6
        //14 as input
7
        gpio_pins[0].enabled = 1;
8
        gpio_pins[0].pin_type = D_BUTTON;
9
        gpio_pins[0].gpio = 14;
10
        strcpy(gpio_pins[0].name, "button_1");
11
        //15 as output
12
        gpio_pins[1].enabled = 1;
13
        gpio_pins[1].pin_type = D_TOGGLE;
14
        gpio_pins[1].gpio = 5;
15
        gpio_pins[1].complement_gpio = 2;
16
        gpio_pins[1].is_inverted = 1;
17
        strcpy(gpio_pins[1].name, "OUT1");
18
        //12 as output
19
        gpio_pins[2].enabled = 1;
20
        gpio_pins[2].pin_type = D_TOGGLE;
21
        gpio_pins[2].gpio = 12;
22
        gpio_pins[2].complement_gpio = 1;
23
        gpio_pins[2].is_inverted = 1;
24
        strcpy(gpio_pins[2].name, "OUT2");
25
        //4 as LED
26
        gpio_pins[3].enabled = 1;
27
        gpio_pins[3].pin_type = D_PWM;
28
        gpio_pins[3].pwm_channel = 0;
29
        gpio_pins[3].gpio = 4;
30
        gpio_pins[3].colour_channel = BLUE;
31
        gpio_pins[3].gamma_corrected = 1;
32
        gpio_pins[3].status = PORT_ON;
33
        strcpy(gpio_pins[3].name, "LED");
34
        device_ports = 4;
35
        }
Gast #7076043
Lesenswert?

Hi,

klar gern.

Denk dran das du beim ersten flashen ggf. die partition table und den 
bootloader mit einspielen musst, das findest du alles im ZIP file.

Ich konnte das Template leider nur insofern testen, das ich die Signale 
prüfen konnte, die ausgegeben werden, da ich selbst keine solche 
Steckdose besitze. Ggf muss hier also noch nachjustiert werden.
Ich selbst nutze schon seit langem einen Wechselschalter der genauso 
gesteuert wird, nur mit anderen gpios.

Die Software sieht für die Ansteuerung des Relais zwei Ausgänge (out1 
und out2) als "Wechselschalter'. Das ist aber kein Problem, die 
Schaltvorgänge kannst du nachher über beide Ausgänge triggern, da diese 
wechselseitig geschaltet werden.

Gruss

Tobi
Gast #7079128
Lesenswert?

Ich hab die Erstinstallation vereinfacht.

Die Datei Toiswitch.zip, welche unter 
https://sourceforge.net/projects/toiswitch/files/toiswitch.zip/download 
heruntergeladen werden kann,
enthält nur noch nur die BIN-Files für jede Version (1M,2M,4M).

Diese BIN-Files enthalten ein komplettes Flash-Abbild inkl. dem 
Bootloader, der Partion Table und Toiswitch selbst.
Sie können daher mit jedem beliebigen Flashtool direkt auf Adresse 0x0 
geflashed werden.
Eine Anleitung findet sich unter 
https://sourceforge.net/p/toiswitch/wiki/1_Installation/

Der komplette Sourcecode incl. der Makefiles und Binaries findet sich 
wie bisher auch unter im Repo unter 
https://sourceforge.net/p/toiswitch/code/ci/master/tree/

gruß

tobi
Gast #7092701
Lesenswert?

Hallo,

sorry, ich bin z.Z. etwas gehandicapt. :-(
Ich habe mir die rechte Handwurzel gebrochen.
Rechtshänder - es ist da schon mehr als schwierig,
nur 'ne Hose anzuziehen... ;-(
Ich melde mich, wenn der Gips ab ist.
Gast #7137573
Lesenswert?

Support für wifi dual unterputzmodul qs-wifi-s05 ergänzt.

Das Modul wird auch unter diversen anderen Namen verkauft, z.b. von 
Luminea.
Es gibt Varianten mit 1MB und 2MB flash. Zumindest bei denen, die ich 
hier habe, ist die Pinbelegung identisch.
#7169670
Lesenswert?

Hi Tommy,

klar ;)

gpio 4 : Button 1 (active low)
gpio 13: Button 2 (active low)

gpio 5 : BL0937 CF
gpio 14: BL0937 CF1
gpio 3: BL0937 SEL

gpio 12: Relay 1
gpio 15: Relay 2

gpio 0: LED link

Device Config:

    else if (strcmp(config.type, "DENVER_SHP-200") == 0)
        {
        is_configured = 1;
        //Port for reset switch
        device_reset_switch = 4;
        //4 as input
        gpio_pins[0].enabled = 1;
        gpio_pins[0].pin_type = D_BUTTON;
        gpio_pins[0].gpio = 4;
        strcpy(gpio_pins[0].name, "button_1");
        //13 as input
        gpio_pins[1].enabled = 1;
        gpio_pins[1].pin_type = D_BUTTON;
        gpio_pins[1].gpio = 13;
        strcpy(gpio_pins[1].name, "button_2");
        //5 as input
        gpio_pins[2].enabled = 1;
        gpio_pins[2].pin_type = D_PWR_IN;
        gpio_pins[2].gpio = 5;
        strcpy(gpio_pins[2].name, "pwr_watt");
        //5 as input
        gpio_pins[3].enabled = 1;
        gpio_pins[3].pin_type = D_PWR_CF1;
        gpio_pins[3].gpio = 14;
        strcpy(gpio_pins[3].name, "pwr_cf1");
        //5 as input
        gpio_pins[4].enabled = 1;
        gpio_pins[4].pin_type = D_PWR_SEL;
        gpio_pins[4].gpio = 3;
        strcpy(gpio_pins[4].name, "pwr_sel");
        //12 as output
        gpio_pins[5].enabled = 1;
        gpio_pins[5].pin_type = D_OUT;
        gpio_pins[5].gpio = 12;
        strcpy(gpio_pins[5].name, "OUT1");
        //15 as output
        gpio_pins[6].enabled = 1;
        gpio_pins[6].pin_type = D_OUT;
        gpio_pins[6].gpio = 15;
        strcpy(gpio_pins[6].name, "OUT2");
        //0 as LED out
        gpio_pins[7].enabled = 1;
        gpio_pins[7].pin_type = D_PWM;
        gpio_pins[7].pwm_channel = 0;
        gpio_pins[7].gpio = 0;
        gpio_pins[7].colour_channel = BLUE;
        gpio_pins[7].gamma_corrected = 1;
        gpio_pins[7].status = PORT_ON;
        strcpy(gpio_pins[7].name, "LED");
        device_ports = 8;
        }
Gast #7173362
Lesenswert?

Hi,

ich hab mich geirrt,

auch dieses Modul ist ein esp8266ex

Folgendes pinout habe ich ermittelt:

Bestückungsseite (ledseite richtung WLAN antenne

Vcc -> rxd - io4  - io0 - io13 - io14 - en

Rückseite (ledseite richtung WLAN Antenne)

Gnd - txd - unklar - io2  - io15 - io12 - adc

Rst auf testpunkt
Gast #7173392
Lesenswert?

Hi,

noch ein paar Infos zum Modul selbst:

Connecting...
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: a4:e5:7c:15:df:c4
Uploading stub...
Running stub...
Stub running...
Manufacturer: 5e
Device: 6014
Detected flash size: 1MB

IO15 und GND müssen mit 2k2 verbunden werden.
EN muss auf 3V3 gelegt werden (Verbindung zu VCC).

Flash mode ist DOUT, Freq 40 MHz
Gast #7175548
Lesenswert?

Noch vergessen:

Support für ledvance smart+ multi power socket EU 
(https://www.ledvance.de/consumer/produkte/smart-home/smart-komponenten/smart-wifi/smart-komponenten-mit-wifi-technologie-zur-anwendung-im-innenbereich/smart-steckdosen-mit-wifi-technologie/smarte-wifi-3-fach-steckdosenleiste-mit-smarten-usb-anschlussen-c173079)

hinzugefügt.

Hier scheint es wieder 2 Versionen zu geben, eine mit tywe3s Modul und 
eine mit wb3s modul.
Das wb3s modul enthält leider einen Mediatek ARM und muss daher gegen 
ein pinkompatibles tywe3s oder esp12f getauscht werden.
Gast #7186623
Lesenswert?

Noch ein paar infos:

Das modul ist ein tywe3l.

Die Belegung ist

Bl0937 SEL io14
Bl0937 Cf1 io12
Bl0937 CF io13
Button io16 neu io2
Nachtlicht io4
Led io5 invert
Relais io15

Den button habe ich von io16 auf io2 um verlegt, da io16 keine 
Interrupts unterstützt .

Das Gerät ist einfach zu zerlegen, da es komplett geschraubt ist. Und 
netterweise sind sogar die Funktionen der io Pins auf der Platine 
vermerkt.
Angehängte Dateien:
Gast #7193005
Lesenswert?

Hi,

-einige Bugfixes (Anzeige der Spannung war ab und an zu niedrig, Farbe 
im Color picker wurde nicht korrekt dargestellt)

-Reworked http interface
Für die Startseite merkt sich die Software jetzt, welche Sektionen 
geöffnet sind und welche nicht.
Gast #7196348
Lesenswert?

V1.19

Planned actions können jetzt nicht nur anhand fixer Zeitpunkte, sondern 
auch anhand von Sonnenauf- und untergang ausgelöst werden.
Die notwendige Kalibrierung befindet sich auf der Configuration Page.
Dort müssen lediglich die Werte für Sonnenauf- und Untergang am 23.6. 
und 23.12. für den eigenen Standort angegeben werden.
Daraus errechnet die Software dann die Sonnenauf- und Untergangszeiten 
für jeden Tag.
#7199950
Lesenswert?

@Helmut H.

Ist dein Projekt noch aktuell?

Ich habe mir das nochmal angesehen, und gesehen, das ich damals in der 
Devicekonfig für dein IO Board auch GPIOs "reserviert" hatte, die der 
ESP für die Kommunikation mit dem Flash braucht.
Fakt ist: Ohne Portexpander oder Zusammenlegen von IOs geht es nicht.
Gast #7239231
Lesenswert?

V1.22

-BUGFIX: Stromaufnahme im Sleepmode bei batteriebetriebenen Geräten zu 
hoch (> 20 mA), jetzt < 1mA

-BUGFIX: Sensorstatusabfrage nach wake-up aus sleep mode liefert jetzt 
immer korrekte Werte.

-system:status json Ausgabe um Wlan Signalstärke und Vcc ergänzt.

-Startup-Verhalten optimiert.

-"Colorbar" bei Lampen ergänzt

-sunrise/sunset Berechnung verbessert.
Gast #7354200
Lesenswert?

Da das wifi modul auf der ledvance remote defekt war hab ich es durch ein esp12f ersetzt. Und das device damit in betrieb genommen. Allerdings lies sich der stm8 auf der Platine nicht zur Zusammenarbeit über reden (ebenfalls defekt argh) deswegen hab ich die tasten direkt verdrahtet. Ich werd mir nochmal eine holen und dann hoffe ich die Kommunikation mit dem yC hinzugekommen.

Beitrag #7354206 wurde von einem Moderator gelöscht.
#7362437
Lesenswert?

So jetzt habe ich noch eine ledvance tuya remote und habe in der experimental Version initialen support für tuya Kommunikation hinzugefügt.

Derzeit kann toiswitch die Statements vom tuya yC erkennen und zu Buttons oder digitalen Sensorinputs zuordnen.

Eine Möglichkeit auch Daten an den tuya yC zu senden, um z.B. Schaltaktionen auszulösen, integriere ich aktuell.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren