Day 21: House automation

In today’s test, we’ll illuminate the characteristics and possibilities of MQTT in more detail by creating a practical scenario. In the example, there is a building with two rooms, each of which has a light switch, a light and an alarm sensor. The light switch switches the light of the respective room on or off. The alarm sensors activate a building-wide alarm.

Normally, seven different devices would be used here, which are all connected to each other through an MQTT broker. But since we probably have only one NanoESP, this will simulate all devices. For this reason, today’s layout looks somewhat complicated. The LED D3 is used today as the second light. Therefore, today it won’t show you whether you’re connected to the WLAN. The tilt sensors are used on the extension cables as alarm sensors. A person could, for example, attach them to doors or windows so that they trigger an alarm if the entry opens. Behind today’s door is the second sensor.

Der Aufbau von Tag 21

The layout for Day 21 with a 1-kohm resistor


The programme now subscribes to the following topics, where MyMQTTiD is replaced with your ID:

NanoESP/MyMQTTiD/room1/light

NanoESP/MyMQTTiD/room2/light

NanoESP/MyMQTTiD/+/alarm

You can now use the buttons to activate the light in the respective room. If you tip a tilt sensor, the alarm is triggered. It is deactivated either after 20 seconds or if you send a 0 to the alarm topic, e.g. through the http://www.hivemq.com/try-out/ webpage. You are also informed of all changes through the serial monitor.

19 Comments

  1. thymjan

    Die Tilt-Sensoren müssen senkrecht stehen (dann ist der Kontakt durch die innliegende Kugel hergestellt), sonst wird sofort ein neuer Alarm ausgelöst.

    Reply
  2. paulaner

    Ich werde mich hier ausklinken, denn die sogenannte ‘Hausautomation’ interessiert mich wenig, wenn dann noch die anfälligen Technik dazu kommt ….

    Ich kann nur Jedem raten sich das Video anzuschauen, der Mann spricht mir aus der Seele.
    Ich stimme bei allen Dingen nicht immer 100% zu aber Recht hat er schon.

    https://www.youtube.com/watch?v=wzRdraG1Cks

    Noch einen schönen Advent, ein schönes Weihnachtsfest, einen guten Rutsch.

    Reply
    1. Ralf

      Auch dir ein schönes Weihnachtsfest. Nimms nicht so tragisch. Früher habe ich auch schon laienhaft mit Elektronik gebastelt. Ich kann dir sagen, es hat wenig funktioniert und dazu war es lange nicht so interessant.

      Wenn es keine Tücken gäbe, wäre es arg langweilig, meine ich.

      PS: Der Video-Onkel ist langweilig.

      Reply
      1. Bernd

        schon richtig,
        Aber soft- und hardware probleme machen, dass es reichlich dauert, die projekte hinzukriegen. Wenn ich nicht Rentner wäre, hätte ich gar keine Zeit dafür.
        apropo Blogg typ: Jemand der Linux als system hat sollte eigentlich besser mit programmen umgehen können.

        Reply
  3. thymjan

    Das “+” ist ein “single level wildcard”. Guckt Ihr hier: http://www.hivemq.com/blog/mqtt-essentials-part-5-mqtt-topics-best-practices. Das bedeutet: wenn der Alarm aktiviert wird, muss die Null an NanoESP/MyMQTTiD/room1/alarm oder NanoESP/MyMQTTiD/room2/alarm gesendet werden. Dann wird’s auch wieder schön still. Und der Programmtext muss dafür auch nicht geändert werden.

    Reply
    1. Chris

      Danke für den Hinweis, nun funktioniert es so wie es soll…

      Reply
    2. Michel2016

      Dazu noch ne frage?
      Wie send ich eine 0 oder 1 um Licht an und aus zu schalten, das wird nirgends erklärt…. was muss hinter die Meldung NanoESP/MyMQTTiD/room1/light??
      kommt die 0 direkt dahinter, mit einem / oder : oder ; oder wie, ich bekomme es nicht hin :-(

      Reply
      1. thymjan

        Das Topic bleibt wie es ist, den Wert in die Message schreiben.

        Reply
  4. Michel2016

    Also ich weiß nicht was ich falsch mache, :-(
    Es hat einmal funktioniert,dann nicht mehr, habe den Sketch schon x mal neu auf Board geladen und die Daten bei http://www.hivemq.com/ eingegeben, aber weder Alarm noch Schalter noch Messages kommen auf meinem Rechner an.

    Reply
  5. Daniel

    bei mir sind erstmal die 2 Bewegungs Sensoren kaputt gegangen beim versuch die in das Kabel zu stecken :( die Beinchen sind fast gänzlich im Sensor verschwunden…

    Reply
    1. Ralf

      Ist mir bei einem auch passiert. Ich hab ihn wieder rausgezogen, das Teil funktioniert noch.
      Danach habe ich nicht mehr versucht die Kabel zu nutzen, sondern zwei separate Steckbretter, die ich hatte.

      Reply
  6. Michel2016

    is hier auch so, einmal aktiviert hört der Alarm nicht mehr auf. Dank dieser Supertollen ungenauen Beschreibung gestern und heute habe ich auch nicht nicht rausgefunden wie das funktionieren soll mit dem 0 senden an den Alarm-Topic.
    Zwar kann ich die LEDs schalten, aber mehr nicht.

    Reply
    1. Ralf

      Bei mir klappt es nur, wenn ich nach den Connect zum Host broker.fkainka.de und dem Add topic “NanoESP/18……..ea” die Message auf “NanoESP/18……..ea/room2/alarm” eine 0 sende.

      Mit dem “+” als Wildcard funktioniert es nicht.

      Reply
  7. Bernd

    das gleiche hier, echte Kontaktprobleme mit den Verlängerungskabeln, zum board und zum sensor! (die sind wirklich nicht hierfür geeignet).
    ansonsten geht es wohl im princip – abgesehen vom dauernden gepiepe, das bei mir nur aufhört solange man einen der Taster gedrückt hält. Wenn man die sensoren bewegt kommen nachrichten zum MQTT und auch wenn die taster gedrückt werden. Ich finde die LED geht nur in einem der Räume an/ aus auch wenn der ser. printer und die message was anderes sagen. vielleicht auch noch kontaktprobleme mit dem 2. taster (11-14), an den hab ich nämlich noch keine längeren Beine gelötet.

    Reply
    1. Bernd

      der erste taster (16 – 19) schaltet die rote LED auf dem steckbrett und der andere die blaue auf dem Nano, so das funktioniert.
      Wenn ich versuche 0 an topic: NanoESP/18fe34cfa972/+/alarm zu schicken werde ich in MQTT disconnected (piepen geht weiter, keine nachricht im printer).

      Reply
    2. Chris

      Ich habe im Code in Zeile 83 /+/alarm in /alarm geändert, und konnte dannach den Alarm aus und einschalten. Natu´ürlich heißt das Topic dann … NanoESP/MQTTID/alarm

      Reply
      1. Voulxe

        Habe dementsprechend auch die Zeilen 148 und 195 angepasst … damit ich auch die Meldungen vom Board empfange … werde auch disconnected, wenn ich ‘0’ sende.
        Die in anderen Beiträgen genannten Probleme mit Wackelkontakten habe ich ebenso.
        Das Prinzip ist gut, das Board auch, leider hapert es an der Stimmigikeit zwischen den gelieferten Bauteilen.

        Reply
      2. Chris

        Codeänderung nicht notwendig – Bitte den Kommentar von — thymjan — lesen!

        Reply
  8. Marc

    Einmal aktiviert, hört bei mir der Alarm gar nicht auf….

    Reply

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.