Tag 21: Hausautomation

In dem  Versuch des heutigen Tages werden wir die Eigenschaften und Möglichkeiten von MQTT genauer beleuchten, in dem wir ein praktisches Szenario kreieren. In dem Beispiel gibt es ein Gebäude mit zwei Räumen mit jeweils einem Lichtschalter, einem Licht und einem Alarmsensor. Die Lichtschalter schalten das Licht des jeweiligen Raums an oder aus. Die Alarmsensoren aktivieren einen gebäudeweiten Alarm.

Normalerweise würden hier sieben verschiedene Geräte zum Einsatz kommen, die alle über einen MQTT-Broker miteinander verbunden sind. Da Sie aber wahrscheinlich nur einen NanoESP haben, simuliert dieser alle Geräte auf einmal. Deswegen sieht der Aufbau des heutigen Tages etwas kompliziert aus. Als zweites Licht wird übriges heute die LED D3 genutzt. Deswegen wird diese heute nicht anzeigen, ob Sie mit dem WLAN-Verbunden sind. Als Alarmsensoren werden die Tiltsensoren an den Verlängerungskabeln genutzt. Man könnte sie beispielsweise an Türen oder Fensterrahmen befestigen, sodass sie einen Alarm triggern wenn sich der Eingang öffnet. Hinter dem heutigen Türchen befindet sich auch der zweite Sensor.

Der Aufbau von Tag 21

Der Aufbau von Tag 21


Das Programm subscribed jetzt zu den Topics:

NanoESP/MQTTID/room1/light

NanoESP/MQTTID/room2/light

NanoESP/MQTTID/+/alarm

Mit den Buttons können Sie nun das Licht in dem jeweiligen Raum aktivieren. Wenn Sie einen Tiltsensor kippen, wird der Alarm ausgelöst. Dieser wird nach 20 Sekunden deaktiviert, oder wenn Sie eine 0 zu dem Alarm-Topic senden, z.B. über die http://www.hivemq.com/try-out/ Webseite. Über den Seriellen Monitor werden Sie zudem über alle Veränderungen informiert.

 

19 Kommentare

  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.

    Antworten
  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.

    Antworten
    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.

      Antworten
      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.

        Antworten
  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.

    Antworten
    1. Chris

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

      Antworten
    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 :-(

      Antworten
      1. thymjan

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

        Antworten
  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.

    Antworten
  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…

    Antworten
    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.

      Antworten
  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.

    Antworten
    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.

      Antworten
  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.

    Antworten
    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).

      Antworten
    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

      Antworten
      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.

        Antworten
      2. Chris

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

        Antworten
  8. Marc

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

    Antworten

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.