Schaltserver ESP8266 mit RCSwitch

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Habe festgestellt das folgendes im Skript fehlt.

      Quellcode

      1. //433MHz Befehl senden Typ 1
      2. //(Typ[0]:Hauscode[1]:Geraetecode[2]:Befehl[3]) + Leerzeichen am Ende
      3. int command = pieces[3].toInt();
      4. char homeCode[6];
      5. pieces[1].toCharArray(homeCode, 6);
      6. int deviceCode = pieces[2].toInt();
      7. int continues = pieces[4].toInt();
      8. if(command == 1) {
      9. //Einschaltbefehl senden
      10. for(int i = 0; i < continues; i++) {
      11. rcSwitch.switchOn(homeCode, deviceCode);
      12. delay(100);
      13. }
      14. } else {
      15. //Ausschaltbefehl senden
      16. for(int i = 0; i < continues; i++) {
      17. rcSwitch.switchOff(homeCode, deviceCode);
      18. delay(100);
      19. }
      20. }
      21. //Debug Ausgabe
      22. if(SERIAL_DEBUG) {
      23. Serial.print("send ");
      24. Serial.print(homeCode);
      25. Serial.print(" ");
      26. Serial.print(deviceCode);
      27. Serial.print(" ");
      28. Serial.print(command);
      29. Serial.print(" -> ");
      30. Serial.print(continues);
      31. Serial.println("x gesendet");
      32. }
      33. } else if(type == 2) {
      Alles anzeigen
      Hab es mal im Skript an der Stelle eingesetzt aber es funktioniert nicht richtig.
      Wenn ich jetzt eine Funksteckdose oder einen Ausgang schalte dann wird sporadisch
      zwischen den Abfragen der DHT Werte der Schaltzustand angezeigt.
      Auch steigt der Schaltserver aus wenn ein Ausgang geschaltet wird.
      Anbei mal das geänderte Skript.
      Dateien
    • Da ich so gut wie keine Ahnung habe wie ein Skript verändert wird
      habe ich es trotzdem gewagt.
      Durch einfügen der fehlenden Zeilen und grobes ändern der delay Zeiten
      kann ich jetzt Elemente und Ausgänge schalten.
      Nur Eingänge machen Probleme. Auch werden die Werte des DHT
      an SHC gesendet aber sekündlich abgerufen.
      Ein Auszug des ser. Monitor sieht so aus.
      Unbenannt5.JPG
      Dateien
      • Test.txt

        (10,66 kB, 2 mal heruntergeladen, zuletzt: )
    • So, habe jetzt nochmal das Skript verändert.
      Anbei das aktuelle Skript und die Delay Änderungen.

      Funksteckdosen/Ausgänge/Eingänge und das Senden
      des 433mHz Sender funktionieren im Testaufbau .
      Nur das senden der DHT Werte an SHC geht mir zu schnell
      ca. sekündlich wird gesendet. Eigentlich reicht es so wie von
      jannek erstellt auf ca. 1 Minute.
      Für das Senden der DHT Werte an SHC ist delay (60000)
      zuständlich. Aber bei setzen dieser Zeit dauert das Schalten der
      Elemente erheblich länger oder es wird irgend wann geschaltet.
      Jetzt mit delay (100) schaltet es in Sekunden Bereich.
      Dateien
    • das ist ja auch Klar da der 60 Sekunden wartet bis der das DHT script durch läut. ich werde mal etwas umschreiben damit es geht. schick es dir gleich zurück..

      Ich habe nun eine Time Programm hinzugefügt was alle 100MS zwischen den Schaltserver abläuft so das wir die zeit überbrücken bis zum erneuten senden von DHT.. aber in der Zwischenzeit sollte der Schaltserver schneller reagieren.

      Spoiler anzeigen

      Quellcode

      1. in der MITTE hinzugefügt:
      2. void loop() {
      3. schaltserver();
      4. time();
      5. schaltserver();
      6. time();
      7. schaltserver();
      8. time();
      9. schaltserver();
      10. time();
      11. schaltserver();
      12. time();
      13. schaltserver();
      14. time();
      15. schaltserver();
      16. time();
      17. schaltserver();
      18. time();
      19. schaltserver();
      20. time();
      21. schaltserver();
      22. time();
      23. schaltserver();
      24. time();
      25. schaltserver();
      26. time();
      27. schaltserver();
      28. time();
      29. schaltserver();
      30. time();
      31. schaltserver();
      32. time();
      33. schaltserver();
      34. time();
      35. schaltserver();
      36. time();
      37. schaltserver();
      38. time();
      39. schaltserver();
      40. time();
      41. schaltserver();
      42. time();
      43. sensor();
      44. }
      45. An ENDE eingefügt :
      46. void time()
      47. {
      48. delay(100);
      49. }
      Alles anzeigen


      Bitte teste das Script mal. PS Wlan daten immer schön entfernen....
      Dateien
      • Test2.txt

        (11,17 kB, 3 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von jannek ()

    • Habe mal getestet aber leider keine Veränderung.
      Bei delay (60000) 60 Sek. dauert das Schalten und
      reagieren auf Eingänge 60 Sek. oder irgend wann.
      Ab delay (5000) oder weniger könnte man mit
      Leben. Aber für Eingänge um Reedkontakte zu nutzen
      um zb. Fenster/Türen Überwachung eigentlich zulange.
    • so, delay 60000 entfernt.
      Sieht jetzt viel besser aus. Schaltzeiten OK und lesen der Eingänge auch.
      Nur das senden der DHT Werte an SHC war noch in Sekundentakt.
      Habe darauf mal die delay100 am Ende verändert.
      Bei delay1000 werden die Werte an SHC alle 20sek gesendet.
      bei delay1500 30sek, delay2000 40sek

      Am Nodemcu Devkit habe ich mal für die Eingänge die Gpio ausprobiert.
      Gpio 1/2/8/9/10 nicht OK, das Skript läuft unsauber und es werden wirre
      Zeichen angezeigt. Ebenfalls steigt der Sheduler aus.
      Gpio 4/14/15/16 sind OK.

      Die übrigen Gpio sind bei mir so belegt.
      Gpio3 433mHz Sender
      Gpio5 Status Led
      Gpio12 Relais
      Gpio13 DHT22

      Serielle Ausgabe sieht jetzt so aus.
      Unbenannt6.JPG

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von premo ()