Sonoff Basic Tasmota als Garagenöffner

  • Hallo Marco73

    hier meine config.json


    {

    "bridge":{

    "name":"Homebridge",

    "username":"CC:22:3D:E3:CE:30",

    "port":51826,

    "pin":"031-45-154"

    },

    "platforms":[


    ],

    "accessories":[

    {

    "accessory":"CommandGarageDoor",

    "name":"Hofeinfahrt",

    "command":"echo '$USER'",

    "simulateTimeOpening":3,

    "simulateTimeOpen":5,

    "simulateTimeClosing":2,

    "manufacturer":"selfmade",

    "model":"model x",

    "serialnumber":"y"

    }

    ]

    Ich bekomme es nicht in der Homekit App angezeigt.

    Die Homebridge ist aber da.

  • Teil 1


    So kann fröhlich verkünden das mein Garagentoröffner funktioniert. Alles schön mit 2 Reedkontakten für Status offen und geschlossen. Hier erstmal ein großes Dankeschön an jannnfe von https://github.com/jannnfe/homebridge-ESP8266-pojects/wiki der mir sehr dabei geholfen hat. Ohne ihn hätte ich das nicht geschafft. Als Hardware kommt zum Einsatz:


    1 x Sonoff Basic mit Tasmota Firmware

    1 x Wemos D1 mini mit Espeasy Firmware

    2 x Reedkontakte eurer Wahl



    forum.smartapfel.de/attachment/1828/

    forum.smartapfel.de/attachment/1829/


    Als Software nutzen wir auf dem Raspberry :

    Homebridge (was sonst)

    Mosquitto als Mqtt-Broker

    Node-Red (Damit das nachher auch alles schön funktioniert)

    Das Homebridge Plugin : https://github.com/cflurin/homebridge-mqtt


    Eine Installationsanleitung für Mosquitto gibt es hier : https://mosquitto.org/blog/201…quitto-debian-repository/


    Für Node-Red hier : https://github.com/codmpm/node…tion-RPi,-node-red,-nodes


    Achtet darauf das Mosquitto und Node-Red als Systemdienst installiert werden. Damit beide Systeme bei einem Neustart von eurem Raspberry wieder mitlaufen.



    So dann fangen wir mal an :)









    Als allererstes müssen wir den Sonoff natürlich potenzialfrei bekommen.

    In dem folgenden Bild mit den gelben Linien müssen wir eine Unterbrechung herstellen, mindestens 4 mm auf beiden Seiten. Da wo die rote Linie im Bild zusehen ist, müssen wir eine Brücke löten.forum.smartapfel.de/attachment/1830/

    forum.smartapfel.de/attachment/1831/


    Ist das soweit erledigt, sollte man zur Sicherheit am Ausgang messen, ob bei geschalteten Sonoff auch keine Spannung mehr anliegt. Als Nächstes stellt man in der Konsole vom Tasmota die Puls Time ein, und zwar auf den wert 10.forum.smartapfel.de/attachment/1833/


    Damit schaltet der Sonoff nur für 1 Sekunde so wie wir es brauchen.


    Wir müssen jetzt nur noch in den Einstellungen von Tasmota Mqtt aktivierten und für die Topics einen Namen vergeben, das brauchen wir später für Node-Red und unserem Mqtt-Broker.forum.smartapfel.de/attachment/1837/forum.smartapfel.de/attachment/1836/


    Soweit wären wir mit dem Sonoff Basic fertig, bis auf eine Sache noch :).

    Es müssen noch 2 Pins an dem Sonoff gelötet werden, damit der Wemos D1 mini später mit Strom versorgt werden kann. Das hat den Vorteil das wir uns ein USB Netzteil sparen und den Wemos mit Strom versorgen können. Am nächsten Bild könnt ihr sehen, wo die Pins angelötet werden müssen.



    Wie ihr sehen könnt, kann man am Sonoff 3.3V und GND abgreifen. Das reicht für unseren Wemos auch völlig aus. Lötet also bitte dort die Pins an.

    Hiermit wäre der Sonoff erstmal fertig.


    Kommen wir nun zu unserem Wemos D1 mini

    Der Wemos muss natürlich auch erstmal vorbereitet werden, dazu laden wir uns die Firmware von Espeasy runter, und zwar hier : https://github.com/letscontrolit/ESPEasy/releases

    Die letzte Version herunterladen als Zip-Datei. Danach auf eurem PC entpacken und euren Wemos mit einen USB Mini Kabel verbinden.

    Den entpackten Ordner öffnen und FlashESP8266.exe ausführen

    Es öffnet sich dann das Flash-Tool

    Hier wie im Bild zu sehen COM-Port und bin Datei auswählen.


    Danach nur noch unten auf Flash und warten bis der Vorgang fertig ist.

    Ist ESPeasy installiert, müsst ihr in eure Wi-Fi Verbindungen schauen. Es müsste ein weiteres WLAN auftauchen das mit ESP_0 angezeigt wird.





    Verbindet euch mit diesem Wi-Fi und ihr werdet automatisch über euren Browser auf die ESPeasy Weboberfläche geleitet. Der Netzwerkschlüssel lautet configesp. Hat man sich erfolgreich verbunden öffnet sich beim öffnen des Internet-Browsers die Konfigurationsseite von ESP Easy. Auf der Konfigurationsseite kann man nun damit beginnen, den Chip mit seinem eigenen WLAN-Netz zu verbinden.


    Nach Drücken von Connect dauert es ein paar Sekunden und ESPeasy startet neu.



    Anschließend kann man sich wieder mit seinem eigene WLAN verbinden. Der ESP-Chip bekommt nun vom Router seine eigene IP-Adresse. Diese benötigt man, um auf die Konfigurationsseite von ESP Easy zu kommen. Durch Eingabe der IP-Adresse im Internetbrowser gelangt man auf die Konfigurationsseite.


    Unter Config einen Namen Vergeben am besten (GaragentorSensor)



    Geht nun auf Controllers, um euren Mqtt-Broker einzurichten.


    Weiter geht es dann in Teil 2

  • Teil 2


    Jetzt müssen wir unter Devices unsere Reedkontakte konfigurieren. Also geht auf Edit für Sensor1, das gleiche machen wir dann auch für Sensor2.

    Bitte alles so eintragen wie auf dem Bild beschrieben.

    Danach abspeichern und den 2 Sensor konfigirieren.



    Abspeichern und fertig

    Unter Tools Advanced setzten wir noch den Haken bei NTP


    Somit ist unser Wemos fertig konfiguriert.


    Als Nächstes könnt ihr schon das Hombridge Plugin instalieren.

    Die Konfiguration sieht dann so aus.


    "platform": "mqtt",

    "name": "MQTT Bridge", ( Name könnt ihr so übernehmen )

    "url": "mqtt://192.168.178.00", ( Hier eure Mqqt-Broker Adresse rein )

    "topic_type": "multiple",

    "topic_prefix": "homebridge",

    "username": "", ( Falls ein Username vergeben wurde hier eintragen)

    "password": "" ( Und hier das Passwort, falls vergeben )


    Alles weitere so lassen.


    Kommen wir jetzt zu Node-RedMeldet euch auf die Weboberläche von Node-Red an.

    Das sieht dann so aus.




    Als Nächstes gehen wir auf Import damit wir den fertigen Flow importieren können.


    Importieren wollen wir über Clipboard.



    Kopiert diesen Code.

    Code
    [{"id":"17f5027e.f7380e","type":"inject","z":"376a0137.0dad2e","name":"ADD Garagentor","topic":"","payload":"{\"name\": \"Garagentor\", \"service_name\": \"Garagentor\", \"service\": \"GarageDoorOpener\", \"manufacturer\": \"ITEAD Sonoff\", \"model\": \"1 Channel\", \"serialnumber\": \"192.168.178.16\", \"firmwarerevision\": \"5.10.0\"}","payloadType":"str","repeat":"","crontab":"","once":false,"x":120,"y":180,"wires":[["ff6a8598.1d579"]]},{"id":"8bb6037b.0e457","type":"mqtt in","z":"376a0137.0dad2e","name":"GET Homebridge","topic":"homebridge/#","qos":"2","broker":"217e1468.8470e4","x":100,"y":80,"wires":[["32baf861.6a012"]]},{"id":"32baf861.6a012","type":"debug","z":"376a0137.0dad2e","name":"","active":true,"console":"false","complete":"false","x":310,"y":80,"wires":[]},{"id":"f2bffea8.55d2c8","type":"comment","z":"376a0137.0dad2e","name":"MQTT Homebridge Messages","info":"","x":140,"y":40,"wires":[]},{"id":"ed547d63.21aba","type":"comment","z":"376a0137.0dad2e","name":"Add Device","info":"","x":90,"y":140,"wires":[]},{"id":"470afc85.859834","type":"comment","z":"376a0137.0dad2e","name":"Program","info":"","x":80,"y":220,"wires":[]},{"id":"4a3d462a.b3a81","type":"mqtt out","z":"376a0137.0dad2e","name":"Output","topic":"homebridge/to/get","qos":"","retain":"","broker":"217e1468.8470e4","x":770,"y":80,"wires":[]},{"id":"40582e99.39c728","type":"inject","z":"376a0137.0dad2e","name":"Display all","topic":"","payload":"{\"name\": \"*\"}","payloadType":"str","repeat":"","crontab":"","once":false,"x":580,"y":80,"wires":[["4a3d462a.b3a81"]]},{"id":"e2398979.c47ff","type":"comment","z":"376a0137.0dad2e","name":"Display all accessories","info":"","x":600,"y":40,"wires":[]},{"id":"914f362b.bd0d78","type":"inject","z":"376a0137.0dad2e","name":"DEL Garagentor","topic":"","payload":"{\"name\": \"Garagentor\"}","payloadType":"str","repeat":"","crontab":"","once":false,"x":600,"y":180,"wires":[["6dc50e2c.fd163"]]},{"id":"f2735407.d5c69","type":"comment","z":"376a0137.0dad2e","name":"Delete Device","info":"","x":570,"y":140,"wires":[]},{"id":"6dc50e2c.fd163","type":"mqtt out","z":"376a0137.0dad2e","name":"Löschen","topic":"homebridge/to/remove","qos":"","retain":"","broker":"217e1468.8470e4","x":820,"y":180,"wires":[]},{"id":"8033cde7.ac1aa","type":"mqtt in","z":"376a0137.0dad2e","name":"GET SensorClosed","topic":"GaragentorSensor/Sensor1/State","qos":"2","broker":"217e1468.8470e4","x":110,"y":360,"wires":[["817806b1.a2b298"]]},{"id":"f99cd022.028df8","type":"mqtt out","z":"376a0137.0dad2e","name":"SET Sonoff","topic":"cmnd/Garagentor/POWER","qos":"","retain":"","broker":"217e1468.8470e4","x":810,"y":480,"wires":[]},{"id":"8d173eb2.b404e","type":"mqtt out","z":"376a0137.0dad2e","name":"SET Homebridge","topic":"homebridge/to/set","qos":"","retain":"","broker":"217e1468.8470e4","x":910,"y":340,"wires":[]},{"id":"60f5d7f9.c6b27","type":"mqtt in","z":"376a0137.0dad2e","name":"GET Homebridge","topic":"homebridge/from/set","qos":"2","broker":"217e1468.8470e4","x":100,"y":480,"wires":[["7c55322c.6f08e4"]]},{"id":"baddc3b0.a6375","type":"template","z":"376a0137.0dad2e","name":"TargetDoorState","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"name\":\"Garagentor\",\"characteristic\":\"TargetDoorState\",\"value\": {{payload}}}","output":"str","x":570,"y":340,"wires":[["8d173eb2.b404e"]]},{"id":"745331d4.4c3628","type":"template","z":"376a0137.0dad2e","name":"CurrentDoorState","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"name\":\"Garagentor\",\"characteristic\":\"CurrentDoorState\",\"value\": {{payload}}}","output":"str","x":610,"y":260,"wires":[["8d173eb2.b404e"]]},{"id":"817806b1.a2b298","type":"switch","z":"376a0137.0dad2e","name":"ON/OFF","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"},{"t":"eq","v":"1","vt":"str"}],"checkall":"false","outputs":2,"x":300,"y":360,"wires":[["baddc3b0.a6375"],["baddc3b0.a6375","3a95c3c.790f83c","ddf6c3b5.5df8c"]]},{"id":"213f476a.18b7d","type":"change","z":"376a0137.0dad2e","name":"0=Opend","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":260,"wires":[["745331d4.4c3628"]]},{"id":"3a95c3c.790f83c","type":"change","z":"376a0137.0dad2e","name":"1=Closed","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":480,"y":380,"wires":[["2dde7618.a3504a"]]},{"id":"2dde7618.a3504a","type":"template","z":"376a0137.0dad2e","name":"CurrentDoorState","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"name\":\"Garagentor\",\"characteristic\":\"CurrentDoorState\",\"value\": {{payload}}}","output":"str","x":690,"y":380,"wires":[["8d173eb2.b404e"]]},{"id":"9f81a99.e7311d8","type":"template","z":"376a0137.0dad2e","name":"0=ON","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"ON","output":"str","x":650,"y":460,"wires":[["f99cd022.028df8"]]},{"id":"ef4f47bc.45904","type":"switch","z":"376a0137.0dad2e","name":"ON/OFF","property":"payload.value","propertyType":"msg","rules":[{"t":"eq","v":"0","vt":"str"},{"t":"eq","v":"1","vt":"str"}],"checkall":"false","outputs":2,"x":480,"y":480,"wires":[["9f81a99.e7311d8"],["ac8d3e27.e089b8"]]},{"id":"7c55322c.6f08e4","type":"json","z":"376a0137.0dad2e","name":"Object to JSON","pretty":true,"x":300,"y":480,"wires":[["ef4f47bc.45904"]]},{"id":"ac8d3e27.e089b8","type":"template","z":"376a0137.0dad2e","name":"1=ON","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"ON","output":"str","x":650,"y":500,"wires":[["f99cd022.028df8"]]},{"id":"2650eba2.ed1574","type":"mqtt in","z":"376a0137.0dad2e","name":"GET SensorOpen","topic":"GaragentorSensor/Sensor2/State","qos":"2","broker":"217e1468.8470e4","x":190,"y":280,"wires":[["213f476a.18b7d","d3eb4ed4.f3b4d"]]},{"id":"ff6a8598.1d579","type":"mqtt out","z":"376a0137.0dad2e","name":"Hinzufügen","topic":"homebridge/to/add","qos":"","retain":"","broker":"217e1468.8470e4","x":350,"y":180,"wires":[]},{"id":"97d29c22.723268","type":"template","z":"376a0137.0dad2e","name":"ContactSensorState","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"name\":\"Garagentor\",\"characteristic\":\"ContactSensorState\",\"value\": {{payload}}}","output":"str","x":620,"y":300,"wires":[["8d173eb2.b404e"]]},{"id":"7d44130f.3a280c","type":"template","z":"376a0137.0dad2e","name":"ContactSensorState","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"{\"name\":\"Garagentor\",\"characteristic\":\"ContactSensorState\",\"value\": {{payload}}}","output":"str","x":700,"y":420,"wires":[["8d173eb2.b404e"]]},{"id":"d3eb4ed4.f3b4d","type":"change","z":"376a0137.0dad2e","name":"1=NoContact","rules":[{"t":"set","p":"payload","pt":"msg","to":"1","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":420,"y":300,"wires":[["97d29c22.723268"]]},{"id":"ddf6c3b5.5df8c","type":"change","z":"376a0137.0dad2e","name":"0=Contact","rules":[{"t":"set","p":"payload","pt":"msg","to":"0","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":420,"wires":[["7d44130f.3a280c"]]},{"id":"217e1468.8470e4","type":"mqtt-broker","z":"","broker":"192.168.178.10","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willRetain":"false","willPayload":"","birthTopic":"","birthQos":"0","birthRetain":"false","birthPayload":""}]

    Und fügt ihn hier ein.



    Es erscheint dann ein fertiger Flow so wie hier.


    Ihr müsst jetzt in den lila Nodes alles an eurer Konfiguration anpassen.

    In den hier von mir markierten lila Nodes gebt ihr eure Broker Adresse ein.


    Weiter in Teil 3

  • Ich werde es die woche mal versuchen zu machen... Du hattest 2 kontakte von Abus genommen Marco73 ne?


    ich brauch noch einen Kontakt und den kleinen controller noch...


    mfg

  • Teil 3

    Hier wie im Bild eingeben


    Das macht ihr jetzt bei allen von mir rot markierten Nodes. Alles andere so bitte drin stehen lassen.

    Im nächsten Bild müsst ihr auch die Einstellungen an euch anpassen.



    Jetzt müssen wir den Node GET Sensor Closed bearbeiten.



    Jetzt noch den Node Sonoff bearbeiten.




    Als zu guter Letzt nur noch bei Get Hombridge und Set Hombridge eure Broker iP eingeben.




    Das war es nur noch auf Deploy drücken und wir sind fertig.


    Weiter in Teil 4

  • Teil 4


    Wie gesagt nur noch auf Deploy drücken.


    Jetzt brauchen wir das ganze nur noch zu aktivieren für Homebridge. Dazu Drücken wir einmal auf diesen Button (ADD Garagentor). Und euer Garagentor sollte sofort auf eurem Homekit zusehen sein.




    So das war es :P:):):):)


    Kommen wir jetzt noch auf die Pin-Belegung an eurem Wemos D1 mini.

    Hier auf dem Bild schön zusehen wie es mit der Pin-Belegung aussieht.


    Die Verbindung sollte dann so ausehen.



    Alles schön Verbinden und dann sollte alles schön in Homekit funktionieren.

    Ich hoffe, ich konnte das einigermaßen hier gut rüber bringen. Falls ihr noch Fragen habt, könnt ihr diese mir natürlich hier stellen. Aber habt erbarmen, wenn ich nicht immer gleich antworte.

    So und jetzt viel Spaß beim Nachmachen.:):thumbup::thumbup::thumbup:

  • Hallo

    Da ich wohl zu do.... bin .Und ich nicht in der Lage bin das Problem zu lösen.

    Ist jemand bereit mir ein fertiges Homebridge Image zur Verfügung zu stellen.

    Ich möchte nur meine Sonoff (Tasmota) Schalter damit schalten.

    Vielleicht ist ja jemand bereit.

    Danke

  • peterpan007

    Naja so ganz do.. kannst du ja nicht sein. ? Du hast ja geschrieben das Deine Homebridge in Homekit angezeigt wird. Also läuft Dein Homebridge ja. Entweder hast du das Plugin nicht richtig installiert oder irgendwas stimmt mit Deiner Config.json nicht. Stell Deine komplette Config.json mal bitte hier rein dann schauen wir mal.

    Und gebe bitte mal in der Konsole vom raspi sudo Homebridge ein.

    Und stell das auch mal hier rein

  • peterpan007

    Hattest ja schonmal rein gesetzt sehe ich grade :)Falls Du eine klammer beim rein kopieren hier nicht vergessen hast dann passt deine Config.json nicht.

  • Sehe Grade, das bei Dir ja Command Garnicht drin ist ? Übernehme das mal so wie hier aber Trage Deine eigene IP vom Sonoff ein.

    Dann sollte es klappen


    "accessory":"CommandGarageDoor",

    "manufacturer":"selfmade",

    "simulateTimeOpening":3,

    "model":"model x",

    "serialnumber":"y",

    "simulateTimeOpen":5,

    "command":"curl http://192.168.1.00/cm?cmnd=Power1%20on", (Command hat auch bei Dir gefehlt ? )

    "name":"Hofeinfahrt",

    "simulateTimeClosing":2

  • Hp246

    Sehr schön :thumbup:Dann wünsche ich Dir viel Spaß bei der umsetzung.

    Mir fällt Grad ein =O. Ich hätte vielleicht die Anleitung nicht hier, sondern in Anleitungen und Tools Posten sollen.

    Vielleicht kann das ein Moderator ändern.

  • so

    hier meine config.json

    {

    "bridge":{

    "name":"Homebridge",

    "username":"CC:22:3D:E3:CE:30",

    "port":51826,

    "pin":"031-45-154"

    },

    "platforms":[


    ],

    "accessories":[

    {

    "accessory":"CommandGarageDoor",

    "manufacturer":"selfmade",

    "simulateTimeOpening":3,

    "model":"model x",

    "serialnumber":"y",

    "simulateTimeOpen":5,

    "command":"curl http://192.168.178.57/cm?cmnd=Power1%20on",

    "name":"Hofeinfahrt",

    "simulateTimeClosing":2

    }

    ]

    }

  • hier die sudo Homebridge

    *** WARNING *** The program 'node' uses the Apple Bonjour compatibility layer of Avahi.

    *** WARNING *** Please fix your application to use the native API of Avahi!

    *** WARNING *** For more information see <http://0pointer.de/avahi-compat?s=libdns_sd&e=node>

    *** WARNING *** The program 'node' called 'DNSServiceRegister()' which is not supported (or only supported partially) in the Apple Bonjour compatibility layer of Avahi.

    *** WARNING *** Please fix your application to use the native API of Avahi!

    *** WARNING *** For more information see <http://0pointer.de/avahi-compa…node&f=DNSServiceRegister>

    [2018-2-19 20:24:05] Loaded plugin: homebridge-commandgaragedoor

    [2018-2-19 20:24:05] Registering accessory 'homebridge-commandgaragedoor.CommandGarageDoor'

    [2018-2-19 20:24:05] ---

    [2018-2-19 20:24:05] config.json (/root/.homebridge/config.json) not found.

    Setup Payload:

    X-HM://0023ISYWY4F82

    Scan this code with your HomeKit app on your iOS device to pair with Homebridge:




























    Or enter this code with your HomeKit app on your iOS device to pair with Homebridge:


    ??????????????

    ? 031-45-154 ?

    ??????????????


    /usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56

    dns_sd.DNSServiceRegister(self.serviceRef, flags, ifaceIdx, name,

    ^


    Error: dns service error: name conflict

    at new Advertisement (/usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:56:10)

    at Object.create [as createAdvertisement] (/usr/local/lib/node_modules/homebridge/node_modules/mdns/lib/advertisement.js:64:10)

    at Advertiser.startAdvertising (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Advertiser.js:47:30)

    at Bridge.Accessory._onListening (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/Accessory.js:661:20)

    at emitOne (events.js:116:13)

    at HAPServer.emit (events.js:211:7)

    at HAPServer._onListening (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/HAPServer.js:190:8)

    at emitOne (events.js:116:13)

    at EventedHTTPServer.emit (events.js:211:7)

    at EventedHTTPServer.<anonymous> (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/lib/util/eventedhttp.js:65:10)

    Einmal editiert, zuletzt von peterpan007 ()