Rollladensteuerung mit ESP01 für Schalterdoseneinbau

Begonnen von Papa Romeo, 12 Juni 2018, 18:43:52

Vorheriges Thema - Nächstes Thema

localhosthack0r

Hallo Gisbert,

was genau hast du denn bisher versucht um MQTT mit User/Passwort zu betreiben?
Grundsätzlich ist das in der eingesetzten Libary PubSubClient vorgesehen, siehe hier:
https://pubsubclient.knolleary.net/api.html#connect3

Ich selbst nutze MQTT ohne User/PW, da im lokalen Netz und da hab ich keinen anderen, der da rumfummeln würde,....

Ich würde mal folgendes porbieren, falls nicht schon so geschehen:

Im Originalsketch von Papa Romeo in Zeile 305

client.connect(CLIENTID)

durch

client.connect(CLIENTID, "GisbertsUserName", "GisberstPasswort")

ersetzen ("GisbertsUserName", "GisberstPasswort" natürlich entsprechend mit deinem User/Pwd).

Gisbert

Hallo localhosthack0r,

genauso hab's ich gemacht.
Dann hab ich den Sketch mit Arduino compiliert und hochgeladen, das lief glatt durch.
Der ESP hatte davor Tasmota drauf und lief damit, d.h. die Hardware sollte nicht die Fehlerursache sein.

Der ESP taucht im Wlan auf.
Wenn ich in mqttfx auf alles lausche (Subskribtion auf #), dann kommen alle paar Sekunden alle Messages von meinen Geräten rein, aber rein gar nichts, was auf den Rollladenschalter schließen lassen würde, auch keine unbekannten Messages, d.h. die, die reinkommen kann ich eindeutig den anderen ESPs, Sonoffs, etc. zuordnen.

Das Betätigen des mittlerweile angeschlossenen Drehschalters bewirkt kein Schalten der Relais; lediglich in einer Drehrichtung leuchtet die blaue Diode am ESP auf.
Kann es sein, dass noch Reste der Tasmota-Software auf dem ESP rumgeistern? Ich weiß, eine wenig professionelle Aussage, aber nur um mal diesen Gedanken auszusprechen.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

lewej

Hallo Gisbert,

da tasmota das von Haus nicht unterstützt, wäre es vielleicht wert, wenn wir arendt dem Entwickler von tasmota einer dieser fertigen Platinen zur Verfügung stellen. Es gibt bereits zahlreiche andere Platinen, die so ins tasmota supported devices rein gekommen sind.

Ob er speziell dann auch in Richtung Rolladen Fahrzeiten, was implementieren würde, wäre dann natürlich die Krönung!

Hat jemand noch Interesse ausser Gisbert?

Gisbert

#93
Hallo lewej,

das wäre natürlich eine Möglichkeit, das über Tasmota zu machen, wobei Papa Romeo ja diverse Platinen in Umlauf gebracht hat, die alle ähnlich, jedoch nicht identisch sind (hoffentlich hab ich das jetzt richtig wiedergegeben, ansonsten bitte korrigieren). Da müsste man sich zuerstmal auf eine Variante einigen. Ich bin überzeugt durch Tasmota würde das Hardwareprojekt von Papa Romeo sicher noch an Fahrt aufnehmen.

Aber zurück zu dem Sketch von Papa Romeo, der läuft ja dort.

Zunächst Asche auf mein Haupt, zumindest teilweise.
Im Sketch steht MQTT-Server 192.178...., ich hab aber 192.168....
Jetzt läuft MQTT und ich bekomme Meldungen rein, aber außer Spannung wird nichts gemeldet.
Über den angeschlossenen Drehschalter tut sich rein gar nichts.
Den Anschluss am Drehschalter habe ich wie folgt vorgenommen:
- Leiter auf GND
- einen Ausgang auf Down
- einen Ausgang auf Up
Das erschien mir am sinnigsten, hoffentlich ist es wenigstens falsch, damit ich weiterkomme in diesem Projekt  :(

Wenn ich in mqttfx das folgende publishe: ClientID/Down - ClientID natürlich durch das ersetzt, was im Sketch definiert wurde, dann müsste doch der Rollladenschalter den Befehl empfangen, falls ich den Sketch richtig interpretiere?
Leider tut sich da gar nichts.
Kann mir jemand hier unter die Arme greifen?

Viele Grüße Gisbert

PS:
Nach dem Anlegen von Spannung ist die Richtung Runter geschaltet, und nach ca. 40 sec (ich hab als Laufzeit 40 eingetragen) wird abgeschaltet.
Dann kommen 4 Meldungen rein:
ClientID/Position
ClientID/maxPosition
ClientID/calcPosition
ClientID/Position_%
Anschließend nur noch:
ClientID/Spannung
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Papa Romeo

Hallo Gisbert,

die 192.178...ist nur ein Beispiel für den MQTT-Server.....in meinem scharfen System hab ich auch die 192.168......und du musst diese 178 natürlich im Sketch auf deine 168 abändern, falls noch nicht 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

lewej

Zitat von: Papa Romeo am 23 Oktober 2018, 12:05:34
Hallo Daruel,

hier mal meine Definitionen für FHEM:

DEVICE_225 (ESP01_ROLLLADEN)
define DEVICE_225 MQTT_DEVICE;
attr DEVICE_225 alias ESP01_Rollladen;
attr DEVICE_225 IODev myBroker;
attr DEVICE_225 icon temperature_humidity;
attr DEVICE_225 room ESP01;
attr DEVICE_225 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_225 subscribeReading_STATUS ESP01_225/Status;
attr DEVICE_225 subscribeReading_MAXPOS ESP01_225/maxPosition;
attr DEVICE_225 subscribeReading_POS ESP01_225/Position;
attr DEVICE_225 subscribeReading_POS% ESP01_225/Position_%;
attr DEVICE_225 subscribeReading_BATT ESP01_225/Spannung

define MQTT_DEVICE_225_Aktor MQTT_BRIDGE DEVICE_225_Aktor;
attr MQTT_DEVICE_225_Aktor IODev myBroker;
attr MQTT_DEVICE_225_Aktor event-on-change-reading .*;
attr MQTT_DEVICE_225_Aktor publishState ESP01_225/Befehl;
attr MQTT_DEVICE_225_Aktor room ESP01

define MQTT_DEVICE_225_ASensor MQTT_BRIDGE DEVICE_225_ASensor;
attr MQTT_DEVICE_225_ASensor IODev myBroker;
attr MQTT_DEVICE_225_ASensor event-on-change-reading .*;
attr MQTT_DEVICE_225_ASensor subscribeSet ESP01_225/Status;
attr MQTT_DEVICE_225_ASensor room ESP01

define MQTT_DEVICE_225_BSensor MQTT_BRIDGE DEVICE_225_BSensor;
attr MQTT_DEVICE_225_BSensor IODev myBroker;
attr MQTT_DEVICE_225_BSensor event-on-change-reading .*;
attr MQTT_DEVICE_225_BSensor subscribeSet ESP01_225/Position;
attr MQTT_DEVICE_225_BSensor room ESP01

define MQTT_DEVICE_225_CSensor MQTT_BRIDGE DEVICE_225_CSensor;
attr MQTT_DEVICE_225_CSensor IODev myBroker;
attr MQTT_DEVICE_225_CSensor event-on-change-reading .*;
attr MQTT_DEVICE_225_CSensor subscribeSet ESP01_225/Position_%;
attr MQTT_DEVICE_225_CSensor room ESP01

define MQTT_DEVICE_225_DSensor MQTT_BRIDGE DEVICE_225_DSensor;
attr MQTT_DEVICE_225_DSensor IODev myBroker;
attr MQTT_DEVICE_225_DSensor event-on-change-reading .*;
attr MQTT_DEVICE_225_DSensor subscribeSet ESP01_225/maxPosition;
attr MQTT_DEVICE_225_DSensor room ESP01

define DEVICE_225_Aktor dummy;
attr DEVICE_225_Aktor alias ESP01 Status;
attr DEVICE_225_Aktor devStateIcon Up:rc_UP off:rc_STOP on:rc_STOP  Down:rc_DOWN;
attr DEVICE_225_Aktor event-on-change-reading .*;
attr DEVICE_225_Aktor icon remotecontrol/black_btn_HOMEDroid;
attr DEVICE_225_Aktor room ESP01;
attr DEVICE_225_Aktor webCmd 0: 10: 20: 30: 40: 50: 60: 70: 80: 90: 100: Up: Stop :Down

define DEVICE_225_ASensor dummy;
attr DEVICE_225_ASensor alias ESP01 Rollo ;
attr DEVICE_225_ASensor devStateIcon schliesst:remotecontrol/black_btn_DOWN steht:remotecontrol/black_btn_STOP oeffnet:remotecontrol/black_btn_UP;
attr DEVICE_225_ASensor event-on-change-reading .*;
attr DEVICE_225_ASensor icon edit_settings;
attr DEVICE_225_ASensor room ESP01

define DEVICE_225_BSensor dummy;
attr DEVICE_225_BSensor alias ESP01 Position Absolut;
attr DEVICE_225_BSensor event-on-change-reading .*;
attr DEVICE_225_BSensor icon edit_settings;
attr DEVICE_225_BSensor room ESP01

define DEVICE_225_CSensor dummy;
attr DEVICE_225_CSensor alias ESP01 Position in %;
attr DEVICE_225_CSensor event-on-change-reading .*;
attr DEVICE_225_CSensor icon edit_settings;
attr DEVICE_225_CSensor room ESP01

define DEVICE_225_DSensor dummy;
attr DEVICE_225_DSensor alias ESP01 Position maximum;
attr DEVICE_225_DSensor event-on-change-reading .*;
attr DEVICE_225_DSensor icon edit_settings;
attr DEVICE_225_DSensor room ESP01

define DEVICE_225_AktorESP1 doif ([DEVICE_225_Aktor] eq "Stop") (set DEVICE_225_Aktor on, sleep 0.5  set DEVICE_225_Aktor off );
attr DEVICE_225_AktorESP1 do always;
attr DEVICE_225_AktorESP1 icon recycling;
attr DEVICE_225_AktorESP1 room ESP01


...nach Anlegen des letzten Define dann noch nach ,,sleep 0.5" einen Strichpunkt setzen !!!
Mach ich das beim Anlegen, meldet FHEM einen Fehler !

Hallo Papa R..,

ich versteh zwar die einzelnen Definitionen, aber Alle im zusammen nicht ganz. Warum hast du dich entschieden soviele Dummys zu verwenden? Kannst du das evtl. erläutern?

Gruß und Danke

Papa Romeo

...weil ich es so in FHEM abbilden konnte....wenn´s einfacher geht, bin für Info´s immer offen. Wie schon öfters erwähnt, Programmieren oder Definitionen erstellen ist für mich ein notwendiges Übel, aber ich lerne gerne dazu. Also tut euch keinen Zwang an und zeigt einem "alten Hasen" wie der "junge Hase" läuft".. :) ::) ;D ;D ;D ;D :D
...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

Gisbert

#97
Zitat von: Papa Romeo am 02 November 2018, 22:21:34
Hallo Gisbert,

die 192.178...ist nur ein Beispiel für den MQTT-Server.....in meinem scharfen System hab ich auch die 192.168......und du musst diese 178 natürlich im Sketch auf deine 168 abändern, falls noch nicht geschehen
Das hatte ich ja geändert, d.h. MQTT-seitig läuft der Sketch ja.
Aber die eigentliche Aufgabe läuft überhaupt nicht.

Noch 3 Gedanken:

  • Die Arduino-Umgebung, die ich zum kompilieren benutzt habe. Ist die Arduino-Version und die der Libraries entscheidend?
  • Der ESP8266-01 hat 1MB Speicher und ist ca. 2-3 Jahre alt, kann es daran liegen?
  • Ist der Anschluss des Drehschalters richtig?
Ich bin für jede Idee dankbar.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Papa Romeo

Hallo Gisbert,

Drehschalter stimmt so: Gemeinsamer in der Mitte und UP Down je auf einer Seite davon.

Das Alter des ESP dürfte keine Rolle spielen.

Frage.....ist in dem ganzen hin- und herschreiben für mich jetzt nicht mehr ganz klar.
Was hast du jetzt auf dem ESP drauf....meinen Sketch oder TASMOTA?

Zur ersten Frage kann ich dir leider nicht weiterhelfen, aber ich habe die Version 1.8.0 drauf und wenn du willst, kann ich dir meine Libraries zukommen lassen.
...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

Gisbert

Hallo Papa Romeo,

ich bin bei deinem Sketch.
Zitat von: Papa Romeo am 03 November 2018, 10:49:04
Zur ersten Frage kann ich dir leider nicht weiterhelfen, aber ich habe die Version 1.8.0 drauf und wenn du willst, kann ich dir meine Libraries zukommen lassen.
Das wäre super, wenn du mir deine Libraries zuschicken kannst; ich versuchs dann mit Arduino 1.8.0, hab derzeit 1.8.5 am Laufen.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Papa Romeo

...wundert mich das der Sketch bei dir nicht läuft....
...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

Katzechrisu

Gibt's schon eine Möglichkeit damit die einzelbedienung in Tasmota funktioniert.
Ich denke hier liegt das an den in ,,Serie" geschalteten Relais.
Ist das beim Universalschalter anders?

Gisbert

Hallo Katzechrisu,

ich bin gerade dabei den Sketch von Papa Romeo mit seinen Libraries zu testen; ich hoffe, dass ich damit Erfolg habe.
Mit Tasmota unter Zuhilfenahme von Rules konnte ich aus Tasmota heraus die Schaltung zum Laufen zu bringen, die Anordnung der Relais war nicht das Problem.
Was nicht funktioniert hat, war die Vorortbedienung.
Bald werde ich schlauer sein, wenn ich den Orginalsketch aufgespielt habe.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Gisbert

#103
Hallo Papa Romeo,

so, ich bin jetzt ein Stück weiter, aber noch nicht ganz am Ende.

Ich habe folgendes gemacht:

  • Sketch mit Arduino 1.8.0 und deinen Libraries compiliert
  • Das 2. zusammengelötete Teil benutzt; entweder hat das 1. Teil einen Macken oder ich habs falsch verdrahtet - hier muss ich noch Ursachenforschung gehen
  • Die Schaltung über den Vorortdrehschalter funktioniert tadellos und die Meldungen über MQTT kommen rein, wenn ich CLIENTID/+ horche
  • Die Fahrbefehle über MQTT funktionieren entweder (noch) nicht oder ich habe den Befehl dazu nicht verstanden
CLIENTID ist der zusammengesetzte Name aus <NAME> und <ID> in deinem Sketch.

Mein Verständnis zu den Fahrbefehlen per MQTT ist folgender, wenn ich folgendes publishe:
CLIENTID/Down - CLIENTID/Up - CLIENTID/Stop - CLIENTID/50 ...
Ist das so richtig?
Da ich bei MQTT auf CLIENTID/+ horche, und Meldungen reinkommen, muss der Part CLIENTID richtig sein.
Kannst du dazu etwas sagen?

Viele Grüße Gisbert

PS:
In einer Richtung - kann nicht genau sagen in welcher, da ich einen Testaufbau habe - leuchtet die blaue Diode am ESP8266 auf.
Soll das so sein, und welche Richtung wäre das dann?
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

lewej

#104
Hi,

Die Befehle sind anders:

Clientid/Befehl/<Down,Stop,Up>

Wichtig ist die Groß/Kleinschreibung


publishSets:
     befehl:
       topic      ESP01-001/Befehl
       values:
         Up
         Stop
         Down
     position:
       topic      ESP01-001/Befehl
       values:
         0
         10
         20
         30
         40
         50
         60
         70
         80
         90
         100
   sets:
     befehl     Up,Stop,Down
     position   0,10,20,30,40,50,60,70,80,90,100
   subscribe:
     ESP01-001/Spannung
     ESP01-001/maxPosition
     ESP01-001/Position
     ESP01-001/Position_%
     ESP01-001/Status
   subscribeExpr:
     ^ESP01-001\/Spannung$
     ^ESP01-001\/maxPosition$
     ^ESP01-001\/Position$
     ^ESP01-001\/Position_%$
     ^ESP01-001\/Status$
   subscribeQos:
     ESP01-001/Position 0
     ESP01-001/Position_% 0
     ESP01-001/Spannung 0
     ESP01-001/Status 0
     ESP01-001/maxPosition 0
   subscribeReadings:
     ESP01-001/Position:
       cmd       
       name       POS
     ESP01-001/Position_%:
       cmd       
       name       POSPROZ
     ESP01-001/Spannung:
       cmd       
       name       BATT
     ESP01-001/Status:
       cmd       
       name       STATUS
     ESP01-001/maxPosition:
       cmd       
       name       MAXPOS