Gurtwickler GW60 mit ESP8266

Begonnen von lukasbastelpeter, 11 November 2016, 22:32:20

Vorheriges Thema - Nächstes Thema

Papa Romeo

Hallo bepeit01,

auf dem ersten Bild der vierten Seite sieht man wo die Leitung angelötet ist. Es ist der gelbe Draht.
Was ich inzwischen festgestellt habe, ist, dass eine korrekte Impulszählung nur erfolgt, wenn die Timerfunktion nicht aktiviert ist.
D.h. die LED rechts beim Uhrensymbols darf nicht leuchten.
Ich habe inzwischen ein Update gemacht, wo sich alles, bis auf die Impuls-Erfassung, auf einer Platine außerhalb des GW60 befindet und auch dieses Problem behoben ist. Ich werde es demnächst hier einstellen.

papa-romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

Hallo zusammen,

ich habe mein GW60-ESP8266-Projekt etwas weiterentwickelt und nun alles, bis auf das Sensormodul und eine eventuell abgesetzte Spannungsversorgung, wenn der R-78E05-0.5 gerade nicht zur Hand ist, aber eventuell ein anderer, auf einer Platine außerhalb des GW60 untergebracht und somit den Verkabelungsaufwand erheblich reduziert. Alles ist kompatibel zu meinem vorherigen Projekt und die beiden Sketche, die ich erstellt habe funktionieren somit auf beiden Varianten.
Nähere Informationen zu den Unterschieden der Sketche und der Notwendigkeit des Sensormoduls usw. habe ich hier im Nachtrag des Vorprojektes (http://www74.zippyshare.com/v/iKcBduQl/file.html) schon aufgeführt. Weitere Beschreibungen findet ihr auch hier im Link von Post #9.
Wie gesagt ist die Platine für einen R-78E05-0.5 ausgelegt(...hatte ich noch übrig). Es kann aber auch jeder andere Mini-Step-Down-Regler wie z.B. Pololu D24V6F5 o. Mini MP1584 o.ä., der einer Eingangsspannung von mind. 28 Volt stand hält, verwendet werden. Ist Dieser für die Platinen-Montage zu groß oder nicht PIN-Kompatibel, kann er ohne Probleme dort untergebracht werden, wo normalerweise die ZB40 gesteckt wird. In diesem Fall wird die Platine nicht mit dem R-78E05-0.5, sondern mit einer Dreier-Stiftleiste für JP1/JP2 bestückt. Je nachdem welche Spannung nun euer Step-Down-Wandler liefert und entsprechenden Jumper ihr dann setzt, kann die Schaltung mit 5 Volt (JP2 gesetzt) oder mit 3,3 Volt (JP1 gesetzt) betrieben werden. Zum Schutz vor zu hohen Eingangsspannungen sollte dann noch, dort wo normal der R-78 sitzt eine 5,6 Volt bzw. 3,6 Volt Z-Diode eingelötet werden. Die 5 Volt des GW60 solltet ihr nicht verwenden, da die Leistung für den Sendebetrieb nicht ausreichend ist.

Die Sketche liefern per MQTT z.B. an FHEM folgende Informationen:

-   die maximale Position des Rollladens (Position wenn komplett geöffnet)
-   die momentane Position des Rollladens
-   die Position des Rollladens in "zu Prozent geöffnet"
-   Rollladen schließt gerade, öffnet gerade oder steht


Gesendet wird ,,Rollladen schließen" sowie ,,Rollladen öffnen" und ,,Stopp".

Der GW60 behält weiterhin, unabhängig von der ,,Modifikation", alle seine Funktionen. Auch bei einer Handbedienung am GW60 bzw. eingeschaltetem Automatikbetrieb oder Steuerung über den Sonnensensor, weiß FHEM immer wo der Rollladen gerade steht. Des Weiteren werden die Werte der maximalen Position und der aktuellen Position im EEprom gespeichert, so dass auch nach einem Stromausfall  der Zustand des Rollladens bekannt ist.

Folgend noch einige Bilder zu diesem Projekt.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

#17
...vollständigkeit halber hier die Gerber-Dateien für die doppelseitige Platine.

Da ich anfangs immer zwei Rollläden über einen 443 MHz 4-Kanal Handsender gesteuert habe, wollte ich mir diese Option weiter offen halten.
Dazu kann an der 4-poligen Pfostenleiste unterhalb des 0,1 uF Kondensators ein Empfänger angeschlossen werden. Je nach Ausgang des Empfängers, kann es sein, dass für die beiden Datenausgänge ein Transistor mit ensprechendem Basisvorwiderstand als Inverter erforderlich ist.

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

robsdobs

Hey Papa Romeo,

tolles Projekt. Ich finde leider nirgends die sketche zu dem Projekt. Habe ich diese übersehen?

Vielen Dank!

Papa Romeo

Hallo robsdobs,

dachte hätte sie eingestellt, aber anscheinend doch nicht. Aber an dem soll´s nicht scheitern. Hier die Dateien.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

robsdobs


mr.sulu

Hallo,
vielen Dank für die super Anleitung zum Umbau des Gurtwicklers.
Habe das Teil schon nachgebaut und bekomme auch die Readings für Öffnen, Schliessen und die Positionen angezeigt.
Es fehlt mir nur die Ansteuerung der Up/Down Funktion. Bekomme das irgendwie nicht recht hin. Könnte ihr da mal ein Screenshot posten, wie das genau bei euch in fhem ausschaut?
Meine Änderung im Sketch und Einstellung bei fhem hänge ich mal an.
Vielen Dank!!!!

Papa Romeo

Hallo Mr. Sulu,

hier mal die FHEM-Definition einer meiner Rollladen:


//DEVICE_213 (OG Schlafen Fenster Rollladen)
//WIP = 213
//DOWN   = " WEMOS_XXX/Down";             // Ausgang --> Taste Down
//UP            = " WEMOS_XXX/Up";                  // Ausgang --> Taste Up
//CLOSE        = " WEMOS_XXX/Schliessen";    // Eingang --> Rollo schließt sich
//OPEN  = " WEMOS_XXX/Oeffnen";        // Eingang --> Rollo öffnet sich
//POS  = " WEMOS_XXX/Position";        // Eingang --> Rolloposition
//POS%    = " WEMOS_XXX/Position_%";
//MAXPOS = " WEMOS_XXX/maxPosition";

//DEVICE Definitionen

define DEVICE_213 MQTT_DEVICE;
attr DEVICE_213 alias OG Schlafen Fenster Rollladen;
attr DEVICE_213 IODev myBroker;
attr DEVICE_213 icon temperature_humidity;
attr DEVICE_213 room OG Schlafen;
attr DEVICE_213 stateFormat {sprintf("maximale Position: %.f - - - aktuelle          Position: %.f - - - zu %.f Prozent geöffnet", ReadingsVal($name,"MAXPOS",0), ReadingsVal($name,"POS",0), ReadingsVal($name,"POS%",0))};
attr DEVICE_213 subscribeReading_UP WEMOS_213/Up;
attr DEVICE_213 subscribeReading_MAXPOS WEMOS_213/maxPosition;
attr DEVICE_213 subscribeReading_OPEN WEMOS_213/Oeffnen;
attr DEVICE_213 subscribeReading_POS WEMOS_213/Position;
attr DEVICE_213 subscribeReading_POS% WEMOS_213/Position_%;
attr DEVICE_213 subscribeReading_CLOSE WEMOS_213/Schliessen;
attr DEVICE_213 subscribeReading_DOWN WEMOS_213/Down


// BRIDGE Definitonen

define MQTT_DEVICE_213_Aktor1 MQTT_BRIDGE DEVICE_213_Aktor1
attr MQTT_DEVICE_213_Aktor1 IODev myBroker;
attr MQTT_DEVICE_213_Aktor1 event-on-change-reading .*;
attr MQTT_DEVICE_213_Aktor1 publishState WEMOS_213/Down;
attr MQTT_DEVICE_213_Aktor1 room OG Schlafen

define MQTT_DEVICE_213_Aktor2 MQTT_BRIDGE DEVICE_213_Aktor2;
attr MQTT_DEVICE_213_Aktor2 IODev myBroker;
attr MQTT_DEVICE_213_Aktor2 event-on-change-reading .*;
attr MQTT_DEVICE_213_Aktor2 publishState WEMOS_213/Up;
attr MQTT_DEVICE_213_Aktor2 room OG Schlafen

define MQTT_DEVICE_213_ASensor MQTT_BRIDGE DEVICE_213_ASensor;
attr MQTT_DEVICE_213_ASensor IODev myBroker;
attr MQTT_DEVICE_213_ASensor event-on-change-reading .*;
attr MQTT_DEVICE_213_ASensor subscribeSet WEMOS_213/Schliessen;
attr MQTT_DEVICE_213_ASensor room OG Schlafen

define MQTT_DEVICE_213_BSensor MQTT_BRIDGE DEVICE_213_BSensor;
attr MQTT_DEVICE_213_BSensor IODev myBroker;
attr MQTT_DEVICE_213_BSensor event-on-change-reading .*;
attr MQTT_DEVICE_213_BSensor subscribeSet WEMOS_213/Oeffnen;
attr MQTT_DEVICE_213_BSensor room OG Schlafen

define MQTT_DEVICE_213_CSensor MQTT_BRIDGE DEVICE_213_CSensor;
attr MQTT_DEVICE_213_CSensor IODev myBroker;
attr MQTT_DEVICE_213_CSensor event-on-change-reading .*;
attr MQTT_DEVICE_213_CSensor subscribeSet WEMOS_213/Position;
attr MQTT_DEVICE_213_CSensor room OG Schlafen

define MQTT_DEVICE_213_DSensor MQTT_BRIDGE DEVICE_213_DSensor;
attr MQTT_DEVICE_213_DSensor IODev myBroker;
attr MQTT_DEVICE_213_DSensor event-on-change-reading .*;
attr MQTT_DEVICE_213_DSensor subscribeSet WEMOS_213/Position_%;
attr MQTT_DEVICE_213_DSensor room OG Schlafen

define MQTT_DEVICE_213_ESensor MQTT_BRIDGE DEVICE_213_ESensor;
attr MQTT_DEVICE_213_ESensor IODev myBroker;
attr MQTT_DEVICE_213_ESensor event-on-change-reading .*;
attr MQTT_DEVICE_213_ESensor subscribeSet WEMOS_213/maxPosition;
attr MQTT_DEVICE_213_ESensor room OG Schlafen


//DUMMY Definitionen

define DEVICE_213_Aktor1 dummy;
attr DEVICE_213_Aktor1 alias OG_Schlafen FensterZu;
attr DEVICE_213_Aktor1 event-on-change-reading .*;
attr DEVICE_213_Aktor1 icon black_down;
attr DEVICE_213_Aktor1 room OG Schlafen;
attr DEVICE_213_Aktor1 webCmd on

define DEVICE_213_Aktor2 dummy;
attr DEVICE_213_Aktor2 alias OG_Schlafen Fenster Auf;
attr DEVICE_213_Aktor2 event-on-change-reading .*;
attr DEVICE_213_Aktor2 icon black_up;
attr DEVICE_213_Aktor2 room OG Schlafen;
attr DEVICE_213_Aktor2 webCmd on

define DEVICE_213_ASensor dummy;
attr DEVICE_213_ASensor alias OG Schlafen Fenster Rollo schließt;
attr DEVICE_213_ASensor devStateIcon Close:rc_DOWN Stop:rc_STOP;
attr DEVICE_213_ASensor event-on-change-reading .*;
attr DEVICE_213_ASensor icon edit_settings;
attr DEVICE_213_ASensor room OG Schlafen

define DEVICE_213_BSensor dummy;
attr DEVICE_213_BSensor alias OG Schlafen Fenster Rollo öffnet;
attr DEVICE_213_BSensor devStateIcon Open:rc_UP Stop:rc_STOP;
attr DEVICE_213_BSensor event-on-change-reading .*;
attr DEVICE_213_BSensor icon edit_settings;
attr DEVICE_213_BSensor room OG Schlafen

define DEVICE_213_CSensor dummy;
attr DEVICE_213_CSensor alias OG Schlafen Fenster Position Absolut;
attr DEVICE_213_CSensor devStateIcon on:FS20.on Off:FS20.off;
attr DEVICE_213_CSensor event-on-change-reading .*;
attr DEVICE_213_CSensor icon edit_settings;
attr DEVICE_213_CSensor room OG Schlafen

define DEVICE_213_DSensor dummy;
attr DEVICE_213_DSensor alias OG Schlafen Fenster Position in %;
attr DEVICE_213_DSensor devStateIcon on:FS20.on Off:FS20.off;
attr DEVICE_213_DSensor event-on-change-reading .*;
attr DEVICE_213_DSensor icon edit_settings;
attr DEVICE_213_DSensor room OG Schlafen

define DEVICE_213_ESensor dummy;
attr DEVICE_213_ESensor alias OG Schlafen Fenster Position maximum;
attr DEVICE_213_ESensor devStateIcon on:FS20.on Off:FS20.off;
attr DEVICE_213_ESensor event-on-change-reading .*;
attr DEVICE_213_ESensor icon edit_settings;
attr DEVICE_213_ESensor room OG Schlafen


DOIF Definitionen

define DEVICE_213_Aktor11 doif ([DEVICE_213_Aktor1] eq "on") (set DEVICE_213_Aktor1 on, sleep 1  set DEVICE_213_Aktor1 off  set Icon1 off);
attr DEVICE_213_Aktor11 do always;
attr DEVICE_213_Aktor11 icon recycling;
attr DEVICE_213_Aktor11 room OG Schlafen

define DEVICE_213_Aktor22 doif ([DEVICE_213_Aktor2] eq "on") (set DEVICE_213_Aktor2 on, sleep  1 set DEVICE_213_Aktor2 off set Icon1 off);
attr DEVICE_213_Aktor22 do always;
attr DEVICE_213_Aktor22 icon recycling;
attr DEVICE_213_Aktor22 room OG Schlafen



!!! ... wenn DOIF angelegt ist, dann jeweils nach sleep 1 einen Strichpunkt setzen. Wenn ich versucht habe den Strichpunkt gleich während des Anlegens zu setzen, hat FHEM einen Fehler angezeigt!!!

...schöne Grüße Scotty... ::) ;) ;D...alias Papa Romeo

...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

mr.sulu

Muss mich noch einmal bedanken....
Jetzt funktioniert es endlich und ich kann wieder ruhig schlafen ;D
Danke Papa Romeo  ;)

Papa Romeo

..kein Problem...gern geschehen...
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

fhemlerix

Hallo Papa Romeo,

ein großes Lob für dieses Projekt.
Leider gibt es bei mir noch ein Problem. Ich wollte mir bei JLCPCB die Platinen bestellen und verwendete dazu das Gerber.Zip-File.

Nun meldet mir JLCPCB einen Fehler und ich habe keinerlei Erfahrungen bei der Erstellung von Leiterplatten, bzw. deren Daten.
Im Anhang befindet das Ergebnis der Analyse, wenn man auf deren Homepage die Datei Gerber.Zip hochlädt,
bzw. beim Bestellvorgang:   "Really sorry to bother you, but there is no top solder mask in your file. Could you please kindly check?? "

Kannst du mir einen Tip geben, was kann die Ursache sein, fehlt in der Datei wirklich etwas?

Vielen Dank für die Hilfe
fhemlerix

Papa Romeo

Hallo fhemlerix,

ich habe genau mit diesen Gerber-Dateien meine Platinen bei JLCPCB erstellen lassen und es ist eigentlich korrekt, dass diese Platine keine TOP-Solder-Mask hat, da auf dieser Seite auch nichts gelötet wird. Aber ich hatte so eine Meldung auch schon mal bei meinem Wechselschalter. Die erste Lieferung kam ohne Probleme, bei der zweiten Lieferung mit dem gleiche Layout (einzige Änderung waren größere Bohrlöcher) wollten sie auf einmal auch eine TOP-Solder-Mask haben. Ich hab dann auf der TOP-Seite nur eine Durchkontaktierung als Lötpunkt erstellt und die Platinen kamen wieder ohne Problem. Weiß der Geier warum !
Ich werde es hier jetzt mal auch so machen und die Gerber neu einstellen.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

Papa Romeo

@fhemlerix:

Gerber Dateien sind aktualisiert. Kannst dein Glück nochmal versuchen.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

fhemlerix

Vielen Dank Papa Romeo, damit hat die Bestellung funktioniert   :)

Papa Romeo

ok...freut mich, dass ich helfen konnte.
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary