Forum: Projekte & Code TOISWITCH - IoT I/O-Server für ESP8266


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von hacker-tobi (Gast)


Angehängte Dateien:

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]

: Bearbeitet durch Moderator
von hacker-tobi (Gast)



Lesenswert?

Anbei ein paar Bilder

von Melba (Gast)


Lesenswert?

> ... anbei ein kleiner Webserver ...

21,2 MB ist endlich mal ein winziger Webserver. Danke.

von hacker-tobi (Gast)


Lesenswert?

Mir scheint du hast da was falsch verstanden.

Das ZIP ist 21.2 MB gross, da dort alle für den build notwendigen files 
includiert sind.
Das binary für den esp 8266 hat ca 500k.

von Frank M. (ukw) (Moderator) Benutzerseite


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?

: Bearbeitet durch Moderator
von conquistador (Gast)


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?

von Oliver S. (phetty)


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.

von Andreas B. (bitverdreher)


Lesenswert?

conquistador schrieb:
> Lohnt es sich sowas nochmal selbst zu erfinden?
Ja, nennt sich Hobby.

von hacker-tobi (Gast)


Lesenswert?

Genau. Nennt sich hobby ;)

Und nur darum hab ichs gebaut.
Fertig kaufen kann jeder, aber selber bauen eben nicht.

von hacker-tobi (Gast)


Lesenswert?

@frank: ja der Ordner wird erst beim build erstellt. Ich war mir offen 
gesagt nicht sicher ob es Sinn macht ihn mit einzufügen.
Wenn es unnötig ist kann ich ihn gern zukünftig weglassen.

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

@Hacker-Tobi Schönes Projekt, aber arum verwendest du keinen Sonoff 
sondern baust dir die Hardware selbst?

Eventuell könntest du noch Mqtt zum steuern in die Firmware einbauen.

: Bearbeitet durch User
von conquistador (Gast)


Lesenswert?

100Ω W. schrieb:
> Eventuell könntest du noch Mqtt zum steuern in die Firmware einbauen.

Ja, deswegen Tasmota ... hat schon alles drin, und jede Menge Bugs auch 
schon gefixt.

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

anbei die neueste Version.

Jetzt ist ein Timer-Modus integriert (1-960 min).

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

hacker-tobi schrieb:
> anbei die neueste Version.

Zip ist um den Faktor 1000 geschrumpft, gratuliere :-)

Aber hier warst Du wohl zu rigoros. Es gibt auch Leute, die würden das 
fertige Bin-File flashen und fertig. Von daher empfehle ich dir, 
zukünftig die Datei webserver.bin ins ZIP mit aufzunehmen.

: Bearbeitet durch Moderator
von hacker-tobi (Gast)


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 :)

von hacker-tobi (Gast)


Angehängte Dateien:

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?)

von hacker-tobi (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

v 0.80 includiert jetzt:

-Basic Auth
-Überarbeitetes Interface für wiederkehrende Aktionen
-OTA ist jetzt "robuster" gegen Timeouts oder Übertragungsfehler

gruß

tobi

von Frank (Gast)


Lesenswert?

hacker-tobi schrieb:
> mit dem Arduino-C-Dialekt kann ich mich nicht anfreunden

Du meinst C++? Ist aber heutzutage doch praktisch Standard.

von hacker-tobi (Gast)


Angehängte Dateien:

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.

von hacker-tobi (Gast)


Angehängte Dateien:

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.

von Johannes S. (Gast)


Lesenswert?

Wie wäre es mit SW in git? In Zips können keine Änderungen verfolgt 
werden, und Fehlermeldungen /Verbesserungen sind in git als Abläufe 
deutlich transparenter.

von hacker-tobi (Gast)



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.

von hacker-tobi (Gast)


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).

von hacker-tobi (Gast)


Lesenswert?

@Johannes: Danke für die Anmerkung. Kommt noch!

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

Es sollte heißen "macht DEN Einstieg leicht" nicht "Macht DEIN Einstieg 
leicht" ;)

von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Lesenswert?

hacker-tobi schrieb:
> Die Infos zum Gehäuse liefere ich noch nach, aber natürlich geht jedes
> Zwischenstecker-Gehäuse, das genügend Platz bietet.
>
Steckergehäuse mit Steckdose STG15 Kemo;
in der Bucht für 9,40€

sieht halbwegs vertrauenserweckend aus.

von hacker-tobi (Gast)


Lesenswert?

@Thomas G.

Ja das passt! Danke!

Ich hatte das lokal gekauft, deswegen hatte ich die Info nicht parat 
gehabt.

von hacker-tobi@gmx.net (Gast)


Angehängte Dateien:

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.

von hacker-tobi@gmx.net (Gast)


Lesenswert?

Ich vergass noch zu erwähnen, das ich die wroom Module noch am Gehäuse 
verklebt hab damit die nicht herum "wandern".

von hacker-tobi (Gast)


Lesenswert?

Ich habe das Projekt bei Sourceforge abgelegt.

Ich bin aktuell auch dabei, MQTT zu integrieren.

Ich überlege auch, die Download-Adresse für OTA auf Sourceforge 
umzustellen.

https://sourceforge.net/projects/wlan-controlled-switch/

von Tom (Gast)


Lesenswert?

nimm doch einfach elecpow

von hacker-tobi (Gast)


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

von Johannes S. (Gast)


Lesenswert?

hacker-tobi schrieb:
> Ich kann es aber aktuell nicht testen, da ich keinen Broker habe.

jeder sollte einen Broker haben. Also zumindest wenn man schon Software 
schreibt die einen braucht.

von hacker-tobi (Gast)


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.

von Johannes S. (Gast)


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.

von hacker-tobi (Gast)


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!

von Johannes S. (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

V0.83 ist jetzt online.

-Features: MQTT überarbeitet
-Support für multiple Ein- und Ausgänge, jeder Ausgang individuell 
konfigrierbar.

von Thomas G. (Firma: Frickelhauptquartier) (taximan)


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.

von einName (Gast)


Lesenswert?

dann brauchste als nächstes noch ein Display :-D

von Michael U. (amiga)


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

von hacker-tobi (Gast)


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

von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Lesenswert?

Na gut

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


Lesenswert?

v0.85 online

-Bugs im MQTT beseitigt, Funktion getestet
-Startseite bei MQTT überarbeitet
-MQTT/MQTTs werden jetzt unterstützt

von Nummer E. (ritaripp)


Lesenswert?

Hi,
wie siehts mit der Leistungsaufnahme aus. Ist wohl >0,5 Watt ?

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


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).

von hacker-tobi (Gast)


Lesenswert?

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

von hacker-tobi (Gast)


Lesenswert?

Btw das Projekt ist umgezogen:

Neue URL:

https://toiswitch.sourceforge.io

von Frank M. (ukw) (Moderator) Benutzerseite


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/

: Bearbeitet durch Moderator
von hacker-tobi (Gast)


Lesenswert?

Hi,

danke!

Momentan scheint die neue page noch nicht online zu sein.
Ich kümmer mich drum.

Gruss tobi

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)



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

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

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

Da kann ich die Files nur einzeln runterladen!
Mache bitte noch ein Gesamtpacket für das ganze Projekt.

von hacker-tobi (Gast)


Lesenswert?

OK, folgt noch.

Gruss tobi

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

Einer noch: Ausgänge können jetzt sowohl high-active als auch low-active 
definiert werden.

von hacker-tobi (Gast)


Lesenswert?

Und weiter gehts:

-Color Picker in Web-UI integriert.
-Colorwerte können jetzt auch per MQTT im Hexformat übermittelt werden.
-Bugfix: Wildcards in MQTT Topics funktionierten nicht. Fixed.

von hacker-tobi (Gast)


Lesenswert?

Kleines Update:

MQTT Kommando GET_STATUS Ausgabe sauber formatiert.

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


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

von Helmut H. (der_andere)


Lesenswert?

Eine Frage, dessen Antwort sicher irgendwo steht, ich wohl überlesen 
habe:
Welches File mit welchem Programm muß man flashen?
Eine kurze Beschreibung/Anleitung oder Link würde mir genügen und DANKE 
für's teilen!

: Bearbeitet durch User
von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Lesenswert?

Danke Tobi,
ich hatte Wemos D1 mini vorgesehen, komme aber erst Morgenabend dazu.
Bin gespannt. Wenn Du eine gute Seite für den ESP32 suchst, meine 
Empfehlung: https://randomnerdtutorials.com/

: Bearbeitet durch User
von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Lesenswert?

Hallo Tobi,
hast Du die Config auf NodeMCU aufgebaut, oder für welchen Baustein?

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Lesenswert?

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

Nur dann muß ich neu "kompilieren", oder kann ich die Conf auch in der 
Webseite des Modul ändern?

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Angehängte Dateien:

Lesenswert?

Ich wollte eine ältere Platine (230V~ In 230V~ out) mal damit 
ausstatten.
Leider sind die SSR fast nicht mehr zu bekommen bzw teuer.

Ev hat ein geneigter Leser eine Adresse für die Teile?

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


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.

: Bearbeitet durch User
von hacker-tobi (Gast)


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?

von Helmut H. (der_andere)


Lesenswert?


von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Lesenswert?

Da ist ein Elko/Kondensator an jedem Optoausgang, der speichert den 
Pegel

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Lesenswert?

Danke Dir, komme erst Sa So dazu.

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Lesenswert?

Hi Tobi,
ich habe es auf NodeMcu v3 geflasht (webserver.bin), bekomme auch auf 
dem Comport Ausgaben, aber
in meinem Router ist kein Eintrag einer neuen IP-Adr oder eine neue WLAN 
SSId
Kann es sein, dass Du eine feste IP vergibst?
Ich bin auf 192.168.0.x

: Bearbeitet durch User
von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


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?

von hacker-tobi (Gast)


Lesenswert?

serielle ausgabe ist enthalten.

du schriebst doch auch, das du ausgaben bekommst. welche sind das?

von Helmut H. (der_andere)


Lesenswert?

Sind undefinierte Zeichen, häng doch bitte hier mal ein webserver dot 
bin File ran, ev. ist nur was nicht richtig übertragen worden.
Ich habe nur leider i.M. keine Zeit, eilt also nicht.

von hacker-tobi (Gast)


Angehängte Dateien:

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

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Angehängte Dateien:

Lesenswert?

Kannst Du mir die Bin's und die dazugehörigen Adressen nennen, ev SPI 
und Quarz wenn nötig, usw.
Ich bin nämlich mit Window am Start, Du bist ein LinuxFan, eilt nicht

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Lesenswert?

Danke Tobi, wo finde ich die bootlader dot bin?

von hacker-tobi (Gast)


Lesenswert?

Hi,

der bootloader sollte auf dem board schon präsent sein.
Von daher kannst du den weg lassen.

ich kann ihn aber auch noch nachliefern wenn gewünscht.

von Helmut H. (der_andere)


Angehängte Dateien:

Lesenswert?

Hmm, bekomme das Teil nicht zum laufen, was mache ich falsch in den 
Einstellungen?
Debug Ausgaben kommen keine

: Bearbeitet durch User
von hacker-tobi (Gast)


Lesenswert?

Hi stell mal den SPI mode auf qio um. Das ist das was er in der 
detection angibt.

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

Hast du denn mit dem tool schonmal erfolgreich etwas geflashed? Wenn ja 
wie waren die Einstellungen ?

von Helmut H. (der_andere)


Lesenswert?

Hallo Tobi,
ja hatte ich schonmal gemacht, aber das ist länger her und die 
Einstellungen weiß ich jetzt nicht mehr.
Habe mal probeweise Tasmota online geflasht: Board ist ok.
Hab' aber auch nicht so die Zeit für längere Versuche, der WAF you know?

von hacker-tobi (Gast)


Lesenswert?

hi,

klar versteh ich das.

Was heißt online geflashed?

Mich würde der Fehler interessieren, auch um ihn auszumerzen falls er in 
der Software oder den Einstellungen liegt.

von Helmut H. (der_andere)


Lesenswert?

Tasmota kann man Online flashen, man muß nicht unbedingt zB tasmotizer 
benutzen, guggst Du :
https://arendst.github.io/Tasmota-firmware/

von hacker-tobi (Gast)


Lesenswert?

Ah OK.
Damit kann ich dir leider nicht dienen.

Alternativ kannst du mir das board auch mal zusenden dann flashe ich es 
dir.

Bei Interesse hacker [minus] tobi [at] gmx [Punkt] net

von 100Ω W. (tr0ll) Benutzerseite


Lesenswert?

hacker-tobi schrieb:
> Ah OK.
> Damit kann ich dir leider nicht dienen.

Schau dir dafür mal die ESP-Web-Tools an.
https://github.com/esphome/esp-web-tools

von Imnotali (Gast)


Lesenswert?

Helmut H. schrieb:
> Ich wollte eine ältere Platine (230V~ In 230V~ out) mal damit
> ausstatten.
> Leider sind die SSR fast nicht mehr zu bekommen bzw teuer.
>
> Ev hat ein geneigter Leser eine Adresse für die Teile?

Ali hat die

von hacker-tobi (Gast)


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?

von hacker-tobi (Gast)


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.

von Helmut H. (der_andere)


Lesenswert?

Hallo Tobi,
im Moment habe ich keine Zeit für meine Spielereien. Melde mich, wenn 
ich weiter komme. Bleib gesund!

von hacker-tobi (Gast)


Angehängte Dateien:

Lesenswert?

Test für OTA - kann ignoriert werden.

von hacker-tobi (Gast)


Lesenswert?

@Helmut:

Ok! Bleib ebenso gesund!

von hacker-tobi (Gast)


Angehängte Dateien:

Lesenswert?

test fuer OTA 2

von hacker-tobi (Gast)


Angehängte Dateien:

Lesenswert?

test fuer OTA 3

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


Lesenswert?

Hi,

ich bin gerade dabei, eine Doku für die Software zu schreiben und suche 
noch Leute die testen oder gegenlesen.

Doku unter:

https://sourceforge.net/p/toiswitch/wiki/browse_pages/

(noch unvollständig)

Also wenn hier jemand unterstützen möchte, würde ich mich freuen.

Anregungen, Kommentare, Kritik gern hier posten.

von hacker-tobi (Gast)


Lesenswert?

Hi,

bugfix: System geht in Reset wenn konfiguriertes WLAN für mehr als 24 
std ausfällt, nachdem es zuvor erreichbar war.
Fixed.

von hacker-tobi (Gast)


Lesenswert?

V1.10 ist online

-MQTT response topic eingefügt.

Auf diesem Topic meldet ein Device alle ausgeführten Kommandos mit 
Status zurück.

von hacker-tobi (Gast)


Lesenswert?

Hi,

Hab an der Doku weiter geschrieben, liegt im Wiki ab.

von hacker-tobi (Gast)


Lesenswert?

Hi,

ein kleines update:

-Support für inverted PWM channel hinzugefügt (low-active)
-Beim HAMA TOUCh SWITCH die LEDs dimmbar gemacht

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

Für Details zu den neuen Kommandos siehe Wiki:

https://sourceforge.net/p/toiswitch/wiki/5_MQTT%20commands/

von hacker-tobi (Gast)


Lesenswert?

V1.14 ist online

-Überarbeitetes HTML-Interface. Bilder reiche ich noch nach.
-PWM arbeitet jetzt intern mit 10 Bit @ 1 kHz, extern mit 8 Bit
-Farben sind Gamma-korrigiert
-Bugfixes

von hacker-tobi (Gast)


Angehängte Dateien:

Lesenswert?

Aktuellstes file

von hacker-tobi (Gast)


Lesenswert?

Letzten Eintrag bitte ignorieren. Ich wollte das Update nur jemand zur 
Verfügung stellen der es nicht von toiswitch.de beziehen kann wegen 
Problemen mit der lokalen Firewall.

Gruss tobi

von hacker-tobi (Gast)


Lesenswert?

Device QS_WIFI_S03 (Wlan Unterputz Schalter, 
https://www.ifreeq.com/products/qs-wifi-s03-specs/) aufgenommen.

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


Lesenswert?

V1.15 released

Liste der unterstützen devices (2M Version) erweitert.

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


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!

von hacker-tobi (Gast)


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.

von oldWiFi (Gast)


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
:-)

von hacker-tobi (Gast)


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

von oldWiFi (Gast)


Lesenswert?

Danke,
daß ging ja extrem schnell mit der Antwort.
:-)
Wenn es per device machbar ist, klar, das reicht mir.
Zeitlich ist da kein Druck, wenn es eingepflegt wird,
dann ist es eingepflegt.
Danke.

von hacker-tobi (Gast)


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
        }

von hacker-tobi (Gast)


Lesenswert?

Achtung:

Die Pfade aus meinem esptool-Aufruf musst du noch anpassen.

von oldWiFi (Gast)


Lesenswert?

Wow,
vielen Dank!

Ich melde mich, wenn ich es nach dem WE aufgespielt habe.
:-)

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


Lesenswert?

@oldwifi: Könntest du es installieren?

von oldWiFi (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

Gute Besserung!

von hacker-tobi (Gast)


Lesenswert?

Mini-Update:

kWh-Zähler integriert.

von hacker-tobi (Gast)


Lesenswert?

Update:

kWh-Zähler: Werte werden jetzt gespeichert und Anzeige etwas anders 
formatiert ("." durch "," ersetzt).

von Herbert K. (avr-herbi)


Lesenswert?

hacker-tobi schrieb:

Finde ich toll von Dir, das Du trotz dem "bla-bla-bla" am Anfang weiter 
gemacht hast !

von hacker-tobi (Gast)


Lesenswert?

@Herbert K.

Danke ;) Die Software wird immer noch beständig weiter entwickelt.
Ich gehe immer lieber "den harten Weg" und entwickle selbst - einfach 
weil es Spaß macht.

von Postolevksy (Gast)


Lesenswert?

Herbert!
Wir sind hier Zeugen von was ganz Großem!
Ein kleiner Knirps lernt und macht. Das is doch fantastisch!

von hacker-tobi (Gast)


Lesenswert?

@ Postolevksy

Such dir nen anderen Thread zum Trollen.
Kannst dir ja gern meine Historie im Forum ansehen, dann wirst du 
feststellen das ich das nicht erst seit gestern mache ;)

von hacker-tobi (Gast)


Lesenswert?

Noch ein Mini-Update.

Bugfix: Die Langzeitdaten für den Stromverbrauch (kWh) wurden nicht 
korrekt gespeichert und waren somit nach einem Reset des Geräts nicht 
mehr verfügbar. Korrigiert.

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

Support für Denver SHP-200 Doppelsteckdose mit Leistungsmessung 
hinzugefügt.

von hacker-tobi (Gast)


Lesenswert?

V1.17 ist online.

Power meter support erweitert, erfasst werden jetzt Wirkleistung, 
Spannung(RMS), Strom(RMS), Power factor (cos phi).

von hacker-tobi (Gast)


Lesenswert?

V1.17 power meter noch um eine Kalibrierfunktion erweitert.

von Thomas B. (tommi00)


Lesenswert?

Hi Tobi,
hättest du das Pinout vom ESP im Denver SHP-200 Stecker?

Danke.
Tommi

von Tobias W. (hacker-tobi)


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;
        }

von Thomas B. (tommi00)


Angehängte Dateien:

Lesenswert?

Hi Tobi,

Danke für deine Antwort. Ich meinte eher physikalisch am ESP 8266 :-).
Gruß,
Tommi

: Bearbeitet durch User
von hacker-tobi (Gast)


Lesenswert?

Hi,

das ist imHO kein ESP Modul sondern die neuere Variante mit beken 
bk7231.

Ich hab noch eins dieser module hier liegen und schaue mal nach.

Das pinout könnte dem xh-004b entsprechen (siehe 
https://community.home-assistant.io/t/unkown-tuya-chip/153591/245).

Das müsstest du aber nochmal anhand der Platine verifizieren. Die ist ja 
recht übersichtlich.

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


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

von hacker-tobi (Gast)


Angehängte Dateien:

Lesenswert?

Anbei noch 2 Bilder vom Modul mit Beschriftung.

Die 1MB Version von Toiswitch läuft darauf problemlos.

von hacker-tobi (Gast)


Lesenswert?

Hi nochmal,

ich vermute der Pin "?" ist IO5. Das würde zur Pin-Belegung der SHP-200 
passen.

von hacker-tobi (Gast)


Lesenswert?

V1.18 ist online

-Menüstruktur Hauptseite überarbeitet
-Tageszähler für kWh / Kosten hinzugefügt
-Bugfixes

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

Support für ledvance smart+ nightlight plug 
(https://www.ledvance.de/consumer/produkte/smart-home/smart-home-produkte-mit-wifi-technologie/smart-home-komponenten/smarte-steckdose-mit-integriertem-nachtlicht-ueber-wifi-technologie-steuerbar-c141297) 
hinzugefügt.

Unterstützt werden alle Funktionen, also Schalten des Ausgang, 
Energiemessung und das Nachtlicht.

von hacker-tobi (Gast)


Angehängte Dateien:

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.

von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?


von hacker-tobi (Gast)


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.

von Tobias W. (hacker-tobi)


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.

von hacker-tobi (Gast)


Lesenswert?


von hacker-tobi (Gast)


Lesenswert?

"Experimental" Pfad zum Git Repo hinzugefügt.

Die Binaries können auch unter

https://toiswitch.de/experimental/toiswitch_exp_1m.bin
https://toiswitch.de/experimental/toiswitch_exp_2m.bin
https://toiswitch.de/experimental/toiswitch_exp_4m.bin

heruntergeladen werden.

Versionen in diesem Pfad enthalten neue Features, die aber noch nicht 
komplett oder noch instabil sind.

von hacker-tobi (Gast)


Lesenswert?

Kleines update:

-Möglichkeit, eine last will Message zu konfigurieren, hinzugefügt

von hacker-tobi (Gast)


Lesenswert?

V1.20

-Möglichkeit, ein OTA Update zu via Web-Interface und MQTT rückgängig zu 
machen, hinzugefügt.
-MQTT Ausgabe für Power-Daten um kwh/Kosten für Tag/Monat/Jahr 
erweitert.
-Zeitformat für Planned Actions angepasst.
-Möglichkeit, mittels des Parameters api=on die HTML-Ausgabe zu 
unterdrücken, hinzugefügt (http://toiswitch.device/switch?api=on)
-Diverse Fixes

von hacker-tobi (Gast)


Lesenswert?

V1.21

JSON requests und responses können ab jetzt zusätzlich zu MQTT auch per 
HTTP gelesen bzw. versendet werden.

von hacker-tobi (Gast)


Lesenswert?


von hacker-tobi (Gast)


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.

von hacker-tobi (Gast)


Lesenswert?

V1.22

-timer mit ntp synchronisiert
-Batteriehandling weiter optimiert (sleep cycle verlängert , wachzeit 
verkürzt)

von hacker-tobi (Gast)


Lesenswert?

V1.22 kleinere Bugfixes

von hacker-tobi (Gast)


Lesenswert?

V1.22 Bugfix: Timing Problem für Device "Changeover Switch" beseitigt.

von hacker-tobi (Gast)


Lesenswert?

V1.22 Timing für batteriebetriebene Geräte angepasst.

Ich arbeite grad am support für die ledvance remote.

von hacker-tobi (Gast)


Lesenswert?

Einige kleinere Anpassungen im Debouncing und mqtt ungraceful 
disconnect.

Bei der Ledvance remote bin ich noch nicht weiter, hab das tywe3s 
versehentlich zerstört durch falschpolung :(

von hacker-tobi (Gast)


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.
von Tobias W. (hacker-tobi)


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.

von Tobias W. (hacker-tobi)


Lesenswert?

Nach langer Zeit mal wieder...

V1.22 Wenn das Wlan nach einem Ausfall der Verbindung nicht neu 
verbunden werden kann, wird nach 5 Versuchen ein Neustart ausgelöst.

: Bearbeitet durch User
von Tobias W. (hacker-tobi)


Lesenswert?

Projekt wurde aktualisiert

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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.