WiFi Schaltuhr mit PCF8574 und 8-fach Relais

  • Ja ok, dann machen wir mal Pause ...
    Ich hab' das Archiv dr PCF_Lib anders aufgebaut (ohne Pfade) ... jetzt lässt sich die Bibliothel als ZIP ohne Fehlermeldung installieren (siehe Anhang).


    Dir auch noch ein paar angenehme und friedvolle Tage,
    -ds-

  • Hurra, PCF8574 wurde in der libraries jetzt aufgenommen. :bravo2:
    Aber jetzt meutert die Timezone.cpp.

    Edited once, last by premo ().

  • Na perfekt ... super :thumbs1:


    Jetzt würde ich mich an Deiner Stelle erst mal selbst beweihräuchern und auf den erarbeiteten Lorbeeren ausruhen ;) ...
    Ist schon immer wieder witzig, welche Zicken die IDE manchmal macht.
    Der Rest ist, denke ich, selbsterklärend.


    Ich habe das Projekt jetzt in ein eigenes Repo verschoben. Da kannst Du es immer wieder mal aktualisieren, wenn was Neues dazugekommen ist. Die URL zum Relais-Projekt ist: https://github.com/dreamshader/ESP8266_WiFi_TimerRelais.


    Die beiden Libraries habe ich ebenfalls verschoben, nach hier: https://github.com/dreamshader/dsEeprom und hier: https://github.com/dreamshader/SimpleLog.


    Na dann erst mal viel Spass damit.
    -ds-

  • Danke, werde mich dann mal da durchwurschteln.
    Zum Wochenende werden die Teile für die Platine
    wohl ankommen damit ich testen kann.
    Wenn Bedarf besteht würde ich dir eine Zukommen lassen.
    Entweder direkt auf der 8fach Relaiskarte steckbar
    oder eine Externe.

  • Hallo dreamshader
    :thumbs1: für die super Arbeit.
    Konnte die Platine fertigstellen und erste Test sehen gut aus.
    Zeitsteuerung mit 2 Zeiten geht super.
    Was ich aber bemerkt habe, es lassen sich nur Relais 2-5 und 8 schalten.
    Relais 1 und 6,7 reagieren nicht.
    Manuelles Schalten mit Ein/Aus geht nur wenn ich z.b. "Ein" markiere und dann
    auf speichern drücke. "Aus" schalten geht auch nur mit speichern.

  • Servus premo,
    nur kurz, weil ich gerade Deine Frage gesehen habe:
    Klar musst Du auf Speichern drücken ... das läuft ja über einen Webserver (auf dem ESP) und der bekommt ja Ein/Aus nicht mit, wenn Du die Seite nicht abschickst ...
    Dasselbe gilt für die Zeiten resp. Ausgänge: Du musst sie aktivieren (Zeit1/Zeit2 und wieder abschicken) wenn sie schalten sollen ...


    Du kannst das auch per z.B. javascript, ajax, k.A. lösen ... und/oder die Web-API nutzen ... aber das musst Du dann selber einbauen.


    Und danke für das Angebot mit der Platine ... aber ich hab' hier noch ein Board von meinem Bruder rumliegen und ehrlich gesagt keine Verwendung für die ganzen Schalter ... ;)


    Guten Rutsch,
    ich mach' mich dann mal wieder vom Acker,
    -ds-

  • Code
    Was ich aber bemerkt habe, es lassen sich nur Relais 2-5 und 8 schalten.
    
    
    Relais 1 und 6,7 reagieren nicht.


    Fehler lag bei mir, mit einer anderen Platine funtzt es. :)


    Da auf dem geliefertem PCF8577 Modul die Stecker schon verlötet
    und ich diese wieder demontieren musste wurden feinste Leiterbahnen
    beschädigt. Jetzt lüppt dat.
    Das mit dem einbinden der Wep Api wird meinerseits nicht klappen. :blush:
    Warte noch bis du auf die Beine gestellt hast. :shy:


    Wenn Interesse besteht setze ich gerne die Layouts der Platinen hier rein.

    Edited once, last by premo ().

  • hallo dreamshader
    Da ich im SHC Forum aktiv bin, möchte ich fragen ob ich dein Equipment
    "WiFi Schaltuhr mit PCF8574 und 8-fach Relais" dort vorstellen darf.
    Bis auf die Webapi läuft alles super.

  • Tja ... Endspurt ...
    Die erste Version der Web-API ist jetzt mal implementiert.
    Damit kann das ESP-Modul auch über z.B. curl gesteuert bzw. mit Daten versorgt werden.
    Dabei sind alle Datenfelder über diese API änderbar oder können gelesen werden.


    Der Aufruf erfolgt über http und beginnt mit der IP (oder dem Namen) des ESP-Moduls gefolgt vom Verzeichnis "api" und einem Fragezeichen, mit dem die Parameter-Liste (Query-String) eingeleitet wird:

    Code
    http://111.222.333.444:8080/api?


    Mögliche Parameter sind:

    Code
    update
    apikey


    Diese beiden Angaben sind die einzigen, die sich nicht auf einen bestimmten Port beziehen.

    Code
    http://111.222.333.444:8080/api?update


    stösst einen Update der Firmware an. Es nach dem im Modul eingestellten Update-File gesucht. Der Im Gegensatz dazu wird beim Aufruf von:

    Code
    http://111.222.333.444:8080/api?update=http://555.666.777.888:9999:/hier/steht/der/Update.bin


    direkt das angegebene File als Firmware geladen.
    Die Angabe apikey ist im Moment nur zu Testzwecken implementiert ... dieser Wert soll später genutzt werden, um eine einfache Authorisierung durchzuführen.
    Mit

    Code
    http://111.222.333.444:8080/api?apikey=


    kann der api-key des ESP angefordert werden. Der besteht derzeit aus einem SHA1-Hash über die MAC-Adresse und ist so reproduzierbar.


    Alle weiteren Aufrufe benötigen immer den Port-Parameter. Er gibt an, auf welche Zeile der Tabelle auf welchen Ausgang sich der Aufruf bezieht.
    Abfragen von Daten werden aufgerufen, indem die zu den übergebenen Schlüsselworten gehörenden Parameter leer bleiben. Der Parameter bleibt zwar leer, aber das =-Zeichen ist trotzdem notwendig. Um z.B. den Modus (ON/OFF/AUTO) des ersten Ausgangs/Ports abzufragen also:

    Code
    http://111.222.333.444:8080/api?port=1&mode=


    Nach diesem Schema können alle Werte der Tabelle abgefragt werden. Kennzeichen ist immer der leere Parameter:

    Code
    http://111.222.333.444:8080/api?port=1&from1=
    http://111.222.333.444:8080/api?port=1&to1=
    http://111.222.333.444:8080/api?port=1&time1=
    http://111.222.333.444:8080/api?port=1&from2=
    http://111.222.333.444:8080/api?port=1&to2=
    http://111.222.333.444:8080/api?port=1&time2=
    http://111.222.333.444:8080/api?port=1&ext1=
    http://111.222.333.444:8080/api?port=1&ext2=


    Um Werte zu setzen bzw. zu ändern wird der entsprechende Wert übergeben:

    Code
    http://111.222.333.444:8080/api?port=1&mode=auto
    http://111.222.333.444:8080/api?port=1&from1=11:23
    http://111.222.333.444:8080/api?port=1&to1=12:45
    http://111.222.333.444:8080/api?port=1&time1=enable
    http://111.222.333.444:8080/api?port=1&from2=13:55
    http://111.222.333.444:8080/api?port=1&to2=15:10
    http://111.222.333.444:8080/api?port=1&time2=enable
    http://111.222.333.444:8080/api?port=1&ext1=enable
    http://111.222.333.444:8080/api?port=1&ext2=disable


    Die Werte können natürlich kombiniert werden:

    Code
    http://111.222.333.444:8080/api?port=1&mode=auto&from1=&to1=&time1=disable


    Die Angabe des API-key ist derzeit (noch) nicht nötig.


    Hinzugekommen sind mittlerweile auch die beiden Flags EXT1 und EXT2 ...
    Dazu hat das ESP-Modul einen UDP-Client bekommen, der auf einer multicast-Adresse horcht.
    Per Multicast kann jetzt von einem anderen Rechner ( ESP, Lapstop, PC, ... ) der entsprechende Aufruf geschickt werden und wird von allen ESPs die online sind, empfangen ...


    Damit wäre das Teil jetzt einsatzbereit und auch durchgetestet.
    Das Repo auf github wurde von mir verlagert ... ich habe dem Projekt ein eigenes Repo spendiert, das ihr -> hier finden könnt <- ...


    Die Doku auf github wird jetzt noch ein wenig aufgepeppt und auch auf -> meiner Projektpage <- wird die Beschreibung noch vervollständigt.


    Na dann viel Spass damit, und wie immer: Kritik und Anregungen werden gerne angenommen.


    -ds-

  • Hallo dreamshader


    Das bedienen über die Home.htm kann ich mit
    http://192.168.178.xx:8080/ ausführen.


    Da jetzt auch über die Webapi möglich ist, aber
    ein Zugriff mit http://192.168.178.xx:8080/api?
    bei mir nicht funktioniert.
    Bei aufrufen der Curl erscheint nur ein graues
    Fenster mit den Hinweis apiPage .
    Bei 8080/apiupdate kommt Not found: /apiupdate


    Wrd bei mir wohl sicherlich ein Bedienungsfehler sein :s

    Edited once, last by premo ().

  • Na der versucht halt nen Firmware-Update per OTA zu machen.
    Hast Du denn eine aktualisiert Firmware (firmware.binX)?
    Und hast Du das marker-File angelegt?
    Du musst ausserdem im sketch:

    Code
    #define DEFAULT_UPDATE_URL              "http://192.168.1.122/ESP8266/"


    auf den passenden Wert setzen.
    Das ist aber alles auch -> hier <- beschrieben.


    cu,
    -ds-

  • Hi dreamshader,


    Lange hat es gedauert und die Teile liegen schon eine Weile rum. Jetzt möchte ich dieses Projekt endlich mal nachbauen. Du hast in deinem Eingangspost zwei Elkos erwähnt, die benötigt werden. In dem Schaltplan auf der verlinkten Seite sehe ich aber nur einen mit der Beschreibung "100u". Dabei nehme ich mal an es handelt sich um einen 100 mycroF Elko. Du gibst aber an es wird ein 47 mycroF und ein 1200 mycroF Elko benötigt werden. Kannst Du mir erklären wie das zusammen passt? Muss ich irgendetwas anpassen? Stehe ein wenig auf dem Schlauch und möchte ungerne etwas zerlegen, wenn ich loslege. Vor allem der 1200er ist ja deutlich größer als der in der Schaltung vorgeschlagene.

  • wenn ich den Schaltplan richtig deute ist der 47 uF für die Eingangsseite von V1 (Pin 1 und 2)

    und dein 1200uF ist der C1.

    cu C-3po

  • Servus BallerNacken ,

    Du hast Ideen ... nach einem Jahr soll ich noch wissen, welcher Elko für was vorgesehen war? :rofl:


    Nein, ernsthaft ... ich hatte da eine Platine von meinem Bruder bekommen. Ich weiss gar nicht, ob bzw. wo da eine Schaltplan exisitert.

    C-3po : auf welche Schalte beziehst Du Dich?

    Also bei 47 µF muss ich spontan an Block-/Filter-Kondensator denken ...


    cu,

    -ds-