Mit Folientastatur (Matrix) Tasmota Geräte schalten

  • So, das Ganze war jetzt doch ein bissl komplexer als am Anfang Gedacht.

    Hab Dir eine neue zip angehängt.

    Die lib uMQTTBroker, brauchst nicht mehr, am besten wieder löschen.

    Dafür jetzt die lib esp-mqtt-arduino in den lib Ordner.

    Als Plattform kann jetzt auch 2.3.0 verwendet werden. (empfohlen)

    Die Matrix_3x4 ist überarbeitet und sollte jetzt mqtt Befehle bei Tastendruck senden:

    stat/<TOPIC>/KEY [1...9*#]

    Weil ich eben keine Tastatur zum testen habe, habe ich auch eine MQTT Empfang eingebaut.

    Mit

    cmnd/<TOPIC>/KEY [1...9*#]

    können jetzt die hinterlegten http Befehle auch per MQTT ausgelöst werden.

    Teste einfach mal ob alles geht ;)


    EDIT:

    noch ne kleiner Änderung in der ino vorgenommen...

  • Habe jetzt mal die neue Version hochgeladen. In IOBroker sieht es jetzt so aus

    dass wenn ich Key 1 drücke dann unter stat/MATRIX/KEY der Wert 1 in Grün erscheint.

    Bei Key 2 die 2 usw.
    In der Seriellen Ausgabe werden die einzelnen Key Werte wie gehabt angezeigt.

    Jetzt müsste ich nur noch wissen wie ich die Datenpunkte von zb. Key1 an Gerät1

    senden muss.

    Habe mal ein einfaches Blockly erstellt womit ich zb. Gerät 1 das Gerät 2 mit AN/AUS

    schalten kann. Mit Datenpunkt stat/MATRIX/KEY 1 funktioniert es nicht.

  • Wenn in der Zeile für Key 1

    char KEY_1[] = "http://192.168.1.82/cgi-bin/query.sh?3";

    ändere auf die IP vom Gerät

    char KEY_1[] = "http://192.168.178.15/cm?user=admin&password=joker&cmnd=Power%20Toggle";

    dann schaltet das Gerät wie gewünscht.

  • Ja, das waren die Testlinks die ich eingetragen hatte. Die müssen natürlich auf die benötigten geändert werden...

    Puh, wie die in IoBroker zu verarbeiten sind .... ??

    Es wäre aber auch möglich die MQTT Messages so aussehen zu lassen:

    Code
    stat/MATRIX/KEY1 1
    stat/MATRIX/KEY2 1
    stat/MATRIX/KEY3 1

    usw. Ich schätze dann hast du für jeden Key nen Datenpunkt den du abrufen kannst.

    Wird halt nie ne Nullmeldung kommen ... wenn dir das was nutzt, das wäre kein Problem

    EDIT:

    Es ließe sich auch mit einem Delay, sagen wir eine Sekunde, nach senden der "1" auch eine "0" senden.... dann hättest du einen Auslöstrigger ... immer wenn 1 dann ...

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    Einmal editiert, zuletzt von HoerMirAuf (7. Dezember 2018 um 16:00)

  • Versuchs mal damit.

    einfach die .txt in .ino umbennenen

  • Mann, Mann, Mann ... wenn man nicht aufpasst! Sollte eigentlich schon drin sein mit 1 und null.

    Aber der Fehlerteufel war wieder mal mit von der Partie.

    Neuer Anhang hier der Matrix_3x4.

    Ebenso die Config, Da kannst Du jetzt denn zu sendenden Wert selbst einstellen.

    Ob, 1 und 0 oder false und true etc.

    Ebenso den Delay wann nach dem true, der false wert gesendet werden soll

    Bitte wieder umbenennen.

    EDIT:

    Weils Probleme gab eine MQTT stat/<TOPIC>/KEY# zu senden (# ist ja bei MQTT eine Wildcard)

    Hab ich die durch #=A und *=B ersetzt.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    4 Mal editiert, zuletzt von HoerMirAuf (8. Dezember 2018 um 17:10)

  • Sieht jetzt ganz anders aus. :thumbup:Als Wert wird nun false/true oder 1/0 je nachdem was in der config

    gesetzt wurde. Nur wenn im Blockly der Datenpunkt vom Key 1 genommen wird, dann schaltet

    das gewünschte Gerät bei drücken des Key 1 kurz AN und geht wieder AUS.

    Das Gerät was mit char KEY_1[] = "http://192.168.178.15/cm?user=admin&password=joker&cmnd=Power%20Toggle"; schaltet einwandfrei.

  • Ok...

    Dann sollte es so gehen:

    In der Conig läßt sich jetzt einstellen ob du eine Tastfunktion willst:

    also ein, nach zeit aus oder eben nur immer den ein gesendet bekommen möchtest:

    Du brauchst aber ein Blockly:

    Wenn 1 gesendet und Sonoff an, dann aus

    Wenn 1 gesendet und Sonoff aus, dann an

    EDIT:

    Wenn über Delay ein false gesendet wird, Dann darf eben nur der true Wert im iobroker ausgewertet bzw. verwendet werden. Ich weiß nicht wie iobroker das macht. könnte sein das ein true wert gar nicht ausgwertet wird, wenn der zuletzt schon anstand, Deshalt der Delay mit false.

    EDIT2:
    Ich arbeite leider nicht mit IOBroker, evtl als value nicht "true" sondern "toggle" nehmen?

    EDIT3:

    Oh ...ich hab gerade gesehen das die Matrix_3x4 ebenfalls die Config war... jetzt ist es das richtige File.

  • So, habe mal ein anderes Blockly erstellt.

    Da ja der Datenpunkt von zb. Key 1 eine Tasterfunktion hat schaltet das Gerät

    mit dem Blockly zwar dauerhaft AN und bleibt wie gewünscht AN.

    Wie müsste jetzt es jetzt aussehen dass wenn ich erneut den Key 1 drücke

    dass das Gerät wieder ausschaltet.

    Mit den Blockly kann ich zwar wieder ausschalten wenn der Wert auf unwahr

    abgeändert ist und Key 1 gedrückt wird.

  • Wie bereits erwähnt, kann ich dir bei iobroker nicht wirklich weiterhelfen da ich nicht damit arbeite.

    Aber ich vermute mal irgendwas wie:

    Trigger: "wurde aktualisiert", anstatt "geändert" im Trigger, anerkannt ist "wahr".

    (Sonst bräuchtest du wieder den "false" Impuls über einen Delay weil sich der Zustand ja ohne nie ändert)


    Und als Ausführung nicht steuere sondern "umschalten"

    Ein "Falls" Objekt ist meiner Meinung nach nicht nötig.

    Dann sollte eigentlich bei jedem "true" impuls getoggelt werden

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Na also !! Cool !!

    :thumbup::)

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Hallo HoerMirAuf

    Danke für deine grosse Hilfe, jetzt funktioniert es.

    Mal sehen wer damit etwas schalten und walten

    möchte. Ich werde mir damit eine Statusüberwachung

    erstellen. Wenn alles soweit fertig ist dann stelle ich

    dieses mal vor.

  • Respekt !

    Schaut richtig gut aus :thumbup::thumbup:

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Hallo,

    als erstes tolle Arbeit läuft super!!

    Währe es möglich GPIO 16 als output zu schalten über einen http befehl?

    RX für einen seriellen RFID Reader währe auch noch so eine Idee :-))

    :thumbup::thumbup: