Autor Thema: MySensor MQTT als Protokoll verwendbar?  (Gelesen 2354 mal)

Fiatx

  • Gast
MySensor MQTT als Protokoll verwendbar?
« am: 26 Dezember 2016, 21:51:03 »
Hallo,

ich bin dabei in die Heimatomasierung und verscheiden Projekte einzusteigen. Ich möchte verschieden Werte im Haus und ums Haus ermitteln und loggen und auch auf bestimmte Trigger Informationen an ander senden.

Hierzu habe ich mir zum einen FHEM angesehen und zum anderen Mysensor.

Ich bin noch viel am lesen und versuche den für mich richtigen weg zu finden. Ich habe primär zwei Dinge die ich lösen möchte:

1. die Garage intelligenter machen.
2. eine Hofbeleuchtung installieren

zu1: Ich habe in einem Nebengebäude eine Garage mit einem alten elektrisch angetriebene Rolltor. Wenn ich hier mein Auto einstelle, habe ich vorne und Hinten nur ca 10cm bis 15 cm Platz. Das Licht kann auch nicht von aussen ein und aus geschalten werden. 
Ich möchte hier mit einem Arduine den Abstand beim einfahren vom Fahrzeug zur Wand messen und über eine Ampel anzeigen lassen. Weiterhin soll an der Front durch eine Lichtschranke sichergestellt sein dass ich weit genug nach hinten gefahren bin. Wenn es dunkel ist, soll auch die Beleuchtung eingeschalten werden und dann als comming Home eine bestimmte zeit laufen.
Beim öffnen des Rolltores soll bei dunkelheit auch das licht eingeschalten werden und wieder aus gehen wenn eine bestimmte Zeit abgelaufen ist oder kein Auto in der Garage ist.

zu 2: vor der Garage sollen Strahler installiert werden. Diese sollen über Bewegungsmelder und oder über das öffnen der Garge gesteuert werden. Die bewegungsmelder sollen aber nicht an den Strahlern siten sonder am Anfang der Einfahrt. Von dort aus führt aber keine direkte Verkabelung zur Garage, somit fällt die klassische Verkabelung flach.

1 soll mit einem Arduino erledigt werden und 2 über Arduino oder über homematic oder dergleiche.

Ich möchte dies als Grundstein für weitere Projekte legen. Es soll ein Server (wahrscheinlich Raspberry) als Steuerzentrale dienen. Es sollen weitere "Module" hinzukommen. Wie tb. Temperaturüberwachung in den Räumen. evtl Heizungsteuerung usw.

Ich muss die Sachen per Funk anbinden, es ist nicht oder kaum Möglich kabel oder Bus Leitungen zu ziehen. Ich möchte aber das Netz gerne Intelligent und ausfallresistent halten. Die Garage muss auch Funktionieren wenn keine Verbindung ins Haus besteht. Hierzu habe ich mich schon etwas mit dem MQTT Protokoll beschäftigt. Dieses scheint mir Ideal für solche Anwendungen.

Ich habe gesehene dass es ein Gateway für MQTT gibt aber gibt es nicht auch die Möglichkeit die kommunikation einzelner Sensoren (Arduinos) untereinader mit MQTT zu gestalten und nicht das Mysensor Protokoll zu nehmen? Oder bin ich da voll auf dem Holzweg und erkenne den Wald vor lauter Bäumen nicht?

Gruß Sven

Offline Jo

  • Full Member
  • ***
  • Beiträge: 148
Antw:MySensor MQTT als Protokoll verwendbar?
« Antwort #1 am: 26 Dezember 2016, 22:24:18 »
MQTT macht aus meiner Sicht nur für Devices Sinn die schon IP basiert sind, z.b. esp8266. Wenn du nen Arduino nehmen willst denke ich das du mit MySensors besser unterwegs bist. Da gibt es übrigens schon eine Anleitung für ne schöne Parkampel...

Fiatx

  • Gast
Antw:MySensor MQTT als Protokoll verwendbar?
« Antwort #2 am: 27 Dezember 2016, 08:30:55 »
Hi,

aber die Vorteile dess Protokolls sind nicht zu verachten. Normalerweise sind die Devices ja in Reichweite aber wenn zb. WLAN nachts abgeschalten wird. Funktioniert die Steuerung autarg und wenn ich es richtig verstanden habe versucht sie dann solange per MQTT die Daten zu senden bis der Broker diese empfangen hat. (je nach Prio natürlich)

Es geht hier zum beispiel um Sensoren die im Gaarten sind und ich möchte das WLAN nicht die ganze Nacht da an haben. Sie sollen im Prinzip weiter funktionieren aber ihre meldungen dann wieder Senden wenn es eine Verbindung gibt.

Auch ist die Frage ob so ein Netz vermascht ist oder nicht? es kann auch Punkte geben die nicht direkt Funkkontakt mit dem Gateway haben. Ich muss mir mal die Dinge genauer ansehen und erste Test machen. Ich möchte halt vermeiden mit 2,3 verschiedenen Protokollen und Systemen zu arbeiten wenn es die Möglichkeit gibt auch mit einem Protokoll übergreifend die Kommunikation zu gestalten.

Gruß Sven

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9721
  • eigentlich eher "user" wie "developer"
Antw:MySensor MQTT als Protokoll verwendbar?
« Antwort #3 am: 27 Dezember 2016, 08:57:20 »
Hallo Fiatx,

an sich sollte das, was Dir vorschwebt mit MySensors funktionieren. Ob dazu MQTT überhaupt benötigt wird, mußt Du selbst entscheiden.

Mir kommt es so vor, also würde der Umweg über MQTT nicht unbedingt zu mehr Autarkie führen, weil dann ja trotzdem der Broker verfügbar sein muß. Es sollte mit etwas "Basteln" auch ohne gehen:

Im "Normalfall" starten Nodes nicht, wenn keine Verbindung zum GW (bzw. Controller) besteht. Dieses Verhalten kann man seit neuestem mit einer Option im Sketch abschalten (2.1.0-beta):
#define MY_TRANSPORT_RELAXED
Auch eine Node-to-Node-Communication ist vorgesehen, allerdings könnte es sein, dass das im Moment nicht funktioniert.

Vom Konzept her würde ich alles, was Garage ist (Licht, Tor und Abstandsmesser, evtl. mit Lichtsensor und Bewegungsmelder für innen) auf einen Arduino legen, und damit u.U. auch das Licht im Hof schalten. Dazu dann ein (batteriebetriebener) Bewegungsmelder, der dann halt die Zentrale bräuchte, wenn das mit der direkten Kommunikation mit dem Garagen-Sensor nicht klappen sollte. Eventuell kann Dir das hier ein wenig weiterhelfen. Ist zwar nicht ganz fertig geworden, weil mir der Lichtsensor zwischendurch gestorben war, aber aus dem Kopf die notwenigen Anpassungen: #include <MySensor.h> muss zu MySensors.h werden und die pullups bei den Motion-PINs fehlen irgendwie auch, wenn ansonsten Fragen dazu sind, bitte melden...

Gruß, Beta-User
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Fiatx

  • Gast
Antw:MySensor MQTT als Protokoll verwendbar?
« Antwort #4 am: 27 Dezember 2016, 10:32:13 »
Hi,

ich bin ja noch ganz am Anfang in der Ideenfindung. Ich möchte mir nur ungern einen Weg verbauen oder übersehen. Ich möchte noch mehrere Dinge "Automatisieren" bzw. intelligenter gestallten. Die Garage ist erst der Anfang.

Ich möchte die Systeme da wo es sinn macht einfach mischen. Kenne aber die einzelnen Systeme nicht genug um zu beurteilen was das gute daran ist. Zusammenfassend kann ich mit Mysensor folgendes:
Ein Arduino in der Garage der follgendes tut
  • Garagenlicht an und ausschalten wenn Tor geöffnet oder Bewegungsmelder auslöst
  • Parkampel zum einparken
  • Temperatur und Luftfeuchte messen
  • Werte und Schaltzustände an Gateway Senden
  • Schaltzustände von Zentrale Empfangen und Umsetzten

Falls die Strecke zwischen Gateway und Arduino zu lang ist muss zwischenrein noch ein Repeater (dies ist aber auch mit einem Mysensor machbar) Falls keine Verbindung zum Gateway vorhanden ist, kann der Arduino auch autarg arbeiten.

Als Zentrale soll ein Raspberry PI dienen auf dem auch FHem für den Rest läuft. Die Arduinos können in Fhem eingebunden werden und somit darüber auch Gesteuert. Somit sollte es dann auch möglich sein von zb. einem Handsender von Homematic aus das Garagenlicht zu schalten und auch jdeden beliebigen Funkbewegunsmelder zum auslösen des Lichts zu Nutzen.

Gruß Sven

Offline Beta-User

  • Moderator
  • Hero Member
  • ***
  • Beiträge: 9721
  • eigentlich eher "user" wie "developer"
Antw:MySensor MQTT als Protokoll verwendbar?
« Antwort #5 am: 27 Dezember 2016, 10:54:01 »
Ich möchte die Systeme da wo es sinn macht einfach mischen. Kenne aber die einzelnen Systeme nicht genug um zu beurteilen was das gute daran ist.
Systeme zu mischen ist zwar mit FHEM möglich, ich würde aber tendenziell versuchen, jede Art von Basisfunktionalität so umzusetzten, dass es auch ohne Zentrale läuft.
Hier also: Ggf. einen HM-Bewegungsmelder am Tor gepeered mit einem Aktor für die Hofbeleuchtung. Oder eben eine reine MySensors-Lösung, (aber nur, wenn entweder alles über einen einzigen Arduino läuft oder die direkte Node-to-Node-Kommunikation wieder klappt).

Zusammenfassend kann ich mit Mysensor folgendes: ..
  • ...

Es fehlt:
 - Bewegungsmelder (uU. mit direktem Signal an die Garagen-Node)
 - Hoflicht ein- und ausschalten (für 230V brauchst Du einen Elektriker, wenn Du nicht vom Fach bist!)

Falls die Strecke zwischen Gateway und Arduino zu lang ist muss zwischenrein noch ein Repeater (dies ist aber auch mit einem Mysensor machbar) Falls keine Verbindung zum Gateway vorhanden ist, kann der Arduino auch autarg arbeiten.
Das mit dem Repeater muß für MySensors zwingend eine MySensors-Repeater-Node sein, die Dinger (jedenfalls die NRF's) funken zwar auch in dem Frequenzbereich, der auch für WLAN genutzt wird, es ist jedoch was eigenes! Und autark ohne Zentrale braucht zwingend die bereits zitierte Option!

Als Zentrale soll ein Raspberry PI dienen auf dem auch FHem für den Rest läuft. Die Arduinos können in Fhem eingebunden werden und somit darüber auch Gesteuert. Somit sollte es dann auch möglich sein von zb. einem Handsender von Homematic aus das Garagenlicht zu schalten und auch jdeden beliebigen Funkbewegunsmelder zum auslösen des Lichts zu Nutzen.
Das geht zwar, erfordert aber die Zentrale...
Hier wäre es uU. besser, innerhalb derselben Technik zu bleiben. Für den Funksender könntest Du - sofern das vom Sicherheitsstandard her Deinen Ansprüchen genügt - auch einen billigen 433MHz-Sender nehmen und an den Arduino (bzw. einen weiteren) einen Empfangs-Chip für 433MHz dranbasteln, der die paar Signale dekodieren kann und dann direkt verarbeiten (und der Zentrale nur noch mitteilt: Funksignal für "Licht-an empfangen, Licht angemacht".
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline tante ju

  • Full Member
  • ***
  • Beiträge: 428
Antw:MySensor MQTT als Protokoll verwendbar?
« Antwort #6 am: 27 Dezember 2016, 11:46:39 »
Interessante Dinge hast Du Dir hier vorgenommen.

Ich würde noch "Abstandsmessung" mit auf die Liste der zu lösenden Aufgaben setzen, da es schon ein wenig Aufwand braucht, um vom Gebäude her festzustellen, daß das Auto bis auf 10cm vor der Wand steht oder auch weit genug eingefahren ist. Dies daher, da die Front und Heck ja nicht kantig sind, sondern gewölbt und das Höhenprofil durchaus, je nach Beladung beim Einfahren unterschiedlich ist.

Und dann würde ich, wie Du ja auch schon sagtest, autarke Systeme bauen. Hier aber die Betonung auf Plural. Jeden einzelnen Abstandsmesser würde ich eigenständig auslegen, um sicherzugehen, daß er auch läuft, wenn irgendwas gestört ist. Einfach nur, damit man nicht später akustische Rückmeldung (Auto -> Wand) bekommt, wenn Funk gerade gestört war.

Und jetzt ist die Frage, welche Ressourcen willst Du hier reinwerfen? Eine volle MQTT Implementierung, inklusive QoS und Nachrichten Queueing braucht doch gehörige Ressourcen. Bei meinen MySensor-Modulen habe ich immer, neben der Eigenständigkeit, ein periodisches Update eingebaut, welches alle verfügbaren Werte sendet. So ist es egal, ob FHEM läuft oder nicht. Wenn es neu gestartet wird, hat es nach spätestens 5 Minuten wieder aktuelle Werte.

Es gibt auch ein MySensor Gateway mit MQTT, bei welchem der MySensor-GW ein Broker ist. Kann man auch für die Node-Node-Kommunikation nutzen. Ich nutze aber nur das normale MySensor-MQTT-Gateway, wobei ich es selber modifiziert habe, um "schönere" Nachrichten und Topics zu bekommen. Meine Nodes unterhalten sich direkt, was, je nach MySensor-Lib, auch super funktioniert. Stellt sich aber die Frage, ob das bei Dir auch notwendig ist.

Du kannst auch jedem Einzelmodul ein bestimmtes Verhalten mitgeben, daß für Dich funktioniert. Das ist das Fail-Safe-Verhalten. Alles darüber hinaus wird dann vom FHEM gesteuert oder weitergegeben. Wie zum Beispiel die Info an das Hof-Licht, daß das Tor gerade geöffnet wurde und daher die Abschaltet eine andere ist. So umgehst Du die Notwendigkeit der Kommunikation der Nodes untereinander, was die Behandlung im Prozessor einfacher macht. Es wird robuster, weil alles auch bei Totalausfall des MySensor-Netzes noch funktioniert und Du hast Steuerungsmöglichkeiten und Verbesserungspotential, ohne jeweils die Nodes neu flashen zu müssen.

Fiatx

  • Gast
Antw:MySensor MQTT als Protokoll verwendbar?
« Antwort #7 am: 27 Dezember 2016, 12:19:30 »
Systeme zu mischen ist zwar mit FHEM möglich, ich würde aber tendenziell versuchen, jede Art von Basisfunktionalität so umzusetzten, dass es auch ohne Zentrale läuft.
Das soll Grundlegend so sein. Alle Sachen müssen auch ohne Funkverbindung funktional sein.

Hier also: Ggf. einen HM-Bewegungsmelder am Tor gepeered mit einem Aktor für die Hofbeleuchtung. Oder eben eine reine MySensors-Lösung, (aber nur, wenn entweder alles über einen einzigen Arduino läuft oder die direkte Node-to-Node-Kommunikation wieder klappt).
Die Hofbeleuchtung sollte erstmal aussen vor betrachtet werden. Ich kann den Sensor nicht so Anbringen wie ich gerne möchte und damit auch noch eine Kabelverbindugn zum Montageort der Lampe. Wäre dies Möglich würde ich hier auch einen klassischen Bewegungsmelder einsetzen.

Es fehlt:
 - Bewegungsmelder (uU. mit direktem Signal an die Garagen-Node)
 - Hoflicht ein- und ausschalten (für 230V brauchst Du einen Elektriker, wenn Du nicht vom Fach bist!)
 Elektriker habe ich wenn sie denn gebraucht werden
 

Das mit dem Repeater muß für MySensors zwingend eine MySensors-Repeater-Node sein, die Dinger (jedenfalls die NRF's) funken zwar auch in dem Frequenzbereich, der auch für WLAN genutzt wird, es ist jedoch was eigenes! Und autark ohne Zentrale braucht zwingend die bereits zitierte Option!
Das geht zwar, erfordert aber die Zentrale...
Hier wäre es uU. besser, innerhalb derselben Technik zu bleiben. Für den Funksender könntest Du - sofern das vom Sicherheitsstandard her Deinen Ansprüchen genügt - auch einen billigen 433MHz-Sender nehmen und an den Arduino (bzw. einen weiteren) einen Empfangs-Chip für 433MHz dranbasteln, der die paar Signale dekodieren kann und dann direkt verarbeiten (und der Zentrale nur noch mitteilt: Funksignal für "Licht-an empfangen, Licht angemacht".

Ich weis noch nicht was ich da nehmen soll/brauche.


Interessante Dinge hast Du Dir hier vorgenommen.

Ich würde noch "Abstandsmessung" mit auf die Liste der zu lösenden Aufgaben setzen, da es schon ein wenig Aufwand braucht, um vom Gebäude her festzustellen, daß das Auto bis auf 10cm vor der Wand steht oder auch weit genug eingefahren ist. Dies daher, da die Front und Heck ja nicht kantig sind, sondern gewölbt und das Höhenprofil durchaus, je nach Beladung beim Einfahren unterschiedlich ist.
Die fehlte noch. Momentan sind auf dem Boden Balken um eine physikalische Rückmeldung zu erhalten. Stört aber beim laufen.

Und dann würde ich, wie Du ja auch schon sagtest, autarke Systeme bauen. Hier aber die Betonung auf Plural. Jeden einzelnen Abstandsmesser würde ich eigenständig auslegen, um sicherzugehen, daß er auch läuft, wenn irgendwas gestört ist. Einfach nur, damit man nicht später akustische Rückmeldung (Auto -> Wand) bekommt, wenn Funk gerade gestört war.
Also für jedes einen eigene Arduino und die Einfahrampel erst Freischalten wenn alle Signale kommen?

Und jetzt ist die Frage, welche Ressourcen willst Du hier reinwerfen? Eine volle MQTT Implementierung, inklusive QoS und Nachrichten Queueing braucht doch gehörige Ressourcen. Bei meinen MySensor-Modulen habe ich immer, neben der Eigenständigkeit, ein periodisches Update eingebaut, welches alle verfügbaren Werte sendet. So ist es egal, ob FHEM läuft oder nicht. Wenn es neu gestartet wird, hat es nach spätestens 5 Minuten wieder aktuelle Werte.

Ich weis noch nicht welche Werte ich ausserhalb dem Microcosmos Garage überhaupt brauche und was ich mit diesen machen will. Ich denke ich werde erstmal mit einem System anfangen und dann sehen was ich wirklich brauche.

Für mich ist noch nicht ganz klar welche Systeme ich alles einsetzen werde oder einsetzen werden muss.

Es gibt auch ein MySensor Gateway mit MQTT, bei welchem der MySensor-GW ein Broker ist. Kann man auch für die Node-Node-Kommunikation nutzen. Ich nutze aber nur das normale MySensor-MQTT-Gateway, wobei ich es selber modifiziert habe, um "schönere" Nachrichten und Topics zu bekommen. Meine Nodes unterhalten sich direkt, was, je nach MySensor-Lib, auch super funktioniert. Stellt sich aber die Frage, ob das bei Dir auch notwendig ist.
[/broker]
MOmentan läuft auf meiner NAS ein Broker, ob dieser da weiterhin läuft oder überhaupt noch gebraucht wird bestimmt ja die Landschaft an Sensoren.

Du kannst auch jedem Einzelmodul ein bestimmtes Verhalten mitgeben, daß für Dich funktioniert. Das ist das Fail-Safe-Verhalten. Alles darüber hinaus wird dann vom FHEM gesteuert oder weitergegeben. Wie zum Beispiel die Info an das Hof-Licht, daß das Tor gerade geöffnet wurde und daher die Abschaltet eine andere ist. So umgehst Du die Notwendigkeit der Kommunikation der Nodes untereinander, was die Behandlung im Prozessor einfacher macht. Es wird robuster, weil alles auch bei Totalausfall des MySensor-Netzes noch funktioniert und Du hast Steuerungsmöglichkeiten und Verbesserungspotential, ohne jeweils die Nodes neu flashen zu müssen.


So in die Richtung sollte es wahrscheinlich sein. Ich möchte "Moduleinheiten" bauen die für sich Funktionieren und ihre Daten, falls diese Relevant sind an eine zentrale Stelle weitersenden. Hier soll entweder ausgewertet werden oder auch teilweise eine Möglichkeit der Steuerung gegeben sein. Aber alles im Kontext dass sie standalone funktionieren.

Ich habe mehrere Bereiche die ich in Angriff nehmen möchte und weis hier noch nicht ob das eine oder andere Systeme hierfür das richtige ist. Bezüglich Garage kann es nur Mysensor oder ähnliches sein. Hier habe ich noch keine anderes System gefunden was mir solche Anforderungen umsetzen lässt.

Gruß Sven

Offline tante ju

  • Full Member
  • ***
  • Beiträge: 428
Antw:MySensor MQTT als Protokoll verwendbar?
« Antwort #8 am: 28 Dezember 2016, 12:04:37 »
Also für jedes einen eigene Arduino und die Einfahrampel erst Freischalten wenn alle Signale kommen?

So würde ich das machen.
Das "ok" basiert auf aktiven Signalen, Defekt ist quasi der Normalzustand.
So kann man sich sicher sein, daß ein "grün" auch wirklich grün bedeutet.

Ich würde zum Beispiel auch das grüne Licht in so einer Funktion hinter ein Monoflop setzen, so daß es vom Prozessor immer wieder getriggert werden muß, um auch konstant grün zu leuchten. Das sichert den Zustand eins hängenden Prozessors ab.
Tross Watchdog und Brownout Detection kann auch ein Prozessor kaputt gehen und wenn es ganz blöd kommt, stirbt er, nachdem er auf Grün geschaltet hat.